| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
| |
 | Besichtigung der MAIT.Cloud in Frankfurt | 17.09.2025, eine Veranstaltung am 17.09.2025
|
Autor
|
Thema: LISP: Maßstabsfaktor korrekt umwandeln (1842 mal gelesen)
|
holt Mitglied Systembetreuer CAD
  
 Beiträge: 720 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
erstellt am: 12. Jan. 2007 15:42 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich kämpfe wieder einmal mit der LISP Format-Funktion. Problem: Maßstabsfaktor in einem ansehnlichen Format anzeigen
Code:
(setf Masstab (sd-am-view-struct-scale (sd-am-inq-view Ansicht))) (if (>= Masstab 1) (setf Txt (format nil "M ~D:1" (/ (round (* Masstab 10)) 10))) (setf Txt (format nil "M 1:~D" (/ (round (* (/ 1 Masstab) 10)) 10))) )
Bei Verwendung von ~A oder ~D liefert (display Txt) bei bestimmten Maßstäben eine Bruchzahl! Masstab Txt 0.3333333 M1:3 0.4 M1:5/2 statt M1:2.5 0.2857 M1:7/2 statt M1:3.5Bei Verwendung von ~F wird auch bei ganzzahligen Maßstäben eine Dezimalzahl geliefert. Gibt es dafür eine einfache Lösung? (Ich weiß, die angegebenen Maßstäbe sind nicht unbedingt normgerecht, aber in der Not werden auch solche verwendet.) ------------------ Gruß aus dem Salzkammergut Thomas Hollerweger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
clausb Ehrenmitglied V.I.P. h.c.
     
 Beiträge: 2914 Registriert: 20.12.2000 Ich schreibe das hier in meiner Freizeit und spreche weder für meinen Arbeitgeber noch für andere Firmen. Mehr Unsinn von mir unter clausbrod.de.
|
erstellt am: 12. Jan. 2007 16:49 <-- editieren / zitieren --> Unities abgeben:          Nur für holt
Weil Fliesskommazahlen in heutigen Rechnern grundsaetzlich verlustbehaftet sind (jedenfalls potentiell), versucht Lisp ihre Verwendung so weit wie moeglich hinauszuzoegern, um eben diese Verluste zu vermeiden. Rationale Zahlen werden daher soweit moeglich als Brueche dargestellt. Wenn man das nicht mag, muss man Lisp dazu zwingen, aus der rationalen Zahl eine reelle zu machen. Die Formatspezifikation ~F ist einer von vielen Wegen dazu. Versuche mal sowas wie dieses:
Code:
(format nil "~A" (oli:sd-num-to-string num)))
Claus
------------------ CoCreate OneSpace Modeling FAQ: http://www.clausbrod.de/OneSpaceModeling/ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
holt Mitglied Systembetreuer CAD
  
 Beiträge: 720 Registriert: 07.08.2003 Lenovo ThinkStation P360 Core i7-12700@2.10 GHz, 32GB NVIDIA RTX A2000 12 GB Creo Elements/Direct Modeling 20.5 Creo Elements/Direct Drafting 20.5 Creo Elements/Direct ModelManager 20.5
|
erstellt am: 15. Jan. 2007 07:18 <-- editieren / zitieren --> Unities abgeben:         
|
3d_oli Mitglied Konstrukteur/Techniker

 Beiträge: 20 Registriert: 25.05.2005 XP Prof x64 AMD Opteron 252 2.61 GHz 16.0 GB RAM<P>OSD 13 OSD 14B 64 BIT
|
erstellt am: 30. Jan. 2007 11:22 <-- editieren / zitieren --> Unities abgeben:          Nur für holt
[QUOTE]Original erstellt von holt: [B]Hallo, ich kämpfe wieder einmal mit der LISP Format-Funktion. Problem: Maßstabsfaktor in einem ansehnlichen Format anzeigen. Sitz gerade an einem ähnlichen Problem, und bin durch Dich auf die richtige Spur gekommen. Danke !!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |