Autor
|
Thema: Baugruppe mit Makro in Szene setzen (2705 mal gelesen)
|
lamdiabolo Mitglied Student
Beiträge: 31 Registriert: 17.04.2013 Intel Pentium 4CPU 2,8GHz 1GB RAM 32-Bit Betriebssystem Win 7 Catia V5R21
|
erstellt am: 08. Mai. 2013 16:08 <-- editieren / zitieren --> Unities abgeben:
Hallo liebe Forum Freunde, ich muss wieder mal auf eure Hilfe hoffen. Ich probiere im Moment ein Makro zu schreiben, durch das eine Baugruppe in den "Szene Modus" gesetzt wird. Dadrin, soll das Makro alle Spanneinheiten um 90 Grad öffnen um zu schauen, ob die Baugruppe aus der Schweißkonstruktion (also alle Spanneinheiten), nach der Bearbeitung, wieder problemlos herausgenommen werden kann. Ich wäre euch sehr dankbar, falls ihr irgendwelche Vorschläge habt, mir ein wenig zu helfen, da ich gar keine Ahnung habe, ob meine Idee überhaupt realisiertbar ist!?! Vielen Dank im Vorraus Jan 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: 08. Mai. 2013 16:45 <-- editieren / zitieren --> Unities abgeben: Nur für lamdiabolo
Servus Jan Wie weit bist du mit deinem Makro? Was hast du schon alles probiert? Wie würdest du manuell vorgehen? IMHO wird das Ganze etwas komplexer. gemäß Doko kannst du: - eine Szene anlegen - Products darin mit "Move" oder "Position" bewegen Für die Entnahmeuntersuchung der Schweißkonstruktion fällt mir nur die DMU Fitting Workbench ein. Ich vermute, dass sich es nicht rentiert dies zu automatisieren (bzw jeder Vorrichtung und die Voraussetzungen sind anders) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lamdiabolo Mitglied Student
Beiträge: 31 Registriert: 17.04.2013 Intel Pentium 4CPU 2,8GHz 1GB RAM 32-Bit Betriebssystem Win 7 Catia V5R21
|
erstellt am: 13. Mai. 2013 09:44 <-- editieren / zitieren --> Unities abgeben:
Guten Tag Bernd, danke für deine Antwort. Ich habe schon vieles ausprobiert, aber leider möchte sich nichteinmal eine Szene über ein Makro öffnen lassen. Habe es fast schon wieder aufgegeben :-) Manuell gehe ich so vor: 1. Ich öffne eine Baugruppe in welcher Schweißkonstruktionen beinhaltet sind. 2. Durch drücken auf den "Enhaunce Scene"- Knopf,bringe ich die Baugruppe in den Szene Modus. 3. Ich bewege alle PA-Teile um 90 Grad nach oben, als ob man die Schweißvorrichtungen in der Realität öffnen würde um zu schauen, ob man das Bauteil nach dem Schweißvorgang im Ganzen aus der Schweißvorrichtung bekommt. Leider ist es aber sehr aufwendig alle Schweißkonstruktionen und deren PA-Teile zu bewegen, bzw einzelnd zu finden und nacheinander zu öffnen. Da kam mir die Idee ein Makro zu schreiben, welches alle PA-Teile findet und um 90 Grad verschiebt. Hoffe ich konnte dir ein wenig erklären, was ich wie machen wollte Gruß Jan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 13. Mai. 2013 10:15 <-- editieren / zitieren --> Unities abgeben: Nur für lamdiabolo
Hallo Jan, du kannst auch die Spanneinheiten im Part in geschlossener und geöffneter Stellung darstellen. Das ist im Vorrichtungsbau so üblich. ------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lamdiabolo Mitglied Student
Beiträge: 31 Registriert: 17.04.2013 Intel Pentium 4CPU 2,8GHz 1GB RAM 32-Bit Betriebssystem Win 7 Catia V5R21
|
erstellt am: 13. Mai. 2013 10:27 <-- editieren / zitieren --> Unities abgeben:
Hallo Uwe, wenn du eine Möglichkeit weisst,wie ich ein Makro schreiben kann, was das im Part oder Assembly Design machen kann, dann wäre ich dir auch dafür sehr dankbar. Mit freundlichem Gruß Jan 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: 13. Mai. 2013 11:06 <-- editieren / zitieren --> Unities abgeben: Nur für lamdiabolo
Servus Jan Wie soll/kann eine Makro bestimmen welches Teil eine Spannzange ist? Woher weiß das Makro, um welche Achse die Spannzange (oder ein Teil davon) gedreht werden muss? Ja nach dem wie die Teile aufbaut sind, (zB Spannzange als Unterbaugruppe mit zwei Stellungen über Parameter änderbar) wird das Makro etwas einfach oder sehr komplex. Du solltest dir zunächst eine mögliche Strategie für die Lösung des Problems überlegen (ggf wie lässt das ganze am einfachsten manuell lösen, wie lässt sich dies durch Veränderung der Spannzangen vereinfachen, bzw durch den Aufbau der Baugruppen, ...) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3418 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 13. Mai. 2013 11:56 <-- editieren / zitieren --> Unities abgeben: Nur für lamdiabolo
Hallo Jan, du solltest nicht zu komplex denken. Löse das Problem mit einer Baugruppe in der du die geöffnete und geschlossene Position darstellst. Einen Schritt weiter könnte ich mir vorstellen, über einen Parameter (geöffnet;geschlossen) die Situationen zu steuern. ------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lamdiabolo Mitglied Student
Beiträge: 31 Registriert: 17.04.2013 Intel Pentium 4CPU 2,8GHz 1GB RAM 32-Bit Betriebssystem Win 7 Catia V5R21
|
erstellt am: 13. Mai. 2013 15:58 <-- editieren / zitieren --> Unities abgeben:
Habe jetzt ein Makro geschrieben was fast funktioniert, findet leider aber noch nicht die genaue Anzahl der Spanner. Muss ich noch ein wenig dran rumprobieren. Habe aber euren Tipp befolgt und die Spanner erst einmal als Products nachgebaut. Manchmal überschlägt sich mein Spanner um die Drehachse, was natürlich auch nicht sein soll. Sind noch ein paar Feinheiten zu ändern, aber eine solide Basis habe ich dank euren Ideen schon einmal, danke! Mein bisheriger Code: Sub CATMain() dim i as integer 'set selection1 =catia.activedocument.selection 'selection1.search".product.name=G08 Spanner.,all" for i =1 to selection1.count Dim productDocument1 As Document Set productDocument1 = CATIA.ActiveDocument Dim product1 As Product Set product1 = productDocument1.Product Dim products1 As Products Set products1 = product1.Products Dim product2 As Product Set product2 = products1.Item("G08 Spanner."&i) Dim product3 As Product Set product3 = product2.ReferenceProduct Dim constraints1 As Collection Set constraints1 = product3.Connections("CATIAConstraints") Dim constraint1 As Constraint Set constraint1 = constraints1.Item("Spanner öffnen") Dim angle1 As Dimension Set angle1 = constraint1.Dimension if angle1.value=208 then angle1.Value = 90.000000 else angle1.value=208 end if product3.Update next End Sub Vielleicht seht ihr ja eine Möglichkeit meine zwei kleinen Probleme noch simpel zu korrigieren (in FETT geschrieben, meine bislang schlüssigste Idee). Ich habe keine weiteren Ideen mehr. Danke euch schonmal. Gruß Jan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lamdiabolo Mitglied Student
Beiträge: 31 Registriert: 17.04.2013 Intel Pentium 4CPU 2,8GHz 1GB RAM 32-Bit Betriebssystem Win 7 Catia V5R21
|
erstellt am: 14. Mai. 2013 10:00 <-- editieren / zitieren --> Unities abgeben:
Habe jetzt das Problem mit dem überdrehenden Bauteil hinbekommen,habe einfach den Angriffspunkt des Winkels geändert. Leider habe ich aber noch keine gute Lösung um die Spanner in der Baugruppe durchzuzählen, damit sich alle öffnen und nicht nur der erste der Baugruppe. Wäre über ein paar Vorschläge sehr dankbar! Vielen Dank Gruß Jan 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. Mai. 2013 21:13 <-- editieren / zitieren --> Unities abgeben: Nur für lamdiabolo
Servus Ich würde es so pobieren (ungtestet) ggf mit Watch-Fenster verfolgen ob das richtige Product übergeben wird: Code: Sub CATMain()dim selection1 as Selection ' in VBA as Object dim i as integer set selection1 =catia.activedocument.selection selection1.search".product.name=G08 Spanner.,all" for i =1 to selection1.count Dim product1 As Product Set product1 = selection1.item2(i).value.ReferenceProduct Dim constraints1 As Collection Set constraints1 = product1.Connections("CATIAConstraints") Dim constraint1 As Constraint Set constraint1 = constraints1.Item("Spanner öffnen") Dim angle1 As Dimension Set angle1 = constraint1.Dimension if angle1.value=208 then angle1.Value = 90.000000 else angle1.value=208 end if product1.Update next End Sub
Gruß Bernd------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lamdiabolo Mitglied Student
Beiträge: 31 Registriert: 17.04.2013 Intel Pentium 4CPU 2,8GHz 1GB RAM 32-Bit Betriebssystem Win 7 Catia V5R21
|
erstellt am: 15. Mai. 2013 09:34 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für deine Antwort Bernd, doch leider funktioniert dein Code nicht. Es wird mir keine Fehlermeldung angezeigt, jedoch findet er die Spanner nicht und verändert daher auch nicht den Bewegungswinkel. Ich probiere einfach mal weiter, wenn ich was herausgefunden habe, melde ich mich natürlich wieder Gruß Jan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lamdiabolo Mitglied Student
Beiträge: 31 Registriert: 17.04.2013 Intel Pentium 4CPU 2,8GHz 1GB RAM 32-Bit Betriebssystem Win 7 Catia V5R21
|
erstellt am: 16. Mai. 2013 14:16 <-- editieren / zitieren --> Unities abgeben:
Wie kann man den folgenden Code in VBA umschreiben, er gibt mir immer eine Fehlermeldung in VBA aus: Sub CATMain() dim i as integer 'set selection1 =catia.activedocument.selection 'selection1.search".product.name=G08 Spanner.,all" for i =1 to 1 Dim productDocument1 As Document Set productDocument1 = CATIA.ActiveDocument Dim product1 As Product Set product1 = productDocument1.Product Dim products1 As Products Set products1 = product1.Products Dim product2 As Product Set product2 = products1.Item("G08 Spanner."&i) Dim product3 As Product Set product3 = product2.ReferenceProduct Dim constraints1 As Collection Set constraints1 = product3.Connections("CATIAConstraints") Dim constraint1 As Constraint Set constraint1 = constraints1.Item("Spanner öffnen") Dim angle1 As Dimension Set angle1 = constraint1.Dimension if angle1.value=0 then angle1.Value = 118.000000 else angle1.value=0 end if product3.Update next End Sub Das dick geschrieben wird mir immer als Fehlerursprung ausgegeben. Gruß Jan 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: 16. Mai. 2013 14:31 <-- editieren / zitieren --> Unities abgeben: Nur für lamdiabolo
Servus welche Fehlermeldung kommt den? Gibt es den Spanner? Schon mal probiert den Integer i zu einem String zu konvertieren (Set product2 = products1.Item("G08 Spanner."&CStr(i))) Ich hab mal meinen Code etwas angepasst, dass er laufen sollte: Code: Sub CATMain()Dim selection1 As Object Dim i As Integer Set selection1 = CATIA.ActiveDocument.Selection selection1.Search "(Name=G08' 'Spanner'.'* & CATAsmSearch.Assembly),all" For i = 1 To selection1.Count Dim product1 As Product Set product1 = selection1.Item2(i).Value.ReferenceProduct Dim constraints1 As Constraints Set constraints1 = product1.Connections("CATIAConstraints") Dim constraint1 As Constraint Set constraint1 = constraints1.Item("Spanner öffnen") Dim angle1 As Dimension Set angle1 = constraint1.Dimension If angle1.Value = 208 Then angle1.Value = 90# Else angle1.Value = 208 End If product1.Update Next End Sub
Allerdings, wenn ein Spanner mehrfach verbaut wird, pro Schleifendurchlauf der Wert "umgeschaltet". Hast du nur einen Spannertyp, dann muss die Schleife nur einmal abgearbeitet werden.Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lamdiabolo Mitglied Student
Beiträge: 31 Registriert: 17.04.2013 Intel Pentium 4CPU 2,8GHz 1GB RAM 32-Bit Betriebssystem Win 7 Catia V5R21
|
erstellt am: 16. Mai. 2013 16:12 <-- editieren / zitieren --> Unities abgeben:
Dein Code funktioniert bedingt, er öffnet die Spanner, schließt sie aber nicht mehr bzw. schließt sie, aber öffnet sie danach nicht mehr. Finde aber auch keinen Fehler. Um zu wissen, was ich gemacht habe: Ich habe deinen Code in VBA eingegeben und ihn durchlaufen lassen. Alle Spanner haben sich geöffnet, danach habe ich nochmal auf den VBA Button gedrückt und es passierte nichts mehr. Eigentlich müsste sich der Spanner bzw. die Spanner doch durch die If-Funktion immer wieder, beim drücken des Knopfes, öffnen bzw. schließen,oder? Was könnte mein Fehler sein? Gruß und danke an dich Bernd Jan
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: 16. Mai. 2013 16:25 <-- editieren / zitieren --> Unities abgeben: Nur für lamdiabolo
Servus Lass den Code mal schrittweise ablaufen. Wie viele Spanner werden selektiert? Wird der Winkel immer verändert? Wirf mal, wie ich schon geschrieben hab die Schleife raus, sonst wird (wie ich vermute) der Spanner in einem Schritt geöffnet/geschlossen/geöffnet/... Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lamdiabolo Mitglied Student
Beiträge: 31 Registriert: 17.04.2013 Intel Pentium 4CPU 2,8GHz 1GB RAM 32-Bit Betriebssystem Win 7 Catia V5R21
|
erstellt am: 16. Mai. 2013 16:33 <-- editieren / zitieren --> Unities abgeben:
Das Programm hatte irgendwie Probleme mit dem selection1.count, wenn ich da eine 1 stattdessen eingegeben habe, hat es funktioniert. KA wieso das jetzt trotzdem auf alle Spanner zugreift, obwohl ich " For i =1 to 1" geschrieben habe. Naja danke es funktioniert jetzt aber einwandfrei! Gruß Jan 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: 16. Mai. 2013 16:43 <-- editieren / zitieren --> Unities abgeben: Nur für lamdiabolo
Servus Es handelt sich ja um x-mal den selben Spanner. Wenn du manuell in einem Spanner den Winkel ändert, ändert sich logischer weise alle Exemplare mit. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |