明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 709|回复: 9

[源码] 有没有大神帮忙修正,按文字内容全选

[复制链接]
发表于 2022-12-2 21:34 | 显示全部楼层 |阅读模式
本帖最后由 wutao8282 于 2022-12-3 19:24 编辑

有没有大神,帮忙看看修改修改,按文字内容选择,原本是输入包含的文字之后需要选取范围,改成取消选取范围,即:输入包含文字之后确定即可
  1. (defun c:AZXZ ()
  2. (sssetfirst nil (ssget (list '(0 . "text,mtext,TCH_TEXT,TCH_MULTILEADER") (cons 1 (strcat "*"(setq str (getstring "\n输入文字包含的字符:"))"*")))))(princ))

发表于 2022-12-3 07:57 | 显示全部楼层
命令多了,可能自己都记不住。一个“选择易”,不是什么都有了吗?
发表于 2022-12-3 08:40 | 显示全部楼层
怎么没有动图...
 楼主| 发表于 2022-12-3 09:36 | 显示全部楼层
自贡黄明儒 发表于 2022-12-3 07:57
命令多了,可能自己都记不住。一个“选择易”,不是什么都有了吗?

选择易不好用!操作不习惯
发表于 2022-12-3 13:34 | 显示全部楼层
你想选啥?发空贴?
发表于 2022-12-3 18:16 | 显示全部楼层
你想选啥?整理一下思路。。。
 楼主| 发表于 2022-12-3 19:25 | 显示全部楼层
cchessbd 发表于 2022-12-3 13:34
你想选啥?发空贴?

原本是输入包含的文字之后需要选取范围,改成取消选取范围,即:输入包含文字之后确定即可
 楼主| 发表于 2022-12-3 19:27 | 显示全部楼层
ZYX2129 发表于 2022-12-3 18:16
你想选啥?整理一下思路。。。

整理好了,代码提交上来了,原本是输入包含的文字之后需要选取范围,改成取消选取范围,即:输入包含文字之后确定即可
发表于 2022-12-3 19:49 | 显示全部楼层
wutao8282 发表于 2022-12-3 19:25
原本是输入包含的文字之后需要选取范围,改成取消选取范围,即:输入包含文字之后确定即可

参看下例函数

(defun TxtFromClip (str1gl / i ii ssn1 ent1 ss1 ss2 )
        (setvar "CMDECHO" 0)
        (setq ii 0)
           (setq ss2 (str_Clipboard2List));;获取剪贴板内容并按行列排序
      (if (/= nil ss2)
          (progn
                 ;选择文字,默认框选所有文本,支持参数str1匹配
                 (if (= nil str1gl)
                    (setq ss1 (ssget (list (cons 0 "TEXT") )))
                    (setq ss1 (ssget (list (cons 0 "TEXT") (cons 1 (strcat "*" str1gl "*")))))
                 );end if
                (setq i (min (sslength ss1) (length ss2)))
                (repeat i
                    (setq text2 (nth ii ss2));获得文字内容
                    (setq ssn1 (ssname ss1 (- i 1 ii)));;待替换文字图元名
                    (setq ent1 (entget ssn1));;图元定义
                    (if (= text2 (rtos (atoi (car text2))))
                        (entmod (subst (cons 1 (rtos (atoi (car text2)) 2 0)) (assoc 1 ent1) ent1));;替换WPS纯数字(cons 1 "123.0")= (1 "123")
                        (entmod (subst (cons 1 (car text2)) (assoc 1 ent1) ent1));;替换非数字文本
                    )
                    (entupd ssn1);;更新
                    (setq ii (1+ ii))
                )
          )
      );end if
      (setq str1gl nil)
      (princ)
)
发表于 2023-9-17 09:37 | 显示全部楼层
这个是不是使用FIND就可以呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 18:15 , Processed in 0.264704 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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