Auswertung Punkte
This commit is contained in:
@@ -38,42 +38,79 @@ async function fetchCSV() {
|
||||
});
|
||||
return obj;
|
||||
});
|
||||
|
||||
appendToAnalysis(`CSV-Daten geladen: ${rows.length} Zeilen, ${headers.length} Spalten.`);
|
||||
return { data, headers, rows };
|
||||
}
|
||||
|
||||
async function readValues( data, headers, rows ){
|
||||
appendToAnalysis('Geladene Daten: ' + JSON.stringify(data, null, 2));
|
||||
appendToAnalysis('Headers: ' + JSON.stringify(headers));
|
||||
appendToAnalysis('Parsed rows: ' + JSON.stringify(rows, null, 2));
|
||||
console.log('Geladene Daten:', data);
|
||||
console.log('Headers:', headers);
|
||||
console.log('Parsed rows:', rows);
|
||||
|
||||
// Hier kannst du manuell mit den Daten arbeiten
|
||||
// Beispiel: Finde die Position mit der höchsten x_mm
|
||||
let maxX = -Infinity;
|
||||
let bestRow = null;
|
||||
rows.forEach(row => {
|
||||
if (row.x_mm > maxX) {
|
||||
maxX = row.x_mm;
|
||||
bestRow = row;
|
||||
}
|
||||
});
|
||||
appendToAnalysis('Position mit höchster x_mm: ' + JSON.stringify(bestRow));
|
||||
|
||||
}
|
||||
|
||||
// Füge hier deine Logik für Vorschläge hinzu
|
||||
// z.B. calculateSuggestions(rows);
|
||||
async function calculateAngleFromPosition(row, axisY, axisZ, deltaYangle0, deltaZangle0 = 0) {
|
||||
let y = parseFloat(row.y_mm);
|
||||
let z = parseFloat(row.z_mm);
|
||||
|
||||
let dy = -(y - axisY);
|
||||
let dz = z - axisZ;
|
||||
|
||||
let angle0Rad = 0;
|
||||
if(deltaZangle0 !== 0){
|
||||
angle0Rad = Math.atan(deltaZangle0/deltaYangle0);
|
||||
}
|
||||
|
||||
angleRad = Math.atan(dz/dy) - angle0Rad;
|
||||
angleDeg = angleRad * (180 / Math.PI);
|
||||
|
||||
appendToAnalysis(`(yMotor = ${angleDeg.toFixed(2)}° = ${angleRad.toFixed(4)} rad ) aus Position von ID = ${row.id}`);
|
||||
}
|
||||
async function calculateAngleFromRollColumn(row, roll0 = 0, pitch0 = 0, yaw0 = 0) {
|
||||
let roll = -parseFloat(row.roll_deg) + roll0;
|
||||
appendToAnalysis(`(yMotor = ${roll.toFixed(2)}° = ${(roll * Math.PI / 180).toFixed(4)} rad) aus roll_deg von ID = ${row.id}`);
|
||||
}
|
||||
|
||||
async function calculate() {
|
||||
|
||||
let shoulderAxisY = 115;
|
||||
let shoulderAxisZ = 61;
|
||||
|
||||
let rows = null;
|
||||
let headers = null;
|
||||
|
||||
try {
|
||||
appendToAnalysis('Starte Berechnung...');
|
||||
const { data, headers, rows } = await fetchCSV();
|
||||
const result = await fetchCSV();
|
||||
rows = result.rows;
|
||||
headers = result.headers;
|
||||
const data = result.data;
|
||||
await readValues( data, headers, rows );
|
||||
appendToAnalysis('Berechnung abgeschlossen.');
|
||||
} catch (err) {
|
||||
appendToAnalysis('Fehler in calculate: ' + err.message);
|
||||
}
|
||||
// Schreibe den die Länge der CSV Datei und die vierte Zeile in das Analysis&Reasoning fenster.
|
||||
|
||||
|
||||
const row243 = rows.find(r => r.id == 243)
|
||||
if(row243){
|
||||
const angle = await calculateAngleFromPosition(row243, shoulderAxisY, shoulderAxisZ, 250+35, 0);
|
||||
calculateAngleFromRollColumn(row243, 90, 0, 0);
|
||||
}
|
||||
const row229 = rows.find(r => r.id == 229)
|
||||
if(row229){
|
||||
const angle = await calculateAngleFromPosition(row229, shoulderAxisY, shoulderAxisZ, 250, 35);
|
||||
calculateAngleFromRollColumn(row229, 0, 0, 0);
|
||||
}
|
||||
|
||||
const row203 = rows.find(r => r.id == 203)
|
||||
if(row203){
|
||||
const angle = await calculateAngleFromPosition(row203, shoulderAxisY, shoulderAxisZ, 165, 35);
|
||||
calculateAngleFromRollColumn(row203, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Export für Module, falls benötigt
|
||||
// export { fetchCSV, calculate };
|
||||
Reference in New Issue
Block a user