找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2601|回复: 6

[公告] 如何使在画线时能实时显示已画好的线

[复制链接]
发表于 2006-10-13 20:30:27 | 显示全部楼层 |阅读模式

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

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

×
以多义线画一四边形
AcGePoint3dArray  PArr;
PArr.setLogicalLength(4);
acedGetPoint(NULL,"\n输入起点:",asDblArray(PArr[0]));
acedGetPoint(asDblArray(PArr[0]),"\n输入第二点:",asDblArray(PArr[1]));
acedGetPoint(asDblArray(PArr[1]),"\n输入矩形第三点:",asDblArray(PArr[2]));
acedGetPoint(asDblArray(PArr[2]),"\n输入第四点:",asDblArray(PArr[3]));
pPline=new AcDb2dPolyline(AcDb::k2dSimplePoly,PArr,0.0,Adesk::kTrue);
怎样才能使画一段就能显示一段,就是说定了第一点和第二点后这一段线就能显示在屏幕上,定出第三点后,第二段线也显示在屏幕上,再定第四点等等

另外如果中途输入Esc键,怎么设置可以使程序中断退出?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-10-17 11:50:13 | 显示全部楼层
不懂的是为什么要这么做,CAD不是有现成的东西么?
如果要这么做,在中间过程用个实体记录所画过的线,最后把这个实体erase掉就可以了
中途输入Esc键的时候acedGetPoint会返回RTCAN,做相应的处理就可以了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2008-4-11 23:41:32 | 显示全部楼层
看这个是否能解决你的问题

void GetPline(double width, bool flagcurve)
{
        ads_point pt1, pt2;
        AcGePoint2d ptStart, ptEnd;

        if (acedGetPoint(NULL, "\n指定第一点: ", pt1) == RTNORM)
        {
                ptStart = asPnt2d(pt1);
                if(acedGetPoint(pt1, "\n指定下一点: ", pt2) == RTNORM)
                {
                        ptEnd = asPnt2d(pt2);
//                         acedCommand(RTSTR, "PlINE", RT3DPOINT, pt1, RT3DPOINT, pt2, RTSTR, "", RTNONE);
                        AcDbObjectId entId;
                        entId=CEntities::CreatePolyline(ptStart, ptEnd, width);

                        ads_point_set(pt2, pt1);
                        AcDbPolyline *pPoly;
                        int i=2;
                        Acad::ErrorStatus es;
                        while (acedGetPoint(pt1, "\n指定下一点: ", pt2) == RTNORM)
                        {
                                // 打开图形数据库中的对象
                                es = acdbOpenObject(pPoly, entId, AcDb::kForWrite);
                                if (es != Acad::eOk)
                                {
                                        return;
                                }
                                ads_point_set(pt2, pt1);
                                pPoly->addVertexAt(i++, asPnt2d(pt2), 0, width, width);
                                pPoly->setPlinegen(true);
                                pPoly->close();
                        }
                        if (flagcurve)
                        {
                                char strYesorNo[32];
                                if (acedGetString(NULL, "拟合线<N>: ", strYesorNo) == RTNORM)
                                {        if ((strcmp(strYesorNo,"y") ==0) || (strcmp(strYesorNo,"Y") ==0))
                                        CEntities::PolylineConvertTo(entId, AcDb::k2dFitCurvePoly);
                                }
                               
                        }
                }
    }
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-25 14:24 , Processed in 0.410771 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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