| |
 | 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: Parameter und Formeln im Geometrischen Set (1567 / mal gelesen)
|
Mjk Mitglied

 Beiträge: 14 Registriert: 17.06.2013 CATIA V5-6 R24 WINDOWS 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: 12054 Registriert: 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: 14 Registriert: 17.06.2013 CATIA V5-6 R24 WINDOWS 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: 14 Registriert: 17.06.2013 CATIA V5-6 R24 WINDOWS 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: 12054 Registriert: 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: 14 Registriert: 17.06.2013 CATIA V5-6 R24 WINDOWS 7
|
erstellt am: 09. Jan. 2017 08:19 <-- editieren / zitieren --> Unities abgeben:         
|