清风明月名字 发表于 2013-4-21 09:16:48

将图元改到00不打印图层



(DEFUN C:将图元改到00不打印图层 ()
; (princ "\nselect object:")
(setq 选择集 (ssget   ));选择集的集合,其实是图元名集合
;改色值为1
;;(COMMAND "CHANGE" 选择集 "" "PROPERTIES" "C" "1" "")
;(setq hig 10)
;;(if (= hig nil) (setq hig 3.0))
(setq 新图层点对 (cons 8 "00不打印"))
(setq 图元总数 (sslength 选择集))
(setq 第几个 0 )
(while (< 第几个 图元总数)
      (setq 图元名 (ssname 选择集 第几个))
      (setq 图元组码 (entget 图元名))
      ; (setq 图元类型 (assoc '0 图元组码))
      ; (setq 图元类型 (cdr 图元类型))
      ; (if (= 图元类型 "TEXT")(progn
      (setq 旧图层点对 (assoc '8 图元组码))
      (setq 图元组码 (subst 新图层点对 旧图层点对 图元组码))
      (entmod 图元组码)
      ; ))
      (setq 第几个 (+ 第几个 1))
)
)

云中孤鹰 发表于 2013-4-21 10:53:52

支持一下,辛苦了

bai2000 发表于 2013-4-26 13:16:16

挺好,半成品的

夏生生 发表于 2013-4-26 15:56:56

考虑不完整,没考虑块,不考虑块的没那么麻烦
(defun c:test (/ ss n)
(repeat (setq N (sslength (setq ss (ssget))))
    (vla-put-layer
      (vlax-ename->vla-object (ssname SS (setq N (1- N))))
      "00不打印"
    )
)
)
页: [1]
查看完整版本: 将图元改到00不打印图层