From b10760a7043c581a016970fddaa9384b3b11ef2f Mon Sep 17 00:00:00 2001 From: karim Date: Tue, 26 May 2026 21:10:28 +0200 Subject: [PATCH] =?UTF-8?q?Masstab:=20Persist=20vor=20Raum-Regen=20?= =?UTF-8?q?=E2=80=94=20sonst=20regent=20mit=20alter=20Skala?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- rhino/massstab.py | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/rhino/massstab.py b/rhino/massstab.py index 9ce0b00..d1bc267 100644 --- a/rhino/massstab.py +++ b/rhino/massstab.py @@ -890,9 +890,17 @@ 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. + # Neuen Wert ZUERST persistieren — sowohl per-Viewport (fuer das + # Dropdown, damit jeder Viewport seinen eigenen Massstab behaelt) als + # 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: import elemente as _el 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)) 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 - # 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() except Exception: pass print("[MASSSTAB] Skala 1:{:.2f} gesetzt (Faktor {:.4f}, soll-frustum {:.4f} {})".format(