Raumstempel: masstab-Modus — Texthoehe als Paper-mm @ Plan-Massstab
Neuer UserString dossier_raum_txt_modus = "fix" | "masstab" (default fix).
- fix: raum_txt_h ist Meter (Modellhoehe, bisheriges Verhalten)
- masstab: raum_txt_h ist Paper-mm. Render-Hoehe (m) =
paper_mm * applied_scale / 1000 — wird zur Render-Zeit aus
massstab.get_applied_scale_ratio() gelesen, Fallback 1:100.
Massstab-Sync:
- massstab._apply_scale ruft nach Skala-Wechsel elemente.regen_masstab_raeume(doc)
→ alle Raeume im masstab-Modus regennen automatisch, Texthoehe folgt der
neuen Skala (z.B. Switch 1:100 → 1:50 halbiert die Modellhoehe).
_sync_raum_stamps_to_source masstab-aware: im masstab-Modus wird die
TextHeight am Stempel NICHT zurueck auf raum_txt_h gespiegelt (sie ist
abgeleitet, nicht die Wahrheit) — sonst waere der naechste Regen sofort
falsch positioniert. Offset + Font/Style werden weiterhin gespiegelt.
UI: Modus-Toggle "fix m" / "masstab mm" + Hoehen-Input + Einheits-Suffix
in RaumProperties zwischen Ausrichtung und Funktion.
This commit is contained in:
@@ -890,6 +890,16 @@ def _apply_scale(doc, vp, ratio):
|
||||
apply_scaled_hatches(doc, float(ratio))
|
||||
except Exception as ex:
|
||||
print("[MASSSTAB] Hatch-Rescale:", ex)
|
||||
# Raumstempel im masstab-Modus skalieren mit dem Scale-Wechsel —
|
||||
# ihre TextHeight ist (paper_mm * scale / 1000) und muss neu
|
||||
# gerendert werden. Lazy-Import um circular dep zu vermeiden.
|
||||
try:
|
||||
import elemente as _el
|
||||
n_regen = _el.regen_masstab_raeume(doc)
|
||||
if n_regen > 0:
|
||||
print("[MASSSTAB] {} masstab-Raum/Raeume regenned".format(n_regen))
|
||||
except Exception as ex:
|
||||
print("[MASSSTAB] Raumstempel-Regen:", ex)
|
||||
# Neuen Wert persistieren — sowohl per-Viewport (fuer das Dropdown,
|
||||
# damit jeder Viewport seinen eigenen Massstab behaelt) als auch als
|
||||
# globaler "letzter Wert" (Legacy-Key; wird von Plotweight/Hatch-Rescale
|
||||
|
||||
Reference in New Issue
Block a user