3.1.6. Неродные графические и неграфические объекты

Источник здесь. [перевод не проверен];[перевёл Андрей Бушман]

    AutoCAD .NET API является совместной реализацией ObjectARX и ActiveX1. Пока вы имеете доступ к ActiveX из ObjectARX, .NET API делает работу с обеими технологиями бесшовной2. Поскольку вы работаете с объектами используя родной .NET API, вы можете обратиться к эквивалентному объекту COM через свойство. В некоторых случаях использование COM объекта является единственным способом получения программного доступа к специфическим свойствам AutoCAD.Некоторыми примерами свойств, которые предоставляют COM объекты внутри .NET API, являются Preferences (персональные настройки), Menubar (панель меню), MenuGroups (группы меню), AcadObject (объект AutoCAD) и AcadApplication (экземпляр приложения AutoCAD).

Примечание:
Прежде чем начать работать с COM объектами, необходимо убедиться, что к вашему проекту подключены необходимые библиотеки типов AutoCAD 2010. Для информации по работе с COM читайте Взаимодействие COM с .Net.


    Свойство Preferences (персональные настройки) объекта Application обеспечивает доступ к ряду COM объектов, каждый из которых представляет собой информацию, отображаемую на определённой вкладке диалогового окна Options (настройки) приложения AutoCAD. Вы так же можете получить доступ к этим настройкам (равно как и к др. системным переменным AutoCAD, не предоставленным на выше указанных вкладках диалогового окна Options) посредством вызова методов GetSystemVariable (получить значение системной переменной) и SetSystemVariable (присвоить значение системной переменной) объекта Application. Для получения более подробной информации, обращайтесь к ActiveX and VBA Developer’s Guide3.

Организация доступа к COM объектам посредством .NET API  является полезной, если вы работаете с уже существующим кодом, который мог быть разработан ранее для VB или VBA, или даже  работая со сторонней библиотекой, предназначенной для работы с библиотекой ActiveX AutoCAD. Подобно объекту Preferences (пользовательским настройкам), вы можете так же получить доступ к утилитам, которые переводят координаты или определяют новую точку, получаемую на основе заданного угла и расстояния используя объект Utility (утилита), который может так же быть доступен из COM объекта AcadApplication, который, в свою очередь, эквивалентен объекту Application .NET API.

Примечание:
Когда вы работаете с обеими технологиями, как с AutoCAD .NET API, так и с ActiveX, и вы создаёте пользовательские функции, которые могут нуждаться в возвращении объекта (как результата своей работы), рекомендуется возвращать объект ObjectId (идентификатор объекта), взамен объекта конкретного типа. Для большей информации, касающейся идентификаторов объектов, читайте Работа с идентификаторами объектов (ObjectId).


Примечания переводчика:
1 - прим. переводчика: т.е. является управляемой оболочкой над этими технологиями.
2 - прим. переводчика: я не понял, что авторы хотели сказать этим
3 - прим. переводчика: справочное пособие, имеющееся в подкаталоге docs, дистрибутива ObjectARX, установленного на вашем компьютере (в моём случае путь к нему такой: C:\ObjectARX 2010\docs\arxdoc.chm



Comments