|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. | 
|  |  | 
|  | KISTERS 3DViewStation: Unterstützung für 3D CAD Kollaboration mit Lieferanten, eine Pressemitteilung 
 | 
| Autor | Thema:  Parameter und Formeln im Geometrischen Set (1691 /  mal gelesen) | 
 | Mjk Mitglied
 
 
  
 
      Beiträge: 14Registriert: 17.06.2013
 CATIA V5-6 R24WINDOWS 7
 |    erstellt am: 20. Dez. 2016 12:36  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo zusammen, ich schreibe gerade an einem VBA Makro in dem ich gern einige Parameter und Formeln innerhalb eines Sets erstellen möchte.Diese Parameter (und Formeln) sollen nur für die Elemente die sonst noch innerhalb dieses Sets sind gültig sein.
 Am Ende werden es wohl mehrere hundert solcher Sets werden, daher ist die Ordnung über die erste Ebene im Part (Relations und Parameters) sehr unübersichtlich.
 Wenn ich diese Parameter/Formeln manuell erstelle kann ich diese danach direkt in das gewünschte Set ziehen. Sie verlieren dabei nicht ihre Verlinkungen. Das Ergebnis entspricht genau dem, das ich erreichen möchte.
 Ich hoffe ihr könnt mir weiter helfen.
 Ich freue mich natürlich auch über zusätzliche Fragen wenn ich das Problem nicht deutlich genug dargestellt habe.
 Viele Grüße [Diese Nachricht wurde von Mjk am 20. Dez. 2016 editiert.] 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: 20. Dez. 2016 13:19  <-- editieren / zitieren -->    Unities abgeben:           Nur für Mjk   
  Servus Anbei ein Beispiel wie du einen Parameter in einem GeoSet erstellen kannst. Code:Sub CATMain()
 Set partDocument1 = CATIA.ActiveDocument Set part1 = partDocument1.Part Set hybridBodies1 = part1.HybridBodies Set MyhybridBody = hybridBodies1.Item("MeinGeoSet") Set myParameters = part1.parameters.Sublist( MyhybridBody ,false) Set chk = myParameters.CreateBoolean ("checked", False) End Sub 
 Mit Formel müsste es dann entsprechend auch funktionieren. GrußBernd
 ------------------Warum einfach, wenn es auch kompliziert geht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Mjk Mitglied
 
 
  
 
      Beiträge: 14Registriert: 17.06.2013
 CATIA V5-6 R24WINDOWS 7
 |    erstellt am: 20. Dez. 2016 15:10  <-- editieren / zitieren -->    Unities abgeben:            
  Hallo, vielen Dank für deine Antwort.Der "Sublist"-Befehl wirkt wahre Wunder.
 Klappt bei Paramtern und Formeln.
 Code:
 'Die Formel erstellen
 Set LocalRelations = oPart1.Relations.SubList(oGeometricalSet, False)
 Set SurfaceRotationRelation = LocalRelations.CreateFormula("Relation_Beam_Variety." + CStr(iCurrentElement), "Beam variation around corrective angle", oRotatedSurface.Angle, "2deg + 14deg")
 
 
 Irgendwie habe ich jetzt gerade aber das Problem, das in dem Moment wo ich der Formel eine Bedeutung gebe, also im Beispiel, sie dem oRotatedSurface.Angle zuweise, das Makro sehr langsam läuft. Leider habe ich keine Ahnung warum. Zu komplex ist die Gleichung wohl nicht. Im Strukturbaum kann man auch erkennen das der eigentliche "Angle" Parameter in einen "Distance" Parameter umgetauft wird - ich vermute hier irgendeine langwierige Typenumwandlung aus dem eigentlichen Winkel über viele Versuche zu einem Winkel... Sehr komisch.... Gruß Gruß
 [Diese Nachricht wurde von Mjk am 20. Dez. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | Mjk Mitglied
 
 
  
 
      Beiträge: 14Registriert: 17.06.2013
 CATIA V5-6 R24WINDOWS 7
 |    erstellt am: 22. Dez. 2016 13:09  <-- editieren / zitieren -->    Unities abgeben:            
  ... ich glaube ich habe den falschen Button gedrückt ... das Problem mit den Parametern ist zwar behoben, aber diese Umwandlung von Angle in Distance (vor allem die Zeit) stellt mich aber vor eine Herausforderung, der ich nicht gewachsen bin. Viele Grüße 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: 22. Dez. 2016 13:34  <-- editieren / zitieren -->    Unities abgeben:           Nur für Mjk   
  Servus Probier mal ob es was bringt für oRotatedSurface.Angle  ein zusätzliches Objekt zu erzeugen. zB Code:dim MyParaAngle as Angle
 set MyParaAngle = oRotatedSurface.Angle
 Set SurfaceRotationRelation = LocalRelations.CreateFormula("Relation_Beam_Variety." + CStr(iCurrentElement), "Beam variation around corrective angle", MyParaAngle, "2deg + 14deg")
 
 ggf wird dann der Typ nicht zwischendurch konvertiert. GrußBernd
 ------------------Warum einfach, wenn es auch kompliziert geht.
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                       
 | Mjk Mitglied
 
 
  
 
      Beiträge: 14Registriert: 17.06.2013
 CATIA V5-6 R24WINDOWS 7
 |    erstellt am: 09. Jan. 2017 08:19  <-- editieren / zitieren -->    Unities abgeben:            |