清风明月10 发表于 2014-3-27 09:05:26

求如果是不打印的图层则关闭的代码

本帖最后由 清风明月10 于 2014-3-27 09:48 编辑

我想求一个不打印的图层则关闭,打印的图层维持原状的插件。这样就方便检查本次打印的内容了。
如果没有这个插件,则到底打印了哪些图元,心里没有数,看预览,由于图太长不方便
请坛友帮助。
假设A为块参照,A中含图元B、C,B在打印图层,C在不打印图层。。
如果A在不打印图层,B不会被打印。
如果A在打印图层,C不会被打印。所以如果图中有块参照A,且块参照A位于不打印图层,则A中的所有图元(特指打印图层上的图元)都需要被隐藏或关闭,这才能使得我们在模型中看到的图元确实是要打印的图元。
A为组时按上法类推。


st788796 发表于 2014-3-27 09:05:27

清风明月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)
)

st788796 发表于 2014-3-27 09:45:07


(defun c:tt ()
(vlax-for lyr      (fy:aclayers)
    (if      (zerop (vlax-get lyr 'Plottable))
      (vla-put-layeron lyr   :vlax-false)
    )
)
(princ)
)

清风明月10 发表于 2014-3-27 09:52:25

st788796 发表于 2014-3-27 09:45


no function definition: FY:ACLAYERS
运行错误,请帮我贴上这个自定义函数!

st788796 发表于 2014-3-27 09:53:59

本帖最后由 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:15

用冻结方法

清风明月10 发表于 2014-3-27 10:04:08

st788796 发表于 2014-3-27 10:01
用冻结方法

好朋友,帮我改为不打印图层则冻结,好吗?求你了!

清风明月10 发表于 2014-3-27 10:25:25

st788796 发表于 2014-3-27 09:05
你不是会 VBA 吗? 很简单几句就可以搞定的

我不懂将VBA代码转为LISP的方法

st788796 发表于 2014-3-27 11:01:02

清风明月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)
)

wangxf888 发表于 2016-5-24 17:23:05

很实用 谢谢元老们

wxa123wl 发表于 2017-7-3 09:44:18

{:1_20:}什么都又,效率满满

zrednzdfn 发表于 2022-10-22 19:29:22

如何设置为只开不打印层呢?
页: [1]
查看完整版本: 求如果是不打印的图层则关闭的代码