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