Моя попытка перевести ActiveX and VBA developer's guid (c) Autodesk 12.03.1999
ОГЛАВЛЕНИЕ
ГЛАВА 1. Введение, обзор команд, объектная модель
ГЛАВА 2. Доступ к иерархии объектов, коллекции, свойства и методы
ГЛАВА 3. Управление окружением, выражения, ввод от пользователя, командная строка
ГЛАВА 4. Создание и редактирование примитивов, наборы (SelectionSets) объектов
ГЛАВА 5. Слои, цвета и типы линий, работа с Text и MText
ГЛАВА 6. Размерности, допуски и указатели
ГЛАВА 7. Настройка меню и панелей инструментов
ГЛАВА 8. Отслеживание событий
ГЛАВА 9. Работа с трехмерными поверхностями
ГЛАВА 10. Вычерчивание и настройка разметки (LAYOUTS)
ВВЕДЕНИЕ
Интерфейс AutoCAD ActiveX/VBA дает некотрые приимущества по сравнению с другими AutoCAD API. Это 1. Скорость - т.к. в отличие от AutoLISP приложений выполнение происходит внутри процесса; 2. Простота использования - простой язык программирования; 3. Межпрограмный обмен - т.к. VBA и ActiveX разрабатывались для взаимодействия с другими Windows-приложениями. 4. Огромное количество программистов пишущих на VBA
ПОНЯТИЕ ВНЕДРЕННЫХ И ГЛОБАЛЬНЫХ ПРОЕКТОВ VBA
Приложение Autocad VBA представляет собой набор программных модулей, модулей классов и форм. Пороект может быть сохранен как в рисунке (внедренный) так и во внешнем файле. Внедренный проект автоматически загружается при открытии рисунка. Ограничение внедренных проектов в том, например, что они не могут закрыть рисунок внутри которого находятся. Глобальные проекты в этом плане более гибки, при этом однако пользователь должен знать где расположен файл в котором хранятся макросы. Глобальный проект проще передавать другим пользователям и в нем удобно хранить общие макросы. В любой момент могут быть использованы оба типа проектов. На уровне двоичного кода проект Autocad VBA не совместим с проектом Visual Basic, однако обмен формами, модулями и классами можно произвоидить через экспорт- импорт. (Команды IMPORT и EXPORT VBA)
ЗАГРУЗКА СУЩЕСТВУЮЩЕГО ПРОЕКТА
При загрузке проекта все глобальные процедуры, называемые так же макросами становятся доступными для использования. Загрузить проект можно через VBA-менеджер или с командной строкиVBALOAD
. Кроме того автокад грузит автоматически проект с именем acad.dvb, который может найти в путях файлов поддержки. При загрузке проекта может появиться предупреждение что он содержит макросы и значит может содержать и вирусы. Выгрузка проека команднойVBAUNLOAD
приводит к высвобождению памяти ранее занятой проектом. Внедрить проект в рисунок можно с помощью VBA-менеджера, он же позволяет извлечь проект из рисунка, при этом предлагая сохранить его в отдельном файле. Чтобы среда разработки VBA автоматически грузилась с автокадом, в файл acad.rx нужно внести строку acadvba.arx
ОПРЕДЕЛЕНИЕ КОМПОНЕНТОВ ПРОЕКТА
Проект может состоять из различных компонентов это:Добавить компонент можно через меню Insert, компоненты так же можно импортировать из файлов (.frm, .bas, .cls).
- Объекты
- Формы
- Стандартные модули
- Модули класса
- Ссылки
ОБЗОР КОМАНД VBA AUTOCAD
- VBAIDE - открывает окно VBA IDE, позволяющее редактировать, запускать и отлаживать программы
- VBALOAD - загружает проект
- VBARUN - запускает макрос на выполнение
- VBAUNLOAD - выгружает проект, освобождая память
- VBAMAN - показывает окно менеджера VBA
- VBASTMT - позволяет выполнить команду VBA в командной строке Автокада
ПОНЯТИЕ ОБЪЕКТНОЙ МОДЕЛИ АВТОКАД
Все объекты Автокад организованы в виде иерархической структуры. Корнем дерева является объект1. Application
Через объект
Application
можно получить доступ к следующим объектам:Через объект
- 1.1 Preferences
- 1.2 Documents
- 1.3 MenuBar
- 1.4 MenuGroups
Preferences
можно получить доступ к следующим объектамЧерез объект
- 1.1.1 PreferencesDisplay
- 1.1.2 PreferencesDrafting
- 1.1.3 PreferencesFiles
- 1.1.4 PreferencesOpenSave
- 1.1.5 PreferencesOutput
- 1.1.6 PreferencesProfiles
- 1.1.7 PreferencesSelection
- 1.1.8 PreferencesSystem
- 1.1.9 PreferencesUser
Documents
можно получить доступ к объектуDocument
а через него к большинству других объектов и коллекций:В двух последних расположены объекты автокад видимые на рисунке, это
- 1.2.1 Blocks (блоки)
- 1.2.2 Dictionaries (словари)
- 1.2.3 DimStyles (размерные стили)
- 1.2.4 Groups (группы)
- 1.2.5 Layers (слои)
- 1.2.6 Layouts ()
- 1.2.7 Linetypes (типы линий)
- 1.2.8 PlotConfigurations (настройки плоттеров)
- 1.2.9 RegisteredApplications (зарегистрированные приложения)
- 1.2.10 SelectionSets (наборы)
- 1.2.11 TextStyles (стили текста)
- 1.2.12 UserCoordinateSystems (системы координат определенные пользователем)
- 1.2.13 Views (виды)
- 1.2.14 Viewports (видовые экраны)
- 1.2.15 DatabasePreferences ()
- 1.2.16 Plot (печать)
- 1.2.17 Utility (служебные программы)
- 1.2.18 ModelSpace (пространство модели)
- 1.2.19 PaperSpace (пространство листа)
- 3DFace
- 3DPoly
- 3DSolid
- Arc
- Attribute
- AttributeReference
- BlockReference
- Circle
- Dim3PointAngular
- DimAligned
- DimAngular
- DimDiametric
- DimOrdinate
- DimRadial
- DimRotated
- Ellipse
- ExternalReference
- Hatch
- Leader
- LWPolyline
- Line
- MInsertBlock
- MLine
- MText
- Point
- PolyfaceMesh
- Polyline
- PolygonMesh
- RasterImage
- Ray
- Region
- Shape
- Solid
- Spline
- Text
- Tolerance
- Trace
- Xline
Читать дальше - В начало - На главную