Ввод команд в системе
AutoCAD осуществляется с помощью меню или из командной
строки. При вызове того или иного пункта меню ситеме
передается управлющий код. Управляющий код может быть
простым или сложным, включающим в себя различные проверки,
переходы по условиям, загрузку и запуск программы на
исполнение.
Запуск программы с командной строки выглядит следующим
образом:
загрузка программы (Load "prog_name")
вызов программы на исполнение (C:prog_name)
Для удобства использования программ на AutoLISP, создайте
свое меню для запуска программ. Создайте текстовый файл
с расширением *.MNU по анологии с ACAD.MNU, или модифицируйте
последний. Включите программу одним из пунктов меню.
При выботе пункта меню будет выполняться загрузка (если
программа не загружена ранее) и запуск AutoLISP программы.
Если Вы создаете свое меню с именем, например, MY.MNU,
скопируйте и файл ACAD.MNL в MY.MNL. В файлы с таким
расширением необходимы для подгрузки необходимых программ.
Можно загрузить все программы, используемые в меню и
вызывать их уже как команды AutoCAD'а, но это время
и ненужная загрузка оперативной памяти.
Пункты меню удобнее добавлять в файл acad.mns, т.к.
при этом сохраняется установка (видимость, положение
на экране) палитр меню.
Файл меню состоит из нескольких разделов. Нам интересны
разделы POP1...POP15 - падающие группы текстового меню
и TOOLBARS - палитры (или иконки) меню и графическое
меню IMAGE.
Текстовое
Падающее меню
Каждая группа
меню начинается с записи идентификатора следующего вида
*** POP<N>
- где <N> определяет порядковый номер падающего
меню, ниже следует
**DRAW
- название группы, которой будет отображаться в строке
меню , по которому к нему можно обращаться, после этого
идут пункты меню. Ниже приведен пример:
В квадратных скобках написано то, что будет на экране,
знак & определяет букву, по которой происходит вызов
с клавиатуры, на экране эта буква будет подчеркнута.
Далее ^C^C - отмена любой предыдущей команды
AutoCAD'а, затем вызов собственно программы или встроенной
команды. ^P - отмена эха выполнения команд в командной
строке.
На экране отобразится лишь то, что в квадратных скобках
(пункты меню).
***POP7 - порядковый номер меню на экране.
В каждом файле падающие группы меню должны нумероваться
от 1 до ..., без пропусков.
**DRAW - название ниспадающего меню, которое высвечивается
в строке текстового меню.
Если мы захотим вставить пункт в одну из групп меню,
вызывающий программу CONUS, запишем по аналогии следующее:
[Конус]^C^C^P(progn (load "conus")(C:conus))
Сначала надо загрузить программу на лиспе,
записанную в файле CONUS, а затем вызвать ее на выполнение.
Лучше проверить, может программа уже загружена, тогда
грузить ее снова не стоит: [Конус]^C^C^P(progn (if (= C:conus nil) (progn (terpri)
(prompt "Please wait...Loading Conus")(load
"conus"))) (C:conus))
Как видно эта строка уже обросла опреатором
IF и дополнительными комментариями, которые можно безболезненно
убрать и строка примет вид - [Конус]^C^C^P(progn (if (= C:conus nil) (load "conus"))
(C:conus))
В тексте программы всегда должна быть главная подпрограмма,
начинающаяся с
(defun C:conus ( / ........
это имя и надо указывать привызове.
В большинстве случаев имя программы совпадает с именем
главной подпрограммы. В большинстве случаев при нормальной
загрузке программы в командной строке появляется информация
об этом и имя вызываемой (главной) подпрограммы.
В падающее текстовое меню можно вложить раскрывающееся
к пукту подменю. Так при наведении на пункт "ФОРМАТКА
ЧЕРТЕЖА" появятся два пункта подменю - "СПЕЦИФИКАЦИЯ"
и "МАТЕРИАЛ". Сделать это просто. Обратите
внимание на два знака ->
<- и Все.
Так называемое меню
- ПАЛИТРЫ, позволяет запускать команды АвтоКАДа, указывая
на графические элементы (иконки), которые группируются
в палитры и могут находиться в любом месте экрана.
В файле меню раздел палитр начинается следующим образом:
***TOOLBARS название раздела
**ОБЩАЯ имя палитры
[_Toolbar("Общая", _Floating, _Show, 0, 2, 1)]
параметры палитры "ОБЩАЯ" (плавающая,
видна на экране, координаты). Параметры можно написать
здесь произвольные, а установить их уже на экране.
_Flyout - указывает, что иконка вызывает другую,
вложенную, палитру "PG" - строка, которая будет высвечиваться,
как помошь или пояснение, при наведении мышки на эту
иконку. "PG16.bmp" - файл самой иконки размером
16х16 или 24х24 для разных рарешений
Далее сказано, что палитра "ОБЩАЯ" включает
в себя другую палитру, находящуюся в файле меню PG (PG.MNS)
и имеющую имя "TB_PG_MAIN".
Здесь есть и отдельные кнопки для запуска программ
и кнопки вложенных палитр.
Надеюсь все понятно !
Иконное
меню выбора
Иногда необходимо
или более удобно и наглядно выполнить какой-то выбор
типовых элементов (болты, гайки, шайбы) по рисунку или
схеме. Средства АвтоКАДа позволяю включить такой выбор
в меню. Для этого необходимо создать слайды с нужным
изображением, сгруппировать их в библиотеку (для удобства)
и сделать следующее
Включить в текстовый раздел меню подобную строку
[Фланцы, штуцера ...]^C^C^P$I=PG.lap1 $i=PG.*
где после названия пункта меню, управляющих символов
^C^C^P - идет указание на вызов меню типа IMAGE из файла
PG (PG.MNS) с именем LAP1. Затем $i=PG.* - вызывает
окно со слайдами.
[izdelie(flange)] - имя библиотеки со слайдами
(имя слайда в библиотеке)
или просто - укажите имя слайда, но лучше слайды меню
объединить в библиотеку - меньше файлов.
(progn(load "izdelie")(izdelie)) - описанная
ранее процедура вызова программы.