批量bind图纸(绑定xref)
我从前看了龙版主的一些批量处理文件的程序,我想做一个可以批量bind外部引用(xref)的程序,不知怎么改。请那位高手帮忙看看。;;一个VLISP的批量处理范例<BR>;;从这个范例可以了解VLISP如何批量处理图档<BR>;;虽然速度慢了点,但非常实用<BR>;;By LUCAS(龙龙仔)<BR>;;批量修改图层颜色 <BR>;; <BR>;;虽配合Expresstools__(acetutil.arx) <BR>;;为加速程序执行,程序将设定系统变量ACADLSPASDOC <BR>;;即<只载入 acad.lsp 至 AutoCAD 执行期所开启的第一个图面> <BR>;;当然程序结束后,会还原系统变量ACADLSPASDOC <BR>;;<BR>;;For AutoCad 2000+<BR>;;Usage: (CH_LAY_COLOR (acad_colordlg 7))<BR>;;Usage: (CH_LAY_COLOR 7)
(arxload "acetutil.arx" NIL)<BR>(vl-load-com)<BR>(defun CH_LAY_COLOR (COL / HOLDECHO APP DWGNAME<BR> PREFIX_DWG NN QQ HOLDLSP<BR> WW ENT_LAY<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 ENT_LAY (vla-get-layers WW)<BR> (vla-put-color ENT_LAY COL)<BR> )<BR> (vla-save WW)<BR> (prompt (strcat "\n" DWGNAME " <修改图层颜色完成>!!!"))<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)
我知道要把 (vlax-for ENT_LAY (vla-get-layers WW)<BR> (vla-put-color ENT_LAY COL)<BR> ) 改掉。
但不知怎么改,试了很久也是不出,望高手指点。
谢谢。<BR> 你想改成什么呢?
这是ACTIVEX对象操作,你熟悉一下ACTIVEX就容易了 飞版主我知道这是activex的操作,可是我手边没有这样的书,程序中的一些参数我也看不懂。
我是想有一些图纸用了xref命令去引用其他的图纸,这些被引用的图纸如果改变了路径,引用这些图纸的图,就找不到他们。我们可以用(command "-xref" "b" "*")把这些所有被引用图纸绑定进来,这样就不会被影响了。但这必须打开每一张图进行单独操作。我看了用activex的办法可以实现批量操作,这样就方便很多了。但又不知如何更改,真是难者不会啊。
我用vb编了一个,可到vb开发区去看看。 本帖最后由 作者 于 2004-11-11 10:31:29 编辑
;;BIND XREF BY OBJECTDBX做出来了(.VLX)--只供测试
;;使用前请copy原图
万分感谢。 好象不能用,是不是和CAD的版本有关,我用的是2002.
Error: ActiveX Server returned the error: unknown name: Path"ActiveX Server <BR>returned the error: unknown name: Path" 有测试图吗? 其中a,b是有xref的。 (你复制到本地后,xref的路径变了,可以在库搜索路径上添加,这样就可以看到xref了)
本帖最后由 作者 于 2004-11-11 10:17:33 编辑 <br /><br /> ;;注意:只BIND进看到的东西<BR>;;OBJECTDBX METHOD 缺点:会失去预览图<BR>;;BY 龙龙仔(LUCAS)<BR>
->注意:附件已更新
页:
[1]
2