| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
Autor
|
Thema: Gleichung Runden verhält sich seltsam. (1910 / mal gelesen)
|
rons on Mitglied
Beiträge: 4 Registriert: 14.02.2024
|
erstellt am: 14. Feb. 2024 16:46 <-- editieren / zitieren --> Unities abgeben:
Hi, ich bin recht Neu bei Solidworks. Ich blick hier nicht durch, was Solidworks mir da einen Unsinn rundet, wahrscheinlich ist die Lösung nur 1 Klick, aber ich komm nicht drauf. Ich möchte gerne unter Gleichungen runden, aber es rundet mal auf und mal ab, was ist da nur los? Siehe Screenshot. Unter den Einstellungen -> Dokumenteigenschaften -> Einheiten ist eingestellt auf "Auf halbem Weg von der Null runden" wie bringe ich Solidworks dazu, dass es immer bei x,5 aufrundet? [Diese Nachricht wurde von rons on am 14. Feb. 2024 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lueghi Mitglied Admin für alle Systeme ....
Beiträge: 439 Registriert: 01.07.2005 CAD...: SWX2022 SP5, ACAD 2019, Tacton / LINO PDM...: PRO.FILE 8.6 ERP...: proAlpha 6.2e / 7.1 BS....: Win10, HP ZBook G5
|
erstellt am: 14. Feb. 2024 16:58 <-- editieren / zitieren --> Unities abgeben: Nur für rons on
|
rons on Mitglied
Beiträge: 4 Registriert: 14.02.2024
|
erstellt am: 14. Feb. 2024 17:00 <-- editieren / zitieren --> Unities abgeben: Nur für rons on
Zitat: Original erstellt von Lueghi: So ganz verstehe ich Deine Frage nicht: bei x.[b]5 wird doch im dargestellten Bild aufgerundet ?????Gruß Stefan [/B]
Es wird mal aufgerunded und mal abgerundet. Ich möchte das es immer aufrundet. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 817 Registriert: 18.05.2005 SolidWorks 2022 x64 SP5.0 Dell Precision 5820 Intel Xeon W-2125 4x4GHz NVIDIA Quadro P2000 5GB 32GB RAM 2x Dell U2412M, 24" TFT Windows 10 Enterprise x64 22H2 Microsoft 365 E5 Microsoft Visual Studio Enterprise 2022
|
erstellt am: 14. Feb. 2024 17:32 <-- editieren / zitieren --> Unities abgeben: Nur für rons on
Das Problem liegt hier an der Genauigkeit. Computer sind halt so.-> siehe MaschinengenauigkeitSolidWorks verwendet 8 bzw. intern 12 Kommastellen, das reicht eigentlich für 99.99% der Fälle aus. Da gibt es dann manchmal Zahlen wie 0.499999999999 für 0.5. Und beim Runden auf Null-Kommastellen wird aus 0.4 eine 0. Um ganz sicher zu gehen, muss man einen Korrekturwert von 0.0000001 vor dem Runden addieren. z.B. = round ( 0.5 + 0.0000001 )
------------------ 21 ist nur die halbe Antwort. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Olls Lai Lolli Mitglied Konstrukteur
Beiträge: 377 Registriert: 07.05.2009 MS Windows 10 Prof. Intel Xeon E5-1630 v 3 3.7 GHz 32 GB Ram Nvidia Quadro M4000 SWX 2019 x64 SP 5 PDM Enterprise 2019 SP 3
|
erstellt am: 15. Feb. 2024 07:22 <-- editieren / zitieren --> Unities abgeben: Nur für rons on
|
Volkmar Grube Mitglied Konstrukteur
Beiträge: 129 Registriert: 31.01.2009 WIN11 64Bit, SWX 2022, Delphi 10
|
erstellt am: 17. Feb. 2024 10:41 <-- editieren / zitieren --> Unities abgeben: Nur für rons on
Hallo, noch eine Anmerkung: in der Schule habe ich vor ca. 50 Jahren gelernt, dass beim Runden mit ...,5 immer auf die geraden Zahlen gerundet wird. Das macht SWX in den Gleichungen sehr sauber offenbar ohne Berücksichtigung möglicher Einstellungen in den Optionen. ------------------ Grüße aus Dresden Volkmar Grube Es gibt keine Probleme, es gibt nur Aufgaben. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3281 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 19. Feb. 2024 08:15 <-- editieren / zitieren --> Unities abgeben: Nur für rons on
Zitat: Original erstellt von Volkmar Grube: ... vor ca. 50 Jahren gelernt, dass beim Runden mit ...,5 immer auf die geraden Zahlen gerundet wird....
Moin, also ich hab ziemlich fest in Erinnerung, dass es die ganzen Zahlen waren, nicht die geraden - so fest, dass ich in deinem Text "ganzen" gelesen habe, obwohl "geraden" drin steht ... Ist wohl noch sehr früh ... Schönen Start in die Woche! Gruß, Christian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing. / Supporter
Beiträge: 3873 Registriert: 29.09.2004 SOLIDWORKS 2024 SP4.0 SOLIDWORKS 2023 SP5.0 SOLIDWORKS 2022 SP5.0 SOLIDWORKS 2021 SP5.1
|
erstellt am: 19. Feb. 2024 09:57 <-- editieren / zitieren --> Unities abgeben: Nur für rons on
Dass das einfache Runden auf gerade Zahlen runden soll ist mir in meiner Schulbildung nie über den Weg gelaufen. Normalerweise werden 0-4 abgerundet, 5-9 aufgerundet. Spezielle Befehle wie Aufrunden oder Abrunden verhalten sich natürlich anders. In Excel gibt es auch den Befehl Gerade, welcher auf eine gerade Zahl rundet. Allerdings aus meiner Sicht sehr komisch. 1. Es wird immer aufgerundet, also 0.1 wird auf 2 aufgerundet 2. 0 bleibt bei 0 (Aus meiner Sicht korrekt) 3. 2 wird auf 4 aufgerundet (komisch wenn man die 2. beachtet) Hinweis: Auf einer Zeichnung wird ein Mass 20.5 wenn es auf 0 Stellen angezeigt wird, auf 21 gerundet. VBA (SOLIDWORKS und Excel) verhaltet sich gleich, wird gerundet wie bei den Gleichungen in SOLIDWORKS. In Excel direkt ohne VBA getestet. Zelle A1: 1.5 Zelle A2: =A1+0.1 Zelle A3: =A2+0.1 Zelle A4: =A3+0.1 Zelle A5: =A4+0.1 Zelle A6: =A5+0.1 (ist dann 2) Zelle B6 =GERADE(A6) ergibt 4 Zelle C6 =GERADE(2) ergibt 2 Befehl round bez. in Excel Gerade würde ich nicht verwenden. Einfache Mathematik: =Int(X + 0.5) Rundet korrekt :-) oder wenn es auf eine stelle nach dem Komma sein soll: =Int (x*10+0.5)/10 Gruss Mike Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ralf Tide Moderator -
Beiträge: 4999 Registriert: 06.08.2001 Sehr seltsame Dinge passiern <Klaus Lage - Toy Story> .-)
|
erstellt am: 19. Feb. 2024 11:03 <-- editieren / zitieren --> Unities abgeben: Nur für rons on
|
Volkmar Grube Mitglied Konstrukteur
Beiträge: 129 Registriert: 31.01.2009 WIN11 64Bit, SWX 2022, Delphi 10
|
erstellt am: 19. Feb. 2024 14:54 <-- editieren / zitieren --> Unities abgeben: Nur für rons on
Offenbar ist der Rundungsbefehl nur ungefähr genau. Meistens wird aufgerundet, aber manchmal auch abgerundet. Man beachte den Unterschied zwischen der Rundung von 1,35 und 2,35. ------------------ Grüße aus Dresden Volkmar Grube Es gibt keine Probleme, es gibt nur Aufgaben. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rons on Mitglied
Beiträge: 4 Registriert: 14.02.2024
|
erstellt am: 19. Feb. 2024 15:06 <-- editieren / zitieren --> Unities abgeben: Nur für rons on
|
Volkmar Grube Mitglied Konstrukteur
Beiträge: 129 Registriert: 31.01.2009 WIN11 64Bit, SWX 2022, Delphi 10
|
erstellt am: 19. Feb. 2024 15:35 <-- editieren / zitieren --> Unities abgeben: Nur für rons on
Ich dachte, ich versuche es mal mit dem Integerbefehl: aber int(14)=13. Kann das mal bitte jemand in einer anderen SWX -Version probieren? ------------------ Grüße aus Dresden Volkmar Grube Es gibt keine Probleme, es gibt nur Aufgaben. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Spieler Mitglied Mechaniker
Beiträge: 1390 Registriert: 12.12.2002 SOLIDWORKS 2024SP4.0
|
erstellt am: 19. Feb. 2024 17:12 <-- editieren / zitieren --> Unities abgeben: Nur für rons on
|
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing. / Supporter
Beiträge: 3873 Registriert: 29.09.2004 SOLIDWORKS 2024 SP4.0 SOLIDWORKS 2023 SP5.0 SOLIDWORKS 2022 SP5.0 SOLIDWORKS 2021 SP5.1
|
erstellt am: 19. Feb. 2024 18:34 <-- editieren / zitieren --> Unities abgeben: Nur für rons on
Hallo Andi Das mit dem Int(((x*10)+10)/10) ergibt z.B. für x = 0.1 den Endwert 1, es sollte aber 0 sein. Wenn auf keine Stelle nach dem Komma gerundet werden soll reicht Int(x+0.5) z.B. Int(0.1+0.5) = 0 oder Int(0.5+0.5) = 1 Wenn auf eine Stelle nach dem Komma gerundet werden soll dann Int(x*10+0.5)/10 z.B. Int(0.11*10+0.5)/10 = 0.1 oder Int(0.15*10+0.5)/10 = 0.2 Gruss Mike Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3760 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 19. Feb. 2024 19:04 <-- editieren / zitieren --> Unities abgeben: Nur für rons on
|
rons on Mitglied
Beiträge: 4 Registriert: 14.02.2024
|
erstellt am: 20. Feb. 2024 08:07 <-- editieren / zitieren --> Unities abgeben: Nur für rons on
Ich runde ab jetzt so round( x + 0,0000001) weiß zwar nicht warum der user so eine work arround machen soll (wie im best practice), könnte man ja auch patchen anstatt nen "best practice" zu verfassen. ¯\_(ツ _/¯ danke an alle. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ralf Tide Moderator -
Beiträge: 4999 Registriert: 06.08.2001 Sehr seltsame Dinge passiern <Klaus Lage - Toy Story> .-)
|
erstellt am: 20. Feb. 2024 08:17 <-- editieren / zitieren --> Unities abgeben: Nur für rons on
Zitat: Original erstellt von rons on: könnte man ja auch patchen anstatt nen "best practice" zu verfassen. ¯\_(ツ _/¯
Naja...warum denn patchen wenn die Funktion round so definiert ist? @Andi: Danke Dir fürs genaue erklären Hab ich mal als Rat von einem Supportmitarbeiter bekommen: If the feature does not work as expected -> don't use it. My 2 cents Ralf ------------------
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberli Mike Ehrenmitglied V.I.P. h.c. Dipl. Maschinen Ing. / Supporter
Beiträge: 3873 Registriert: 29.09.2004 SOLIDWORKS 2024 SP4.0 SOLIDWORKS 2023 SP5.0 SOLIDWORKS 2022 SP5.0 SOLIDWORKS 2021 SP5.1
|
erstellt am: 20. Feb. 2024 10:02 <-- editieren / zitieren --> Unities abgeben: Nur für rons on
Hallo rons on Dafür gibt es den Verbesserungsvorschlag. Ein Service Request machen wir Reseller nur bei einem Fehler in der Software. Soweit ich es beurteilen kann liegt kein Fehler in der Software vor. Gruss Mike Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian_W Ehrenmitglied V.I.P. h.c. Konstrukteur (Dipl-Ing)
Beiträge: 3281 Registriert: 04.04.2001 CSWP 12/2015<P>SWX2021sp5 Win10/11 (SWX2016, SWX2012) proAlpha6.2e00/calinkV9 (Tactonworks) (Medusa7, NesCAD2010, solidEdge19)
|
erstellt am: 22. Feb. 2024 09:53 <-- editieren / zitieren --> Unities abgeben: Nur für rons on
Zitat: Original erstellt von rons on: Ich runde ab jetzt so round( x + 0,0000001)
Schau bitte auch nochmal in die Dokumentoptionen bei "Einheiten" unter der Tabelle gibt es Einstellungen zur Dezimalrundung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |