Heim > Computer-Tutorials > Computerwissen > Bringen Sie sich selbst bei, wie man Lisp-Programme für CAD schreibt

Bringen Sie sich selbst bei, wie man Lisp-Programme für CAD schreibt

王林
Freigeben: 2024-01-08 14:02:12
nach vorne
1304 Leute haben es durchsucht

So programmieren Sie Lisp selbst in CAD

Zwei Befehle erstellt: Verstecken und Anzeigen.

Ich habe es einfach geschrieben, aber es hat nicht alle Funktionen. Sie können es nach Belieben verwenden

Kopieren Sie den folgenden Code und erstellen Sie acad.lsp im ersten Layer-Ordner des CAD-Installationsverzeichnisses und es kann automatisch geladen werden:

; Geben Sie den Befehl hidsel in der Befehlszeile ein und wählen Sie dann die Grafikelemente aus. Dadurch werden die nicht ausgewählten Elemente in die ausgeblendete Ebene geändert

(defun C:hidsel(/ all; alle Grundelemente

xs; nicht ausgeblendete Grundelemente

yc;Elemente ausblenden

n nam dat)

(setvar „CMDECHO“ 0); Befehlsecho ausschalten

(Befehl "_layer" "n" "Ebene vorübergehend ausblenden""")(Befehl "_layer" "off" "„Ebene vorübergehend ausblenden"“ "")

(setvar „CMDECHO“ 1)

(setq all (ssget "x")); select all

(setq xs (ssget)); nicht ausgeblendete Grundelemente auswählen

(setq n -1 yc all); versteckte Grundelemente bedienen

(Wiederholen Sie (sslength xs)

(setq n (+ n 1))

(setq nam (ssname xs n)); Gibt den Namen des N-ten Grundelements zurück

(setq yc (ssdel nam yc))

)

(setq N -1);hide

(Wiederholen (sslength yc)

(setq N (+ n 1))

(setq nam (ssname yc n)); gibt den Namen des N-ten Grundelements zurück

(setq dat (entget nam));DAT speichert die N-ten Elementdaten

(entmod (subst (cons 8 „Temporär ausgeblendete Ebene“) (Assoc 8 dat) dat)); Verstecke die yc-Sammlung

)

(setq all nil xs nil yc nil n nil nam nil dat nil);

(Prinz)

)

;Alle Grundelemente anzeigen

(defun c:shoal(/ all n nam dat)

(setq all (ssget "x")); select all

(setq N -1);hide

(Wiederholen (sslength all)

(setq N (+ n 1))

(setq nam (ssname all n)); Gibt den Namen des N-ten Grundelements zurück

(setq dat (entget nam));DAT speichert die N-ten Elementdaten

(entmod (subst (cons 8 "0") (Assoc 8 dat) dat)); die yc-Sammlung ausblenden

)

(setvar „CMDECHO“ 0)

(BEFEHL "PURGE" "LA" "Ebene vorübergehend ausblenden" "Y" "Y" "")

(setvar „CMDECHO“ 1)

(setq all nil n nil nam nil dat nil); gelöschter Datenspeicher

(Prinz)

)

Was ist die Funktion von Lisp in CAD? Wie verwende ich es? Wenn ich es im Detail verstehen kann, gibt es zusätzliche Punkte

Lisp selbst ist ein Entwicklungsprogramm, das zu CAD gehört. Es bietet einige einfache Funktionsberechnungen, der Rest ist für die Zeichenfunktionen von Autocad bestimmt. Das LISP-Programm ähnelt der gespeicherten Prozedur in der Datenbank und kann CAD-Grafiken stapelweise verarbeiten und zeichnen.

Lisp zu lernen ist sehr einfach. Sie müssen nur die Verwendung einiger Hauptbefehle beherrschen. Außerdem müssen Sie das Anweisungsformat sehr sorgfältig studieren, sodass Sie sich diese nicht merken müssen.

LISP laden

1. Sie können den Befehl APPLOAD verwenden, dann die LISP-Datei suchen, die Sie laden möchten, und sie laden.

2. Sie können die LISP-Datei aus dem Dateimanager in das Grafikfenster von ACAD ziehen oder laden

3. Nach Verwendung der Befehlszeile kann auch der tatsächliche Pfad (load „c:\temp\xxx.lsp“) eingegeben werden.

Anderes: Für ein LSP-Programm (was auf defun folgt, ist ein Befehl oder eine Funktion. Im Allgemeinen sollte das Programm eine Eingabeaufforderung haben. Wenn nicht, sind die Wörter nach der Kennung c: Befehle, die unter ACAD verwendet werden können und eingegeben werden können Direkt nach COMMAND: können Sie es ausführen.

So programmieren Sie in mehreren CAD-Programmen in LISP-Sprache

AutoLISP-Sprache ist eine Programmiersprache, die auf der gewöhnlichen LISP-Sprache basiert und um viele für CAD-Anwendungen geeignete Funktionen erweitert wurde. Es handelt sich um eine interpretierende Wertesprache, die langsam und schwer geheim zu halten ist. Sie kann mit jeder Textbearbeitungssoftware bearbeitet und im Nur-Text-Format gespeichert werden. Zum Beispiel:

(setq i 1); das heißt, der Wert von Code i ist 1

(Befehl „KREIS“ '(0 0) 100); Befehl zeichnet einen Kreis mit einem Radius von 100 am Koordinatenursprung.

Alle Komponenten in der AutoLISP-Sprache werden in Form von Funktionen angegeben und es gibt keine Anweisungskonzepte oder andere grammatikalische Strukturen. Beim Ausführen eines AutoLISP-Programms werden einige Funktionen ausgeführt und dann andere Funktionen aufgerufen. Zum Beispiel:

(setq pt1 (getpoint"nBitte wählen Sie den mittleren Einfügepunkt aus"))

(Befehl „KREIS“ pt1 100); Befehlen Sie diesem Einfügepunkt, einen Kreis mit einem Radius von 100 zu zeichnen

AutoLISP drückt Daten und Programme in einer einheitlichen Tabellenstruktur aus, sodass Programme als Daten verarbeitet und Daten auch als Programme ausgeführt werden können.

Zum Beispiel: eine gerade Linie, Startpunktkoordinaten (0 0), Endpunktkoordinaten (1000 0), Ebene 0, Farbe 1 [rot] Dies sind einige Daten einer geraden Linie, wie man sie ausführt und in sie umwandelt Der Programmcode lautet wie folgt:

(entmake (list '(0 . "LINE") '(8 . "0") '(62 . 1) '(10 0 0) '(11 1000 0)))

Sie können die Daten visuell anzeigen oder sie in die Befehlszeile von AutoCAD einfügen, um oben die gewünschte gerade Linie zu zeichnen.

Der Programmausführungsprozess in der AutoLISP-Sprache ist der Prozess der Verarbeitung von Funktionswerten, und die Funktion der Funktion wird im Prozess der Verarbeitung von Funktionswerten realisiert. In AutoCAD können alle Objekte als aus unzähligen Punkten zusammengesetzt betrachtet werden. Jeder Punkt hat seine eigenen Koordinaten. Die Funktion der Funktion besteht darin, die Werte dieser Punkte zu berechnen und auf der Grundlage der erhaltenen Werte Urteile zu fällen.

Die Hauptkontrollstruktur der AutoLISP-Sprache ist rekursiv. Der Einsatz von Rekursion macht die Programmierung einfach und leicht verständlich. Zum Beispiel:

(setq &k1 (entsel)); Objekt auswählen

(setq &k1 (car &k1)); Grafikelemente extrahieren

(setq #g1 (entget &k1)); Attributliste abrufen

(setq c0 (cdr (assoc 0 #g1))); Holen Sie sich den primitiven Namen

Das Obige wird einzeln aufgeschrieben. Es kann wie folgt geschrieben werden:

(setq c0 (cdr (assoc 0 (entget (car (entsel)))))); einfach und leicht zu verstehen

Da Autolisp einfach und unkompliziert ist, können Sie schnell loslegen. Nach dem Schreiben eines Programms kann die Zeicheneffizienz erheblich verbessert werden. Das berühmte [Tianzheng]-Plug-In ist ein guter Helfer beim Zeichnen.

Das Autolisp-Programm weist auch Mängel auf, z. B. das Extrahieren von Koordinaten. In diesem Fall gibt es Einschränkungen. Die Koordinatenwerte der Normalkoordinaten 1 und -1 sind gleich Die Positionen der Grafiken sind unterschiedlich, was zu Schwierigkeiten bei der Berechnung der Koordinaten führt. Daher ist es am besten, die VLAX-Funktion zum Extrahieren von Koordinatenwerten zu verwenden.

Das obige ist der detaillierte Inhalt vonBringen Sie sich selbst bei, wie man Lisp-Programme für CAD schreibt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:docexcel.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage