Laden von ObjectARX-Anwendungen

Eine ObjectARX-Anwendung muss erst geladen werden, bevor Sie die definierten Befehle oder Funktionen verwenden können.

Sie können eine ObjectARX-Anwendung mit einer der folgenden Methoden laden:

Anmerkung: Beginnend mit AutoCAD 2014-basierten Produkten müssen benutzerdefinierte Anwendungen im abgesicherten Modus arbeiten, wenn für die Systemvariable SECURELOAD der Wert 1 oder 2 festgelegt ist. Wenn Sie im abgesicherten Modus arbeiten, kann das AutoCAD-basierte Produkt nur solche Dateien laden und ausführen, die Code aus vertrauenswürdigen Speicherorten enthalten; die vertrauenswürdigen Speicherorte werden durch die Systemvariable TRUSTEDPATHS festgelegt.

Automatisches Laden von ObjectARX-Anwendungen

Anmerkung: Eine ObjectARX-Anwendungen nehmen einen großen Teil des Systemspeichers in Anspruch. Wenn Sie eine Anwendung nicht mehr verwenden und aus dem Speicher löschen möchten, verwenden Sie die Unload-Option des Befehls ARX oder APPLOAD.

Einige ObjectARX-Beispiele enthalten die Datei acad.rx, in der ObjectARX-Anwendungsdateien aufgeführt sind, die beim Starten von AutoCAD automatisch geladen werden.

Sie können diese Datei mit einem Texteditor oder einem Textverarbeitungsprogramm, mit dem sich Dateien im ASCII-Textformat erzeugen lassen, erstellen oder bearbeiten, indem Sie Inhalt hinzufügen oder löschen, um die gewünschten ObjectARX-Anwendungen zur Verfügung zu stellen. Alternativ stellt der Befehl APPLOAD eine Startgruppen-Option zur Verfügung, mit der die angegebenen Anwendungen geladen werden, ohne dass Dateien bearbeitet werden müssen.

Da AutoCAD und AutoCAD-basierte Produkte in der im Bibliothekspfad angegebenen Reihenfolge nach der Datei acad.rx suchen, kann in jedem Zeichnungsverzeichnis eine andere acad.rx-Datei vorhanden sein. Dadurch werden bestimmte ObjectARX-Anwendungen für bestimmte Zeichnungstypen zur Verfügung gestellt. Sie können 3D-Zeichnungen beispielsweise in einem Verzeichnis mit der Bezeichnung AcadJobs/3d_dwgs speichern. Wenn dieses Verzeichnis als aktuelles Verzeichnis festgelegt ist, können Sie die Datei acad.rx in dieses Verzeichnis kopieren und wie folgt bearbeiten:

myapp1
otherapp

Wenn Sie diese neue acad.rx-Datei im Verzeichnis AcadJobs/3d_dwgs speichern und das Programm mit diesem Verzeichnis als aktuellem Verzeichnis starten, werden diese neuen ObjectARX-Anwendungen geladen und stehen in der Befehlszeile zur Verfügung. Da sich die ursprüngliche acad.rx-Datei weiterhin im Verzeichnis mit den AutoCAD-Programmdateien befindet, wird die vorgabemäßige acad.rx-Datei geladen, wenn Sie das Programm von einem anderen Verzeichnis aus starten, das keine acad.rx-Datei enthält.

Sie können ObjectARX-Anwendungen mithilfe der arxload-Funktion aus einer MNL-Datei laden. Dadurch wird sichergestellt, dass eine für die ordnungsgemäße Funktion eines Menüs erforderliche ObjectARX-Anwendung geladen wird, wenn die Menüdatei geladen wird.

Laden einer ObjectARX-Anwendung mit AutoLISP

Die Syntax der arxload-Funktion ist fast identisch mit der in AutoLISP-Dateien verwendeten load-Funktion. Wenn die ObjectARX-Anwendung mithilfe der arxload-Funktion erfolgreich geladen wird, wird der Programmname zurückgegeben. Die Syntax für die arxload-Funktion lautet wie folgt:

(arxload filename [onfailure])

Die beiden Argumente für die arxload-Funktion sind Dateiname und onfailure. Wie bei der load-Funktion ist das Argument Dateiname erforderlich. Hierbei handelt es sich um die vollständige Pfadnamenbeschreibung der zu ladenden ObjectARX-Anwendungsdatei. Das Argument onfailure ist optional und wird normalerweise beim Laden von ObjectARX-Anwendungen über die Befehlszeile nicht verwendet. Im folgenden Beispiel wird die ObjectARX-Anwendung myapp.arx geladen.

(arxload "myapp")

Wie bei AutoLISP-Dateien durchsucht das Programm den Bibliothekspfad nach der angegebenen Datei. Wenn Sie eine Datei laden möchten, die sich nicht im Bibliothekspfad befindet, müssen Sie den vollständigen Pfadnamen der Datei angeben.

Anmerkung: Bei der Angabe eines Verzeichnispfads müssen Sie als Trennzeichen einen Schrägstrich (/) oder zwei umgekehrte Schrägstriche (\\) verwenden, da einem einzelnen umgekehrten Schrägstrich in AutoLISP eine spezielle Bedeutung zukommt.

Wenn Sie versuchen, eine zuvor bereits geladene Anwendung zu laden, führt dies zu einem Fehler. Vor der Verwendung von arxload sollten Sie mit der arx-Funktion überprüfen, welche Anwendungen aktuell geladen sind.

Verwenden Sie die Funktion arxunload, um eine AutoLISP-Funktion zu entladen. Im folgenden Beispiel wird die Anwendung myapp entladen.

(arxunload "myapp")

Durch die Verwendung der arxunload-Funktion wird nicht nur die ObjectARX-Anwendung aus dem Speicher gelöscht, sondern es werden auch die mit der Anwendung verknüpften Befehlsdefinitionen entfernt.