Page 33 - AutoLISP и Visual LISP в среде AutoCAD
P. 33
2.15. МЕХАНИЗМ ДОСТУПА К ПРИМИТИВАМ
И ГРАФИЧЕСКАЯ БАЗА ДАННЫХ
Любой создаваемый в AutoCad чертеж состоит из примитивов,
геометрическое описание которых хранится в специальном формате в файле
чертежа (расширение .dwg). При загрузке чертежа AutoCad заполняет
графическую базу данных: записывает системные настройки, создает список
объектов и вносит в графическую базу данных (ГБД) геометрическое
описание этих объектов, присваивая каждому примитиву уникальное имя. В
сеансе редактирования каждый примитив (отрезок, дуга, окружность и т.п.)
имеет свое имя, по которому его распознает сам AutoCad. Так как эти имена
меняются от одного сеанса редактирования к другому, не имеет смысла их
хранить, по крайней мере, дольше сеанса редактирования. В программе на
AutoLisp сначала следует найти имя примитива в базе данных AutoCad,
чтобы впоследствии непосредственно манипулировать геометрическими
характеристиками примитива.
Используя AutoLisp можно модифицировать данные в ГБД, но если
нужно добавить новый примитив, то для создания объектов можно
использовать функции entmake и entmakex.
Функции для работы с примитивами
Функция Назначение
(entnext [имя_примитива]) Если вызывается без аргументов, эта
функция возвращает имя примитива
первого не удаленного примитива в базе
данных. Если функция вызывается с
аргументом имя_примитива, она
возвращает имя первого не удаленного
примитива, следующего за имя_примитива
в базе данных. Если нет следующего
примитива в базе данных, возвращается nil
(entlast) Возвращает имя последнего не удаленного
примитива в базе данных
(entsel [подсказка] ) Позволяет выбрать примитив. Возвращает
список из имя_примитива и координат
точки, при помощи которой примитив был
выбран.
Пример:
(<Entity name: 4005fd70> (119.516 102.593
0.0))
(entdel имя_примитива) Удаляет примитив, обозначенный
имя_примитива, в текущем чертеже, или
восстанавливает примитив, если он был
предварительно удален в этом сеансе
редактирования
32