티스토리 뷰

반응형

캐드작업을 하다가 이런 기능은 없을까?

특히나 layer를 여러가지 원하는 형태로 적용해서 리습을 사용하면 정말 편리합니다.

내가 선택한 레이어만 빼고 모든 레이어 끄기?

이것도 한번의 클릭이 필요한 것이지만, 항상 특정레이어만 빼고 다 빼고 싶을때.?

뭐 이런식으로 응용해서 사용하는 것이 중요하죠. 자신의 업무환경에 맞게 레이어만 잘 다뤄도 업무의 효율이 올라갈 것으로 생각됩니다.

레이어 관련 4개의 리습을 공유해 봅니다. 여기저기 필요한 것들을 모아서 함께 사용하면 좋을 것 같아서 공유해 봅니다.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;               L1:선택레이어끄기

선택한 레이어를 꺼줍니다. 이것을 la명령어를 사용해서 하면 몇번의 클릭이 필요한 것을 한방에 해주는 효과가 있지요.

(defun C:L1 (/ lo cla)
       (setvar "cmdecho" 0)
       (princ " = LAYER OFF")
       (setq lo (entsel))
       ;(setq lo (car lo))
       ;(setq lo (cdr (assoc 8 (entget lo))))
       (if lo
          (setq lo (cdr (assoc 8 (entget (car lo)))))
          (setq lo (strcase (getstring
                            "\n>> If not, Type Layer Name :")))
       );;if
       (setq cla (getvar "clayer"))
       (if (= cla lo)
          (command ".LAYER" "s" "0" "")
       );;if
       (command ".LAYER" "off" (setq lo lo) "")
       (setvar "cmdecho" 1)
       (prin1)
)

L1 실행 후 테두리선을 선택하면

; 선택한 레이어만 켜고 나머지는 다 끄기 

(defun C:L2 (/ L2)
       (setvar "cmdecho" 1)
       (princ " = LAYER ALL OFF")
       (setq af (entsel))
       (princ af)
       (princ)
       (setq af (car af))
       (princ af)
       (princ)  
       (setq af (cdr (assoc 8 (entget af))))
       (princ af)
       (princ)  
       (command ".LAYER" "s" af "")
       (command ".LAYER" "off" "*" "" "")
       (setvar "cmdecho" 1)
       (prin1)
)

L2 명령 실행 후 해당선을 선택하면

; 전체 레이어 켜기

(defun c:L3 (/ an)
       (setvar "cmdecho" 0)
       (princ "= LAYER ALL ON")
       (command ".LAYER" "on" "*" "")
       (setvar "cmdecho" 1)
       (prin1)
)

L3 명령 실행 전 

L3 명령 실행 후



(defun C:L4 (/ L4)  
       (setvar "cmdecho" 0)
       (command ".LAYER" "s" "0레이져" "")
       (command ".LAYER" "off" "*" "" "")
       (setvar "cmdecho" 1)
       (prin1)
)

"0레이져"라는 layer만 빼고 레이어 끄기

L4 명령 실행 후 (외곽선 Layer가 "0레이져" 입니다.) 실행 후 외곽선이 없어진 것을 볼 수 있습니다.

 

  위의 4가지 레이어관련 리습을 응용해서 자신에 맞는 리습을 만든다면 업무효율을 올리시면 좋겠습니다.

 

반응형
댓글