; DELTABLE.LSP : ÁöÁ¤ÇÑ TABLEÀ» Á¦°ÅÇÏ´Â ÇÁ·Î±×·¥ ; ÀÛ¼ºÀÏ : 1994. 9. 11. ; ÀÛ¼ºÀÚ : ÃÖ¹®¼± ; Àü¿ªº¯¼ö ; #MODEL : ½Ã½ºÅÛ º¯¼ö°ªÀ» Àӽ÷ΠÀúÀåÇÒ ¸®½ºÆ® ; #LBDATA : LIST BOX¿¡ µé¾îÀÖ´Â SYMBOL µéÀÇ À̸§ ¸®½ºÆ® ; #SYMBOLNAME : ¼±ÅÃµÈ SYMBOL À̸§ ; #TABLETYPE : Å×À̺íÇüÅ ; #TABLELIST : Å×ÀÌºí¸®½ºÆ® (setq #MODEL nil) (setq #LBDATA nil) (setq #SYMBOLNAME "") (setq #TABLETYPE 2) (setq #TABLELIST '(("BLOCK" "Block" "block_but" erase-entity) ("DIMSTYLE" "Dimstyle" "dim_but" erase-entity) ("LAYER" "Layer" "layer_but" erase-entity) ("LTYPE" "Linetype" "ltype_but" erase-entity) ("STYLE" "Style" "style_but" erase-entity) ("UCS" "UCS" "ucs_but" erase-define) ("VIEW" "View" "view_but" erase-define) ("VPORT" "Viewport" "vport_but" erase-define))) ; »ç¿ëÇÒ ½Ã½ºÅÛ º¯¼öÀÇ ÇöÀç°ªÀ» ´ëÇǽÃŲ´Ù. ; ÇØ´ç ½Ã½ºÅÛ º¯¼öÀÇ °ªÀ» ¼³Á¤ÇÑ´Ù. (defun push-mode () (setq #MODEL (list (getvar "BLIPMODE") (getvar "CMDECHO") (getvar "EXPERT") (getvar "OSMODE") ) ) (setvar "BLIPMODE" 0) (setvar "CMDECHO" 0) (setvar "EXPERT" 1) (setvar "OSMODE" 0) ) ; ´ëÇǽÃÄѵР½Ã½ºÅÛ º¯¼öÀÇ °ªÀ» º¹±¸½ÃŲ´Ù. (defun pop-mode () (setvar "BLIPMODE" (car #MODEL)) (setvar "CMDECHO" (cadr #MODEL)) (setvar "EXPERT" (caddr #MODEL)) (setvar "OSMODE" (cadddr #MODEL)) (princ) ) ; »ç¿ëÀÚ Á¤ÀÇ ¿¡·¯ ó¸® ÇÔ¼ö ; ½Ã½ºÅÛ º¯¼öÀÇ °ªÀ» º¹±¸½ÃŲ´Ù. (defun *ERROR* (msg) (if (/= msg "Function cancelled") (if (= msg "quit / exit abort") (princ) (princ (strcat "\nError: " msg "\n")) ) (princ) ) (redraw) (pop-mode) ) ; ÆÐÅÏ(pat º¯¼ö)°ú ÀÏÄ¡ÇÏ´Â SYMBOL ¸íµé·Î LIST BOX¸¦ ±¸¼ºÇÑ´Ù. ; SYMBOL ¸íÀ» #LBDATA º¯¼ö¿¡ ´ã´Â´Ù. (defun symbol-list (key tname pat / tl in ln) (start_list key) (setq #LBDATA nil) (setq tl (tblnext tname T) in 0) (while tl (setq ln (cdr (assoc 2 tl))) (if (wcmatch ln pat) (progn (add_list ln) (setq #LBDATA (append #LBDATA (list ln))) (setq in (1+ in)) ) ) (setq tl (tblnext tname)) ) (end_list) ) ; ÆÐÅÏÀÌ º¯°æµÇ¾úÀ» ¶§ ¼öÇàµÇ´Â CALL BACK ÇÔ¼ö ; ÆÐÅÏ¿¡ µû¶ó LIST BOXÀÇ ³»¿ëÀ» À籸¼ºÇÑ´Ù. (defun do-pattern ( / pat) (setq pat (strcase (get_tile "pat_edit"))) (symbol-list "pat_list" (car (nth #TABLETYPE #TABLELIST)) pat) ) ; LIST BOX ³»ÀÇ Ç׸ñÀÌ ¼±ÅõǾúÀ» ¶§ ¼öÇàµÇ´Â CALL BACK ÇÔ¼ö ; SELECTION EDIT BOXÀÇ ³»¿ëÀ» ¼±ÅÃµÈ SYMBOL ¸íÀ¸·Î ¹Ù²Û´Ù. (defun do-patlist ( / in) (setq in (get_tile "pat_list")) (setq in (nth (atoi in) #LBDATA)) (set_tile "error" "") (set_tile "sel_edit" in) ) ; ERROR°¡ ¹ß»ýÇßÀ» ¶§ ¼öÇàµÇ´Â ÇÔ¼ö (CALL BACK ÇÔ¼ö ¾Æ´Ô) ; ¹Ì¸® ¼³Á¤µÈ ERROR TILE¿¡ ¿¡·¯ ³»¿ëÀ» Ç¥½ÃÇÑ´Ù. (defun do-error (type) (set_tile "error" (strcat "Invalid " type " name.")) (mode_tile "sel_edit" 2) ) ; SELECTION EDIT BOX¿¡ ÀÔ·ÂµÈ SYMBOL ¸íÀÌ ½ÇÁ¦·Î Á¸ÀçÇϴ°¡ ; ¸¦ È®ÀÎÇÑ ÈÄ Á¸ÀçÇϸé T, Á¸ÀçÇÏÁö ¾ÊÀ¸¸é NILÀ» ¸®ÅÏÇÑ´Ù. (defun check-symbol (type ln) (if (not (tblsearch type ln)) (progn (do-error type) nil ) T ) ) ; SELECTION EDIT BOX¿¡ ÀÔ·ÂÀÌ ¹ß»ýÇßÀ» ¶§ ¼öÇàµÇ´Â CALL BACK ÇÔ¼ö ; ÀÔ·ÂµÈ SYMBOL ¸íÀÌ ½ÇÁ¦·Î Á¸ÀçÇϴ°¡¸¦ È®ÀÎÇÑ´Ù. (defun do-select ( / sel) (setq sel (strcase (get_tile "sel_edit"))) (if (check-symbol (car (nth #TABLETYPE #TABLELIST)) sel) (progn (setq #SYMBOLNAME sel) (set_tile "error" "") T ) nil ) ) ; OK BUTTONÀÌ ¼±ÅõǾúÀ» ¶§ ¼öÇàµÇ´Â CALL BACK ÇÔ¼ö (defun do-accept () (if (do-select) (done_dialog) ) ) ; CANCEL BUTTONÀÌ ¼±ÅõǾúÀ» ¶§ ¼öÇàµÇ´Â CALL BACK ÇÔ¼ö (defun do-cancel () (done_dialog) (exit) ) ; Table Type Radio Button 󸮸¦ À§ÇÑ CALL BACK ÇÔ¼ö (defun do-table ( / ret pat) (setq ret (get_tile "type_but")) (cond ((= ret "block_but") (setq #TABLETYPE 0)) ((= ret "dim_but") (setq #TABLETYPE 1)) ((= ret "layer_but") (setq #TABLETYPE 2)) ((= ret "ltype_but") (setq #TABLETYPE 3)) ((= ret "style_but") (setq #TABLETYPE 4)) ((= ret "ucs_but") (setq #TABLETYPE 5)) ((= ret "view_but") (setq #TABLETYPE 6)) ((= ret "vport_but") (setq #TABLETYPE 7)) ) (setq pat "*") (set_tile "error" "") (set_tile "pat_edit" pat) (set_tile "table_title" (strcat (cadr (nth #TABLETYPE #TABLELIST)) "s Defined in this Drawing")) (mode_tile (caddr (nth #TABLETYPE #TABLELIST)) 2) (symbol-list "pat_list" (car (nth #TABLETYPE #TABLELIST)) pat) (setq erase-table (eval (cadddr (nth #TABLETYPE #TABLELIST)))) ) ; SYMBOL ¼±ÅÃÀ» À§ÇÑ DIALOGUE¸¦ ±¸¼ºÇÏ°í CALL BACK ÇÔ¼ö¸¦ Á¤ÀÇÇÑ´Ù. (defun symbol-dialog ( / dcl_id) (setq dcl_id (load_dialog "SYMBOL")) (if (not (new_dialog "table_box" dcl_id)) (exit)) (do-table) (action_tile "type_but" "(do-table)") (action_tile "pat_edit" "(do-pattern)") (action_tile "pat_list" "(do-patlist)") (action_tile "sel_edit" "(do-select)") (action_tile "accept" "(do-accept)") (action_tile "cancel" "(do-cancel)") (start_dialog) (unload_dialog dcl_id) ) ; Å×À̺í ÇüÅ¿¡ µû¶ó ÇØ´ç ¿£Æ¼Æ¼¸¦ »èÁ¦ÇÏ´Â ÇÔ¼ö (defun erase-entity (type ln / ss) (cond ((= type "BLOCK") (setq ss (list (cons 0 "INSERT") (cons 2 ln)))) ((= type "DIMSTYLE") (setq ss (list (cons 0 "DIMENSION") (cons 3 ln)))) ((= type "LAYER") (setq ss (list (cons 8 ln)))) ((= type "LTYPE") (setq ss (list (cons 6 ln)))) ((= type "STYLE") (setq ss (list (cons 0 "TEXT") (cons 7 ln)))) ) (if (setq ss (ssget "X" ss)) (command "ERASE" ss "") (princ (strcat "\nUnreferenced " type ".")) ) ; ÀÌÈÄ¿¡ PURGE ¸í·ÉÀ» ¼öÇàÇؾ߸¸ ÁöÁ¤ Å×À̺íÀÌ ¿ÏÀüÈ÷ »èÁ¦µË´Ï´Ù. ) ; Å×À̺í ÇüÅ¿¡ µû¶ó ÇØ´ç Å×À̺í Á¤ÀǸ¦ »èÁ¦ÇÏ´Â ÇÔ¼ö (defun erase-define (type ln) (cond ((= type "UCS") (command "UCS")) ((= type "VIEW") (command "VIEW")) ((= type "VPORT") (command "VPORTS")) ) (command "DEL" ln) ) ; Àüü ÇÁ·Î±×·¥À» C:DELTABLE ÇÔ¼ö·Î Á¤ÀÇÇÑ´Ù. (defun C:DELTABLE () (setq #SYMBOLNAME "") (push-mode) (symbol-dialog) (erase-table (car (nth #TABLETYPE #TABLELIST)) #SYMBOLNAME) (redraw) (pop-mode) )