From a6c2235647ee41e8ccaa1d2f04c319b7687ac601 Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Thu, 9 Apr 2026 18:26:39 -0400 Subject: [PATCH] fix: let DrawRapids track actual tool position through sub-programs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Don't restore pos after SubProgramCall expansion in DrawRapids — the machine moves from hole to hole sequentially, so rapids should connect from the previous hole's end to the next hole's center. Co-Authored-By: Claude Opus 4.6 (1M context) --- OpenNest/Controls/PlateRenderer.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OpenNest/Controls/PlateRenderer.cs b/OpenNest/Controls/PlateRenderer.cs index cb9e7a5..59b1f6c 100644 --- a/OpenNest/Controls/PlateRenderer.cs +++ b/OpenNest/Controls/PlateRenderer.cs @@ -432,8 +432,7 @@ namespace OpenNest.Controls if (program != null) { - var savedPos = pos; - var holePos = new Vector(savedPos.X + subpgm.Offset.X, savedPos.Y + subpgm.Offset.Y); + var holePos = new Vector(pos.X + subpgm.Offset.X, pos.Y + subpgm.Offset.Y); // Draw rapid from current position to hole center if (!(skipFirstRapid && !firstRapidSkipped)) @@ -443,7 +442,8 @@ namespace OpenNest.Controls pos = holePos; DrawRapids(g, program, ref pos); - pos = savedPos; + // Don't restore pos — let it advance so the next hole's + // rapid starts from where this one ended. } } else