ilove205 发表于 2007-4-23 15:30:00

用VC++6.0在AutoCAD2000中的编程疑问(急)

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

ilove205 发表于 2007-4-23 15:33:00

<p>自己顶一下</p><p>谢了</p>
页: [1]
查看完整版本: 用VC++6.0在AutoCAD2000中的编程疑问(急)