Chciałbym poddać pod rozważenie taką funkcję, która uwzględnia platformę
CAD (AutoCAD, ZwCAD, GstarCAD ...) i przechowa tą informację w zmiennej globalnej
*pCAD*.
Może się to przydać (a nawet na pewno się przyda) w wielu funkcjach, zwłaszcza takich, które będą opierały się o
ActiveX.
W przypadku
AutoCAD, zapewne wersja nie będzie miała znaczenia, ale
iCAD jest zmienny jak wiaterek jesienny i każda wersja niesie ze sobą chmurę niespodzianek

- Kod: Zaznacz cały
; ============================================================ ;
; Wykrycie platformy CAD (zmienna globalna: *pCAD*) ;
; ------------------------------------------------------------ ;
; Detection of CAD platforms (zmienna globalna: *pCAD*) ;
; ============================================================ ;
(defun CAD:SYS_PlatformCAD (/ pCAD)
(cond
(
(equal (getvar "PRODUCT") "AutoCAD")
; info:
; (getvar "ACADVER") --> "17.2s (LMS Tech)" lub "18.2s (LMS Tech)"
(setq *pCAD* (strcat "autocad_" (vl-string-trim " (LMS Tech)" (getvar "ACADVER"))))
; wynik:
; *pCAD* --> "autocad_18.2s"
)
(
(equal (getvar "PRODUCT") "ZWCAD")
; info:
; (substr (getvar "VERNUM") 1 10) --> "2011.10.30" lub "2011.06.30"
(setq *pCAD* (strcat "zwcad_" (substr (getvar "VERNUM") 1 10)))
; wynik:
; *pCAD* --> "zwcad_2011.10.30"
)
(
(equal (getvar "PRODUCT") "ICAD")
; info:
; (nth 11 (vl-productinfo)) --> "GstarCAD 2011"
; (nth 15 (vl-productinfo)) --> " 110818"
(setq *pCAD* (strcat "gstarcad_" (vl-string-trim " " (nth 15 (vl-productinfo)))))
; wynik:
; *pCAD* --> "gstarcad_110818"
)
)
)
Tylko proszę nie buczeć - to tylko propozycja
pozdrawiam,
ZK