| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
| |
| Henny Penny: Teamcenter Workflows optimieren mit BCT CheckIt (BCT CheckIt, Teamcenter Workflowoptimierung, Teamcenter Datenvalidierung, Teamcenter, PDM, PLM, BCT Software), ein Anwenderbericht
|
Autor
|
Thema: Algorithmus zum Runden (2883 mal gelesen)
|
Nauticus Mitglied
Beiträge: 62 Registriert: 28.07.2004 WIN7, NX3/NX8.5
|
erstellt am: 11. Jan. 2007 17:05 <-- editieren / zitieren --> Unities abgeben:
Moin Moin zusammen, habe da folgendes Problem: Ich möchte die Länge eines Körpers (Kante) messen mittels Längenmeßfunktion im Werkzeug->Ausdruck Menü. Diesen Meßwert möchte ich dann auf ein Vielfaches von 50 abrunden (z.B. gemessen: 376 mm, gerundet auf: 350 mm), um ihn dann für ein anderes Objekt weiterverarbeiten zu können. Kennt jemand hierfür eine Funktion oder einen Algorithmus (der im Ausdruck-Menu angewandt werden kann)? Für Antworten oder Tips wäre ich sehr dankbar. Mit freundlichen Grüßen Nauticus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hightower205 Ehrenmitglied Leiter Engineering Services
Beiträge: 1725 Registriert: 27.01.2005
|
erstellt am: 11. Jan. 2007 17:11 <-- editieren / zitieren --> Unities abgeben: Nur für Nauticus
Hi Nauticus, abrunden: floor() aufrunden: ceil() Fallunterscheidung muss m.W. über if-then gemacht werden... ------------------ Hoffeeinehilfegewesenzusein Gruß Ralf Improvisieren ist nur dann eine Kunst, wenn man nicht unvorbereitet aussieht... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Markus_30 Moderator CAx-Architect
Beiträge: 5551 Registriert: 21.03.2005 Windows 10 (21H2) NX 2007 Series
|
erstellt am: 12. Jan. 2007 05:35 <-- editieren / zitieren --> Unities abgeben: Nur für Nauticus
Hallo, Laut Hilfefunktion in NX3 (zumindest bei meiner Installation, vielleicht wurde es inzwischen geändert) funktioniert das Runden mit dem Befehl round(), wobei man da auch die Anzahl der Nachkommastellen angeben kann. Das funktioniert aber nicht (Stand NX3.0.4.1 MP01). Deswegen nehme ich den zu rundenden Wert und multipliziere ihn (für zwei Nachkommastellen mit 100, für drei mit 1000). Danach runde ich mit round(). Danach teile ich wieder durch den Multiplikator für die Nachkommastellen. Ich habe noch keine andere Möglichkeit gefunden, die Runderei anders zu machen. In deinem Fall könnte man deinen abzurundenden Wert nehmen, durch 50 teilen (soll ja auf ein vielfaches von 50 abgerundet werden). Dann bekommst du in deinem Beispiel einen Wert von 7,52 (376/50). Bei diesem Wert kannst du die Nachkommastellen mit floor() abschneiden. Dann hast du 7. Die multiplizierst du wieder mit 50. Kommt am Ende das gewünschte Ergebnis von 350 raus. ------------------ Gruß Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hightower205 Ehrenmitglied Leiter Engineering Services
Beiträge: 1725 Registriert: 27.01.2005
|
erstellt am: 12. Jan. 2007 09:17 <-- editieren / zitieren --> Unities abgeben: Nur für Nauticus
|
Nauticus Mitglied
Beiträge: 62 Registriert: 28.07.2004 WIN7, NX3/NX8.5
|
erstellt am: 12. Jan. 2007 10:01 <-- editieren / zitieren --> Unities abgeben:
|
Markus_30 Moderator CAx-Architect
Beiträge: 5551 Registriert: 21.03.2005 Windows 10 (21H2) NX 2007 Series
|
erstellt am: 15. Jan. 2007 05:28 <-- editieren / zitieren --> Unities abgeben: Nur für Nauticus
Zitat: Original erstellt von Hightower205: Wow...so schön habe ich das natürlich nicht beschrieben... Gruß Ralf
Tja, man tut, was man kann Ich freu mich, dass ich helfen konnte. ------------------ Gruß Markus [Diese Nachricht wurde von Markus_30 am 15. Jan. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |