Програмування на 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

ВИЗНАЧЕННЯ КОМПОНЕНТІВ ПРОЕКТУ

Проект може складатися з різних компонентів це:
  • об'єкти
  • форми
  • стандартні модулі
  • модулі класу
  • посилання
Додати компонент можна через меню 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