|  |  | 
|  | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 | 
|  |  | 
|  | Dassault PLM Integrationen mit der 3DViewStation, eine Pressemitteilung 
 | 
| Autor | Thema:  Baugruppe mit Makro in Szene setzen (2994 mal gelesen) | 
 | lamdiabolo Mitglied
 Student
 
  
 
      Beiträge: 31Registriert: 17.04.2013
 Intel Pentium 4CPU 2,8GHz1GB 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 VorrausJan
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 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: 31Registriert: 17.04.2013
 Intel Pentium 4CPU 2,8GHz1GB 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: 3437Registriert: 28.05.2009
 CATIA V5 R19 SP9WIN 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: 31Registriert: 17.04.2013
 Intel Pentium 4CPU 2,8GHz1GB 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: 12117Registriert: 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: 3437Registriert: 28.05.2009
 CATIA V5 R19 SP9WIN 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: 31Registriert: 17.04.2013
 Intel Pentium 4CPU 2,8GHz1GB 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 ProductSet product1 = productDocument1.Product
 Dim products1 As ProductsSet products1 = product1.Products
 Dim product2 As ProductSet product2 = products1.Item("G08 Spanner."&i)
 Dim product3 As ProductSet product3 = product2.ReferenceProduct
 Dim constraints1 As CollectionSet constraints1 = product3.Connections("CATIAConstraints")
 Dim constraint1 As ConstraintSet constraint1 = constraints1.Item("Spanner öffnen")
 Dim angle1 As DimensionSet 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: 31Registriert: 17.04.2013
 Intel Pentium 4CPU 2,8GHz1GB 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 DankGruß
 Jan
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 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:GrußSub CATMain()
 dim selection1 as Selection ' in VBA as Objectdim i as integer
 set selection1 =catia.activedocument.selection
 selection1.search".product.name=G08 Spanner.,all"
 for i =1 to selection1.count Dim product1 As ProductSet product1 = selection1.item2(i).value.ReferenceProduct
 Dim constraints1 As CollectionSet constraints1 = product1.Connections("CATIAConstraints")
 Dim constraint1 As ConstraintSet constraint1 = constraints1.Item("Spanner öffnen")
 Dim angle1 As DimensionSet angle1 = constraint1.Dimension
 if angle1.value=208 then
 angle1.Value = 90.000000
 else
 angle1.value=208
 end if
 product1.Update nextEnd Sub
 
 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: 31Registriert: 17.04.2013
 Intel Pentium 4CPU 2,8GHz1GB 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: 31Registriert: 17.04.2013
 Intel Pentium 4CPU 2,8GHz1GB 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 1Dim productDocument1 As Document
 Set productDocument1 = CATIA.ActiveDocument
 Dim product1 As ProductSet product1 = productDocument1.Product
 Dim products1 As ProductsSet products1 = product1.Products
 Dim product2 As ProductSet product2 = products1.Item("G08 Spanner."&i)
 Dim product3 As Product
 Set product3 = product2.ReferenceProduct
 Dim constraints1 As CollectionSet constraints1 = product3.Connections("CATIAConstraints")
 Dim constraint1 As ConstraintSet constraint1 = constraints1.Item("Spanner öffnen")
 Dim angle1 As DimensionSet 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: 12117Registriert: 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:Allerdings, wenn ein Spanner mehrfach verbaut wird, pro Schleifendurchlauf der Wert "umgeschaltet".Sub CATMain()
 Dim selection1 As ObjectDim 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 ProductSet product1 = selection1.Item2(i).Value.ReferenceProduct
 Dim constraints1 As ConstraintsSet constraints1 = product1.Connections("CATIAConstraints")
 Dim constraint1 As ConstraintSet constraint1 = constraints1.Item("Spanner öffnen")
 Dim angle1 As DimensionSet angle1 = constraint1.Dimension
 If angle1.Value = 208 Then
 angle1.Value = 90#
 Else
 angle1.Value = 208
 End If
 product1.Update NextEnd Sub
 
 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: 31Registriert: 17.04.2013
 Intel Pentium 4CPU 2,8GHz1GB 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: 12117Registriert: 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: 31Registriert: 17.04.2013
 Intel Pentium 4CPU 2,8GHz1GB 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: 12117Registriert: 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 |