线路方向验证
我收到了一张代表大面积地下光纤通信的图纸。我只是用这张图作为参考,并为它们指定了一个线型作为-UC-问题是,这张图有各种不同方向的线,所以有些线彼此平行,有不同方向的文字。我想知道是否有一个例程(我找不到)会扫描所有行,以验证行的起点比终点更接近原点,然后旋转180度,否则所有文本都会从左向右读取? 完全未经测试:
(defun c:linedir ( / ss i en ed p10 p11 d11 d10)
(while (not ss)
(princ "\nSelect Lines Sort: ")
(setq ss (ssget '((0 . "LINE")))))
(setq i (sslength ss))
(while (not (minusp (setq i (1- i))))
(setq en (ssname ss i)
ed (entget en)
p10 (cdr (assoc 10 ed))
d10 (distance '(0 0 0) p10)
p11 (cdr (assoc 11 ed))
d11 (distance '(0 0 0) p11))
(and (> d11 d10)
(setq ed (subst (cons 10 p11) (assoc 10 ed) ed)
ed (subst (cons 11 p10) (assoc 11 ed) ed))
(entmod ed)))
(redraw)
(prin1))
-大卫 对不起,似乎对我选择的任何一行都没有任何作用。 让我纠正一下,它似乎使线条从右向左(朝向原点)而不是从左向右(远离原点)。 我已经改变了大号符号,一切似乎都很正常。我会让你知道它是否适用于整个绘图。 效果很好。所有的线似乎都在适当的方向上。再次感谢。 很好地捕捉到了大于号。祝你好运
距离有可能相等。所以这将是一个没有实际意义的观点-大卫
页:
[1]