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(