;;; ;;; ;;; Author: ;;; Henry C. Francis ;;; 425 N. Ashe St. ;;; Southern Pines, NC 28387 ;;; ;;; http://www.paracadd.com ;;; All rights reserved. ;;; ;;; Copyright: 1997-2011 ;;; Edited: 9/14/16 ;;; ;;; Requires: gvpno.lsp, dimscl.lsp, getstyle.lsp, mklayr.lsp, tags.lsp, ukword.lsp, txtsize.lsp, ureal.lsp, nentsel_to_MCS.lsp, upoint.lsp, mltstyle.lsp, tnote.lsp, tnote.dcl, ureal.lsp ;;; (the required files above may have their own additional requirements) ;;; ;;; A section of code below forces multileader/text option where automatic placement ;;; of aligned text would otherwise happen: ;;; search for it using (WCMATCH sytxt "GATE") as the search string. ;;; (DEFUN ulbl_error (msg /) (PRINC (STRCAT "\nError: " msg ": " (IF debug_funs (STRCAT (IF oldfunname4 (STRCAT oldfunname4 "; ") "") (IF oldfunname3 (STRCAT oldfunname3 "; ") "") (IF oldfunname2 (STRCAT oldfunname2 "; ") "") (IF oldfunname1 (STRCAT oldfunname1 "; ") "") (IF oldfunname0 (STRCAT oldfunname0 "; ") "") (IF funname funname "") ) "" ) ) ) (SETQ do_opts NIL) (COMMAND ".undo" "end") (PRINC (STRCAT "\nError: " msg)) (IF old_ulblosmode (SETVAR "OSMODE" old_ulblosmode) ) ;_ end of IF (IF old_ulblcmdecho (SETVAR "CMDECHO" old_ulblcmdecho) ) ;_ end of IF (SETQ *error* orig_ulbl_error) (IF getstyle (getstyle "") ) ;_ end of if (PRINC) ) ;_ end of DEFUN ;;;**************************************************************************** (DEFUN c:ulbl (/ epsize subspt this_ld_opt is_bulge nent_ent nentl) (SETQ oldfunname4 oldfunname3 oldfunname3 oldfunname2 oldfunname2 oldfunname1 oldfunname1 oldfunname0 oldfunname0 funname funname "c:ulbl" ) (if errortrap nil (LOAD "errortrap" "\nERRORTRAP.LSP not loaded! ")) (IF debug_pads ;indents debug text upon entering this function (IF (>= (STRLEN debug_pads) 15) (SETQ debug_pads (SUBSTR debug_pads 1 15)) (SETQ debug_pads (STRCAT debug_pads "\t")) ) (SETQ debug_pads "\t") ) (SETQ orig_ulbl_error *error* *error* ulbl_error ) ;_ end of SETQ (SETQ from_ulbl NIL) (SETQ old_ulblosmode (GETVAR "OSMODE")) (SETQ old_ulblcmdecho (GETVAR "CMDECHO")) (IF mattag NIL (SETQ mattag 0) ) ;_ end of IF (IF gvpno nil (LOAD "gvpno") ) ;_ end of IF (gvpno) (IF dimscl nil (LOAD "dimscl") ) ;_ end of IF (dimscl) (IF ulbl_ld_opt NIL (SETQ ulbl_ld_opt "Label") ) ;_ end of IF (IF offsetlbl NIL (SETQ offsetlbl 0) ) ;_ end of IF ;;; (IF txtsize ;;; NIL ;;; (LOAD "txtsize" "\nFile TXTSIZE.LSP not loaded! ") ;;; ) ;_ end of IF ;;; (SETQ preset_size "110") ;;; (txtsize NIL) (IF do_cmud (SETQ txtht (* 0.075 dimsc)) (SETQ txtht (* 0.11 dimsc)) ) ;_ end of IF (IF ukword NIL (LOAD "ukword" "\nFile UKWORD.LSP not loaded! ") ) ;_ end of IF (VL-LOAD-COM) (IF (EQ (GETVAR "TILEMODE") 1) NIL (PROGN (VLA-PUT-MSPACE (VLA-GET-ACTIVEDOCUMENT (VLAX-GET-ACAD-OBJECT));change to mspace :VLAX-TRUE ) ) ) (IF dimscl NIL (LOAD "dimscl" "\nFile DIMSCL.LSP not loaded! ")) (dimscl) ;;; (WHILE ;;; (OR (SETQ nent (NENTSEL (STRCAT "\nSelect Line to " ulbl_ld_opt))) ;;; (SETQ ;;; do_opts ;;; (ukword ;;; 0 ;;; "Options Select Layer" ;;; "ptions, Make last label = ayer, elect again or Enter to exit" ;;; nil ;;; ) ;_ end of ukword ;;; ) ;_ end of SETQ ;;; ) ;_ end of OR (IF nent (PROGN (IF (EQ (CDR (ASSOC 0 (ENTGET (CAR nent)))) "INSERT") (SETQ thisblk (TBLSEARCH "BLOCK" (CDR (ASSOC 2 (ENTGET (CAR nent)))))) (SETQ thisblk NIL) ) (COND ((AND (EQ (TYPE (LAST nent)) 'LIST) (EQ (TYPE (CAR (LAST nent))) 'ENAME) (AND thisblk (NOT (EQ (CDR (ASSOC 0 (ENTGET (CAR nent)))) "INSERT")) (NOT (EQ (BOOLE 1 4 (CDR (ASSOC 70 thisblk))) 4)) ) ) (SETQ nentl (CDR (ASSOC 8 (ENTGET (CAR (LAST nent))))))) (T (SETQ nentl (CDR (ASSOC 8 (ENTGET (CAR nent)))))) ) (SETQ save_nentl_1 nentl nentl-step nentl ) (SETQ nentl-cnt 1) (WHILE (WCMATCH nentl-step "*|*") (SETQ nentl-cnt (1+ nentl-cnt) nentl-step (SUBSTR nentl nentl-cnt) ) ) (SETQ save_nentl_2 nentl nentl nentl-step ) (IF debug_ulbl (PROGN (PRINC (STRCAT "\n" (IF debug_pads debug_pads "\t") "ULBL: nentl = ")) (PRINC nentl) (PRINC) ) ;_ end of PROGN ) ;_ end of IF (IF (EQ do_opts "Options") (ulbl_opts) ) ;_ end of IF (IF (EQ do_opts "Layer") (PROGN (SETQ ulbl_txtent (ENTGET (ENTLAST)) ulbl_txtent (SUBST (CONS 1 (IF (WCMATCH (STRCASE nentl) "SIGN1") "SIGN" (STRCASE nentl))) (ASSOC 1 ulbl_txtent) ulbl_txtent ) ;_ end of SUBST do_opts NIL ) ;_ end of SETQ (ENTMOD ulbl_txtent) ) ;_ end of PROGN ) ;_ end of IF ) ) ;_ end of IF (IF (OR (EQ do_opts "Options") (EQ do_opts "Select") (EQ do_opts "Layer") ) ;_ end of OR (PROGN (SETQ nent (NENTSELP (STRCAT "\nSelect Line to " ulbl_ld_opt))) (SETQ do_opts NIL) ) ;_ end of PROGN ) ;_ end of IF (IF nent (PROGN (SETQ blees (LENGTH (CAR (REVERSE nent)))) (SETQ pipe (ENTGET (CAR nent))) (COND ((AND pipe (OR (EQ (CDR (ASSOC 0 pipe)) "VERTEX") (EQ (CDR (ASSOC 0 pipe)) "LINE") ) (WCMATCH (CDR (ASSOC 8 pipe)) "*|*") (NOT (WCMATCH (CDR (ASSOC 8 pipe)) "*???????@@#[0-9EQH]P*")) ) (SETQ nent_ent pipe nent_obj (CDR (ASSOC 0 nent_ent)) nentl (CDR (ASSOC 8 nent_ent)) nent_name nentl pipe_is3d NIL pipe_pt1 (CDR (ASSOC 10 nent_ent)) ) ;_ end of SETQ (PROGN (SETQ nentnamecnt 1) (WHILE (WCMATCH (SUBSTR nent_name nentnamecnt) "*|*") (SETQ nentnamecnt (1+ nentnamecnt)) ) (SETQ nent_name (SUBSTR nent_name nentnamecnt)) )) ;;; ((AND nent ;;; (EQ (TYPE nent) 'LIST) ;;; (EQ (TYPE (LAST nent)) 'LIST) ;;; (EQ (TYPE (LAST (LAST nent))) 'ENAME) ;;; (EQ (CDR (ASSOC 0 (ENTGET (LAST (LAST nent))))) ;;; "INSERT" ;;; ) ;_ end of EQ ;;; ) ;_ end of AND ;;; (PROGN ;;; (SETQ nent_ent (ENTGET (LAST (LAST nent))) ;;; nent_obj (CDR (ASSOC 0 nent_ent)) ;;; nent_name (CDR (ASSOC 2 nent_ent)) ;;; nentl (CDR (ASSOC 8 nent_ent)) ;;; pipe_is3d NIL ;;; ) ;_ end of SETQ ;;; ) ;_ end of PROGN ;;; ) ((AND (EQ blees 2) (EQ (TYPE (CAAR (REVERSE nent))) 'ENAME)) (PROGN (SETQ nent_ent (ENTGET (CAAR (REVERSE nent))) nent_obj (CDR (ASSOC 0 nent_ent)) nent_name (CDR (ASSOC 2 nent_ent)) nentl (CDR (ASSOC 8 nent_ent)) pipe_is3d NIL ) ;_ end of SETQ (IF (WCMATCH nent_name "*|*") (PROGN (SETQ nentnamecnt 1) (WHILE (WCMATCH (SUBSTR nent_name nentnamecnt) "*|*") (SETQ nentnamecnt (1+ nentnamecnt)) ) (SETQ nent_name (SUBSTR nent_name nentnamecnt)) (IF (WCMATCH (STRCASE nent_name) "SIGN1") (SETQ nent_name "SIGN") ) ) ) ) ;_ end of PROGN ) (T (SETQ nent_ent nil nent_obj nil nent_name nil nentl (CDR (ASSOC 8 pipe)) pipe_is3d (IF (NOT (AND (EQUAL (CADDDR (ASSOC 10 pipe)) 0.0 0.001) (EQUAL (CADDDR (ASSOC 11 pipe)) 0.0 0.001) ) ;_ end of AND ) ;_ end of NOT T ) ;_ end of IF ornentl nentl ) ;_ end of SETQ ) ) ;_ end of COND ) ;_ end of PROGN ) ;_ end of IF (IF (OR nent_name nentl) (PROGN ;;; (ALERT (STRCAT "nent_name=" (IF nent_name "T" "NIL") "\nnentl=" (IF nentl nentl "NIL"))) (SETQ pproc NIL) (set-ex-lst) (set-new-lst) (COND ((AND nent ;;; (OR ;;; (AND nent_ent ;;; (NOT (EQ (BOOLE 1 (CDR (ASSOC 70 this_nent_ent)) 4) 4)) ;;; ) (NOT (EQ nent_obj "INSERT")) ;;; ) ) ;;; (ALERT "Made it (1)!") (IF (WCMATCH nentl "*|*") (PROGN (WHILE (/= (SUBSTR nentl 1 1) "|") (SETQ nentl (SUBSTR nentl 2)) ) ;_ end of while (SETQ nentl (SUBSTR nentl 2)) ) ;_ end of progn ) ;_ end of if (SETQ pproc (SUBSTR nentl 3 4)) (WHILE (EQ (SUBSTR pproc 1 1) "0") (IF (> (STRLEN pproc) 1) (SETQ pproc (SUBSTR pproc 2)) (SETQ pproc "?") ) ;_ end of if ) ;_ end of while (COND ((OR (WCMATCH (STRCASE nentl) "*INTERCON") (WCMATCH (STRCASE nentl) "*INDEXCON") (WCMATCH (STRCASE nentl) "*DTMOBSCR") (WCMATCH (STRCASE nentl) "*CONT-MNR") (WCMATCH (STRCASE nentl) "*CONT-MJR") ) ;_ end of OR (IF (AND (EQ (CDR (ASSOC 0 pipe)) "LWPOLYLINE") (EQ (LENGTH (CDR (ASSOC 10 pipe))) 2) ) ;_ end of AND (SETQ pproc (RTOS (CDR (ASSOC 38 pipe)) 2 0)) (SETQ pproc (RTOS (CADDDR (ASSOC 10 pipe)) 2 0)) ) ;_ end of IF ) ((OR (WCMATCH (STRCASE nentl) "*PROP*") (WCMATCH (STRCASE nentl) "*PL") ) ;_ end of OR (SETQ pproc (IF do_cmud "PL" "PL" ;"%%223" ) ;_ end of IF ) ;_ end of SETQ ) ((WCMATCH (STRCASE nentl) "???????[NRDFEX][SDFGRTKL]#[0-9HQE]P*" ) ;_ end of WCMATCH (SETQ subspt 10) ) ((WCMATCH (STRCASE nentl) "*UNK*") (SETQ unk_pproc (ustr 1 "Feature to label [Asphalt/Concrete/Gravel/Soil Drive] or enter specific label" unk_pproc T ) ;_ end of ustr ) ;_ end of SETQ (COND ((WCMATCH (STRCASE unk_pproc) "A*") (SETQ pproc "ASPHALT DRIVE") ) ((WCMATCH (STRCASE unk_pproc) "C*") (SETQ pproc "CONCRETE DRIVE") ) ((WCMATCH (STRCASE unk_pproc) "G*") (SETQ pproc "GRAVEL DRIVE") ) ((WCMATCH (STRCASE unk_pproc) "S*") (SETQ pproc "SOIL DRIVE") ) (T (SETQ pproc (STRCASE unk_pproc))) ) ;_ end of COND ) ((AND ulbl-ex-lst nentl (MEMBER T (MAPCAR '(LAMBDA (x) (WCMATCH nentl (CADR x))) ulbl-ex-lst)) ) (SETQ nentl-cnt 1) (WHILE (WCMATCH nentl "*|*") (SETQ nentl-cnt (1+ nentl-cnt) nentl (SUBSTR nentl nentl-cnt) ) ) (EVAL (CONS 'COND (MAPCAR '(LAMBDA (X) (LIST (CONS 'WCMATCH (LIST (CONS 'STRCASE (LIST 'nentl)) (CADR x)) ) ;_ end of CONS (CONS 'SETQ (LIST 'PPROC (CAR X))) ) ;_ end of list ) ;_ end of lambda ulbl-ex-lst ) ;_ end of MAPCAR ) ;_ end of CONS ) ;_ end of EVAL ) ((AND ulbl-new-lst nentl (MEMBER T (MAPCAR '(LAMBDA (x) (WCMATCH nentl (CADR x))) ulbl-new-lst)) ) (SETQ nentl-cnt 1) (WHILE (WCMATCH nentl "*|*") (SETQ nentl-cnt (1+ nentl-cnt) nentl (SUBSTR nentl nentl-cnt) ) ) (EVAL (CONS 'COND (MAPCAR '(LAMBDA (X) (LIST (CONS 'WCMATCH (LIST (CONS 'STRCASE (LIST 'nentl)) (CADR x)) ) ;_ end of CONS (CONS 'SETQ (LIST 'PPROC (CAR X))) ) ;_ end of list ) ;_ end of lambda ulbl-new-lst ) ;_ end of MAPCAR ) ;_ end of CONS ) ;_ end of EVAL ) (T (SETQ pproc nentl)) ) (IF subspt (PROGN (SETQ p_size (SUBSTR nentl subspt 2)) (WHILE (EQ (SUBSTR p_size 1 1) "0") (IF (> (STRLEN p_size) 1) (SETQ p_size (SUBSTR p_size 2)) (SETQ p_size "?") ) ;_ end of if ) ;_ end of while (COND ((AND (EQ (TYPE (READ p_size)) 'INT) do_spl_text) (COND ((<= (READ p_size) 24) (IF (EQ pproc "SS") (SETQ spl-txt "-RCP") (SETQ spl-txt "-DIP") ) ;_ end of IF ) ((AND (EQ (READ p_size) 54) (EQ pproc "WWD")) (SETQ spl-txt "-PCCP") ) ((> (READ p_size) 24) (IF (EQ pproc "SS") (SETQ spl-txt "-RCP") (SETQ spl-txt "-CSP") ) ;_ end of IF ) ) ;_ end of COND ) ((WCMATCH (STRCASE nentl) "???????[NRDFEX][SDFGRTKL]#[0-9HQE]P*-????" ) ;_ end of WCMATCH ;Matches all Piping layers per ParaPIPE's previously necessary mod to CAD Layer Guidelines format ;these were the last 4 [...] >>>> [0EHISW][0ACDFGLNPRSVW][ACFGILMPRSTV][2CDELPRST] ;which have been replaced by -???? so that matches any 4 characters on the end. (SETQ spl-txt (SUBSTR (STRCASE nentl) (- (STRLEN nentl) 3) ) ;_ end of SUBSTR ) ;_ end of SETQ (IF (OR (WCMATCH (STRCASE nentl)"???????[NRDFEX][SDFGRTKL]#[0-9HQE]PI*-????") (AND usrsfx (WCMATCH spl-txt (STRCASE usrsfx)) ) ) (SETQ spl-txt "") (PROGN (WHILE (AND (WCMATCH (SUBSTR spl-txt 1 1) "0") (> (STRLEN spl-txt) 1) ) ;_ end of AND (SETQ spl-txt (SUBSTR spl-txt 2)) ) ;_ end of WHILE (SETQ spl-txt (STRCAT " " spl-txt)) ) )) ((WCMATCH (STRCASE nentl) "??-????-[SDFGRTKL]#[0-9HQE]P-[NRDFEX]" ) ;_ end of WCMATCH ;Matches all Piping layers per AIA - CAD Layer Guidelines version 5 format (SETQ spl-txt (SUBSTR (STRCASE nentl) (- (STRLEN nentl) 3) ) ;_ end of SUBSTR ) ;_ end of SETQ (WHILE (AND (WCMATCH (SUBSTR spl-txt 1 1) "0") (> (STRLEN spl-txt) 1) ) ;_ end of AND (SETQ spl-txt (SUBSTR spl-txt 2)) ) ;_ end of WHILE (SETQ spl-txt (STRCAT " " spl-txt)) ) (T (SETQ spl-txt "")) ) ;_ end of COND (COND ((EQ (SUBSTR p_size (STRLEN p_size)) "H") (SETQ sytxt (STRCAT (RTOS (/ (ATOF (SUBSTR p_size 1 1)) 2) 5 2 ) ;_ end of RTOS "\" " pproc spl-txt ) ; _ end of strcat exornw (IF (WCMATCH (STRCASE nentl) "???????E?#[0-9EQH]P*,*|???????E?#[0-9EQH]P*") "Existing" "New") exist_option (IF (EQ exornw "Existing") "Yes" "No") which_ulbl "Multileader" ) ;_ end of setq ) ((EQ (SUBSTR p_size (STRLEN p_size)) "Q") (SETQ sytxt (STRCAT (RTOS (/ (ATOF (SUBSTR p_size 1 1)) 4) 5 2 ) ;_ end of RTOS "\" " pproc spl-txt ) ; _ end of strcat exornw (IF (WCMATCH (STRCASE nentl) "???????E?#[0-9EQH]P*,*|???????E?#[0-9EQH]P*") "Existing" "New") exist_option (IF (EQ exornw "Existing") "Yes" "No") which_ulbl "Multileader" ) ;_ end of setq ) ((EQ (SUBSTR p_size (STRLEN p_size)) "E") (SETQ sytxt (STRCAT (RTOS (/ (ATOF (SUBSTR p_size 1 1)) 8) 5 2 ) ;_ end of RTOS "\" " pproc spl-txt ) ; _ end of strcat exornw (IF (WCMATCH (STRCASE nentl) "???????E?#[0-9EQH]P*,*|???????E?#[0-9EQH]P*") "Existing" "New") exist_option (IF (EQ exornw "Existing") "Yes" "No") which_ulbl "Multileader" ) ;_ end of setq ) ((EQ (TYPE (READ (SUBSTR p_size (STRLEN p_size)))) 'SYM) (SETQ sytxt pproc exornw (IF (WCMATCH (STRCASE nentl) "???????E?#[0-9EQH]P*,*|???????E?#[0-9EQH]P*") "Existing" (IF exornw exornw "New")) exist_option (IF (EQ exornw "Existing") "Yes" (IF exist_option exist_option "No")) which_ulbl "Multileader" ) ) ((EQ (TYPE (READ (SUBSTR p_size (STRLEN p_size)))) 'INT) (SETQ sytxt (STRCAT p_size "\" " pproc spl-txt) exornw (IF (WCMATCH (STRCASE nentl) "???????E?#[0-9EQH]P*,*|???????E?#[0-9EQH]P*") "Existing" (IF exornw exornw "New")) exist_option (IF (EQ exornw "Existing") "Yes" (IF exist_option exist_option "No")) which_ulbl "Multileader" ) ) ) ;_ end of cond (PRINC (STRCAT "\nPipe is " sytxt)) (IF (EQ ulbl_ld_opt "Label") (lpipe) ) ;_ end of if ) ;_ end of progn (IF pproc (PROGN (SETQ sytxt pproc) (lpipe) ) ;_ end of PROGN (PROGN (PRINC (STRCAT "\nEntity layer is " nentl)) ;_ end of princ (IF (EQ ulbl_ld_opt "Label") (PROGN (IF tlnmstd NIL (LOAD "mklayr" "\nFile MKLAYR.LSP is not loaded! " ) ;_ end of LOAD ) ;_ end of IF (IF ;;; (AND (tlnmstd nentl) ;;; (NOT (OR (WCMATCH pproc "*DRIVE")(WCMATCH pproc "*ROAD")(WCMATCH nentl "*RWAY*")))) (PROGN (SETQ sytxt (SUBSTR nentl 3 4)) (WHILE (WCMATCH sytxt "0@*") (SETQ sytxt (SUBSTR sytxt 2)) ) ;_ end of WHILE ) ;_ end of PROGN ;;; (SETQ sytxt pproc) ) ;_ end of IF ;;; (IF do_cmud ;;; (SETQ txtht (* 0.075 dimsc)) ;;; (SETQ txtht (* 0.1 dimsc)) ;;; ) ;_ end of IF (lpipe) ) ;_ end of progn ) ;_ end of if ) ;_ end of progn ) ;_ end of IF ) ;if (SETQ subspt nil) ;;; (gvpno) ) ;;; ((AND nent_ent (EQ nent_obj "INSERT")) ((AND nent_ent (EQ (CDR (ASSOC 0 nent_ent)) "INSERT")) ;;; (ALERT "Made it (2)!") (IF debug_ulbl (PROGN (PRINC (STRCAT "\n" (IF debug_pads debug_pads "\t") "ULBL: Selection is a \"" (IF nent_name nent_name "?" ) ;_ end of IF "\" INSERT!\non layer \"" (IF nentl nentl "?" ) ;_ end of IF "\"" ) ;_ end of STRCAT ) ;_ end of PRINC ) ;_ end of PROGN ) ;_ end of IF (IF c:tags NIL (LOAD "tags" "\nFile TAGS.LSP not loaded! ") ) ;_ end of IF (SETQ from_ulbl T) (C:TAGS) (SETQ from_ulbl NIL) ) (T ;;; (ALERT "Made it (3)!") (PRINC (STRCAT (IF (OR (NOT nent_name) (WCMATCH nent_name "[AaEeIiOoUu]*") ) (IF (NOT nent_name) "\nTHIS IS AN UNIDENTIFIED" "\nTHIS IS AN \"" ) "\nTHIS IS A \"" ) (IF nent_name nent_name "" ) ;_ end of IF (IF (NOT nent_name) " INSERT! " "\" INSERT! " ) ) ;_ end of STRCAT ) ;_ end of PRINC (PRINC) ) ) ;_ end of COND ) ;_ end of PROGN (PROGN (IF (AND (<= (CAR (GETVAR "extmax")) 43.0)(EQ(GETVAR "TILEMODE") 0)) (PRINC "\nNothing was selected!\nYou appear to be in paper space.") (PRINC "\nNothing was selected! ") ) (PRINC) ) ) (IF getstyle (getstyle "") ) ;_ end of if (IF old_ulblosmode (SETVAR "OSMODE" old_ulblosmode) ) ;_ end of IF (IF old_ulblcmdecho (SETVAR "CMDECHO" old_ulblcmdecho) ) ;_ end of IF (SETQ *error* orig_ulbl_error) (IF debug_pads ;unindents debug text upon leaving this function (SETQ debug_pads (SUBSTR debug_pads 2)) ) (PRINC) ) ;_ end of DEFUN ;;;**************************************************************************** (DEFUN set-new-lst () (SETQ oldfunname4 oldfunname3 oldfunname3 oldfunname2 oldfunname2 oldfunname1 oldfunname1 oldfunname0 oldfunname0 funname funname "set-new-lst" ) (SETQ ulbl-new-lst (LIST ;this list is completely editable. just match the basic pattern used when adding new descriptions ;take care that the logic works when this list is reconstructed as a (COND ...) function ;in the function, if the layer matches the string the label is used but only the first match will ever ;be used so construct each match string to be unique and not a substring of any other match string. ; ;;; ("