诸位朋友,如何 用setxdata 方法删除实体扩展数据?
<P> 我是这样做的,但是错了.... </P><P>我调了一晚上,郁闷的很.</P>
<P> void clearname(AcDbPolyline* pPolyline)<BR>{ struct resbuf *pRb=NULL;<BR> pPolyline->upgradeOpen();<BR> pPolyline->setXData(pRb);<BR> pPolyline->close();<BR> acutRelRb(pRb);<BR>}</P>
我 pRb->...type=1001也试过 不行. <P>我试过,可以的. </P>
<P> pRb->restype=1001;<BR> pTemp = pRb;<BR> pTemp->rbnext=NULL;</P>
<P>pObj->setXData(pRb)</P> <P>//----------------------------------------------------------------------------------------------------<BR>// created: 22/7/2006 17:53 ShangHai<BR>// author: PiPi <BR>// purpose: Delete X-Data of a entity, no matter if there is X-Data attached to the entity<BR>// when we fail to store a flange,but some information has already been added as x data,<BR>// we need to delete these x data for consistency<BR>//----------------------------------------------------------------------------------------------------<BR>bool DelXData(AcDbObjectId adoiEntity)<BR>{<BR> //Open the entity for editing<BR> AcDbEntity *padEntity;<BR> if (acdbOpenAcDbEntity(padEntity, adoiEntity, AcDb::kForWrite) != Acad::eOk) {<BR> return false;<BR> }//end if</P>
<P> //Get x data result buffer of the entity<BR> resbuf *rbXdata = padEntity->xData(NULL);</P>
<P> //result buffer not null<BR> if (rbXdata) {<BR> rbXdata->rbnext = NULL;<BR> padEntity->setXData(rbXdata);<BR> acutRelRb(rbXdata);<BR> }//end if</P>
<P> padEntity->close();</P>
<P> return true;</P>
<P>}//end of function : DelXData()<BR></P> pipilu 发表于 2006-7-25 16:37 static/image/common/back.gif
//-------------------------------------------------------------------------------------------------- ...
兄弟 太谢谢你了
页:
[1]