Autor
|
Thema: OK Button bestätigen (2527 mal gelesen)
|
T.Pundt Mitglied Konstrukteur
Beiträge: 83 Registriert: 07.08.2014 Windows 7 Catia V5 R19
|
erstellt am: 14. Nov. 2014 12:39 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe folgendes Problem: Nach dem Releaswechsel von CATIA V5 R19 auf V5-6 R2014 erzeugt mein Makro kein CATALLPart mehr. Ich bin jetzt soweit, dass das Fenster "Generate CATPart from Product" auf geht und das Produkt zugewiesen wird, ich aber nicht weiß, wie ich das OK im Dialogfenster bestätigen kann? Ich habe es bislang folgendermaßen versucht, aber leider schaltet er das Dialogfenster nicht aktiv und kann somit auch nicht das OK bestüätigen? Kann mir jemand da weiterhelfen? Sub CATMain() CATIA.RefreshDisplay = True CATIA.StartCommand "Generate CATPart from Product..." CATIA.RefreshDisplay = True CATIA.RefreshDisplay = True Set WshShell = CreateObject("WScript.Shell") CATIA.RefreshDisplay = True WshShell.AppActivate("CATIA V5") WshShell.SendKeys "{ENTER}",True CATIA.RefreshDisplay = True End Sub Vielen Dank! Gruß Timo 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: 14. Nov. 2014 12:59 <-- editieren / zitieren --> Unities abgeben: Nur für T.Pundt
Servus Wenn das Rootproduct im Baum selektiert ist funktioniert bei mir dieser Code ( Vorsicht: Befehl und Fenstername auf deutsch) Code: Sub CATMain()CATIA.StartCommand "CATPart aus Produkt generieren" Dim WshShell As Object Set WshShell = CreateObject("WScript.Shell") WshShell.AppActivate ("CATPart aus Produkt generieren") WshShell.SendKeys "%{TAB}", True WshShell.SendKeys "%{TAB}", True WshShell.SendKeys "{ENTER}", True End Sub
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
T.Pundt Mitglied Konstrukteur
Beiträge: 83 Registriert: 07.08.2014 Windows 7 Catia V5 R19
|
erstellt am: 14. Nov. 2014 13:14 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, was mache ich falsch? Sub CATMain() Dim oBGRoot As ProductDocument Dim oBGProd As Product 'AllCatPart erstellen Set oBGRoot = CATIA.ActiveDocument Set oBGProd = oBGRoot.Product Dim ActDoc As ProductDocument Set ActDoc = CATIA.ActiveDocument Dim MySel As Selection Set MySel = CATIA.ActiveDocument.Selection MySel.Add ActDoc.Product '.Products.Item(1)
CATIA.StartCommand "Generate CATPart from Product" Dim WshShell As Object Set WshShell = CreateObject("WScript.Shell") WshShell.AppActivate ("Generate CATPart from Product") WshShell.SendKeys "%{TAB}", True WshShell.SendKeys "%{TAB}", True WshShell.SendKeys "{ENTER}", True End Sub Danke. Gruß Timo
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
T.Pundt Mitglied Konstrukteur
Beiträge: 83 Registriert: 07.08.2014 Windows 7 Catia V5 R19
|
erstellt am: 14. Nov. 2014 13:25 <-- editieren / zitieren --> Unities abgeben:
|
T.Pundt Mitglied Konstrukteur
Beiträge: 83 Registriert: 07.08.2014 Windows 7 Catia V5 R19
|
erstellt am: 17. Nov. 2014 08:49 <-- editieren / zitieren --> Unities abgeben:
Ich habe jetzt folgenden Code, aber ich habe weiterhin das Problem das er zwar das Dialogfenster öffnet aber nicht das OK bestätigt. Funktioniert das Sendkeys nicht im CATScript? Sub CATMain() Dim RootProduct as product Set RootProduct = CATIA.ActiveDocument.Product Dim osel As Selection Set osel = CATIA.ActiveDocument.Selection osel.Clear osel.add RootProduct CATIA.StartCommand "Generate CATPart from Product..." Dim WshShell As Object Set WshShell = CreateObject("WScript.Shell") WshShell.AppActivate ("Generate CATPart from Product...") WshShell.SendKeys "%{TAB}", True WshShell.SendKeys "%{TAB}", True WshShell.SendKeys "{ENTER}", True End Sub Vielen Dank.
Gruß Timo 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: 17. Nov. 2014 08:56 <-- editieren / zitieren --> Unities abgeben: Nur für T.Pundt
Servus ggf ist das Makro einfach schneller als das Öffnen des entsprechenden Fensters. Vermutlich musst du wohl doch von "Außen" auf Catia zugreifen und warten bis das Fenster auf ist. (siehe zB diese Diskussion) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
T.Pundt Mitglied Konstrukteur
Beiträge: 83 Registriert: 07.08.2014 Windows 7 Catia V5 R19
|
erstellt am: 17. Nov. 2014 10:41 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, was meinst du mit, von außen auf CATIA zugreifen? Meinst du damit die Warteschleifen? Ich habe jetzt zwei Warteschleifen eingebaut, aber trotzdem geht es nicht, weil der das Fenster irgendwie nicht aktiv setzt oder das Sendkeys nicht funktioniert. Kann ich irgendwie testen, woran es hapert? Sub CATMain() Dim RootProduct as product Set RootProduct = CATIA.ActiveDocument.Product Dim osel As Selection Set osel = CATIA.ActiveDocument.Selection osel.Clear osel.add RootProduct Dim i As Integer Dim WshShell As Object Set WshShell = CreateObject("WScript.Shell") CATIA.StartCommand "Generate CATPart from Product..." For i = 0 To 100000000 i = i+1 Next WshShell.AppActivate ("Generate CATPart from Product...") For i = 0 To 100000000 i = i+1 Next WshShell.SendKeys "%{TAB}", True WshShell.SendKeys "%{TAB}", True WshShell.SendKeys "{ENTER}", True End Sub Gibt es vielleicht auch die Möglichkeit das Makro zu unterbrechen, bis ich manuell das ok des Dialogfensters betätigt habe? Danke. Gruß Timo
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: 17. Nov. 2014 10:49 <-- editieren / zitieren --> Unities abgeben: Nur für T.Pundt
Servus Hast du dir die andere Diskussion durchgelesen? (vermutlich "sleep + doevents" erforderlich, oder die saubere Lösung). Wenn du das OK von "Hand" anklickst kannst du dir das Makro auch schenken. Oder soll hinterher noch was anderes passieren. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
T.Pundt Mitglied Konstrukteur
Beiträge: 83 Registriert: 07.08.2014 Windows 7 Catia V5 R19
|
erstellt am: 17. Nov. 2014 11:01 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, das Sleep funktioniert irgendwie im CATScrpit nicht? Das ALLCATPart wird in der Mitte des Makros durchgeführt und ist nur ein ganz kleiner Teil. Deshalb würde es mir auch weiterhelfen, wenn ich das Makro kurz unterbrechen könnte? Vielen Dank.
Gruß Timo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
T.Pundt Mitglied Konstrukteur
Beiträge: 83 Registriert: 07.08.2014 Windows 7 Catia V5 R19
|
erstellt am: 17. Nov. 2014 14:17 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe jetzt auch mal versucht das ganze mit einem anderen Fenster zu testen (Properties von einem Part). Hier wird das Fenster auch wieder geöffnet aber leider klappt auch kein ENTER? Weiß irgendjemand, woran das liegen kann? Ich schreibe in CATScript! Sub CATMain() Dim RootProduct as Part Set RootProduct = CATIA.ActiveDocument.Part Dim osel As Selection Set osel = CATIA.ActiveDocument.Selection osel.Clear osel.add RootProduct Dim i As Integer Dim WshShell As Object Set WshShell = CreateObject("WScript.Shell") CATIA.StartCommand "Properties" osel.Clear WshShell.AppActivate("CATIA V5") CATIA.RefreshDisplay = True For i = 0 To 100000000 i = i+1 Next WshShell.AppActivate ("Properties") CATIA.RefreshDisplay = True ' For i = 0 To 100000000 ' i = i+1 ' Next CATIA.RefreshDisplay = True 'WshShell.SendKeys "%{TAB}", True 'WshShell.SendKeys "%{TAB}", True WshShell.SendKeys "{ENTER}", True End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |