Thanks Jeff.
I still could not comprehend why you added a lambda function after vl-catch-all-apply, when the help section states (vl-catch-all-apply 'function list).
csgoh
OK, look at it this way.....
'(lambda ()...) is defining a function.
(vl-catch-all-apply) expects a function.
So by using (lambda) I am allowing my code to be placed into the catch-all in a manner that looks like it would without the (catch-all) and means I only need to add the "(vla-catch-all-apply '(lambda ()" just prior to my working test code and the add "))" after that working code to close the two added functions. . If I just used 'vla-addregion (or, I would prefer to use 'vlax-invoke) then it would need to be re-written to be followed by a complete list of the needed arguments.
This snip is identical (or should be, but it's late and I'm not testing it.....) to what I posted earlier, but without the (lambda):
......
(if (not (vl-catch-all-error-p
(setq Region_array
(vl-catch-all-apply
'vlax-invoke
(list (vla-get-modelspace
(vla-get-document obj))
'addregion
(list obj)
)
)))
)
.......
So you see, there is more than one way to use the (vl-catch-all-apply)