找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 953|回复: 3

[求助]:怎么打断不了!

[复制链接]
发表于 2002-6-15 18:04:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
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();
这是一段检查两个实体交点,并且从交点处打断的代码,但是运行后却不能打断,交点找的正确,请网友帮忙看看问题在哪,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-6-15 18:09:30 | 显示全部楼层

Re: [求助]:怎么打断不了!

最初由 dwjnet 发布
[B]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);
        AcGePoi... [/B]


既然用ARX,推荐你别用命令去做,使用AcDbCurve::getSplitCurves(...)去打断曲线,ACAD的所有曲线编辑命令(TRIM,BREAK)等都是通过这个方法实现的。

你上面的程序,选的是曲线吗?他们是一个平面上的吗?你用交互命令是否可以打断?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-6-16 09:14:16 | 显示全部楼层

如何打断?

所选的线是用PLINE做成的同一平面上的封闭曲线,然后用直线把封闭曲线分成两部分,如何用getsplitcurves()去做?能否给个例子,谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-7-10 17:12:45 | 显示全部楼层
关注,研究。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-22 18:20 , Processed in 0.328554 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表