Основы автоматизированного проектирования химических производств. Миронов В.М - 141 стр.

UptoLike

Составители: 

141
8.16. Переустановка системных переменных
(GETVAR_<имя переменной>) - считывает в программу значение систем-
ной переменной.
(SETVAR_<имя переменной><значение переменной>)- переустанавливает
значение переменной и возвращает новое ее значение.
(SETQ_A_(GETVAR_"ANGBASE")) - записывает в А действительное чис-
ло, определяющее направление угла.
(SETVAR_"CMDECHO"_0) - задается значение системной переменной
CMDECHO, равное нулю, что приводит к исчезновению "эха" выполняемых
команд. Восстанавливается "эхо" функцией
(SETVAR_"CMDECHO"_1).
Отключение "
эхо"-команд полезно, когда программа выдает полезные
сообщения. В любом случае отключение "эха" ускоряет выполнение про-
граммы.
8.17. Наборы примитивов. Функции типа SS
Программы на AutoLISPе могут работать с графическими объектами. К
ним относятся:
- примитивы AutoCADа, имеющиеся на экране в процессе работы про-
граммы;
- совокупность таких примитивов, называемая в AutoLISPе "наборами".
Графические объекты могут быть введены в программу с помощью имен
переменных. После этого этим именем можно оперировать. Изменение их
характеристик в
программе приводит к изменению изображения на экране.
В сеансе редактирования каждый примитив AutoCADа (отрезок, дуга,
окружность и т.д.) имеет свое имя, по которому его распознает AutoCAD.
Имена от сеанса к сеансу меняются, в связи с этим хранить их не имеет
смысла. Поэтому, прежде всего, следует в программе на AutoLISPе найти
имя
примитива, чтобы затем его использовать.
Если нарисовать отрезок в AutoCADе и из его командной строки дать
команду (SETQ_ENAME(ENTLAST)) то AutoCAD вернет
<имя примитива: 60000018> (это к примеру, не обязательно).
Имя примитива - это новый тип данных AutoLISPа. Если функция (ENTGET)
требует имя примитива, то нельзя указывать число, а надо передать перемен-
ную, например ENAME в которой
хранится это имя.
(SETQ_EDATA_(ENTGET_ENAME) В результате выполнения операции
получим:
((-1.<имя примитива: 60000018>_(0._"LINE")(8._"0")(10_1.0_2.0_0.0)
(116.0_6.0_0.0))
((-1.<имя примитива: 60000018>