From c217e249057845bb5401cf890363b19c144b3d1a Mon Sep 17 00:00:00 2001 From: ScottW514 Date: Thu, 10 Sep 2026 13:46:34 -0400 Subject: [PATCH] Put the head back at the end of the M5 rapid job laser.m5-rapid-dark cut 20 mm out and then ran the two rapids the test is about, one back and one out again. The three net to plus 20 mm, so the job ended with the head 20 mm from where it started, every run: 1067 counts at 53.333 per mm, which the hand-back jogged out and reported. That one is dirt, and the position dead band was right to leave it alone - it is 20 mm, not the step a return rounds to. A third rapid, back 20 mm with a short dwell, ends the job where it began. It sits inside the sampling window and after the M5, so it is one more rapid that must be dark, which is what the test already asks of the other two: the assertion is wider, not narrower. The operator's clearance step is unchanged, because the head still needs its 20 mm of +X. Every job list in the suite that moves in G91 now nets zero on X (cooling.py, laser.py twice). --- forgetest/forgetest/suite/laser.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/forgetest/forgetest/suite/laser.py b/forgetest/forgetest/suite/laser.py index 101c75c..224a146 100644 --- a/forgetest/forgetest/suite/laser.py +++ b/forgetest/forgetest/suite/laser.py @@ -566,11 +566,19 @@ def m5_rapid_dark(ctx): ctx.check(base, "forgectrl /status or /cool/status unavailable") ctx.check(not base["emission"], "emission_samples nonzero before the job (%s)", base["emission"]) ctx.ready(ARM_CUE % "20 mm +X") + # +20 out on the cut, then the two rapids the test is about, then + # a third that puts the head back where the job found it: the + # first two net to +20 and a job that walks the head 20 mm and + # leaves it there is dirt the hand-back has to jog out. The + # return is inside the sampling window and after the M5, so it is + # one more rapid that must be dark, which is what the test asks + # of the other two. job = ["G91", "G21", "M3", "S400", "G1 X20 F600", "M5", "G4 P2.5", "G0 X-20", "G4 P2.5", "G0 X20", "G4 P2.5", + "G0 X-20", "G4 P0.5", "G90", "M2"] ctx.arm_press() try: