Введение в Автолисп | страница 26
(entget (entlast))
возвратит список, подобный приведенному в разделе 6.1.
(entmake список). Функция создает в чертеже новый примитив. Аргумент список должен содержать перечень всех необходимых характеристик примитива в формате, создаваемом функцией entget. Если введенных характеристик достаточно для однозначного описания примитива, он создается в чертеже, а функция возвращает список характеристик. В противном случае функция возвращает nil.
Перед созданием нового примитива функция проверяет, cyществуют ли в чертеже указанный слой, тип линий и цвет и при необходимости организует новый слой с указанным цветом. Что касается типа линий, то он должен быть загружен в чертеж отдельной командой. Точно так же анализируются имена блоков, текстовых и размерных стилей, если таковые указываются в списке. Все они должны уже существовать в чертеже или создаваться предварительно программным путем.
Дополнительные сведения об этих и других функциях обработки примитивов можно почерпнуть в [5, 6].
6.4. Наборы примитивов
На примере программы bolt.lsp можно было видеть, что организация некоторого набора примитивов оказывается полезной, если предполагается, что в дальнейшем с этим набором будут совершаться какие-либо операции. Наборы создаются функцией
(ssget [режим] [точка1 [точка2]] [список] [фильтры]),
которая формирует набор примитивов, определяемый аргументами. Будучи введенной без аргументов, функция предлагает оператору осуществить выбор примитивов вручную. Аргумент режим - это строка, определяющая метод выбора объектов. Допустимыми являются “W”, “WP”, “С”, “CP”, “L”, “P”, “I” и “F”. Возможен еще режим “Х”, осуществляющий выбор всех примитивов, созданных в чертеже. Аргументы точка1 и точка2 - отдельные точки или их список, присущие данному выбору. Аргумент фильтры - это ассоциированный список, определяющий свойства примитивов. Приводимые далее примеры заимствованы из [5].
(ssget) предлагает пользователю свободный выбор объектов и включает их в набор.
(ssget "P") организует набор из всех примитивов, принадлежащих предыдущему выбору.
(ssget “L”) создает набор, включающий в себя последний созданный объект, видимый на чертеже.
(ssget pt1) создает набор из всех примитивов, проходящих через точку pt1.
(ssget “W” pt1 pt2) создает набор из примитивов, находящихся внутри окна с диагональными углами в точках pt1 и pt2.
(ssget “С” pt1 pt2) - то же, но определяющей является секущая рамка.
(ssget “X”) создает набор из всех примитивов, сохраненных в графической базе чертежа.