Графические и неграфические объекты

Графические объекты

Графические объекты, также известные как сущности (Entity), - это видимые объекты (линии, окружности, растровые изображения и т. д.), образующие чертеж. Добавление графических объектов в чертеж осуществляется путем получения ссылки на соответствующую запись таблицы блоков (здесь, пространство модели, лист или конкретное определение Блока), а затем с помощью метода AppendEntity с передачей ему нового объекта нужного класса для добавления сущности в чертеж.

Чтобы изменить или получить информацию о графическом объекте, получите ссылку на объект из соответствующей записи таблицы блоков (среди объектов ModelSpace и т.д.), а затем используйте методы или свойства самого объекта, приводя полученный DBObject к соответствующему классу. В C# это делается с помощью ключевого слова "as". Каждый графический объект имеет методы, реализованные на стороне пользовательского интерфейса, такие как копирование, стирание, перемещение, зеркальное отображение за некоторым исключением (например, не для всех объектов доступна разбивка на примитивы (Explode) и т.д.).

Кроме того, эти объекты имеют методы для получения расширенных данных (xdata), выделения и снятия выделения с объекта, а также установки свойств другого объекта. Большинство графических объектов имеют некоторые общие свойства, такие как LayerId, LinetypeId, Color и Handle, как наследники класса Autodesk.AutoCAD.DatabaseServices.Entity. Каждый графический объект также имеет специфические свойства, такие как Center или TextString -- в зависимости от своего типа -- здесь, Center у окружности Circle или дуги Arc, TextString у однострочного текста DBText и т.д.

ActiveX-интерфейс, описывающий графический примитив, называется AutoCAD.AcadEntity и может быть получен следующим приведением:

Autodesk.AutoCAD.DatabaseServices.Arc someArcObject;
AutoCAD.AcadEntity entityCOM = someArcObject.AcadObject as AutoCAD.AcadEntity;

Также имеется возможность приведения COM-интерфейса объекта к специфичному COM-интерфейсу, описывающему данный объект со своей стороны. Например, выше мы получили общий интерфейс AutoCAD.AcadEntity у объекта "Дуга", а могли бы привести его к AutoCAD.AcadArc и были бы правы.

Неграфические объекты

Неграфические объекты - это невидимые (информационные) объекты, являющиеся частью чертежа, такие как слои, типы линий, стили размеров, стили таблиц и так далее. Чтобы создать новую запись в таблице символов, используйте метод Add у таблицы-контейнера данных объектов (перечень см. в статей "Объект базы данных чертежа") или метод SetAt для добавления словаря в словарь именованных объектов. Чтобы изменить или получить какую-либо информацию об объекте, используйте методы или свойства самого объекта. Каждый неграфический объект имеет методы и свойства, специфичные для его класса; все они имеют методы для получения расширенных данных (xdata) и своего удаления. Подробнее о них см. раздел.