(Defun PTE:layer-subst-load ( / layer )
; ===============================================
; Change property For User
; ===============================================
; cmd name color linetype
; ===============================================
(setq layer ‘(( “ce” “1_centerline” 1 “1_centerline” )
( “hi” “3_hiddenline” 2 “3_hiddenline” )
( “im” “4_imaginary” 3 “4_imaginary” )
( “ha” “5_hatching” 4 “5_hatching” )
( “pu” “6_purchases” 5 “6_purchases” )
( “0” “0” 6 “0” )))
; ===============================================
;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-;;
;; Sub Function – 01 ;;
;;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-;;
(defun PTE:layer-subst-load-subfunction( name color ltype / ssets *error* )
;; __Sub 01
(defun *error*(s)
(if (not(vl-catch-all-error-p (vl-catch-all-apply ‘vla-item (list ssets “SS1”))))
(vla-delete (vla-item ssets “SS1”))
)
)
;; __Sub 02
(defun PTE:layer( la col lty / layer )
(while (not(tblsearch “layer” la))
(setq Layer
(vla-add
(vla-get-Layers
(vla-get-activedocument(vlax-get-acad-object))
) la
)
)
(vla-put-Color Layer col)
(vla-put-Linetype Layer lty)
)
)
;; __Sub 03
(defun LM:LoadLinetypes ( lts / acapp acdoc aclts aclin ) (vl-load-com)
(setq acdoc (vla-get-ActiveDocument (setq acapp (vlax-get-acad-object)))
aclts (vla-get-Linetypes acdoc)
)
(setq aclin
(apply ‘append
(mapcar ‘(lambda ( directory ) (vl-directory-files directory “*.lin” 1))
(LM:str->lst
(vla-get-SupportPath (vla-get-Files (vla-get-Preferences acapp))) “;”
)
)
)
)
(apply ‘and
(mapcar
(function
(lambda ( lt )
(or (tblsearch “LTYPE” lt)
(vl-some
(function
(lambda ( lin )
(vl-catch-all-apply ‘vla-load (list aclts lt lin))
(tblsearch “LTYPE” lt)
)
)
aclin
)
)
)
)
lts
)
)
)
;; __Sub 04
(defun LM:str->lst ( str del / pos )
(if (setq pos (vl-string-search del str))
(vl-remove “”
(cons
(substr str 1 pos)
(LM:str->lst (substr str (+ pos 1 (strlen del))) del)
)
)
(list str)
)
)
;; __Main
(or (tblsearch “ltype” ltype)(LM:LoadLinetypes (list ltype)))
(PTE:layer name color ltype)
(setq ssets (vla-get-selectionsets (vla-get-activedocument(vlax-get-acad-object))))
(if (not(vl-catch-all-error-p (vl-catch-all-apply ‘vla-item (list ssets “SS1”))))
(vla-delete (vla-item ssets “SS1”))
)
(vla-selectonscreen (setq ss (vla-add ssets “SS1”)))
(vlax-for ent ss
(vla-put-layer ent name)
(vla-put-linetype ent “ByLayer”)
(vla-put-color ent 256)
)
(vla-delete (vla-item ssets “SS1”))
(princ)
)
;;==========================================;;
;; Main Function ;;
;;==========================================;;
(foreach lst layer
(eval
(list ‘defun (read(strcat “c:” (car lst))) ‘nil
(list ‘PTE:layer-subst-load-subfunction (cadr lst) (caddr lst) (cadddr lst) )
)
)
)(princ)
)(vl-load-com)
(PTE:layer-subst-load)
2009에서는 잘 사용하고 있는데.
이번에 2014에 적용을 해보니.. 명령어는 먹히는데.
레이어 변황이 안되네요.
뭐 때문이지 아시는 분은 가르침을 부탁드려 봅니다.
날씨가 많이 더워 졌네요..즐거운 오후 되세요..ㅎ