找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1362|回复: 0

[ARX函数]:不出版本的ARX函数区别

[复制链接]
发表于 2010-1-25 11:07:08 | 显示全部楼层 |阅读模式

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

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

×
1.用Draworder时要注意了
ads_command(RTSTR,_T("draworder"),RTENAME,entMain,RTSTR,_T(""),RTSTR,_T("A"),RTPICKS,ssName,RTNONE);
ads_command(RTSTR,_T("regen"),RTSTR,_T(""),RTNONE);

上面的命令,在2002中,CAD会全图刷新,
在2004中就只刷新ssNamet和entMain.

2005(不包括2005)以下版本,不能用draworder局部刷新。没有draworderctl这个全局变量。

2.在Debug模式下,ads_point pt;acgepoint2d ptPick;
ads_point_set(pt,asDblArray(ptPick));

上面的代码,在VC6里不出错, 
在VS2002 Debug中就会出现 内存崩溃。
但在VS2002 Release下不崩溃。

3有关AcdbCurve的一些函数
AcdbArc对AcdbCurve的函数的实现有些不完全。
比如GetStartDparm和GetEndDparm。但GetDist正确
//下面是测试函数,在CAD2002、2005上完成。
        AcDbObjectId objID;
        if (SelectEnt(objID,_T("弧")) == false)
                return;

        ads_point pt;
        int ese= acedGetPoint(NULL,_T("\nGet Point:"),pt);
        if ( ese == RTCAN) return;

        AcDbArc* pArc;
        acdbOpenObject(pArc,objID,AcDb::kForRead);

        double dAngleSt,dAngleEnd;
        dAngleSt = pArc->startAngle();
        dAngleEnd = pArc->endAngle();//起始角,和终止角都在0-2PI之间,弧都是逆时针创建的,起始角可能小于张终止角。

        acutPrintf(_T("\nStart Angle: %.3f"),dAngleSt);
        acutPrintf(_T("\nEnd Angle: %.3f"),dAngleEnd);

        Acad::ErrorStatus es=        pArc->getStartParam(dAngleSt);
        acutPrintf(_T("\nStart Parm: %.3f"),dAngleSt);
        es=pArc->getEndParam(dAngleEnd);//dParm,返回的都是弧度,与多段线的不同,但EndParm一定大于StartParm,所以endParm有可能是endAngle+2PI;

        acutPrintf(_T("\nEnd Parm: %.3f"),dAngleEnd);

        AcGePoint3d pt3d;
        ads_point_set(pt,asDblArray(pt3d));
        dAngleSt = 0.0;
        es = pArc->getParamAtPoint(pt3d,dAngleSt);
        acutPrintf(_T("\nX:%.3f Y:%.3f  dParm:%.3f"),pt3d.x,pt3d.y,dAngleSt);

        pArc->getDistAtPoint(pt3d,dAngleSt);
        acutPrintf(_T("\nX:%.3f Y:%.3f  dDist:%.3f"),pt3d.x,pt3d.y,dAngleSt);

        pArc->close();

对于圆,getStartParam返回。GetEndParm返回2PI。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-20 22:27 , Processed in 0.159259 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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