Тема: Динамические блоки
Здравствуйте!
Возник вопрос по динамическим блокам. Есть блок с ручкой, за которую его можно растягивать (параметр длины, соответственно double).
Хочется растягивать его программно.
Теоретический вопрос: динамические блоки - это блоки с ручками, ведь так?:)
Для определения свойств использую такой код (чуть изменил пример Александра Ривилиса):
static void FpmSimpleLine_DynBlockTest(void) { ads_name en; ads_point p; if (acedEntSel(_T("\nPick dynamic block: "),en,p) == RTNORM) { AcDbObjectId eId; acdbGetObjectId(eId,en); AcDbObjectPointer<AcDbBlockReference> pBlkRef(eId,AcDb::kForRead); if (pBlkRef.openStatus() == Acad::eOk) { AcDbObjectId idBlkTblRec = pBlkRef->blockTableRecord(); if (AcDbDynBlockReference::isDynamicBlock(idBlkTblRec)) { AcDbDynBlockReference dynBlk(eId); AcDbDynBlockReferencePropertyArray aProps; dynBlk.getBlockProperties(aProps); if (aProps.length() > 0) { AcDbDynBlockReferenceProperty prop; for (int i=0; i < aProps.length(); i++) { prop = aProps[i]; AcDbEvalVariant Var = prop.value(); acutPrintf(L"Property %d name: %s, value: %lg\n",i+1,prop.propertyName().kTCharPtr(),Var.resval.rreal); } } } else { acutPrintf(_T("\nSelected block is not dynamic!")); } } else { acutPrintf(_T("\nError: %s"),acadErrorStatusText(pBlkRef.openStatus())); } } }
Почему-то если выбрать блок без ручек, он не пишет "Selected block is not dynamic!", т е попадает в if.
Еще у меня не получается записывать атрибуты...