清风明月名字 发表于 2014-3-27 09:08:04

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

本帖最后由 清风明月名字 于 2014-3-27 09:49 编辑

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

q3_2006 发表于 2014-3-27 09:08:05

本帖最后由 q3_2006 于 2014-3-27 20:37 编辑

(defun c:tt ( / el l l1 ta table x)
(defun gatable (table / l str ta)
    (while (setq ta (tblnext table nil))
   (setq l (cons (cdr (assoc 2 ta)) l))
    )
    (setq l (cons (cdr (assoc 2 (tblnext table t))) (reverse l)))
)
(setq l (gatable "LAYER") l1 nil)
(mapcar '(lambda(x)
(setq el (entget (tblobjname "LAYER" x))
l1 (cons (list (cdr (assoc 2 el)) (cdr (assoc 290 el))) l1))) l)
(mapcar '(lambda(x) (if (= 0 (cadr x)) (vl-cmdf "-layer" "off" (car x) ""))) l1)
)

852456 发表于 2018-8-11 22:48:24

看帖回帖是美德

evayleung 发表于 2018-8-13 13:22:18

二楼的程序不错哦。。。挺实用的。谢谢

mikewolf2k 发表于 2018-8-13 14:52:26

这个直接在图层管理器里面按打印标志排序,然后批量选择显示或者不显示就可以了,无需程序。

bai2000 发表于 2020-9-19 19:52:01

“”反过来更方便核查---只显示不打印的内容“”这个好,编个呗
页: [1]
查看完整版本: 求如果是不打印的图层则关闭的代码