![]() |
Translate to: |
||||||
| Обратная связь | Новости САПР | Программы | Документация | Полезные советы | Обзорные статьи | ||
| Заказ и разработка | Каталог САПР | САПР-конференция | Библиотека ГОСТов | Наши соавторы | Коммерческое ПО | ||
ActiveX Automation это стандартный метод Microsoft для представления частей приложения и обеспечения доступа для использования другими приложениями. VBA - это скриптовый язык, базирующийся на стандартном Visual BASIC, который Microsoft внедряет в свои приложения. Используя VBA Вы можете настраивать приложение, создавая программы, которые управляют теми частями приложения, которые предоставлены через ActiveX Automation.
AutoCAD поддерживает подобный вид настройки с помощью AutoLISP, но программирование на AutoLISP не всегда просто. Команды загадочные, встроенная отладка ограничена, и всюду круглые скобки.
ActiveX Automation позволяет вам создавать приложения на любом языке который поддерживает интерфейс ActiveX Automation: C++ и Delphi, к примеру, и конечно Visual BASIC. Все это отдельные среды, кторые не интегрированы в AutoCAD. VBA, с другой стороны, встроен в среду AutoCAD, и нет необходимости приобретать дополнителные программные средства.
Другое преимущество для ActiveX Automation и среды VBA - уровень доступной поддержки. Не много программистов знакомы с AutoLISP, а с помощью ActiveX Automation, программирование в AutoCAD доступно для специалистов в Visual BASIC и VBA. Даже лучше, VBA позволяет вам программировать самим и для себя. BASIC был разработан как язык для начинающих, и Visual BASIC продолжает эту традицию. continues that tradition. Если вы изучите несколько простых программных концепций, вы сами сможете настраивать AutoCAD!
VBA также использует любый средства управления ActiveX, которые доступны сегодня. Вы хотели бы добавить датчик продвижения процесса чтобы показать, как быстро выполняется задача? Или возможно вставить мультипликацию чтобы развлечь ваших пользователей, пока они ожидают? С помощью VBA, достаточно расположить упрпавление в вашу программу и установить несколько параметров. А затем вам нужно только сесть, и наблюдать как ваши коллеги восхищаются вашей работой.
Программируете вы в VBA, самом Visual BASIC, или другом языке, ActiveX Automation очень упрощает интегрирование информации в AutoCAD с другими приложениями Прошло время склеивания AutoLISP-подпрограмм, скриптов AutoCAD, и других специфические подпрограммы, чтобы создать настроенную программу которая охватывает сложные приложения. Теперь одна подпрограмма, использующая ActiveX Automation может управлять множеством приложений и проходом данных среди них.
VBA сильно интегрирован с Windows. VBA имеет полный доступ к фаловой системе Windows, так что Вы можете создавать и удалять файлы и просматривать каталоги. Так же доступен полный интерфейс Windows-программирования, так что ваша программа может быть настолько сложна, на сколько вы хотите.
ActiveX Automation имеет свои пределы - не может вообще взаимодействовать с AutoLISP. Подпрограммы ActiveX Automation не могут вызывать подпрограммы на AutoLISP, так же они не могут устанавливать значения переменных AutoLISP. Так же, среда VBA AutoCAD еще не до конца отлажена.
Одна из первых вещей, на которую Вы обращаете внимание когда углубляетесь в ActiveX Automation - это изобилие ссылок на объекты, методы и свойства. Это только краткое введение в эту концепцию, но как только Вы поймете это, Вы будете готовы начинать программировать.
ActiveX Automati использует объектно-ориентированную модель, которая очень сильно отличается от программирования в AutoLISP. ActiveX Automation фокусируется на объектах. Объект в AutoCAD напоминает объект в реальной жизни, к примеру человек или дом. Это имеет различные характеристики которые его определяют, эти определения называются свойствами. Свойство может быть отдельной особенностью (как рост или цвет волос), другим объектом ( его дом ), или коллекцией объектов (вашей коллекцией марок). Для манипулирования объектами вы используете методы. Методы определяют действия которое необходимо выполнить над объектом (машиной можно управлять) или с объектом (человек может идти или прыгать).
На рисунке 1. показана объектная модель ActiveX Automation в AutoCAD, которая может быть найдена в руководсве по автоматизации AutoCAD (acadauto.hlp). Эта модель перечисляет объекты AutoCAD, которые доступны через ActiveX Automation. Самый верхний объект - это Application, который включает сам AutoCAD. Этот объект содержит объекты Preferences и Document, который в свою очередь предстваляет текущий чертеж.

Рис. 1. Объектная модель AutoCAD.
Объект Document в свою очередь содержит объекты Plot и Utility а также как несколько объектов-коллекции, каждый из которых управляет группой индивидуальных объектов. К примеру, коллекция Views содержит каждый вид в чертеже, а коллекции Model Space и Paper Space содержат каждый примитив в пространстве модели и пространстве листа соответсвенно.
Теперь, когда Вы поняли в общем объектную модель, давайте исследуем более детально объект Block. Во первых, важено различать между собой определение блока и ссылки на этот блок. Коллекция блоков в объекте Document содержит только определения блоков — коллекции Model Space и Paper Space содержат объекты BlockRef которые фактически представляют блоки.
Для доступа к специфическим определениям блоков используется метод Item в коллекции блоков. Вы можете запросить блок по его расположению в коллекции (удобно для перемещения через всю коллекцию) или по его имени. В любом случае вы получите, объект Block. Это объект может содержать любые объекты примитивы - окружности, штриховки, даже ссылки на другие блоки.
Вы добавляете большинство примитивов с помощью метода AddXXX (AddCircle добавляет окуржность , AddRaster добавляет растровый файл), но вы используете InsertBlock что бы добавить ссылку на блок. Также, как коллекция Блоков обеспечивает метод Item для доступа к специфическим определениям блоков, объект Block обеспечивает метод Item для доступа к доступным индивидуальным примитивам в блоке. Вы можете просмотреть координаты блока и его имя через свойства Origin и Name.
Свойство Application позволяет Вам приниматься за остальную часть объектной модели. Наконец, вы можете избавляетесь от определения блока, вызвав метод Delete. Это может казаться cтранным - иметь объект который удаляет себя, но почти каждая коллекция позволяет ее непосредственно составляющему объекту делают его грязную работу (только коллекция Viewports слишком объемная, что бы выполнить эту задачу самостоятельно).
Конечно, каждый объект в пределах определения блока имеет его собственный набор методов и свойства. Все объекты-примитивы поддерживают основной набор их, включая методы Copy, Move и Rotate и свойства Color, Layer, и Linetype. В дополнение, объект BlockRef позволяет вам разбивать их, проверять их атрибуты, и получить их если они есть, а так же получить точку вставки и масшатбный фактор. Аналогично, Вы можете управлять центром и радиусом окружности, проверить его площадь и смещение новой окружности.
Это был быстрый тур по ActiveX Automation, но вы могли оценить свои возможности. ActiveX Automation является простым способом настроить AutoCAD, и VBA позволяет это делать самостоятельно каждому, от новичка до эксперта.
Много приложений, включая Microsoft Word и Excel, поддерживают программирование с помощью ActiveX Automation, так же как большинство проффесиональных средсв разработки типа Borland Delphi. Все от маленького табличного листа со списком материалов до
Что бы изучить больше л использовании ActiveX Automation с AutoCAD, Вы должны сделать несколько вещей.Copyright © Сайт поддержки пользователей САПР