| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
|
Autor
|
Thema: Weblink, Part Aktivieren (1209 mal gelesen)
|
supTom Mitglied CAD-Support

 Beiträge: 42 Registriert: 19.02.2008 Creo4 M100 DELL Precision M4800 Win 10 / 64 12 GB Ram NVIDIA Quadro 2000
|
erstellt am: 02. Okt. 2008 08:55 <-- editieren / zitieren --> Unities abgeben:         
Guten Tag zusammen, ich lade per Weblink ein Part in Pro/E und möchte dann daraus die Parameter auslesen. Das Auslesen funktioniert direkt nach dem Öffnen nicht, ich bekomme eine Fehlermeldung daß keine Parameter da sind. Auch nach dem Aktivieren des Modells (Activate) und einem Repaint bekomme ich die Fehlermeldung. Sobald ich Weblink verlassen habe, erscheint der Modellbaum und der Bildschirm macht einen Refresh. Mit welchem Befehl kann ich das in Weblink erzwingen (oder war das Programm zu schnell und ich konnte nicht abwarten)? Grüßen von supTom ------------------ nixblick Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roltermann Mitglied

 Beiträge: 61 Registriert: 05.01.2001 Dell M65 / Pro/E 2001-WF4
|
erstellt am: 06. Okt. 2008 11:47 <-- editieren / zitieren --> Unities abgeben:          Nur für supTom
|
supTom Mitglied CAD-Support

 Beiträge: 42 Registriert: 19.02.2008
|
erstellt am: 06. Okt. 2008 22:41 <-- editieren / zitieren --> Unities abgeben:         
Hallo, entschuldigung für die Verspätung, nein, das Problem ist noch nicht gelöst. Hier ist der Code (der wichtigste Teil davon) Code: var PartToOpen = "Zahnrad1.prt"; var ModDesc = pfcCreate("pfcModelDescriptor"); var NewModDesc = ModDesc.Create(pfcCreate("pfcModelType").MDL_PART, PartToOpen, null); alert("bei ModDesc" + NewModDesc); var ModWin = session.OpenFile(NewModDesc); alert ("Modell ist offen"); ModWin.Activate(); alert ("vor Repaint"); ModWin.Repaint(); alert ("Nach Activate 1"); //Parameter aus dem Zahnrad auslesen // Get a List of Parameters var CurModel = session.CurrentModel; var ttt = CurModel.Regenerate(); alert ("nach Regenerate"); var ModelParams = CurModel.ListParams(); // Anfang Reportanlage
Funktioniert auch alles ganz gut bis zum Befehl: Modelparams=CurModel.ListParams(); Hier wird eine Fehlermeldung generiert, da null zurückgegeben wird. Inzwischen habe ich auch noch den Befehl Regenerate gefunden, verwende ihn aber falsch, da beim eingefügten Befehl ebenfalls eine Fehlermeldung kommt. Auffällig ist, daß nach dem Abruch der Weblink Session, der Bildschirm kurz aufblinkt und danach der Modellbaum angezeigt wird. Danach kann ich mit dem gleichen Befehl: ListParams ohne Probleme die Parameter auslesen und anzeigen. Wenn du eine Idee hast, ich bin ein dankbarer Abnehmer davon. Gruß SupTom ------------------ nixblick Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roltermann Mitglied

 Beiträge: 61 Registriert: 05.01.2001 Dell M65 / Pro/E 2001-WF4
|
erstellt am: 07. Okt. 2008 09:29 <-- editieren / zitieren --> Unities abgeben:          Nur für supTom
Moin, du machst es Dir zu kompliziert. - .OpenFile hab ich noch nie verwendet. Ich meine dumpf zu erinnern das der Befehl in WF2 neu ist und evtl. nicht ganz sauber. Besser: .RetrieveModel() und anschließend .Display() falls du das Model wirklich sehen willst. - .Activate und .Repaint sind immer nur mit Vorsicht einzusetzen und meistens nicht notwendig. Nach dem .Activate kann man sich nie sicher sein ob der Code noch weiß in welchem Fenster er eigentlich läuft. - .Regenerate() braucht auf einem Teil immer noch ein Argument, es tut hier ein einfaches "null". Auf die Baugruppe braucht es kein Argument. Also so gehts: Code: var session = pfcCreate ("MpfcCOMGlobal").GetProESession (); var PartToOpen = "Zahnrad1.prt"; var ModDesc = pfcCreate("pfcModelDescriptor"); var NewModDesc = ModDesc.Create(pfcCreate("pfcModelType").MDL_PART, PartToOpen, null); var CurModel = session.RetrieveModel(NewModDesc); CurModel.Display(); CurModel.Regenerate(null); var ModelParams = CurModel.ListParams(); alert(ModelParams);
Eigentlich kannst Du aber das .Display() und .Regenerate() auch weglassen. Wozu den? Gruß Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
supTom Mitglied CAD-Support

 Beiträge: 42 Registriert: 19.02.2008
|
erstellt am: 23. Okt. 2008 08:16 <-- editieren / zitieren --> Unities abgeben:         
Hallo, endlich komme ich zu meiner Antwort. Mein Ehrgeiz war es das Modell samt Modeltree darstellen zu lassen und dann erst weiterzuarbeiten. Vielen Dank für die Antwort. So funktioniert es auch und bin damit weitergekommen. Grüße von Thomas ------------------ nixblick Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |