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

       

Подробности относительно областей просмотра


Имеются несколько тонкости относительно различной области просмотра, напечатывает AcDb, которые стоят обзор.

Объект AcDbDatabase может содержать и области просмотра пространства листа и пространство модели.

Они представлены различными типами AcDb внутренне.

Области просмотра Пространства модели представлены AcDbViewportTableRecords, которые содержатся в AcDbViewportTable. Они полностью несвязанны с AcDbViewport примитивами. Выпуск AutoCAD 13 и выше требует существования по крайней мере одного AcDbViewportTableRecord в AcDbViewportTable. Это будет названо “*ACTIVE”, который подразумевает, что это была активная область просмотра, когда рисунок был сохранен. Больше чем одна область просмотра могут быть “*ACTIVE” одновременно. Незаконно иметь ViewportTableRecord без имени.

Области просмотра Пространства листа представлены AcDbViewport. Они могут только существовать в пределах записи таблицы блоков пространства листа AcDbBlockTable. Само пространство листа должно иметь основную область просмотра пространства листа как AcDbViewport примитив в записи таблицы блоков пространства листа. В AutoCAD, эта заданная по умолчанию область просмотра создана автоматически, когда TILEMODE 0 команды выполнен. Имеется предположение в API, что эта область просмотра будет создана автоматически. Таким образом, когда новый AcDbViewport инициализирован и добавлен к записи таблицы блоков пространства листа, если основная область просмотра пространства листа еще не существует, это будет создано в течение завершения нового AcDbViewport. Обратите внимание, что это означает, что никогда не необходимо создать основную область просмотра пространства листа явно. Это совершенно имеет силу, чтобы добавить примитивы к пространству листа без когда-либо создания области просмотра пространства листа. Это - то, потому что AutoCAD может успешно открывать рисунок этого характера и автоматически создаст основную область просмотра пространства листа первый раз, когда TILEMODE, 0 команды используется. AutoCAD должен правильно отобразить примитивы в записи таблицы блоков пространства листа в пределах основной области просмотра пространства листа в то время.

В ObjectDBX, AcDbViewport::number () функция будет всегда возвращаться -1.

В ObjectARX, это сообщает о номере области просмотра текущей области просмотра в редакторе AutoCAD. Поскольку AutoCAD – не активен в ObjectDBX, это значение не имеет никакого значения. ObjectDBX обеспечивает acdbGetCurVportId () функцией, которая возвращает текущий объект ID области просмотра, когда рисунок был сохранен.

Строго рекомендуется, чтобы Вы делали обзор ObjectARX SDK документация относительно областей просмотра всех типов.



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