|
pDict->close();
struct resbuf *pHead;
pHead = acutBuildList(AcDb::kDxfReal, bl,AcDb::kDxfReal,fl,0);
file://设置包含参数bl,fl的结果缓冲器链表
pXrec->setFromRbChain(*pHead);//给扩展记录对象附加信息
acutRelRb(pHead);
pXrec->close();
(2) 在设计零件乙的过程中,从零件甲的图形文件中获取所需的相关参数
AcDbDatabase* pDb = new AcDbDatabase(false, true);
pDb->readDwgFile(fname);//fname为零件甲的图形文件名
AcDbDictionary *pNamedobj;
pDb->getNamedObjectsDictionary(pNamedobj, AcDb::kForRead);
AcDbDictionary *pDict;
pNamedobj->getAt("Guanliansheji", (AcDbObject*&)pDict,
AcDb::kForRead);//获取名为Guanliansheji的数据词典
pNamedobj->close();
AcDbXrecord *pXrec;
pDict->getAt("XREC1", (AcDbObject*&) pXrec,AcDb::kForRead);
file://获取关键字为XREC1的扩展记录对象
pDict->close();
struct resbuf *pRbList;
pXrec->rbChain(&pRbList);//获取包含特征信息的结果缓冲器链表
pXrec->close();
bl=pRbList->resval.rreal;//获取关联参数bl
pRbList=pRbList->rbnext;
fl=pRbList->resval.rreal; file://获取关联参数fl
acutRelRb(pRbList);
3. 其他应用
前面介绍了如何利用扩展实体数据和扩展记录对象来存储和提取非图形特征,除此以外,还有更多的应用。例如,在CAPP中自动提取零件的一些特征参数供工艺设计用,可减少重复的工作,提高整个设计过程的效率。
四、结束语
本文介绍了在AutoCAD中通过二次开发程序来实现非图形特征信息的存储和提取,这些方法可以大大提高图纸数据库中的信息含量,从而为后续的产品设计和开发工作提供基础,大大提高设计效率。
搜索更多相关内容:
|