Autor
|
Thema: Noch ein Versuch -> CATProduct nach CATPart (7489 mal gelesen)
|
mattu82 Mitglied Systembetreuer / CAD Datenaustausch
Beiträge: 66 Registriert: 23.06.2005
|
erstellt am: 26. Aug. 2005 10:56 <-- editieren / zitieren --> Unities abgeben:
Hi, ich hatte vor einiger Zeit bereits eine solche Frage hier gestellt, jedoch keine befriedigende Antwort erhalten. Daher versuche ich es noch einmal, vielleicht hatte in der Zwischenzeit ja jemand ein ähnliches Problem. Ich möchte über ein Macro aus einem CATProduct ein CATPart erzeugen. Dazu benutze ich zur Zeit den Befehl CATIA.StartCommand("Generate CATPart from Product") Das funktioniert auch schon, allerdings muss dafür 1. das Catia im Assembly Mode sein, das würde ich gerne über das Script steuern, und außerdem kommt ein Eingabefenster, in dem man den Dateinamen eingeben muss. Ich möchte allerdings ein Macro haben, das ohne Benutzerinteraktion lauffähig ist und daher dieses Fenster irgendwie unterdrücken oder automatisch ausgefüllt und bestätigt haben. Ist das machbar oder gibt es da keine Möglichkeit? mfg mattu ------------------ A fool with a tool is still a fool Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mattu82 Mitglied Systembetreuer / CAD Datenaustausch
Beiträge: 66 Registriert: 23.06.2005
|
erstellt am: 05. Sep. 2005 08:56 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habs jetzt endlich geschafft, per Makro aus einem CATProduct ein Part zu machen. Falls jemand an der Lösung interessiert ist, kann ich sie gerne hierhin stellen. mfg mattu ------------------ A fool with a tool is still a fool Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Power Mitglied
Beiträge: 1075 Registriert: 08.11.2004 NX12, CATIA V5
|
erstellt am: 05. Sep. 2005 09:18 <-- editieren / zitieren --> Unities abgeben: Nur für mattu82
|
mattu82 Mitglied Systembetreuer / CAD Datenaustausch
Beiträge: 66 Registriert: 23.06.2005
|
erstellt am: 05. Sep. 2005 09:29 <-- editieren / zitieren --> Unities abgeben:
Gut dann hier das Makro. Ob das gut ist kann ich nicht sagen, aber es funktioniert Ich habe eine catvba Datei erstellt mit VB Editor unter Catia. Public Sub CATMain() Dim CATProtDoc As ProductDocument Dim CATProt As Product Dim wshshell Set CATProtDoc = CATIA.ActiveDocument Set CATProt = CATProtDoc.Product CATIA.ActiveDocument.Selection.Clear CATIA.ActiveDocument.Selection.Add CATProt
CATIA.StartCommand ("Convert Product to CATPart") MsgBox "test" Call Shell("wscript c:\sendkey.vbs") End Sub Die SendKey.vbs sieht folgendermaßen aus
Set WshShell = WScript.CreateObject("WScript.Shell") 'WshShell.popup "Los" Wscript.sleep 2000 WshShell.SendKeys "{ENTER}" 'WshShell.popup "Fertig mit vbs" Diese externe Datei ist erforderlihc, weil in R12 (da ist dieses Makro entstanden und getestet) das PopUp Fenster, in dem der Name des CATPart eingegeben werden kann aus irgendeinem Grund erst hochkommt, wenn das Sub beendet wurde. So funktioniert es aber zuverlässig bei mir. Ich bin jetzt gerade noch dabei, das ganze noch abzuspeichern und dann noch auf R14 lauffähig zu bekommen. ------------------ A fool with a tool is still a fool Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mattu82 Mitglied Systembetreuer / CAD Datenaustausch
Beiträge: 66 Registriert: 23.06.2005
|
erstellt am: 05. Sep. 2005 09:32 <-- editieren / zitieren --> Unities abgeben:
|
zoltan.bekesi Mitglied
Beiträge: 321 Registriert: 22.10.2006 Job: CATIA V5R19 / XP 32bit MS Office 2003 Microstation V8 2004 Edition DELL Precision M6300
|
erstellt am: 02. Apr. 2008 21:51 <-- editieren / zitieren --> Unities abgeben: Nur für mattu82
Hallo, dieses Beispiel funktioniert mit R16 mit der Unterschied, dass Code: CATIA.StartCommand ("Generate CATPart from Product...")
verwendet werden muss. Mein Problem ist, dass ich nach die Generierung des AllCATParts noch den AllCATPart bearbeiten möchte (z.B. Umbenennen), ich kann aber nichts nach den Aufruf von der Script laufen lassen. Eine Möglichkeit wäre natürlich 2 Tasten für die Generierung und für nachher zu verwenden, schön wäre aber eine Lösung ohne Sendkey.Hat hier vielleicht jemand schon mehr Erfahrung? Danke, Zoltan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kaeja Mitglied
Beiträge: 20 Registriert: 28.06.2012 CATIAV5R16, CATIAV5R19, WinXP
|
erstellt am: 18. Jul. 2012 16:53 <-- editieren / zitieren --> Unities abgeben: Nur für mattu82
Hallo, unter R16 habe ich das Problem, dass nach Aufrufen von
Code: Call Shell("wscript c:\sendkey.vbs")
das Makro einfach weiter läuft ohne auf das Ende, sprich die Erzeugung des CATParts zu warten.Ich habe schon versucht mittels
Code: For i = 1 To 1000 DoEvents Sleep 1 Next
Zeit zu schinden. Dabei wartet er aber auch mit dem Umwandeln ins CATPart und meine Makro läuft anschließend weiter ohne dass dass Part fertig ist.Ein anderer Versuch war den Call in einem anderen Sub zu starten und Exit Sub in sendkey.vbs zu schreiben. Das läuft dann aber nicht durch. Gibt es eine Möglichkeit mein Makro solange zu pausieren, bis das CATPart erzeugt wurde? Vielen Dank kaeja Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kaeja Mitglied
Beiträge: 20 Registriert: 28.06.2012 CATIAV5R16, CATIAV5R19, WinXP
|
erstellt am: 20. Jul. 2012 13:49 <-- editieren / zitieren --> Unities abgeben: Nur für mattu82
Auch wenn es die meisten nicht mehr für R16 interessiert, aber ich habe unter GenerateCATPartFromProduct eine super Lösung gefunden. Dabei wird auf externe Shell verzichtet: Code: Sub GenerateCATPartFromProduct() 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.RefreshDisplay = True CATIA.StartCommand "Generate CATPart from Product..." CATIA.RefreshDisplay = True Dim PauseTime, Start, Finish, TotalTime PauseTime = 0.5 Start = Timer Do While Timer < Start + PauseTime DoEvents Loop Finish = Timer TotalTime = Finish - Start CATIA.RefreshDisplay = True SendKeys "{Enter}", True End Sub
Gruss kaeja Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
zoltan.bekesi Mitglied
Beiträge: 321 Registriert: 22.10.2006 Job: CATIA V5R19 / XP 32bit MS Office 2003 Microstation V8 2004 Edition DELL Precision M6300
|
erstellt am: 23. Jul. 2012 17:18 <-- editieren / zitieren --> Unities abgeben: Nur für mattu82
|
kaeja Mitglied
Beiträge: 20 Registriert: 28.06.2012 CATIAV5R16, CATIAV5R19, WinXP
|
erstellt am: 23. Jul. 2012 17:39 <-- editieren / zitieren --> Unities abgeben: Nur für mattu82
Hast Du das unter R16 getestet? Bei funktioniert Code: Set oProd2Part = oBGProd.GetItem("DECProductToPart") oProd2Part.Run
unter R16 nicht, weshalb ich den Weg über Code: CATIA.StartCommand "Generate CATPart from Product..."
nehmen muss.Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |