| |
| KISTERS 3DViewStation: 3D-Heatmaps für aussagekräftige Machbarkeitsanalysen, eine Pressemitteilung
|
Autor
|
Thema: Parameterwert runden (9740 mal gelesen)
|
John-117 Mitglied Technischer Zeichner
Beiträge: 20 Registriert: 01.04.2010 CATIA V5 R19-R24
|
erstellt am: 09. Apr. 2010 08:27 <-- editieren / zitieren --> Unities abgeben:
Hallo, wir haben eine automatische Stückliste erstellt (in Catia V5 R16) und sind mal wieder auf ein kleines Problem gestoßen: In der Stückliste tauchen auch die Angaben Abmaße (Länge, Breite, Höhe) auf. Diese werden über Parameter gesteuert. Und zwar mache ich bei dem Teil eine Messung und sage dann, dass der entsprechende Parameter den gleichen Wert haben soll wie die Messung. Und eben dieser Parameter steuert dann die Längen-, Breiten- oder Höhenangabe in meiner Stückliste. Nur wenn ich ein Teil mit einer unebenen Kontur (bei einem Druckgusswerkzeug z.B. der Formeinsatz) habe, dann kann es sein, dass der Wert für die Höhe mehrere Stellen nach dem Komma hat. z.B.: "10,3940239" Jetzt wollte ich die Formel für den Parameter so umschreiben, dass dieser gemessene Wert auf 2 Stellen nach dem Komma gerundet wird. Weil manchmal hat man da 12 Stellen nach dem Komma oder mehr und das sollte nicht unbedingt sein. Nur weis ich leider nicht wie ich das runden kann... Ich hoffe ihr könnt mir da helfen. mfg John Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rough-tec Mitglied Konstrukteur
Beiträge: 387 Registriert: 19.04.2007 V5R16 SP5 V5R17 SP3 V5R19 SP3 NX5 *grr* WIN XP Prof SP3 DELL - NVIDIA Quadro 4000 12GB RAM 64bit
|
erstellt am: 09. Apr. 2010 08:33 <-- editieren / zitieren --> Unities abgeben: Nur für John-117
Hallo John Bei mir sieht das zum Beispiel so aus: "RealZahl" = round(MeasureBetween.1\Length ,"mm",0) *1000 ------------------ Viele Grüsse aus dem Süden Rough ________________________________________________ Zu Risiken und Nebenwirkungen.. fragen Sie Ihren Admin oder schalten Sie den Rechner aus. XING Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DMaier Mitglied Key-User CAD/PLM/ERP
Beiträge: 182 Registriert: 09.04.2008 Catia V5 R2015 SP5 Anbindung an SAP ECC 6.0 und PartSolutions 8.1.08 Win7
|
erstellt am: 09. Apr. 2010 08:52 <-- editieren / zitieren --> Unities abgeben: Nur für John-117
|
AMG_C30 Mitglied NC-Programmierer
Beiträge: 413 Registriert: 14.12.2003
|
erstellt am: 09. Apr. 2010 09:34 <-- editieren / zitieren --> Unities abgeben: Nur für John-117
Hallo, ich habe mal versucht das Runden nachzuvollziehen, mir gelingt es allerdings nicht auf zwei Nachkommastellen zu runden, außerdem gibt Catia eine Warnung aus mit der ich nicht viel anfangen kann. Bitte um Aufklärung! ------------------ Gruß Uwe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Ehrenmitglied V.I.P. h.c. Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 09. Apr. 2010 10:18 <-- editieren / zitieren --> Unities abgeben: Nur für John-117
Hallo Uwe, eine Reale Zahl ist eine Gleitkommazahl OHNE Einheit. Deshalb musst du die Einheit nach dem Runden "wegkürzen". Um die zu bewerkstelligen brauchst du folgenden Code: Code: round(MeasureEdge.1\Length,"mm",2)*(1/1mm)
Hier die Erklärung:
- round: Rundet eine Zahl in der angegebenen Einheit, auf die angegebenen Stellen
- MeasureEdge.1\Length: Ist der Parameter der Messung die beibehalten wurde (das hier ist eine LÄNGE)
- "mm": gibt die Einheit der Zahl an die gerundet werden soll (in dem Fall eine Länge)
- 2: Anzahl der Nachkommastellen auf die gerundet wird
- (1/1mm): Hier wird gekürzt da die realle Zahl eine Gleitkommazahl OHNE Einheit verlangt
Den letzten Punkt würdest du z.B. nicht brauchen wenn du erst einen Parameter des Typs Länge erzeigst und anschließend die Rundung durchführst. ------------------ MFG Daniel Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
John-117 Mitglied Technischer Zeichner
Beiträge: 20 Registriert: 01.04.2010 CATIA V5 R19-R24
|
erstellt am: 09. Apr. 2010 11:13 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe mal die Formel hier verwendet: Code: round(Messung zwischen.1\Länge,"mm",2)*(1/1mm)
Nur kam dabei folgende Feherlmeldung (siehe Bild im Anhang) Der Parameter jedenfalls ist eine Reelle Zahl. Weis jemand woran das liegen könnte??? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 09. Apr. 2010 11:15 <-- editieren / zitieren --> Unities abgeben: Nur für John-117
Servus Gibt es bei dir die Messung zwischen (entsprechend Anpassen)? Wenn ja müsste das in ' stehen (Sonderzeichen) (zB 'Messung zwischen\Länge') Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
John-117 Mitglied Technischer Zeichner
Beiträge: 20 Registriert: 01.04.2010 CATIA V5 R19-R24
|
erstellt am: 09. Apr. 2010 11:20 <-- editieren / zitieren --> Unities abgeben:
|
John-117 Mitglied Technischer Zeichner
Beiträge: 20 Registriert: 01.04.2010 CATIA V5 R19-R24
|
erstellt am: 09. Apr. 2010 12:00 <-- editieren / zitieren --> Unities abgeben:
Ich habe eine Lösung gefunden!!! (siehe Bild im Anhang) Man muss es wie folgt schreiben: Das "ToString" hatte noch gefehlt. Code: ToString(round('Messung zwischen.1'\Länge,"mm",2)*1000)
Dann lässt sich der Wert im Parameter auf 2 Stellen nach dem Komma runden. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Ehrenmitglied V.I.P. h.c. Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 09. Apr. 2010 12:44 <-- editieren / zitieren --> Unities abgeben: Nur für John-117
Hallo John, also noch einmal. Wenn du einen Parameter hast dem du einen Wert zuweisen willst dann MUSS der Wert exakt dem Datentyp des Parameters entsprechen dem du den Wert zuweisen willst. Du hast jetzt einen Parameter des Typs String (=Zeichenfolge) definiert. D.h. du musst den Wert von Real nach String konvertieren und das machst du mit "toString". Das ist aber nicht gut den mit einem String (=Textparameter) lässt sich nicht OHNE Konvertierung rechnen. Achte mal darauf das du einen neuen Parameter des Typs "real" (=Ganzzahl) erzeugst und dann nimm meine Formel her (die funktioniert :lol . Mit diesem Parameter (des Typs real) kannst du dann auch OHNE Konvertierung rechnen. ------------------ MFG Daniel Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |