马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
往下看,出错都地方在if那里 - AcDbCircle *cl;
- double radiu;
- AcGePoint3d center;
- AcGePoint2d pt[3];
- AcGePoint2dArray points1;
- double entity[4][5]={0};
- AcDbLine *line;
- AcDbArc *arc;
- AcDbCircle *circle;
- AcDbPolyline *pPoly;
- AcDbEntity * pEnt;
- ads_name entName;
- long len=0;
- AcDbObjectId entId;
- AcDbObjectIdArray objIds;
- acedSSGet(NULL,NULL,NULL,NULL,entName);
- int rt=acedSSLength(entName,&len);
-
- if (rt == RTNORM)
- {
- long length;
- acedSSLength(entName, &length); // 获得选择集中的对象个数
- for (int i = 0; i < length; i++)
- {
- ads_name ent;
- acedSSName(entName, i, ent);
- acdbGetObjectId(entId, ent);
- objIds.append(entId);
- }
- }
- else
- {
- MessageBox(NULL,"请选择一个实体","注意",MB_OK);
- return ;
- }
- acedSSFree(entName);
- //以下有4个if语句,只有 AcDbLine的时候才没有问题,其他3个都崩溃,语句几乎都一样怎么其他几个if就崩溃了呢?
- for (int j1=0;j1<objIds.length();j1++)
- {
- acdbOpenObject(pEnt, objIds[j1],AcDb::kForWrite);
- if (pEnt->isKindOf(AcDbLine::desc()))
- {
- line=AcDbLine::cast(pEnt);
- entity[j1][0]=1;
- line->close();
- }
- if (pEnt->isKindOf(AcDbArc::desc()))
- {
- arc=AcDbArc::cast(pEnt);
- entity[j1][0]=2;
- arc->close;
- }
-
- if (pEnt->isKindOf(AcDbCircle::desc()))
- {
- circle=AcDbCircle::cast(pEnt);
- entity[j1][0]=3;
- circle->close;
- }
- if (pEnt->isKindOf(AcDbPolyline::desc()))
- {
- pPoly=AcDbPolyline::cast(pEnt);
- entity[j1][0]=4;
- pPoly->close;
- }
- }
- for (int i=0;i<4;i++)
- {
- for(int j=0;j<5;j++)
- {
- if(entity[j]!=0)
- {
- acutPrintf(("%d\n"),entity[j]);
- }
- }
- }
-
|