Skip to main content

FVA-Workbench KnowledgeBase

Hauptfunktionen

Berechnung

runCalcMethod()
Tabelle 18. Führt eine Berechnungsmethode (Rechenziel) aus.

runCalcMethod(methodID, compID, {options});

Parameter

Typ

Beschreibung

methodID

string

Eindeutige ID der auszuführenden Berechnungsmethode. Eine Liste mit allen Berechnungsmethoden finden Sie im Abschnitt Berechnungen im Scripting.

compID

int

Eindeutige ID der Komponente im Modell.

Die Gesamtsystemberechnung erfolgt immer auf der Getriebeeinheit (Hat immer die ID 1).

{options}

object

Wenn angegeben, wird ein Ausgabeverzeichnis mit den Rechenkern-Ausgabedateien erzeugt.

var options = {resultpath: path/to/results, createResultpath: true/false};

Rückgabewert

int

1 = Berechnung erfolgreich

0 = Berechnung abgebrochen

-1 = Fehler in der Berechnung

Mögliche Fehler

Rechenmethode existiert nicht.

Komponente existiert nicht.

Komponente ist mit der angegebenen Berechnungsmethode nicht berechenbar.



Beispiel 1 Gesamtsystemberechnung durchführen

1methodID = "001_SYSTEM_CALCULATION";
2var compID = 1;
3setAttr("gta_switch_iso_6336_2006", compID, true, EDAT);
4var status = runCalcMethod(methodID, compID);
5if (status == 1) {
6    println("Calculation was successful");
    } else {
7  println("Something went wrong");
    }

1

Variable methodID mit der ID für eine Gesamtsystemberechnung belegen.

2

Variable compID mit der ID der Getriebeeinheit belegen. Die ID der Getriebeeinheit ist immer 1.

3

Das Attribut mit der ID "gta_switch_iso_6336_2006" via setAttr() auf true setzten. Damit wird im Rahmen der Gesamtsystemberechnung eine Tragfähigkeitsberechnung nach ISO 6336 (2006) durchgeführt.

4

Gesamtsystemberechnung starten und Rückgabewert in der Variablen status speichern.

5

Wenn Rückgabewert in Variable status = 1, dann:

6

Ausgabe auf der Scripting-Konsole: "Calculation was successful".

7

Für jeden anderen Rückgabewert: "Something went wrong".

Beispiel 2 Lagerlebensdauerberechnung für ein einzelnes Lager durchführen.

methodID = "800_ROLLING_BEARING_LIFETIME";
var compID = 15;
runCalcMethod(methodID, compID);

Zugriff auf Attribute

getAttr()
Tabelle 19. Liefert den Wert eines Attributes.

getAttr(attrID, compID, EDAT/RDAT);

Parameter

Typ

Beschreibung

attrID

string

Eindeutige ID des Attributs.

compID

int

Eindeutige ID der Komponente im Modell.

EDAT/RDAT

Gibt an, ob der Eingabe- (EDAT) oder der berechnete Wert (RDAT) zurückgegeben werden soll.

Alternativ kann auch 1 (EDAT) oder 0 (RDAT) als Parameter angegeben werden.

Für weitere Informationen siehe Datenhaltung (EDAT/RDAT)

Rückgabewert

Wert des Attributs.

Mögliche Fehler

Fehlerhafte Attribut-ID Fehlerhafte Komponenten-ID.

Nur für Attribute vom Typ String, Integer, Double, Boolean, Array, Matrix.



Beispiel 1 Wert des Attributs Normaleingriffswinkel auf der Konsole ausgeben.

1let compID = getCompByType('cylindrical_mesh')[0];
2let value = getAttr("normal pressure angle", compID, EDAT);
3println(value);

1

Variable compID mit der Komponenten-ID der ersten Stirnradstufe im Modell belegen.

2

Variable value mit dem Eingabewert (EDAT) des Attributs normal pressure angle belegen.

3

Wert der Variable value auf dem Scripting Monitor ausgeben.

Beispiel 2 Werte des Arrayattributs statische Tragzahl auf der Konsole ausgeben.

1let compID = getCompByType('bearing')[0];
2let value = getAttr("static capacity", compID, RDAT);
3println(value[0]);
4println(value[1]);

1

Variable compID mit der Komponenten-ID des ersten Wälzlagers im Modell belegen.

2

Variable value mit dem berechneten Wert (RDAT) des Attributs static capacity belegen.

static capacity ist ein Arrayattribut und enthält einen Wert für jede Lagerreihe.

3

Den Attributwert für die erste Lagerreihe auf dem Scripting Monitor ausgeben.

4

Den Attributwert für die zweite Lagerreihe auf dem Scripting Monitor ausgeben.

setAttr()
Tabelle 20. Setzt den Wert eines Attributes.

setAttr(attrID, compID, value, EDAT/RDAT);

Parameter

Typ

Beschreibung

attrID

string

Eindeutige ID des Attributs.

compID

int

Eindeutige ID der Komponente im Modell.

EDAT/RDAT

Gibt an, ob der Eingabe- (EDAT) oder der berechnete Wert (RDAT) gesetzt werden soll. Alternativ kann auch 1 (EDAT) oder 0 (RDAT) als Parameter angegeben werden.

Mögliche Fehler

Fehlerhafte Attribut-ID.

Fehlerhafte Komponenten-ID.

Datentyp des Werts passt nicht zum Attribut.

Wert verstößt gegen die Constraints.



Beispiel 1 Wert des Attributs Öltemperatur löschen.

1var compID = 1;
2setAttr('temperature', compID, 90, EDAT);

1

Variable compID mit der Komponenten-ID der Getriebeeinheit belegen. Die Getriebeeinheit als Wurzelkomponente hat immer die ID 1.

2

Attribut temperature auf der Komponente 1 mit dem Eingabewert (EDAT) belegen.

Beispiel 2 Attribut FVA_54 auf true setzen. Das Attribut FVA_54 entspricht dem Schalter "Graufleckenberechnung nach FVA 54" im Eingabeditor.

1var compID = getCompByType('cylindrical_mesh')[0];
2setAttr('FVA_54', compID, true, EDAT);

1

Variable compID mit der Komponenten-ID der ersten Stirnradstufe im Modell belegen.

2

Attribut FVA_54 mit true (EDAT) belegen.

delAttr()
Tabelle 21. Löscht den Eingabewert (EDAT) des Attributs.

delAttr(attrID, compID);

Parameter

Typ

Beschreibung

attrID

string

Eindeutige ID des Attributs.

compID

int

Eindeutige ID der Komponente im Modell.

Rückgabewert

boolean

true wenn Wert gelöscht, sonst false.

Mögliche Fehler

Fehlerhafte Komponenten-ID.

Fehlerhafte Attribut-ID.



Beispiel 1 Wert des Attributs Öltemperatur löschen.

1delAttr('lubricant', 1);

1

Schmierstoff auf der Komponente Getriebeeinheit löschen.

getAttrProperty()
Tabelle 22. Liefert den Namen, Typ, Maßeinheit oder Formelzeichen eines Attributs.

getAttrProperty(attrID, compID, propertyID);

Parameter

Typ

Beschreibung

attrID

string

Eindeutige ID des Attributes im Modell.

compID

int

Eindeutige ID der Komponente im Modell.

propertyID

string

TYPE

Datentyp des Attributes.

NUMBER

Numerische Attribut-ID.

NAME

Name des Attributs.

UNIT_NAME

Einheit

SYMBOL

Formelzeichen

EDAT_VALUE

EDAT-Wert konvertiert als String.

RDAT_VALUE

RDAT-Wert konvertiert als String.

Rückgabewert

Eigenschaft des Attributs in der Sprache, in der die FVA-Workbench gestartet wurde.

Mögliche Fehler

Fehlerhafte Komponenten-ID

Fehlerhafte Attribut-ID

Attribut- und Komponenten-ID passen nicht zusammen.



Beispiel Attributeigenschaften des Attributs Zahnbreite auf einem Stirnrad mit der ID 8 abfragen.

1var compID = 8;
2var attributeID = 'face width';
3println('Name: ' + getAttrProperty(attributeID, compID, 'NAME'));
4println('Unit: ' + getAttrProperty(attributeID, compID, 'UNIT_NAME'));
5println('Symbol: ' + getAttrProperty(attributeID, compID, 'SYMBOL'));
6println('Value: ' + getAttrProperty(attributeID, compID, 'RDAT_VALUE'));

1

Variable compID mit der Komponenten ID 8 belegen.

2

Variable attributeID mit der ID des Attributs Zahnbreite belegen.

3

Namen des Attributs auf der Scripting Konsole ausgeben.

4

Einheit des Attributs auf der Scripting Konsole ausgeben.

5

Formelzeichen des Attributs auf der Scripting Konsole ausgeben.

6

Ausgabewert des Attributs auf der Scripting Konsole ausgeben.

Zugriff auf Komponenten

getCompProperty()
Tabelle 23. Liefert den Namen oder Typ einer Komponente.

getCompProperty(compID, propertyID);

Parameter

Typ

Beschreibung

compID

int

Eindeutige ID der Komponente im Modell

propertyID

String

TYPE - Komponententyp (z.B. cylindrical_mesh)

NAME - Namen der Komponente

Rückgabewert

String

Eigenschaft der Komponente

Mögliche Fehler

Fehlerhafte Komponenten-ID



Beispiel 1 Namen und Typ einer Komponente auf der Scripting Konsole ausgeben.

1var compID = 3;
2println(getCompProperty(compID,'TYPE'));
3println(getCompProperty(compID,'NAME'));

1

Variable compID mit 3 belegen.

2

Komponententyp der Komponente 3 auf der Scripting Konsole ausgeben.

3

Komponentennamen der Komponente 3 auf der Scripting Konsole ausgeben.

Hinweis

In früheren Versionen der FVA-Workbench konnten über getCompProperty() die Eigenschaften IDENT_NO und DRAWING_NO abgefragt werden.

Die Zeichnungsnummer (comp_drawing_number) und die Identnummer (comp_ident_number) sind jetzt Attribute auf der jeweiligen Komponente und können über setAttr() und getAttr() gesetzt bzw. ausgelesen werden.

Beispiel Zeichnungsnummer auslesen: getAttr("comp_drawing_number", 3, EDAT);

setCompProperty()
Tabelle 24. Setzt den Namen einer Komponente.

setCompProperty(compID, propertyID);

Parameter

Typ

Beschreibung

compID

int

Eindeutige ID der Komponente im Modell

propertyID

String

NAME - Namen der Komponente

Mögliche Fehler

Fehlerhafte Komponenten-ID



Beispiel Namen einer Komponente ändern.

var compID = 3;
setCompProperty(compID, "NAME", "New component name");
getCompByType()
Tabelle 25. Liefert eine Liste (Array) aller Komponenten IDs eines bestimmten Typs. Falls im Modell keine Komponenten des angegeben Typs enthalten sind, wird ein leeres Array (Länge = 0) zurückgeliefert.

getCompByType(compType);

Parameter

Typ

Beschreibung

compType

string

Typ der Komponente (z.B. "bearing")

Rückgabewert

array

Array mit den Komponenten IDs

Mögliche Fehler

Komponenten-Typ existiert nicht.



Beispiel 1 Bei allen Wälzlagern im Getriebemodell den Eingabetyp auf "Steifigkeit" setzten.

1let bearings = getCompByType("bearing");

2for (i=0; i < bearings.length; i++){
3	setAttr("bearing data type", bearings[i], 2, EDAT);
    }

1

Variable bearings mit einem Array aller Wälzlager IDs im Getriebe belegen.

2

for-Schleife, die so oft durchlaufen wird, wie das Array bearings Elemente besitzt.

3

Setzt das Attribut "Eingabetyp" für jedes Lager auf "Steifigkeit" (Wert =2 siehe auch Datentyp Combo-Attribut).

getSubComponents()
Tabelle 26. Liefert die Unterkomponenten bzw. verbundene Komponenten einer Hauptkomponente. Der Rückgabewert ist ein Array mit den Komponenten-IDs der Unterkomponenten.

getSubComponents(compID, subCompType);

Parameter

Typ

Beschreibung

compID

int

ID der Hauptkomponente

subCompType

string

Komponententyp der abzufragenden Unterkomponente z.B. "cylindrical_mesh".

Rückgabewert

array

Array mit den ID's der Unterkomponenten. Existieren keine Unterkomponenten, wird eine leeres Array zurückgegeben.

Mögliche Fehler

Der abgefragte Komponententyp existiert nicht auf der Hauptkomponente.

Die Hauptkomponente existiert nicht.



Beispiel 1 Räder einer Stirnradstufe abfragen

1var stageID = 3;
2var gearIDs = getSubComponents(stageID, "general_gear");
3println(gearIDs[0]);
4println(gearIDs[1]);

1

Variable stageID enthält die ID der Stirnradstufe.

2

getSubComponents() schreibt ein Array mit den ID's der beiden Stirnräder in die Variable gearIDs.

3

Schreibt die ID des ersten Stirnrads auf die Konsole.

4

Schreibt die ID des zweiten Stirnrads auf die Konsole.

Abfragbare Subkomponenten
Tabelle 27. Von einer Stufe kann abgefragt werden

Komponente

Was genau wird abgefragt

getSubComponents(...)

Räder

Alle Räder der Stufe

stageID, "general_gear"

Spezifischer Radtyp, z.B. Kegelrad

stageID, "bevel_or_hypoid_gear"

Wellen

Alle Wellen der Stufe

stageID, "shaft"



Tabelle 28. Von einem Rad kann abgefragt werden

Komponente

Was genau wird abgefragt

getSubComponents(...)

Korrektur

Korrektur bei bestimmten Radtypen.

gearID, "gear_correction"

Welle

Welle, auf dem das Rad sitzt.

gearID, "shaft"

Gegenräder

Alle Gegenräder, die mit dem Rad kämmen.

gearID, "general_gear"

Stufen

Alle Stufen, in denen das Rad vorkommt.

gearID, "general_stage"

Stufenbezogene Zahnraddaten

weitere Informationen

Abstrakte Komponente, die die eingriffsbezogenen Daten eines Zahnrades enthält (z.B. Wälzkreisdurchmesser).

gearID, "stage_gear_data"

Gibt, wenn das Rad im Mehrfacheingriff ist, für jeden Eingriff ein Komponente von Typ stage_gear_data zurück.

gearID, "stage_gear_data", "STAGEID=3"

Wird als Option die ID der Stufe mitgegeben, (Hier Stufe mit ID 3) wird nur die Komponente vom Typ stage_gear_data, die zur angegebenen Stufe gehört, zurückgegeben .



Tabelle 29. Von einer Welle kann abgefragt werden

Komponente

Was genau wird abgefragt

getSubComponents(...)

Stufen

Alle Stufen, in denen die Welle vorkommt.

shaftID, "general_stage"

Räder

Alle Räder auf der Welle

shaftID, "general_gear"

Spezifischer Radtyp, z.B. Kegelrad

shaftID, "bevel_or_hypoid_gear"

Wälzlager

Alle, mit der Welle verbundenen Wälzlager.

shaftID, "bearing", "ANY"

Wälzlager, die auf der Welle sitzen.

shaftID, "bearing", "OUTER"

Wälzlager, die in der Welle sitzen.

shaftID, "bearing", "INNER"

Gleitlager

Alle mit der Welle verbundenen Gleitlager

shaftID, "slide_bearing", "ANY"

Gleitlager, die auf der Welle sitzen.

shaftID, "slide_bearing", "OUTER"

Gleitlager, die in der Welle sitzen.

shaftID, "slide_bearing", "INNER"

Belastung

Alle Belastungskomponenten (Kräfte) auf der Welle

shaftID, "force"

Kerbstelle

Alle Kerbstellen auf der Welle

shaftID, "notch"

Wellenkontur

Alle Konturen

shaftID, "contour", "ANY"

Alle Außenkonturen

shaftID, "contour", "OUTER"

Alle Innenkonturen

shaftID, "contour", "INNER"

Passfeder

Alle Passfedern auf der Welle

shaftID, "feather_key", "ANY"

Alle PF, bei denen die Welle das Innenteil ist.

shaftID, "feather_key", "INNER"

Alle PF, bei denen die Welle das Außenteil ist.

shaftID, "feather_key", "OUTER"

Kegelpressverband

Alle Kegelpressverbindungen auf der Welle

shaftID, "cone_interference_fit", "ANY"

Alle KPV, bei denen die Welle das Innenteil ist.

shaftID, "cone_interference_fit", "INNER"

Alle KPV, bei denen die Welle das Außenteil ist.

shaftID, "cone_interference_fit", "OUTER"

Mehrfachpressverband

Alle Mehrfachpressverbindungen auf der Welle

shaftID, "multiple_interference_fit", "ANY"

Alle MPV, bei denen die Welle das Innenteil ist.

shaftID, "multiple_interference_fit", "INNER"

Alle MPV, bei denen die Welle das Außenteil ist.

shaftID, "multiple_interference_fit", "OUTER"

Zylinderpressverband

Alle Zylinderpressverbindungen auf der Welle

shaftID, "interference_fit", "ANY"

Alle ZPV, bei denen die Welle das Innenteil ist.

shaftID, "interference_fit", "INNER"

Alle ZPV, bei denen die Welle das Außenteil ist.

shaftID, "interference_fit", "OUTER"

Steckverzahnung

Alle Steckverzahnungen auf der Welle

shaftID, "spline_connection"

Alle Zahnwellen auf der Welle

shaftID, "spline_shaft"

Alle Zahnnaben auf der Welle

shaftID, "spline_hub"Ko

Koppelung

Alle Koppelungen auf der Welle

shaftID, "clutch"



Tabelle 30. Von einem Wälzlager kann abgefragt werden

Komponente

Was genau wird abgefragt

getSubComponents(...)

Verbundene Komponenten

Alle mit dem Wälzlager verbundenen Komponenten

bearingID, "default", "ANY"

Mit dem Innenring verbundene Komponenten

(Wellen oder Gehäuse)

bearingID, "shaft", "INNER"

bearingID, "gear_casing" ,"INNER"

Mit dem Außenring verbundene Komponenten

(Wellen oder Gehäuse)

bearingID, "shaft", "OUTER"

bearingID, "gear_casing" ,"OUTER"

Lagerreihen

Lagerreihen sind Ergebniskomponenten, die erst nach erfolgreicher Berechnung abgefragt werden können.

bearingID, "bearing_row"



Tabelle 31. Von einem Gleitlager kann abgefragt werden

Komponente

Was genau wird abgefragt

getSubComponents(...)

Verbundene Komponenten

Alle mit dem Gleitlager verbundene Komponenten

slideBearingID, "default", "ANY"

Mit dem Innenring verbundene Komponenten

(Wellen oder Gehäuse)

slideBearingID, "shaft", "INNER"

slideBearingID, "gear_casing" ,"INNER"

Mit dem Außenring verbundene Komponenten

(Wellen oder Gehäuse)

slideBearingID, "shaft", "INNER"

slideBearingID, "gear_casing" ,"INNER"

Segmente

Segmente, Hydrostatische- und Hydrodynamische Taschen sind Ergebniskomponenten, die nur nach erfolgreicher Berechnung abgefragt werden können.

slideBearingID, "slide_bearing_segment"

Hydrostatische Taschen

slideBearingID, "hydrostatic_pocket"

Hydrodynamische Taschen

slideBearingID, "hydrodynamic_pocket"



Tabelle 32. Von einer Planetenstufe kann abgefragt werden

Komponente

Was genau wird abgefragt

getSubComponents(...)

Stirnradstufen

Alle Stirnradstufen in der Planetenstufe

planetaryStageID, "general_stage"

Nur die innere Stufe

planetaryStageID, "general_stage", "INNER"

Nur die äußere Stufe

planetaryStageID, "general_stage", "OUTER"

Räder

Alle Räder in der Planetenstufe

planetaryStageID, "general_gear"

Sonnenrad

planetaryStageID, "general_gear", "SUN_GEAR"

Planetenrad

planetaryStageID, "general_gear", "PLANET_GEAR"

Hohlrad

planetaryStageID, "general_gear", "RING_GEAR"

Wellen

Alle Wellen in der Planetenstufe

planetaryStageID, "shaft"

Sonnenwelle

planetaryStageID, "shaft", "SUN_SHAFT"

Planetenwelle

planetaryStageID, "shaft", "PLANET_SHAFT"

Hohlradwelle

planetaryStageID, "shaft", "RING_SHAFT"

Stegwelle

planetaryStageID, "shaft", "RIM_SHAFT"

Planetenträger

Einwangiger Planetenträger

planetaryStageID, "one_sided_planet_carrier"

Zweiwangiger Planetenträger

planetaryStageID, "two_sided_planet_carrier"

Bolzen

planetaryStageID, "planet_pin"

Instanzen

weitere Informationen

Stirnradstufe in der Planetenstufe

stageID, "planet_instance"

Planetenrad

planetGearID, "planet_instance"

Planetenlager

planetBearingID, "planet_instance"

Bolzen

planetPinID, "planet_instance"

Kopplung

couplingID, "planet_instance"



Tabelle 33. Weitere Komponenten, die abgefragt werden können

Komponente

Was genau wird abgefragt

getSubComponents(...)

Kerbstelle

Welle, auf der die Kerbstelle sitzt.

notchID, "shaft"

Belastung

Welle, auf der die Belastungskomponente sitzt.

forceID, "shaft"

Steckverzahnung

Wellen, die durch die Steckverzahnung miteinander verbunden sind.

splineConnectionID, "Shaft"

Räder, die die Steckverzahnung bilden.

splineConnectionID, "general_gear"



addSubComponent()
Tabelle 34. Fügt direkt verbundene Subkomponenten auf Hauptkomponenten ein.

addSubComponent(baseCompID, compType, {options});

Parameter

Typ

Beschreibung

baseCompID

int

ID der Hauptkomponente auf der die Subkomponente eingefügt werden soll.

compType

string

Komponententyp der einzufügenden Unterkomponente. Folgende Typen stehen zur Verfügung:

  • Kerbstelle auf einer Welle -> addSubComponent(shaftID, "notch");

  • Belastung auf einer Welle -> addSubComponent(shaftID, "force");

  • Wellenabschnitt auf einer Welle -> addSubComponent(shaftID, "contour");

  • Modifikation auf einem Stirnrad -> addSubComponent(gearID, "gear_correction");

{options}

object

Für Wellenabschnitte stehen zusätzlich folgende Optionen zur Verfügung.

Wenn keine Optionen angegeben sind, werden Wellenabschnitte als Außenkonturen von links eingefügt.

Welleninnenkontur / Außenkontur

side: inner/outer

Wellenkonturangabe von links / rechts

direction: left/right

Rückgabewert

int

ID der neu eingefügten Komponente

Mögliche Fehler

Die Hauptkomponente existiert nicht.

Der Subkomponententyp kann nicht auf der Hauptkomponente eingefügt werden.



Anmerkung

Insbesondere bei größeren Modellen kann das Einfügen oder Löschen von Komponenten einige Zeit in Anspruch nehmen, da das 3D-Modell nach jeder Einfügeaktion aktualisiert wird.

Um das Einfügen zu beschleunigen, kann der Transaktionsmodus vor dem Aufruf addSubComponent() aktiviert werden.

Beispiel 1 Kerbstelle auf einer Welle einfügen und Basisattribute belegen

1let shaftID = 3;
2let notchID = addSubComponent(shaftID, "notch");

3setAttr("notch kind", notchID, 6, EDAT);
4setAttr("position", notchID, 6, EDAT);
5setAttr("notch width", notchID, 5, EDAT);
6setAttr("notch radius", notchID, 2, EDAT);
7setAttr("depth", notchID, 2, EDAT);
8setAttr("surface roughness", notchID, 10, EDAT);

1

Variable shaftID enthält die ID der Welle, auf der die Kerbstelle eingefügt werden soll.

2

Neue Komponente vom Typ "notch" via addSubComponent() auf der Welle 3 einfügen. Der Rückgabewert der Funktion, die ID der neuen Kerbstelle, wird in der Variable notchID gespeichert.

3

Combo-Attribut "Kerbform" auf der neuen Kerbstelle via setAttr() auf 6 setzten. Der Wert 6 entspricht einer Rechtecknut. (Weitere Optionen siehe Bild)

notch_kind_combo.png

4

Position der Kerbstelle setzten.

5

Kerbbreite der Kerbstelle setzen.

6

Kerbradius der Kerbstelle setzen.

7

Kerbtiefe der Kerbstelle setzten.

8

Oberflächenrauheit R_z der Kerbstelle setzten.

Beispiel 2 Einer bestehenden Welle Abschnitte hinzufügen

var shaftID = 3;
var nbrOuterContours = 3;
var nbrInnerContours = 2;
var outerContourIDs = [];
var innerContourIDs = [];
var outerContourlenght = [30, 50, 20];
var innerContourlenght = [40, 80];
var outerContourDiameters = [30, 50, 25];
var innerContourDiameters = [10, 20];

for (let i = 0; i < nbrOuterContours; i++){
  let options = {};
  outerContourIDs.push(addSubComponent(shaftID, "contour",{side: "outer", direction: "left"}));
}
for (let i = 0; i < nbrInnerContours; i++){
    innerContourIDs.push(addSubComponent(shaftID, "contour",{side: "inner", direction: "left"}));
}
for(let i = 0; i < nbrOuterContours; i++){
    setAttr("length",             outerContourIDs[i], outerContourlenght[i], EDAT);
    setAttr("beginning diameter", outerContourIDs[i], outerContourDiameters[i], EDAT);
    setAttr("end diameter",       outerContourIDs[i], outerContourDiameters[i], EDAT);
}
for(let i = 0; i < nbrInnerContours; i++){
    setAttr("length",             innerContourIDs[i], innerContourlenght[i], EDAT);
    setAttr("beginning diameter", innerContourIDs[i], innerContourDiameters[i], EDAT);
    setAttr("end diameter",       innerContourIDs[i], innerContourDiameters[i], EDAT);
}
deleteSubComponent()
Tabelle 35. Löscht eine Subkomponente.

deleteSubComponent(baseCompID, compID);

Parameter

Typ

Beschreibung

baseCompID

string

ID der Hauptkomponente, von der die Subkomponente gelöscht werden soll.

compType

string

ID der Komponente die gelöscht werden soll.

Mögliche Fehler

Die Hauptkomponente existiert nicht.

Die Subkomponente existiert nicht.



Beispiel Belastungskomponente von einer Welle löschen

var shaftID = 4;
var forceID = 10;

deleteSubComponent(shaftID, forceID);
addDbComponent()
Tabelle 36. Fügt Datenbankkomponenten aus der Globalen Datenbank zum Modell hinzu.

addDbComponent(dbType, entryId);

Parameter

Typ

Beschreibung

dbType

string

Typ der Datenbankkomponente die eingefügt werden soll.

  • Schmierstoff -> "lubricant"

  • Werkstoff -> "material"

  • Werkzeug -> "tool"

  • Lastkollektiv -> "spectrum"

  • Wöhlerlinie -> "sn_curve"

  • Datensatz Widerstandskennlinie -> "resistance_characteristic_data_curve"

  • Messreihe -> "data_curve"

  • Reibwerte -> "friction_coefficient"

entryId

string

Eindeutige ID der Datenbankkomponente in der Datenbank

Rückgabewert

string

ID der neu eingefügten Komponente

Mögliche Fehler

Fehlerhafter Datenbanktyp

Datenbankeintrag existiert nicht



Beispiel Werkstoff 16MnCr5 als Komponente zum Modell hinzufügen und einem Stirnrad zuweisen

gearID = 8;
var materialID = addDbComponent("material", "16MnCr5");
setAttr("material", gearID, materialID, EDAT);
deleteDbComponent()
Tabelle 37. Löscht eine Datenbankkomponente aus dem Modell.

deleteDbComponent(compId);

Parameter

Typ

Beschreibung

compId

string

ID der Datenbankkomponente die gelöscht werden soll.

Mögliche Fehler

Datenbankkomponente existiert nicht im Modell.



Beispiel Datenbankkomponente mit der ID 120 löschen

deleteDbComponent("120");
refreshDbComp()
Tabelle 38. Aktualisiert eine Datenbank-Komponente aus der globale Datenbank.

refreshDbComp(dbCompID);

Parameter

Typ

Beschreibung

dbCompID

int

Eindeutige ID der Datenbank Komponente im Modell

Mögliche Fehler

Datenbank-Komponente existiert nicht im Modell.



Beispiel 1 Aktualisiert die Datenbank Komponente mit der ID 22 mit den Daten aus der Globalen Datenbank.

refreshDbComp(22);

Ausgabe

generateReport()
Tabelle 39. Exportiert für das aktuelle Modell mit der angegebenen Reportvorlage ein HTML-Report. Eine bestehende Datei wird überschrieben.

generateReport(templateFile, outputFile, {options});

Parameter

Typ

Beschreibung

templateFile

string

Pfad + Name der Reportvorlagendatei

outputFile

int

Pfad + Name der HTML-Datei

{options}

object

Einspaltiges Layout

compactView:true/false

Sprache

language: "de"/"en"

Hierarchischer Modellbaum

completeTree: true/false

Navigationsleiste

navigationBar: true/false

Berechnungsmeldungen

notifications: true/false

Mögliche Fehler

Zugriffsbeschränkungen auf Ordner/Dateien

Fehlende Reportvorlage



Hinweis

Über die Funktion getPredefinedReportTemplate(SYSTEM_REPORT); kann der Pfad zur vordefinierten Reportvorlage "Gesamtsystemreport" abgefragt werden.

Um Reports aus Modellständen zu erstellen siehe Modellstände im Scripting.

Beispiel 1 HTML-Report generieren

1var templateFile = "C:\\template.wbrep";
2var outputFile = "C:\\output\\report.html";
3var options = {compactView: false, 
                   language: "de", 
                   completeTree: false, 
                   notifications: true, 
                   navigationBar: true};
4generateReport(templateFile, outputFile, options);

1

Pfad zur Reportvorlage

2

Pfad, in dem der Ausgabereport erzeugt wird

3

Optionen, die bei der Reporterstellung berücksichtigt werden

4

Funktion zur Reporterstellung

Beispiel 2 HTML-Report mit vordefinierter Gesamtsystem Reportvorlage erstellen

var templateFile = getPredefinedReportTemplate(SYSTEM_REPORT);
var outputFile = "C:\\output\\report.html";
generateReport(templateFile, outputFile);
println()
Tabelle 40. Schreibt beliebige Daten auf die Scripting-Konsole. Am Ende jeder Zeile wird ein Zeilenumbruch eingefügt. Soll kein Zeilenumbruch erfolgen, kann die print() Funktion verwendet werden.

println(data);

Parameter

Typ

Beschreibung

data

beliebig

Daten, die auf der Scripting-Konsole ausgegeben werden sollen.

Mögliche Fehler

Fehlerhafte Komponenten-ID

Fehlerhafte Attribut-ID



Beispiel 1

1var text = "This is text";
2var array = [1, 2.2, 3, 4];
3println(text);
    for (i=0; i<array.length; i++){
4     println(array[i]);
    }

1

Variable text mit einem String belegen.

2

Variable array mit einem Array aus mehreren Zahlen belegen.

3

Variable text auf der Scripting-Konsole ausgeben.

4

for-Schleife, die durch jeden Eintrag im Array geht und die Zahl auf die Scripting-Konsole schreibt.

alert()
Tabelle 41. Gibt eine Meldung in einem Dialog aus. Das Programm wartet, bis der Benutzer die Nachricht mit [OK] bestätigt.

alert(data);

Parameter

Typ

Beschreibung

data

beliebig

Text, bzw. Daten, die im Dialog angezeigt werden.



Beispiel 1 Text als Meldung ausgeben.

var text = "This is a message. Click OK to continue."
alert(text);
alertbox.png

Beispiel 2 Mehrere Meldungen in einer Schleife ausgeben.

1for (i = 0; i < 5; i++){
2    alert("This is the " + i + ". run"); 
     }

1

for-Schleife, in der die Laufvariable i von 0 bis 4 erhöht wird.

2

Ausgabe von i als Meldung.

Nutzereingabe

prompt()
Tabelle 42. Erzeugt einen Eingabedialog mit Text. Hiermit können zur Laufzeit des Scriptes Daten vom Nutzer abgefragt werden. Diese Daten können dann im Script weiterverarbeitet werden.

prompt(data);

Parameter

Typ

Beschreibung

data

beliebig

Text, bzw. Daten, die im Eingabedialog als Text angezeigt werden.



Beispiel 1 Drehmoment vom Nutzer abfragen und den Attributwert auf der Belastungskomponente entsprechend setzen.

1var forceID = 20;
2var torque = prompt("Please enter input torque");
3setAttr("scaled torque", forceID, torque, EDAT);

1

Variable forceID mit der ID einer Belastungskomponente belegen.

2

Den Rückgabewert der prompt() Funktion in die Variable torque schreiben.

3

Den Eingabewert (EDAT) des Attributs Drehmoment auf der Belastungskomponente 20 auf den Wert in torque setzen.

promptbox.png
promptFile()
Tabelle 43. Zeigt einen Dateiauswahldialog an. Der Dialog verlangt die Eingabe eines Dateinamens. Über optionale Parameter kann der standardmäßig ausgewählter Dateipfad, eine Vorschlag für einen Dateinamen und die Art des Dialogs angegeben werden.

promptFile({options})

Parameter

Typ

Beschreibung

{options}

objekt

directory - standardmäßig ausgewählter Dateipfad

filename - Vorschlag für den Dateinamen

type - Art des Dialogs Öffnen ("open") oder Speichern ("save"). Default: "open"



Anmerkung

Die Funktion kann nur im GUI Betrieb und nicht im Batchbetrieb verwendet werden.

Beispiel 1 Text in eine vom Nutzer ausgewählte Datei schreiben.

1let options = {directory: "c:/example", filename: "myfile.txt", type: "save"};
2let path = promptFile(options);
3let text = "This Text will be written to the ASCII File";
4writeToFile(path, text, "c", "UTF-8");

1

Optionen für den Dateiauswahldialog

2

Öffnet einen Dateiauswahldialog im Verzeichnis c:/example und schreibt den ausgewählten Pfad und Dateiname in die Variable path.

3

Text, der in die Ausgabedatei geschrieben werden soll.

4

Schreibt den Text in die angegebene Datei.

promptDirectory()
Tabelle 44. Zeigt einen Verzeichnisauswahldialog an. Über den optionalen Parameter baseDirectory kann das standardmäßig ausgewählte Verzeichnis angegeben werden.

promptDirectory(baseDirectory);

Parameter

Typ

Beschreibung

baseDirectory

string

Vordefinierte Pfadangabe

Wird kein Parameter angegeben, wird das zuletzt ausgewählte Verzeichnis angezeigt.



Anmerkung

Die Funktion kann nur im GUI Betrieb und nicht im Batchbetrieb verwendet werden.

Beispiel 1 Textdatei in ein vom Nutzer ausgewähltes Verzeichnis schreiben.

1let directory = promptDirectory("c:/example");
2let filename = "text.txt";
3let path = directory +"/"+ filename;
4let text = "This Text will be written to the ASCII File";
5writeToFile(path, text, "c", "UTF-8");

1

Öffnet einen Verzeichnisauswahldialog und schreibt den ausgewählten Pfad in die Variable directory. Standardmäßig wird c:/example vorausgewählt.

2

Name der Ausgabedatei in der Variable filename speichern.

3

Zusammensetzten der Strings zu einem vollständigen Dateipfad und in der Variable path speichern.

4

Text, der in die Ausgabedatei geschrieben werden soll.

5

Schreibt den Text in die angegebene Datei.

promptSelect()
Tabelle 45. Erzeugt einen Dialog mit DropDown-Auswahlliste. Hiermit können zur Laufzeit des Scriptes Daten vom Nutzer abgefragt werden. Diese Daten können dann im Script weiterverarbeitet werden.

promptSelect(caption, dropDownEntries)

Parameter

Typ

Beschreibung

caption

string

Text, der über dem DropDown angezeigt wird

dropDownEntries

array of strings

Array aus Strings. Jeder String entspricht einem Eintrag im DropDown.



Anmerkung

Die Funktion kann nur im GUI Betrieb und nicht im Batchbetrieb verwendet werden.

Beispiel 1 Kriterium für den Korrekturvorschlag vom Nutzer abfragen und das entsprechende Attribut in der FVA-Workbench setzen.

attribute_overview_mod_criterion.png

Die Möglichen Werte für das Combo-Attribut "Kriterium für Flankenmodifikationen aus der 3d Lastverteilung" kann in der Attributübersicht nachgeschlagen werden.

1let dropDownEntries = [
                           "Linear increase in pressure", 
                           "Uniform pressure distribution", 
                           "Linear increase of line loads", 
                           "Uniform line loads"
                          ];
2let modCriterion = promptSelect("Select modification criterion for 3d loaddistribution", dropDownEntries);

3switch (modCriterion) {
        case "Linear increase in pressure":   modCriterion = "0"; break; 
        case "Uniform pressure distribution": modCriterion = "1"; break;
        case "Linear increase of line loads": modCriterion = "2"; break;
        case "Uniform line loads":            modCriterion = "3"; break;
        default: break; 
    };

4setAttr("modification_criterion_load_distribution_3d", 1, modCriterion, EDAT);

1

DropDown Auswahlmöglichkeiten als String-Array in die Variable dropDownEntries schreiben.

2

Öffnet den DropDown Dialog. Der Rückgabewert wird in die Variable modCriterion geschrieben.

3

Die switch case-Anweisung ordnet den vom Benutzer ausgewählten String einen für das Attribut "modification_criterion_load_distribution_3d" gültigen Wert zu.

4

Eingabewert für das Attribut "modification_criterion_load_distribution_3d" in der FVA-Workbench setzen.

drop_down_window.png

Export

exportModel()
Tabelle 46. Exportiert das Model in verschiedene Formate. Die angegebene Dateiendung bestimmt das Format. Für den REXS Export können zusätzliche Optionen übergeben werden. Eine bestehende Datei wird überschrieben.

exportModel(fileName, {options});

Parameter

Typ

Beschreibung

fileName

string

Pfad + Name der Modelldatei. Folgende Dateiendungen werden unterstützt:

.wbpz

.wbpx

.wbps

.rexs (xml)

.rexsj (json)

{options}

(Nur für REXS Export)

object

DataClass

Legt fest, ob EDAT oder RDAT geschrieben werden soll. Sind die RDAT Daten nicht valide, wird automatisch EDAT geschrieben. (EDAT/RDAT)

Version

Legt die zu verwendende Version der REXS Spezifikation fest. (1.0/1.1/1.2/1.3/1.4/1.5)

Mögliche Fehler

Der Benutzer hat keine Schreibberechtigung für den angegeben Pfad.



Beispiel 1 Datei model.wbpz in das Verzeichnis C:\temp exportieren.

exportModel("C:\\temp\\model.wbpz");

Beispiel 2 Modell im REXS-Format (Version 1.3) exportieren

1var options = {DataClass: "RDAT", Version: 1.3};
2exportModel("C:\\temp\\model.rexs", options);

1

Variable options, die .rexs spezifische Angaben enthält.

2

Modellexport über die exportModel() inklusive Optionen.

exportGdeFile()
Tabelle 47. Exportiert ein Stirnrad aus dem Modell in eine GDE-Datei. Die Dateiendung muss xml sein.

exportGdeFile(fileName, gearID, {options});

Parameter

Typ

Beschreibung

fileName

string

Pfad + Name der xml-Datei

gearID

string

ID des Zahnrads im Modell

{options}

object

GdeVersion

"2.5.0" | "3.4.0"

DatumnFaceIsLargerUSide

true | false

ExportConfig

"GDE Export Config 1"

"GDE Export Config 2"

"GDE Export Config 3"

"GDE Export Config 4"

Mögliche Fehler

Der Benutzer hat keine Schreibberechtigung für den angegeben Pfad.

Die angegebene Version existiert nicht.

Die angegebene gearID existiert nicht im Modell.



Beispiel 1 GDE-Datei exportieren

let fileName = "C:\\temp\\testGDE.xml";
let gearId = "8";
let exportOptions = {GdeVersion : "3.4", DatumnFaceIsLargerUSide: false, ExportConfig: "GDE Export Config 1"};

try {let returnCode = exportGdeFile(fileName, gearId, exportOptions);	
    if (returnCode==1)
        println("GDE Export successful");} 
catch (exception_text) {        
    alert(exception_text);
}
exportCAD()
Tabelle 48. Exportiert Getriebekomponenten in verschiedene CAD-Formate.

exportCAD(filepath, {options});

Parameter

Typ

Beschreibung

filepath

string

Pfad + Name der CAD-Datei

{options}

object

CompIds

Zusammengesetzte Komponenten wie z.B. Stirnradstufen können nicht exportiert werden. Die Wellen und Zahnräder der Stufe müssen für den Export explizit angegeben werden.

Liste mit allen Getriebekomponenten die exportiert werden sollen. ID = 1 (Getriebeeinheit) exportiert das gesamte Getriebemodell. Doppelte IDs werden ignoriert.

CADFormat

Folgende Formate können exportiert werden:

  • STEP

  • IGES

  • CATIA V4

  • CATIA V5

  • VDA-FS

  • SAT

Mögliche Fehler

Der Benutzer hat keine Schreibberechtigung für den angegeben Pfad.

Die angegebene Komponente ist nicht exportierbar (z.B. Schmierstoff).



Beispiel 1 Komplettes Getriebe als STEP-Datei exportieren

let filepath = "c:/output/cadmodel.step";
let options = {"CompIds": [1],
               "CADFormat": "STEP"
              };
exportCAD(filepath, options);

Beispiel 2 Alle Wellen und Zahnräder eines Getriebemodells als IGES-Datei exportieren

let filepath = "c:/output/cadmodel.iges";
let gearIds = getCompByType("gear");
let shaftIds = getCompByType("shaft");
let componentsToExport = gearIds.concat(shaftIds);
let options = {"CompIds": componentsToExport,
               "CADFormat": "IGES"
              };
exportCAD(filepath, options);
exportCADGear()
Tabelle 49. Exportiert ein einzelnes Stirnrad inklusive Mikrogeometrie (Modifikationen) in verschiedene CAD-Formate.

exportCADGear(filepath, {options});

Parameter

Typ

Beschreibung

filepath

string

Pfad + Name der CAD-Datei

{options}

object

CompId

ID des Stirnrades

CADFormat

Folgende Formate können exportiert werden:

  • STEP

  • IGES

  • CATIA V4

  • CATIA V5

  • VDA-FS

  • SAT

NumberOfSupportingPointsWidth

Die Anzahl der Stützpunkte in Breitenrichtung ist äquidistant und hat einen großen Einfluss auf die Genauigkeit, mit der die Flankenmodifikationen exportiert werden. Die Genauigkeit der linearen Interpolation zwischen den Stützpunkten ist von der Form und dem Betrag der Modifikation abhängig. Wenn zum Beispiel eine kurze Endrücknahme mit großem Modifikationsbetrag vorgegeben wurde, sollte die Anzahl der Stützpunkte erhöht werden.

Mögliche Fehler

Der Benutzer hat keine Schreibberechtigung für den angegeben Pfad.

Die angegebene Komponente ist kein Stirnrad.



Beispiel Stirnrad inklusive Verzahnungsmodifikationen exportieren

let filepath = "c:/output/cadmodel.step";
let gearId = [6];
let options = {"CompId": gearId,
               "CADFormat": "STEP",
               "NumberOfSupportingPointsWidth": 20
              };
exportCADGear(filepath, options);
exportImage()
Tabelle 50. Exportiert Getriebekomponenten als Bild.

exportImage(filepath, {options});

Parameter

Typ

Beschreibung

filepath

string

Pfad + Name der Bilddatei

{options}

object

CompIds

Liste mit allen Getriebekomponenten die im Bild enthalten sein sollen.

ID = 1 (Getriebeeinheit) exportiert das gesamte Getriebemodell als Bild. Doppelte IDs werden ignoriert.

Zusammengesetzte Komponenten wie z.B. Stirnradstufen können nicht als Bild exportiert werden. Die Wellen und Zahnräder der Stufe müssen für den Export explizit angegeben werden.

size

Bildauflösung

SMALL

640x480

MEDIUM

800x600

LARGE

1280x720

VERY LARGE

1920x1080

orientation

Orientierung der Getriebekomponenten im Bild.

  • LEFT

  • RIGHT

  • FRONT

  • BACK

  • TOP

  • BOTTOM

  • ISO

showDeformation

Boolean, der entscheidet, ob die Getriebekomponenten deformiert dargestellt werden.

Mögliche Fehler

Der Benutzer hat keine Schreibberechtigung für den angegeben Pfad.

Die angegebene Komponente ist nicht als Bild exportierbar (z.B. Schmierstoff).



Beispiel 1 Komplettes Getriebe als Bilddatei exportieren

let filepath = "c:/output/transmission.jpg";
let options = {"CompIds": [1],
               "orientation" : "ISO",
               "size": "SMALL",
               "showDeformation": true
              };
exportImage(filepath, options);

Beispiel 2 Alle Wellen und Zahnräder eines Getriebemodells als Bilddatei exportieren

let filepath = "c:/output/shafts_and_gears.jpg";
let gearIds  = getCompByType("gear");
let shaftIds = getCompByType("shaft");
let componentsToExport = gearIds.concat(shaftIds);
let options = {"CompIds": componentsToExport,
               "orientation" : "ISO",
               "size": "LARGE",
               "showDeformation": false
              };
exportImage(filepath, options);

Lesen & Schreiben

readFile()
Tabelle 51. Liest Dateien im ASCII-Format ein. Die Datei wird Zeile für Zeile gelesen und in einem Array gespeichert.

readFile(path);

Parameter

Typ

Beschreibung

path

string

Verzeichnis + Name der Datei

Rückgabewert

array

Inhalt der Datei in einem String Array

Mögliche Fehler

Datei existiert nicht oder Zugriff verweigert.

Datei ist im Binär-Format.



Beispiel 1 Textdatei einlesen und auf der Scripting-Konsole ausgeben.

1var path = "c:\\textfile.txt";
2var text = readFile(path);

3for (i = 0; i < text.length; i++){
4    println(text[i]);
5    println(parseFloat(text[i])+ parseFloat(text[i]));
     }

1

Variable path mit dem Pfad zur Textdatei belegen.

2

Variable text wird via readFile() mit einem Array belegt, das so viele Einträge hat wie die Datei textfile.txt Zeilen.

3

For-Schleife, in der die Zählvariable i von 0 bis text.length (Anzahl der Zeilen in der Textdatei) erhöht wird.

4

Ausgabe jeder Zeile in der Textdatei auf der Scripting-Konsole.

5

Über parseFloat() wird jeder Arrayeintrag in der Variablen text in eine Fließkommazahl umgewandelt, mit der im weiteren gerechnet werden kann. Enthält der Arrayeintrag keine Zahl, die umgewandelt werden kann, gibt parseFloat() NaN (Not a Number) als Wert zurück.

readFileAsString()
Tabelle 52. Liest Dateien im ASCII-Format ein und schreibt den Inhalt in einen String.

readFileAsString(path);

Parameter

Typ

Beschreibung

path

string

Verzeichnis + Name der Datei

Rückgabewert

string

Inhalt der Datei in einem String

Mögliche Fehler

Datei existiert nicht oder Zugriff verweigert.

Datei ist im Binär-Format.



Beispiel 1 Textdatei als String einlesen

1var path = "c:\\textfile.txt";
2var text = readFileAsString(path);
writeToFile()
Tabelle 53. Schreibt Text in eine Datei. Ist der angegebene Ordner nicht vorhanden, wird er erzeugt.

writeToFile(path, text, mode, encoding);

Parameter

Typ

Beschreibung

path

string

Pfad + Name der Textdatei

Pfade können auch relativ angegeben werden. Ausgangsverzeichnis ist dabei das Installationsverzeichnis der FVA-Workbench.

text

string

Text, der in die Datei geschrieben werden soll.

mode

string

a

Fügt den Text einer bestehende Datei hinzu. Falls notwendig, wird diese zuvor erstellt.

c

Falls die Datei bereits besteht, wird der Inhalt ersetzt. Sonst erstellt das System eine Datei und fügt den Text ein.

encoding

string

Wird kein Parameter angegeben, wird die Standardcodierung des Betriebssystems verwendet. Eine Angabe der Kodierung wird empfohlen, um die Kompatibilität zwischen verschiedenen Systemen zu gewährleisten.

UTF-8

UTF-16BE

UTF-16LE

UTF-16

ISO-8859-1

US-ASCII

BINARY

Mögliche Fehler

Der Benutzer hat keine Schreibberechtigung für den angegeben Pfad.



Beispiel Textdatei erstellen und weitere Texte anhängen.

1var path = "C:\\temp\\test.txt";
2writeToFile(path, "Part 1\n", "c", "UTF-8");
3writeToFile(path, "Part 2\n", "a", "UTF-8");
4writeToFile(path, "Part 3",   "c", "UTF-8");

1

Pfad zur Textdatei

2

Erstellt eine UTF-8 kodierte Textdatei mit dem Inhalt "Part 1". \n macht einen Zeilenumbruch.

3

Fügt der bestehenden Datei den Text "Part 2" hinzu.

4

Schreibt den Text "Part 3" in die Datei. Dabei werden "Part 1" und "Part 2" gelöscht.

saveModel()
Tabelle 54. Speichert das aktuell geladene Modell.

saveModel();

Parameter

Typ

Beschreibung

Mögliche Fehler

Zugriff auf die Modelldatei wird verweigert.



Beispiel 1 Modelldatei speichern

saveModel();

Weitere

#include
Tabelle 55. Bindet externe Scriptdateien ein. Damit können bspw. oft benötigte Funktionen ausgelagert werden. Externe Scripte können an beliebiger Stelle im Hauptscript eingefügt werden. Die Pfade zu externen Scripten können relativ oder absolut angegeben werden. Um die Pfade relativ anzugeben, muss das Basisverzeichnis unter Einstellungen -> Verzeichnisse -> Globale Scripte angegeben werden.

#include "path\\script.wbjs";

Parameter

Typ

Beschreibung

Mögliche Fehler

Angegebene Scriptdatei oder Pfad existiert nicht

Die Dateiendung ist nicht .wbjs



Hinweis

Für weitere Beispiele siehe Externe Scripte einbinden

Beispiel 1 Externe Scripte einbinden

1#include "*";
2#include "folder\\*";
3#include "folder\\script.wbjs";
4#include "c:\\scripting\\folder\\script.wbjs"

1

Bindet alle Scripte im Basisverzeichnis ein.

2

Bindet alle Scripte in einem Unterverzeichnis des Basisverzeichnisses ein.

3

Bindet ein Script im Unterverzeichnis des Basisverzeichnisses ein.

4

Bindet ein Script über einen absoluten Pfad ein.

getModelProperty()
Tabelle 56. Fragt verschiedene Eigenschaften des Modells ab.

getModelProperty(propertyID);

Parameter

Typ

Beschreibung

propertyID

string

FILEPATH

Vollständiger Pfad zur Modelldatei.

c:/example/modelfolder/model.wbpz

FOLDER

Pfad in dem sich die Modelldatei befindet.

c:/example/modelfolder/

FILENAME

Name der Modelldatei.

model.wbpz

FILENAME_NO_EXT

Name der Modelldatei ohne Dateiendung.

model

MODEL_NAME

Name des Projekts bzw. Modells.

Kann unter Projekt -> Eigenschaften -> Projektname geändert werden.

Twin-Screw Extruder

PM_VERSION

Version des Produktmodells

2.2169.0



Beispiel 1 Textdatei in einem Unterverzeichnis des Modellverzeichnisses schreiben.

1let modelpath = getModelProperty("FOLDER");
2let modelname = getModelProperty("MODEL_NAME");
3let filepath = modelpath + "new_directory/textfile.txt";
4writeToFile(filepath, modelname, "c", "UTF-8");

1

Variable modelpath mit dem Pfad zur Modelldatei belegen.

2

Variable modelname mit dem Modellnamen belegen.

3

String "new_directory/textfile.txt" an die Variable modelpath anhängen und in filepath schreiben.

4

Schreibt eine Textdatei, die als Text den Modellnamen enthält, in den Pfad in der Variablen filepath.

getDirectory()
Tabelle 57. Gibt Pfade zu Verzeichnissen zurück, die in den Einstellungen definiert sind.

getDirectory(folderID);

Parameter

Typ

Beschreibung

folderID

string

global_scripts

globale Scripte

models

bevorzugter Speicherort für Getriebemodelle

temp

temporäre Dateien

report_templates

Reportvorlagen

reports

bevorzugtes Ausgabeverzeichnis für Reports



Beispiel Verzeichniss für Reportvorlagen und Ausgabeverzeichnis abfragen und Ergebnisreport erzeugen.

1let reportTemplateDirectory = getDirectory("report_templates");
2let templateFile = reportTemplateDirectory +"\\myReportTemplate.wbrep";

3let outputDirectory = getDirectory("reports");
4let outputFile = outputDirectory+"\\report.html";

5generateReport(templateFile, outputFile);

6println("Report was saved here: "+outputFile);

1

Pfad abfragen, in dem die .wbrep Reportvorlagen liegen und in der Variablen reportTemplateDirectory speichern

2

Namen der Reportvorlage an reportTemplateDirectory anhängen und in der Variablen templateFile speichern.

3

Pfad abfragen, in dem die .html Ergebnisreports standardmäßig gespeichert werden und in der Variablen outputDirectory speichern.

4

Namen der Ausgabereports an outputDirectory anhängen und in der Variablen outputFile speichern.

5

Report erstellen.

6

Speicherort des Ausgabereports auf dem Scripting-Monitor ausgeben.