fix(schematic): Orthogonale Pfade erzwingen
Beim Zeichnen werden jetzt automatisch Zwischenpunkte eingefügt, um sicherzustellen dass alle Liniensegmente horizontal oder vertikal sind (90°-Winkel, keine Diagonalen). Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
89a4db4d21
commit
be3a53e77e
2 changed files with 23 additions and 4 deletions
|
|
@ -9315,14 +9315,33 @@
|
||||||
var terminals = this.getTerminals(eq);
|
var terminals = this.getTerminals(eq);
|
||||||
var termPos = this.getTerminalPosition(eq, targetTermId, terminals);
|
var termPos = this.getTerminalPosition(eq, targetTermId, terminals);
|
||||||
if (termPos) {
|
if (termPos) {
|
||||||
|
// Add orthogonal bend if needed before target
|
||||||
|
if (this.wireDrawPoints.length > 0) {
|
||||||
|
var lastPt = this.wireDrawPoints[this.wireDrawPoints.length - 1];
|
||||||
|
// If not aligned, add intermediate point for 90° bend
|
||||||
|
if (lastPt.x !== termPos.x && lastPt.y !== termPos.y) {
|
||||||
|
// Go vertical first, then horizontal
|
||||||
|
this.wireDrawPoints.push({x: lastPt.x, y: termPos.y});
|
||||||
|
}
|
||||||
|
}
|
||||||
this.wireDrawPoints.push({x: termPos.x, y: termPos.y});
|
this.wireDrawPoints.push({x: termPos.x, y: termPos.y});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build path string from points
|
// Build orthogonal path - ensure all segments are horizontal or vertical
|
||||||
var pathData = '';
|
var pathData = '';
|
||||||
for (var i = 0; i < this.wireDrawPoints.length; i++) {
|
for (var i = 0; i < this.wireDrawPoints.length; i++) {
|
||||||
pathData += (i === 0 ? 'M' : 'L') + ' ' + this.wireDrawPoints[i].x + ' ' + this.wireDrawPoints[i].y + ' ';
|
var pt = this.wireDrawPoints[i];
|
||||||
|
if (i === 0) {
|
||||||
|
pathData += 'M ' + pt.x + ' ' + pt.y + ' ';
|
||||||
|
} else {
|
||||||
|
var prevPt = this.wireDrawPoints[i - 1];
|
||||||
|
// If diagonal, add intermediate point
|
||||||
|
if (prevPt.x !== pt.x && prevPt.y !== pt.y) {
|
||||||
|
pathData += 'L ' + prevPt.x + ' ' + pt.y + ' ';
|
||||||
|
}
|
||||||
|
pathData += 'L ' + pt.x + ' ' + pt.y + ' ';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show connection dialog to set labels and save
|
// Show connection dialog to set labels and save
|
||||||
|
|
|
||||||
4
sw.js
4
sw.js
|
|
@ -3,8 +3,8 @@
|
||||||
* Offline-First für Schaltschrank-Dokumentation
|
* Offline-First für Schaltschrank-Dokumentation
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const CACHE_NAME = 'kundenkarte-pwa-v6.1';
|
const CACHE_NAME = 'kundenkarte-pwa-v6.2';
|
||||||
const OFFLINE_CACHE = 'kundenkarte-offline-v6.1';
|
const OFFLINE_CACHE = 'kundenkarte-offline-v6.2';
|
||||||
|
|
||||||
// Statische Assets die immer gecached werden (ohne Query-String)
|
// Statische Assets die immer gecached werden (ohne Query-String)
|
||||||
const STATIC_ASSETS = [
|
const STATIC_ASSETS = [
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue