Autor
|
Thema: Vorgehensweise eines Makros beobachten (1961 mal gelesen)
|
FahreS Mitglied
Beiträge: 6 Registriert: 26.02.2013
|
erstellt am: 26. Feb. 2013 20:56 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen! Stand der Dinge ist, dass ich ein Makro für CATIA V5 programmiert habe, dass Geometrien verschiebt und verformt. An dem Rechner, an dem ich das Makro programmiert habe, konnte ich die Vorgehensweise wunderbar nachvollziehen, da CATIA sämtliche Schritte visualisiert hat. Nun wollte ich das Makro jedoch an einem anderen Rechner ausprobieren, allerdings visualisiert CATIA überhaupt nichts, obwohl das Makro vernünftig läuft. Ich habe also das selbe Makro an zwei PCs ausprobiert. Beim ersten sieht man die Vorgehensweise des Makros und beim zweiten nicht. Weiß jemand woran das liegen könnte und wie man das ändern könnte? Ich vermute es handelt sich um irgendeine Einstellung in CATIA... Dank für jede Hilfe! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 26. Feb. 2013 21:08 <-- editieren / zitieren --> Unities abgeben: Nur für FahreS
Servus Willkommen im Forum. Bitte Systeminfo ausfüllen. Makros kannst schrittweise in VBA ausführen. Falls du das Makro alc CATScript erstellt hast kannst du (nahezu) 1:1 den Code in VBA übernehmen. Um was für ein Makro handelt es sich? Was funktioniert an dem anderen Rechner nicht? Was meist du "ersten sieht man die Vorgehensweise des Makros"? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FahreS Mitglied
Beiträge: 6 Registriert: 26.02.2013
|
erstellt am: 26. Feb. 2013 23:07 <-- editieren / zitieren --> Unities abgeben:
Zunächst Danke für die schnelle Antwort. mir geht es darum, dass bei einem PC zu sehen ist wie die Geometrie verändert wird. Bei dem anderen PC allerdings nicht, da die Oberfläche von CATIA einfriert und nicht mehr reagiert. Die Schritte werden zwar ebenfalls ausgeführt, aber man sieht nichts, da CATIA eben einfach einfriert. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 27. Feb. 2013 07:43 <-- editieren / zitieren --> Unities abgeben: Nur für FahreS
Servus Was meinst du mit einfrieren? Ist beim einen Rechner vielleicht "manueller Aktualisierungsmodus" aktiviert? Was veränderst du, Geometrie im Part, Positionen in der Baugruppe? (es gibt so viele verschiedene Einstellungen, du musst uns schon einen Tipp geben was sich nicht aktualisiert) Gruß Bernd PS: Bitte Systeminfo ausfüllen. ------------------ Warum einfach, wenn es auch kompliziert geht. 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: 27. Feb. 2013 08:31 <-- editieren / zitieren --> Unities abgeben: Nur für FahreS
|
FahreS Mitglied
Beiträge: 6 Registriert: 26.02.2013
|
erstellt am: 27. Feb. 2013 12:50 <-- editieren / zitieren --> Unities abgeben:
Hallo! Zitat: Original erstellt von bgrittmann: Servus Was meinst du mit einfrieren? Ist beim einen Rechner vielleicht "manueller Aktualisierungsmodus" aktiviert?
Bei dem PC, der nicht einfriert, kann während der Bearbeitung des Makros auch noch im Strukturbaum rumgeklickt werden. Bei dem PC, der einfriert geht dies nicht. Stattdessen wird CATIA in weißen Nebel eingehüllt, als wenn dieses abgestürzt wäre. Zitat: Original erstellt von bgrittmann: Was veränderst du, Geometrie im Part, Positionen in der Baugruppe? (es gibt so viele verschiedene Einstellungen, du musst uns schon einen Tipp geben was sich nicht aktualisiert)
Ich hab in dem Part eine Kugel. die Position dieser Kugel und der Radius sind über Parameter festgesetzt. Das Makro verändert diese Parameter und verschiebt die Kugel im CATPart hin und her (mit part1.update). Funktionieren tut dies einwandfrei bei beiden PCs. Sehen wie CATIA die Veränderungen durchführt kann mans aber nur bei einem der beiden PCs. Die Systeminfo des PCs kenne ich leider nicht.
Zitat: Original erstellt von RSchulz: Hallo und herzlich willkommen,wenn die GUI von CATIA einfriert, dann liegt das daran, dass die Oberfläche keine Systemleistung zugeteilt bekommt, weil das Makro komplett blockiert. Du musst im Makro an sinnvollen stellen und vor allem in Schleifen ein DoEvents einbauen. Damit gibt das Makro kurzzeitig den anderen Anwendungen die CPU frei. Ich habe mir angewöhnt, nach jedem Gui-verändernden Befehl und am Ende jeder Schleife ein DoEvents einzubauen.
Deine Erläuterung klingt plausibel und auch auf das Problem passend. Die Frage ist nur, wieso das Interface von CATIA nur bei dem einen PC einfriert, aber nicht bei dem anderen. 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: 27. Feb. 2013 13:18 <-- editieren / zitieren --> Unities abgeben: Nur für FahreS
|
FahreS Mitglied
Beiträge: 6 Registriert: 26.02.2013
|
erstellt am: 27. Feb. 2013 13:27 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von RSchulz: Das kann viele Ursachen haben...Bei dem einen läuft es unter der Debugumgebung und bei dem anderen in der kompilierten Fassung. Der eine Rechner hat deutlich mehr Leistung als der andere und der Flaschenhalz liegt wo anders. ...und und und...
Es ist tatsächlich so, dass die Vorgehensweise des Makros nur beim Start aus dem VBA Editor sichtbar war. Bei Start über Tools -> Macro -> Macros war es bei keinem der beiden Rechner sichtbar. Da ich das Makro allerdings bei beiden Rechnern aus dem VBA Editor aus gestartet habe, kann es daran nicht liegen. Das die Prozessorleistung geringer ist wäre eine Möglichkeit, ich hatte allerdings auf einen anderen Grund gehofft Kann es daran liegen, dass bei dem zweiten Rechner zwei VBA Libraries fehlten, die ich zum Starten des Makros deaktivieren musste?
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: 27. Feb. 2013 14:00 <-- editieren / zitieren --> Unities abgeben: Nur für FahreS
Jung nimm mirs nicht übel, wenn ich jetzt etwas schroff werde, aber die einzig wahre Lösung habe ich dir genannt und die lautet sauber an bestimmten Positionen ein DoEvents zu setzen! Alles andere ist Käse und hat nicht mit Programmierung zu tun. Die Verarbeitung des Makros wird auch nicht spürbar verzögert. Das beläuft sich alles im tiefen Millisekundenbereich. Daher verstehe ich dein Engagement nun in diese Richtung nicht, da dies kein Fehlverhalten darstellt! Die Runtimelibraries sind nun mal anders und dementsprechend ist auch das direkte Verhalten anders. Das hat etwas mit den direkt verwendeten DLL´s zu tun, in denen sich durchaus eben auch mehr DoEvents oder Warteschleifen verstecken... Keep it simple! ------------------ MFG Rick Schulz Nettiquette (CAD.de) - Was ist die Systeminfo? - Wie man Fragen richtig stellt. - Unities
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FahreS Mitglied
Beiträge: 6 Registriert: 26.02.2013
|
erstellt am: 27. Feb. 2013 15:42 <-- editieren / zitieren --> Unities abgeben:
Der Hintergrund meiner Frage ist halt: Wieso verhält sich das selbe Makro bei zwei verschiedenen PCs unterschiedlich? Mir geht es eigentlich nicht darum, das Makro so zu verändern, dass in jedem Fall die Vorgehensweise von CATIA gezeigt wird. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 27. Feb. 2013 16:31 <-- editieren / zitieren --> Unities abgeben: Nur für FahreS
Servus Dann sag uns was an den beiden Rechnern anders ist? Oder füge nach den entsprechenden Codestellen "do events" ein. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 27. Feb. 2013 17:11 <-- editieren / zitieren --> Unities abgeben: Nur für FahreS
Also wenn Du auf dem zweiten Rechner schon einmal Libraries deaktivieren musstest, dann ist sowohl dein VBA-Projekt als auch Deine Installationen Mist, da sie nicht gleich sind. Zusätzlich wird wahrscheinlich deine Hardware markant unterschiedlich und eventuell nicht zertifiziert sein. Es kann ne Menge Ursachen haben. In dem Fall empfehle ich es einen Experten mit entsprechender Erfahrung einzukaufen, der wird Dir die Lösung schon entsprechend schnell und vor allem gut liefern. Das muss ich mit den wagen Angaben eben live sehen. Ansonsten siehe Ricks Beiträge, da steht bereits alles richtig drin, das kann man nicht besser erklären und sagen. Fahr doch einfach mal einen aussagekräftigen Benchmark. Deine Makros scheinen ehh nicht für das parallele Arbeiten im CATIA konzipiert zu sein, also wen stört's? Wenn aktiv etwas sichtbar sein soll, im CATIA, dann musst Du es auch aktiv programmieren mit DoEvents und RefreshDisplay. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing [Diese Nachricht wurde von HoBLila am 28. Feb. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FahreS Mitglied
Beiträge: 6 Registriert: 26.02.2013
|
erstellt am: 28. Feb. 2013 14:26 <-- editieren / zitieren --> Unities abgeben:
OK, dank euch allen. Ich hatte gehofft, dass es einfach irgendwo in CATIA eine Funktion gibt die aktiviert werden muss. Aber ich hätt mir eigentlich denken können, dass das ganze etwas komplizierter ist. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |