MiGo 发表于 2022-7-6 12:02:01

线路方向验证

我收到了一张代表大面积地下光纤通信的图纸。我只是用这张图作为参考,并为它们指定了一个线型作为-UC-问题是,这张图有各种不同方向的线,所以有些线彼此平行,有不同方向的文字。
我想知道是否有一个例程(我找不到)会扫描所有行,以验证行的起点比终点更接近原点,然后旋转180度,否则所有文本都会从左向右读取?

David Bethel 发表于 2022-7-6 12:13:36

完全未经测试:
 

(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))

 
 
-大卫

MiGo 发表于 2022-7-6 12:23:56

对不起,似乎对我选择的任何一行都没有任何作用。

MiGo 发表于 2022-7-6 12:41:25

让我纠正一下,它似乎使线条从右向左(朝向原点)而不是从左向右(远离原点)。

MiGo 发表于 2022-7-6 12:44:52

我已经改变了大号符号,一切似乎都很正常。我会让你知道它是否适用于整个绘图。

MiGo 发表于 2022-7-6 12:52:47

效果很好。所有的线似乎都在适当的方向上。再次感谢。

David Bethel 发表于 2022-7-6 13:05:51

很好地捕捉到了大于号。祝你好运
 
距离有可能相等。所以这将是一个没有实际意义的观点-大卫
页: [1]
查看完整版本: 线路方向验证