明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4413|回复: 34

[函数] 单行/多行文本添加/删除下划线

[复制链接]
发表于 2024-2-12 11:53:25 | 显示全部楼层 |阅读模式
本帖最后由 langjs 于 2024-2-12 19:20 编辑

程序虽小用起来比较舒服。
一个命令即可实现添加或者删除文本下划线功能,支持单行和多行文本,支持多选。
(如果选择的是没有下划线的文本是添加下划线,如果选择的是带下划线的文本是删除下划线)



(defun c:xhx (/ a b ent i name ss str str1 txt txt1)
  (defun chstr (a b str / i str1)      ; 查找替换字符串
    (setq i 1  str1 "" )
    (while (< i (+ (strlen str) 1))
      (if (= a (substr str i (strlen a)))
        (setq str1 (strcat str1 b) i (+ i (strlen a)))
        (setq str1 (strcat str1 (substr str i 1)) i (+ i 1))))
    str1 )
  (setvar "cmdecho" 0)                       ; 主程序开始
  (vl-load-com)
  (princ "\n单行多行文本添加/删除下划线:")
  (while (setq ss (setq ss (ssget ":S" '((0 . "*TEXT")))))
    (vl-cmdf ".UNDO" "BE")
    (repeat (setq i (sslength ss))
      (setq name (ssname ss (setq i (1- i))) ent (entget name) txt (cdr (assoc 1 ent)))
      (cond
        ((= (cdr (assoc 0 ent)) "MTEXT") ; 多行文本
          (setq txt1 (chstr "\\L" "" txt))
          (if (= txt1 txt)
            (setq txt (chstr "\\P" "\\P\\L" txt) txt (strcat "\\L" txt))
            (setq txt txt1)))
        ((= (cdr (assoc 0 ent)) "TEXT")        ; 单行文本
          (if (/= (substr txt 1 3) "%%U")
            (setq txt (strcat "%%U" txt))(setq txt (substr txt 4))))
        (t))
      (entmod (subst(cons 1 txt)(assoc 1 ent)ent)))
    (vl-cmdf ".UNDO" "E"))
  (princ)
)




评分

参与人数 3明经币 +3 收起 理由
baitang36 + 1 很给力!
hubeiwdlue + 1 很给力!
ssyfeng + 1 赞一个!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-11-4 11:41:56 | 显示全部楼层
(if (= "MTEXT" (cdr (assoc 0 ent))) ; 如选多行文本,则转化为单行文本
        (progn
          (command ".EXPLODE" ent1)
          (setq ent1 (entlast))
          (setq ent (entget ent1))
        )

怎么把这个“如选多行文本,则转化为单行文本”的代码加进去,大神能改进一下吗
 楼主| 发表于 2024-2-12 19:10:51 | 显示全部楼层
wangsr 发表于 2024-2-12 18:39
用过了不错,最好的一点是修改字后下划线也自动变。请教怎么删除下划线

如果能做这种线我觉的更好看点。 ...

修改后下划线长是跟着变的。如果选择的是没有下划线的文本是添加下划线,如果选择的是带下划线的文本是删除下划线
发表于 2024-2-12 18:39:22 | 显示全部楼层
本帖最后由 wangsr 于 2024-2-12 18:43 编辑

用过了不错,最好的一点是修改字后下划线也自动变。请教怎么删除下划线

如果能做这种线我觉的更好看点。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2024-2-12 12:10:39 | 显示全部楼层
大师龙年大吉
发表于 2024-2-12 13:14:23 | 显示全部楼层
高产大神,龙年大吉
发表于 2024-2-12 13:19:16 | 显示全部楼层
新春快乐,龙年大吉!
发表于 2024-2-12 15:22:36 | 显示全部楼层
大师新年好,感谢分享。
发表于 2024-2-12 16:19:24 | 显示全部楼层
大师新年快乐,龙年大吉! 感谢分享!
发表于 2024-2-12 16:27:06 | 显示全部楼层
大师新年好,感谢分享。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-21 01:31 , Processed in 0.219921 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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