Steve Johnstone 发表于 2022-7-5 16:15:32

转换多段线顶点

在过去,我编写了一些代码来操作多段线的几何图形,但是我最近才遇到OCS的问题。
我编写了一个代码,用于提取多段线顶点,并在下面创建一个表,指示链测长度和RL(土木工程部分)。
这段代码运行良好,直到我发现在某些情况下,顶点坐标与UCS坐标不同,因此我发现了OCS的世界。
是否有人拥有将OCS坐标转换为UCS的lisp代码,或建议最好的方法。
 
 
谢谢

BIGAL 发表于 2022-7-5 16:34:12

你们的幸运日刚刚玩了一个trans函数,你们可以非常简单地将用户co ords的pt转换为世界。(setq wpt(trans ucspt 1 0))

Steve Johnstone 发表于 2022-7-5 16:49:28

谢谢BigAl,但我需要将OCS(对象坐标系)转换为UCS。
 
 
干杯

Roy_043 发表于 2022-7-5 17:03:08

您可以使用:
(trans point_in_ocs normal_of_entity 1)或:
(trans point_in_ocs ename_of_entity 1)
(setq enm (car (entsel)))
(setq elst (entget enm))
(setq elv (list (cdr (assoc 38 elst)))) ; Elevation.
(setq nor (cdr (assoc 210 elst)))       ; Extrusion or Normal.
(vl-remove
nil
(mapcar
   '(lambda (sub) (if (= 10 (car sub)) (trans (append (cdr sub) elv) nor 1)))
   elst
)
)

Steve Johnstone 发表于 2022-7-5 17:11:38

谢谢你,罗伊。
一、 我会让他们试试我的代码。
 
 
干杯

Steve Johnstone 发表于 2022-7-5 17:20:08

谢谢Roy
我最终使用了你的第二个代码选项。
一切都很顺利。
 
 
干杯
页: [1]
查看完整版本: 转换多段线顶点