wutao8282 发表于 2022-12-2 21:34:03

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

本帖最后由 wutao8282 于 2022-12-3 19:24 编辑

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

自贡黄明儒 发表于 2022-12-3 07:57:45

命令多了,可能自己都记不住。一个“选择易”,不是什么都有了吗?

664571221 发表于 2022-12-3 08:40:27

怎么没有动图...

wutao8282 发表于 2022-12-3 09:36:18

自贡黄明儒 发表于 2022-12-3 07:57
命令多了,可能自己都记不住。一个“选择易”,不是什么都有了吗?

选择易不好用!操作不习惯

cchessbd 发表于 2022-12-3 13:34:46

你想选啥?发空贴?

ZYX2129 发表于 2022-12-3 18:16:29

你想选啥?整理一下思路。。。

wutao8282 发表于 2022-12-3 19:25:27

cchessbd 发表于 2022-12-3 13:34
你想选啥?发空贴?

原本是输入包含的文字之后需要选取范围,改成取消选取范围,即:输入包含文字之后确定即可

wutao8282 发表于 2022-12-3 19:27:41

ZYX2129 发表于 2022-12-3 18:16
你想选啥?整理一下思路。。。

整理好了,代码提交上来了,原本是输入包含的文字之后需要选取范围,改成取消选取范围,即:输入包含文字之后确定即可

cchessbd 发表于 2022-12-3 19:49:31

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)
)

jh3030912 发表于 2023-9-17 09:37:49

这个是不是使用FIND就可以呀
页: [1]
查看完整版本: 有没有大神帮忙修正,按文字内容全选