lonshinyoo 发表于 2011-5-12 21:31:43

怎么在PU清理时保留原有ACAD.DWT模版里已经设定好的图层

ACAD.DWT模版已经预设了经常需要的图层及颜色,但作图时有些图层可能并没有任何对象,执行PU命令时没有任何对象的图层就会被清理掉,请问怎么实现在PU清理时保留原有ACAD.DWT模版里已经设定好的图层而不被清理掉。

caoyin 发表于 2011-5-13 00:52:17

本帖最后由 caoyin 于 2011-5-13 00:53 编辑

(vlax-ldata-put "data" "layer-01" (tblobjname "layer" "图层名"))

lonshinyoo 发表于 2011-5-13 11:24:07

回复 caoyin 的帖子

谢谢你,辛苦了!

669423907 发表于 2011-6-29 21:56:16

回复 caoyin 的帖子

请教 caoyin 版主,怎样把“(vlax-ldata-put "data" "layer-01" (tblobjname "layer" "图层名"))”加到我的程序中或者怎样改呢?
我想保留所有的标注样式(defun c:puu()
(command "zoom""e" "purge" "la" "" "n" """purge" "lt" "" "n" "" "purge" "r" "" "n" "" "purge"
"b" "" "n" "" "purge" "p" "" "n" "" "purge" "st" "" "n" "" "qsave"))
我常用的图层有
谢谢了!

zhynt 发表于 2011-6-30 00:19:51

防止不被清理的最好方法就是使用它。

mandala 发表于 2011-6-30 09:31:56

本帖最后由 mandala 于 2011-6-30 09:32 编辑

介绍一个实用的办法:
新建一个空的dwg,把这些图层加入后保存。写一个pu.lsp,在pu之后插入这个dwg。


liu22737 发表于 2011-6-30 09:59:55

回复 mandala 的帖子

自己写pu,把句柄靠前的图层保留

669423907 发表于 2011-6-30 12:50:35

大师写的有条有里,我却看得云里雾里!

zhynt 发表于 2011-6-30 15:05:27


(defun c:relay        ()
(setq oldcmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq        laylist        '("00图框"   "3虚线"          "33螺线"       "3细线"
                  "4中心线"    "5标注"          "6点划线"       "7不打印"
                  "8双点线"    "90文字"          "9标注"
               )
)
(setq        lay_n       (length laylist)
        m       0
        lay_list '()
)
(while (/= m lay_n)
    (setq lay_name (nth m laylist))
    (if        (/= (TBLOBJNAME "LAYER" lay_name) nil)
      (progn
        (setq lay_c        (cdr (assoc 62 (tblsearch "layer" lay_name)))
              lay_lt        (cdr (assoc 6 (tblsearch "layer" lay_name)))
              lay_n_lst        (list lay_name lay_c lay_lt)
        )
        (setq lay_list (cons lay_n_lst lay_list))
      )
    )
    (setq m (1+ m))
)
(command "purge" "a" "" "n")
(setq        n (length lay_list)
        m 0
)
(while (/= m n)
    (setq lay_n_lst (nth m lay_list))
    (if        (= (TBLOBJNAME "LAYER" (nth 0 lay_n_lst)) nil)
      (command "layer" "m" (nth 0 lay_n_lst)"c"(nth 1 lay_n_lst) "" "l" (nth 2 lay_n_lst) "" "")
    )
    (setq m (1+ m))
)
(setvar "cmdecho" oldcmd)
)

669423907 发表于 2011-6-30 23:49:37

回复 zhynt 的帖子

zhynt大师,你的程序非常好,非常给力!我把我的部分加进去了,非常好用!
只有一丁点不解:会自动切换当前图层。
不过一点也不影响使用!
再次感谢 zhynt大师 对喜欢CAD 的 lsp 菜鸟们的热情帮助!


页: [1] 2
查看完整版本: 怎么在PU清理时保留原有ACAD.DWT模版里已经设定好的图层