Тема: Как определить Границы Модели?

В классе BlockReference есть метод GetBoundingBox.
Как получить тоже самое, но для модели (или Layout) в целом?
Другими словами:
Когда делаешь двойной щелчок средней кнопкой отображаются все объекты модели, как определить границы этих объектов.
Работаю через COM, но это почти тоже самое, что OARX.

Re: Как определить Границы Модели?

AcDbDatabase::extmax
AcDbDatabase::extmin

Re: Как определить Границы Модели?

Roman пишет:

AcDbDatabase::extmax AcDbDatabase::extmin

Помогите, пожалуйста. Никто не скажет, с чем может быть связано то, что при вызове AcDbDatabase::extmax AcDbDatabase::extmin
всегда x,y и z точек получаются -1.0000000000000000e+020 и +1.0000000000000000e+020? Или с помощью этих методов всё таки нельзя получить границы модели?

(изменено: Александр Ривилис, 27 ноября 2009г. 15:11:37)

Re: Как определить Границы Модели?

Сергей Якунин пишет:

Или с помощью этих методов всё таки нельзя получить границы модели?

Можно. Только вот выполнена ли регенерация чертежа (т.е. AutoCAD пересчитал границы чертежа).
А может быть у тебя действительно есть в чертеже примитивы, которые находятся "так далеко"? Может быть они на выключенных слоях или не имеют видимой геометрии (пустой текст или мтекст)?

static void TestExtents(void)
{
  // Обновляем EXTMIN и EXTMAX по текущему состоянию чертежа
  acdbCurDwg()->updateExt(TRUE);
  AcGePoint3d pMin = acdbCurDwg()->extmin(), pMax = acdbCurDwg()->extmax();
  acutPrintf(_T("\nExtmin=(%.15q0 %.15q0 %.15q0) Extmax=(%.15q0 %.15q0 %.15q0)"),
    pMin[X],pMin[Y],pMin[Z],pMax[X],pMax[Y],pMax[Z]);

}