Randolph 发表于 2022-7-6 09:52:40

绕x、y、z轴旋转

你好
 
是否有人有一段(可能很短)代码来执行以下操作:
 
Command: rx (rotate aoround x-axis)
does: rotate3d with x-axis pre-chosen as rotation axis

and

ry, rz
 
 
Thanx!

Lee Mac 发表于 2022-7-6 10:04:56

vla-Rotate3D函数?

Randolph 发表于 2022-7-6 10:14:53

对不起,李,我不明白vla轮换的意义。
我说的是绕3个主轴旋转。
 
rx应绕x轴旋转,ry应绕y轴旋转,rz。。。
你只需要选择一个旋转点。
 
这只是在rotate3d命令中保留1个选项。

Lee Mac 发表于 2022-7-6 10:21:22

 
我知道你是,这就是为什么我建议使用vla-Rotate3D
 
(vla-rotate3D <object> <point1> <point2> <angle>)
 
其中和是定义旋转轴的两点。

BIGAL 发表于 2022-7-6 10:26:29

我认为你应该先看一下命令版本“Rotate3d”,理解它是如何工作的,然后用点而不是X Y Z重新阅读李的答案
 
0,0,0 1,0,0是x轴上的一个方向,但需要对象上的一个点才能开始。

Randolph 发表于 2022-7-6 10:33:11

我觉得我在写中文
比格尔,我真的知道我的欧几里得。
让我们用德语AutoCAD试试
 
这是:
 
这就是我想要的-只需要一个简单的旋转3d,预选X轴。。。一个预选了Y轴,另一个预选了Z轴。
 
应该这样工作:
 
这真的很简单。我只想节省在rotat3d命令中输入“x”的一个步骤。对于Lisp程序的专业人士来说,这应该是非常简单的事情。。。

Lee Mac 发表于 2022-7-6 10:37:46

好的,我会给你一点帮助:
 
5
 
这是一种方法。
 
请注意,如果要旋转选择集,则需要对其进行迭代,依次旋转每个对象。还请注意,上面的将绕WCS X轴旋转,而不是UCS X轴。
 

Randolph 发表于 2022-7-6 10:51:25

Thanx,我试试这个。请问您为什么选择vla-rotate3d而不是rotate3d?
我知道如何预选一个第一次出现的选项,例如:
 
(DEFUN C:BX()(命令“\u UCS”“X”))
 
鉴于
 
(DEFUN C:RX()(命令“\u ROTATE3D”“\u X”))
 
不起作用:选择错误,需要点。
 
因此,我试图找出如何预选选项,这些选项在执行命令时仅显示在第二行或第三行。
 
因为下一个是mx,my,mz:
 
YZ平行平面上的MX mirror3d
ZX平行平面上的MY mirror3d

BIGAL 发表于 2022-7-6 10:52:42

rotate3d做的第一件事是要求旋转对象!你不能向前跳两步然后再回去。
 
李在(vlax-3D-point(mapcar“+(trans p 1 0)”(1.0.0。))中发布了答案,你只需更改引用即可对于y轴'(0.1.0。)他甚至称之为“rx”,一旦在启动时自动加载,不管涉及多少代码。你只要输入rx。
页: [1]
查看完整版本: 绕x、y、z轴旋转