Autor
|
Thema: Produkt Status feststellen ? (1063 mal gelesen)
|
nreim1 Mitglied Konstrukteur
Beiträge: 36 Registriert: 18.01.2008
|
erstellt am: 13. Jan. 2010 14:19 <-- editieren / zitieren --> Unities abgeben:
Hallo an euch alle ! Ich habe grade ein kleines Problemchen an dem ich hänge .. Kurze Beschreibung: Ich greife mit VB.Net von außen auf Catia zu und bearbeite bzw. Tausche dort Parts und deren Instanzen aus. Das klappt auch wunderbar, nur beim prüfen der Constrains bekomme ich anscheinend ein Zeitliches Problem ! Folgender Sachverhalt: Vor dem Austausch der teile suche ich deren dazugehörige Constrains und Speichere diese in einem Object Array ( Klappt auch soweit ) dann tausche ich die Parts aus und mache ein Update auf das Produkt wo die parts alle eingehangen sind ( dort liegen auch die Constrains ) .. Wenn ich umgehend nach dem Update eine Prüfung auf die Constrains mache sagt er mir das alles Ok ist obwohl min ein Constrain defekt ist ( den fehlerfall provoziere ich absichtlich ) also versuch mein Programm auch keine Reparatur der Constrains. Wenn ich jetzt aber eine Warteschleife von z.b. 2 Sekunden nach dem Update einbaue und dann erst die Constrains Prüfe, läuft alles wie es soll ! Nun bin ich aber kein Freund von undefinierten dingen wie Warteschleifen ohne Prüfkriterien ( thread.sleep ) . Es macht für mich den Eindruck dass wenn ich den Befehl Product.update an Catia raus gebe, mein Programm umgehend die Constrain Prüfung fortsetzt ohne auf den Abschluss des Updates zu warten. und somit die Constrains auch noch kein Update erhalten haben..... Kann das sein?! gibt es eine möglichkeit ein Produkt nach dessem Updatestatus zu befragen? oder hat jemand eine idee wie ich das Problem besser angreifen könnte als mit der Thread.sleep Warteschleife??? Wäre dankbar für paar Tips... Mfg: Nico
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 13. Jan. 2010 15:31 <-- editieren / zitieren --> Unities abgeben: Nur für nreim1
Hallo Nico, das Problem an dieser Stelle ist, dass die Funktion "Update" kein Ereignis bzw. Ergebnis zurücksendet. Daher bist du auf hilfsmittel angewiesen. Beim Update wird ein Fenster (Baugruppe aktualisieren) geöffnet, welches du abfragen könntest und erst dann weiter verarbeitest, wenn das Fenster geschlossen und somit die Updatefunktion beendet wurde. Ist zwar etwas umständlich, aber eine saubere und zeitlich nicht abhängige Abfrage. ------------------ MFG Rick Schulz Nettiquette (CAD.de) - Was ist die Systeminfo? - Wie man Fragen richtig stellt. - Unities Konfuzius sprach: "Wer sich das Alte noch einmal vor Augen führt, um das Neue zu verstehen, der kann anderen ein Lehrer sein." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Moderator² Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 13. Jan. 2010 15:44 <-- editieren / zitieren --> Unities abgeben: Nur für nreim1
so ungefär könnte eine Wartefunktion aussehen... Code:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPublic Sub Waitforupdate () Dim hWndTmp1 As Long Dim WinTitle as String WinTitle = "Aktualisierung läuft..." 'Der Name ist sprachabhängig do hWndTmp1 = FindWindow(vbNullString, WinTitle) Application.doevents loop until hwndTmp1 <> 0 do hwndTmp1 = FindWindow(vbNullString, WinTitle) Application.doevents loop until hwndTmp1 = 0 end sub
------------------ MFG Rick Schulz Nettiquette (CAD.de) - Was ist die Systeminfo? - Wie man Fragen richtig stellt. - Unities Konfuzius sprach: "Wer sich das Alte noch einmal vor Augen führt, um das Neue zu verstehen, der kann anderen ein Lehrer sein." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 13. Jan. 2010 15:48 <-- editieren / zitieren --> Unities abgeben: Nur für nreim1
|
nreim1 Mitglied Konstrukteur
Beiträge: 36 Registriert: 18.01.2008
|
erstellt am: 14. Jan. 2010 07:00 <-- editieren / zitieren --> Unities abgeben:
Hallo ihr beiden @Rick Ja das ist korrekt, die updatefunktion ist nur eine Sub ohne ergebnis. Gehofft habe ich lediglich das VB trotzdem wartet bis die Sub durchlaufen wurde, so wie es bei einem normalen Programmablauf ( VB ) auch der fall ist ... Ich danke euch aber erstmal für eure Tipps .. Dann werde ich mich mal in das Fenster gewusel stürzen und versuchen eure ideen umzusetzten ... Danke nochmal! Werde mein ergebnis noch hier kund geben ... Mfg: nreim
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 14. Jan. 2010 07:47 <-- editieren / zitieren --> Unities abgeben: Nur für nreim1
|
nreim1 Mitglied Konstrukteur
Beiträge: 36 Registriert: 18.01.2008
|
erstellt am: 14. Jan. 2010 07:51 <-- editieren / zitieren --> Unities abgeben:
Hi mit normal meine ich ... Wenn ich ein Programm in VB Schreibe und ich dort von einer Sub einen weiteren Sub ausfruf mache, dann wartet die erste Sub solange bis die zweite fertig durchlaufen wurde ! So meinte ich das, Bei einem Aufruf externer Libs wird das aber leider anders gehandelt ... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 14. Jan. 2010 08:32 <-- editieren / zitieren --> Unities abgeben: Nur für nreim1
|
nreim1 Mitglied Konstrukteur
Beiträge: 36 Registriert: 18.01.2008
|
erstellt am: 14. Jan. 2010 08:33 <-- editieren / zitieren --> Unities abgeben:
|