zenggq 发表于 2005-8-14 15:48:00

请教一个删除实体的问题

<P>想每次画图的时候先清除当前画的所有的图(这些图已经被我事先加入到了块表记录中了),编写了如下代码:</P>
<P>&nbsp;if(acedSSGet("A",NULL,NULL,NULL,ssname)==RTNORM);<BR>&nbsp;{<BR>&nbsp;&nbsp;acedSSLength(ssname,&amp;len);<BR>&nbsp;&nbsp;for(i=0;i&lt;len;i++)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;acedSSName(ssname,i,ent);<BR>&nbsp;&nbsp;&nbsp;acdbGetObjectId(entId,ent);<BR>&nbsp;&nbsp;&nbsp;acdbOpenObject(pEnt,entId,AcDb::kForWrite);<BR>&nbsp;&nbsp;&nbsp;pEnt-&gt;erase();<BR>&nbsp; }<BR>&nbsp;&nbsp;&nbsp;pEnt-&gt;close();<BR>&nbsp;&nbsp;acedSSFree(ssname);<BR>&nbsp;}</P>
<P>好象不能实现删除的功能,这是为什么呀?</P>
<P>后来尝试了一下acedSSDel()也还是不行,盼好人指点迷津!</P>

zenggq 发表于 2005-8-14 21:34:00

咋没人回答呢?

zfbj 发表于 2005-8-14 21:58:00

<P>出什么问题?按理说pEnt-close()应该紧接着pEnt-&gt;erase();</P>
<P>另外,最好在遍历图形数据库的时候删除实体。</P>
<P>&nbsp;</P>

yfy2003 发表于 2005-8-15 00:39:00

<P>if(acedSSGet("A",NULL,NULL,NULL,ssname)==RTNORM);<BR>&nbsp;{<BR>&nbsp;&nbsp;acedSSLength(ssname,&amp;len);<BR>&nbsp;&nbsp;for(i=0;i&lt;len;i++)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;acedSSName(ssname,i,ent);<BR>&nbsp;&nbsp;&nbsp;acdbGetObjectId(entId,ent);<BR>&nbsp;&nbsp;&nbsp;acdbOpenObject(pEnt,entId,AcDb::kForWrite, false);<BR>&nbsp;&nbsp;&nbsp;pEnt-&gt;erase();</P>
<P>pEnt-&gt;close();<BR>&nbsp; }<BR>&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;acedSSFree(ssname);<BR>&nbsp;}</P>

zenggq 发表于 2005-8-15 12:36:00

<P>果然是pEnt-&gt;close();放的位置不对</P>
<P>谢谢两位版主热心解答!</P>

lntuzjc 发表于 2005-9-29 18:24:00

啊?!为什么呢?

xiangzhong 发表于 2006-8-10 17:09:00

wuwu,,我打开一个实体的时候,acdbOpenObject(pEnt,entId,AcDb::kForWrite, false),返回总是说已经用read模式打开,我该怎么解决阿?帮帮我吧

yang611 发表于 2006-8-11 11:53:00

<P>请问如何删除指定的实体啊?</P>
<P>&nbsp;</P>
页: [1]
查看完整版本: 请教一个删除实体的问题