![]() |
【转帖】[求助]如何删除选择集中的线实体
[求助]如何删除选择集中的线实体
[求助]如何删除选择集中的线实体 哪位高手帮我看看程序,是关于删除选择集中的线实体问题,由于初学,可能程序不对,请各位大侠海涵!!!鞠躬180度!!! struct resbuf eb1; //定义结果缓冲区 char sbuf1[10],sbuf2[10]; ads_name ssname1,ssname2; //定义选择集名 eb1.restype=0; //0表示实体名 strcpy(sbuf1,"line"); eb1.resval.rstring=sbuf1; eb1.rbnext=null; //没有其他要求匹配的实体属性 //获取所有的线形实体(在整个图形数据库中) acedssget(null,null,null,&eb1,ssname1); long n=0; acedsslength(ssname1,&n);//获取实体个数 if(n==0) { afxmessagebox("没有要删除的线!"); acutprintf("没有要删除的线!!"); } else { long entname[2]; acdbentity *pentity; acdbline *pline; long startpt,endpt; acgepoint3d start; acgepoint3d end; ads_name ent; cstring m_name; double m_startx,m_starty,m_startz; cstring objid; cstring str2,str22; cstring oldhandlerstr; float m_n1,m_e1,m_h1; float m1_n,m1_e,m1_h; float j=11; int linnum=1; cstring lnum; char buffer[20]; acdbhandle objhandle; for(long i=0;i<n;i++) { if(acedssname(ssname1, i, entname) == rtnorm) { acdbobjectid objid; acdbgetobjectid(objid,entname); acdbopenacdbentity(pentity,objid,acdb::kforread); //强制类型转换,将acdbentity *转换为acdbline * pline=(acdbline*)pentity; start=pline->startpoint(); end=pline->endpoint(); // //获取并显示handle号 pline->getacdbhandle(objhandle); char handlestr[20]; char oldhandler[20]; objhandle.getintoasciibuffer(handlestr); pline->erase();//出错不知到该怎样改 pentity->close(); } } } |
所有的时间均为北京时间。 现在的时间是 08:39 PM. |