834798417 发表于 2014-12-17 16:52:51

太好了,谢谢分享

bai2000 发表于 2014-12-17 17:30:37

在属性块中无效

yaya-54 发表于 2015-3-3 16:10:26

可以EXCEL表中的一序列数据放到CAD中替换?

linarhai 发表于 2016-4-5 00:10:42

不错,正在使用

shcvip 发表于 2018-1-24 20:56:08

; 错误: 参数类型错误: numberp: nil
什么情况

shcvip 发表于 2019-8-6 21:38:08

zyhandw 发表于 2012-10-12 15:56
在你写的这一段基础上改了下,没有经过严格测试,你可以试试(以逗号分隔为例,比如将123替换为a,456替换 ...

以下程序,为上面所改。还需要完善的,
(1)属性块,块中的文字,还是无法改。
(2)多行文本,改了不能立马展现,需要再运行一次程序。
(defun c:tt (/ ff data num txtcontent txtcontent2 txtlst ss i ssn endata)
;**********读取txt文件
;;;(setq data_file (getfiled "请选择字符替换的文本" "d:\\test1" "txt" 2))
(SETQ data0 '(
"Q235-A,Q235-B"      
"T1,TA"
"T2,TB"
"T3,TC"
"T4,TD"
"T5,TE"
"T6,TF"
)
      ii 0
      )
;;;(setq ff (open data_file "r"));打开文件
;;;(setq data (read-line ff)) ;读取一行
(SETQ DATA (NTH ii data0))
(while data
(setq ii (1+ ii))
(setq num (vl-string-position (ascii ",") data))
;***********拾取替换文本
(setq txtcontent (substr data 1 num))
(setq txtcontent2 (substr data (+ num 2)))
(setq txtlst (list '(0 . "TEXT,MTEXT") (cons 1 txtcontent)))
(setq ss (ssget "X" txtlst)) ;;全匹配
;;;(setq ss (ssget txtlst))
(if ss (progn
(setq i 0)
(repeat (sslength ss)
    (setq ssn (ssname ss i))
    (setq endata (entget ssn))
    (setq endata (subst (cons 1 txtcontent2) (assoc 1 endata) endata))
    (entmod endata) ;;界面刷新
    (setq i (1+ i))
)
)
;***********完成替换
(SETQ DATA (NTH ii data0))
)
)
)

sunny_8848 发表于 2019-9-16 09:24:49

可惜,都运行错误,一直在找这个功能的

jigh 发表于 2024-2-3 23:35:28

yaya-54 发表于 2015-3-3 16:10
可以EXCEL表中的一序列数据放到CAD中替换?

同问,解决了吗?有相关回帖吗?
页: 1 2 [3]
查看完整版本: 批量替换