Masstab: Persist vor Raum-Regen — sonst regent mit alter Skala

regen_masstab_raeume liest get_applied_scale_ratio() um die paper-mm-
Hoehe in Modell-m umzurechnen. Lief bisher VOR _set_applied_scale_for_vp
→ las immer noch den alten Wert. Resultat: nach Skala-Wechsel war die
Stempel-Hoehe um die alte Skala berechnet, naechster Wechsel um die
vorletzte usw.

Reihenfolge korrigiert: erst write_user_scale + set_applied_scale_for_vp,
DANN regen_masstab_raeume.
This commit is contained in:
2026-05-26 21:10:28 +02:00
parent e56ee2cb8f
commit b10760a704
+11 -12
View File
@@ -890,9 +890,17 @@ def _apply_scale(doc, vp, ratio):
apply_scaled_hatches(doc, float(ratio)) apply_scaled_hatches(doc, float(ratio))
except Exception as ex: except Exception as ex:
print("[MASSSTAB] Hatch-Rescale:", ex) print("[MASSSTAB] Hatch-Rescale:", ex)
# Raumstempel im masstab-Modus skalieren mit dem Scale-Wechsel — # Neuen Wert ZUERST persistieren — sowohl per-Viewport (fuer das
# ihre TextHeight ist (paper_mm * scale / 1000) und muss neu # Dropdown, damit jeder Viewport seinen eigenen Massstab behaelt) als
# gerendert werden. Lazy-Import um circular dep zu vermeiden. # auch als globaler "letzter Wert". WICHTIG: vor dem Raumstempel-
# Regen weil _resolve_raum_text_height_m get_applied_scale_ratio()
# liest — sonst regennt mit ALTER Skala.
_write_user_scale(doc, ratio)
try:
_set_applied_scale_for_vp(doc, vp.Name, float(ratio))
except Exception as ex:
print("[MASSSTAB] per-vp scale write:", ex)
# Raumstempel im masstab-Modus regennen mit der NEUEN Skala.
try: try:
import elemente as _el import elemente as _el
n_regen = _el.regen_masstab_raeume(doc) n_regen = _el.regen_masstab_raeume(doc)
@@ -900,15 +908,6 @@ def _apply_scale(doc, vp, ratio):
print("[MASSSTAB] {} masstab-Raum/Raeume regenned".format(n_regen)) print("[MASSSTAB] {} masstab-Raum/Raeume regenned".format(n_regen))
except Exception as ex: except Exception as ex:
print("[MASSSTAB] Raumstempel-Regen:", 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
# doc-weit benutzt — dort ist nur EIN Faktor sinnvoll).
_write_user_scale(doc, ratio)
try:
_set_applied_scale_for_vp(doc, vp.Name, float(ratio))
except Exception as ex:
print("[MASSSTAB] per-vp scale write:", ex)
try: doc.Views.Redraw() try: doc.Views.Redraw()
except Exception: pass except Exception: pass
print("[MASSSTAB] Skala 1:{:.2f} gesetzt (Faktor {:.4f}, soll-frustum {:.4f} {})".format( print("[MASSSTAB] Skala 1:{:.2f} gesetzt (Faktor {:.4f}, soll-frustum {:.4f} {})".format(