天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 59|回复: 0

[源码] MText Line Space 多行文字行间距修改

[复制链接]
  • TA的每日心情
    开心
    5 天前
  • 签到天数: 49 天

    [LV.5]常住居民I

    185

    主题

    150

    回帖

    1695

    积分

    管理员

    积分
    1695
    发表于 2024-4-8 21:27:01 | 显示全部楼层 |阅读模式
    在CAD帮助中,对多行文字的行距有具体的介绍,介绍如下:

    行距

    指定多行文字对象的行距。行距是一行文字的底部(或基线)与下一行文字底部之间的垂直距离。


    注: 用 MTEXT 创建表格时最好使用精确间距。请使用比指定的行距小的文字高度以保证文字不互相重叠。

    至少。根据行中最大字符的高度自动调整文字行。当选定“至少”时,包含更高字符的文字行会在行之间加大间距。

    距离。将行距设定为以图形单位测量的绝对值。有效值必须在 0.0833 (0.25x) 和 1.3333 (4x) 之间。

    精确。强制多行文字对象中所有文字行之间的行距相等。间距由对象的文字高度或文字样式决定。

    间距比例。将行距设定为单倍行距的倍数。

    单倍行距是文字字符高度的 1.66 倍。可以以数字后跟 x 的形式输入行距比例,表示单倍行距的倍数。


    例如,输入 1x 指定单倍行距,输入 2x 指定双倍行距。

    上述文字中说,单倍行距是文字字符高度的 1.66 倍,即:文字高度是行距的0.6倍


    1. (progn;;;(MLS)MText Line Space 多行文字行间距修改 by <a href="mailto:702099480@qq.com" target="_blank">702099480@qq.com</a> 2023.5.11
    2.   (defun c:mls(/ dxf44 edata ei ent n rdis si ss str);;CAD快捷命令MLS
    3.     (if (setq ss (ssget '((0 . "MTEXT"))))
    4.       (progn
    5.         (if (= nil (setq rdis (getreal "\n输入新行距【0.25~4.00】,默认<0.6>:"))) (setq rdis 0.6))
    6.         (if (< rdis 0.25) (setq rdis 0.25))
    7.         (if (> rdis 4.0) (setq rdis 4.0))
    8.         (setq n -1)
    9.         (while (setq ent (ssname ss (setq n (1+ n))))
    10.           (setq edata (entget ent) str (cdr (assoc 1 edata)))
    11.           ;;;(setq edata (entget (car (entsel))) str (cdr (assoc 1 edata)))
    12.           (if (wcmatch str "*\\psm#.##;*,*\\psm#.#;*,*\\psm#;*")
    13.             (progn
    14.               (setq si (1+ (vl-string-search "\\psm" str)))
    15.               (setq ei (1+ (vl-string-search ";" str (1+ si))))
    16.               ;;如果采用注释部分时修改行号后,在读取内容时会有乱码,暂不考虑
    17.               ;;(setq ow (substr str si (- ei si -1)))
    18.               ;;(setq nw (strcat "\\psm" (rtos rdis 2 2) ";"))
    19.               ;;(setq str (vl-string-subst nw ow str))
    20.               ;;(setq edata (subst (cons 1 str) (assoc 1 edata) edata))
    21.               (setq str (vl-string-subst "" (substr str si (- ei si -1)) str))
    22.               (setq edata (subst (cons 1 str) (assoc 1 edata) edata))
    23.             )
    24.           )
    25.           (if (setq dxf44 (assoc 44 edata))
    26.             (setq edata (subst (cons 44 rdis) dxf44 edata))
    27.             (setq edata (append edata (list (cons 44 rdis))))
    28.           )
    29.           (entmod edata)
    30.         )
    31.       )
    32.     )
    33.     (princ (strcat "共修改【" (rtos (sslength ss)) "】个多行文字!"))
    34.     (prin1)
    35.   )
    36.   (princ "\n多行文字行间距修改快捷命令 << MLS >>")
    37.   (prin1)
    38. )
    复制代码

     

     

     

     

    [源码] MText Line Space 多行文字行间距修改
    哎...膜结构车棚,签到来了1...
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|中国膜结构网_中国空间膜结构协会

    GMT+8, 2024-5-16 04:40 , Processed in 0.056814 second(s), 21 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表