| |
 | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 |
| |
 | KISTERS 3DViewStation - Der Schlüssel zur Einsparung von CAD-Lizenzen, eine Pressemitteilung
|
Autor
|
Thema: CATIA Auslastung Busy (710 mal gelesen)
|
nreim1 Mitglied Konstrukteur

 Beiträge: 36 Registriert: 18.01.2008
|
erstellt am: 09. Feb. 2009 09:31 <-- editieren / zitieren --> Unities abgeben:         
Hallo Forengemeinde Ich habe malwieder eine Frage an euch, gibt es eine Funktion die mir sagt ob Catia noch am Arbeiten ist oder ob es bereit ist für weitere befehle.... ??? Grund: Ich Steuere CATIA von Aussen Mittels VB.Net an, klappt auch alles sehr gut. Habe nur manchmal ein paar probleme beim übergeben von Werten an diverse Parameter in Catia Parts! Irgendwie werden die werte manchmal nicht übernommen, habe den eindruck das mein Programm manchmal zu schnell arbeitet so das Catia nicht nach kommt. Und überall ein Thread.Sleep() einbauen möchte ich sehr ungern machen.. Wäre euch dankbar für ein paar tipps.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Ehrenmitglied V.I.P. h.c. 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: 09. Feb. 2009 09:49 <-- editieren / zitieren --> Unities abgeben:          Nur für nreim1
Hallo, das mit dem Thread.Sleep wäre auch sehr unsauber. Ich weis ja nicht, ob das Makro für mehrere User auf verschiedenen Rechnern gedacht ist, denn sonst hättest du so oder so ein Problem, da die Wartezeit Leistungsabhängig ist. Das Problem ist, dass das Programm in einem eigenen Prozess (sprich CATIA unabhängig) arbeitet und du keinerlei antworten von CATIA bekommst. Du solltest aufjedenfall ein Application.DoEvents in jede Schleife und an jeden Punkt einbauen, an dem du auf eine Antwort wartest. Im Normalfall führt das dazu, dass das Programm auf andere Programme wartet. In wie weit das in Verbindung mit CATIA funktioniert, kann ich dir so nicht sagen. ------------------ MFG Rick Schulz Nettiquette (CAD.de) 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 |
nreim1 Mitglied Konstrukteur

 Beiträge: 36 Registriert: 18.01.2008
|
erstellt am: 09. Feb. 2009 10:25 <-- editieren / zitieren --> Unities abgeben:         
Hallo ! Ja Das Programm läuft auf mehreren unterschiedlichen PC`s, desswegen finde ich das mit der Thread.Sleep() sache auch nicht gut. Also im regelfall ist es so das mein Programm schon auf CATIA Wartet, zum beispiel wenn ich den user auffordere eine selektion in Catia zu machen stoße ich den befehl natürlich aus meinem programm heraus an und das wartet auch solange mit der fortsetzung der Arbeit bis der User etwas selektiert oder den vorgang abgebrochen hat. Von daher besteht schon eine gewisse kommunikation ! Wie meinst du das genau mit dem Application.DoEvents .. Wie würde so eine Abfrage denn aussehen ? Soll ich dann einfach vor jede abfrage und jedes setzen eines Parameters den befehl Application.DoEvents() setzen ? Also gibt es keine direkte möglichkeit zu prüfen ob Catia noch beschäftigt ist oder nicht ???
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Ehrenmitglied V.I.P. h.c. 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: 09. Feb. 2009 11:27 <-- editieren / zitieren --> Unities abgeben:          Nur für nreim1
Hallo, das Application.DoEvents sollte an jede Stelle des Prozesses eingefügt werden, an der es notwendig ist, auf Funktionen oder andere Prozesse zu warten. Hierbei wird die CPU-Priorität für den folgenden Prozess nach unten gesetzt und das Programm gibt so theoretisch die CPU für andere Prozesse frei. ------------------ MFG Rick Schulz Nettiquette (CAD.de) 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 |