明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2190|回复: 4

[求助]将创建的三维实体旋转一个角度,在ARX中如何实现?

[复制链接]
发表于 2003-8-11 16:27:00 | 显示全部楼层 |阅读模式
发表于 2003-8-16 09:01:00 | 显示全部楼层
通过acdbGetAdsName(ads_name& objName,AcDbObjectId& objId)获得此实体的名称(ads_name),然后用acedComman调用rotate命令即可。(本人没有调试,如有问题请指出)
发表于 2003-8-18 21:09:00 | 显示全部楼层

不建议使用acedCommand()函数

最好调用AcDbEntity::transformBy()函数,其中需要一个AcGeMatrix3d类型参数,可以调用AcGeMatrix::Rotation()函数或者AcGeMatrix::SetToRotation()函数,在这可指定旋转轴、旋转中心和旋转角度参数。详细使用参阅ARX帮助。
顺便说一下,使用acedCommand()函数要调用的不是rotate命令,而是ratate3d命令。
发表于 2003-8-28 13:56:00 | 显示全部楼层
例子:
使用AcDbEntity::transformBy()函数,其中需要一个AcGeMatrix3d类型参数mat;
      AcGeVector3d axis(0,1,0);  //旋转轴(x,y,z)
      AcGePoint3d origin(0, 0, 0);
      mat.setToRotation(PI/2, axis, origin);
      p3dObj->transformBy(mat);

即可绕Y轴旋转90度
发表于 2005-8-19 19:22:00 | 显示全部楼层

 

 

上面的p3dObj->transformBy(mat);

p3dObj为选中实体句柄,如果想旋转模型空间的整个实体,仍然是用这个方法吗,还是从view入手?

 

 

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

本版积分规则

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

GMT+8, 2024-11-26 06:40 , Processed in 0.165582 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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