Wczytywanie aplikacji ObjectARX

Aplikacja ObjectARX musi zostać wczytana, aby można było skorzystać z jej zdefiniowanych poleceń lub funkcji.

Aplikację ObjectARX można wczytać, korzystając z jednego z poniższych sposobów:

Uwaga: Począwszy od produktów opartych na programie AutoCAD 2014, niestandardowe aplikacje muszą działać w trybie bezpiecznym, gdy zmienna systemowa SECURELOAD jest ustawiona na wartość 1 lub 2. W trybie bezpiecznym program może wczytywać i uruchamiać tylko te pliki, które zawierają kod z zaufanych lokalizacji określonych przez zmienną systemową TRUSTEDPATHS.

Wczytywanie automatyczne aplikacji ObjectARX

Uwaga: Niektóre aplikacje ObjectARX zajmują duży obszar pamięci operacyjnej. Po zakończeniu używania określonej aplikacji można usunąć ją z pamięci, używając opcji Usuń polecenia ARX lub WCZYTAJAPL.

Niektóre przykładowe aplikacje ObjectARX zawierają plik acad.rx, w którym znajduje się lista plików aplikacji ObjectARX wczytywanych automatycznie w momencie uruchamiania produktu opartego na oprogramowaniu AutoCAD.

Plik ten można utworzyć lub zmodyfikować za pomocą edytora lub procesora tekstu (który tworzy pliki w formacie tekstowym ASCII), dodając lub usuwając jego elementy, tak aby umożliwić korzystanie z odpowiednich aplikacji ObjectARX. Polecenie WCZYTAJAPL zapewnia też opcję Pakiet uruchomieniowy, która wczytuje określone aplikacje bez potrzeby edycji jakichkolwiek plików.

Ponieważ produkty oparte na oprogramowaniu AutoCAD wyszukują plik acad.rx w kolejności określonej przez ścieżkę dostępu do biblioteki, w każdym katalogu rysunku można umieścić inny plik acad.rx. W ten sposób określone aplikacje ObjectARX są dostępne dla określonych typów rysunków. Załóżmy na przykład, że rysunki 3D przechowywane są w katalogu o nazwie AcadJobs/3d_dwgs. Jeśli katalog ten jest skonfigurowany jako katalog bieżący, można do niego skopiować plik acad.rx i zmodyfikować go w następujący sposób:

myapp1
otherapp

Jeśli umieszczono ten nowy plik acad.rx w katalogu AcadJobs/3d_dwgs i uruchomiono program z tym katalogiem jako bieżącym, nowe aplikacje ObjectARX są następnie wczytywane i dostępne z wiersza polecenia. Ponieważ oryginalny plik acad.rx nadal znajduje się w katalogu z plikami programu opartego na oprogramowaniu AutoCAD, domyślny plik acad.rx zostanie wczytany po uruchomieniu programu z innego katalogu, który nie zawiera pliku acad.rx.

Aplikacje ObjectARX można wczytywać z pliku MNL za pomocą funkcji arxload. Daje to pewność, że aplikacja ObjectARX, niezbędna do poprawnego działania menu, zostanie wczytana podczas wczytywania odpowiedniego pliku menu.

Wczytywanie aplikacji ObjectARX za pomocą języka AutoLISP

Składnia funkcji arxload jest niemal identyczna jak składnia funkcji load używanej z plikami AutoLISP. Jeśli powiedzie się wczytanie aplikacji ObjectARX przez funkcję arxload, wówczas zostanie zwrócona nazwa programu. Składnia funkcji arxload jest następująca:

(arxload filename [onfailure])

Dwa argumenty funkcji arxload to nazwa_pliku oraz komunikat_o_błędzie. Podobnie jak w przypadku funkcji load, argument nazwa_pliku jest wymagany i musi zawierać pełną ścieżkę dostępu do wczytywanego pliku aplikacji ObjectARX. Argument komunikat_o_błędzie jest opcjonalny i zazwyczaj nie jest używany przy wczytywaniu aplikacji ObjectARX wywoływanych z wiersza polecenia. Poniższy przykład pokazuje sposób wczytania aplikacji ObjectARX o nazwie mojaapl.arx.

(arxload "myapp")

Podobnie jak w przypadku plików AutoLISP program przeszukuje ścieżkę dostępu do biblioteki dla określonego pliku. Aby wczytać plik, który nie znajduje się w ścieżce dostępu do biblioteki, należy podać nazwę pliku wraz z jego ścieżką dostępu.

Uwaga: Przy podawaniu ścieżki dostępu jako separatora należy używać znaku kreski ułamkowej (/) lub dwóch znaków odwróconej kreski ułamkowej (\\), ponieważ pojedyncza odwrócona kreska ułamkowa ma w języku AutoLISP specjalne znaczenie.

Próba wczytania aplikacji, która została już wcześniej wczytana do pamięci, powoduje wystąpienie błędu. Przed użyciem funkcji arxload należy za pomocą funkcji arx sprawdzić, jakie aplikacje są obecnie wczytane.

Usunięcie aplikacji z pamięci za pomocą języka AutoLISP wymaga zastosowania funkcji arxunload. W poniższym przykładzie pokazano usuwanie aplikacji o nazwie mojaapl.

(arxunload "myapp")

Za pomocą funkcji arxunload można usunąć z pamięci nie tylko aplikację ObjectARX, ale również skojarzone z nią definicje poleceń.