From bb64e4d41e37c39bc1130d58f8eb3b44e0b3aefd Mon Sep 17 00:00:00 2001 From: karim Date: Thu, 28 May 2026 02:19:22 +0200 Subject: [PATCH] =?UTF-8?q?Lock:=20Targets=20clearen=20bei=20Disable=20+?= =?UTF-8?q?=20Wendel-Sweep=20clamp=20auf=202=CF=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rhino/elemente.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/rhino/elemente.py b/rhino/elemente.py index a2b1137..8b3ff78 100644 --- a/rhino/elemente.py +++ b/rhino/elemente.py @@ -12298,6 +12298,10 @@ class ElementeBridge(panel_base.BaseBridge): _g = axis_obj.Geometry cur_axis_L = float(_g.GetLength()) if isinstance(_g, rg.Curve) else 0.0 except Exception: cur_axis_L = 0.0 + # Lock disable: Targets clearen damit Reaktivierung frisch faengt + if "lockS" in p and not bool(p.get("lockS")): + ttarget_s = 0.0 + ttarget_a = 0.0 if "lockS" in p and bool(p.get("lockS")) and old_target_s <= 1e-6: gs_now = _geschoss_by_id(doc, gstart) uk_now = float(gs_now.get("okff", 0.0)) if gs_now else 0.0 @@ -12409,6 +12413,11 @@ class ElementeBridge(panel_base.BaseBridge): if abs(cur_arc - new_total_L) > 1e-4: sign = 1.0 if delta_cur > 0 else -1.0 new_delta = sign * (new_total_L / r_mid) + # Clamp: max 1 Umdrehung (2π) + _max = 2 * _m.pi - 0.05 + if abs(new_delta) > _max: + new_delta = sign * _max + print("[ELEMENTE] Wendel-Lock: Sweep auf 2π geclamped") a_end_new = a_start_cur + new_delta pend_n = rg.Point3d( center.X + r_click * _m.cos(a_end_new),