(vl-load) is my function for enabling vl, vla, vlax extension functions through (vl-load-com) that is provided inside (vl-load) function, now as parent... It makes global variables assigned vla-objects such as : cad, doc, alo, spc... If they are nil (vl-load) function is called and they are loaded :
When loaded once in session next time they exist, so (or) will read (and cad doc alo spc) as T and not proceed to (vl-load) - it will stop further execution...
So : cad, doc, alo, spc are global variables and (vl-load) function serves for loading them just once in session... User just have to be avare they are loaded as vla-objects and use them where and when ever is needed... Especially cad, doc, and spc globals...