0% found this document useful (0 votes)
0 views

LayerControl

The document contains a series of AutoLISP functions for managing layers in a CAD environment, including commands to turn layers on/off, lock/unlock, freeze/thaw, and handle exceptions. Each function is defined to perform specific layer operations, and the document includes comments for clarity. It also features error handling and user prompts for interaction.

Uploaded by

sd62b8k5q5
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
0 views

LayerControl

The document contains a series of AutoLISP functions for managing layers in a CAD environment, including commands to turn layers on/off, lock/unlock, freeze/thaw, and handle exceptions. Each function is defined to perform specific layer operations, and the document includes comments for clarity. It also features error handling and user prompts for interaction.

Uploaded by

sd62b8k5q5
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 7

; ���̾� ��� ���� ��ɾ�

;--------
; 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

;Layer Except Off


-----------------------------------------------------------------------------------
------------------------------------------
(defun c:vd(/ cla ss k la-lis ed la k)
(princ "\n ::::: Layer Except 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")
(command "layer" "off" "*" "y" "")
(foreach x la-lis (progn
(command "layer" "on" x "")
)
(princ "\n[")(princ x)(princ "] layer is on.")
) ;foreach
(command "undo" "e")
(princ "\n ::::: Layer Except Off completion :::::")
(princ)
) ;defun
;*************************���� �߽ɿ� ���‫��߱� �ڼ‬
***************
(defun C:CL (/ olderr clay sblip scmde sgrid shl sucsf e cen rad d ts xx)
(setq olderr *error*
*error* clerr)
(setq scmde (getvar "CMDECHO"))
(command "undo" "group")
(setq clay (getvar "CLAYER"))
(setq sblip (getvar "BLIPMODE"))
(setq sgrid (getvar "GRIDMODE"))
(setq shl (getvar "HIGHLIGHT"))
(setq sucsf (getvar "UCSFOLLOW"))
(setvar "CMDECHO" 0)
(setvar "GRIDMODE" 0)
(setvar "UCSFOLLOW" 0)
(setq e nil xx "Yes")
(setq ts (tblsearch "LAYER" "CL"))
(if (null ts)
(prompt "\nCreating new layer - CL. ")
(progn
(if (= (logand 1 (cdr (assoc 70 ts))) 1)
(progn
(prompt "\nLayer CL is frozen. ")
(initget "Yes No")
(setq xx (getkword "\nProceed? <N>: "))
(if (= xx "Yes")
(command "LAYER" "T" "CL" "")
)
)
)
)
)

(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 Except Lock


-----------------------------------------------------------------------------------
------------------------------------------
(defun c:lek(/ cla ss k la-lis ed la k)
(princ "\n ::::: Layer Except 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")
(command "layer" "lo" "*" "")
(foreach x la-lis (progn
(command "layer" "u" x "")
)
(princ "\n[")(princ x)(princ "] layer is unlock.")
) ;foreach
(command "undo" "e")
(princ "\n ::::: Layer Except 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

;Layer Except Freeze


-----------------------------------------------------------------------------------
------------------------------------------
(defun c:lef(/ cla ss k la-lis ed la k)
(princ "\n ::::: Layer Except 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")
(command "layer" "f" "*" "")
(foreach x la-lis (progn
(command "layer" "t" x "")
)
(princ "\n[")(princ x)(princ "] layer is Thaw.")
) ;foreach
(command "undo" "e")
(princ "\n ::::: Layer Except 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
)
;----------------------------------------------------------------------------------
-------------------------------------------------------------

You might also like