Выбрать главу

(10 2.2 5.0 3.1),

где 10 - код начальной точки, остальные три числа - координаты x, у, z точки.

Tаблицa 4. Часто применяемые DXF-коды

Код Значение
-4 Условный оператор, используемый при создании набора примитивов
-1 Код имени примитива
0 Код типа примитива
5 Код метки
6 Код типа линий
7 Код текстового стиля
8 Код имени слоя
10 Код начальной (базовой) точки. Для линии - это начальная точка, для дуги или окружности - центр, для текста - точка вставки
11 ... 18 Коды характеристик других точек примитива
40 У дуги и окружности - код радиуса, у текста - код высоты
48 Код масштаба типа линий
62 Код номера цвета

Если подсписок содержит только два элемента, он может образовывать уже упоминавшуюся ранее точечную пару (Dotted Pair). Извлекая из чертежа характеристики отрезка прямой, мы можем получить строку, подобную следующей:

((-1. <Entity name: 60000B16>)

(0 . “LINE”)

(6. “CONTINUOUS”)

(8. “CONTUR”)

(10 3.1 4.8)

(11 5.6 8.7)

(62 . 2))

На основании этой характеристики можно утверждать, что извлечен отрезок сплошной линии красного цвета, расположенный в слое CONTUR. Координаты начальной точки (3.1 4.8), конечной - (5.6 8.7). Пять подсписков в примере являются точечными парами.

Следует заметить, что на экран возвращаются лишь те параметры примитива, которые отличаются от параметров по умолчанию.

Среди характеристик примитива находятся две, выделяющие его из всего множества элементов чертежа как единственный и неповторимый объект. Это имя примитива и его метка (handle). И то и другое создается Автокадом и сохраняется в базе данных чертежа. Но если имя примитива может меняться от сеанса к сеансу, метка сопровождает примитив на протяжении всего его существования. Кроме того, метка может быть использована для восстановления примитива, удаленного функцией entdel (см. ниже).

6.2. Точечная пара

Точечная пара представляет собой особый вид списка, состоящий всегда только из двух элементов. Этот список создается Автокадом для использования в графической базе данных. Достоинство точечной пары по сравнению с обычным списком из двух элементов заключается в том, что пара занимает меньший объем памяти, экономя, таким образом, дисковое пространство и оперативную память. В процессе выполнения чертежа Автокад создает множество точечных пар, используемых для численного описания характеристик примитивов, что демонстрируется примером в предыдущем параграфе.

Точечная пара не может быть создана средствами только Автолиспа. Большинство функций вообще не работают с точечными парами. Исключение составляют уже описанные ранее car, cdr и описываемая ниже функция assoc, осуществляющая ассоциативную связь между элементами пары.

Поскольку пара создается Автокадом, то функция Автолиспа, используемая для создания точечной пары, должна быть пропущена через Автокад. Например, выражение (cons 1 “One”) создает список из двух элементов. Но, будучи введенной в командную строку Автокада, та же функция является основой для возникновения точечной пары. Действительно,

command: (setq d1 (cons 1 “One”)) возвращает (1 . “One”).

Подобным образом точечная пара может быть создана, если выдержаны два условия. Второй элемент пары должен восприниматься Автокадом как атом, а первый - обладать структурой, способной играть роль ассоциативной единицы (например, соответствовать какому-либо DXF-коду).

6.3. Средства обработки отдельных примитивов