I think this would help with your original problem of the lisp files moving... This is how I learned to load lisp. It's been a long time since I wrote this so I'm rusty with it. I'm just sharing what is in my acaddoc.lsp file. This is not the entire file.
There are 3 sections. One for autoloading lisp functions. One for demand loading lisp commands, and one for custom loading lisp commands.
Then, just put all the autoload functions and demandload commands in separate folders and it will find and load them all. You simply would have had to change the path in 2 places in your acaddoc.lsp file if they moved.
Note: you'll want lisp that are not done or in progress in separate folders because they will fail to load if the code isn't correct.
Hope this helps you or someone else.
;===============================================================================
;Autoload Functions
(terpri)
(princ "\n===== Autoloading B******m Custom Functions ===========")
(Setq TLV-LineLength 1)
;;;THIS AUTOLOAD FUNCTION WILL LOAD ANY LISP INSIDE THE SPECIFIED FOLDER INTO YOUR
;;;CURRENT AUTOCAD SESSION. FUNCTIONS THAT WILL BE USED IN OTHER LISP SHOULD BE
;;;AUTOLOADED.
(foreach x (vl-directory-files "T:\\CAD Support\\LISP\\AutoLoad" "*.lsp")
(if (> (strlen x) TLV-LineLength)
(Setq TLV-LineLength (strlen x))
);if
);foreach
(Setq TLV-LineLength (- TLV-LineLength 5))
(terpri)
(foreach x (vl-directory-files "T:\\CAD Support\\LISP\\AutoLoad" "*.lsp")
(Setq TLV-DashString "-")
(repeat (- TLV-LineLength (strlen x))
(Setq TLV-DashString (strcat TLV-DashString "-"))
);repeat
(princ (Strcat "Loading " (strcase x) ": "))
(setq TLV-LoadReturn (load (strcat "T:\\CAD Support\\LISP\\AutoLoad\\" x) "Fail!"))
(cond
(
(= TLV-LoadReturn nil)
(if (> (strlen (strcat "Loading " x ": " TLV-DashString " LOAD FAILED!!")) 80)
(progn
(terpri)
(princ " ---------- LOAD FAILED!!")
);progn
(princ (strcat TLV-DashString " LOAD FAILED!!"))
);if
);cond1
(;cond2
(= TLV-LoadReturn "Fail!")
(princ (strcat x "FAILED - File not found!"))
);cond2
(;cond3
TLV-LoadReturn
(princ tlv-dashstring)
(princ TLV-LoadReturn)
);cond3
);cond
(terpri)
);foreach
;===============================================================================
;Auto Demandload Commands
(terpri)
(princ "\n===== Demand-loading B******m Custom Commands =========")
;;;THIS DEMANDLOAD FUNCTION WILL DEMANDLOAD ANY LISP INSIDE THE SPECIFIED FOLDER
;;;INTO YOUR CURRENT AUTOCAD SESSION. COMMAND LISPS CAN BE DEMAND LOADED SO THAT
;;;THE ONLY LOAD WHEN THEY ARE USED. !!!DEMAND LOAD FILE NAMES MUST MATCH THE
;;;DEMAND LOAD COMMAND NAME!!!
;;;i.e. "C:Drawabunchoflines" goes in "Drawabunchoflines.lsp"
(foreach x (vl-directory-files "T:\\CAD Support\\LISP\\DemandLoad" "*.lsp")
(if (not (autoload x (list x)))
(princ (strcat "\nDemand-Loading: " x))
);if
);foreach
(terpri)
(princ "\n* Demand-Loaded Commands will be loaded on first use.")
(terpri)
;Manual Demandload Functions <-- Manually loading multiple functions defined in 1 file
(autoload "TLC-View_UCS.LSP" (list "TLSK-View_Top"
"TLSK-View_Bottom"
"TLSK-View_Front"
"TLSK-View_Back"
"TLSK-View_Left"
"TLSK-View_Right"
"TLSK-View_SWIso"
"TLSK-View_SEIso"
"TLSK-View_NWIso"
"TLSK-View_NEIso"
"TLSK-UCS_Top"
"TLSK-UCS_Back"
"TLSK-UCS_Front"
"TLSK-UCS_Left"
"TLSK-UCS_Right")
);autoload
---sig---------------------------------------
'(83 104 110 101 117 112 104 64 71 109 97 105 108 46 99 111 109)