feat: add material library resolution, assist gas support, and UI fixes

- Add MaterialLibraryResolver for Cincinnati post processor to resolve
  G89 library files from material/thickness/gas configuration
- Add Nest.AssistGas property with serialization support in nest format
- Add etch library support with separate gas configuration
- Fix CutOff tests to match AwayFromOrigin default cut direction
- Fix plate info label not updating after ResizePlateToFitParts
- Add cutoff and remnants toolbar button icons

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-23 22:00:57 -04:00
parent 072915abf2
commit b970629a59
15 changed files with 327 additions and 29 deletions
+10 -10
View File
@@ -154,10 +154,10 @@ public class CutOffTests
// Plate(100, 50) = Width=100, Length=50. Vertical cut runs along Y (Width axis).
// BoundingBox Y extent = Size.Width = 100. With 2" overtravel = 102.
// Default TowardOrigin: RapidMove to far end (102), LinearMove to near end (0).
var rapidMoves = cutoff.Drawing.Program.Codes.OfType<RapidMove>().ToList();
Assert.Single(rapidMoves);
Assert.Equal(102.0, rapidMoves[0].EndPoint.Y, 5);
// Default AwayFromOrigin: RapidMove to near end (0), LinearMove to far end (102).
var linearMoves = cutoff.Drawing.Program.Codes.OfType<LinearMove>().ToList();
Assert.Single(linearMoves);
Assert.Equal(102.0, linearMoves[0].EndPoint.Y, 5);
}
[Fact]
@@ -171,11 +171,10 @@ public class CutOffTests
};
cutoff.Regenerate(plate, settings);
// AwayFromOrigin: RapidMove to near end (StartLimit=20), LinearMove to far end (100).
var rapidMoves = cutoff.Drawing.Program.Codes.OfType<RapidMove>().ToList();
Assert.Single(rapidMoves);
var linearMoves = cutoff.Drawing.Program.Codes.OfType<LinearMove>().ToList();
Assert.Single(linearMoves);
Assert.Equal(20.0, linearMoves[0].EndPoint.Y, 5);
Assert.Equal(20.0, rapidMoves[0].EndPoint.Y, 5);
}
[Fact]
@@ -189,9 +188,10 @@ public class CutOffTests
};
cutoff.Regenerate(plate, settings);
var rapidMoves = cutoff.Drawing.Program.Codes.OfType<RapidMove>().ToList();
Assert.Single(rapidMoves);
Assert.Equal(80.0, rapidMoves[0].EndPoint.Y, 5);
// AwayFromOrigin: RapidMove to near end (0), LinearMove to far end (EndLimit=80).
var linearMoves = cutoff.Drawing.Program.Codes.OfType<LinearMove>().ToList();
Assert.Single(linearMoves);
Assert.Equal(80.0, linearMoves[0].EndPoint.Y, 5);
}
[Fact]