Also, you can use the same callback function in lieu of ENDCOMMAND and CANCELCOMMAND callbacks. You can even simplify your callback function, for example:
Replace this:
(cond
((= thecommandend "DIMANGULAR") (ARCH:OldLayer))
((= thecommandend "DIMBASELINE") (ARCH:OldLayer))
((= thecommandend "DIMCENTER") (ARCH:OldLayer))
((= thecommandend "DIMCONTINUE") (ARCH:OldLayer))
((= thecommandend "DIMDIAMETER") (ARCH:OldLayer))
((= thecommandend "DIMLINEAR") (ARCH:OldLayer))
((= thecommandend "DIMORDINATE") (ARCH:OldLayer))
((= thecommandend "DIMRADIUS") (ARCH:OldLayer))
((= thecommandend "QDIM") (ARCH:OldLayer))
((= thecommandend "LEADER") (ARCH:OldLayer))
((= thecommandend "QLEADER") (ARCH:OldLayer))
((= thecommandend "DTEXT") (ARCH:OldLayer))
((= thecommandend "MTEXT") (ARCH:OldLayer))
;;((= thecommandend "TEXT") (ARCH:OldLayer))
;;((= thecommandend "BHATCH") (ARCH:OldLayer))
;;((= thecommandend "HATCH") (ARCH:OldLayer))
((= thecommandend "POINT") (ARCH:OldLayer))
((= thecommandend "XLINE") (ARCH:OldLayer))
((= thecommandend "XATTACH") (ARCH:OldLayer))
;;((= thecommandend "INSERT") (ARCH:OldLayer))
)
... With this:
(if (vl-position
thecommandend
'("DIMANGULAR" "DIMBASELINE" "DIMCENTER" "DIMCONTINUE"
"DIMDIAMETER" "DIMLINEAR" "DIMORDINATE" "DIMRADIUS" "QDIM"
"LEADER" "QLEADER" "DTEXT" "MTEXT" "POINT" "XLINE" "XATTACH"))
(ARCH:OldLayer))
... Or, made even simpler:
(if (wcmatch thecommandend "*DIM*,*LEADER,POINT,*TEXT,*XREF,*XATTACH")
(ARCH:OldLayer))
** Note - VL-POSITION is faster than WCMATCH **
Now, if you are not wanting to execute the same function for each of the commands listed above, or perhaps certain commands require additional action, then consider this:
(defun Callback:CommandEnded (Rea Cmd)
(cond ((wcmatch (setq Cmd (strcase (car Cmd))) "*DIM*")
(ARCH:OldLayer)
;;<- DIM specific actions
)
((vl-position Cmd '("LEADER" "QLEADER"))
(ARCH:OldLayer)
;;<- LEADER specific actions
)
((vl-position Cmd '("POINT"))
(ARCH:OldLayer)
;;<- POINT specific actions
)
((vl-position Cmd '("MTEXT" "TEXT"))
(ARCH:OldLayer)
;;<- MTEXT,TEXT specific actions
)
((wcmatch Cmd "*XREF,*XATTACH")
(ARCH:OldLayer)
;;<- XREF specific actions
)
)
(princ))
HTH