Here is the status of my solution.
Some the of the lisp customizations were modified to reference a relative directory path instead of full path.
Tool palette block buttons refer to their new directory on local machine. I really wish we could use relative paths instead of absolute.
Included within the start up scripts is a function that can be called from the end user to synchronize customization files between the server and local machines. The only issue is when to initiate a synchronization. I am trying to decide if it should be scheduled or upon boot up of windows or start up of autocad.
Synchronizing at start up of windows: If done this way the latest updates will only be applied from the time windows was started up. The problem with this approach is the end users only get one update. Blocks, templates, and other tools get updated sometimes mid day so the end user will have to manually run the sync.
Synchronizing at start up of AutoCAD: For some reason, every time i open a new dwg file, the script runs and the dos window appears. The problem with this approach is the annoying dos window and the frequency of the sync script running. If i could make it run at start of the autocad program instead of every dwg, it would make sense.
Here is my script. The (mircad) function mirrors the server, the (upcad) function uploads from local machine to server.
;If the directory does not exist
(if
(not (vl-file-directory-p "C:/CAD Tools"))
(progn
(princ "\nDirectory does not exist")
(princ "Creating directory")
(initget "Yes No")
(vl-mkdir "C:\\CAD Tools")
(setq syncnow (getkword "\nWould you like to syncrhonize CAD Tools now? [Yes/No] :"))
(cond
((= syncnow "Yes")
(alert (strcat "\nTools was missing." "\nWe will now syncronize the Tools directory from server" "\nThis might take a while....."))
(mircad)
)
((= syncnow "No")
(princ)
)
)
)
(progn
(princ "\n..........CAD Tools Directory already exist")
)
)
;Mirror function
;Syncronizing directories
(defun mircad()
(princ "\nSyncing Tools")
(command "shell" (strcat "robocopy \"serverpath\" \"C:\\localpath\" /MIR /R:10 /W:5 /ETA /TEE /v /LOG+:CADToolsUpdateLog.txt"))
(princ)
)
(defun upcad()
(princ "\nUpdating Tools")
(command "shell" (strcat "robocopy \"C:\\localpath\" \"server-path\" /MIR /R:10 /W:5 /ETA /TEE /LOG+:CADToolsUpdateLog.txt"))
(princ)
)
In my past life I was a CAD Manager and we had this same problem. Without getting network support from IT for using a BAT or other file util in the network startup script, I ended up using a freeware file syncing tool and installed on all CAD workstations / Laptops. Then I put the tool in the startup folder so it would open and run at the OS startup. Then it would monitor the network folder and sync any customization files that had a newer date. Doing this - I did not need to go around to 60 workstations and make sure everyone had a local update. For remote workers - access via WAN or cloud files would be necessary to do the same thing (Think Google Docs for example - keeps everything synced on it's own if installed).