我是ObjectARX的初学者,遇到以下棘手问题,希望高手们能帮我解决一下: 在AutoCAD2000中画一个包含多条直线、多个圆弧的图形,怎么通过VC++6.0编程找到直线的起点、终点坐标和圆弧的中心坐标、半径,并且保证两线之间的起终点要在误差范围内(这个误差范围自定),如果不在误差范围内弹出对话框提示用户要如何处理?而且要把所得到的直线起终点坐标和圆弧中心坐标、半径存到一个结构体里,方便调用! 我现在做了一点,往后就不会了!急啊,希望大虾们帮帮忙 我编的程序如下: void CDialogTrackSetting::OnTrackpick() { // TODO: Add your control notification handler code here BeginEditorCommand(); char strPrompt[50]="\n请选择直线,圆弧!"; ads_name ent_name; ads_point ent_point; AcDbObjectId objId; AcDbEntity * pEnt; const char *pClsName=NULL;
if(RTNORM==acedEntSel(strPrompt,ent_name,ent_point)) { CompleteEditorCommand(); acdbGetObjectId(objId,ent_name); acdbOpenAcDbEntity(pEnt,objId,AcDb::kForRead); pClsName = pEnt->isA()->name(); if(0==strcmp("AcDbLine",pClsName)) { AcDbLine* pLine; AcGePoint3d start_point,end_point; pLine=(AcDbLine*)pEnt; start_point=pLine->startPoint() ; end_point=pLine->endPoint() ; } if(0==strcmp("AcDbCircle",pClsName)) { AcDbCircle* pCircle; AcGePoint3d center_point; double radius; pCircle=(AcDbCircle*)pEnt; center_point=pCircle->center() ; radius=pCircle->radius() ; } } CompleteEditorCommand();
}
|