有没有大神帮忙修正,按文字内容全选
本帖最后由 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
命令多了,可能自己都记不住。一个“选择易”,不是什么都有了吗?
选择易不好用!操作不习惯 你想选啥?发空贴? 你想选啥?整理一下思路。。。 cchessbd 发表于 2022-12-3 13:34
你想选啥?发空贴?
原本是输入包含的文字之后需要选取范围,改成取消选取范围,即:输入包含文字之后确定即可 ZYX2129 发表于 2022-12-3 18:16
你想选啥?整理一下思路。。。
整理好了,代码提交上来了,原本是输入包含的文字之后需要选取范围,改成取消选取范围,即:输入包含文字之后确定即可 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)
) 这个是不是使用FIND就可以呀
页:
[1]