高级会员
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
|
【转帖】[求助]怎样提取块属性
[求助]怎样提取块属性
[求助]怎样提取块属性
我想在arx提取明细表项属性值(每一行记录事先定义为块),包括材料,名称,重量等信息,如何实现,各位大哥请给点提示,先行谢过!
自己解决了
提取自定义属性块信息,我已经解决了,呵呵
等我整理好了,再发上来
楼主快贴上来吧
给大家参考一下
以下代码实现自定义属性块的属性值提取,我采用鼠标拾取的方式从打开的图形文件中指定块(注意块中要有自己定义的属性)注释部分代码是我基于acui对话框实现的,根据你的具体情况选择吧
// begineditorcommand();
//showwindow(sw_hide);
ads_name adsnameblockref;
ads_name entres;
ads_point ptres;
ads_matrix xformres;
struct resbuf *refstkres, *eb;
if(acednentselp(null,entres,ptres,false,xformres,&refstkres) == rtnorm)
{
for(eb = refstkres; eb != null;eb = eb->rbnext)
{
ads_name_set(eb->resval.rlname,adsnameblockref);
}
acutrelrb(refstkres);
// completeeditorcommand();
}
else
{
// canceleditorcommand();
}
//showwindow(sw_show);
acdbobjectid blkrefid;
acdbgetobjectid(blkrefid, adsnameblockref);
acdbblockreference *pblkref;
acdbopenobject(pblkref, blkrefid, acdb::kforread);
acdbobjectiterator *pattriter = pblkref->attributeiterator();
pblkref->close();
char *pstr = "";
char *ptext = "";
acdbattribute *pattr;
acdbobjectid attrobjid;
for(int attrnumber = 0; !pattriter->done(); pattriter->step())
{
attrobjid = pattriter->objectid();
acdbopenobject(pattr,attrobjid,acdb::kforread);
pstr = pattr->tag();
ptext = pattr->textstring();
pattr->close();
attrnumber++;
acutprintf("\nattribute %d,tag %s, value %s",attrnumber,pstr,ptext);
}
delete pattriter;
|