[求助]如何删除选择集中的线实体
<p>哪位高手帮我看看程序,是关于删除选择集中的线实体问题,由于初学,可能程序不对,请各位大侠海涵!!!鞠躬180度!!!</p><p><br/> struct resbuf eb1; //定义结果缓冲区<br/> char sbuf1,sbuf2; <br/> ads_name ssname1,ssname2; //定义选择集名</p><p> eb1.restype=0; //0表示实体名<br/> strcpy(sbuf1,"LINE");<br/> eb1.resval.rstring=sbuf1;<br/> eb1.rbnext=NULL; //没有其他要求匹配的实体属性 <br/> //获取所有的线形实体(在整个图形数据库中)<br/> acedSSGet(NULL,NULL,NULL,&eb1,ssname1);<br/> long n=0;<br/> acedSSLength(ssname1,&n);//获取实体个数<br/> if(n==0)<br/> {<br/> AfxMessageBox("没有要删除的线!");<br/> acutPrintf("没有要删除的线!!");<br/> <br/> }<br/> else<br/> {<br/> long entname;<br/> AcDbEntity *pEntity;<br/> AcDbLine *Pline;<br/> long startpt,endpt;<br/> AcGePoint3d start;<br/> AcGePoint3d end;<br/> ads_name ent;<br/> CString m_name;<br/> double m_startX,m_startY,m_startZ;<br/> CString ObjID;<br/> CString str2,str22;<br/> CString oldhandlerStr;<br/> float m_n1,m_e1,m_h1;<br/> float m1_n,m1_e,m1_h;<br/> float j=11;<br/> int linnum=1;<br/> CString lnum;<br/> char buffer;<br/> AcDbHandle objHandle;<br/> for(long i=0;i<n;i++)<br/> {<br/>if(acedSSName(ssname1, i, entname) == RTNORM)<br/> {<br/> AcDbObjectId objId;<br/> acdbGetObjectId(objId,entname);<br/> acdbOpenAcDbEntity(pEntity,objId,AcDb::kForRead);</p><p>//强制类型转换,将AcDbEntity *转换为AcDbLine * <br/> Pline=(AcDbLine*)pEntity;<br/> start=Pline->startPoint();<br/> end=Pline->endPoint();<br/>// //获取并显示handle号<br/> Pline->getAcDbHandle(objHandle);<br/> char handleStr;<br/> char oldhandler;<br/> objHandle.getIntoAsciiBuffer(handleStr);<br/><font color="#ff0000"> Pline->erase();//出错不知到该怎样改</font><br/> pEntity->close();<br/> <br/>}<br/>}<br/> }</p><p></p>
页:
[1]