dmxcs 发表于 2021-1-8 20:20:40

tssd就可以啊
但是这样干貌似不是个好习惯吧。。

xj6019 发表于 2021-1-8 20:42:57

自己用 不是什么问题只要不是初级底图   基本影响不大

muwind 发表于 2021-1-8 23:34:25

本帖最后由 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 07:57:21

本帖最后由 sunny_8848 于 2021-1-9 08:01 编辑

muwind 发表于 2021-1-8 23:34
;允许部分替换,可能出现想不到的结果
;比如会把替换400成200会把2400换成2200
(defun c:tt ( / ss edat g ...
谢谢帮忙,现在可以替换原始标注内容了,能否麻烦您在全替换代码的基础上加上(也是全替换)纯文本的功能

guankuiwu 发表于 2021-1-9 22:27:30

继续跟大师们学习。

muwind 发表于 2021-1-9 23:05:41

本帖最后由 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)
)

sunny_8848 发表于 2021-1-11 07:54:38

muwind 发表于 2021-1-9 23:05


谢谢您的热心帮忙,效果很不错

依然小小鸟 发表于 2021-1-12 11:28:26

sunny_8848 发表于 2021-1-11 07:54
谢谢您的热心帮忙,效果很不错

贱人工具箱的超级修改功能可以啊

sunny_8848 发表于 2021-1-12 22:12:17

整合不了这个工具
页: 1 [2]
查看完整版本: 新增修改标注内容功能