X1 Packaging Editor
Table of Contents
ALLGEMEINE BESCHREIBUNG
Die Hauptkomponenten eines Modells sind:
Required
Die Hauptvariablen eines Modells (z. B. Length (Länge), Width (Breite), Depth (Tiefe)), die im Frontend zur Skalierung verwendet werden. Es kann auch andere wichtige Variablen haben (z. B. Margin (Rand des svg), Thickness (Dicke des 3D-Modells) usw.)
Optionals
Andere Variablen, die bei der Erstellung des Modells helfen. Sie können Zahlen, Formeln oder andere benötigte Informationen enthalten. Diese Variablen können in 2 Kategorien unterteilt werden:
normal: für die Erstellung des Modells verwendet
internal: für Merkmale des Verpackungssystems.
Die meisten der normalen Variablen sind die gleichen, die in den Dateien der Verpak-Software definiert sind. Manchmal können hier neue Variablen definiert werden, um den Prozess der Erstellung des Modells zu unterstützen. (z. B. ein Wert/Formel wird x-mal verwendet, also wird er in einer Variablen gespeichert)
Die aktuellen internal-Variablen sind:
Show_Overall_Dimensions: Zeigt/versteckt die Werte der Hauptvariablen des Modells (length (Länge), width (Breite), depth (Tiefe))
Show_Order_Number: Zeigt/versteckt die Auftragsnummer im Produktions-PDF
Order_Number: Die Auftragsnummer im Produktions-PDF
Show_Bleed: Blendet den Beschnitt des Modells ein/aus
Bleed_Outer_Stroke_Color: Die Farbe des Anschnitts
Bleed_Inner_Stroke_Color: Die Art der Hintergrundfarbe der Stanzung
Bleed_Offset: Der Abstand zwischen dem Anschnitt und der Stanzung
Bleed_Width: Die Breite des Anschnitts
Hide3D: Dient zum Ausblenden von 2D-Elementen im 3D-Modell
Show_Icc_Color: Blendet CMYK-Farben ein/aus
Designer_Measurement_Width: Messung des Modells auf der X-Achse, wird für Designer verwendet
Desinger_Measurement_Height: Messung des Modells auf der Y-Achse, wird für den Designer verwendet
In_Designer: Blendet die Messlinien auf Y-Achse ein/aus, wird im Designer verwendet
Show_Trimbox_Dimensions: Zeigt/verbirgt die Trimbox des Modells
Reversed_Bleed: Definiert die Ausrichtung des Anschnitts
0 - für Beschnitt gegen den Uhrzeigersinn
1 - für Beschnitt im Uhrzeigersinn
Linked_3D_Model: Der Name, der von der 3D-Soft verwendet wird, um mit dem 2D-Modell zu verknüpfen (sollte derselbe Name wie das Modell sein, ohne .json-Erweiterung)
Global_Trimbox: Schaltet die Verwendung der Trimbox in den Global Helpers ein/aus
Die Werte der internen Variablen dürfen nicht verändert werden, da dies zu Verhaltensänderungen des Verpackungssystems im Frontend führt. Sie können innerhalb des Editors geändert werden, solange sie nicht gespeichert werden.
SvgWidth
Hier können Sie die Formel für die Breite des Modells eingeben. Wenn das Feld leer gelassen wird, berechnet der Editor die Breite automatisch anhand der Elemente, aus denen das Modell besteht.
SvgHeight
Hier können Sie die Formel für die Höhe des Modells eingeben. Wenn das Feld leer gelassen wird, berechnet der Editor die Breite automatisch anhand der Elemente, aus denen das Modell besteht.
FormatWidth
Dies ist die Formel, die das im Frontend verwendete Breite definiert. Es sollte die Breite des Modells sein (wie SvgWidth, aber ohne den Rand des Modells). Wenn das Feld leer ist, wird es automatisch wie folgt berechnet: SvgWidth - 2 * Margin, wobei Margin (Rand) die Variable Margin (Symbol M) des Modells ist.
FormatHeight
Wie FormatWidth, nur für die Höhe.
Unit
Verwendete Maßeinheit. (mm oder cm);
Limits
Angenommen, Sie möchten verhindern, dass der Frontend-Benutzer die Breite höher als die Länge einstellt. Dies können Sie tun, indem Sie ein Limit definieren. Alles, was Sie tun müssen, ist die Formel ($W <= $L
) und die Warnmeldung "Breite muss schmaler sein als die Länge" zu setzen. Im Frontend wird dem Benutzer die Warnmeldung angezeigt, wenn das Ergebnis der Formel ($W <= $L
) false (nicht wahr) ist.
Pages
Ein Modell kann eine oder mehrere Seiten haben. Eine Seite enthält mehrere Entitäten:
Offset: Der Offset ist der “Ursprung” der Seite. Das bedeutet, dass dieser Punkt (0,0) in Koordinaten darstellt und alle Punkte, die in der Seite definiert sind, sich darauf beziehen.
Cuts: enthält alle Einschnitte des Modells. Dies sind die blauen Linien in der svg. Ein Schnitt wird gebildet aus:
Start: Definiert einen Startpunkt des Schnitts (X- und Y-Achse) relativ zum Offset der Seite
Lines: Linien werden nur durch den Endpunkt definiert, da der Editor davon ausgeht, dass der Startpunkt einer Linie der Endpunkt des zuvor erstellten Elements ist (oder der Startpunkt des Schnitts, wenn die aktuelle Linie das erste Element in diesem Schnitt ist)
Circles: Kreise sind definiert wie Lines. Hat aber mehr Eigenschaften, die spezifisch für Kreise sind
Ellipses: Ellipsen sind definiert wie Lines. Hat aber mehr Eigenschaften, die spezifisch für Ellipsen sind
Folds: enthält alle Falze des Modells. Sie haben die gleichen Eigenschaften wie Cuts, aber ihre Farbe ist rot.
Bleeds: enthält die Beschnitte des Modells. Sie haben die gleichen Eigenschaften wie Cuts, aber ihre Farbe ist grün.
No Print Area: enthält die nicht druckbaren Bereiche des Modells. Sie haben die gleichen Eigenschaften wie die Cuts, aber ihre Farbe ist grün.
Helpers: diese sind in der Regel für den internen Gebrauch. Sie implementieren die Funktionen des Verpackungssystems und einige sind an die internen optionalen Variablen gebunden.
Global Helpers
Diese sind, wie die Helfer einer Seite, für den internen Gebrauch bestimmt.
Commands
Ein Befehl ist eine Funktion des Systems, die den Benutzer bei der Erstellung einer Verpackung unterstützt. Ihr Zweck ist es, die Berechnung von mathematischen Formeln zu automatisieren oder ein Ergebnis automatisch zu berechnen, das eine komplexe Reihe von Schritten erfordern würde, um dieses Ergebnis zu erhalten.
Die Befehle nutzen interne Strukturen, um den gewünschten Effekt zu erzeugen:
INTERNE STRUKTUREN
Point
Er wird, wie in der euklidischen Geometrie, durch ein geordnetes Paar (x, y) dargestellt. Die x/y-Werte können mit Konstanten, Variablen des Modells oder Formeln gefüllt werden.
Line (Segment)
Sie wird durch den Anfangs- und den Endpunkt definiert. Sie kann auch als Segment interpretiert werden. Im Editor wird sie als gepunktete Linie zwischen den 2 Punkten dargestellt.
Construction Line
Entspricht der Line, wird aber als "unendliche" gepunktete Linie dargestellt.
Circle
Er wird durch den Mittelpunkt und einen Radius definiert.
Ein Befehl hat 2 Elemente:
Name: Ein aussagekräftiger Name für den Befehl, der unter den anderen im Editor angelegten Befehlsnamen eindeutig sein muss
Parameters: Eine Liste von spezifischen Parametern
Jeder Befehl hat einen speziellen Parameter namens “Reference”, der eine ID darstellt. Um das Ergebnis eines Befehls zu verwenden, muss dessen Referenz-ID verwendet werden, wie jede andere Variable auch. Daher muss der Wert dieses Parameters unter den anderen deklarierten Befehlen eindeutig sein.
VERWENDUNG VON BEFEHLEN
Die Befehle sind nicht an die im Abschnitt Pages definierten Elemente gebunden. Stattdessen verwenden die Pages-Entitäten die Befehle, um die Verpackung zu erstellen, indem sie ihr Ergebnis über die Reference-ID verwenden.
ein Befehl wird vorher deklariert und kann keine Entitäten verwenden, die im Abschnitt "Pages" erstellt wurden.
ein Befehl kann die in den Abschnitten Required und Optionals deklarierten Variablen oder das Ergebnis eines vor ihm erstellten Befehls verwenden.
Die durch einen Befehl konstruierten Elemente (Punkte, Linien, Bögen usw.) werden im endgültigen Modell nicht gerendert. Um diese Elemente sehen zu können, muss das Modell im Editor mit aktivierter Option "Additionals mode" gerendert werden.
Die Befehle verwenden den Offset der Page-1. Daher ist jedes Ergebnis relativ zu diesem Offset.
Die Befehle geben in der Regel ein Ergebnis zurück. Dieses Ergebnis kann eine Zahl oder ein Container mit mehreren Teilergebnissen sein. Zum Beispiel gibt der Befehl “reblend” 3 Punkte und einen Winkel zurück.
Um die Ergebnisse des Containers zu verwenden, müssen Sie die Reference-ID des Befehls verwenden und dann einen Punkt (.) und den Namen des gewünschten Teilergebnisses anhängen. Das allgemeine Schema zum Abrufen eines Teilergebnisses in einem Container lautet:
$[Reference_ID_command].[sub_result_1].[sub_result_1_1].[sub_result_1_1_1]...
Nehmen wir an, Sie haben einen Befehl, dessen Reference-ID auf FooBarCommand gesetzt ist. Nehmen wir außerdem an, dass dieser Befehl einen Container mit mehreren Teilergebnissen zurückgibt: einen Punkt namens fooPoint und eine Linie namens barLine. Um auf die X-Koordinate des resultierenden Punktes zuzugreifen, würden wir verwenden: $FooBarCommand.fooPoint.x.
Hinweis: Die Linien der X- und Y-Achse des kartesischen Koordinatensystems sind vordefiniert und Sie können sie verwenden. Ihre Reference-ID lautet $ox
für die X-Achse und $oy
für die Y-Achse.
Einige der im Editor verfügbaren Befehle sind:
addVariable
Erzeugt eine Variable, ähnlich den im Abschnitt Optionals definierten.
Parameter:
- Wert: Konstanten, Variablen von Formeln
point
Definiert eine Instanz der Point-Struktur.
Parameter:
X: Der Wert für die X-Achse: Konstanten, Variablen von Formeln
Y: Der Wert für die Y-Achse: Konstanten, Variablen von Formeln
Rückgabewert: Instanz des Point
Zugängliche Teilergebnisse:
x: der eingestellte Wert für das X-Feld
y: der eingestellte Wert für das Y-Feld
Beispiel: $fooPoint.x
pointDistance
Berechnet den euklidischen Abstand zwischen 2 Punkten.
Parameter:
Point 1: ID des ersten Punkts
Point 2: ID des zweiten Punkts
Rückgabewert: Ein integer/float-Wert
line
Erzeugt eine Instanz von Line.
Parameter:
Start Point: ID des Startpunkts (point) (muss eine Instanz der Point-Struktur sein)
End Point: ID des Endpunkts (point) (muss eine Instanz der Point-Struktur sein)
Rückgabewert: Instanz der internen Struktur von Line
Zugängliche Teilergebnisse:
point: Wert des ersten Punkts (Instanz von Point)
point2: Wert des zweiten Punkts (Instanz von Point)
Beispiel: $barLine.point
circleRadius
Erzeugt eine Instanz von Circle.
Parameter:
Center Point: ID des Mittelpunkts (muss eine Instanz der Point-Struktur sein)
Radius: Radius des erzeugten Kreises (int | float)
Rückgabewert: Instanz von Circle
Zugängliche Teilergebnisse:
center: Wert des Center Point Felds (Instanz von Point)
radius: Wert des Radius Felds (int|float)
Beispiel: $fooCircle.center
linesAngle
Berechnet den Winkel zwischen 2 Linien im Bogenmaß. (falls Schnittpunkt vorhanden)
Parameter:
First Line: ID der ersten Linie
Second Line: ID der zweiten Linie
Rückgabewert: Winkel zwischen den beiden Linien. (Bogenmaß)
linePointAngleDistance
Bei gegebenem Startpunkt wird der Endpunkt der Linie in einem gegebenen Abstand und Winkel erzeugt und eine durch diese Punkte definierte Linie zurückgegeben.
Parameter:
Point: ID des Startpunkts
Angle: Winkel der resultierenden Linie relativ zur X-Achse. (im Bogenmaß)
Distance: der Abstand zwischen Start- und Endpunkt (int | float)
Return value: Instanz von Line
bisector
Liefert die Winkelhalbierende des spitzen Winkels von 2 Linien.
Parameters:
Line: ID der ersten Linie
Line: ID der zweiten Linie
Return value: Instanz von Line, die die Winkelhalbierende darstellt
con
Liefert eine construction line (Konstruktionslinie), die durch Versetzen einer anderen gegebenen Linie erzeugt wurde.
Parameters:
Line: ID der Linie
Offset: der Offset der resultierenden Linie (int | float)
Return value: Instanz von Line
rotateLine
Gibt eine um einen gegebenen Winkel und Punkt gedrehte Linie zurück.
Parameters:
Line: ID der Linie
Point: ID des Drehpunkts, um den die Drehung ausgeführt wird
Angle: der Winkel im Bogenmaß
Return value: die Instanz der als Parameter angegebenen Linie, aber gedreht.
INTER
Gibt den Schnittpunkt von 2 Linien zurück.
Parameter:
Line: ID der ersten Linie
Line: ID der zweiten Linie
Return value: Instanz von Line
circleLineInter
Liefert den Schnittpunkt eines gegebenen Kreises und einer Linie.
Parameters:
Circle: ID des Kreises (muss eine interne Circle-Struktur sein)
Line: ID der Linie
Intersection Point: der Schnittpunkt, der vom Befehl zurückgegeben werden soll (wenn die Linie tangential zum Kreis ist, gibt es nur einen Schnittpunkt, daher gibt jeder Wert des Parameters diesen Punkt zurück)
Return value: Instanz von Point
REBLEND
Erzeugt einen weichen Übergang am Schnittpunkt von zwei Linien. Es wird ein Bogen mit einem gegebenen Radius so erzeugt, dass die zwei Linien tangential zum Bogen verlaufen.
Parameters:
Line 1: ID der ersten Linie
Line 2: ID der zweiten Linie
Reblend Radius: der Radius für den Bogen (Float)
Return value: Container mit weiteren Teilergebnissen
Erreichbare Teilergebnisse:
center: der Punkt, der den Mittelpunkt des Reblend-Bogens darstellt (Instanz von Point)
firstPoint: einer der Punkte an den Extremitäten des Überblendbogens (Instanz von Point)
secondPoint: einer der Punkte an den Extremitäten des Überblendbogens (Instanz von Point)
angle: Der Winkel des Überblendbogens (im Bogenmaß)
Beispiel: $reblend.center | $reblend.angle
BLEND3
Erzeugt einen glatten Übergang am Schnittpunkt von 3 Linien, indem ein Bogen so erzeugt wird, dass die 3 Linien den Bogen tangieren.
Parameters:
Line 1: ID der ersten Linie
Line 2: ID der zweiten Linie
Line 3: ID der dritten Zeile
Ergebniswert: Container mit weiteren Teilergebnissen
Erreichbare Teilergebnisse:
center: der Punkt, der den Mittelpunkt des Überblendbogens darstellt (Instanz von Point)
firstPoint: einer der Punkte an den Extremitäten des Überblendungsbogens (Instanz von Point)
secondPoint: einer der Punkte an den Extremitäten des Überblendungsbogens (Instanz von Point)
radius: der Radius des Überblendungsbogens (int | float)
Beispiel: $blend3.firstPoint | $reblend.radius
Hilfsfunktionen:
Eine Funktion führt eine Aufgabe für eine gegebene Eingabe (Liste von Argumenten) aus und gibt eine Ausgabe zurück, die auf den mit der Eingabe durchgeführten Berechnungen basiert.
Im Editor sind mehrere Funktionen definiert, die als Hilfsmittel bei der Erstellung eines Modells verwendet werden können. Diese Funktionen können verwendet werden, um mathematische Ergebnisse zu berechnen oder Abkürzungen zu verwenden, um den Prozess der Modellerstellung zu erleichtern.
Verwendung:
Eine Funktion wird innerhalb einer Formel aufgerufen, die dann das Ergebnis zurückgibt, das vom System weiterverwendet wird. Dies bedeutet, dass sie innerhalb von Variablen, Befehlen, Grenzwerten usw. verwendet werden kann.
Beispiel für einen Aufruf: [name_of_function](arg1, arg2, …, argN)
wo
name of function: der Name der Funktion, die verwendet werden soll
arg1, arg2, …, argN: Liste der Parameter/Argumente, die von der aufgerufenen Funktion abhängt
Im folgenden Abschnitt zur Beschreibung der Funktionen werden wir davon ausgehen, dass eine expression eine Kombination/Abfolge von Konstanten, Variablen, Funktionen und Operatoren ist, die vom System ausgewertet wird und ein Ergebnis zurückgibt, das als Value betrachtet wird. Daher wird ein expression am Ende als value berechnet.
Verfügbare Funktionen:
step
Input:
expression, value_1, test_value_1, value_2, test_value_2, … value_n, test_value_n, [else_value]
Wobei n eine beliebige Zahl ist, else_value ist ein optionales Argument als expression
Beschreibung: Wird verwendet, wenn geprüft werden soll, ob ein Wert Teil eines gegebenen Wertebereichs ist. Die Funktion prüft von links nach rechts, ob der Wert des ersten Arguments strikt kleiner ist als ein test_value_i (unter Verwendung des Operators <) aus einer Liste von Paaren, die als Argumente angegeben sind. Wenn die erste Prüfung wahr ist, gibt sie value_i als Ergebnis zurück und beendet die Ausführung der Funktion. Optional kann am Ende ein abschließender else_value angegeben werden, der zurückgegeben wird, wenn keine der Prüfungen True ergibt.
Output:
value_i, wobei i der Index der ersten test_value_i Prüfung ist true
value_i, wobei i is the index of the first test_value_i check is true
else_value (if provided), if none of the above is true
Example: step($Thickness, 1, 0.5, 2, 1, 3, 2.5, 5)
Returns: 1, if $Thickness < 0.5, 2, if $Thickness < 1, 3 if $Thickness < 2.5, or 5 otherwise
stepUp
Beschreibung:
Wie Step, aber die Prüfung wird mit dem “<=”-Operator durchgeführt
eCase
Input:
value_1, test_1, value_2, test_2, …, value_n, test_n, else_case,
wobei n eine beliebige Zahl und else_case ein Ausdruck ist.
Beschreibung:
Implementiert if-else case, gibt unterschiedliche Ergebnisse zurück, je nachdem, welcher Fall gewählt wird ("true"). Die Argumente bestehen aus einem oder mehreren Paaren von (value, test) und einem abschließenden else_case-Wert, die wie folgt verwendet werden:
value:
beliebiger Ausdruck
test:
beliebiger Ausdruck, der einen booleschen Wert (True/False) zurückgibt
Die Paare werden von links nach rechts ausgewertet. Der erste Test, der True zurückgibt, beendet die Prüfungen und gibt den Wert zurück.
Output:
value_i, wobei i der Index des ersten test_i ist, der true ist
else_case, wenn keiner der obigen Punkte zutrifft
Beispiel: eCase(10, $Thickness < 1, 15, $Thickness == 1.5, 20, $Thickness <= 3, 50)
Liefert: 10 if $Thickness < 1, 15 if $Thickness == 1.5, 20 if $Thickness <= 3 or 50 otherwise
eMinMax:
Input:
value_to_check, min, max
Beschreibung:
Prüft, ob das erste Argument in dem Intervall/Bereich [min, max] Werte liegt. Wenn ja, wird es zurückgegeben, ansonsten wird min oder max zurückgegeben, je nachdem, ob das Argument kleiner als min oder größer als max ist.
Output:
value_to_check, wenn value_to_check größer als oder gleich min und kleiner als oder gleich max ist
min, wenn value_to_check kleiner als min ist
max, wenn value_to_check größer als max ist
Beispiel: eMinMax($L + $W, 0.5, 3)
Liefert:
$L + $W, if $L + $W >= 0.5 and $L + $W <= 3
0.5, if $L + $W < 0.5
3, if $L + $W > 3
round
Input:
expression, [precision = 0]
Beschreibung:
Rundet den angegebenen Wert (expression) auf eine Genauigkeit (precision)
Output:
der gerundete Wert
ceil
Input:
expression
Beschreibung:
Brüche aufrunden, gerundet auf die nächsthöhere ganze Zahl
Output:
gerundete expression
floor
Input:
expression
Beschreibung:
Brüche abrunden, gerundet auf die nächstkleinere ganze Zahl
Output:
gerundete expression
eRound
Input:
expression, nearest
Beschreibung:
Rundet value/nearest auf 0, multipliziert dann mit nearest
Output:
Ergebnis der obigen Formel
Beispiel: eRound(10.7, 2)
Liefert: 10
eRoundDown
Input:
expression, precision
Beschreibung:
Rundet den Wert ab, indem es Folgendes berechnet: floor(espression/precision) * precision und den ganzzahligen Wert seiner (wie die Anwendung einer Untergrenze auf das Ergebnis) Wenn precisio 0 ist, wird floor(expression) zurückgegeben
Output: Ergebnis von oben
eRoundUp
Input:
expression, precision
Beschreibung:
rundet den Wert auf durch Berechnung von: ceil(expression/precision) * precision
Wenn die Genauigkeit 0 ist, wird ceil(expression) zurückgegeben
Output:
Ergebnis von oben
eTrunc
Input:
expression, precision
Beschreibung:
Schneidet den Wert des Arguments auf die Genauigkeit ab
Output:
Beschnittene ecpression
cos, sin, tan
Input:
expression im Bogenmaß
Beschreibung:
Berechnet den Kosinus/Sinus/Tangens des Ausdrucks
Output:
Kosinus/Sinus/Tangens des Ausdrucks
asin, acos, atan
Input:
expression
Beschreibung:
berechnet den Bogenkosinus/Sinus/Tangens des Ausdrucks
Output:
Arcus Kosinus/Sinus/Tangens des Ausdrucks
deg2rad
Input:
value
Beschreibung:
Konvertiert den Wert (Grad) in das Bogenmaß-Äquivalent
Output:
Wert im Bogenmaß
rad2deg
Input:
expression
Beschreibung:
Wandelt den Bogenmaßwert in den entsprechenden Wert in Grad um
Output:
Wert in Grad
min, max
Input:
value_1, value_2, …, value_n
Beschreibung:
Berechnet den minimalen/maximalen Wert der angegebenen Argumente
Output:
Minimal-/Maximalwert aus der Argumentenliste
sqrt
Input:
expression
Beschreibung:
Berechnet die Quadratwurzel aus dem Argument
Output:
Quadratwurzel der expression
abs
Input:
expression
Beschreibung:
Berechnet den Absolutwert des Arguments
Output:
Absolutwert des Ausdrucks
pow
Input:
expression
Beschreibung:
Berechnet den Exponentialausdruck der expressionm
Output:
Exponentiale Ausprägung der expression
intval
Input:
expression
Beschreibung:
Berechnet den ganzzahligen Wert der expression
Output:
Ganzzahliger Wert der expression
getSign
Input:
expression
Beschreibung:
Berechnet das Vorzeichen der expression
Output:
1: Wert ist positiv (>= 0)
-1: Wert ist negativ (< 0)
getIntersectLineLine
Input:
point_1_x, point_1_y, point_2_x, point_2_y, point_3_x, point_3_y, point_4_x, point_4_y
Beschreibung:
Berechnet den Schnittpunkt der zwei Geraden (falls er existiert): (point_1_x, point_1_y, point_2_x, point_2_y) und (point_3_x, point_3_y, point_4_x, point_4_y)
Output:
Container mit zwei Werten: intersection_point_x, intersection_point_y
Aufrufbar durch $result[0] und $result[1]
getIntersectLineCircle
Input:
point_1_x, point_1_y, point_2_x, point_2_y, arc_radius, arc_center_x, arc_center_y
Beschreibung:
Berechnet den/die Schnittpunkt(e) der Linie und des Kreises/Bogens (falls vorhanden)
Output:
Container mit zwei Werten:
0: erster Punkt der Kreuzung:
$result[0][‘x’], $result[0][‘y’]
1: zweiter Punkt der Kreuzung
$result[1][‘x’], $result[1][‘y’]
getLineLineAngle
Input:
point_1_x, point_1_y, point_2_x, point_2_y, point_3_x, point_3_y, point_4_x, point_4_y
Beschreibung:
Berechnet den kleinen Winkel (<=90) zwischen zwei Geraden
Output:
Winkel im Bogenmaß
eUnits
Input:
unit, result_M, result_I
Unit: string value, kann ‘M’ (für metrischessystem) oder ‘I’ (für imperiales system)
Beschreibung:
Liefert je nach unit argument den Wert result_M oder result_I
Output:
den entsprechenden Wert für die gewählte Einheit
EIN MODELL ERSTELLEN
Zum besseren Verständnis der Erstellung des Modells zeigen wir Ihnen, wie ein Basismodell implementiert werden kann - ein Rechteck, das Länge (length) und Breite (width) als erforderliche Variablen hat.
1.) Wenn Sie den Editor öffnen, ist standardmäßig bereits ein Standardmodell vorhanden, das alle Komponenten vordefiniert hat. Benennen Sie das neue Modell und drücken Sie "Speichern unter", um es zu erstellen.
2.) Legen Sie die Einheit (unit) für Ihr Modell fest (cm oder mm):
3.) Fügen Sie erforderliche Variablen hinzu: Länge (Length) and Breite (Width)
wo:
Symbol stellt den Variablenplatzhalter dar, der später in Formeln mit vorangestelltem $-Zeichen verwendet wird ($L, $W).
Value - Standardwert für diese Variable
Min - Mindestwert für diese Variable, der vom Frontend-Benutzer eingestellt werden kann
Max - Maximalwert, der vom Frontend-Benutzer eingestellt werden kann
4.) Fügen Sie optional variables hinzu, so wie wir es oben für die erforderlichen Variablen getan haben.
5.) Stellen Sie die Formeln für svgWidth und svgHeight ein, um zu definieren, wie groß das Modell ist:
In unserem Fall ist svgWidth 2 * Margin(left und right) + Length; SvgHeigth wird auf die gleiche Weise definiert.
6.) Öffnen Sie Pages > page-1 > offset und stellen Sie den gewünschten Offset für das Modell ein.
In unserem Fall ist der Ursprung der Seite der Punkt ($M,$M), wobei $M die Margin-Variable ist.
7.) Jetzt ist der Moment gekommen, in dem Sie die Einschnitte der Seite definieren können.
Standardmäßig hat das Modell einen leeren cut namens cut-1..
1.) Sie können ihn beliebig umbenennen, indem Sie nur Buchstaben, Ziffern, - und _ verwenden.
2.) Legen Sie den Startpunkt des Schnitts fest, indem Sie das Start-Tag bearbeiten.
3.) Fügen Sie neue Elemente hinzu (Linie, Kreis, Ellipse). Benennen Sie Ihre neuen Elemente und geben Sie die Formel für deren Endpunkt ein:
4.) Wie Sie sehen können, haben wir in der Formel für line-2 [line-1.x] und [line-1.y]. Das bedeutet, dass Sie die Formel nicht wiederholen müssen, sondern eine bestehende Formel verwenden können. In unserem Fall die Formel aus line-1. Dies ist nützlich, wenn Sie große Formeln haben.
5.) Wiederholen Sie den Schritt #3, bis Ihr Schnitt definiert ist.
8.) Für folds (Falze), bleeds (Anschnitte), no_print_area (Nichtdruckende Bereiche) machen Sie das Gleiche wie für cuts.
9.) Drücken Sie jedes Mal auf "Render Model", wenn Sie die an Ihrem Modell vorgenommenen Änderungen sehen möchten.
10.) Wenn Sie Ihr Modell speichern wollen, drücken Sie:
"Speichern", um das Modell in der aktuellen Datei zu speichern (wird in der Modelleingabe von oben auf der Seite angezeigt) ,
"Speichern unter", um Ihr Modell in einer neuen Datei zu speichern.
ERSTELLEN EINES MODELLS MIT BEFEHLEN (OPTIONAL)
Nehmen wir an, wir wollen eine Übergang an einer der Ecken dieses Rechtecks erstellen. Wir können die Befehle verwenden, um sie zu machen (es würde es schneller machen, wenn der Winkel zwischen den 2 Linien anders als 90 Grad sein würde). Wir wollen dafür den Befehl REBLEND verwenden. Hier sind die Schritte:
1.) Wiederholen Sie die ersten 6 Schritte aus dem Abschnitt "Erstellen eines Modells".
2.) Definieren Sie die Linien:
Wir benötigen zwei Linien für den REBLEND-Befehl. Wir beginnen damit, jeden Punkt jeder Linie zu definieren: PunktA, PunktB, PunktC
|
|
Nun die Linien: Line1, Line2
3.) Definieren sie den Übergang mit:
Wenn wir das Modell mit aktiviertem Modus "Additionals" rendern, erhalten wir dies:
Wir sehen nur die drei definierten Punkte, PA, PB, PC. Der Befehl reblend rendert keine Elemente, er speichert sie nur. Sie müssen sie manuell rendern, wenn Sie das Ergebnis sehen.
4.) Erzeugen Sie die rechteckige Form erneut, aber mit der Überblendung.
Wenn wir die Schnitte hinzufügen, fügen wir einen Kreis für die Überblendung ein. In unserem Fall wollen wir, dass der Kreis in der oberen linken Ecke eingefügt wird, ganz am Anfang.
Wir müssen den Start von cut-1 von (0, 0) auf einen der Punkte ändern, die sich aus dem reblend-Befehl ergeben. (weil der Überblendungsbefehl zwei Punkte zurückgibt - die Start-/Endpunkte des Überblendungsbogens)
Ich wähle als Startpunkt den zweiten Punkt der Überblendung, da ich den Rest der Schnitte im Uhrzeigersinn erstellen werde.
Dann erstellen wir den Kreis unter Verwendung der in reblend gespeicherten Variablen für den Mittelpunkt des Kreises und den Winkel. Der Radius sollte derselbe sein wie der, der im Überblendbefehl eingegeben wurde.
Wenn wir das Modell bis zu diesem Punkt rendern, können wir den Kreis sehen:
5.) Wiederholen Sie die restlichen Schritte:
Nun fahren wir damit fort, den Rest des Modells auf die gleiche Weise wie zuvor zu erstellen. Am Ende erhalten wir dies:
BENUTZERDEFINIERTE GRENZEN EINES MODELLS
Manchmal reichen die Min-/Max-Grenzen einer Hauptvariablen für das Modell nicht aus, so dass komplexere Grenzen erforderlich sind. Wir können verschiedene Anforderungen eines Modells validieren (z. B. "Länge" muss höher sein als "Breite") und eine benutzerdefinierte Fehlermeldung einstellen, die an den Benutzer zurückgegeben wird, wenn eine der Regeln verletzt wird. Der Abschnitt "Benutzerdefinierte Grenzen" des Modells befindet sich unter dem Namen "Grenzen" innerhalb des Modells.
Aufbau eines benutzerdefinierten Limits
1.) Name: eindeutige Kennung des Limits, meist als informativer Titel verwendet
2.) Error message: die Meldung, die dem Benutzer angezeigt wird
3.) Formula: logischer/boole'scher Ausdruck, der ausgewertet wird und das Ergebnis hat:
- 0 (false): die Validierung schlägt fehl, und die Fehlermeldung wird an den Benutzer zurückgegeben
- 1 (true): die Validierung ist erfolgreich
Der Ausdruck ist wie eine normale Formel, kann Referenzen auf Variablen des Modells (z. B. $L, $W), Operatoren, Konstanten usw. enthalten.
BEISPIELOPERATOREN
Logische Operatoren
Beispiel | Name | Ergebnis |
$a && $b ($a and $b) | And | True, if both $a and $b are true |
$a || $b ($a or $b) | Or | True, if $a or $b is true |
! $a | Not | True if $a is not true |
$a xor $b | Xor | True if either $a or $b is true, but not both |
Vergleichsoperatoren
$a == $b | Equal | True if $a is equal to $b after type juggling |
$a === $b | Identical | True if $a is equal to $b, and they are of the same type |
$a != $b | Not equal | True if $a is not equal to $b after type juggling |
$a !== $b | Not identical | True if $a is not equal to $b, or they are not of the same type |
$a < $b | Less than | True if $a is strictly less than $b |
$a > $b | Greater than | True if $a is strictly greater than $b |
$a <= $b | Less than or equal to | True if $a is less than or equal to $b |
$a >= $b | Greater than or equal to | True if $a is greater than or equal to $b |
Beispiele für Limits