Логотип сайта поддержки пользователей САПРО сайте поддержки пользователей САПР Translate to:

Графическая база данных AutoCAD

Общие сведения

Для программиста пишущего приложения под AutoCAD на С++ c использованием библиотеки ObjectARX необходимо полное понимание организации данных в чертеже. Чертеж Автокада с точки зрения объектной модели представляет собой базу данных. Как любая база данных, база данных Автокада содержит таблицы. Наиболее часто разработчик использует следующие таблицы – таблицу слоев, таблицу блоков, таблицу типов линий, таблицу текстовых слоев, словари. Ключевое значение имеет таблица блоков. Это связано с тем, что область построения Model, также, как и Layout с точки зрения объектной модели Автокада являются блоками. Поэтому, если Вам необходимо написать приложение, которое будет добавлять примитивы в Model, Вам придется открыть таблицу блоков, открыть в таблице блоков запись, соответствующую модели и добавить в эту запись (фактически в саму модель) примитивы. Упрощенная схема базы данных Автокада показана на рис 1.

На схеме показаны наиболее часто используемые таблицы базы данных Автокада. Вы видите, что примитивы, которые наблюдаются в области построения Model (в нашем примере – 2 линии, окружность и текст), лежат в таблице блоков, а точнее в ее записи, которая соответствует модели. На схеме не показаны, взаимосвязи между элементами таблиц, так например целесообразно было бы провести стрелки от примитивов к записям таблицы слоев, однако материала по взаимосвязям элементов базы данных Автокада хватило бы для отдельной статьи, поэтому в данной статье я затронул лишь основные понятия устройства базы данных Автокада.

База данных Автокада характеризуется целым набором свойств, таких, как лимиты области построения, состояние режима объектной привязки, состояние тонирования и многих других.

Некоторые классы ObjectARX, предназначенные для работы базой данных Автокада.

AcDbDatabase – класс представляющий базу данных Автокада.
AcDbLayerTable – класс представляющий таблицу слоев.
AcDbBlockTable – класс представляющий таблицу блоков.
AcDbLinetypeTable – класс представляющий таблицу типов линий.
AcDbTextStyleTable – класс представляющий таблицу текстовых стилей.
AcDbDatabaseReactor – реактор, обрабатывающий события базы данных, такие как добавление примитивов, удаление примитивов их изменение и др.

Советы разработчикам



Copyright © Сайт поддержки пользователей САПР by Victor Tkachenko