求如果是不打印的图层则关闭的代码
本帖最后由 清风明月10 于 2014-3-27 09:48 编辑我想求一个不打印的图层则关闭,打印的图层维持原状的插件。这样就方便检查本次打印的内容了。
如果没有这个插件,则到底打印了哪些图元,心里没有数,看预览,由于图太长不方便
请坛友帮助。
假设A为块参照,A中含图元B、C,B在打印图层,C在不打印图层。。
如果A在不打印图层,B不会被打印。
如果A在打印图层,C不会被打印。所以如果图中有块参照A,且块参照A位于不打印图层,则A中的所有图元(特指打印图层上的图元)都需要被隐藏或关闭,这才能使得我们在模型中看到的图元确实是要打印的图元。
A为组时按上法类推。
清风明月10 发表于 2014-3-27 10:04
好朋友,帮我改为不打印图层则冻结,好吗?求你了!
你不是会 VBA 吗? 很简单几句就可以搞定的
(defun c:tt ()
(vlax-for lyr (fy:aclayers)
(if (zerop (vlax-get lyr 'Plottable))
(vla-put-freeze lyr :vlax-true)
)
)
(princ)
)
(defun c:tt ()
(vlax-for lyr (fy:aclayers)
(if (zerop (vlax-get lyr 'Plottable))
(vla-put-layeron lyr :vlax-false)
)
)
(princ)
) st788796 发表于 2014-3-27 09:45
no function definition: FY:ACLAYERS
运行错误,请帮我贴上这个自定义函数!
本帖最后由 st788796 于 2014-3-27 09:55 编辑
清风明月10 发表于 2014-3-27 09:52
no function definition: FY:ACLAYERS
运行错误,请帮我贴上这个自定义函数!
自己不会写啊!
(defun fy:aclayers ()
(vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
)
码这些重复代码太累!
http://bbs.xdcad.net/thread-671318-1-1.html
用冻结方法 st788796 发表于 2014-3-27 10:01
用冻结方法
好朋友,帮我改为不打印图层则冻结,好吗?求你了!
st788796 发表于 2014-3-27 09:05
你不是会 VBA 吗? 很简单几句就可以搞定的
我不懂将VBA代码转为LISP的方法
清风明月10 发表于 2014-3-27 10:25
我不懂将VBA代码转为LISP的方法
(defun c:tt ()
(vlax-for lyr (fy:aclayers)
(if (zerop (vlax-get lyr 'Plottable))
(vla-put-freeze lyr :vlax-true)
)
)
(princ)
) 很实用 谢谢元老们 {:1_20:}什么都又,效率满满 如何设置为只开不打印层呢?
页:
[1]