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

(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). Тогда функция

(entget (entlast))

возвратит список, подобный приведенному в разделе 6.1.

(entmake список). Функция создает в чертеже новый примитив. Аргумент список должен содержать перечень всех необходимых характеристик примитива в формате, создаваемом функцией entget. Если введенных характеристик достаточно для однозначного описания примитива, он создается в чертеже, а функция возвращает список характеристик. В противном случае функция возвращает nil.

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

Дополнительные сведения об этих и других функциях обработки примитивов можно почерпнуть в [5, 6].

<p>6.4. Наборы примитивов</p>

На примере программы 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”) создает набор из всех примитивов, сохраненных в графической базе чертежа.

(ssget “X” список__фильтров) создает набор из всех объектов чертежа, удовлетворяющих списку фильтров.

(ssget список_фильтров) предлагает пользователю свободный выбор, но в набор включает лишь те объекты, которые удовлетворяют списку фильтров.

Организацию списка фильтров можно проследить на следующем примере:

(ssget “X” ‘((0 . “CIRCLE”) (-4 . “>=”) (40 . 2.0)))

Функция создает набор из всех окружностей, имеющихся в чертеже, радиус которых равен или превышает 2.0.

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

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

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

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

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

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

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

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

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