So nun folgt der erste Teil der ProEngineer Webschnittstelle auch genannt Pro/Web.Link,
viele der zusätzlichen Tools, welche Händler mit liefern oder verkaufen, basieren darauf,
daneben existieren noch eine Schnittstelle für Java und eine für C.
Die Javascript/ActiveX Schnittstelle und die Java-Erweiterung werden kostenfrei mitgeliefert,
die Schnittstelle für C benötigt eine Extralizenz, welche sich die meisten wohl nicht anschaffen können,
werden oder wollen.
So nun kommen wir zur Funktion
ParameterGet welche die vorhanden Parameter
aus einer aktiven Sitzung ausliest, es wird benötigt das sich das abzufragende Modell im Sitzungsspeicher befindet.
Wie bei allen Schnittstellen benötigen wir ist einmal eine Verbindung zum Programm, diese liefert ProEngineer
mit der Dokumentation bereits mit die benötigten Dateien werde ich in einem späteren Beitrag erwähnen.
Nun gut, die ersten zwei Zeilen haben folgenden Sinn, diese Fragen nach wird die Seite über den Programm internen
Webbrowser aufgerufen oder nicht, es wird versucht die benötigten Berechtigungen zu erhalten.
function ParameterGet(Dateiname)
{
if (!pfcIsWindows())
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
Als nächstes legen wir die verschiedenen Parameter an.
var ret;
var ItemType;
var FeatureID;
var Daten = new Object();
Daten['Daten'] = new Object();
Daten['Parameter'] = new Array();
if (Dateiname == "")
{
return ;
}
Mit
if (Dateiname == "") kann der Browser davor bewahrt werden eine Fehlermeldung
auszuspucken, weil die Datei nicht gefunden oder die Daten nicht geladen werden konnten.
ItemType = document.pwl.eval('PWL_MODEL');
FeatureID = -1;
ret = document.pwl.pwlMdlParametersGet(Dateiname);
Diese drei Zeilen legen folgendes fest:
ItemType ist ein Modell, d.h. eine Baugruppe oder ein Bauteil.
FeatureID wird in diesem Fall ignoriert, da wir kein besonderes Konstruktionselement wählen wollen, sondern die Baugruppe bzw. -teil.
pwlMdlParametersGet liest nun alle verfügbaren Parameter des Modells aus.
Der nächste Abschnitt liest die Daten von
ret in ein Array
Daten,
da ProEngineer aber zwischen verschiedenen Parametertypen unterscheiden müssen diese Daten korrekt ausgelesen werden,
da es sonst zu Fehlermeldungen der Schnittstelle kommt.
ProEngineer unterscheiden zwischen Double, String, Integer und Boolean Parameter,
diese werden entsprechend ausgelesen, damit Javascript mit diesen Daten korrekt umgeht.
for (i = 0; i < ret.NumParams; i++)
{
var val_ret = document.pwl.pwlParameterValueGet(
Dateiname,
parseInt(ItemType),
FeatureID,
ret.ParamNames.Item(i));
var answer = "";
var parameter = "";
if (val_ret.ParamType == parseInt(document.pwlc.PWL_VALUE_DOUBLE))
{
answer = val_ret.ParamDoubleVal;
}
else if (val_ret.ParamType == parseInt(document.pwlc.PWL_VALUE_STRING))
{
answer = val_ret.ParamStringVal;
if(answer == ""){ answer = " "; }
}
else if (val_ret.ParamType == parseInt(document.pwlc.PWL_VALUE_INTEGER))
{
answer = val_ret.ParamIntVal;
}
else if (val_ret.ParamType == parseInt(document.pwlc.PWL_VALUE_BOOLEAN))
{
answer = (val_ret.ParamBooleanVal) ? "true" : "false";
}
parameter = ret.ParamNames.Item(i);
Daten['Daten']['' + parameter.toLowerCase() + ''] = '' + answer + '';
Daten['Parameter'] = '' + parameter.toLowerCase() + '';
Ich hoffe, ich konnte es wenigstens einigermaßen verständlich rüberbringen, da ich vor weit über einem Jahr,
mit dieser Schnittstelle aufgehört habe und die Dokumentation leider nicht parat habe, kann ich natürlich auch
nicht alle Funktionen mehr 100%ig nachvollziehen. Eins werde ich noch versuchen, die entsprechenden Dokumentationseinträge
der benutzen Funktionen etwas zu erklären, soweit es mit der leider ziemlich undurchsichtigen Dokumentation funktioniert.
Als diese Toolsammlung geschrieben wurde war es mehr ein Learning-by-doing mit Test und Fehlerfaktor
"ProEngineer Webschnittstelle (Teil 1)" vollständig lesen »