LayerControl
LayerControl
;--------
; VAA : ���̾
� �ѹ� �ѱ�,�������,�������ϱ�
;-------- ON / OFF
; VO : ���̾
� �ѱ�
; VF : �����Ͽ� ���̾
� ��� (������ ����)
; VD : ������ ������ ��ü�� ���̾
� ��� (������ ����)
;-------- LOCK / UNLOCK
; CV : ���̾
� ��� ���
; LK : ������ ��ü�� ���̾
� ��)���� ������( �ױ
; LEK : ������ ������ ��ü�� ���̾
� ��)���� ������( �ױ
;-------- FREEZE / THAW
; LTT : ���̾
� �������
; LF : ������ ���̾
� ���� (������ ����, ���� ���̾
� ����ȵ�)
; LEF : ������ ������ ��ü�� ���̾
� ������� (������ ����)
; -
TERY 2007.12.04-
;Layer initialization
-----------------------------------------------------------------------------------
------------------------------------------
(defun c:vaa(/ cla ss k la-lis ed la k)
(setvar "cmdecho" 0)
(princ "\n ::::: Layer initialization :::::")
(command "layer" "t" "*" "")
(command "layer" "on" "*" "")
(command "layer" "u" "*" "")
(princ "\n ::::: Layer All On,Thaw,Unlock completion :::::")
(princ)
) ;defun
;Layer On
-----------------------------------------------------------------------------------
------------------------------------------
(defun c:VO(/ cla ss k la-lis ed la k)
(setvar "cmdecho" 0)
(princ "\n ::::: Layer On :::::")
(command "layer" "on" "*" "")
(princ "\n ::::: Layer On completion :::::")
(princ)
) ;defun
;Layer Off
-----------------------------------------------------------------------------------
------------------------------------------
(defun c:vf(/ cla ss k la-lis ed la k)
(princ "\n ::::: Layer Off :::::")
(setq cla (getvar "clayer"))
(setq ss (ssget))
(setq k 0 la-lis '())
(setvar "cmdecho" 0)
(repeat (sslength ss)
(setq ed (entget (ssname ss k))
la (cdr (assoc 8 ed)))
(setq la-lis (append la-lis (list la)))
(setq k (1+ k))
) ;repeat
(setq la-lis (str_memb la-lis))
(command "undo" "be")
(foreach x la-lis (progn
(if (= x cla) (command "layer" "off" x "y" "")
(command "layer" "off" x ""))
)
(princ "\n[")(princ x)(princ "] layer is off.")
) ;foreach
(command "undo" "e")
(princ "\n ::::: Layer Off completion :::::")
(princ)
) ;defun
(if (= xx "Yes")
(progn
(while (null e)
(setq e (entsel "\nSelect arc or circle: "))
(if e
(progn
(setq e (car e))
(if (and
(/= (cdr (assoc 0 (entget e))) "ARC")
(/= (cdr (assoc 0 (entget e))) "CIRCLE")
)
(progn (prompt "\nEntity is a ")
(princ (cdr (assoc 0 (entget e))))
(setq e nil)
)
)
)
)
)
(command "UCS" "e" e)
(setq cen (trans (cdr (assoc 10 (entget e))) e 1))
(setq rad (cdr (assoc 40 (entget e))))
(prompt "\nRadius is ")
(princ (rtos rad))
(initget 7 "Length")
(setq d (getdist "\nLength/<Extension>: "))
(if (= d "Length")
(progn
(initget 7)
(setq d (getdist cen "\nLength: "))
)
(setq d (+ rad d))
)
(setvar "BLIPMODE" 0)
(setvar "HIGHLIGHT" 0)
(command "LAYER" "M" "CL" "C" "6" "" "")
(command "LINE" (list (car cen) (- (cadr cen) d) (caddr cen))
(list (car cen) (+ (cadr cen) d) (caddr cen))
""
)
(command "CHANGE" "l" "" "P" "LT" "CONTINUOUS" "")
(command "LINE" (list (- (car cen) d) (cadr cen) (caddr cen))
(list (+ (car cen) d) (cadr cen) (caddr cen))
""
)
(command "CHANGE" "l" "" "P" "LT" "CONTINUOUS" "")
(command "LAYER" "S" clay "")
)
)
(command "UCS" "P") ; Restore previous UCS
(setvar "BLIPMODE" sblip) ; Restore saved modes
(setvar "GRIDMODE" sgrid)
(setvar "HIGHLIGHT" shl)
(setvar "UCSFOLLOW" sucsf)
(command "undo" "e")
(setvar "CMDECHO" scmde)
(setq *error* olderr) ; Restore old *error* handler
(princ)
)
;*************�����Ѱ�ü�� ���̾���� ���̾��***************
(defun c:VS1 (/ cmd ename elist lyr)
(setq cmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq ename (car (entsel "\n Select an entity :")))
(while (null ename)
(setq ename (car (entsel "\n Select again :")))
)
(setq elist (entget ename))
(setq lyr (assoc 8 elist))
(command "layer" "set" (cdr lyr) "")
(prompt (strcat "\n Now the current layer is " (cdr lyr) "."))
(setvar "cmdecho" cmd)
)
;
(defun C:XL (/ PT1 PT2 PT3 PT4)
(graphscr)
(setq pt1 (getpoint "\n Lower left corner : "))
(setq pt3 (getcorner pt1 "\n Upper right corner : "))
(setq pt2 (list (car pt1)(cadr pt3)))
(setq pt4 (list (car pt3)(cadr pt1)))
(command "layer" "n" "xl" "c" "6" "xl" "")
(command "line" pt1 pt3 "")
(command "change" "l" "" "p" "la" "xl" "")
(command "line" pt2 pt4 "")
(command "change" "l" "" "p" "la" "xl" "")
)
;Layer Unlock
-----------------------------------------------------------------------------------
------------------------------------------
(defun c:luk(/ cla ss k la-lis ed la k)
(setvar "cmdecho" 0)
(princ "\n ::::: Layer Unlock :::::")
(command "layer" "u" "*" "")
(princ "\n ::::: Layer Unlock completion :::::")
(princ)
) ;defun
;Layer lock
-----------------------------------------------------------------------------------
------------------------------------------
(defun c:CV(/ cla ss k la-lis ed la k)
(princ "\n ::::: Layer Lock :::::")
(setq cla (getvar "clayer"))
(setq ss (ssget))
(setq k 0 la-lis '())
(setvar "cmdecho" 0)
(repeat (sslength ss)
(setq ed (entget (ssname ss k))
la (cdr (assoc 8 ed)))
(setq la-lis (append la-lis (list la)))
(setq k (1+ k))
) ;repeat
(setq la-lis (str_memb la-lis))
(command "undo" "be")
(foreach x la-lis
(progn
(command "layer" "lo" x "")
)
(princ "\n[")(princ x)(princ "] layer is lock.")
) ;foreach
(command "undo" "e")
(princ "\n ::::: Layer Lock completion :::::")
(princ)
) ;defun
;Layer Thaw
-----------------------------------------------------------------------------------
------------------------------------------
(defun c:ltt(/ cla ss k la-lis ed la k)
(setvar "cmdecho" 0)
(princ "\n ::::: Layer Thaw :::::")
(command "layer" "t" "*" "")
(princ "\n ::::: Layer Thaw completion :::::")
(princ)
) ;defun
;Layer
Freeze-----------------------------------------------------------------------------
------------------------------------------------
(defun c:lf(/ cla ss k la-lis ed la k)
(princ "\n ::::: Layer Freeze :::::")
(setq cla (getvar "clayer"))
(setq ss (ssget))
(setq k 0 la-lis '())
(setvar "cmdecho" 0)
(repeat (sslength ss)
(setq ed (entget (ssname ss k))
la (cdr (assoc 8 ed)))
(setq la-lis (append la-lis (list la)))
(setq k (1+ k))
) ;repeat
(setq la-lis (str_memb la-lis))
(command "undo" "be")
(foreach x la-lis
(progn
(command "layer" "f" x "")
)
(princ "\n[")(princ x)(princ "] layer is Freeze.")
) ;foreach
(command "undo" "e")
(princ "\n ::::: Layer Freeze completion :::::")
(princ)
) ;defun
;�����ƾ�Լ�-------------------------------------------------------------------------
----------------------------------------------------
(defun str_memb (str_lst / a b)
(setq b (reverse str_lst))
(mapcar '(lambda (x) (if (= (member x a) nil) (setq a (cons x a)))) b)
a
)
;----------------------------------------------------------------------------------
-------------------------------------------------------------