Wie führt man die Sekundärentwicklung von CAD Autolisp durch?

王林
Freigeben: 2024-01-04 10:18:30
nach vorne
1347 Leute haben es durchsucht

So führen Sie die Sekundärentwicklung von CAD Autolisp durch

;;;Lampe T4

(defun C:T4206()

Der Benutzer gibt den T4206-Ausführungsbefehl (ohne Parameter) ein, um das nachfolgende Programm zu laden und sofort auszuführen.

(graphscr)

(setvar „cmdecho“ 0)

;;;Befehlszeilenanzeige ist ausgeschaltet

(setq P1(getpoint „nBitte geben Sie die Platzierungsposition der Lampe an (T4 206,5 mm 6W):“))

;;;Legen Sie einen Einfügepunkt P1 und einen Rückkehrpunkt fest

(Befehl „-INSERT“ „D:/YZ_ZCAD/TK/DGT/T4206.dwg“ „S“ „1“ P1 „0“)

Beim Ausführen von CAD-Standardbefehlen können Sie „-“ vor dem Befehl hinzufügen (siehe CAD-Befehle), um den Befehl direkt in der Befehlszeile auszuführen, ohne ein Dialogfeld zu verwenden.

Wenn das Programm ausgeführt wird, können Sie das Dialogfeld nicht zur Bedienung verwenden. Sie können das Symbol „-“ vor dem Befehl hinzufügen oder die Variable FILEDIA zur Steuerung verwenden. Es gibt auch einige Sonderfälle, die mit anderen Methoden kontrolliert werden können.

(setvar „cmdecho“ 1)

;;;Befehlszeilenanzeige ist aktiviert

(Prinz)

;;;Fazit

)

;;;Fügen Sie den obigen Text in LISP ein und speichern Sie ihn unter einem beliebigen englischen Namen

Nach dem Speichern der Datei können wir AP verwenden, um die Datei in CAD zu laden.

;; Führen Sie den Befehl T4206 aus, um den Einfügebefehl auszuführen (bestätigen Sie die Existenz der Datei)

Meiner persönlichen Meinung nach halte ich die VBA-Entwicklung für bequemer als die LISP-Entwicklung. Um LISP zu erlernen, müssen Sie nur Grundkenntnisse beherrschen und müssen sich nicht eingehend damit befassen. Die LISP-Dialogfeldentwicklung (DCL) ist viel komplizierter als VBA. Manchmal müssen wir jedoch LISP-Funktionen verwenden, um VBA-Funktionen auszuführen. Im AutoCAD-Hilfedokument gibt es eine speziell für Entwickler bereitgestellte Hilfe, die viele detaillierte Inhalte enthält. Viele Redakteure nutzen auch Ressourcen direkt aus diesen Dokumenten. Ich schlage vor, dass Sie einen Blick darauf werfen, es könnte Ihnen helfen.

CAD-Sekundärentwicklung und Modifikation von LISP

(defun c:dz (/ oce1 n1 zn h1 sxh1 p1)

(vl-load-com)

(setq oce1 (getvar „cmdecho“))

(setvar „cmdecho“ 0)

(setq ms (vla-get-modelspace

(vla-get-activedocument (vlax-get-acad-object)) Diese Codezeile wird verwendet, um das Objekt des aktuell aktiven Dokuments in AutoCAD abzurufen. Es verwendet die VLAX-Schnittstelle (Visual LISP ActiveX) von AutoCAD, ruft das AutoCAD-Anwendungsobjekt über die Funktion vlax-get-acad-object ab und verwendet dann die Methode vla-get-activedocument, um das Objekt des aktuell aktiven Dokuments abzurufen. Auf diese Weise können wir verschiedene Vorgänge am aktuellen Dokument ausführen, z. B. auf seine Eigenschaften zugreifen, Objekte ändern usw. Diese Codezeile kommt in der LISP-Programmierung von AutoCAD sehr häufig vor und ist bei der Arbeit mit Dokumentobjekten sehr wichtig

)

)

(wenn qz

()

(setq qz "")

)

(wenn hz

()

(setq hz "")

)

(initget "c")

(setq nqz (getstring (strcat "nBitte geben Sie das Präfix

/c (leer): " ))) ein

(Kond

((= nqz "c") (setq qz ""“))

(T (if (/= nqz "")(setq qz nqz)))

)

(setq hz "")

(if (not (setq n1 (getint "nBitte geben Sie die Startsequenznummer ein

: ")))

(setq n1 1)

)

(setq zn 1)

(if (not (setq h1 (getreal "nBitte geben Sie die Texthöhe an

: ")))

(setq h1 2,5)

)

(setq sxh1 (strcat qz (itoa n1) hz)) ist ein gängiger LISP-Ausdruck. In diesem Ausdruck sind qz, n1 und hz Variablen, und durch Verketten ihrer Werte wird eine neue Zeichenfolge sxh1 erstellt. Ich erkläre Ihnen genau, was dieser Ausdruck bedeutet. - qz ist eine Variable, die ein Präfix darstellt und eine Zeichenfolge speichert, z. B. „Präfix“. - n1 ist eine ganzzahlige Variable, die einen numerischen Wert wie 10

speichert

(setq p1 (getpoint "nBitte geben Sie den Einfügepunkt an: "))

(while (/= p1 nil)

(setq p1 (vlax-3d-point p1))

(setq txt (vla-addtext

ms

sxh1

p1

h1

)

)

(setq

n1 (+ n1 zn)

sxh1 (strcat qz (itoa n1) hz)

p1 (getpoint „nBitte geben Sie den nächsten Einfügepunkt an:“)

)

)

(setvar "cmdecho" oce1)

(vlax-release-object ms)

(Prinz)

)

CAD-Sekundärentwicklungs-LISP-Experte schreibt ein Programm

Ändern Sie es wie folgt:

(defun c:sdd (dwg)

(setq dwg (getfiled „Pfad und Dateinamen auswählen“ „“ „Dwg“ 1))

(if (wcmatch dwg "* ####-##-## ##:##.dwg")

(setq dwg (substr dwg 1 (vl-string-search " " dwg)))

Gegeben eine String-Variable „dwg“, können wir „(setq dwg (substr dwg 1 (- (strlen dwg) 4)))“ verwenden, um sie zu verarbeiten. Die Funktion dieser Codezeile besteht darin, die letzten vier Zeichen der Zeichenfolge „dwg“ abzuschneiden und das Ergebnis der Variablen „dwg“ neu zuzuweisen. Dies kann durchgeführt werden, um Dateierweiterungen aus Dateinamen oder anderen Kennungen zu entfernen. Durch diese Codezeile können wir die Zeichenfolge „dwg“ so ändern, dass sie bestimmte Anforderungen oder Formate erfüllt.

)

(setq dwg (strcat dwg " " (menucmd "M=$(edtime,$(getvar,date),YYYY-MO-DD HH:MM)") ".dwg"))

(Befehl "_.saveas" "" dwg)

(Prinz)

)

Das obige ist der detaillierte Inhalt vonWie führt man die Sekundärentwicklung von CAD Autolisp durch?. 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