Функции доступа к табличным данным и неграфическим объектам — КиберПедия 

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Функции доступа к табличным данным и неграфическим объектам

2021-06-30 36
Функции доступа к табличным данным и неграфическим объектам 0.00 из 5.00 0 оценок
Заказать работу

Помимо примитивов в рисунке всегда присутствует определенный объем неграфической информации: описания блоков, таблицы слоев, таблицы видовых экранов, таблицы типов линий, размерные стили и т. п. Все они хранятся в базе рисунка примерно в том же виде, что и примитивы.

Для доступа к табличным объектам в языке AutoLISP имеются такие функции:

· (tbinext <таблица> [<признак>]) - чтение характеристик очередного объекта из таблицы. Допустимые значения параметра <таблица> приведены ниже. Если параметр <признак> задан и отличен от nil, то возвращаются данные первого элемента таблицы. Иначе возвращаются данные объекта, следующего за тем, который был прочитан в предыдущем обращении к функции tbinext с той же таблицей. Если требуемого объекта нет или таблица пуста, то возвращается nil;

· (tbiobjname <таблица><заголовок>) - определение объекта таблицы по его заголовку (имени блока, слоя и т. п.). Возвращается имя объекта (аналогично имени примитива) в базе рисунка. Если объект не найден, то возвращается nil.

· (tbisearch <таблица><заголовок> [<следующий>]) - получение списка с характеристиками объекта таблицы по его заголовку. Возвращается список, соответствующий найденному объекту (или nil, если объект не обнаружен). Если параметр <следующий> задан и не равен nil, то указатель функции tbinext устанавливается на имя элемента <заголовок>. Следующее обращение к функции tbinext вернет данные об объекте, расположенном в таблице после объекта, использованного в качестве аргумента в функции tbisearch.

В качестве допустимых значений параметра <таблица> во всех трех функциях могут фигурировать только следующие текстовые строки:

· "BLOCK" - таблица описаний блоков;

· "LAYER" - таблица слоев;

· "LTYPE" - таблица типов линий;

· "STYLE" - таблица текстовых стилей;

· "DIMSTYLE" - таблица размерных стилей;

· " UCS " - таблица именованных систем координат;

· "VIEW" - таблица именованных видов;

· "VPORT" - таблица конфигураций видовых экранов;

· "APPID" - таблица имен приложений.

Схема использования рассмотренных функций будет ясна из примеров:

(5etq lay1 (tbinext "LAYER" T)) - возвращает список с данными первого слоя рисунка (первым слоем должен быть слой с именем "0"), например: ((0. "LAYER") (2. "0") (70. 0) (62. 7) (6. "Continuous")). В этом списке в точечной паре с DXF -кодамиотражаются следующие свойства:

0 - находится имя таблицы, в которой ищется неграфический объект,

2 - имя слоя,

6 - тип линий примитивов слоя по умолчанию (т. е. каким типом отображать объекты с типом линии BYLAYER),

62 - цвет слоя по умолчанию,

70 - состояние слоя по отношению к операциям блокирования, замораживания; нетрудно заметить, что аналогичные DXF -коды используются в списке, возвращаемом функцией entget для примитивов.

(setq lay2 (tbinext "LAYER")) - возвращает список с данными второго слоя рисунка, например: ((0. "LAYER") (2. "стена1") (70. 4) (62. 40) (6. "ограждение1"));

(setq lay2name (tbiobjname "LAYER" "Стена1")) - возвращает <Имя объекта: 14аа570>; теперь с помощью функции entget можно получить тот же список, что и lay2 в предыдущем примере.

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

Свойствами, аналогичными таблицам, обладают в рисунке словари (dictionaries). К ним относятся, например, словари стилей мультилиний, групп, растровых изображений, листов чертежа. Пользовательские приложения могут создавать свои словари. Следующие функции выполняют операции над словарями и их элементами:

· (dictadd <словарь><символ><новый>) - добавление нового объекта к словарю;

· (dictnext <словарь> [<признак>]) - чтение очередного символа из словаря (аналогична функции tbinext, но работает со словарями);

· (dictremove <словарь><символ>) - удаление символа словаря;

· (dictrename <словарь><старое><новое>) - переименование символа словаря;

· (dictsearch <словарь><символ> [<следующий>]) - поиск символа в словаре (аналогично функции tbisearch);

· (layoutlist) - получение списка имен листов текущего рисунка;

· (namedobjdict) - получение имени корневого словаря неграфических объектов рисунка;

· (setview <вид> [<в экран>]) - установка вида в видовом экране;

· (snvalid <имя>) - проверка имени таблицы символов на недопустимые знаки.


Поделиться с друзьями:

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.012 с.