Timnis 发表于 2004-5-25 00:44:00

怎样替换多个文件都要替换的文字?

本人在做竣工图!因为施工图做得好,所以没什么改,大部分都只要改图签(都要反施工改为竣工),因为文件较多,请问论坛中有相关的程序,可以批量修改.


顺便再问一下,find 命令在lisp中的替换格式是怎样的.

lee_12345 发表于 2004-6-6 04:44:00

图签文字内容都一样吗?

myfreemind 发表于 2004-6-6 11:54:00

把具体要改的内容列出来,我给你写!

前生 发表于 2004-6-13 11:04:00

以前在r12有一个lsp,专门改文本的,不过过mtext的不行/

myfreemind 发表于 2004-6-14 20:39:00

我的程序也是只能改text

Timnis 发表于 2004-7-1 14:56:00

对每张图所要修改的文字内容都一样,修改的内容也一样。


例如每张图都要把“施工图”改为“竣工图”


把发行日期“2004.03”改为“2004.07”


把图号03008D402-AJ01-1                       03008D402-AJ02-1 .......       


改为               03008R402-AJ01-1                       03008R402-AJ02-1 .......

Timnis 发表于 2004-7-1 14:59:00

重点是要对多个文件做同样文字的替换,如果是单个文件里的,用查找里的替换都可以。

myfreemind 发表于 2004-7-1 23:37:00

我以前发过一个多文档的,你改下就可以用了!

龙龙仔 发表于 2004-7-2 12:58:00

;|<BR>如何一次修改多个CAD档里的某一文字? <BR>有600多个CAD档<BR>这些档中的一处文字写错了(相同的文字,位置也相同)<BR>想修改<BR>可要一个一个档打开修改,工作量太大了<BR>有没有什么好的方法<BR>象WORD一样,可以查找多个档中的某一文字,然后进行替换。<BR>|;


;;一个VLISP的批量处理范例<BR>;;从这个范例可以了解VLISP如何批量处理图档<BR>;;虽然速度慢了点,但非常实用<BR>;;By LUCAS(龙龙仔)<BR>;;批量修改文字                                                                                                                                                                                                                                                                                                                                               <BR>;;                                                                                                                                                                                                                                                                                                                                                                                                                                                                               <BR>;;虽配合Expresstools__(acetutil.arx)                                                                                                                                                                                               <BR>;;为加速程序执行,程序将设定系统变数ACADLSPASDOC                                                                                                       <BR>;;即&lt;只载入 acad.lsp 至 AutoCAD 执行期所开启的第一个图面&gt;                       <BR>;;当然程序结束后,会还原系统变数ACADLSPASDOC <BR>;;<BR>;;For AutoCad 2000+


(arxload "acetutil.arx" NIL)<BR>(vl-load-com)<BR>(defun CH_TXT (OLDTXT        NEWTXT       /               HOLDECHO APP                               DWGNAME<BR>                                                       PREFIX_DWG       NN               QQ                       HOLDLSP       WW<BR>                                                       ENT        N<BR>                                               )<BR>       (setq HOLDECHO (getvar "cmdecho"))<BR>       (setvar "cmdecho" 0)<BR>       (setq        PREFIX_DWG<BR>       (strcat<BR>                       (vl-string-right-trim<BR>                                       "\\"<BR>                                       (strcase (acet-ui-pickdir<BR>                        "选择目录"<BR>                        (vl-string-right-trim "\\" (getvar "dwgprefix"))<BR>                        "批量修改文字"<BR>                                                       )<BR>                                       )<BR>                       )<BR>                       "\\"<BR>       )<BR>       )<BR>       (setq HOLDLSP (getvar "ACADLSPASDOC"))<BR>       (setvar "acadlspasdoc" 0)<BR>       (setq QQ (vl-directory-files PREFIX_DWG "*.DWG"))<BR>       (setq NN 0)<BR>       (if (/= QQ NIL)<BR>                       (progn<BR>                                       (setq APP (vlax-get-acad-object))<BR>                                       (repeat (length QQ)<BR>        (setq DWGNAME (strcase (strcat PREFIX_DWG (nth NN QQ))))<BR>        (setq WW (vla-open (vla-get-documents APP) DWGNAME))<BR>        (vlax-for N (vla-get-blocks WW)<BR>               (vlax-for ENT        N<BR>                               (if        (and (vlax-property-available-p ENT 'TEXTSTRING)<BR>                                               (wcmatch (setq STR (vla-get-textstring ENT))<BR>                                                               (strcat "*" OLDTXT "*")<BR>                                               )<BR>                )<BR>                                               (progn<BR>                (setq STR (vl-string-subst NEWTXT OLDTXT STR))<BR>                (vla-put-textstring ENT STR)<BR>                                               )<BR>                               )<BR>               )<BR>        )<BR>        (vla-save WW)<BR>        (prompt (strcat "\n" DWGNAME " &lt;修改Text完成&gt;!!!"))<BR>        (vla-close WW :vlax-false)<BR>        (setq NN (1+ NN))<BR>                                       )<BR>                                       (vlax-release-object WW)<BR>                                       (vlax-release-object APP)<BR>                       )<BR>                       (prompt "\n所选目录中未有任何图档!!!")<BR>       )<BR>       (setvar "acadlspasdoc" HOLDLSP)<BR>       (setvar "cmdecho" HOLDECHO)<BR>       (princ)<BR>)<BR>(princ)


<BR>

Timnis 发表于 2004-7-10 15:28:00

是lisp吗?是否只能在CAD2000中使用。我在2004里用不了。
页: [1] 2
查看完整版本: 怎样替换多个文件都要替换的文字?