Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Produkt Status feststellen ?

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Produkt Status feststellen ? (1063 mal gelesen)
nreim1
Mitglied
Konstrukteur


Sehen Sie sich das Profil von nreim1 an!   Senden Sie eine Private Message an nreim1  Schreiben Sie einen Gästebucheintrag für nreim1

Beiträge: 36
Registriert: 18.01.2008

erstellt am: 13. Jan. 2010 14:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von RSchulz an!   Senden Sie eine Private Message an RSchulz  Schreiben Sie einen Gästebucheintrag für RSchulz

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für nreim1 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von RSchulz an!   Senden Sie eine Private Message an RSchulz  Schreiben Sie einen Gästebucheintrag für RSchulz

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für nreim1 10 Unities + Antwort hilfreich

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 Long

Public 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


Sehen Sie sich das Profil von DanielFr. an!   Senden Sie eine Private Message an DanielFr.  Schreiben Sie einen Gästebucheintrag für DanielFr.

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für nreim1 10 Unities + Antwort hilfreich

Hallo,

ich würe es auch so wie Rick machen.

ABER ich würde den Fensterhandle des Updatefensters auslesen und warten bis dieser Handle nicht mehr existiert. Der Vorteil daran ist das du keinen statischen String der auch noch umgebungssprachenabhängig ist in deinem Code verwalten musst (kann ja mal sein das DS den Namen ändert und schon stehst du wieder vor dem selben Problem  ) Den Fensterhandle bekommst du über eine Schleife durch alle Unterfenster des MainWindowHandle den du wiederrum über den CNEXT Prozess auslesen kannst.

[EDIT]Noch was hinzugefügt  [/EDIT]

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

   

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nreim1
Mitglied
Konstrukteur


Sehen Sie sich das Profil von nreim1 an!   Senden Sie eine Private Message an nreim1  Schreiben Sie einen Gästebucheintrag für nreim1

Beiträge: 36
Registriert: 18.01.2008

erstellt am: 14. Jan. 2010 07:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von DanielFr. an!   Senden Sie eine Private Message an DanielFr.  Schreiben Sie einen Gästebucheintrag für DanielFr.

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für nreim1 10 Unities + Antwort hilfreich

Hallo,

was heißt "normal". Die Updatefunktion ist halt eine asynchrone Funktion. So wird sie interpretiert. Bei CATIA ist das aber auch jeder StartCommand Befehl 

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nreim1
Mitglied
Konstrukteur


Sehen Sie sich das Profil von nreim1 an!   Senden Sie eine Private Message an nreim1  Schreiben Sie einen Gästebucheintrag für nreim1

Beiträge: 36
Registriert: 18.01.2008

erstellt am: 14. Jan. 2010 07:51    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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)


Sehen Sie sich das Profil von V5Playaz an!   Senden Sie eine Private Message an V5Playaz  Schreiben Sie einen Gästebucheintrag für V5Playaz

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für nreim1 10 Unities + Antwort hilfreich

Hallo,

ich gehe mal davon aus das du mit Early Binding arbeitest.

Versuche es mal mit Late Binding, da VB dann das Ergebnis der CATIA-Aktion abwarten sollte.

Grüße Dominik

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nreim1
Mitglied
Konstrukteur


Sehen Sie sich das Profil von nreim1 an!   Senden Sie eine Private Message an nreim1  Schreiben Sie einen Gästebucheintrag für nreim1

Beiträge: 36
Registriert: 18.01.2008

erstellt am: 14. Jan. 2010 08:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Das kann ich mal versuchen .... Danke ! 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz