
- •Содержание
- •Основные принципы настройки
- •Основные возможности настройки
- •Организация программных и вспомогательных файлов
- •Коротко об организации файлов
- •Работа с несколькими конфигурациями
- •Хранение чертежей в нескольких папках
- •Настройка шаблонов Интернет-публикаций
- •Создание пользовательских команд
- •Описание внешних команд
- •Псевдоимена команд
- •Настройка типов линий
- •Обзор описаний типов линий
- •Создание простых типов линий
- •Текстовые объекты в пользовательских типах линий
- •Формы в пользовательских типах линий
- •Пользовательские образцы штриховки
- •Коротко об описании образцов штриховки
- •Образцы штриховки из прерывистых линий
- •Образцы штриховки из составных линий
- •Настройка интерфейса пользователя
- •Обзор диалогового окна "Настройка интерфейса пользователя"
- •Термины, используемые при настройке
- •Изменения в настройке
- •Обзор редактора настройки интерфейса пользователя
- •Фильтр отображения элементов настройки
- •Работа с файлами настройки
- •Основные сведения о файлах настройки
- •Перенос и передача настроек
- •Создание и загрузка частичного файла НПИ
- •Создание корпоративного файла НПИ
- •Команды настройки
- •Создание, редактирование и повторное использование команд
- •Имена команды "Найти" и строки поиска
- •Управление отображением имен команд
- •Создание изображений для команд
- •Создание подсказок в строке состояния
- •Создание макросов
- •Использование в макросах специальных управляющих символов
- •Пауза для пользовательского ввода
- •Поддержка иностранных языков в макросах
- •Повторение команд в макросе
- •Метод выбора объектов "Единственный"
- •Использование макроса для перестановки элементов интерфейса пользователя
- •Использование условных выражений в макросах
- •Использование AutoLISP в макросах
- •Настройка панелей инструментов
- •Создание и редактирование панелей инструментов
- •Добавление или замена элементов управления панели инструментов
- •Создание раскрывающихся и контекстных меню
- •Создание раскрывающегося меню
- •Создание контекстного меню
- •Создание подменю
- •Обращение к раскрывающимся и контекстным меню
- •Подстановка и вставка раскрывающихся меню
- •Задание клавиш быстрого вызова и временной замены
- •Создание операции при двукратном нажатии
- •Настройка кнопок мыши
- •Ввод координат в меню кнопок
- •Настройка элементов интерфейса предыдущей версии
- •Создание планшетных меню
- •Настройка кнопок планшета
- •Создание экранных меню
- •Создание меню мозаики изображений
- •Загрузка файла AutoLISP
- •Настройка рабочего пространства
- •Вопросы и ответы по настройке интерфейса пользователя
- •DIESEL
- •Настройка строки состояния
- •Системная переменная MODEMACRO
- •Присвоение значений MODEMACRO
- •Выражения DIESEL в макросах
- •USERS1-5 Каталог функций языка DIESEL
- •+ (сложение)
- •- (вычитание)
- •* (умножение)
- •/ (деление)
- •= (равно)
- •< (меньше)
- •> (больше)
- •!= (не равно)
- •<= (меньше или равно)
- •>= (больше или равно)
- •angtos
- •edtime
- •eval
- •getenv
- •getvar
- •index
- •rtos
- •strlen
- •substr
- •upper
- •Сообщения об ошибках языка DIESEL
- •Слайды и командные сценарии
- •Создание слайдов
- •Коротко о слайдах
- •Просмотр слайдов
- •Создание и просмотр библиотек слайдов
- •Создание файлов сценариев
- •Коротко о файлах сценариев
- •Вызов сценария при загрузке программы
- •Демонстрация слайдов с помощью сценариев
- •Введение в интерфейсы программирования
- •ActiveX Automation
- •Коротко об ActiveX
- •Запуск приложения из командной строки
- •Запуск приложения из меню или с помощью панели инструментов
- •AutoCAD VBA
- •Основные сведения о AutoCAD VBA
- •Использование приложений AutoCAD VBA
- •Автоматическая загрузка и выполнение проектов VBA
- •AutoLISP и Visual LISP
- •Коротко об AutoLISP и Visual LISP
- •Работа с приложениями AutoLISP
- •Автоматическая загрузка и выполнение процедур AutoLISP
- •Файл ACAD.LSP
- •Файл ACADDOC.LSP
- •MNL-файл и AutoLISP-функции для меню
- •Предотвращение ошибок AutoLISP при выполнении файлов автозагрузки
- •Функция S::STARTUP: выполнение после завершения инициализации чертежа
- •ObjectARX
- •Коротко об ObjectARX
- •Работа с приложениями ObjectARX
- •Обзор .NET
- •Формы и шрифты
- •Коротко о файлах форм
- •Создание файлов описаний форм
- •Описания форм
- •Коды длин и направлений векторов
- •Специальные коды
- •Коды 0, 1 и 2: Конец формы и управление режимом построения
- •Коды 3 и 4: Управление размером
- •Коды 5 и 6: Сохранение и восстановление позиции
- •Код 7: Субформа
- •Коды 8 и 9: Смещения по X-Y
- •Код 00A: Октантная дуга
- •Код 00B: Дробная дуга
- •Коды 00C и 00D: Дуги, заданные прогибом
- •Код 00E: Флаг вертикального текста
- •Описания текстовых шрифтов
- •Файлы-образцы
- •Расширенный одноштриховой Roman
- •Расширенный стандартный шрифт UNICODE
- •Описания больших шрифтов
- •Описание большого шрифта
- •Создание файла расширенного большого шрифта
- •Использование большого шрифта в чертежах
- •Использование большого шрифта для создания специальных символов
- •Описания шрифтов Unicode
- •Верхние и нижние индексы в SHX-файлах
- •Указатель
Необходимость использования синтаксиса вида модуль.макрос обусловлена тем, что различные модули могут содержать макросы с одинаковыми именами.
Автоматическая загрузка и выполнение проектов VBA
Можно автоматически загружать ранее созданные проекты VBA при каждом запуске AutoCAD. При этом содержащиеся в таких проектах макросы стразу же становятся доступными. Кроме того, для автоматической загрузки нужных приложений может использоваться команда ЗАГПРИЛ.
acvba.arx — Автоматическая загрузка VBA
Работа с VBA возможна только после загрузки arx-модуля VBA в память, что происходит при первом выполнении любой из команд AutoCAD VBA. Для того, чтобы arx-модуль VBA автоматически загружался при запуске AutoCAD, следующую строку нужно добавить в файл acad.rx:
acvba.arx
Для автоматического выполнения макроса его следует добавить в файл acad.dvb и назвать AcadStartup. Макрос с именем AcadStartup из файла acad.dvb выполняется автоматически при загрузке модуля VBA.
acad.dvb — Автоматическая загрузка проекта VBA
Файл acad.dvb удобно использовать для загрузки отдельных объектов VBA при каждом запуске AutoCAD. При каждом запуске нового сеанса AutoCAD производится поиск и загрузка файла acad.dvb.
Если какой-либо макрос файла acad.dvb должен выполняться при создании нового или открытии имеющегося чертежа, в файл acaddoc.lsp следует добавить приведенный ниже код:
(defun S::STARTUP ( )
(command "_-vbarun" "updatetitleblock")
)
Имя проекта в данном примере - updatetitleblock.
AutoLISP и Visual LISP
AutoLISP основан на языке программирования LISP, который является простым и в то же время достаточно мощным. В AutoCAD имеется встроенный интерпретатор LISP, который позволяет вводить коды AutoLISP в командной строке или загружать
AutoLISP и Visual LISP | 207

их из внешних файлов. Интегрированная среда разработки Visual LISP (VLISP) предназначена для ускорения процесса создания программ на AutoLISP.
Коротко об AutoLISP и Visual LISP
Врезультате совершенствования AutoLISP появилась интегрированная среда разработки Visual LISP (VLISP), которая включает в себя компилятор, отладчик и ряд других средств, повышающих производительность. В языке появились новые возможности, которые позволяют взаимодействовать с объектами с использованием интерфейса ActiveX. Кроме того, на VLISP с помощью реакторов объектов можно обрабатывать различные события.
Вотличие от ObjectARX или VBA, в Visual LISP для каждого чертежа, открытого в многодокументной среде AutoCAD, имеется свое пространство имен и собственная среда. Пространство имен каждого чертежа является изолированным, что позволяет избегать конфликтов имен переменных, процедур AutoLISP среди одновременно открытых чертежей. Например, следующее выражение по-разному устанавливает значение переменной а для различных документов.
(setq a (getvar "DWGNAME"))
В Visual LISP имеется механизм загрузки символов и переменных из одного пространства имен в другое. Дополнительную информацию о пространствах имен см. в документации Руководство разработчика AutoLISP ( в меню AutoCAD "Справка" выберите "Дополнительные ресурсы" " Документация для разработчиков").
Приложения и процедуры AutoLISP могут взаимодействовать с AutoCAD различными способами. Они могут запрашивать необходимую информацию у пользователя, непосредственно обращаться к встроенным командам AutoCAD, создавать и изменять объекты в базе данных чертежа. В AutoCAD с помощью процедур AutoLISP можно создавать новые команды для решения конкретных задач. Некоторые из стандартных команд AutoCAD написаны на языке AutoLISP.
Приложения Visual LISP могут загружаться из файлов трех форматов:
■LSP-файлы (с расширением .lsp)—Текстовый файл ASCII, содержащий код программы AutoLISP.
■FAS-файлы (с расширением .fas)—двоичная скомпилированная версия одного файла программы LSP.
■VLX-файлы (с расширением .vlx)—скомпилированный набор одного или нескольких файлов LSP или DCL-файлов.
ПРИМЕЧАНИЕ Если существует несколько приложений AutoLISP с одинаковыми именами, загружается то из них, которое имеет наиболее
208 | Глава 7 Введение в интерфейсы программирования

позднюю дату изменения. То же самое происходит при загрузке файлов с расширениями LSP, FAS или VLX, если не указано полное имя файла, включая его расширение.
Поскольку AutoCAD может выполнять код AutoLISP непосредственно, его компиляция не требуется. Несмотря на то, что в Visual LISP имеется интегрированная среда разработки, для ознакомления с AutoLISP можно использовать командную строку: вводя в ней выражения, можно сразу же видеть результаты их выполнения. Это делает AutoLISP удобным языком для экспериментирования как для новичков, так и для опытных программистов.
Пользователи, не имеющие намерений писать собственные приложения на AutoLISP, тем не менее, могут найти много полезных процедур, входящих в комплект поставки AutoCAD. Имеется также большое число условно-бесплатных процедур и приложений, поставляемых сторонними разработчиками. Умение загружать и использовать такие приложения позволяет значительно повысить производительность работы.
ПРИМЕЧАНИЕ Если вызов команды производится с помощью функции command языка AutoLISP, подразумевается, что системные переменные PICKADD и PICKAUTO имеют значения 1 и 0, соответственно. Это обеспечивает совместимость с предыдущими версиями AutoCAD и упрощает настройку, так как пропадает необходимость проверки параметров этих переменных.
Дополнительную информацию о программировании на AutoLISP см. в документации
Руководство разработчика AutoLISP , а о функциях AutoLISP и Visual LISP - в
документации Справка по AutoLISP (в меню AutoCAD "Справка" выберите "Дополнительные ресурсы" " Документация для разработчиков"). В программах на AutoLISP можно использовать диалоговые окна. Документация о программируемых диалоговых окнах содержится только в документации Руководство разработчика AutoLISP.
Работа с приложениями AutoLISP
AutoLISP-приложения хранятся в текстовых ASCII-файлах с расширением .lsp. Каждый такой файл обычно начинается с заголовка, в котором описываются все процедуры файла и порядок их использования, а также приводятся дополнительные специальные указания. В заголовке также могут быть приведены данные об авторе и условиях использования программы, оформленные в виде комментариев. Строки комментариев начинаются с символа точки с запятой (;). Для просмотра и редактирования таких файлов можно использовать любой текстовый редактор или текстовый процессор, который сохраняет тексты в формате ASCII.
AutoLISP и Visual LISP | 209