怎么求多段线每段的长度与角度
本帖最后由 hn10183051 于 2025-4-3 13:16 编辑要求选取多段线,返回2个表,一个表是每段线长,另一个表角度,按照图应该是返回8个长度尺寸与7个角度。 ;---三个点求夹角,p2为顶点,返回角度
(defun polyline-deg(p1 p2 p3 / ang)
(setq ang(-(angle p2 p3)(angle p2 p1)))
(if(< ang 0)(setq ang(+(* 2.0 pi)ang)))
(if(> ang pi)(setq ang(-(* 2.0 pi)ang)))
(/(* ang 180)pi);弧度=(角度*pi)/180
)
;---获取多段线子段线长度表
(defun get-subc-len(obj / a b lst n)
(setq lst nil)
(repeat(fix(setq n(vlax-curve-getEndParam obj)))
(setq a(vlax-curve-getDistAtParam obj n))
(setq b(vlax-curve-getDistAtParam obj(setq n(1- n))))
(setq lst(cons(- a b)lst))
)
)
aws 发表于 2025-4-3 13:21
谢谢大佬,有些时候多段线起点与终点刚好相反,有什么办法成一样
hn10183051 发表于 2025-4-3 15:02
谢谢大佬,有些时候多段线起点与终点刚好相反,有什么办法成一样
没明白,什么叫起点和终点相反,两个点? aws 发表于 2025-4-3 15:36
没明白,什么叫起点和终点相反,两个点?
意思应该是前面1条多段线是从左到右,后面1条多段线是从右到左吧,两条多段线相反 hn10183051 发表于 2025-4-3 15:02
谢谢大佬,有些时候多段线起点与终点刚好相反,有什么办法成一样
处理前先判断顺时针还是逆时针,不然就反转一下。 Bao_lai 发表于 2025-4-3 17:59
处理前先判断顺时针还是逆时针,不然就反转一下。
是的,有相关函数吗 hn10183051 发表于 2025-4-5 10:46
是的,有相关函数吗
reverse函数
页:
[1]