![]()
![]() ![]()
С помощью Visual LISP удобно писать не отдельные программы, а целые приложения. Приложения только из LSP-файлов (FAS-приложения) можно создавать с помощью механизма проектов, рассмотренного в разд. 12.8.2. Если в приложение необходимо включить DCL-файлы диалоговых окон или вспомогательные текстовые файлы, то можно пользоваться инструментом разработки сложных приложений (VLX-приложений, см. разд. 12.8.3}. Отладочные возможности изучаются в разд. 12.8.1.
12.8.1. Средства отладки программ Специальное окно Консоль Visual LISP (Visual LISP Console) заменяет пользователю в среде Visual LISP зону командных строк системы AutoCAD. С консоли можно вводить выражения AutoLISP, загружать и выполнять функции, в него же выводятся сообщения Visual LISP и системы AutoCAD. Для загрузки LISP-программы (аналогично загрузке файла с помощью функции load языка AutoLISP), находящейся в открытом окне текстового редактора, следует применить пункт Загрузка текста в редактор (Load Text in Editor) падающего меню Сервис (Tools) или кнопку Загрузка активного окна редактирования (Load active edit window) панели инструментов Сервис (Tools). На рис. 12.44 показано сообщение, генерируемое Visual LISP о загрузке файла. Возможно пошаговое выполнение программы, когда пользователь поочередно выделяет и загружает фрагменты текста (используются пункт Загрузить выделенный фрагмент (Load Selection) падающего меню Сервис (Tools) или соответствующая кнопка панели инструментов Сервис (Tools)). Рис. 12.44. Сообщение о загрузке файла в окне Консоль Visual LISP В окне Консоль Visual LISP (Visual LISP Console) в качестве приглашения пользователя к вводу применяются символы "_$". Так, например, если на предыдущем шаге пользователь загрузил файл rcl.lsp с одноименной программой, то он может выполнить ее, введя в консоли "(rcl)". Visual LISP выполнит программу и, если в ней нет ошибок, выведет результат на консоль (рис. 12.45).
Рис. 12.45. Сообщения о выполнении программы в окне Консоль Visual LISP Прямо с консоли можно читать значения глобальных переменных. Для этого нужно в ответ на приглашение ввести с консоли имя переменной. Visual LISP выведет ее текущее значение (на. рис. 12.46 показано значение переменной list_rad).
При отладке программы удобно следить за значениями выбранных переменных. Для этого используются пункты Изучить (Inspect), Инспектор символов (Symbol Service), Окно контрольных символов (Watch Window), рассмотренные при изучении падающего меню Вид (View). Вызов при помощи этих пунктов соответствующих окон (см. рис. 12.13, 12.17 и 12.18) показывает текущие значения выбранных переменных или выражений. Содержимое этих окон может быть скопировано в окно Трассировка (Trace) для последующего обобщения.
Рис. 12.46. Чтение значения глобальной переменной в окне Консоль Visual LISP При наличии ошибок следует также пользоваться пунктами Стек трассировки (Trace Stack) и Поиск ошибок (Error Trace), выводящие соответствующие одноименные окна (см. рис. 12.14 и 12.15). Действенным средством отладки является расстановка в программе точек ее прерывания (останова). Это выполняется с помощью пункта Точка останова Вкл/Откл (Toggle Breakpoint) падающего меню Отладка (Debug) или с помощью кнопки Точка останова Вкл/Откл (Toggle breakpoint) панели инструментов Отладка (Debug). В этом случае при выполнении программа останавливается, дойдя до точки прерывания, и ждет указания от пользователя о возможном варианте продолжения работы. Для продолжения есть пункты Шаг с заходом (Step Into), Шаг с обходом (Step Over), Шаг с выходом (Step Out), Продолжить (Continue), Сброс до верхнего уровня (Reset to Top Level), Выход из текущего уровня (Quit Current Level) падающего меню Отладка (Debug) или аналогичные им кнопки панели инструментов Отладка (Debug). Особенно эффективно сочетание точек прерывания с открытым окном контрольных значений (см. рис. 12.18). Выполняя свою программу по частям, вы будете следить за тем, как при этом изменяются значения контрольных переменных. Пункт Анимация (Animation) падающего меню Отладка (Debug) дает возможность следить за ходом выполнения программы по исходному тексту, т. к. Visual LISP поочередно выделяет те выражения программы, которые обрабатываются в текущий момент времени.
Несколько LISP-программ, выполняемых совместно, можно объединять в проекты. Каждый такой проект является самостоятельным приложением, который может работать в исходных текстах или в компилированных файлах с расширением fas. Кроме того, проект можно скомпилировать в единый FAS-файл, что даст преимущества по скорости загрузки и выполнения. Операции с проектами собраны в падающее меню Проект (Project). Для создания нового проекта используется пункт Новый проект (New Project), который открывает диалоговое окно Новый проект... (New Project...) (рис. 12.47).
Рис. 12.47. Диалоговое окно Новый проект... В этом окне нужно ввести имя файла с данными о проекте. Файл образуется автоматически, в него заносится информация о входящих в него программах и режимах компиляции. Расширение у файла проекта prj. После ввода имени проекта появляется окно Свойства проекта (Object Properties) (рис. 12.48). Диалоговое окно имеет две вкладки: Файлы проекта (Project Files) и Параметры сборки (Build Options). В первой из них нужно в поле Искать в (Look in) выбрать папку с LSP-файлами и в появившемся списке окна обнаруженных файлов с помощью кнопки > перенести нужные имена в правую часть. Если файлы проекта находятся в разных папках, то можно поменять имя папки и выбрать из нее следующую часть включаемых файлов. Для файлов, включенных из разных папок, с помощью щелчка правой кнопкой мыши по имени файла можно вызвать контекстное меню, где при выборе пункта Имена и размеры файлов (Log filenames and size) выводится в нижнюю часть диалогового окна для каждого выделенного имени его полное имя и размер (рис. 12.49). Рис. 12.48. Диалоговое окно Свойства проекта, вкладка Файлы проекта
Рис. 12.49. Полные имена и размеры файлов, включенных в проект По окончании формирования полного списка компонент нового проекта можно их упорядочить с помощью кнопок Начало (Тор), Вверх (Up), Вниз (Down), Нижняя (Bottom). Чаще всего такое упорядочение не нужно, но иногда оно требуется (например, если есть специальные файлы инициализации, то их надо вынести наверх, чтобы они загружались первыми).
Рис. 12.50. Диалоговое окно Свойства проекта, вкладка Параметры сборки Вкладка Параметры сборки (Build Options) окна Свойства проекта (Object Properties) (рис. 12.50) устанавливает режимы компиляции и связи. В частности, поле Режим слияния файлов (Merge files mode) устанавливает, будут ли FAS-файлы создаваться для каждого LSP-файла отдельно или проект будет компилироваться в единый файл (FAS-приложение). Здесь же можно задать папки для размещения FAS-файлов и временных файлов. Окончание работы в окне завершается щелчком по кнопке Применить (Apply). Кнопка OK (OK) закрывает диалоговое окно, после чего на экране появляется окно открытого проекта. На рис. 12.51 показан пример проекта newp из трех файлов.
Рис. 12.51. Окно проекта В верхней части этого окна имеются пять кнопок операций с проектом (слева направо):
Наименования кнопок аналогичны наименованиям пунктов падающего меню Проект (Project). В созданные ранее проекты можно вносить изменения, их можно загружать как в компилированном виде, так и виде исходных текстов.
Другой вид приложений - это VLX-приложения, в состав которых могут входить не только LSP-файлы, но и DCL-файлы диалоговых окон (описание процесса их создания в настоящую книгу не входит), FAS-файлы, DVB-файлы Visual Basic for Applications и текстовые файлы (ТХТ-файлы). Все включаемые компоненты собираются в единый файл приложения с расширением vlx. Свойства приложения сохраняются в одноименном файле с расширением prv, который используется для повторной сборки приложения. Для создания нового сложного приложения следует воспользоваться пунктом Собрать приложение (Make Application) падающего меню Файл (File). Пункт имеет следующие подпункты:
Для создания нового приложения следует выбрать подпункт Мастер новых приложений (New Application Wizard), который открывает диалоговое окно Режим Мастера (Wizard Mode) (рис. 12.52). В этом окне необходимо задать режим, определяющий тип приложения: Простой (Simple) или Сложный (Expert). Простое приложение может состоять только из файлов с LISP-программами (аналогично FAS-приложенню), а сложное - может включать DCL-файлы, DVB-файлы и др. Разберем вариант создания сложного приложения. В случае выбора опции Сложный (Expert) и щелчка по кнопке Далее > (Next >) открывается диалоговое окно Папка приложения (Application Directory) (рис. 12.53). Рис. 12.52. Диалоговое окно Режим Мастера
Рис. 12.53. Диалоговое окно Папка приложения Здесь нужно заполнить Имя приложения (Application Name) (поле Целевой файл (Target File) при этом сформирует имя нового приложения с расширением vix), а в поле Расположение приложения (Application Location) ввести полное имя папки, в которую будут записаны файл приложения с расширением vix и файл свойств приложения с расширением prv (основная часть имени этого файла будет взята из имени приложения). Папку можно выбрать также с помощью кнопки Обзор (Browse). После задания параметров и нажатия на кнопку Далее > (Next >) переходим в окно Параметры приложения (Application Options) (рис. 12.54). По умолчанию в данном окне флажок Отдельное именное пространство (Separate Namespace) не установлен. Это означает, что функции и глобальные переменные вашего приложения будут доступны во всех одновременно открытых рисунках, т. е. поддерживается многодокументный режим. Рис. 12.54. Диалоговое окно Параметры приложения
Замечание
Многодокументный режим
задается с помощью значения системной переменной SDI, равного 0 (при 1 можно
одновременно открывать в AutoCAD только один рисунок). Если установить флажок
Отдельное именное пространство (Separate Namespace), то изменения глобальных
переменных, сделанные вашим приложением, не будут распространяться на другие
открытые рисунки, т. е. ваше приложение будет иметь собственное пространство
имен символов. При наличии флажка в поле Отдельное именное пространство (Separate Namespace) пользователю доступно поле Поддержка ActiveX (ActiveX Support) (по умолчанию поддержка включена, но от нее при необходимости можно отказаться).
Рис. 12.55. Диалоговое окно LISP-файлы для сборки приложения Следующее окно (рис. 12.55) - LISP-файлы для сборки приложения (LISP Files to Include) - дает возможность перечислить все файлы с расширениями lsp (исходные тексты), fas (компилированные файлы) и prv (файлы проектов), которые нужно интегрировать в создаваемое приложение. Кнопки Добавить (Add) и Удалить (Remove) позволяют, соответственно, добавлять или удалять компоненты. Кнопками Начало (Тор), Вверх (Up), Вниз (Down) и Нижняя (Bottom) можно регулировать порядок включения элементов LISP-программ в приложение. Раскрывающийся список имеет три строки (Исходные LISP-файлы (LISP source files), Скомпилированные LISP-файлы (Compiled LISP files) и Файлы проектов Visual LISP (Visual LISP project files)), помогающие добавлять в приложение компоненты нужного типа. Следующее окно (рис. 12.56) Файлы ресурсов (Resource Files to Include) не появится, если вы выбрали режим простого приложения (см. рис. 12.52).
Рис. 12.56. Диалоговое окно файлы ресурсов В качестве дополнительных ресурсов к вашему приложению могут быть добавлены элементы, перечисленные в раскрывающемся списке (три первых типа могли быть выбраны в предыдущем окне):
DCL-фаилы - это файлы диалоговых окон, структура которых в настоящей книге не изучается, но примеры которых можно найти в папке Support программного обеспечения системы AutoCAD 2000. DVB-файлы - это файлы приложений, написанные на языке Visual Basic for Applications (написание таких приложений тоже является темой для отдельной книги). Текстовые файлы - это любые текстовые файлы с расширением txt, в которых вы храните какую-то дополнительную информацию и которую приложению в какой-то момент нужно будет прочитать. После задания всех дополнительных ресурсов переходим в очередное окно - Параметры компиляции приложения (Application Compilation Options) (рис. 12.57).
Рис. 12.57. Диалоговое окно Параметры компиляции приложения В этом окне нужно выбрать режим компиляции Стандартная (Standard) или Оптимизация и Связывание (Optimize and Link). Оптимизация уменьшает размер объектного кода и время загрузки приложения, но при неправильном использовании зарезервированных символов может привести к неправильной работе приложения и системы AutoCAD. Последнее окно, в которое можно попасть с помощью мастера создания нового приложения, - это диалоговое окно Просмотр параметров / Сборка приложения (Review Selections / Build Application) (рис. 12.58). Если в данном окне сохранить флажок Собрать приложение (Build Application) и щелкнуть по кнопке Завершить (Finish), то Visual LISP создаст файлы приложения (с расширением vlx) и свойств приложения (с расширением prv). Если флажок сбросить и нажать на кнопку Завершить (Finish), то тогда будет создан только PRV-файл, по которому можно в дальнейшем собрать приложение. Для этого нужно воспользоваться подпунктом Собрать приложение (Make Application) одноименного пункта падающего меню Файл (File). Подпункт Свойства имеющихся приложений (Existing Application Properties) позволяет просмотреть и изменить свойства или состав приложения, а подпункт Перекомпилировать приложение (Rebuild Application) - перекомпилировать приложение, если изменились какие-то его компоненты (DCL-файлы, LSP-файлы и т. д.).
Рис. 12.58. Диалоговое окно Просмотр параметров / Сборка приложения Загрузить в среде Visual LISP собранное приложение можно с консоли с помощью функции AutoLISP load или пункта Загрузить файл (Load File) падающего меню Файл (File). Если приложение нужно загрузить в сеансе AutoCAD без среды Visual LISP, то используются либо функция load, либо пункт AutoLISP, Загрузить (Load) падающего меню Сервис (Tools), либо пункт Приложения (Load Application) того же меню.
Если вы хотите, чтобы ваше приложение автоматически загружалось при загрузке системы AutoCAD или открытии рисунка, вам необходимо добавить соответствующую строку на языке AutoLISP в файлы acad.lsp или acaddoc.lsp, например: (load "rcl.vlx") Ваше приложение с именем rcl.vix будет загружаться при загрузке того файла (acad.lsp или acaddoc.lsp), в который вы добавили эту строку. Файл acaddoc.lsp автоматически загружается при открытии каждого нового рисунка (для AutoCAD рисунки являются документами), а файл acad.lsp - только при начальной загрузке AutoCAD. Чтобы у системы AutoCAD был доступ к вашим файлам acad.isp и acaddoc.lsp, пути к ним должны быть внесены в пути доступа к файлам поддержки (см. рис. 11.5), либо файлы должны размещаться в рабочей папке AutoCAD, которая указана в настройке ярлыка AutoCAD на рабочем столе операционной системы Windows. Если вам нужно, чтобы приложение не только автоматически загружалось, но и автоматически выполнялось, добавьте в файл acad.isp или acaddoc.isp еще строку обращения к головной функции вашего приложения, например: (rcl)
![]() ![]()
электронной версии ©2002 ЦИТ СГГА - издатель Все права защищены. |