zzg_china 发表于 2006-5-10 13:39:00

ARX高手请进

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我开发一个ARX程序,需动态反馈,需要知道当前光标位置。用acedGrRead时,不能实现OSnap。用acedGetPoint可获得最点及实现OSnap,但不能动态反馈。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 使用acedGetPoint函数,同时创建另一线程使用acedGrRead实现动态反馈,确总是AutoCAD崩溃(使用::GetMouseCursor()及鼠标勾子也同样)。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp; 望哪位高手能解我所惑,并帮我实现上述意图,将不胜感激,并将用其它源资及知识回报。</P>
<P><A href="mailto:zzg_china@yahoo.com.cn" target="_blank" >zzg_china@yahoo.com.cn</A></P>

linyiwq 发表于 2006-5-17 12:56:00

<P>不知道下面代码对你有没有帮助!!!!</P>
<P>////////////////////////////////////////////////////////////<BR>//动态移动选择集<BR>////////////////////////////////////////////////////////////<BR>//跟踪矩阵(无限制)<BR>int trancematrix(ads_point usrpt,ads_matrix matrix)<BR>{<BR>&nbsp;int i,j;<BR>&nbsp;for(i=0;i&lt;=3;i++) for(j=0;j&lt;=3;j++) matrix=0,0;<BR>&nbsp;for(i=0;i&lt;=3;i++) matrix=1.0;<BR>&nbsp;matrix=usrpt;<BR>&nbsp;matrix=usrpt;<BR>&nbsp;matrix=usrpt;<BR>&nbsp;return RTNORM;<BR>}<BR>//函数名:acdbDragSset<BR>//功能:动态移动一个选择集<BR>//选择集:ssetname<BR>//移动参照点:referpoint<BR>Acad::ErrorStatus acdbDragSset(<BR>&nbsp;ads_name ssetname,<BR>&nbsp;AcGePoint3d referpoint<BR>)<BR>{<BR>&nbsp;ads_point rtpnt;<BR>&nbsp;int status;<BR>&nbsp;status=acedDragGen(ssetname,<BR>&nbsp;&nbsp;"\n请选择一个插入点:",<BR>&nbsp;&nbsp;0,<BR>&nbsp;&nbsp;trancematrix,<BR>&nbsp;&nbsp;rtpnt);<BR>&nbsp;if(status!=RTNORM){<BR>&nbsp;&nbsp;return Acad::eNotImplementedYet;<BR>&nbsp;}<BR>&nbsp;else{<BR>&nbsp;&nbsp;AcGePoint3d newposition;<BR>&nbsp;&nbsp;newposition.set(rtpnt,rtpnt,rtpnt);<BR>&nbsp;&nbsp;return acdbMoveSset(ssetname,referpoint,newposition);<BR>&nbsp;}<BR>}</P>
<P>请参考acedDragGen()函数定义</P>
页: [1]
查看完整版本: ARX高手请进