Hallo yalapeak,
und herzlich willkommen im SolidWorks-Brett auf CAD.de
Interessante Entdeckung, die du da gemacht hast - und kann ich bestätigen, passiert bei mir hier in SW2012 SP4.0 auch genauso.
Ich hab allerdings auch schon eine Erklärung dafür: Rundungsungenauigkeiten, der Todfeind aller (unaufmerksamen) Programmierer. Ich versuch das mal an deinem Beispiel zu erklären:
Dein Rotwert von 5 in der Einstellung wird in der PM2 Datei als Dezimalwert mit 8 Nachkommastellen abgelegt. Gerechnet wird
R = 5 / 255 = 0,01960784313725490196078431372549
Die Fett gekennzeichneten Stellen werden also abgespeichert, und zwar wird dabei dummerweise gerundet (deswegen funktioniert z.B. die 8 als Farbwert ganz gut, da wird aufgerundet ).
Bei Einlesen deines Erscheinungsbildes hat jetzt die Rundungsungenauigkeit vermutlich einen unglücklichen Zusammenstoß mit einer Int() Funktion, was dann zum Fehler führt:
Rneu = 0,0196078 * 255 = 4,999989
Hier wird dann scheinbar nicht mehr gerundet, sondern nur der Wert vor dem Komma genommen.
Mit 18 geht es genauso:
18/255 = 0,07058823529411764705882352941176
0,0705882 * 255 = 17,999991
Ich würde es an deiner Stelle über deinen Vertriebspartner als Fehler melden und wenn es wirklich dringend ist von Hand im Editor eben die Farbdefinition des Erscheinungsbild "tweaken", dass der Wert beim Einlesen rauskommt, den ich haben möchte
Ciao,
Stefan
------------------
Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP