明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1756|回复: 3

[提问] 求一个代码,点文字后自动增加字符“%%u”,如果文字前三个字符是“%%u”,则删除%%u

[复制链接]
发表于 2021-11-13 17:22:38 | 显示全部楼层 |阅读模式
5明经币
用来给钢筋符号加下划线,谢谢~ 麻烦用while语句,可以连续点选框选

最佳答案

查看完整内容

;看看下面这个行不行,未测试 (defun c:wzshx() (setvar "cmdecho" 0) (command "_undo" "be" ) (while (setq ent (car (entsel "\n请选取文字:"))) (setq dxf (entget ent)) (setq name (cdr (assoc 0 dxf))) (If (= name "TEXT") (progn (setq dxf1 (assoc 1 dxf)) (setq zfc (cdr dxf1)) (If (wcmatch zfc "%%u*") (setq dxf (subst (co ...
发表于 2021-11-13 17:22:39 | 显示全部楼层
;看看下面这个行不行,未测试
(defun c:wzshx()
    (setvar "cmdecho" 0)
    (command "_undo" "be" )
    (while (setq ent (car (entsel "\n请选取文字:")))
       (setq dxf (entget ent))
       (setq name (cdr (assoc 0 dxf)))
       (If (= name "TEXT")
           (progn
               (setq dxf1 (assoc 1 dxf))
               (setq zfc (cdr dxf1))
               (If (wcmatch zfc "%%u*")
                   (setq dxf (subst (cons 1 (substr zfc 4)) dxf1 dxf))
                   (setq dxf (subst (cons 1 (strcat "%%u" zfc)) dxf1 dxf))
               )
               (entmod dxf)
           )
           (alert "所选取的图元不是单行文字!")
        )
    )
    (command "_undo" "e")
    (setvar "cmdecho" 1)
    (princ)
)
回复

使用道具 举报

 楼主| 发表于 2021-11-13 22:57:40 | 显示全部楼层
yshf 发表于 2021-11-13 17:22
;看看下面这个行不行,未测试
(defun c:wzshx()
    (setvar "cmdecho" 0)

可以了,谢谢~
回复

使用道具 举报

发表于 2021-11-14 13:53:19 | 显示全部楼层
这个用增加删除前后缀的就可以了吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-1 06:20 , Processed in 0.135688 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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