明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1982|回复: 1

ARX高手请进

[复制链接]
发表于 2006-5-10 13:39:00 | 显示全部楼层 |阅读模式

      我开发一个ARX程序,需动态反馈,需要知道当前光标位置。用acedGrRead时,不能实现OSnap。用acedGetPoint可获得最点及实现OSnap,但不能动态反馈。

      使用acedGetPoint函数,同时创建另一线程使用acedGrRead实现动态反馈,确总是AutoCAD崩溃(使用::GetMouseCursor()及鼠标勾子也同样)。

     望哪位高手能解我所惑,并帮我实现上述意图,将不胜感激,并将用其它源资及知识回报。

zzg_china@yahoo.com.cn

发表于 2006-5-17 12:56:00 | 显示全部楼层

不知道下面代码对你有没有帮助!!!!

////////////////////////////////////////////////////////////
//动态移动选择集
////////////////////////////////////////////////////////////
//跟踪矩阵(无限制)
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=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()函数定义[/I]

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-29 16:40 , Processed in 0.161103 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表