fix(schematic): Abgang-Label und Oertlichkeit als separate Zeilen
- Bezeichnung und Oertlichkeit werden jetzt getrennt dargestellt (Zeilenumbruch statt ' · ' Trennzeichen) - Oertlichkeit 13px weiter links, kleiner (9px), kursiv, grau - Linienlänge berechnet aus max(label, location, kabel) separat - Max. Linienlänge 120 → 150px (mehr Platz für lange Bezeichnungen) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
7f15645ecd
commit
01c786f02a
1 changed files with 18 additions and 14 deletions
|
|
@ -7869,10 +7869,10 @@
|
|||
var pos = self.getTerminalPosition(eq, termId, terms);
|
||||
if (!pos) return;
|
||||
var labelText = conn.output_label || '';
|
||||
if (conn.output_location) labelText += ' · ' + conn.output_location;
|
||||
var locationText = conn.output_location || '';
|
||||
var cableText = ((conn.medium_type || '') + ' ' + (conn.medium_spec || '')).trim();
|
||||
var maxLen = Math.max(labelText.length, cableText.length);
|
||||
var lineLen = Math.min(120, Math.max(50, maxLen * 6 + 20));
|
||||
var maxLen = Math.max(labelText.length, locationText.length, cableText.length);
|
||||
var lineLen = Math.min(150, Math.max(50, maxLen * 6 + 20));
|
||||
var goUp = pos.isTop;
|
||||
self._outputAreas.push({
|
||||
x: pos.x - 25,
|
||||
|
|
@ -7937,12 +7937,12 @@
|
|||
}
|
||||
}
|
||||
|
||||
// Calculate line length based on label text
|
||||
// Calculate line length based on label text (label and location are separate lines)
|
||||
var labelText = conn.output_label || '';
|
||||
if (conn.output_location) labelText += ' · ' + conn.output_location;
|
||||
var locationText = conn.output_location || '';
|
||||
var cableText = (conn.medium_type || '') + ' ' + (conn.medium_spec || '');
|
||||
var maxTextLen = Math.max(labelText.length, cableText.trim().length);
|
||||
var lineLength = Math.min(120, Math.max(50, maxTextLen * 6 + 20));
|
||||
var maxTextLen = Math.max(labelText.length, locationText.length, cableText.trim().length);
|
||||
var lineLength = Math.min(150, Math.max(50, maxTextLen * 6 + 20));
|
||||
|
||||
// Direction: top terminal = UP, bottom terminal = DOWN
|
||||
var goingUp = sourcePos.isTop;
|
||||
|
|
@ -7988,15 +7988,19 @@
|
|||
// Labels - vertical text on both sides
|
||||
var labelY = (startY + endY) / 2;
|
||||
|
||||
// Left side: Bezeichnung (output_label) + Räumlichkeit
|
||||
// Left side: Bezeichnung (output_label) + Räumlichkeit (separate line)
|
||||
if (conn.output_label) {
|
||||
htmlFront += '<text x="' + (lineX - 10) + '" y="' + labelY + '" ';
|
||||
htmlFront += 'text-anchor="middle" fill="#fff" font-size="11" font-weight="bold" ';
|
||||
htmlFront += 'transform="rotate(-90 ' + (lineX - 10) + ' ' + labelY + ')">';
|
||||
htmlFront += self.escapeHtml(conn.output_label);
|
||||
if (conn.output_location) {
|
||||
htmlFront += '<tspan font-size="9" font-weight="normal" font-style="italic" fill="#999"> · ' + self.escapeHtml(conn.output_location) + '</tspan>';
|
||||
htmlFront += '</text>';
|
||||
}
|
||||
if (conn.output_location) {
|
||||
htmlFront += '<text x="' + (lineX - 23) + '" y="' + labelY + '" ';
|
||||
htmlFront += 'text-anchor="middle" fill="#aaa" font-size="9" font-style="italic" ';
|
||||
htmlFront += 'transform="rotate(-90 ' + (lineX - 23) + ' ' + labelY + ')">';
|
||||
htmlFront += self.escapeHtml(conn.output_location);
|
||||
htmlFront += '</text>';
|
||||
}
|
||||
|
||||
|
|
@ -11406,10 +11410,10 @@
|
|||
}
|
||||
|
||||
var labelText = conn.output_label || '';
|
||||
if (conn.output_location) labelText += ' · ' + conn.output_location;
|
||||
var locationText = conn.output_location || '';
|
||||
var cableText = (conn.medium_type || '') + ' ' + (conn.medium_spec || '');
|
||||
var maxTextLen = Math.max(labelText.length, cableText.trim().length);
|
||||
var lineLength = Math.min(120, Math.max(50, maxTextLen * 6 + 20));
|
||||
var maxTextLen = Math.max(labelText.length, locationText.length, cableText.trim().length);
|
||||
var lineLength = Math.min(150, Math.max(50, maxTextLen * 6 + 20));
|
||||
var goingUp = sourcePos.isTop;
|
||||
var endY = goingUp ? (sourcePos.y - lineLength) : (sourcePos.y + lineLength);
|
||||
pathData = 'M ' + lineX + ' ' + sourcePos.y + ' L ' + lineX + ' ' + endY;
|
||||
|
|
|
|||
Loading…
Reference in a new issue