找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2537|回复: 5

[求助] acedTrans用法

[复制链接]
发表于 2016-8-6 11:47:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
大家好,我是AutoCAD二次开发的新手,对ObjectArx还不是很熟悉。
在ObjectArx中可以使用acedTrans将UCS坐标系系下的点转到WCS坐标系下的点,我按照网上的一些例子编写,但没有效果。
我想问下,在使用该函数时,有什么需要注意的问题。以下是我的代码:
  1. AcGePoint3d pt1(0,0,0);
  2. AcGePoint3d pt2(100,100,0);  
  3. ads_point mpt1,mpt2;
  4.   mpt1[X]=pt1[X];mpt1[Y]=pt1[Y];mpt1[Z]=pt1[Z];
  5.   mpt2[X]=pt2[X];mpt2[Y]=pt2[Y];mpt2[Z]=pt2[Z];

  6.   struct resbuf wcs, ucs, dcs;  // 转换坐标时使用的坐标系统标记
  7.   wcs.restype = RTSHORT;
  8.   wcs.resval.rint = 0;
  9.   ucs.restype = RTSHORT;
  10.   ucs.resval.rint = 1;
  11.   dcs.restype = RTSHORT;
  12.   dcs.resval.rint = 2;
  13. ads_point mmpt1,mmpt2;
  14.     acedTrans(mpt1, &ucs, &wcs,0, mmpt1);
  15.     acedTrans(mpt2, &ucs, &wcs,0, mmpt2);
  16.     printf("PT1=(%f,%f,%f)\n",mmpt1[X],mpt1[Y],mmpt1[Z]);
  17.     printf("PT2=(%f,%f,%f)\n",mmpt2[X],mpt2[Y],mmpt2[Z]);

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 13个

财富等级: 恭喜发财

发表于 2016-8-6 14:13:14 | 显示全部楼层
AcGePoint3d pt1(0,0,0);
AcGePoint3d pt2(100,100,0);  
ads_point mpt1,mpt2;
mpt1[X]=pt1[X];mpt1[Y]=pt1[Y];mpt1[Z]=pt1[Z];
mpt2[X]=pt2[X];mpt2[Y]=pt2[Y];mpt2[Z]=pt2[Z];


-----------------

pt1,pt2声明是AcGePoint3d对象,那么就不能用[X]....来求值

应该是: pt1.x, pt1.y,pt1.z,pt2.x,pt2.y,pt2.z

其他没看,你先改了这个试试。

点评

这样写的话,mpt1,mpt2同样能被正确赋值,这应该不影响后面的函数使用吧  详情 回复 发表于 2016-8-8 12:21
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-8 12:21:01 | 显示全部楼层
LoveArx 发表于 2016-8-6 14:13
AcGePoint3d pt1(0,0,0);
AcGePoint3d pt2(100,100,0);  
ads_point mpt1,mpt2;

这样写的话,mpt1,mpt2同样能被正确赋值,这应该不影响后面的函数使用吧

点评

影响以后的什么函数?  详情 回复 发表于 2016-8-8 12:34
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-8-8 12:34:43 | 显示全部楼层
fengfenglin 发表于 2016-8-8 12:21
这样写的话,mpt1,mpt2同样能被正确赋值,这应该不影响后面的函数使用吧

影响以后的什么函数?

点评

我的意思是说,使用我上面的方式进行赋值,不会影响acedTrans的结果  详情 回复 发表于 2016-8-8 12:56
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-8 12:56:18 | 显示全部楼层
newer 发表于 2016-8-8 12:34
影响以后的什么函数?

我的意思是说,使用我上面的方式进行赋值,不会影响acedTrans的结果

点评

你试试,看看trans结果对不。  详情 回复 发表于 2016-8-8 13:05
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-8-8 13:05:21 | 显示全部楼层
fengfenglin 发表于 2016-8-8 12:56
我的意思是说,使用我上面的方式进行赋值,不会影响acedTrans的结果

你试试,看看trans结果对不。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-24 16:32 , Processed in 0.362622 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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