不打开dwg文件,关闭指定图层。
大家圣诞快乐。放假在家无聊,应用objectdbx技术,整了个小程序,实现不开图,关闭图层。请多提宝贵意见。;; this program can turn off the layer you enter.
(defun c:lof ()
(vl-load-com)
(setq dwgfile (getfiled "Select a drawing" "" "dwg" 0))
(setq lay (getstring "\nENTER A LAYER TO TURN OFF:"))
(setq cadver(substr (getvar "acadver") 1 2))
(setq id (strcat "objectdbx.AxDbDocument." cadver))
(setq dbx(vlax-create-object id))
(vla-open dbx dwgfile)
(vlax-for layer (setq layers (vla-get-layers dbx))
(if (not (vl-catch-all-error-p
(setq vlay(vl-catch-all-apply 'vla-item (list layers lay)))))
(if (eq (vla-get-layeron vlay) :vlax-true)
(vla-put-layeron vlay :vlax-false)
)
(print "THIS LAYER DOES NOT EXIST")
)
)
(vla-saveas dbx dwgfile)
(vlax-release-object dbx)
(prin1)
)
精神不错 不打开图拷贝块,用这个制定不拷贝关闭的图层上的object,
不打开图纸能做的事情很多。
继续其他, 好帖 本帖最后由 millermin 于 2011-12-26 13:09 编辑
这个程序是委托加工的。我自己没用。人家要只好做。我只是觉得能实现不开图操作,那很多功能都不用操心了,基本剩下的活和开图没有两样。所以意义还是很大。没有做过大工程的图纸,无法理解打开一张图需要多少时间。特别是很多外部参考时。 本帖最后由 sy100 于 2011-12-26 20:29 编辑
这个要试用一下,曾经为打开一张550M的地形图耗时1个多小时而苦恼! 好东西,给做很多东西提供了思路,正缺少这方面资料。谢谢。 本帖最后由 millermin 于 2011-12-26 23:43 编辑
sy100 发表于 2011-12-26 20:29 http://bbs.mjtd.com/static/image/common/back.gif
这个要试用一下,曾经为打开一张550M的地形图耗时1个多小时而苦恼!
我客户就是做地形图的。我们的部门是交通。我做桥,基本不需要。他做路,老搞地形图。
这程序本身很简单,主要分享一个dbx操作文件的思路。复杂功能的实现还要靠vlisp。
太好了,这方面正是我不会的;
再帮我处理在不打开k1.dwg图形的情况下,读取图中词典值(vlax-ldata-put "编号" "钻孔" '"K1") zwqgdhl 发表于 2012-2-2 11:35 static/image/common/back.gif
太好了,这方面正是我不会的;
再帮我处理在不打开k1.dwg图形的情况下,读取图中词典值(vlax-ldata-put "编 ...
这个功能我也有点需求。有时一套图纸都改一个地方,如合同号码,审核,制图,校对了,发行日期了等等。如能不开图,那也许几分钟就能改好一套图。不过给我点时间。我会通知你的。 恩能提供思路 的好程序!!!
页:
[1]
2