Hauptfunktionen
Berechnung
runCalcMethod()
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"); }
Variable methodID mit der ID für eine Gesamtsystemberechnung belegen. | |
Variable compID mit der ID der Getriebeeinheit belegen. Die ID der Getriebeeinheit ist immer 1. | |
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. | |
Gesamtsystemberechnung starten und Rückgabewert in der Variablen status speichern. | |
Wenn Rückgabewert in Variable status = 1, dann: | |
Ausgabe auf der Scripting-Konsole: "Calculation was successful". | |
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()
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);
Variable compID mit der Komponenten-ID der ersten Stirnradstufe im Modell belegen. | |
Variable value mit dem Eingabewert (EDAT) des Attributs normal pressure angle belegen. | |
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]);
Variable compID mit der Komponenten-ID des ersten Wälzlagers im Modell belegen. | |
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. | |
Den Attributwert für die erste Lagerreihe auf dem Scripting Monitor ausgeben. | |
Den Attributwert für die zweite Lagerreihe auf dem Scripting Monitor ausgeben. |
setAttr()
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);
Variable compID mit der Komponenten-ID der Getriebeeinheit belegen. Die Getriebeeinheit als Wurzelkomponente hat immer die ID 1. | |
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);
delAttr()
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);
Schmierstoff auf der Komponente Getriebeeinheit löschen. |
getAttrProperty()
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'));
Variable compID mit der Komponenten ID 8 belegen. | |
Variable attributeID mit der ID des Attributs Zahnbreite belegen. | |
Namen des Attributs auf der Scripting Konsole ausgeben. | |
Einheit des Attributs auf der Scripting Konsole ausgeben. | |
Formelzeichen des Attributs auf der Scripting Konsole ausgeben. | |
Ausgabewert des Attributs auf der Scripting Konsole ausgeben. |
Zugriff auf Komponenten
getCompProperty()
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'));
Variable compID mit 3 belegen. | |
Komponententyp der Komponente 3 auf der Scripting Konsole ausgeben. | |
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()
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()
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); }
Variable bearings mit einem Array aller Wälzlager IDs im Getriebe belegen. | |
for-Schleife, die so oft durchlaufen wird, wie das Array bearings Elemente besitzt. | |
Setzt das Attribut "Eingabetyp" für jedes Lager auf "Steifigkeit" (Wert =2 siehe auch Datentyp Combo-Attribut). |
getSubComponents()
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]);
Variable stageID enthält die ID der Stirnradstufe. | |
getSubComponents() schreibt ein Array mit den ID's der beiden Stirnräder in die Variable gearIDs. | |
Schreibt die ID des ersten Stirnrads auf die Konsole. | |
Schreibt die ID des zweiten Stirnrads auf die Konsole. |
Abfragbare Subkomponenten
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" |
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 | 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 . |
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" |
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" |
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" |
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 | Stirnradstufe in der Planetenstufe | stageID, "planet_instance" |
Planetenrad | planetGearID, "planet_instance" | |
Planetenlager | planetBearingID, "planet_instance" | |
Bolzen | planetPinID, "planet_instance" | |
Kopplung | couplingID, "planet_instance" |
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()
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:
| |
{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);
Variable shaftID enthält die ID der Welle, auf der die Kerbstelle eingefügt werden soll. | |
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. | |
Combo-Attribut "Kerbform" auf der neuen Kerbstelle via setAttr() auf 6 setzten. Der Wert 6 entspricht einer Rechtecknut. (Weitere Optionen siehe Bild) | |
Position der Kerbstelle setzten. | |
Kerbbreite der Kerbstelle setzen. | |
Kerbradius der Kerbstelle setzen. | |
Kerbtiefe der Kerbstelle setzten. | |
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()
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()
addDbComponent(dbType, entryId); | ||
Parameter | Typ | Beschreibung |
dbType | string | Typ der Datenbankkomponente die eingefügt werden soll.
|
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()
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()
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()
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.
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);
Pfad zur Reportvorlage | |
Pfad, in dem der Ausgabereport erzeugt wird | |
Optionen, die bei der Reporterstellung berücksichtigt werden | |
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()
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]); }
alert()
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);
Beispiel 2 Mehrere Meldungen in einer Schleife ausgeben.
1for (i = 0; i < 5; i++){ 2 alert("This is the " + i + ". run"); }
Nutzereingabe
prompt()
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);
promptFile()
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");
promptDirectory()
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");
Öffnet einen Verzeichnisauswahldialog und schreibt den ausgewählten Pfad in die Variable directory. Standardmäßig wird c:/example vorausgewählt. | |
Name der Ausgabedatei in der Variable filename speichern. | |
Zusammensetzten der Strings zu einem vollständigen Dateipfad und in der Variable path speichern. | |
Text, der in die Ausgabedatei geschrieben werden soll. | |
Schreibt den Text in die angegebene Datei. |
promptSelect()
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.
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);
DropDown Auswahlmöglichkeiten als String-Array in die Variable dropDownEntries schreiben. | |
Öffnet den DropDown Dialog. Der Rückgabewert wird in die Variable modCriterion geschrieben. | |
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. | |
Eingabewert für das Attribut "modification_criterion_load_distribution_3d" in der FVA-Workbench setzen. |
Export
exportModel()
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);
exportCAD()
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:
| ||
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()
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:
| ||
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()
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
| ||||||||
orientation | Orientierung der Getriebekomponenten im Bild.
| ||||||||
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()
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])); }
Variable path mit dem Pfad zur Textdatei belegen. | |
Variable text wird via readFile() mit einem Array belegt, das so viele Einträge hat wie die Datei textfile.txt Zeilen. | |
For-Schleife, in der die Zählvariable i von 0 bis text.length (Anzahl der Zeilen in der Textdatei) erhöht wird. | |
Ausgabe jeder Zeile in der Textdatei auf der Scripting-Konsole. | |
Ü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()
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()
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");
saveModel()
saveModel(); | ||
Parameter | Typ | Beschreibung |
Mögliche Fehler | Zugriff auf die Modelldatei wird verweigert. |
Beispiel 1 Modelldatei speichern
saveModel();
Weitere
#include
#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"
getModelProperty()
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");
Variable modelpath mit dem Pfad zur Modelldatei belegen. | |
Variable modelname mit dem Modellnamen belegen. | |
String "new_directory/textfile.txt" an die Variable modelpath anhängen und in filepath schreiben. | |
Schreibt eine Textdatei, die als Text den Modellnamen enthält, in den Pfad in der Variablen filepath. |
getDirectory()
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);
Pfad abfragen, in dem die .wbrep Reportvorlagen liegen und in der Variablen reportTemplateDirectory speichern | |
Namen der Reportvorlage an reportTemplateDirectory anhängen und in der Variablen templateFile speichern. | |
Pfad abfragen, in dem die .html Ergebnisreports standardmäßig gespeichert werden und in der Variablen outputDirectory speichern. | |
Namen der Ausgabereports an outputDirectory anhängen und in der Variablen outputFile speichern. | |
Report erstellen. | |
Speicherort des Ausgabereports auf dem Scripting-Monitor ausgeben. |