Читаем Введение в Автолисп полностью

В процессе создания и обработки примитивов Автолисп оперирует их характеристиками. Количество характеристик примитива зависит от его природы и сложности. Каждая характеристика определяется присущим ей так называемым DXF-кодом. Примерный смысл термина DXF (Drawing eXchange Format) - формат передачи графической информации. Полный список кодов можно найти, например, в [5, 6]. Некоторые часто используемые коды приведены в табл. 4.

Перечень или набор характеристик примитива представляет собой список, состоящий, в свою очередь, из подсписков, каждый из которых определяет одну из характеристик. Например, подсписок, определяющий положение начальной точки отрезка в трехмерном пространстве выглядит следующим образом:

(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. )

(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 (см. ниже).

<p>6.2. Точечная пара</p>

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

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

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

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

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

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

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

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных