Diesen Artikel mußte ich kurz vor Vollendung komplett ändern, da ich eine Systematik erkannte.
Ich habe versucht mit der ausgegeben Matrix (M3013) mein Heizbett in die bestmögliche Lage zu bringen.
Das dazu verwendete Excel-Blatt zeigt mir die Höhenunterschiede in mm an. Die Auflagerpunkte wurden auf das notwendige Mass gebracht, aber die exakte Position wurde nicht erreicht. Es wurde besser, aber nicht wie vorher angezeigt. Mein Fehler ich hatte die Achsen vertauscht.
Denoch fiel eine Unregelmäßigkeit auf.
Ich prüfte die Matrix mit den Werten die zuvor in der Repetier-Command-Zeile abgelegt wurden und mußte einen Unterschied erkennen.
Was passiert in der Matrix. Es wird der innere Bereich des Bettes gescannt. Zum Schluss wird um diesen Kern ein Ring von Werten dubliziert und zwar werden die Werte des direkten Nebenmannes , um für das ganze Bett Ausgleichsdaten zu haben.
Diese erste Matrix zeigt, aber auf die falschen Werte (eine Reihe zu früh) ggf. liege ich auch falsch und die Werte werden nur nicht korrekt angezeigt.
Dies ist ein Beispiel von mir. Das EEPROM war vorher gelöscht worden, erkennbar weil unter den X-Werten keine Werte eingetragen sind.
Dafür sind die Werte der letzten Reihe für immer verloren (siehe letzte Reihe der handgeschriebenen Matrix).
Ebenfalls wird die letzte Y-Spalte nicht mit übernommen. Die Werte der handgeschriebene Matrix resultieren aus den Repetier-Log-Daten (angehängt).
Hier meine Matrix:
22:57:06.476 : scanHeatBed(): raw heat bed compensation matrix:
22:57:06.476 : front left ... front right
22:57:06.476 : ... ... ...
22:57:06.476 : back left ... back right
22:57:06.476 : ;6;0;14;34;54;74;94;114;134;154;174;194;214
22:57:06.476 : ;0;0;0;0;0;0;0;0;0;0;0;0;0
22:57:06.476 : ;29;0;-1532;-1280;-1172;-1112;-1044;-1036;-1028;-1036;-1028;-1068;-1228
22:57:06.476 : ;49;0;-1520;-1256;-1156;-1104;-1048;-1016;-1020;-1060;-1032;-1088;-1244
22:57:06.477 : ;69;0;-1516;-1344;-1148;-1116;-1040;-1024;-1012;-1056;-1024;-1080;-1260
22:57:06.477 : ;89;0;-1492;-1320;-1128;-1096;-1032;-1000;-996;-892;-1028;-1064;-1252
22:57:06.477 : ;109;0;-1488;-1296;-1100;-1084;-1004;-972;-976;-1028;-1020;-1060;-1256
22:57:06.477 : ;129;0;-1468;-1276;-1088;-1076;-984;-920;-956;-1028;-1024;-1068;-1248
22:57:06.477 : ;149;0;-1432;-1248;-1048;-1072;-976;-916;-896;-1016;-1016;-1052;-1240
22:57:06.477 : ;169;0;-1396;-1208;-1008;-1052;-956;-880;-928;-1044;-1020;-1044;-1232
22:57:06.477 : ;189;0;-1328;-1152;-968;-1024;-904;-852;-892;-1016;-996;-1020;-1216
22:57:06.477 : ;209;0;-1276;-1108;-920;-1012;-884;-848;-872;-996;-1028;-1028;-1208
22:57:06.477 : offset = 0 [steps]0
22:57:06.477 : g_uZMatrixMaxX = 13
22:57:06.477 : g_uZMatrixMaxY = 12
22:57:06.683 : scanHeatBed(): total scan time: 1854
22:57:06.683 : scanHeatBed(): g_uZMatrixMaxY.1 = 13
22:57:06.683 : scanHeatBed(): g_uZMatrixMaxY.2 = 13
22:57:06.683 : scanHeatBed(): converted heat bed compensation matrix:
22:57:06.683 : front left ... front right
22:57:06.683 : ... ... ...
22:57:06.683 : back left ... back right
22:57:06.683 : ;6;0;14;34;54;74;94;114;134;154;174;194;214;245
22:57:06.683 : ;0;-1532;-1532;-1280;-1172;-1112;-1044;-1036;-1028;-1036;-1028;-1068;-1228;-1228
22:57:06.683 : ;29;-1532;-1532;-1280;-1172;-1112;-1044;-1036;-1028;-1036;-1028;-1068;-1228;-1228
22:57:06.683 : ;49;-1520;-1520;-1256;-1156;-1104;-1048;-1016;-1020;-1060;-1032;-1088;-1244;-1244
22:57:06.683 : ;69;-1516;-1516;-1344;-1148;-1116;-1040;-1024;-1012;-1056;-1024;-1080;-1260;-1260
22:57:06.683 : ;89;-1492;-1492;-1320;-1128;-1096;-1032;-1000;-996;-892;-1028;-1064;-1252;-1252
22:57:06.683 : ;109;-1488;-1488;-1296;-1100;-1084;-1004;-972;-976;-1028;-1020;-1060;-1256;-1256
22:57:06.684 : ;129;-1468;-1468;-1276;-1088;-1076;-984;-920;-956;-1028;-1024;-1068;-1248;-1248
22:57:06.684 : ;149;-1432;-1432;-1248;-1048;-1072;-976;-916;-896;-1016;-1016;-1052;-1240;-1240
22:57:06.684 : ;169;-1396;-1396;-1208;-1008;-1052;-956;-880;-928;-1044;-1020;-1044;-1232;-1232
22:57:06.684 : ;189;-1328;-1328;-1152;-968;-1024;-904;-852;-892;-1016;-996;-1020;-1216;-1216
22:57:06.684 : ;209;-1276;-1276;-1108;-920;-1012;-884;-848;-872;-996;-1028;-1028;-1208;-1208
22:57:06.684 : ;245;-1276;-1276;-1108;-920;-1012;-884;-848;-872;-996;-1028;-1028;-1208;-1208
22:57:06.684 : offset = -848 [steps]-848
22:57:06.684 : g_uZMatrixMaxX = 14
22:57:06.684 : g_uZMatrixMaxY = 13
22:57:06.684 : saveCompensationMatrix(): valid data detected
Eine Matrix von Diebesbeute aus dem Forum:
Als ich den Scan-Vorgang zum ersten Mal sah, dachte ich: "Nicht einfach zu programmieren" und ich hatte Recht.
Wobei es bevor ich diesen umkleidenden Rahmen erkannte, deutlich schlimmer aussah.
Hier kann ich jetzt nur sagen, das sie in der richtigen Reihenfolge sind, lediglich fehlen 1 Reihe und 1 Spalte.
Wie die Matrix hinterher in die Berechnung eingeht und ob auch andere Raster zum Beispiel 10x10 oder 15x10 möglich sind kann uns nur RF1000 sagen.
Gruß Frank
(Kein Programm ohne Fehler und es gibt noch ein paar Fehler die ich aufschreiben könnte)
Software ist die RF1.11.