AutoLISP ist ein leistungsstarkes Produktivitätswerkzeug, mit dem Sie Arbeitsabläufe automatisieren und die Funktionen von AutoCAD LT erweitern können.
AutoLISP ist zwar keine neue Funktion. Ab der Version 2024 ist sie nun jedoch in AutoCAD LT verfügbar.
Mit der Implementierung von AutoLISP in AutoCAD LT können Sie die meisten AutoLISP-Programme ausführen, die in den letzten etwa 40 Jahren entwickelt wurden, mit einigen Einschränkungen. Sie müssen kein AutoLISP-Experte sein, um viele der vorhandenen Programme zu nutzen. Das Erlernen der AutoLISP-Programmierung ist jedoch eine Fähigkeit, die Ihnen noch nie dagewesene Produktivitätsmöglichkeiten bietet.
AutoLISP-Programme werden in der Regel in einer Textdatei mit der Erweiterung .lsp gespeichert. Bevor Sie sich mit den Grundlagen der AutoLISP-Programmierung vertraut machen, lernen Sie in den folgenden Übungen zunächst, wie Sie AutoLISP-Dateien laden. Sie benötigen keine Programmiererfahrung, um die Vorteile von AutoLISP nutzen zu können. In vielen Fällen sind ein paar neue Konzepte sowie Ihre aktuellen Kenntnisse der AutoCAD-Befehle und -Systemvariablen wirklich alles, was Sie benötigen.
Wenn Sie AutoLISP zum ersten Mal verwenden, werden Sie wahrscheinlich eine AutoLISP-Datei laden, die Sie online gefunden haben oder die von Ihrem Unternehmen erstellt wurde, anstatt Ihre eigenen Programme zu schreiben. AutoLISP-Dateien können folgendermaßen geladen werden:
Die folgenden Methoden können angewendet werden, um AutoLISP-Dateien beim Start, beim Öffnen einer Zeichnung oder manuell zu laden.
Laden beim Start | Manuelles Laden |
---|---|
|
|
Wie Sie sehen, können AutoLISP-Dateien auf verschiedene Weise in AutoCAD LT geladen werden. Die verwendeten Methoden hängen von der Konfiguration Ihrer Zeichnungsumgebung ab. Zunächst werden wir das Laden einer AutoLISP-Datei über das Dialogfeld Anwendungen laden/entfernen behandeln.
APPLOAD kann auch in der Befehlszeile eingegeben werden.
Wenn Sie eine andere Sprache als Englisch installiert haben, z. B. de-de, wählen Sie den entsprechenden Ordner anstelle von en-us aus.
Die Datei acadlt2024doc.lsp ist eine der speziell benannten AutoLISP-Dateien, nach denen AutoCAD LT sucht und die ggf. in allen geöffneten oder erstellten Zeichnungen geladen wird. Diese AutoLISP-Datei enthält einige Befehle und benutzerdefinierte AutoLISP-Funktionen, die vom Produkt verwendet werden. Hier verwende ich sie nur als Beispieldatei.
Im Meldungsfeld unten links im Dialogfeld und im Befehlszeilenfenster wird acadlt2024doc.lsp erfolgreich geladen angezeigt.
Dadurch wird der von AutoLISP definierte Befehl DDGRIPS in der Datei acadlt2024doc.lsp gestartet. Mit dem Befehl DDGRIPS wird das Dialogfeld Optionen geöffnet, und die Registerkarte Auswahl wird aktiviert.
In der vorherigen Übung haben Sie den Befehl DDGRIPS verwendet. Sie fragen sich sicher, woher Sie hätten wissen sollen, dass es sich um einen Befehl in der geladenen AutoLISP-Datei handelt? Manchmal verwenden Programme Code, der eine Meldung direkt im Befehlszeilenfenster ausgibt, damit Sie wissen, welche Befehle definiert sind und verwendet werden können. Dies ist jedoch nicht immer der Fall, und Sie müssen eine AutoLISP-Datei möglicherweise öffnen, um zu erfahren, welche Befehle definiert sind. Eine AutoLISP-Datei kann mit dem Editor geöffnet werden.
Die folgende Abbildung zeigt einen Teil der Datei acadlt2024doc.lsp, die im Editor geöffnet wurde. AutoLISP-definierte Befehle, die in der Befehlszeile eingegeben werden können, erhalten das Präfix c:. Der Text direkt nach c: ist der Name des Befehls.
Es gibt zwar keinen bestimmten Speicherort, an dem Sie die heruntergeladenen oder erstellten AutoLISP-Dateien speichern müssen, bevor Sie sie verwenden. Es wird jedoch empfohlen, sie in einem freigegebenen Verzeichnis zu speichern. Wie bei Zeichnungsvorlagen und Blockbibliotheken sollten Sie sicherstellen, dass alle Bauzeichner in einem Team oder im Unternehmen Zugriff auf dieselben AutoLISP-Dateien haben. Sie sollten Folgendes in Erwägung ziehen:
Nachdem Sie einen Ordner zum Speichern Ihrer AutoLISP-Dateien definiert haben, müssen Sie AutoCAD LT mithilfe der Einstellungen Suchpfad für Support-Datei und Vertrauenswürdige Speicherorte auf der Registerkarte Dateien des Dialogfelds Optionen darüber informieren, wo sich der Ordner befindet. AutoCAD LT muss wissen, wo sich Ihre LSP-Dateien befinden, um
Die folgenden Schritte zeigen, wie Sie den Ordner C:\AutoLISP Files zu den Einstellungen Suchpfad für Support-Datei und Vertrauenswürdige Speicherorten hinzufügen. Sie werden diesen Speicherort später verwenden, um eine LSP-Datei mit einigen kurzen AutoLISP-Programmen zu erstellen.
In den aufgeführten Ordnern sucht AutoCAD LT neben anderen benutzerdefinierten Dateitypen, die zum Speichern von Schraffurmustern, Linientypen und Befehls-Aliasnamen sowie zum Definieren neuer Benutzeroberflächenelemente verwendet werden, nach Ihren AutoLISP-Dateien.
Der Ordner wird als letzter Eintrag zur Liste hinzugefügt.
Der Ordner wird als letzter Eintrag zur Liste hinzugefügt.
Zusätzlich zum Kennzeichnen der Ordner mit Ihren AutoLISP-Dateien als schreibgeschützt und als vertrauenswürdig bietet AutoCAD LT auch noch einige zusätzliche Einstellungen, die AutoCAD LT vor bösartigem Code und Malware schützen. Sie können wie folgt auf die Sicherheitseinstellungen von AutoCAD LT zugreifen:
Die Möglichkeit, AutoLISP-Dateien, die Sie online finden oder die Ihr Unternehmen bereits erstellt hat, zu laden und zu verwalten, ist nur der erste Schritt auf dem Weg, Ihre Produktivität mithilfe von AutoLISP in AutoCAD LT zu steigern. Nachdem Sie begonnen haben, die AutoLISP-Programme aus den AutoLISP-Dateien zu nutzen, die Sie bereits in Ihre täglichen Arbeitsabläufe integriert haben, kommt möglicherweise irgendwann der Zeitpunkt, an dem Sie Änderungen an diesen vornehmen oder sogar Ihre eigenen grundlegenden AutoLISP-Programme schreiben möchten.
Sie denken sich vielleicht: "Aber AutoLISP ist doch eine Programmiersprache und ich bin kein Programmierer." AutoLISP ist zwar eine Programmiersprache. Sie müssen jedoch kein Programmierer sein, um den Umgang mit AutoLISP-Programmen zu erlernen und eigene Programme zu schreiben. Das einfachste AutoLISP-Programm ist eine einzelne Anweisung, mit der Sie einen Befehl ausführen oder den Wert einer Systemvariablen ändern können.
Eine AutoLISP-Anweisung beginnt mit einer öffnenden und endet mit einer schließenden Klammer. Im Folgenden sehen Sie ein Beispiel für eine AutoLISP-Anweisung, die den Orthomodus mit der Systemvariablen ORTHOMODE aktiviert.
(setvar "orthomode" 1)
Wie bei Befehls- und Systemvariablennamen können auch in der Befehlszeile in AutoCAD LT AutoLISP-Anweisungen eingegeben werden. Probieren wir es aus:
Die Statusleisten-Schaltfläche ist grau, wenn sie deaktiviert ist.
Die Schaltfläche Orthomodus in der Statusleiste sollte nun aktiviert und blau sein.
Herzlichen Glückwunsch zum Schreiben Ihrer ersten AutoLISP-Anweisung! Sie sind jetzt Programmierer!
Die vorherige AutoLISP-Anweisung verwendet die Funktion setvar, um den Wert einer Systemvariablen festzulegen. Es gibt auch eine Funktion, die den aktuellen Wert einer Systemvariablen zurückgibt. Diese lautet getvar. Die Funktionen setvar und getvar sind nur zwei von Hunderten von Funktionen, die zur Automatisierung von Arbeitsabläufen mit AutoLISP verwendet werden können. Es gibt zwar Hunderte von Funktionen, die die AutoLISP-Programmiersprache bilden. Sie müssen zunächst jedoch nur die fünf Hauptfunktionen kennen. Zwei davon haben Sie bereits kennengelernt. Die fünf Funktionen sind die folgenden:
Nachdem Sie nun die fünf Hauptfunktionen kennen und die Funktion setvar zum Festlegen einer Systemvariablen verwendet haben, sehen wir uns die Verwendung der Funktion command an. Bevor Sie fortfahren, sollten Sie wissen, dass den Befehlsnamen das Präfix . (Punkt) und _ (Unterstrich) vorangestellt werden kann, während die Befehlsoptionsnamen das Präfix _ (Unterstrich) aufweisen können. Diese Zeichen werden verwendet, um sicherzustellen, dass der angegebene Befehl wie erwartet ausgeführt wird.
Hier finden Sie eine Erklärung der Bedeutung dieser Zeichen:
In den folgenden Schritten zeichnen Sie einen Kreis und zoomen mit der Funktion command auf die Grenzen der Zeichnung.
Auf dem aktuellen Layer wird ein Kreis mit einem Radius von 5 Einheiten bei 5,5 gezeichnet.
Die Zeichnung wird auf die Grenzen des Kreises gezoomt, wenn es sich um das einzige Objekt in der Zeichnung handelt. Andernfalls wird auf die Grenzen aller Objekte in der Zeichnung gezoomt.
Nachdem Sie nun einige AutoLISP-Anweisungen kennengelernt haben, sehen wir uns die verschiedenen Teile und die Syntax der AutoLISP-Beispielanweisungen genauer an:
Die direkte Eingabe von AutoLISP-Anweisungen in der Befehlszeile ist zwar eine gute Möglichkeit, AutoLISP kennenzulernen, da Sie Rückmeldungen in Echtzeit erhalten. Es ist jedoch nicht sehr effizient, Anweisungen in der Befehlszeile wiederholt neu einzugeben. Eine Möglichkeit, AutoLISP-Anweisungen wiederzuverwenden, besteht darin, sie mit der Funktion defun als benutzerdefinierten Befehl zu gruppieren.
Probieren wir nun die Funktion defun aus und definieren einen benutzerdefinierten Befehl namens ZP, mit dem die vorherige Ansicht der Zeichnung vergrößert wird:
C:ZP wird an den Befehl ausgegeben.
Die vorherige Ansicht wird wiederhergestellt.
Die vorherige Ansicht wird nun wiederhergestellt.
Sie können zwar mit der Funktion defun benutzerdefinierte Befehle definieren, um die Wiederverwendung von AutoLISP-Anweisungen zu erleichtern. Die von Ihnen definierten Befehle sind jedoch nur in den Zeichnungen verfügbar, für die sie definiert wurden, und nur, während die Zeichnung geöffnet ist. Im nächsten Abschnitt erfahren Sie, wie Sie eine AutoLISP-Datei erstellen, um Ihre benutzerdefinierten AutoLISP-Befehle zusammen mit anderen AutoLISP-Anweisungen zu speichern, die Sie eventuell beim Laden der AutoLISP-Datei ausführen möchten.
Weitere Informationen zu den fünf Hauptfunktionen sowie den unzähligen weiteren Funktionen finden Sie im AutoLISP-Referenzhandbuch.
Sie wissen jetzt, wie Sie AutoLISP-Ausdrücke in der Befehlszeile eingeben. Wir wollen nun betrachten, wie wir eine AutoLISP-Datei erstellen und Ihre AutoLISP-Ausdrücke und benutzerdefinierten Befehle speichern können, damit sie bei Bedarf verfügbar sind. AutoLISP-Dateien sind einfache ASCII-Textdateien, die mit einem einfachen Texteditor, z. B. dem Windows-Editor, erstellt werden können, und sie weisen die Dateinamenerweiterung .lsp auf. Es wird nicht empfohlen, Textverarbeitungsprogramme wie Write oder Word zu verwenden, da diese Sonderzeichen und Formatierungen hinzufügen können, die beim Laden der LSP-Datei Probleme verursachen.
In den nächsten Übungen lernen Sie, wie Sie eine LSP-Datei erstellen, einige AutoLISP-Anweisungen zur LSP-Datei hinzufügen, die LSP-Datei laden und dann die in der LSP-Datei definierten Befehle ausprobieren. Zusätzlich zu den fünf zuvor erwähnten Hauptfunktionen wird auch Folgendes vorgestellt:
Als Nächstes erstellen wir eine eigene Datei und laden sie in AutoCAD LT:
; Zoom commands (defun c:ze () (command "._zoom" "_e")) (defun c:zp () (command "._zoom" "_p")) ; Creates the layer A-ANNO-REV, draws a rectangle and ; converts the rectangle to a revision cloud with arc lengths ; based on half the current value of the LTSCALE system variable (defun c:rv () (setq old-layer (getvar "clayer")) (command "._-layer" "_m" "A-ANNO-REVCLD" "_c" "1" "" "") (command "._rectang" PAUSE PAUSE) (command "._revcloud" "_a" (/ (getvar "ltscale") 2) "" "_o" "_l" "_n") (setvar "clayer" old-layer) ) ; Display a general message in the command line upon load (prompt "\nLoaded MyFirst.lsp") (princ)
Wenn Ihre Programme Unicode-Zeichen verwenden müssen, wählen Sie UTF-8 aus.
Nachdem Sie die Datei erstellt haben, laden Sie die LSP-Datei jetzt mit dem Datei-Explorer, anstatt das Dialogfeld Anwendung laden/entfernen zu verwenden, das mit dem Befehl APPLOAD angezeigt wird.
Nach dem Laden wird die Meldung Loaded MyFirst.lsp im Protokoll des Befehlszeilenfensters angezeigt, das von der Eingabeaufforderungsfunktion aufgerufen wurde.
Beachten Sie, dass die Revisionswolke rot ist und auf dem Layer A-ANNO-REVCLD platziert wird. Dies können Sie in der Dropdown-Liste Layer in der Gruppe Layer der Multifunktionsleiste oder in den Paletten Eigenschaften und Schnelleigenschaften sehen.
Die Zeichnung wird auf die Grenzen gezoomt.
Die vorherige Ansicht der Zeichnung wird wiederhergestellt.
Das Dialogfeld Anwendung laden/entfernen kann nicht nur zum manuellen Laden von AutoLISP-Dateien nach Bedarf verwendet werden, sondern auch zum automatischen Laden von AutoLISP-Dateien beim Öffnen oder Erstellen einer neuen Zeichnungsdatei. Im Bereich Startgruppe des Dialogfelds Anwendung laden/entfernen können Sie angeben, welche AutoLISP-Dateien automatisch geladen werden sollen.
Im Folgenden werden die Schritte zum Hinzufügen einer AutoLISP-Datei zur Startgruppe beschrieben:
APPLOAD kann auch in der Befehlszeile eingegeben werden.
Wenn Sie die Datei myfirst.lsp im vorherigen Abschnitt erstellt haben, können Sie diese Datei auswählen.
Die AutoLISP-Datei, die Sie der Startgruppe hinzugefügt haben, wird automatisch in die aktuelle Zeichnung geladen.
Wenn AutoCAD LT gestartet oder eine Zeichnung erstellt/geöffnet wird, sucht AutoCAD LT nach vier AutoLISP-Dateien mit bestimmten Namen. Wenn die Dateien gefunden werden, werden sie automatisch geladen. Diese Dateien stellen sicher, dass die AutoCAD LT-Umgebung wie erwartet konfiguriert wird und dass Ihre in AutoLISP-definierten Befehle beim Erstellen oder Öffnen einer Zeichnung verfügbar sind.
AutoCAD LT sucht nach diesen vier Dateien und lädt sie automatisch, wenn sie in den entsprechenden Support-Pfaden gefunden werden:
acadlt.lsp und acadltdoc.lsp müssen von Ihnen erstellt werden; sie sind nicht Teil der standardmäßigen AutoCAD LT-Installation. acadlt2024.lsp und acadltdoc2024.lsp sind im Programm enthalten und dürfen nicht geändert werden.
Sie können die Dateien acadlt.lsp und acadltdoc.lsp wie alle anderen LSP-Dateien verwenden. Zusätzlich werden diese Dateien automatisch unter den zuvor erwähnten Kontexten geladen. Diese beiden Dateien können verwendet werden, um andere AutoLISP-Dateien mit der AutoLISP-Ladefunktion zu laden, AutoLISP-Anweisungen beim Laden dieser Dateien auszuführen und AutoLISP-Befehlsdefinitionen zu definieren, sodass sie verwendet werden können, sobald eine Zeichnung erstellt oder geöffnet wurde. Die AutoLISP-Ladefunktion akzeptiert zwei Parameter: die erforderliche AutoLISP-Datei zum Laden und einen zweiten optionalen Parameter, der eine Nachricht darstellt, die angezeigt wird, wenn die zu ladende AutoLISP-Datei in einem der Suchpfade für Support-Dateien von AutoCAD LT nicht gefunden wird. Weitere Informationen zum Einrichten von Suchpfaden für Support-Dateien finden Sie im Abschnitt Verwalten und Sichern von AutoLISP-Dateien.
Die folgenden Schritte erläutern, wie Sie die Datei acadltdoc.lsp im Ordner C:\AutoLISP Files erstellen, einige AutoLISP-Anweisungen hinzufügen, sie in AutoCAD LT laden und anschließend überprüfen, ob die Datei geladen wurde.
; AutoLISP to be executed in each drawing created or opened ; Set Object Snap and Ortho modes (setvar "osmode" 4133) (setvar "orthomode" 1) ; Load the LSP file created earlier under the ; "Store AutoLISP Statements in AutoLISP (LSP) Files" section (load "myfirst.lsp" "\nMyFirst.lsp file couldn't be found") ; Display a general message in the command line upon load (prompt "\nLoading my custom programs") (princ)
Im Befehlszeilenfenster wird die Meldung Loading my custom programs angezeigt. Dieser Wortlaut stammt aus einer der letzten beiden Zeilen, die Sie zuvor in Schritt 2 eingegeben haben.
Die Schaltflächen der Statusleiste sollten wieder aktiviert werden.
Ein Plugin-Paket ist eine Ordnerstruktur mit einer Manifestdatei mit der Bezeichnung PackageContents.xml, die AutoCAD LT über die Dateien und Einstellungen, aus denen das Plugin besteht, informiert. Wie Sie in diesem Artikel bereits erfahren haben, sind Plugin-Pakete zum Laden von AutoLISP-Programmen in AutoCAD LT nicht erforderlich. Sie können jedoch die Verwaltung von AutoLISP-Dateien vereinfachen und stellen eine sicherere Methode zum Einrichten von benutzerdefinierten Programmen dar als die Dateien acadlt.lsp oder acadltdoc.lsp. Plugin-Pakete können in den meisten Fällen auch bei der Konfiguration von AutoCAD LT helfen, ohne dass das Dialogfeld Optionen erforderlich ist.
Weitere Informationen zu Plugin-Paketen finden Sie unter Beispiel: Grundlegende .bundle-Ordnerstruktur für ein Plugin.
Durch die Automatisierung Ihrer Arbeitsabläufe können Sie Ihre Produktivität steigern und sich wiederholende Aufgaben reduzieren. Auch wenn die AutoLISP-Programmierung eine gewisse Lernkurve aufweist, können Sie, wenn Sie sich weiter mit den fünf Hauptfunktionen befassen, einige kleine Programme erstellen, sodass Sie erkennen werden, wie wertvoll AutoLISP für Ihre alltäglichen Arbeitsabläufe sein kann.
Hier finden Sie einige häufig verwendete Befehle und Systemvariablen im Zusammenhang mit AutoLISP.
Befehl | Beschreibung |
---|---|
ANWAUTOLADER | Listet alle Plugins im Plugin-Verzeichnis der Anwendung auf oder lädt sie neu. |
APPLOAD | Lädt und beendet Anwendungen und definiert, welche Anwendungen beim Starten geladen werden. |
OPTIONEN | Passt die Programmeinstellungen an. |
SICHERHEITSOPTIONEN | Steuert die Sicherheitseinschränkungen für das Ausführen von EXE-Dateien im Produkt. |
BFLÖSCH | Ermöglicht es, dass ein anwendungsdefinierter Befehl Vorrang vor einem internen Befehl hat. |
Systemvariable | Beschreibung | Vorgabewert | Gespeichert in |
---|---|---|---|
ACADLSPASDOC | Legt fest, ob die Datei acad.lsp oder acadlt.lsp für AutoCAD LT in jede Zeichnung geladen werden soll oder nur in die Zeichnung, die in einer Sitzung jeweils zuerst geöffnet wird. | 0 | Registrierung |
APPAUTOLOAD | Steuert, wann Plugin-Anwendungen geladen werden. | 14 | Registrierung |
CLAYER | Legt den aktuellen Layer fest. | 0 | Zeichnung |
CLIPROMPTUPDATE | Steuert, ob in der Befehlszeile die Meldungen und Eingabeaufforderungen angezeigt werden, die während der Ausführung einer AutoLISP- oder Skriptdatei generiert werden. | 1 | Registrierung |
CMDDIA | Steuert die Anzeige des integrierten Texteditors bei den Befehlen BEMEDIT und SFÜHRUNG und die Anzeige bestimmter Dialogfelder in AutoCAD-basierten Produkten. | 1 | Registrierung |
CMDECHO | Legt fest, ob Eingabeaufforderungen und Eingaben während der Ausführung der AutoLISP-Befehlsfunktion zurückgegeben werden. | 1 | Nicht gespeichert |
FILEDIA | Unterdrückt die Anzeige von Dialogfeldern zur Dateinavigation. | 1 | Registrierung |
LEGACYCODESEARCH | Steuert, ob bei der Suche nach ausführbaren Dateien auch der Startordner des Programms einbezogen wird. | 0, kann von einem CAD-Administrator gesperrt werden | Registrierung |
NOMUTT | Unterdrückt die Anzeige von Meldungen, wenn die Meldungen ansonsten nicht unterdrückt werden würden. | 0 | Nicht gespeichert |
ORTHOMODE | Beschränkt Mauszeigerbewegungen auf die Lotrechte. | 0 | Zeichnung |
OSMODE | Legt fortlaufende Objektfangmodi fest. | 4133 | Registrierung |
SECURELOAD | Legt fest, ob ausführbare Dateien nur aus vertrauenswürdigen Ordnern geladen werden dürfen. | 1, kann von einem CAD-Administrator gesperrt werden | Registrierung |
TEXTEVAL | Steuert, wie Text, der mithilfe von TEXT (bei Verwendung von AutoLISP) oder -TEXT eingegeben wurde, ausgewertet wird. | 0 | Nicht gespeichert |
TRUSTEDPATHS | Gibt an, welche Ordner die Berechtigung zum Laden und Ausführen von Dateien mit Code haben. | Variiert, kann von einem CAD-Administrator gesperrt werden | Registrierung |