[求助]将创建的三维实体旋转一个角度,在ARX中如何实现?
通过acdbGetAdsName(ads_name& objName,AcDbObjectId& objId)获得此实体的名称(ads_name),然后用acedComman调用rotate命令即可。(本人没有调试,如有问题请指出)不建议使用acedCommand()函数
最好调用AcDbEntity::transformBy()函数,其中需要一个AcGeMatrix3d类型参数,可以调用AcGeMatrix::Rotation()函数或者AcGeMatrix::SetToRotation()函数,在这可指定旋转轴、旋转中心和旋转角度参数。详细使用参阅ARX帮助。顺便说一下,使用acedCommand()函数要调用的不是rotate命令,而是ratate3d命令。 例子:
使用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度 <P> </P>
<P> </P>
<P>上面的p3dObj->transformBy(mat);</P>
<P>p3dObj为选中实体句柄,如果想旋转模型空间的整个实体,仍然是用这个方法吗,还是从view入手?</P>
<P> </P>
<P> </P>
页:
[1]