Програмування на vba для autocad
Інтерфейс 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
ВИЗНАЧЕННЯ КОМПОНЕНТІВ ПРОЕКТУ
Проект може складатися з різних компонентів це:- об'єкти
- форми
- стандартні модулі
- модулі класу
- посилання
ОГЛЯД КОМАНД 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
- 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
- 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