|
其中,Key为加入到词典的新对象的索引关键字;
obj为加入到词典的新对象指针;
retobjId为加入到词典的新对象Id。
(3)检索指定关键字的扩展数据词典记录
Acad::ErrorStatus getAt(const char* entryName,AcDbObject*&entryObj,AcDb::OpenMode mode) const;
其中,entryName为指定检索的关键字;
entryObj为返回的检索到的对象指针;
mode为对象打开的方式。
(4)添加数据到扩展数据记录
Acad::ErrorStatusAcDbXrecord::setFromRb
Chain(resbuf& pRb,AcDbDatabase*pDb=NULL);
其中,pRb为包含特征信息的结果缓冲区链表。
(5)获取扩展实体记录的内容
Acad::ErrorStatusAcDbXrecord::rbChain(resbuf**ppRb,AcDbDatabase*pAuxDb=NULL);
其中,ppRb为结果缓冲区结构指针。
三、非图形特征存储提取方法的应用
以上介绍了通过扩展实体数据和扩展实体记录对象来存储和提取非图形特征的方法。下面通过3个实例来介绍其应用。
1.利用扩展实体数据保存和提取实体非图形特征
在工厂电气布线中,需要对电缆设定代号、名称、产地等非几何特征,以便于对电缆等材料进行自动统计等后续工作。
(1)为电缆实体设定非图形特征
char appName[40];//应用程序名
char daihao[40];//电缆代号
char mingcheng[40];//电缆名称
ads_real length;//电缆长度
struct resbuf *pRb,*pTemp;
……//通过对话框等方式对daihao,mingcheng,length赋初值
strcpy(appName,“diqibuxian”);
acdbRegApp(appName);//以appName登记图形中一个应用程序名
pRb = acutNewRb(AcDb::kDxfRegAppName);//分配结果缓冲器
pTemp = pRb;
pTemp->resval.rstring= (char*)malloc(strlen(appName)+1);
strcpy(pTemp->resval.rstring, appName);//将数据存入结果缓冲器链表
pTemp->rbnext=acutNewRb(AcDb::kDxfXdAsciiString);
pTemp=pTemp->rbnext;
pTemp->resval.rstring= (char*)malloc(strlen(daihao)+1);
strcpy(pTemp->resval.rstring, daihao); file://将代号存入结果缓冲器链表
搜索更多相关内容:
|