Ok thanks.
On a different note, this quick and dirty stab (coded blind so I don't know if it works) is how I might structure the code so there's less repetition of logic and it's more discernible / maintainable (subjective := yes):
(defun C:TBUP ( / add:val base:len base:name bps:no city client date drh:no dwg:len dwg:name dwg:prefix job:no lb:val plan:no subdiv )
(setq
dwg:prefix (getvar 'dwgprefix)
bps:no (vl-filename-base (vl-filename-directory dwg:prefix))
dwg:name (getvar 'dwgname)
dwg:len (strlen dwg:name)
base:name (vl-filename-base dwg:name)
base:len (strlen base:name)
job:no (substr base:name 8 9)
client (vl-string-trim " " (getstring T "\n* Enter Residence Client:"))
client (if (eq "" client) "RESIDENCE" client)
subdiv (vl-string-trim " " (getstring T "\n* Enter Subdivison:"))
subdiv (if (eq "" subdiv) "Highcroft Estates, Phase 1")
city (vl-string-trim " " (getstring T "\n* Enter City State:"))
city (if (eq "" city) "Arlington, TX 76001" city)
date (ARCH:C_DATE-ISSUE (getvar "tdupdate"))
)
;; Assumes rev number is always a single digit.
(if (wcmatch (strcase base:name) "*R#")
(setq
drh:no (strcat (substr dwg:name (- base:len 16) 5) (substr dwg:name (- base:len 7) 8))
plan:no (strcat "PLAN " (substr dwg:name (- dwg:len 20) 17))
lb:val (strcat "LOT " (substr dwg:name (- dwg:len 27) 2) ", BLOCK " (substr dwg:name (- dwg:len 23) 2))
add:val (substr (substr dwg:name 1 (- dwg:len 30)) 18)
)
(setq
drh:no (strcat (substr dwg:name (- base:len 13) 5) (substr dwg:name (- base:len 4) 5))
plan:no (strcat "PLAN " (substr dwg:name (- dwg:len 17) 14))
lb:val (strcat "LOT " (substr dwg:name (- dwg:len 24) 2) ", BLOCK " (substr dwg:name (- dwg:len 20) 2))
add:val (substr (substr dwg:name 1 (- dwg:len 27)) 18)
)
)
(foreach pair
(mapcar 'cons
'("DRHNO" "PLANNO" "ADD" "LB" "DATE" "BPSNO" "JOBNO" "RES" "SUB" "CITY")
(list drh:no plan:no add:val lb:val date bps:no job:no client subdiv city)
)
(ARCH:UpdateBlocks "DRHortonTBH" (car pair) (cdr pair))
)
(ARCH:MsgBox1
" Arch2Program© : Message"
64 ;; bit coded var for dialog style?
(strcat "DR Horton Titleblock Updated Successfully")
2 ;; bit coded var for icon style?
)
(princ)
)
For what it's worth, cheers.