乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 98|回复: 8

[编程交流] 绕x、y、z轴旋转

[复制链接]

13

主题

81

帖子

68

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 09:52:40 | 显示全部楼层 |阅读模式
你好
 
是否有人有一段(可能很短)代码来执行以下操作:
 
  1. Command: rx (rotate aoround x-axis)
  2. does: rotate3d with x-axis pre-chosen as rotation axis
  3. and
  4. ry, rz

 
 
Thanx!
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:04:56 | 显示全部楼层
vla-Rotate3D函数?
回复

使用道具 举报

13

主题

81

帖子

68

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 2022-7-6 10:14:53 | 显示全部楼层
对不起,李,我不明白vla轮换的意义。
我说的是绕3个主轴旋转。
 
rx应绕x轴旋转,ry应绕y轴旋转,rz。。。
你只需要选择一个旋转点。
 
这只是在rotate3d命令中保留1个选项。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:21:22 | 显示全部楼层
 
我知道你是,这就是为什么我建议使用vla-Rotate3D
 
  1. (vla-rotate3D <object> <point1> <point2> <angle>)

 
其中和是定义旋转轴的两点。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 10:26:29 | 显示全部楼层
我认为你应该先看一下命令版本“Rotate3d”,理解它是如何工作的,然后用点而不是X Y Z重新阅读李的答案
 
0,0,0 1,0,0是x轴上的一个方向,但需要对象上的一个点才能开始。
回复

使用道具 举报

13

主题

81

帖子

68

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

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

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:37:46 | 显示全部楼层
好的,我会给你一点帮助:
 
  1. 5

 
这是一种方法。
 
请注意,如果要旋转选择集,则需要对其进行迭代,依次旋转每个对象。还请注意,上面的将绕WCS X轴旋转,而不是UCS X轴。
 
回复

使用道具 举报

13

主题

81

帖子

68

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
65
发表于 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
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 10:52:42 | 显示全部楼层
rotate3d做的第一件事是要求旋转对象!你不能向前跳两步然后再回去。
 
李在(vlax-3D-point(mapcar“+(trans p 1 0)”(1.0.0。))中发布了答案,你只需更改引用即可对于y轴'(0.1.0。)他甚至称之为“rx”,一旦在启动时自动加载,不管涉及多少代码。你只要输入rx。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-7 00:19 , Processed in 0.551634 second(s), 70 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表