我的想法,想找到控制这个行间距的系统变量,把它设为固定值。
如果有系统变量控制那最好了,不过如果要修改还是需要手动修改 本帖最后由 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]