chenpool 发表于 2005-8-16 18:29:00

[求助]如何得到AcDbBlockReference图块对象的图块名称?

找了好多函数,好像没有直接得到的啊。
或者怎么转换成AcDbBlockTableRecord对象,然后调用GetName(),但是如何根据AcDbBlockReference对象得到AcDbBlockTableRecord对象呢?

王咣生 发表于 2005-8-16 19:59:00

   AcDbBlockReference *pBlkRef = AcDbBlockReference::cast(ent.object());
   AcDbObjectId pBlkTblRecId;
   pBlkTblRecId = pBlkRef->blockTableRecord();
   AcDbBlockTableRecord *pBlkTblRec;
   es = acdbOpenObject(pBlkTblRec, pBlkTblRecId, AcDb::kForRead);

chenpool 发表于 2005-8-16 22:51:00

让王斑竹费心了。。。谢谢。。。辛苦了。。。
因为我是在遍历中需要得到块表记录,直接利用
pIter->getRecord(pRecord,AcDb::kForRead)
就可以了,而我多此一举,pBtrIter->getEntity (pEnt, AcDb::kForRead)
所以才会有上面的问题了。
顺便问一下,
AcDbBlockReference和以及AcDbAttribute有什么区别啊,怎么个用法,能不能简单介绍介绍?

王咣生 发表于 2005-8-17 09:39:00

对cad的对象有个大概了解吧?
AcDbBlockReference和是两种对象,即块和属性定义,两者组合成属性块,想要操作属性块可能是要用到AcDbAttribute类吧.
vba对象模型中有这几种实体:


游牧 发表于 2018-11-17 14:01:00


CAD对象这个结构图哪里有啊?谢谢!

edata 发表于 2018-11-30 10:39:00

截图是AutoCAD ActiveX vba的对象模型,你可以在电脑上搜索acadauto.chm这个文件,是英文的,
《ActiveX 和 VBA 参考》由乐筑天下翻译.chm,中文是2006版,由乐筑天下翻译的。
高版本有在线版本。附上2019的链接
https://help.autodesk.com/view/O ... 2-B674-1FE200B9FE30
页: [1]
查看完整版本: [求助]如何得到AcDbBlockReference图块对象的图块名称?