| |
 | 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: Formeleditor; String (337 mal gelesen)
|
dddt1 Mitglied Ingenieur

 Beiträge: 44 Registriert: 27.04.2021
|
erstellt am: 18. Aug. 2025 12:04 <-- editieren / zitieren --> Unities abgeben:         
Hallo Zusammen! Frage zu Formeleditor. Es gibt einen String "30x20x10" Wie kann ich wahlweise eine der drei Werte( entweder 30 oder 20 oder 10) auslesen? Wobei es kann auch sein, dass der erste oder der zweite Wert auch dreistellig sein können. Bedeutet, dass der String bis zum Zeichen "x" durchgesucht werden soll und dann gesplittet. Im VBA ist kein Problem, aber soll im Rahmen des Formleeditors gelöst werden. Danke im Voraus Beste Grüße dddt1 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
razzor88 Mitglied

 Beiträge: 44 Registriert: 09.06.2016
|
erstellt am: 18. Aug. 2025 12:21 <-- editieren / zitieren --> Unities abgeben:          Nur für dddt1
Hi, hier ein kleines Beispiel mit einer einfachen Rule. Wenn du eine Formel brauchst für einen Wert, dann müsstest du die Search und Extract Funktionen entsprechend ineinander schachteln sodass du den entsprechenden Wert bekommst... let Size (String) let WidthX (Length) let WidthY (Length) let Height (Length) Size = "30x20x10" Index1 = Size -> Search ( "x" , 0 , True) Index2 = Size -> Search ( "x" , Index1+1 , True) WidthX = Size -> Extract ( 0 , Index1 ) -> ToReal() *1mm WidthY = Size -> Extract ( Index1 +1, Index2 - Index1 -1 ) -> ToReal() *1mm Height = Size -> Extract ( Index2 +1, Size -> Length() - Index2 -1 ) -> ToReal() *1mm [Diese Nachricht wurde von razzor88 am 18. Aug. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dddt1 Mitglied Ingenieur

 Beiträge: 44 Registriert: 27.04.2021
|
erstellt am: 18. Aug. 2025 12:46 <-- editieren / zitieren --> Unities abgeben:         
|
razzor88 Mitglied

 Beiträge: 44 Registriert: 09.06.2016
|
erstellt am: 18. Aug. 2025 12:59 <-- editieren / zitieren --> Unities abgeben:          Nur für dddt1
Wenn du keine Rule verwenden kannst, dann musst du einfach nur die Formel für den jeweiligen Wert anpassen. Also Index1 Index2 usw durch die jeweilige Formel für Index1 und Index2 ersetzen und schon erhältst du die komplette Formel. Hier die 3 Formeln: "size" ist dabei der string parameter der die dimensionen enthält, den müsstest du dann noch durch deinen Parameter ersetzen. size -> Extract ( 0 , size -> Search ( "x" , 0 , True) ) -> ToReal() *1mm size -> Extract ( size -> Search ( "x" , 0 , True) +1, size -> Search ( "x" , size -> Search ( "x" , 0 , True) +1 , True) - size -> Search ( "x" , 0 , True) -1 ) -> ToReal() *1mm
size -> Extract ( size -> Search ( "x" , size -> Search ( "x" , 0 , True)+1 , True) +1, size -> Length() - size -> Search ( "x" , size -> Search ( "x" , 0 , True)+1 , True) -1 ) -> ToReal() *1mm
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dddt1 Mitglied Ingenieur

 Beiträge: 44 Registriert: 27.04.2021
|
erstellt am: 18. Aug. 2025 13:35 <-- editieren / zitieren --> Unities abgeben:         
|
dddt1 Mitglied Ingenieur

 Beiträge: 44 Registriert: 27.04.2021
|
erstellt am: 28. Aug. 2025 21:44 <-- editieren / zitieren --> Unities abgeben:         
Guten Morgen Zusammen, leider soll ich das Thema noch mal kurz aufgreifen. Habe ein String, der auch so aussehen kann: 50x50x5x5 oder 100x50x5,5x6,7 Ich benötige den Zugriff auf die Zahlen, die zwischen "X" stehen. Mit den Operatoren "Extract" und "Search" komme ich leider nicht ans Ziel. Gibt es eine Lösung mit diesen oder anderen Operatoren? Danke im Voraus! Beste Grüße dddt1
[Diese Nachricht wurde von dddt1 am 28. Aug. 2025 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12113 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 28. Aug. 2025 22:20 <-- editieren / zitieren --> Unities abgeben:          Nur für dddt1
Servus Also kann die Anzahl der x im String variieren? Benötigst du die Einzelwerte als String oder als Länge/Reellezahl? Hast du die Knowlegeware Lizenz oder muss alles über Formel gehen? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dddt1 Mitglied Ingenieur

 Beiträge: 44 Registriert: 27.04.2021
|
erstellt am: 29. Aug. 2025 11:15 <-- editieren / zitieren --> Unities abgeben:         
Hallo Bernd danke für deine Rückmeldung. Man hat immer vier Werte, mit immer drei "X" getrennt. Ich benötige nähmlich die vier Werte als reele Zahlen. KWL habe ich nicht. Bis jetzt, wo ich ein String mit drei Werte ind zwei X hatte, hat es mit den Formel von razzor88 funktioniert. Beste Grüße dddt1 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12113 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 29. Aug. 2025 16:30 <-- editieren / zitieren --> Unities abgeben:          Nur für dddt1
|
dddt1 Mitglied Ingenieur

 Beiträge: 44 Registriert: 27.04.2021
|
erstellt am: 29. Aug. 2025 16:47 <-- editieren / zitieren --> Unities abgeben:         
|
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12113 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 29. Aug. 2025 17:05 <-- editieren / zitieren --> Unities abgeben:          Nur für dddt1
Nein, ich verwende schon ein "x", bilde nur einen temporären String (den man verdecken/ausblenden kann) damit die Formel übersichtlicher wird. In R19 haben search und extract noch nicht alle Funktionen/Parameter. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
dddt1 Mitglied Ingenieur

 Beiträge: 44 Registriert: 27.04.2021
|
erstellt am: 07. Sep. 2025 21:17 <-- editieren / zitieren --> Unities abgeben:         
|