21 października 2021


W kolejnej części naszego cyklu kontynuujemy pisanie programu instalacyjnego w Visual LISPie.  Na początek zdefiniujmy nowy profil użytkownika w AutoCADzie.

Andrzej Gumuła

Najprostszym rozwiązaniem pozwalającym na zdefiniowanie profilu użytkownika jest wykorzystanie mechanizmów ActiveX. Ponieważ nie istnieje bezpośrednia metoda pozwalająca utworzyć nowy profil, musimy skorzystać z metody - kopiuj. Poniższa funkcja tworzy nowy profil, o nazwie Name, poprzez skopiowanie ustawień z aktualnego profilu. Nowy profil staje się bieżącym. Jeżeli nazwa profilu już występuje, a profil nie jest bieżącym, program ustawia go jako bieżący.

(defun CreateProfile (Name / Profiles sArray)
(setq Profiles (vla-get-Profiles (vla-get-Preferences
(vla-get-Application (vlax-get-acad-object))))
)
(vla-getallprofilenames profiles ‘sArray)
(cond
((not (member (strcase Name) (mapcar ‘strcase (vlax-safearray->list sArray))))
(vla-CopyProfile Profiles (getvar “cprofile”) Name)
(vla-put-ActiveProfile Profiles Name)
T
)
(T  (if (/= (strcase Name) (strcase (getvar “cprofile”)))
(vla-put-ActiveProfile Profiles Name)
)
nil
)
);end cond
);end CreateProfile


Mając zdefiniowany nowy (patrz okienko AutoCADa „Opcje”, zakładka „Profiles”), aktywny profil możemy edytować jego ustawienia za pomocą zmiennych systemowych lub wykorzystać metody i właściwości związane z obiektem preferencji AutoCADa.

cały artykuł dostępny jest w wydaniu 3 (18) marzec 2009