的法线X、法线和法线Z
当我得到一个圆的属性时,它显示NormalX=0 NormalY=0 NormalZ=1.0请你解释一下那是什么。更改ucs后,它将更改为其他一些值。之后,所有其他圆(新绘制的屋檐)都得到该值。
问题是在更改UCS后,我无法通过lisp获得中心坐标的正确值。(CAD 2006) 请记住,相关列表中的坐标是WCS坐标。要使其处于当前UCS中,请选中TRANS function。
这仅适用于非平面图元(如直线、点、三维多段线等),但某些平面例外情况(椭圆、多行文字)和拉伸向量(DXF组210)始终在WCS中定义。
对于大多数平面图元(圆弧、圆、LWPolyline、Insert、Text、Attrib等),定义坐标表示为使用任意轴算法定义的OCS(对象坐标系),给定图元的法线(拉伸)向量(DXF组210)。 谢谢各位的解释。 圆所在的平面由法线(垂直于该平面的向量)和该平面距WCS原点的距离定义。法线为x=0、y=0、z=1的平面平行于XY平面。DXF代码210存储圆的法线。DXF代码38高程(平面与原点的距离)。如果要将圆绕Y轴旋转45°,210代码将读取(210-0.707 0.0 0.707),该向量在XZ平面中指向45°。应该注意的是,3DROTATE命令遵循X、Y和Z轴的右手规则约定,但ROTATE3D命令有一个缺陷,在三维空间中旋转对象时,仅对Y轴使用左手规则。 这也许可以解释为什么我永远无法第一次正确地进行3d旋转。我总是试着用左手定则!!!
dJE
圆所在的平面由法线(垂直于该平面的向量)和该平面到圆心定义的WCS原点的距离定义。DXF代码38高程(平面与原点的距离),仅当LWPOLYLINE是实体-如果它是圆,如我所说,空间中的中心点位置和DXF代码210-OCS平面的法向量,定义位于圆中的三维空间平面。。。
由于没有人给出示例,这里使用参考圆的OCS将OCS中心坐标提取到WCS中心坐标,使用(trans)函数和DXF 210定义的源OCS,以及(trans)转换点坐标的目标WCS-0整数。。。
(defun c:circen ( / ss ci cen )
(prompt "\nPick circle")
(while (not ss)
(setq ss (ssget "_+.:L:E:S" '((0 . "CIRCLE"))))
)
(setq ci (ssname ss 0))
(setq cen (trans (cdr (assoc 10 (entget ci))) (cdr (assoc 210 (entget ci))) 0))
(prompt "\nCenter of circle in WCS is : ") (princ cen)
(princ)
)
M、 R。
页:
[1]