ObjectARX, AutoCAD. Среда программирования библиотеки C++

       

Поиск активных областей просмотра в пространстве модели


При создании нового DWG файла с AcDbDatabase (Adesk:: kTrue) конструктор, Вы должны установить заданную по умолчанию область просмотра пространства модели в некоторые разумные параметры. Это будет гарантировать, что DWG будет видим в AutoCAD когда открыто. Отказ устанавливать заданную по умолчанию область просмотра пространства модели может требовать, чтобы  пользователь AutoCAD, чтобы выбрать Изменил масштаб изображения Всех, чтобы делать геометрию из видимого рисунка. Кроме того, некоторые примитивы AutoCAD требуют, чтобы разумные параметры области просмотра вычислили аспекты их появления. Например, объект AcDbSpline, созданный в ObjectDBX, и сохраненный к рисунку без любого внимания к области просмотра, может отображать с острыми углами, подобно pline, когда загружено в AutoCAD. Данные не повреждены и первый раз, когда примитив отредактирован в AutoCAD,  AcDbSpline возвратится к его надлежащей форме.

Однако, это конечно дезориентирует пользователям рисунков вашей программы.

Разработчики, обладающие утвержденным - позволенным AutoCAD, вероятно,  будут видеть, утверждает результат assert() при загрузке рисунка, который был сохранен без надлежащего внимания к области просмотра. Экспериментирование демонстрирует, который параметры являются лучшими для вашего приложения и геометрии. Чтобы устанавливать область просмотра пространства модели, вставьте следующее:

// Набор некоторая информация области просмотра.

AcDbViewportTable* pViewportTable;

if (db.getViewportTable(pViewportTable, AcDb::kForRead) == Acad::eOk)

{

// Find the first viewport and open it for write.

AcDbViewportTableRecord *pRecord;

if (pViewportTable->getAt( "*ACTIVE", pRecord, AcDb::kForWrite) == Acad::eOk)

{

pRecord->setCenterPoint(AcGePoint2d(0.5, 0.5));

pRecord->setHeight(1.0);

pRecord->setWidth(1.0);

pRecord->close();

}

pViewportTable->close();

}



Содержание раздела