- UID
 - 594385
 
- 积分
 - 11
 
- 精华
 
- 贡献
 -  
 
- 威望
 -  
 
- 活跃度
 -  
 
- D豆
 -  
 
- 在线时间
 -  小时
 
- 注册时间
 - 2008-1-2
 
- 最后登录
 - 1970-1-1
 
 
 
 
 
 
 | 
 
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册 
 
 
 
 
×
 
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。 |   
 
 
 
 |