Autor
|
Thema: Makro langsamer... (2622 mal gelesen)
|
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 16. Sep. 2011 11:27 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 16. Sep. 2011 11:46 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Servus Unter VBA kannst du Haltepunkte definieren, und dann das Makro in Einzelschritten (Taste F8) durcharbeiten lassen. Gruß Bernd ------------------ 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: 16. Sep. 2011 11:50 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Hallo, willst du nur den Ablauf einmal sehen? Dann kannst du das Makro auch entweder innerhalb des Makroeditors mit F8 die einzelnen Schritte Schritt für Schritt durchgehen. Außerdem kannst du Haltepunkte im Makroeditor setzen, bei dem das Makro automatisch anhält und auf ein F5(fortfahren) oder F8(schrittweise fortfahren) wartet. Möchtest du nur den anderen zeigen, was du tolles mit dem Makro machst? Dann kannst du zwischen den einzelnen Schritten z.B. mit... Code:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)Sub Main() ... sleep 10000 '=10Sec ... end sub
oder einem wait-Befehl...
------------------ 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 |
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 16. Sep. 2011 11:54 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich glaub ich habe es falsch ausgedruckt , ich will das Makro schon laufen lassen aber halt langsamer. zb. ich hab ein Roboterhand was sich von a nach b über c ,d .......bewegt, wenn ich das Makro starte dann sehe ich nur wenn das in B(ende) steht. ich will aber die zwischen schritte auch sehen. ich hab an Timer oder sowas ähnliches gedacht!!! aber weiß net wie das geht! Gruß
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tberger Mitglied Application Manager CATIA V5 / V6
Beiträge: 1385 Registriert: 13.01.2007 WIN 7 64bit V5R21SP3HF49 3DX/V6 R2016x
|
erstellt am: 16. Sep. 2011 12:45 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Vielleicht könntest du einfach im Code ein deinproduct.update einbauen und danach eine Benachrichtigung MsgBox "Makro angehalten, zum weitermachen OK anklicken ..." einfügen. ------------------ Grüße aus dem Thurgau Thomas +++++++++++++++++++++++++++++++++ CATIA - eine Laune der Natur ... 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: 16. Sep. 2011 12:53 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
|
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 16. Sep. 2011 13:13 <-- editieren / zitieren --> Unities abgeben:
|
tberger Mitglied Application Manager CATIA V5 / V6
Beiträge: 1385 Registriert: 13.01.2007 WIN 7 64bit V5R21SP3HF49 3DX/V6 R2016x
|
erstellt am: 16. Sep. 2011 13:27 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Hallo sawah, was hast du eigentlich vorliegen? Wirklich ein Makro, das du startest und deine Baugruppe damit manipuliert? Oder hast due eine Simulation mit Verfahrwegen/Tracks etc. oder eine Kinematische Simulation? Dann müsstest du in den Definitionen der Tracks einfach gewisse Zeitdauern einbauen, um die nachfolgenden Schritte später laufen zu lassen oder den Faktor dwer Abspielung herabsetzen. ------------------ Grüße aus dem Thurgau Thomas +++++++++++++++++++++++++++++++++ CATIA - eine Laune der Natur ... 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: 16. Sep. 2011 13:30 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
|
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 16. Sep. 2011 14:20 <-- editieren / zitieren --> Unities abgeben:
Hallo Rick, ich hab das so verwendet: Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub Robot() ... Part1.update sleep 10000 '=10Sec ... Part1.update sleep 10000 '=10Sec ... Part1.update sleep 10000 '=10Sec ... Part1.update sleep 10000 '=10Sec ... end sub die Bildschirm wird gefroren, nach paar Minuten zeigt das ganze Modell(kein Simulation!!!) was mache ich Falsch? Gruß 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: 16. Sep. 2011 17:11 <-- editieren / zitieren --> Unities abgeben: Nur für sawah
Ich konnte leider nicht eher antworten So könnte es funktionieren...
Code: Sub Robot() ... Part1.update For i = 1 To 100 '=10Sec DoEvents sleep 100 next ... Part1.update For i = 1 To 100 '=10Sec DoEvents sleep 100 next ... Part1.update For i = 1 To 100 '=10Sec DoEvents sleep 100 next ... Part1.update For i = 1 To 100 '=10Sec DoEvents sleep 100 next ...end sub
Das Problem am sleep ist, dass er den Thread schlafen legt. Da du mit vba automatisch im Thread von CATIA arbeitest, legt er nicht nur das Makro/Programm schlafen, sondern das ganze CATIA. Mit der Schleife und dem DoEvents bekommst du es hin, dass er 100*0,1 Sekunde wartet, allerdings immer mit einem DoEvents dazwischen. Das DoEvents bewirkt, dass CATIA zwischen den sleep`s nicht vollständig schläft, sondern sowohl andere Eingaben wie auch Aktualisierungen etc. zulässt. Du kannst auch die Schleife auf 10000 oder nur 1000 stellen und den sleep-Befehl nur mit 1 befüttern. Das DoEvents ermöglicht immer, dass der Prozess den anderen (erstmal) den Vortritt lässt. HTH ------------------ 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 |
sawah Mitglied
Beiträge: 65 Registriert: 07.06.2011 XP, CATIA V5 R19
|
erstellt am: 17. Sep. 2011 12:57 <-- editieren / zitieren --> Unities abgeben:
|