Тема: getGeomExtents и readDwgFile

Проблема следующая:
не работает метод getGeomExtents() у примитивов, принадлежащих базе, открытой с помощью readDwgFile()

Re: getGeomExtents и readDwgFile

Странно. У меня работает. Уточни версию AutoCAD, для какого примитива вызываешь getGeomExtents() (для блоков, собственных примитивов и примитивов ADT, LDDT и т.д. может и не работать).
Вот элементарный пример, который у меня нормально работает. Проверок на ошибки - минимум. Нужно знать метку примитива (handle), для которого проверяется getGeomExtents().

  static void GetExtents(void)
  {
    resbuf *result = NULL;
    result = acutNewRb(RTSTR);
    result->resval.rstring = NULL;
    Acad::ErrorStatus es = Acad::eOk;
    char *fname = NULL;
    if  (acedGetFileD("Select file:", NULL, "dwg", 0, result) == RTNORM) {
       fname = strdup(result->resval.rstring); acutRelRb(result);
    } else {
       acutRelRb(result);
       return;
    }
    AcDbDatabase *db = new AcDbDatabase();
    if ((es = db->readDwgFile(fname,_SH_DENYNO)) != Acad::eOk) {
      acutPrintf("\nError open database <%s> with error %s!",fname, acadErrorStatusText(es));
      delete db;
      return;
    }
    free(fname);
    char handle[512];
    if (acedGetString(0,"\nSelect entity handle: ", handle) == RTNORM) {
       __int64 iHandle = 0;
       sscanf(handle,"%I64x",&iHandle);
       AcDbHandle handle(iHandle);
       AcDbObjectId objId;
       if ((es = db->getAcDbObjectId(objId,false,handle)) == Acad::eOk) {
         AcDbObjectPointer<AcDbEntity> pEnt(objId,AcDb::kForRead);
         if ((es = pEnt.openStatus()) == Acad::eOk) {
           AcDbExtents ext;
           if ((es = pEnt->getGeomExtents(ext)) == Acad::eOk) {
             acutPrintf("\nExtents: Min=(%g %g) Max=(%g %g)",
               (ext.minPoint())[X],(ext.minPoint())[Y],(ext.maxPoint())[X],(ext.maxPoint())[Y]);
           } else {
             acutPrintf("\nError getGeomExtents: %s", acadErrorStatusText(es));
           }
         } else {
           char buf[32];
           handle.getIntoAsciiBuffer(buf);
           acutPrintf("\nError getAcDbObjectId <%s>: %s", buf,acadErrorStatusText(es));
         }
       } else {
         char buf[32];
         handle.getIntoAsciiBuffer(buf);
         acutPrintf("\nError entity <%s>: %s", buf,acadErrorStatusText(es));
       }
    } else {
      acutPrintf("\nError handle!!!");
    }
    delete db;
  }

Re: getGeomExtents и readDwgFile

У меня последовательность действий такая:
1. Открываю чертеж на чтение/запись через readDwgFile
2. Копирую туда блок
3. Вставляю в модель ссылку на этот блок
4. Добавляю атрибуты к этой ссылке
5. Пытаюсь померить эти атрибуты getGeomExtents для дальнейшего форматирования, однако результат нулевой.
Причем, если файл открыт обычным способом (File/Open или через acDocManagerPtr()->appContextOpenDocument) вне зависимости активный это документ или нет, то все отлично работает.
Версия ACAD2005