plantdesign 发表于 2022-7-6 09:11:12

获取实体位置XYZ an

是否可以使用LISP或。net循环通过每个实体,并获得其位置XYZ和旋转XYZ?
 
谢谢

BIGAL 发表于 2022-7-6 09:21:20

当你得到一个物体时,你可以很容易地把它拉开,所以简单的例子是一条线,你得到一个开始点和结束点,它的旋转由(角度开始点结束点)
 
这里有很多例子,例如
 
   (setq ss1 (ssget '((0 . "LINE"))))
(setq n (sslength ss1))
(setq count 0)
(repeat n
   (setq en (ssname ss1 count))
   (setq el (entget en))
   (setq count (+ count 1))
   (setq pt1 (cdr (assoc 10 el)))
(princ "\npt1 is ")(princ pt1)
   (setq pt2 (cdr (assoc 11 el)))
(princ "\npt2 is ")(princ pt2)

; your turn do angle here
)
(princ)

 
接下来,不同的物体给出不同的答案,一个圆和一条弧有一个中心点,一条多段线有很多点,你的问题很简单,需要更多细节。查找帮助dxf代码,您将看到所有可用信息。
 
如果您使用VL代码,您可能会得到更简单的答案。

plantdesign 发表于 2022-7-6 09:30:43

谢谢你,比格尔。这是我的。它是一个3D对象(带弯曲的圆柱体)。我真的不太了解autolisp,但是,我可以使用您的代码(或接近它的代码)来提取这个对象的位置xyz和旋转xyz吗?
 
谢谢
 
http://www.davetyner.com/images/elbow2_rotation.jpg

SLW210 发表于 2022-7-6 09:44:19

您使用的是AutoCAD还是3DS Max?

plantdesign 发表于 2022-7-6 09:47:40

Autocad

Tharwat 发表于 2022-7-6 09:55:51

你可以得到三维实体的xyz,但我认为你不能得到旋转,也不能得到实体的弯曲或旋转。
 
在VLisp中就是这种情况。

plantdesign 发表于 2022-7-6 10:03:24

是的,位置很简单。旋转就是这个。这似乎是普遍的共识。必须用它来做矩阵3/transform/vector数学,这是疯狂的16位数地狱。
 
谢谢

Tharwat 发表于 2022-7-6 10:12:33

确切地
 
这个位置是3dsolid的xyz,这就是我的意思。
 
当做
页: [1]
查看完整版本: 获取实体位置XYZ an