| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
Autor
|
Thema: RGB - Code richtig anzeigen lassen? (1507 / mal gelesen)
|
Seele Mitglied Konstrukteur
Beiträge: 364 Registriert: 11.06.2003
|
erstellt am: 29. Sep. 2018 20:10 <-- editieren / zitieren --> Unities abgeben:
folgendes Problemchen: man lässt sich den RGB-Farb-Code einer Fläche ausgeben mit folgendem Befehl: (display (format nil "Flächenfarbe RGB: ~A" (sd-inq-face-color SelFace))) dann erhält man als Ausgabe einen RGB-Code aus 3 Zahlen mit Komma getrennt jeweils <= 1. z.B. 1,0,1 was als richtiger RGB-Code 255,0,255 entspricht. Theoretisch müssten die Rückgabewerte ja jeweils nur mit 255 multipliziert werden. Wie stelle ich das an, das der Rückgabewert gleich die richtige gewünschte Ausgabe liefert? Gibt es in LISP da einen Zusatz für den format nil ? Bedanke mich gleich mal im Vorraus für eure Hilfe. Gruß Wolfgang PS: Beim Farbe einstellen gebe ich ja auch 255, 0, 255 ein und nicht 1,0,1 ! ------------------ alles ist möglich, nichts funktioniert und trotzdem muß es bis morgen geschafft sein. Werden wir es schaffen? Ja wir schaffen das !!! :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Ehrenmitglied V.I.P. h.c. Tastenhauer
Beiträge: 2017 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build19044.2364 ● Drafting V17~V20.5.1 ● Modeling V17~V20.5.1
|
erstellt am: 04. Okt. 2018 21:15 <-- editieren / zitieren --> Unities abgeben: Nur für Seele
Zitat: Original erstellt von Seele: (display (format nil "Flächenfarbe RGB: ~A" (sd-inq-face-color SelFace)))Wie stelle ich das an, das der Rückgabewert gleich die richtige gewünschte Ausgabe liefert? Gibt es in LISP da einen Zusatz für den format nil ?
Brocken hin werf: Code: (setq rgb-color (sd-color-to-rgb (sd-inq-face-color SelFace))) ;; rbg triple (setq rbg-color255 (sd-vec-scale rgb-color 255)) ;; normiert auf 0..255
Wenn es jetzt zu Rundungsfehlern kommt *) musst du format nil pimpen Code: (format nil "~2,0d,~2,0d,~2,0d" (gpnt3d_x rbg-color255) (gpnt3d_y rbg-color255) (gpnt3d_z rbg-color255))
Wenn Du die Hexadezimale Schreibweise, wie z.b. in HTML üblich, haben willst, wäre folgendes einfacher: Code: (display (format nil "Flächenfarbe : #~6,0x" (sd-inq-face-color SelFace)))
Eine andere Alternative wäre eine Minifunktion, der Du die Color gibst, und die die 3 Anteile ohne Rundungsfehler via modulo und remainder ermittelt. Diese könnte dann sd-color-to-rgb-255 lauten und entsprechend robust sein.
Gruss Wolfgang zurück *) - nein, der Blick auf die Personenwaage ist dafür nicht nötig
------------------ ● Firefox ESR ● Java Forum Stuttgart JUGS ● OSD Hilfeseite (de) / help page (en) ● NotePad++ ● BuFDi ● Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Seele Mitglied Konstrukteur
Beiträge: 364 Registriert: 11.06.2003
|
erstellt am: 05. Okt. 2018 13:03 <-- editieren / zitieren --> Unities abgeben:
Wie immer besten Dank für die Hilfreiche Auskunft, ... Hat funktioniert, ... Gruß Wolfgang ------------------ alles ist möglich, nichts funktioniert und trotzdem muß es bis morgen geschafft sein. Werden wir es schaffen? Ja wir schaffen das !!! :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Seele Mitglied Konstrukteur
Beiträge: 364 Registriert: 11.06.2003 Intel(R) Xeon(R) W-2245 CPU @ 3,90 GHz, 64GB RAM NVidia Quadro RTX A4000 Win10-64Bit Elements/Direct v20.5.1.0 PartLibrary, Surfacing, 3D-PDF, 3D-Access, Unigraphics-Schnittstelle
|
erstellt am: 22. Okt. 2018 15:21 <-- editieren / zitieren --> Unities abgeben:
Hallo, falls jemand auch den korrekten RGB-Code wissen will, hier meine Lösung: (DISPLAY (format nil "Flächenfarbe-RGB~30T: ~a,~a,~a" (round (gpnt3d_x (sd-vec-scale (sd-inq-face-color SelFace) 255))) (round (gpnt3d_y (sd-vec-scale (sd-inq-face-color SelFace) 255))) (round (gpnt3d_z (sd-vec-scale (sd-inq-face-color SelFace) 255))) )) Gruß Wolfgang ------------------ alles ist möglich, nichts funktioniert und trotzdem muß es bis morgen geschafft sein. Werden wir es schaffen? Ja wir schaffen das !!! :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Freiraumplanerin / Freiraumplaner oder Landschaftsarchitektin / Landschaftsarchitekt (w/m/d) | Detmold - die familienfreundlichste Stadt in Ostwestfalen-Lippe - verfügt über ein umfassendes hochwertiges Hochschul-, Bildungs- und Betreuungsangebot, internationales Flair, einen hohen Freizeitwert und ein vielfältiges kulturelles Angebot. Als größte kreisangehörige Stadt in Lippe mit rund 77.000 Einwohnerinnen und Einwohnern hat sie die Funktion eines Mittelzentrums mit Sitz zahlreicher Institutionen und Verwaltungen.... | Anzeige ansehen | Projektmanagement |
|
der_Wolfgang Ehrenmitglied V.I.P. h.c. Tastenhauer
Beiträge: 2017 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build19044.2364 ● Drafting V17~V20.5.1 ● Modeling V17~V20.5.1
|
erstellt am: 05. Mrz. 2019 19:09 <-- editieren / zitieren --> Unities abgeben: Nur für Seele
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|