| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. | | |  | KISTERS 3DViewStation: Neuer Strukturvergleich ab sofort verfügbar, eine Pressemitteilung
|
Autor
|
Thema: Part-Reaktion auch im Product anwenden (568 mal gelesen)
|
crob08 Mitglied

 Beiträge: 43 Registriert: 17.07.2005
|
erstellt am: 19. Mrz. 2009 09:02 <-- editieren / zitieren --> Unities abgeben:         
Hallo, anbei findet Ihr eine kleine Reaktion. Ziel dieser Reaktion ist es, bei Änderung definierter Parameter eine Aktualisierung von parametrisierten Ansichten vorzunehmen. Das funktioniert soweit auch fast. 1.Problem: Die Reaktion wird leider immer mit den vorletzten Werten gespeist! Meiner Meinung nach braucht mein Rechner länger die ganzen Parameter zu ändern, als die Reaktion zu starten. Gibt es daher eine Art delay, welches die Reaktion zeitverzögert (1-2s) starten lässt? Könnte mir sonst auch vorstellen, den Code als Makro zu generieren, so dass ich die Aktualisierung selber starte und nicht mehr mit einer Reaktion arbeiten muss. Leider weiß ich nicht, was ich im Quelltext umschreiben muss, damit das Makro läuft. 2. Problem: Wenn ich das Part in ein Produkt einbinde, funktioniert es nicht mehr. Macht ja Sinn, da das aktive Dokument ja kein Part mehr ist, sondern ein Product. Wie kann ich also diese Zeile verallgemeinern, damit es auch im Product funktioniert? Würde mich freuen, wenn Ihr mir helfen könntet. DANKE! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
   
 Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 19. Mrz. 2009 22:53 <-- editieren / zitieren --> Unities abgeben:          Nur für crob08
Hallo crob08, bei Deinem Code musst Du, wenn ich mich nicht irre, nur die erste Zeile ändern, von: Code: Sub main
inCode: Sub CATMain()
, die "Dim-Zeilen" "separieren" (je Parameter eine Zeile oder für jeden Parameter auch ein "As .."-Argument!) und anschließend als *.CATScript abspeichern. Dann kannst Du den Code über "Tools->Macro->Macros" aufrufen und ausführen.Für die Ausführung des Scriptes in Parts innerhalb von Product-Strukturen ist natürlich noch etwas mehr notwendig. Hier musst Du genau das Part bestimmen, in welchem das Macro ausgeführt werden soll. Das funktioniert entweder über das "Durchhangeln" vom Root-Product bis hin zum Ziel-Part oder, schöner, über eine Selektion. Als dritte Alternative ist hier noch die Abarbeitung des Skriptes in allen Parts denkbar. Für die Selektion müsstest Du die Zeile Code: Set oPart = CATIA.ActiveDocument
inCode: Dim iSelection As Selection Dim sFilter(0)Set sFilter(0) = "Part" Set iSelection = CATIA.ActiveDocument.Selection iSelection.Clear '<- optional! iSelection.SelectElement2(sFilter, "Part selektieren", False) If Status = "Cancel" Then Exit Sub Set oPart = iSelection.Item(1).Value
ändern.Ich hoffe, ich habe keinen "Schnitzer" drin, kann es gerade nicht testen! [Edit]Was ich noch vergaß: Bei der "Cameras"-Zeile bin ich mir nicht sicher, eventuell musst Du dort auch "oPart.Cameras" durch "CATIA.ActiveDocument.Product.Cameras" austauschen![/Edit]
mfg, Lusilnie
------------------ Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern [Diese Nachricht wurde von Lusilnie am 19. Mrz. 2009 editiert.] [Diese Nachricht wurde von Lusilnie am 19. Mrz. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
crob08 Mitglied

 Beiträge: 43 Registriert: 17.07.2005
|
erstellt am: 20. Mrz. 2009 18:07 <-- editieren / zitieren --> Unities abgeben:         
Hi Lusilnie, vielen Dank für die Antwort und die Tipps. Hat mir wirklich sehr geholfen. Allerdings müssen die CAMERAS wie folgt ausgewählt werden:
Code: Set oCams = CATIA.ActiveDocument.Cameras
Ich würde aber gerne die Kameras sowohl im ActiveDocument, also im Product, als auch im selektierten Part abspeichern. Wie muss ich jetzt die obige Zeile verändern, damit ich den "Ort" der Part-Kameras angebe? Habe es schon über die Selektion versucht, allerdings bin ich ja dann schon eine "Ebene" zu weit... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |