Skip to main content
Skip table of contents

X3 Packaging Editor (X3 DE)

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:

CODE
$[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

 

 

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.