但是这样干貌似不是个好习惯吧。。 自己用 不是什么问题只要不是初级底图 基本影响不大 本帖最后由 muwind 于 2021-1-8 23:35 编辑
;允许部分替换,可能出现想不到的结果
;比如会把替换400成200会把2400换成2200
(defun c:tt ( / ss edat getdim N m str1 str2)
(setq str1 (getstring "\n 请输入需要替换的尺寸:")
str2 (getstring "\n 您想替换成什么?:")
m 0
)
(setq ss (ssget"x"(list (cons 0 "dim*"))));选择所有尺寸
(repeat (setq N (sslength SS))
(setq getdim (ssname ss (setq N (1- N))))
(setq edat ( getdimtext getdim))
(if (vl-string-search str1 edat )
(progn
(setq edat (vl-string-subst str2 str1 edat))
(entmod (subst (cons 1 edat) (assoc 1 (entget getdim))(entget getdim) ))
(setq m (1+ m))
)
)
);repeat
(if (> m 0)
(princ (strcat "共" (rtos m 2 0) "个尺寸替换完成"))
(princ "我很努力了,但什么忙也没帮上")
)
(princ)
)
;全替换
(defun c:tt ( / ss edat getdim N m str1 str2)
(setq str1 (getstring "\n 请输入需要替换的尺寸数值:")
str2 (getstring "\n 您想替换成什么?:")
m 0
)
(setq ss (ssget"x"(list (cons 0 "dim*"))));选择所有尺寸
(repeat (setq N (sslength SS))
(setq getdim (ssname ss (setq N (1- N))))
(setq edat ( getdimtext getdim))
(if (= str1 edat )
(progn
(entmod (subst (cons 1 str2) (assoc 1 (entget getdim))(entget getdim) ))
(setq m (1+ m))
)
)
);repeat
(if (> m 0)
(princ (strcat "共" (rtos m 2 0) "个尺寸替换完成"))
(princ "我很努力了,但什么忙也没帮上")
)
(princ)
) 本帖最后由 sunny_8848 于 2021-1-9 08:01 编辑
muwind 发表于 2021-1-8 23:34
;允许部分替换,可能出现想不到的结果
;比如会把替换400成200会把2400换成2200
(defun c:tt ( / ss edat g ...
谢谢帮忙,现在可以替换原始标注内容了,能否麻烦您在全替换代码的基础上加上(也是全替换)纯文本的功能 继续跟大师们学习。 本帖最后由 muwind 于 2021-1-9 23:09 编辑
sunny_8848 发表于 2021-1-9 07:57
谢谢帮忙,现在可以替换原始标注内容了,能否麻烦您在全替换代码的基础上加上(也是全替换)纯文本的功能
(defun c:tt ( / ss edat getssname getssdxf N m str1 str2 getsstype)
(setq ss (ssget"x"(list (cons 0 "dim*,*text"))));选择所有尺寸和文本
(if ss
(progn
(setq str1 (getstring "\n 请输入需要替换的文本或数值:")
str2 (getstring "\n 您想替换成什么?:")
m 0
)
(repeat (setq N (sslength SS))
(setq getssname(ssname ss (setq N (1- N)))
getssdxf(entget getssname)
getsstype(strcase (cdr (assoc 0 getssdxf))))
(if (wcmatch getsstype "DIM*")
(setq edat ( getdimtext getssname))
(setq edat (cdr (assoc 1 getssdxf)))
)
(if (= str1 edat )
(progn
(entmod (subst (cons 1 str2) (assoc 1 getssdxf)getssdxf ))
(setq m (1+ m))
)
)
);repeat
)
(princ "您的图纸很干净,木有尺寸也木有文本,我什么也做不了")
)
(if (> m 0)
(princ (strcat "共" (rtos m 2 0) "个尺寸或者文本替换完成"))
(princ "我很努力了,但什么忙也没帮上")
)
(princ)
)
muwind 发表于 2021-1-9 23:05
谢谢您的热心帮忙,效果很不错 sunny_8848 发表于 2021-1-11 07:54
谢谢您的热心帮忙,效果很不错
贱人工具箱的超级修改功能可以啊
整合不了这个工具
页:
1
[2]