Thread Pro/Engineer VB API und Perl-Script
(12 answers)
Opened by Zulu at 2011-10-29 13:09
Hallo zusammen,
auf dieser Seite gibt es einige Beispiele für die Steuerung des CAD-Programmes Pro/Engineer durch den "ProE API" mit VB, VBA, über ein Javascript und Perl. Ich möchte als unerfahrener Programierer mit MATLAB eine Verbindung über die ActiveX Schnittstelle zu ProE zu herstellen und als Beispiel die Masse eines 3D-Bauteils auslesen. Mit MATLAB kann ich eine Verbindung zu ProE herstellen, aber ich bekomme die Fehlermeldung "no apropriate method, property or field session for class Interface.IUnknown". Daher der Versuch über perl zu gehen, zu der es in der oben genannten Seite einen Beispiel gibt (lieber wäre mir die Lösung in MATLAB). Zu dem Thema habe ich auf der MATLAB Newsletter Seite bereits einen Thread fortgesetzt, ohne eine Antwort erhalten zu haben. Auf CAD.de habe ich das Problem ebenfalls gepostet. In dem API Users Guide von ProE gibt es ein VBA-Beispiel für das Auslesen der Masse eines Bautiels mit einem Excel Script (siehe Seite 178, Kapitel "Mass Properties"). Hier der Auszug: Code: (dl
)
1 Code:Imports pfcls Prinzipiell funktionert der Aufruf von ProE aus Perl aus, aber ich kann in dem Excel Beispiel folgende Zeilen mangels Verständnis für Perl und das VB-Skript nicht nach Perl übersetzen: solid = CType(model, IpfcSolid) solidProperties = solid.GetMassProperty(Nothing) Kann mir jemand erklären, wie die beiden Zeilen in Perl programmiert werden müssen? Mein Kode sieht bisher so aus: Code (perl): (dl
)
1 2 3 4 5 6 7 8 $asynconn = Win32::OLE->new("pfcls.pfcAsyncConnection"); $conn = $asynconn->Connect( "", "", ".", 5 ); #$session = $conn->Session; #$mdlName = $session->CurrentModel->FileName; $solidProperties = $session->CurrentModel->GetMassProperty(Nothing); $Mass = $solidProperties->Mass; #print "mdlName: $mdlName", "\n"; print "Mass: $Mass", "\n"; Die Antwort ist: Can't call method "GetMassProperty" on an undefined value at Line 5. Danke und Grüße Zulu Last edited: 2011-10-30 20:35:44 +0100 (CET) |