Введение в Автолисп | страница 25
Поскольку пара создается Автокадом, то функция Автолиспа, используемая для создания точечной пары, должна быть пропущена через Автокад. Например, выражение (cons 1 “One”) создает список из двух элементов. Но, будучи введенной в командную строку Автокада, та же функция является основой для возникновения точечной пары. Действительно,
command:(setq d1 (cons 1 “One”)) возвращает (1 . “One”).
Подобным образом точечная пара может быть создана, если выдержаны два условия. Второй элемент пары должен восприниматься Автокадом как атом, а первый - обладать структурой, способной играть роль ассоциативной единицы (например, соответствовать какому-либо DXF-коду).
6.3. Средства обработки отдельных примитивов
Обращение к примитиву обычно осуществляется через его идентификатор. В дальнейшем изложении обозначение имя_пр имеет тот смысл, что соответствует конкретному примитиву, однозначно определенному любым доступным способом. Поддержку обработки примитивов обеспечивают описываемые ниже функции.
(entlast). Функция используется для вызова последнего неудаленного примитива, добавленного в базу данных явным образом или с помощью функции command. При этой операции возвращается имя примитива.
(entnext [имя_пр]). Если функция используется без аргумента имя_пр, она возвращает имя первого неудаленного примитива в базе данных. Если имя_пр указано, возвращается имя следующего за ним примитива. Например:
(setq e1 entnext) присваивает идентификатор e1 первому примитиву графической базы данных,
(setq e2 (entnext e1)) присваивает е2 примитиву, следующему за e1.
(entdel имя_пр). Если примитив имя_пр присутствует в чертеже, он удаляется. Если этот примитив был ранее удален в текущем сеансе, он восстанавливается. Например, если с помощью функции entnext были выполнены операции, указанные в предыдущем примере, использование функции entdel приводит к следующим результатам:
(entdel e1) удаляет из чертежа примитив e1,
(entdel e1) восстанавливает удаленный примитив e1.
Операция восстановления примитива может быть осуществлена на любом этапе выполнения и редактирования чертежа. В этом ее отличие от механизма действия команды undo, которая последовательно, от конца к началу, отменяет результаты действий оператора. Функция же entdel восстанавливает любой примитив, если он был именован.
(entget имя_пр). Функция возвращает ассоциированный список, содержащий характеристики примитива. Пусть последним созданным примитивом был отрезок прямой в слое CONTUR, цвет примитива - красный, начальная точка примитива - (3.1 4.8), конечная - (5.6 8.7). Тогда функция