fangmin723 发表于 2025-4-23 15:16:02

qazxswk 发表于 2025-4-23 11:49
我的想法,想找到控制这个行间距的系统变量,把它设为固定值。

如果有系统变量控制那最好了,不过如果要修改还是需要手动修改

qazxswk 发表于 2025-4-23 18:27:40

本帖最后由 qazxswk 于 2025-4-23 18:59 编辑

我来更新一下,借花献佛,在浩辰CAD中,支持修改多行文字与多重引线文字。在AutoCAD里不支持修改多重引线文字。可能原因是,多重引线有两个304组码,AutoCAD读取混乱了。

(defun c:11(/ dxf44 dxf45 edata ei ent n rdis si ss s0 str)
    (if (setq ss (ssget '((0 . "MTEXT,MULTILEADER"))))
      (progn
      (if (= nil (setq rdis (getreal "\n输入新行距【0.25~4.00】,默认<0.6>:"))) (setq rdis 0.6))
      (if (< rdis 0.25) (setq rdis 0.25))
      (if (> rdis 4.0) (setq rdis 4.0))
      (setq n -1)
      (while (setq ent (ssname ss (setq n (1+ n))))
      (setq s0 (cdr (assoc 0 (entget ent))))
         (cond
      ((member s0 '("MTEXT"))
      (setq edata (entget ent) str (cdr (assoc 1 edata)))
          (if (wcmatch str "*\\psm#.##;*,*\\psm#.#;*,*\\psm#;*")
            (progn
            (setq si (1+ (vl-string-search "\\psm" str)))
            (setq ei (1+ (vl-string-search ";" str (1+ si))))
            (setq str (vl-string-subst "" (substr str si (- ei si -1)) str))
            (setq edata (subst (cons 1 str) (assoc 1 edata) edata))
            ) )
       (if (setq dxf44 (assoc 44 edata))
            (setq edata (subst (cons 44 rdis) dxf44 edata))
            (setq edata (append edata (list (cons 44 rdis))))
          )
      (entmod edata))
      
      ((member s0 '("MULTILEADER"))
      (setq edata (entget ent) str (cdr (assoc 304 edata)))
         (if (wcmatch str "*\\psm#.##;*,*\\psm#.#;*,*\\psm#;*")
            (progn
            (setq si (1+ (vl-string-search "\\psm" str)))
            (setq ei (1+ (vl-string-search ";" str (1+ si))))
            (setq str (vl-string-subst "" (substr str si (- ei si -1)) str))
            (setq edata (subst (cons 304 str) (assoc 304 edata) edata))
            ) )
      (if (setq dxf45 (assoc 45 edata))
            (setq edata (subst (cons 45 rdis) dxf45 edata))
            (setq edata (append edata (list (cons 45 rdis))))
          )
      (entmod edata))
      );;cond
      )
      )
    )
    (princ (strcat "共修改【" (rtos (sslength ss)) "】个多行文字!"))
    (princ))

页: 1 [2]
查看完整版本: MText Line Space 多行文字行间距修改