几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   ObjectARX(C++) (http://www.dimcax.com/hust/forumdisplay.php?f=34)
-   -   【转帖】[求助]如何删除选择集中的线实体 (http://www.dimcax.com/hust/showthread.php?t=6774)

yang686526 2009-04-16 03:39 PM

【转帖】[求助]如何删除选择集中的线实体
 
[求助]如何删除选择集中的线实体
[求助]如何删除选择集中的线实体
哪位高手帮我看看程序,是关于删除选择集中的线实体问题,由于初学,可能程序不对,请各位大侠海涵!!!鞠躬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.