motee-z 发表于 2022-7-5 18:40:50

查找之间的线性距离

你好
我想得到线之间的线性距离,就像在特殊层上的图像一样
如果距离超过边缘线,则将其旋转到垂直方向
如图所示
任何帮助都将不胜感激

Lee Mac 发表于 2022-7-5 18:53:53

快速一:
(defun c:ldis ( / e i l p q s x )
   (setq x
       (list
          '(08 . "Distance")
         (cons 40 (getvar 'textsize))
         (cons 07 (getvar 'textstyle))
          '(72 . 1)
          '(73 . 2)
       )
   )
   (if (setq s (ssget '((0 . "LINE"))))
       (progn
         (repeat (setq i (sslength s))
               (setq e (entget (ssname s (setq i (1- i))))
                     p (cdr (assoc 10 e))
                     q (cdr (assoc 11 e))
               )
               (if (equal (car p) (car q) 1e-3)
                   (setq l (cons (if (< (cadr p) (cadr q)) p q) l))
               )
         )
         (mapcar
            '(lambda ( a b / m s w )
                   (setq m (mapcar '(lambda ( a b ) (/ (+ a b) 2)) a b)
                         s (cons 01 (rtos (- (car b) (car a))))
                         w ((lambda ( b ) (- (caadr b) (caar b))) (textbox (cons s x)))
                   )
                   (entmake
                     (vl-list* '(0 . "TEXT") s
                           (cons 10 m)
                           (cons 11 m)
                           (if (< (- (car b) (car a)) w) (cons 50 (/ pi 2.0)) '(50 . 0.0))
                           x
                     )
                   )
               )
               (setq l (vl-sort l '(lambda ( a b ) (< (car a) (car b)))))
               (cdrl)
         )
       )
   )
   (princ)
)

motee-z 发表于 2022-7-5 19:00:06

真的是世界上最好的网站
谢谢李
请回答一个问题
控制文本向下或向上移动的变量是什么

Lee Mac 发表于 2022-7-5 19:09:09

不客气
 
你是指文字的旋转还是位置?

motee-z 发表于 2022-7-5 19:13:39

我找到了变量it,s m point,我可以将偏移量加到m point到所需的位置
谢谢李的好意

Lee Mac 发表于 2022-7-5 19:20:32

享受

Zac Davis 发表于 2022-7-5 19:32:55

如果它也适用于多段线,那就太好了。。
 
谢谢你的Lisp程序,工作得很好!

Lee Mac 发表于 2022-7-5 19:40:49

 
谢谢-你是说只有两个顶点的二维多段线吗?或者程序应该只考虑第一个多段线段吗?

BIGAL 发表于 2022-7-5 19:45:14

Lee可能更简单的方法是使用围栏选择第一行选择最后一行选择列表,顺序正确,无需排序。随机线示例2选取此选项用于自动标注复制的房屋平面图尺寸。
页: [1]
查看完整版本: 查找之间的线性距离