Лекция 9. Работа с элементами ActiveX — КиберПедия 

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

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Лекция 9. Работа с элементами ActiveX

2021-06-30 55
Лекция 9. Работа с элементами ActiveX 0.00 из 5.00 0 оценок
Заказать работу

Цель лекции: приобрести простейшие навыки работы с элементами 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 - оформление трехмерной точки как варианта.


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

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

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

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...



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

0.014 с.