雨的节奏 发表于 2019-9-26 09:05:08

GS工具箱,文本查找替换,简洁、实用、源码



thg_dcl:dialog{label="查找替换工具";
   :column{
                           
         :edit_box{label="要修改的文字";
          key="thy1";
          edit_width=30;
            }                                                                     
       :edit_box{label="替换后的文字";
            key="ths1";
            edit_width=30;
                  }            
       ok_cancel;
}                                       
}   



(defun c:ggthg (/ thg_sheddcl_id dd ss)   
(setq dcl_id (load_dialog "thg_dcl"))
(new_dialog "thg_dcl" dcl_id)
(defun thg_shed () (setq gsthy1 (get_tile "thy1") gsths1 (get_tile "ths1")))
(if gsthy1 (set_tile "thy1" gsthy1))
(if gsths1 (set_tile "ths1" gsths1))
(action_tile "accept" "(thg_shed) (done_dialog 1)")
(setq dd (start_dialog))
    (IF (= dd 1)
    (PROGN
       (setq ss (ssget '((0 . "TEXT,MTEXT" ))))
       (setq n 0)
       (repeat (sslength ss)
       (setq wenzi(vla-get-TextString (setq enx (vlax-ename->vla-object (ssname ss n))))
            ens (vl-string-subst gsths1 gsthy1 wenzi)
             )
             (Vlax-Put-Property enx 'TextString ens)
             (setq n (1+ n))
          ) ;end repeat
    )
    )
(princ "修改完成!!")
(prin1)
)
(prin1)
      

东升铮 发表于 2019-9-27 04:59:45

顶一个!:lol

qmqyqj 发表于 2019-9-28 09:52:45

这CAD自带的FIND功能不就行了

shcvip 发表于 2019-9-29 23:19:09

qmqyqj 发表于 2019-9-28 09:52
这CAD自带的FIND功能不就行了

批量替换多个文字,不就有意义了嘛。

ketxu 发表于 2019-9-30 02:21:31

With Unicode string, vl- function will not correct.

qmqyqj 发表于 2019-9-30 11:05:17

shcvip 发表于 2019-9-29 23:19
批量替换多个文字,不就有意义了嘛。

CAD自带的就是批量替换呀

shcvip 发表于 2019-9-30 13:36:14

qmqyqj 发表于 2019-9-30 11:05
CAD自带的就是批量替换呀

http://bbs.mjtd.com/thread-89647-1-1.html
之前还有人发过的。

qmqyqj 发表于 2019-9-30 15:08:11

shcvip 发表于 2019-9-30 13:36
http://bbs.mjtd.com/thread-89647-1-1.html
之前还有人发过的。

嗯,这个只能在很老很老的CAD(没有替换功能)上用用

zj20190405 发表于 2020-8-23 11:21:44

大佬合并在一起啊
页: [1]
查看完整版本: GS工具箱,文本查找替换,简洁、实用、源码