关于trans的疑惑
Trans转换,我个人理解第1个表达式返回应该是当前WCS坐标,第2个应该是OCS坐标也就是(0 0 0),可结果出人意外,两者相同,请各位老师看看哪里出问题了。(defun c:pp (/ en)
(setq en (car (entsel)))
(princ "\n")
(princ (trans (cdr (assoc 10 (entget en))) en 0))
(princ "\n")
(princ (trans (cdr (assoc 10 (entget en))) en 1))
(princ)
)
返回:
(24487.1 18690.7 0.0)
(24487.1 18690.7 0.0) <-这个我个人理解应该是(0 0 0)
czb203 发表于 2024-7-4 17:06
大佬,之前看您文字也描述了很多,能不能用些简单的实例讲解下,这个函数太抽象了,虽然不常用,~
我从另外一个视图来画个示意说一下吧。
hubeiwdlue 发表于 2024-7-4 21:35
什么情况下,对象坐标系的z轴才会和wcs的z轴方向不一样呢。对象坐标系确实看不懂,和有限元的单元坐标系 ...
不能理解成单元坐标系,不是一个概念。对象坐标系是以(0 0 0)为原点,特定的法向量为Z轴的坐标系。
举例来说,(1, 0, 0) 、(0, 1, 0)、(0, 0, 1) 这三个点共面,构成一个三角形,这个平面平行于 $\pi$ 平面(你提到有限元了,我想弹塑性力学应该不陌生吧),这个正三角形的中心(1/3, 1/3, 1/3)肯定是在静水压力轴上,以静水压力轴为 z 轴的 OCS,原点就是 (0,0,0),XOY 平面就是 $\pi$ 平面,X轴 Y轴的方向依任意轴算法(看帮助)确定,WCS 里的(1/3, 1/3, 1/3)点 转换到 这个OCS 里就是 (0,0, sqrt(3)/3) , 你可以尝试一下 (trans (list (/ 1. 3.) (/ 1. 3.) (/ 1. 3.) ) 0 (list 1. 1. 1.)) 看看是不是这个结果。 1、WCS 是唯一的,没有什么当前的 WCS;
2、OCS 在绝大多数情况下和 WCS 是一致的(大家都在 XOY 平面作图),OCS 和 WCS 原点是完全一致的,只是 OCS 的 z 轴单位向量和 WCS z 轴单位向量不一定一致,如果你的平面图元所在平面不是 WCS 的 XOY平面,那么 OCS 和 WCS 是不一致的(法向量不同);
3、UCS 是不唯一的,是用户确定的;你那一句换到的是 UCS,不出意料,你没有动过UCS,和 WCS 是一致的。这里和 OCS 没关系。 坐等大神科普对象坐标系的知识。 一个是变换,一个是逆变换... OCS 如果是 (0 0 0),那 一定是WCS 的 (0 0 0)。你没理解对象坐标系 OCS 是什么。 vormittag 发表于 2024-7-4 14:51
OCS 如果是 (0 0 0),那 一定是WCS 的 (0 0 0)。你没理解对象坐标系 OCS 是什么。
大佬,之前看您文字也描述了很多,能不能用些简单的实例讲解下,这个函数太抽象了,虽然不常用,~ czb203 发表于 2024-7-4 17:06
大佬,之前看您文字也描述了很多,能不能用些简单的实例讲解下,这个函数太抽象了,虽然不常用,~
去敲敲c#,敲敲就知道了 vormittag 发表于 2024-7-4 18:06
我从另外一个视图来画个示意说一下吧。
谢谢大佬的图文分析,得好好研究下:lol 你有种再说一遍 发表于 2024-7-4 18:02
去敲敲c#,敲敲就知道了
:lol水平不够,勉强看得懂lsp
页:
[1]
2