Schichttrennlinie als Wand-Referenzlinie (mehrschichtige Wände)

Bei mehrschichtigen Wänden lässt sich neben Aussen/Mitte/Innen jetzt auch
eine SCHICHTTRENNLINIE (Fuge zwischen zwei Schichten) als Referenzlinie
wählen — z. B. die Achse auf die Innenkante der Aussenschale legen.
- Neues Feld Wall.referenceOffset (freier Achsversatz entlang +n); wenn
  gesetzt, übersteuert es referenceLine. wallReferenceOffset bleibt die
  EINE Quelle → Grundriss, Schnitt und 3D erben das Verhalten automatisch.
- Object-Info-Panel: das Referenzlinien-Dropdown listet zusätzlich je
  interne Fuge einen Eintrag (Kürzel der angrenzenden Schichten); Auswahl
  setzt den Versatz, Aussen/Mitte/Innen löscht ihn wieder.
- selectionInfo berechnet die Fugen-Versätze (kumulierte Schichtdicken).
+3 Tests. tsc + vitest grün.
This commit is contained in:
2026-07-09 01:21:28 +02:00
parent 9a65900377
commit 938d6421f9
9 changed files with 104 additions and 8 deletions
+16 -4
View File
@@ -906,17 +906,29 @@ export function WallSection({
<div className="objinfo-sep" />
<div className="objinfo-section-label">{t("objinfo.wall.section")}</div>
{/* Referenzlinie (wo die Achse über die Dicke liegt) — früher im ObjectInfo-
Kopf, jetzt hier bei den Wand-Attributen. */}
{/* Referenzlinie (wo die Achse über die Dicke liegt) — außen/mitte/innen ODER
bei mehrschichtigen Wänden eine SCHICHTTRENNLINIE (Fuge). Ein Fugenwert
wird als "off:<offset>" kodiert und übersteuert die benannte Linie. */}
<div className="objinfo-field">
<span className="objinfo-flabel">{t("objinfo.wall.refLine")}</span>
<Dropdown
value={wall.referenceLine}
onChange={(v) => host.onSetWallReferenceLine(v as WallReferenceLine)}
value={
wall.referenceOffset != null
? `off:${wall.referenceOffset.toFixed(4)}`
: wall.referenceLine
}
onChange={(v) => {
if (v.startsWith("off:")) host.onSetWallReferenceOffset(Number(v.slice(4)));
else host.onSetWallReferenceLine(v as WallReferenceLine);
}}
options={[
{ value: "left", label: t("objinfo.wall.refLine.left") },
{ value: "center", label: t("objinfo.wall.refLine.center") },
{ value: "right", label: t("objinfo.wall.refLine.right") },
...wall.layerBoundaries.map((b) => ({
value: `off:${b.offset.toFixed(4)}`,
label: `${t("objinfo.wall.refLine.joint")} ${b.label}`,
})),
]}
title={t("objinfo.wall.refLine")}
width={120}