История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Топ:
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Интересное:
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Дисциплины:
2021-06-30 | 63 |
5.00
из
|
Заказать работу |
|
|
Цель лекции: приобрести простейшие навыки работы с элементами ActiveX.
Объектная модель AutoCAD
Объекты ActiveX в системе AutoCAD рассматриваются как иерархия, содержащая примитивы, символьные таблицы, словари и пр. Однотипные объекты объединяются в семейства (collections).
Высшим элементом в иерархии является объект Application (AcadApplication). Этот объект является родительским для следующих объектов:
· Preferences (Настройки);
· VBE (объект интегрированной среды VBA-приложений);
· Documents (Документы);
· MenuBar (Строка меню);
· MenuGroups (Группы меню).
Эти объекты, в свою очередь, являются родительскими для объектов более низких уровней. Семейство Documents включает в себя объекты Document - открытые документы или рисунки. В семейство MenuGroups входят объекты типа MenuGroup (Группа меню или Группа адаптации). В семейство MenuBar входят объекты типа PopupMenu (Падающие меню, загруженные в строку меню).
Наиболее важным для практики является объект Document. Он включает в себя, в частности, такие семейства:
· Blocks (Блоки);
· ModelSpase (Пространство модели);
· PaperSpace (Пространство листа);
· Dictionaries (Словари);
· DimStyles (Размерные стили);
· Groups (Группы);
· Layers (Слои);
· Layouts (Листы);
· Linetypes (Типы линий);
· Plot (Печать);
· PlotConfigurations (Конфигурации печати);
· Preferences (Настройки чертежа);
· RegisteredApplications (Зарегистрированные приложения);
· SummaryInfo (Свойства чертежа);
· SelectionSets (Выделенные наборы);
· TextStyles (Текстовые стили);
· UCSs (Пользовательские системы координат);
· Utility (Утилита);
· Viewports (Видовые экраны);
· Views (Виды).
Полностью список объектов показан на рис. 9.1.
увеличить изображение
увеличить изображение
Рис. 9.1. Список объектов AutoCAD
В семейства Blocks, ModelSpase и PaperSpace входят объекты, которые соответствуют графическим примитивам. Pис. 9.1 взятизсправочнойслужбы AutoCAD: ActiveX and VBA Reference - Object Model.
|
Для реализации базовых инструментов объектной технологии в модели предусмотрены компоненты, называемые интерфейсами. В базовом интерфейсе описываются все типичные свойства и методы. Например, базовым интерфейсом всех графических примитивов является IAcadEntity. Он является родительским для интерфейса IAcadLine. С помощью этого интерфейса создаются объекты семейства AcDLine, представителем которого является объект Line.
Каждый объект в технологии ObjectX имеет свои свойства и методы. Свойства можно читать или изменять с помощью соответствующих функций. Функции, соответствующие методам, реализуются в командах с соответствующими параметрами. Элементами объектной модели являются также события. Они возникают в результате действий пользователя (Click) или при изменениях в программе (onLoad). Программа может отслеживать события и реализовать сценарий отклика на события.
С полным перечнем объектов, свойств, методов и событий можно познакомиться в справочной службе AutoCAD.
Функции и типы данных
Функции, реализующие технологию ActiveX в Visual LISP, имеют префиксы vla -, vlax-, vlr. Доступ к этим функциям можно получить только после выполнения в данном сеансе AutoCAD функции vl-load-com.
Работа с каждым из объектов в технологии ActiveX ведется на уровне указателей. Они носят название VLA -объекты. VLA -объектами являются указатели не только графических примитивов, но и документов, пространства модели и приложений.
Практически обязательной для всех приложений, использующих ActiveX, является следующая структура функций:
(defun begin_activex (/)(vl-load-com)(setq acad_app (vlax-get-acad-object))(setq active_doc (vla-get-activedocument acad_app))(setq model_space (vla-get-modelspace active_doc))(setq paper_space (vla-get-paperspace active_doc))); defunВ результате выполнения функции begin_activex будут получены следующие VLA -объекты:
· acad_app приложение AutoCAD;
· active_doc активный документ;
· model_space пространство модели;
· paper_space пространство листа.
После получения основных VLA -объектов можно через них обращаться к другим элементам иерархии системы AutoCAD (примитивам, таблицам и пр.) для получения или модификации их свойств и методов. Основным средством получения VLA -объекта для примитива является функция vlax-ename-> vla -object. Обратная функция vlax- vla -object->ename.
|
Кроме VLA -объектов, в ActiveX используют новые типы данных: безопасные массивы и варианты.
Безопасные массивы являются массивами однотипных объектов. Они создаются с помощью функций
· vlax-make-safearray;
· vlax-safearray-put-element;
· vlax-safearray-fill.
Для извлечения данных из безопасных массивов с целью использования обычных LISP-функций применяются функции:
vlax-safearray-get-dim;vlax-safearray-get-l-bound;vlax-safearray-get-u-bound;vlax-safearray-get-element;vlax-safearray-type.Для преобразования массива в список используют функцию
vlax-safearray->list.Варианты - это структуры, которые могут хранить однотипные данные. Тип данных является типом варианта. Создание варианта выполняется с помощью функции (vlax-make-variant [<данное> [<целое>]]).
В качестве второго аргумента передается целое число, задающее тип варианта. Если оно опущено, то тип варианта определяется по типу первого аргумента. В качестве значения аргумента <целое> используются зарезервированные константы.
Константа | Значение | Описание |
Vlax-vbEmpty | 0 | Неинициализированный (значение по умолчанию) |
Vlax-vbNull | 1 | Пустой (без данных) |
Vlax-vbInteger | 2 | Короткое целое число |
Vlax-vbLong | 3 | Длинное целое число |
Vlax-vbSingle | 4 | Вещественное число |
Vlax-vbDouble | 5 | Вещественное число с двойной точностью |
Vlax-vbString | 8 | Строка |
Vlax-vbObject | 9 | Объект |
Vlax-vbBoolean | 11 | Булево значение |
Vlax-vbArray | 8192 | Массив |
Примеры функций, выполняющих операции с вариантами:
· vlax-variant-type - получение типа варианта;
· vlax-variant-value - получение значения варианта;
· vlax-variant-change-type - изменение типа варианта;
· vlax-variant-type - оформление трехмерной точки как варианта.
|
|
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!