哪位高手帮我看看程序,是关于删除选择集中的线实体问题,由于初学,可能程序不对,请各位大侠海涵!!!鞠躬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 *  line=(AcDbLine*)pEntity; start=Pline->startPoint(); end=Pline->endPoint(); // //获取并显示handle号 Pline->getAcDbHandle(objHandle); char handleStr[20]; char oldhandler[20]; objHandle.getIntoAsciiBuffer(handleStr);  line->erase();//出错不知到该怎样改 pEntity->close(); } } } |