Ran code, I still think way to cluttered. This shows the main menu looking at your dcl would have 14 main options then go to correct sub menu. ? add more. This is a custom menu way easier to make than a dcl.
This is an alternative dcl method pick the type then a child dcl opens.
This shows a child DCL over the main dcl menu choice "Size"
Another
(if (null psize)(setq psize 25.0))
(setq tmp (getreal (strcat "\nSpecify the psize <" (rtos psize 2 2) "> : ")))
(if (null tmp)(princ))
You can use my Multigetvals can save the last value for re-use.
The initget has advantage of forcing a number.