- UID
- 3650
- 积分
- 134
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2002-4-6
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
ads_point pt,pt1;
ads_name en,en1,entlast;
acedEntSel("\n选择线:",en,pt);
AcDbObjectId eId;
acdbGetObjectId(eId,en);
AcDbEntity *pEnt;
acdbOpenObject(pEnt,eId, AcDb::kForRead);
AcGePoint3dArray intPoints;
AcGePoint3d intPt1;
if(acedEntSel("\n选择断开线",en1,pt)==RTNORM)
{
AcDbObjectId objId;
acdbGetObjectId(objId,en1);
AcDbEntity *pObj;
acdbOpenObject(pObj,objId,AcDb::kForRead);
pObj->intersectWith(pEnt,AcDb::kOnBothOperands,intPoints);
pObj->close();
if(!intPoints.isEmpty())
{
int kk=intPoints.length();
for(int i=0;i<kk;i++)
{
intPt1=intPoints.at(i);
pt1[X]=intPt1[X];
pt1[Y]=intPt1[Y];
acutPrintf("\npt1[X]=%f,pt1[Y]=%f",pt1[X],pt1[Y]);
if(i!=0 && i<kk)
{
acdbEntLast(entlast);
acedCommand(RTSTR,"break",RTENAME,entlast,RTSTR,"F",RTSTR,"",RTPOINT,pt1,RTSTR,"",RTPOINT,pt1,0);
}
else
{
acedCommand(RTSTR,"break",RTENAME,en,RTSTR,"F",RTPOINT,pt1,RTSTR,"",RTPOINT,pt1,0);
}
intPoints.removeAt(i);
}
}
else
return;
}
pEnt->close();
这是一段检查两个实体交点,并且从交点处打断的代码,但是运行后却不能打断,交点找的正确,请网友帮忙看看问题在哪,谢谢! |
|