• Dieses Forum ist die maschinengenerierte Übersetzung von www.cad3d.it/forum1 - der italienischen Design-Community. Einige Begriffe sind nicht korrekt übersetzt.

Skript, Lisp, Makro und Aktionen: Welche Unterschiede?

ing.dir

Guest
Es wird allen gut sein und sich entschuldigen, wenn das Thema bereits behandelt wurde, aber ich habe sowohl hier als auch im Netz gesucht, und ich habe keine klare Vorstellung davon gemacht.
Ich finde mich auf einer Reihe von Dateien die gleichen Operationen laufen, so suchte ich einen Weg, alles zu automatisieren und zu optimieren. Nun, in meinem Fall erkannte ich, dass ich mit dem Stock-Recorder und einem Skript lösen kann, um die Ordnerdateien wiederum zu öffnen und das erstellte Makro auszuführen.

Im Allgemeinen habe ich jedoch nicht verstanden, was der Unterschied zwischen den verschiedenen Merkmalen ist. Die Idee, die ich tat, war:
- Skripte sind die einfachste Version, es ist eine Liste von Befehlen, die in Sequenz laufen
- die Lispe sind das komplexeste Werkzeug und sie erstellen Sie durch eine bestimmte Computersprache, die es ermöglicht, mehr artikulierte Operationen zu erstellen
- Makros scheinen mir ähnlich zu komplizierteren Skripten, zum Beispiel, um Nachrichten in Operationen einzufügen. werden aus einer Folge von Handlungen hergestellt und kann erstellt werden oder mit der im Managementpanel aufgezeichneten Stimme oder das Schreiben der Struktur in visueller Basis

Bestätigen Sie die Idee, die ich bisher gemacht habe?
aber vor allem, helfen Sie mir zu verstehen, wenn Sie verschiedene Werkzeuge verwenden?
Danke.
 
die lisp ist eine Programmiersprache (in Wirklichkeit wäre der vollständige Name autolisp, eine Variante von lisp speziell für autocad).
die lisp nicht mehr komplexe Makros, interagiert mit der Design-Datenbank und Sie können gehen, um die Eigenschaften jedes einzelnen Objekts der dwg zu erhalten (ändern-create).
und mit diesen machen Berechnungen, Entscheidungen, Extrakte usw.
Ich gebe Ihnen ein sehr grobes Beispiel:
Sie haben zwei gekippte Linien zwischen ihnen von x Grad (Sie wissen nicht, dass es gibt, um Video).
Bilder, um 4 Zeilen zu erstellen, die die beiden gekippt genau zu 1/5 von jedem von ihnen kombinieren. Koordinatengesetze beginnen und enden jeder Zeile, lesen ihre Länge, teilen sie für 5, berechnen die Koordinaten von Punkten bei 1/5 jeder der schrägen Linien, erstellen Sie die Linie am ersten Fünftel jeder, dann die zweite, die dritte so weiter.
Natürlich kann 1/5 eine Variable sein, so dass Sie fragen können, wie viele Teile Sie teilen können, so dass, sobald die Routine in 5 Teile, eine andere Deziduous, die in 7 Teile usw. teilen sollte.

Dies, um Sie verstehen zu lassen, dass lisp leitet alle Eigenschaften des Wesens, auf dem es funktioniert, so können Sie uns auf.
mit Makros und Skripten ist dies nicht erlaubt.
ein Skript ist tatsächlich ein Satz von Makros auf mehreren Zeilen, in einer externen Datei eingeschlossen.
ein Makro ist auf einer einzigen Zeile und Sie können es nur von einem Icon anrufen.
Skripte und Makros interagieren sehr wenig mit dem Benutzer und können für repetitive Aktionen verwendet werden (Typ "Einsetzen des Objekts aus->a und dann drehen sie in Punkt 0.0, und Farbe ändern sie).
mit Lisp im Gegenteil das allgemeine Kriterium festlegen und uns Berechnungen machen (wenn das Objekt Text ist dann ändern Farbe und bewegen, fragen, wie viel; wenn es eine gestrichelte Linie in n Teilen ist und dreht die einzelnen Teile der Ecke Sie mich für jeden von ihnen fragen).

Tut mir leid, der riesige Post
 
Ich möchte hinzufügen, dass es die autolisp "base" gibt, das heißt die, die seit den ersten Versionen von autocad vorhanden ist, die ausschließlich von einem Texteditor (Typ Block Notes) geschrieben werden könnte. von autocad 14 (wenn nicht erro!) wurde eine neue Version eingeführt, abgeleitet von vital-lisp. mit dieser neuen Version wurde die Visuallisp eingeführt; die sehr hilft Programmierung, da es Ihnen erlaubt, das Schritt-für-Schritt-Programm zu führen... um zu sehen, wo es Programmierfehler gibt. Gleichzeitig wurden Befehle eingeführt, die es Ihnen ermöglichen, die gleichen Dinge (und noch mehr Dinge)... mit einer deutlich höheren Geschwindigkeit durchzuführen.
eine Sprache namens dcl wurde auch eingeführt, die es Ihnen ermöglicht, interaktive Fenster zu erstellen, mit Tasten und Optionen zu wählen.
nicht um den Wirkstoff zu erwähnen... dies erlaubt Ihnen, unvorstellbare Dinge zu tun... aber es ist definitiv komplex: nur für erfahrene Programmierer.
 
Zuletzt bearbeitet:
... und den Diesel, wo wir ihn hinlegen? Es gibt auch diese Sprache.

(defun c:acadmode)
(setvar "modemacro"
(sing)
" [imath](Substr.[/imath](getvar,clayer),1.8)"
"[imath](wenn,[/imath](getvar,orthomode), orto)"
"[imath](wenn,[/imath](Snapmode, Snap)
OSM:[imath](Substr.[/imath](getvar,osmode),1,3)"
" $(getvar,dimstyle)"
"[imath](wenn,[/imath](=,$(getvar,mode),0),"
"[imath](wenn,[/imath](=,$(getvar,cvport),1), p)
"
)
)

)

Dies ist ein Beispiel für diesel Sprache, die (mittels der lisp), die Modemakro-Variable.
Insbesondere dieser Befehl ermöglicht es Ihnen, die Situation des aktiven Osnap auf der unteren linken, orth-Modus etc. zu haben.

Wir sagen, es war nützlich vor einigen Versionen... wenn Autocad auf Doss gedreht und hatte weniger Informationen für den Benutzer zur Verfügung.... aber es war nur ein Beispiel zu machen.

die Dieselsprache kann auch nützlich sein, um die in den "Datenfeldern" ausgedrückten Werte "manipulieren":

ein my design namens a-nomeclient-23-800.dwg, wenn ich ein Datenfeld mit:
[imath](Substr.[/imath](Getvar, Dwgname)[imath]([/imath](Strlen,$(getvar,dwgname)),9),6)

Ich bekomme '23-800', so dass ich den Rest des Dateinamens löschen und kann es leicht in meine Tabellen einfügen, mit der Gewissheit, dass Sie aktualisieren, wenn ich Kunden ändern.

ps.
Es war nur für Vollständigkeit... nicht sicher, Verwirrung zu schaffen, @ing.dir !
 
Dank allen für Ihre Antworten muss ich alles ruhig wiederholen, aber ich würde sagen, dass ich jetzt ein klares Bild von der Situation habe.
Ich habe beschlossen, die kartographische Datenbank für Tage einzurichten und ich muss die Blöcke der verschiedenen Dateien explodieren. Ich finde, ich mache verschiedene Operationen immer gleich für so viele Dateien und ich nutze es, um zu verstehen, wie man Dinge optimiert anstatt wie ein Maultier zu arbeiten.
 
Danke, danke. Ich habe es heruntergeladen, auf jeden Fall in der Zukunft möchte ich versuchen, zumindest die Grundlagen zu lernen.
 
in der Zukunft möchte ich versuchen, zumindest die Grundlagen zu lernen.
wenn Sie anfangen zu lernen, wird es Sie fangen, für seine Macht und für die Aussichten es öffnet.

Wenn ich Ihnen sagte, dass es eher trivial ist, einen Lisp zu schreiben, dass, auf einer offenen Datei gestartet, ist:
den Dateinamen nehmen;
alle Blöcke in dieser Datei suchen.
einer nach dem anderen explodiert sie;
die ursprünglichen Blöcke beseitigt;
speichert die Datei, indem Sie am Ende des Namens den Suffix "-exploded" hinzufügen
:
 
wenn Sie anfangen zu lernen, wird es Sie fangen, für seine Macht und für die Aussichten es öffnet.

Wenn ich Ihnen sagte, dass es eher trivial ist, einen Lisp zu schreiben, dass, auf einer offenen Datei gestartet, ist:
den Dateinamen nehmen;
alle Blöcke in dieser Datei suchen.
einer nach dem anderen explodiert sie;
die ursprünglichen Blöcke beseitigt;
speichert die Datei, indem Sie am Ende des Namens den Suffix "-exploded" hinzufügen
:
Es ist genau das, was ich versuche zu tun, und nach ein paar Tagen des Kampfes, ich glaube, ich erkannte, dass es keine andere Weise als eine Lispe zu schreiben.
Ich schaffte es, etwas Ähnliches mit einem Skript zu tun, aber ich kann die Blöcke nicht explodieren, weil der "previous" Befehl funktioniert durch Schreiben in der Kommandozeile, aber nicht innerhalb des Skripts, halluzinieren. Das Ganze ist kompliziert durch die Tatsache, dass ich zuerst alle Blöcke neu definieren muss sonst einmal explodierte Ende auf Schicht 0 (Burst dauert mehr Zeit, um zu explodieren und xplode mit geerbter Option Ich weiß nicht warum, aber einige Blöcke senden sie ohnehin auf Null; Darüber hinaus sind sie alle in tausend Stücken, die ich in der redefiniting.

Können Sie mir sagen, ob es ein gültiges Beispiel dafür gibt, dass ich nur als Ausgangsbasis verwenden kann?
 
ein kleines Update, auch wenn Sie ein bisschen aus dem Thema gehen: unter Bezugnahme auf einige Code gefunden, um einige lisp, die tatsächlich funktionieren richtig, sind erstaunlich in ihrer Einfachheit.
Ich habe ein Minimum an Programmier-Basen, die ich in letzter Zeit mit Python wieder aufgenommen habe, so grob ich mich selbst ausrichten kann, aber für jetzt kann ich nur bewegen, indem ich bereits Codes vermasseln.
Zufriedenheit ist jedoch enorm, wenn Sie herunterladen bereits lisp gemacht, denken Sie an einen Weg, um Ihr Leben zu vereinfachen, aber wenn Sie Ihre Hand setzen, erkennen Sie das enorme Potenzial.
 
Wenn nicht, autocad (nicht gstarcad, progecad oder zwcad), kann auch Python-Codes ausführen...
Aber hier sage ich es und hier leugne ich es...
Wenn Sie jedoch bereits eine Infarination dieser Sprache haben, versuchen Sie es zu vertiefen.
 
Ich werde versuchen, mich selbst zu informieren, aber es ist immer noch ein sehr begrenztes Wissen, meistens muss ich nach Codes suchen, die bereits gemacht wurden, auch weil ich nicht oft autonom schreiben kann, aber zumindest weiß ich, dass ich eine Vorstellung davon habe, was ich tue.
Für den Rest denke ich, dass es wert ist, ein bisschen von dem Führer zu lesen, dass ich hier gemeldet wurde, sogar um zu verstehen, was in den Skripten, die um sind.
 
Wenn nicht, autocad (nicht gstarcad, progecad oder zwcad), kann auch Python-Codes ausführen...
Aber hier sage ich es und hier leugne ich es...
Wenn Sie jedoch bereits eine Infarination dieser Sprache haben, versuchen Sie es zu vertiefen.
Ich glaube nicht. oder zumindest, nicht native. vielleicht mit einem zusätzlichen Plugin
 

Statistik des Forums

Themen
58.521
Beiträge
499.056
Mitglieder
104.110
Neuestes Mitglied
ChristianR

Zurzeit aktive Besucher

Keine Mitglieder online.
Zurück
Oben