О применении динамических блоков tegha C++ SDK?

Моя сторона в использовании teigha SDK для разработки на стороне сервера c + + cad, бизнесу необходимо использовать динамический блок при использовании технологии, я построил ровный участок прямоугольных динамических блоков, а затем попытался использовать API для манипулировать им, код ключа выглядит следующим образом:

      OdDbBlockTablePtr       pBlocks      = pDb->getBlockTableId().safeOpenObject(OdDb::kForWrite);
      OdDbBlockTableRecordPtr pBlockEntity = pDb->getModelSpaceId().safeOpenObject(OdDb::kForWrite);
      OdDbObjectId annoBlockId = pBlocks->getAt(L"rec");
      OdGePoint3d point(0,0,0);
      OdDbBlockReferencePtr pBlkRef = OdDbBlockReference::createObject();
      pBlkRef->setDatabaseDefaults(pDb);
      OdDbObjectId blkRefId         = pBlockEntity->appendOdDbEntity(pBlkRef);
      pBlkRef->setBlockTableRecord(annoBlockId);

OdDbBlockReferencePtr pBlkRef2 = blkRefId.safeOpenObject (OdDb:: kForWrite);

      if ( pBlkRef2.isNull() )
      {
          printf("%s\n","null");
      }
      else
      {
          OdDbDynBlockReference ref( pBlkRef2->objectId() );

          //pBlkRef->subClose();
          if ( !ref.isDynamicBlock() )
          {
              printf("%s\n","not active");
          }
          else
          {
             OdDbDynBlockReferencePropertyArray propArr; 
             ref.getBlockProperties(propArr);
             printf("%d\n", propArr.length());

          }
      }

Атрибут динамического блока вывода отладки равен 0, я не могу понять. Есть ли проблема с тем, как я его использую?

0 ответов

Другие вопросы по тегам