Zum Inhalt springen

Javascript »AI-Turtle-L-Paser« für Adobe Illustrator 2023

Das Javascript »AI-Turtle-Paser_bin.jsx« erlaubt das automatisierte Zeichnen in Illustrator aufgrund des Lindenmayer-System (L-System).

(Info:) Es gibt für die Turtle Graphics eine noch schnellere, kürzere Schreibweise. Das Javascript »AI-Turtle-L-Paser« für Adobe Illustrator 2023 oder älteren Versionen nutzt diese für das automatisierte Zeichnen aufgrund des Lindenmayer-System, das auch »L-System« genannt wird. Es ist eine mathematische Beschreibung, das 1968 von dem ungarischen Biologen Aristid Lindenmayer für die Theorie biologischer Entwicklungen vorgestellt wurde. Heute werden L-System für die Erstellung und realitätsnaher Pflanzen in 3D benutzt. Das Javascript »AI-Turtle-Paser_bin.jsx« liest (parst) eine Textdatei ein, die ein L-System enthält, und zeichnet per Turtle Graphics dieses dann als Vektordatei, also auflösungsunabhängig, im Illustrator.

(Hilfe:) Sie wollen oder können nicht selbst programmieren? Sie brauchen kurzfristig ein Javascript für eine Automatisierung für ein aktuelles Problem in Illustrator oder einem anderen Adobe Programm? Dann helfe ich Ihnen gerne als JavaScript-Entwickler mit meiner jahrzehntelang Programiererfahrung.
Schreiben Sie mir einfach und unverbindlich per Kontaktformular.

Beispiel für das Javascript »AI-Turtle-Paser_bin.jsx«, das das das automatisierte Zeichnen auf Grund des Lindenmayer-System (L-System) im Illustrator ausführt.
Beispiele für das Javascript »AI-Turtle-Paser_bin.jsx«, das das automatisierte Zeichnen mit dem Lindenmayer-System (L-System) in Adobe Illustrator ausführt.

Inhaltsverzeichnis

Bestandteile des L-Systems

Erstens besteht das L-System aus einer festen Zahl von Parametern, wobei der Grad wie ein Countdown herunter gezählt wird.
Zweitens besitzt ein L-System mindestens eine Regel, die die Bewegungen der Turtle beschreibt. Die dabei verwendetet Ersetzungsregeln wie »F: F+F« werden vom Computer (Javascript) rekursiv, also selbstaufrufend, ausgeführt. So können sehr komplexe Formen durch sehr einfache Regeln beschrieben werden.
Da die Turtle Graphics kein »Gedächtnis«, also Speicher selbst besitzt, wurden drittens mit den eckigen Klammern »[« und »]« ein einfacher Speicher in Form von sogenannten Stacks eingeführt. Dabei legt die öffnende Klammer die aktuelle Position der Turtle auf den Stack ab und die schließende Klammern holt den Wert wieder zurück und löscht es im Stack. (Update:) Desweiteren können durch Substitutionen die Schreibweise eines L-System noch weiter vereinfacht werden ((siehe:) unten). Schließlich können Sie falls nötig mithilfe des Startaxioms und einer einfachen Regel den Startwinkel für das L-Systerm frei einstellen ((siehe:) unten).

Die Parameter im L-System

Im Javascript »AI-Turtle-Paser_bin.jsx« sind folgende Parameter für das Lindenmayer-System (L-System) vorgesehen:
M = 100 // Schrittlänge
L = 90 // Linker Winkel
R = 90 // Rechter Winkel
C = 0 // % Chance = Zufall für Schrittlänge
D = 0 // % Zufall für Winkel
S = 1 // Skalierung pro Grad
G = 2 // Grad
A = F // Startaxiom

(Hinweis:) Hinweise zu den Parametern des L-Systems

  • Die zwei schrägen Striche »//« stehen wie in JavaScript für einen Kommentar. Diese sind optional und werden jedoch für die bessere Lesbarkeit bzw. Verständnis der Parameter empfohlen.
  • L und R: Die Winkelwerte dürfen zwischen -360 und 360 Grad liegen.
  • C und D: Die beiden Zufallszahlen bestimmen die Abweichung der Schrittlänge bzw. der Winkel, die in Prozent zwischen 0 und 100 geschrieben werden.
    Ist die Prozentzahl positiv, dann kann die Abweichung per Zufall addiert oder subtrahiert werden. (Beispiel:) Mit der Schrittlänge M = 100 und dem Zufall für die Schrittlänge C = 10 ergibt sich eine zufällige Schrittlänge zwischen 90 bis 110, also -10 (%) bis +10 (%).
    Eine negative Prozentzahl wird immer nur von der Schrittlänge oder dem Winkel subtrahiert. (Beispiel:) Mit der Schrittlänge M = 100 und dem Zufall für die Schrittlänge C = -10 ergibt sich eine zufällige Schrittlänge zwischen 90 bis 100, also -10 (%) bis 0 (%).
  • A: Das optionale Startaxiom ist die erste Grundregel und wird selten benötigt, zum Beispiel um einen Startwinkel festzulegen.

Die Ersetzungsregeln

Die Ersetzungsregeln beschreiben den Lauf der Turtle. Großbuchstaben stehen dabei für die Bewegung (Turtle.move()) und die Zeichen »+« und »« für die Drehung (Turtle.rotate())mit dem Uhrzeigersinn bzw. gegen den Uhrzeigersinn. Die Werte, wie weit wird bewegt oder gedreht, wurden vorher durch die Parameter bestimmt.
Die Regel »F:F+F« sagt aus, dass jedes »F« durch »F+F« ersetzt wird:
Für Grad 0 lauten die Bewegungen: »F«.
Im Grad 1 lauten die Bewegungen: »F+F«.
Für Grad 2 lauten die Bewegungen:»F+F+F+F«.
Mit den Parametern M = 100 und R = 90 ergibt das ein Quadrat mit der Kantenlänge von 100 Einheiten.
Mit der gleichen Regel »F:F+F« jedoch mit den Parametern M = 151.41, R = 144 und G = 3 erhält man einen Drudenfuß.

Zwei Beispiele für das Javascript »AI-Turtle-Paser_bin.jsx«, das das automatisierte Zeichnen aufgrund des Lindenmayer-System (L-System) im Illustrator ausführt.
Zwei Beispiele für das Javascript »AI-Turtle-Paser_bin.jsx«, das das automatisierte Zeichnen aufgrund des Lindenmayer-System (L-System) im Illustrator ausführt.

Substitutionen

(Update:) Neben den Ersetzungsregeln gibt es auch noch die Substitutionen. Diese besondere Ersetzungen werden mit dem Zeichen »>« geschrieben. Der Einsatz der Substitutionen erlaubt eine einfachere, schnellere Schreibweise.

// Regeln
L : +R-L-R+
R : -L+R+L-
// Substitutionen
L > +F-F-F+
R > -F+F+F-

Jedes »L« wird per Substitutionen durch »+F-F-F+« und jedes »R« durch »-F+F+F-« ersetzt. (siehe:) Datei »Turtle-L-System-Bsp37_Sierpinki-Kurve.txt«, in den Beispielen, die Teil des folgenden Downloads sind.

Startwinkel für das L-System einstellen

(Tipp:) (Update:) In der Turtle Graphics zeigt die Turtle nach Norden (oben), wenn der Winkel 0° beträgt. Es kann je nach L-System nötig sein, einen anderen Startwinkel als 0° zu haben. – Dieser Trick geht über das normale L-System hinaus; ist jedoch sehr praktisch. – So gehen Sie vor:

(1:) In den Parametern schreiben Sie das Startaxiom zum Beispiel als A = wF.

(2:) In den Ersetzungsregeln schreiben Sie dann als erste Regel w : 45.

Dadurch dreht sich die Turtle auf den Startwinkel 45°. (siehe:) Datei »Turtle-L-System-Bsp02_Quadrat2.txt« in den Beispielen, die Teil des folgenden Downloads sind.

(Download:) Javascript »AI-Turtle-L-Paser« für Adobe Illustrator 2023 downloaden

RECHT Für den privaten Gebrauch ist das Javascript kostenlos. Wollen Sie es kommerziell einsetzen, dann benötigen Sie eine Lizenz, die auf Ihre Bedürfnisse speziell angepasst werden kann. Fragen Sie mich unverbindlich per Kontaktformular. Copyright: Die Javascripts sind urheberrechtlich geschützt. Enthaftungserklärung: Der Einsatz der folgenden Javascripts geschieht auf eigene Gefahr. Der Autor übernimmt keine Haftung für eventuell auftretende Schäden.
(Hilfe:) Probleme beim Download?

(Download:) Das Javascript »AI-Turtle-L-Paser_bin-jsx« (0,2 MByte). Enthalten im ZIP-Archiv (Entpacker für macOS oder Windows) sind das verschlüsselte, binäre Javascript und 42 Beispiele als Textdatei (L-System) zum selber ausprobieren. Wenn Sie an dem unverschlüsselten Quellcode interessiert sind, dann schreiben Sie mir bitte via Kontaktformular.

(Hinweis:) Das Javascript »AI-Turtle-Paser_bin.jsx« heißt »Parser«, weil es die Parameter und die Ersetzungsregel aus einer Textdatei einliest und diese in Turtle Graphics Befehle übersetzt. Die grafische Darstellung wird dann automatisch vom Javascript »AI_turtlegraphics_bin.jsx« durch Interpretation der Turtle Graphics Befehle übernommen.

Verwenden des Javascripts »AI-Turtle-Paser_bin.jsx«

(A:) Voraussetzung für das korrekte Funktionieren ist, dass die beiden Javascripts »AI_turtlegraphics_bin.jsx« und »AI-Turtle-L-Parser_bin.jsx« im gleichen Ordner liegen.
(B:) Ziehen Sie das Javascript »AI-Turtle-L-Parser_bin.jsx« auf den Illustrator.
(C:) Wählen Sie im folgenden Dialog eine Textdatei aus, die ein L-System enthält.
(D:) Bestätigen Sie die Auswahl mit »OK«.
(E:) Als Ergebnis sehen Sie dann das von der Turtle Graphics gezeichnete Objekt.
(Hinweis:) Soweit möglich verbindet das Javascript automatisch die Strecken zu einem Objekt.

Anwendung des Javascripts »AI-Turtle-Paser_bin.jsx«, das das automatisierte Zeichnen auf Grund des Lindenmayer-System (L-System) im Illustrator erlaubt.
Anwendung des Javascripts »AI-Turtle-Paser_bin.jsx«, das das automatisierte Zeichnen auf Grund des Lindenmayer-System (L-System) im Illustrator erlaubt.

Das Schreiben eigener L-Systeme

Im Unterordner »Turtle-L-System-Beispiele« finden Sie 40 Beispiele für L-Systeme vom einfachen Quadrat bis zum komplexen Baum. Wie oben beschrieben, besteht ein L-System aus zwei Teilen: den Parametern und den Ersetzungsregeln.

(Tipp:) Tipps

  • Nutzen Sie das erste Beispiel »Turtle-L-System-Bsp01_Quadrat1.txt« als Vorlage, speichern Sie es unter einem anderen Namen ab und verändern Sie die Parameter und Regeln.
  • Geben Sie immer alle Parameter für das L-System an.
  • Zum Testen sollten Sie immer mit einem kleinen Grad beginnen. Weil die Anzahl der Rekursionen können je nach den Ersetzungsregeln schnell sehr hohe Werte erreichen; was den Illustrator besonders unter (Win:) Windows überfordern kann.

Literatur über das Lindenmayer-System

Wenn Sie tiefer in Thema des Lindenmayer-System (L-System) einsteigen wollen, dann schauen Sie sich die folgenden älteren Bücher an:

  • H.-O. Peitgen, H. Jürgens, D. Saupe: »Chaos and Fractals«, Springer, 1992
  • R. Scholl, O. Pfeiffer: »Natur als fraktale Grafik«, Markt&Technik, 1991

Über das Lindenmayer-System im Internet

ENDE

(Hilfe:) Wenn Sie eine Funktion zum Automatisieren in (AI:), (PS:), (IC:), (ID:) oder (FM:) benötigen, jedoch nicht selbst programmieren, dann sprechen Sie mich an. Ich übernehme gerne kleine Aufträge: zum Kontaktformular.