feat: add VariableDefinition type for G-code user variables

Adds immutable VariableDefinition record to OpenNest.CNC with name,
expression, resolved value, inline, and global flags. Fixes namespace
collision in PatternTilerTests and PolygonHelperTests caused by the new
OpenNest.Tests.CNC namespace.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-02 09:46:37 -04:00
parent 287023d802
commit 1040db414f
4 changed files with 66 additions and 11 deletions

View File

@@ -1,3 +1,4 @@
using OpenNest.CNC;
using OpenNest.Engine.Fill;
using OpenNest.Geometry;
@@ -7,11 +8,11 @@ public class PatternTilerTests
{
private static Drawing MakeSquareDrawing(double size)
{
var pgm = new CNC.Program();
pgm.Codes.Add(new CNC.LinearMove(size, 0));
pgm.Codes.Add(new CNC.LinearMove(size, size));
pgm.Codes.Add(new CNC.LinearMove(0, size));
pgm.Codes.Add(new CNC.LinearMove(0, 0));
var pgm = new Program();
pgm.Codes.Add(new LinearMove(size, 0));
pgm.Codes.Add(new LinearMove(size, size));
pgm.Codes.Add(new LinearMove(0, size));
pgm.Codes.Add(new LinearMove(0, 0));
return new Drawing("square", pgm);
}