![]() |
【转帖】通过选择实体acdbobjectid,怎么样得到acdbblocktablerecord的id呀
通过选择实体acdbobjectid,怎么样得到acdbblocktablerecord的id呀
通过选择实体acdbobjectid,怎么样得到acdbblocktablerecord的id呀 通过选择实体acdbobjectid,怎么样得到acdbblocktablerecord的id呀; 困扰了好几天了; 是一般实体所在的blocktablerecord还是块定义的blocktablerecord 实体所在blocktablerecord,打开实体acdbenitity::ownerid() 块定义:acdbblockreference::blocktablerecord() 我用的是第一种;一般实体所在blocktablerecord,现在还要用id来打开record; acdbopenobjectid()这个能实现吗? 上一贴中的那个没有id; 问一下各位,这样写能改变记录中的属性吗? acdbopenobject(prec,recid,acdb::kforread); if(prec->hasattributedefinitions()) { acdbblocktablerecorditerator *piter; prec->newiterator(piter); acdbentity *pent; for(piter->start();!piter->done();piter->step()) { piter->getentity(pent,acdb::kforread); //acdbopenobject(pent,blkdefid,acdb::kforwrite); //检查是否是属性定义 acdbattributedefinition *pattdef; pattdef=acdbattributedefinition::cast(pent); if(pattdef!=null) { //pattdef->settag(data); //创建一个新的属性对象 acdbattribute *patt=new acdbattribute(); //从属性定义获得属性对象的属性特性; patt->setpropertiesfrom(pattdef); //设置属性对象的其它特性; patt->setinvisible(pattdef->isinvisible()); acgepoint3d ptbase=pattdef->position(); ptbase+=pblkref->position().asvector(); patt->setposition(pattdef->position()); patt->setheight(pattdef->height()); patt->setrotation(pattdef->rotation()); //获得属性对象的tag、prompt和textstring; char *pstr; pstr=pattdef->tag(); patt->settag("123456789"); patt->settextstring("yuan"); //向块参照追加属性对象; pblkref->appendattribute(patt); patt->close(); } pent->close(); } delete(piter); } prec->close(); |
所有的时间均为北京时间。 现在的时间是 11:32 AM. |