- 积分
- 30322
- 明经币
- 个
- 注册时间
- 2016-9-16
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
本帖最后由 fangmin723 于 2024-4-8 13:23 编辑
在CAD帮助中,对多行文字的行距有具体的介绍,介绍如下:
行距
指定多行文字对象的行距。行距是一行文字的底部(或基线)与下一行文字底部之间的垂直距离。
注: 用 MTEXT 创建表格时最好使用精确间距。请使用比指定的行距小的文字高度以保证文字不互相重叠。
- 至少。根据行中最大字符的高度自动调整文字行。当选定“至少”时,包含更高字符的文字行会在行之间加大间距。
- 距离。将行距设定为以图形单位测量的绝对值。有效值必须在 0.0833 (0.25x) 和 1.3333 (4x) 之间。
- 精确。强制多行文字对象中所有文字行之间的行距相等。间距由对象的文字高度或文字样式决定。
单倍行距是文字字符高度的 1.66 倍。可以以数字后跟 x 的形式输入行距比例,表示单倍行距的倍数。
例如,输入 1x 指定单倍行距,输入 2x 指定双倍行距。
上述文字中说,单倍行距是文字字符高度的 1.66 倍,即:文字高度是行距的0.6倍
- (progn;;;(MLS)MText Line Space 多行文字行间距修改 by 702099480@qq.com 2023.5.11
- (defun c:mls(/ dxf44 edata ei ent n rdis si ss str);;CAD快捷命令MLS
- (if (setq ss (ssget '((0 . "MTEXT"))))
- (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 edata (entget ent) str (cdr (assoc 1 edata)))
- ;;;(setq edata (entget (car (entsel))) 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 ow (substr str si (- ei si -1)))
- ;;(setq nw (strcat "\\psm" (rtos rdis 2 2) ";"))
- ;;(setq str (vl-string-subst nw ow str))
- ;;(setq edata (subst (cons 1 str) (assoc 1 edata) edata))
- (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)
- )
- )
- )
- (princ (strcat "共修改【" (rtos (sslength ss)) "】个多行文字!"))
- (prin1)
- )
- (princ "\n多行文字行间距修改快捷命令 << MLS >>")
- (prin1)
- )
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
评分
-
查看全部评分
|