Auto CAD

Навыки и написание программ


Теперь давайте применим наши навыки для написания новой команды, которая будет автоматически вставлять существующий блок заголовка чертежа в текущий чертеж (листинг 8.2). Вы уже знакомы почти со всем, что необходимо для понимания этой программы. Чтобы проверить работу программы в том виде, в котором она написана, вам необходимо поместить файл tbinch.dwg с блоком заголовка чертежа в папку C:blocks. После того, как вы закончите набивать программу, снова выберите Load active edit window (Загрузить активное окно редактора).

Когда вы пытаетесь воспроизвести шаги этой программы вручную в командной строке, вы подавляете обычно всплывающее диалоговое окно, помещая минус перед названием команды. Версия команды INSERT (ВСТАВИТЬ) для команд-

ной строки выглядит как -INSERT (-ВСТАВИТЬ). Аналогично вы поступаете с командой LAYER (СЛОЙ). Но когда вы пишете программу, знак минуса не нужен. AutoLISP знает, когда не нужно открывать диалоговое окно.

Использование переменных

Давайте внесем ясность в определение переменных. В AutoCAD имеются так называемые системные переменные — это значения, которые в некотором роде управляют внешним видом и поведением AutoCAD. Например. OSMODE является системной переменной. Вы можете получить текущее значение для любой системной переменной, используя функцию getvar в формате (getvar "osmode").

Также вы можете описывать свои собственные программные переменные. Вы создаете такие переменные при помощи функции AutoLISP setq. Программные переменные, которые вы описываете, могут применяться для представления чего угодно: чисел, объектов, любого ввода пользователя, списков координат и т. д.

Чтобы усложнить различие, программные переменные, которые вы описываете, могут быть глобальными или локальными. Если переменные глобальные, то значение, которое им присвоено, сохраняется даже после завершения работы программы. Если то же имя переменной появится еще раз, ему уже будет соответствовать значение. Чтобы избежать нежелательных последствий, большинство пользователей определяют программные переменные в AutoLISP как локальные — но только после того, как закончат тестирование программы и убедятся, что она работает.

В программе, описывающей команду ZX, не потребовалось вводить дополнительную информацию ни из файла чертежа, ни со стороны пользователя. Программа ITB, которую вы только что написали, также не требует ввода дополнительной информации, но, возможно, вы захотите ее улучшить.

Комментарии закрыты