![]() |
【转帖】arx高手请进
arx高手请进
arx高手请进 我开发一个arx程序,需动态反馈,需要知道当前光标位置。用acedgrread时,不能实现osnap。用acedgetpoint可获得最点及实现osnap,但不能动态反馈。 使用acedgetpoint函数,同时创建另一线程使用acedgrread实现动态反馈,确总是autocad崩溃(使用::getmousecursor()及鼠标勾子也同样)。 望哪位高手能解我所惑,并帮我实现上述意图,将不胜感激,并将用其它源资及知识回报。 不知道下面代码对你有没有帮助!!!! //////////////////////////////////////////////////////////// //动态移动选择集 //////////////////////////////////////////////////////////// //跟踪矩阵(无限制) int trancematrix(ads_point usrpt,ads_matrix matrix) { int i,j; for(i=0;i<=3;i++) for(j=0;j<=3;j++) matrix[j]=0,0; for(i=0;i<=3;i++) matrix[i][i]=1.0; matrix[0][t]=usrpt[x]; matrix[1][t]=usrpt[y]; matrix[2][t]=usrpt[z]; return rtnorm; } //函数名:acdbdragsset //功能:动态移动一个选择集 //选择集:ssetname //移动参照点:referpoint acad::errorstatus acdbdragsset( ads_name ssetname, acgepoint3d referpoint ) { ads_point rtpnt; int status; status=aceddraggen(ssetname, "\n请选择一个插入点:", 0, trancematrix, rtpnt); if(status!=rtnorm){ return acad::enotimplementedyet; } else{ acgepoint3d newposition; newposition.set(rtpnt[x],rtpnt[y],rtpnt[z]); return acdbmovesset(ssetname,referpoint,newposition); } } [i]请参考aceddraggen()函数定义 |
所有的时间均为北京时间。 现在的时间是 10:57 PM. |