hi
i saw many loader which use cond depending of arx file version
i try to wrote something different. is there any way to improve more code below ?
(defun ads:LoadArx (Lst Arch Msg / fl res)
(setq fl "")
(foreach % Lst
(cond
( (= % "/v/") (setq fl (strcat fl (substr (getvar "ACADVER") 1 2))) )
( (= % "/a/") (setq fl (strcat fl "/a/")) )
( T (setq fl (strcat fl %)) )
)
)
(if Msg
(if
(not
(vl-catch-all-error-p
(vl-catch-all-apply
(quote arxload)
(list
(if (= (getenv "PROCESSOR_ARCHITECTURE") "x86")
(setq res (vl-string-subst (car Arch) "/a/" (strcat fl ".arx")))
(setq res (vl-string-subst (cadr Arch) "/a/" (strcat fl ".arx")))
)
)
)
)
)
(princ (strcat " -> Loaded: " res))
(princ (strcat " -> Error loading: " res))
)
)
)
(ads:LoadArx (list "DOSLib" "/v/" "/a/") (list "" "x64") T)
(ads:LoadArx (list "OpenDCL" "/a/" "." "/v/") (list "" "x64") T)
(ads:LoadArx (list "SQLiteLsp" "/v/" "/a/") (list "x32" "x64") T)
Arguments:
Lst - is some kind of file name pattern
Arch - system version use in file name
Msg - show message after load or not
Sample:
(ads:LoadArx (list "OpenDCL" "/a/" "." "/v/") (list "" "x64") T)
in Autocad 2010 program load file:
OpenDCL.18.arx (OpenDCL | space | . | 18 | .arx |)
all files name per image.
thanks
kruuger