自贡黄明儒
发表于 2012-10-24 15:36:53
本帖最后由 自贡黄明儒 于 2012-10-24 15:40 编辑
;;154.7 [功能] 复制非打开文件的块至本图
;;154.8 [功能] 复制非打开文件的特定块至本图
;;154.9 [功能] 复制特定文件的块至本图(不论打开或者非打开)
;;154.7 [功能] 复制非打开文件的块至本图
;;(Odbx-copyblocks 文件名)
;;(Odbx-copyblocks "D:\\DrawingA.dwg"),之后输入命令i,就可以看到DrawingA的块均在本图中了
(defun Odbx-copyblocks (DwgName / DBXBLOCKS DBXDOC NUM)
(setq dbxDoc (vla-GetInterfaceObject
(vlax-get-acad-object)
(GetObjectDBXVer)
)
)
(vla-open dbxDoc DwgName) ;不能打开.dxf文件,返回nil
(setq DBXBLOCKS (vla-get-blocks dbxDoc))
(vlax-for BLK DBXBLOCKS
(if (and (not (wcmatch (substr (vla-get-name BLK) 1 1) "`*"))
(= (vla-get-isxref BLK) :vlax-false)
) ;去除系统块、匿名块和参照类对象
(setq namelst (append namelst (list (vla-get-name BLK))))
)
)
(foreach name namelst
(setq num (vla-item DBXBLOCKS name))
(vla-copyobjects
dbxDoc
(vlax-safearray-fill
(vlax-make-safearray vlax-vbobject '(0 . 0))
(list num)
)
(vla-get-modelspace
(vla-get-activedocument (vlax-get-acad-object))
)
)
)
(if dbxDoc
(vlax-release-object dbxDoc)
)
)
**** Hidden Message *****
qingbo9818
发表于 2012-10-24 16:00:22
还有多少?
xiaxiang
发表于 2012-10-24 16:43:12
为什么不在一楼更新呢?差点没找到。。。
hhhlike
发表于 2012-10-24 17:00:12
学习一下
xiaxiang
发表于 2012-10-24 17:49:13
没有问题的,在一楼更新附件,下过的就不会重复收币,小菜选择易就是最经典的例子
clh521
发表于 2012-10-24 22:36:32
经典,经典
Atsai
发表于 2012-10-25 06:55:37
建议楼主可在一楼统一更新,
这样小弟才比较不会有遗漏,赞啦!
namezg
发表于 2012-10-25 20:29:59
支持楼主l希望楼主多发精品好帖.....
jh1005
发表于 2012-10-26 00:11:19
很实用的函数,谢谢分享。
USER2128
发表于 2012-10-26 08:26:41
精彩贴,差点被遗漏!谢谢大虾们!