From f5ea354c3d6ef1cb25cbaf05a5c9f77adc0aa2a2 Mon Sep 17 00:00:00 2001 From: david mueller Date: Thu, 4 Jun 2026 08:57:08 +0200 Subject: [PATCH] gremlin: Initialize preview interpreter with active modal gcodes Improve preview for gcode with incomplete preambles --- src/emc/usr_intf/gremlin/gremlin.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/emc/usr_intf/gremlin/gremlin.py b/src/emc/usr_intf/gremlin/gremlin.py index 851fef2ad36..9430bc953f7 100755 --- a/src/emc/usr_intf/gremlin/gremlin.py +++ b/src/emc/usr_intf/gremlin/gremlin.py @@ -328,6 +328,13 @@ def load(self,filename = None): unitcode = "G%d" % (20 + (s.linear_units == 1)) initcode = "" + # To guard against incorrect preview with incomplete preambles in the gcode program + # we initialize with active gcodes for modal groups 2,3,4,5,6,7,8,9,10,11,12,13,14,15 + # sorting is not necessary but helps in debugging + active_gcodes = s.gcodes + for i in (3,6,14,7,5,4,9,12,10,16,8,11,13,15): + if active_gcodes[i] > -1: + initcode = initcode + 'G' + str(active_gcodes[i]/10) + ' ' result, seq = self.load_preview(filename, canon, unitcode, initcode) if result > gcode.MIN_ERROR: self.report_gcode_error(result, seq, filename)