feat: add CuttingParameters and configuration classes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,9 @@
|
|||||||
|
namespace OpenNest.CNC.CuttingStrategy
|
||||||
|
{
|
||||||
|
public class AssignmentParameters
|
||||||
|
{
|
||||||
|
public SequenceMethod Method { get; set; } = SequenceMethod.Advanced;
|
||||||
|
public string Preference { get; set; } = "ILAT";
|
||||||
|
public double MinGeometryLength { get; set; } = 0.01;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
namespace OpenNest.CNC.CuttingStrategy
|
||||||
|
{
|
||||||
|
public enum ContourType
|
||||||
|
{
|
||||||
|
External,
|
||||||
|
Internal,
|
||||||
|
ArcCircle
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
namespace OpenNest.CNC.CuttingStrategy
|
||||||
|
{
|
||||||
|
public class CuttingParameters
|
||||||
|
{
|
||||||
|
public int Id { get; set; }
|
||||||
|
|
||||||
|
public string MachineName { get; set; }
|
||||||
|
public string MaterialName { get; set; }
|
||||||
|
public string Grade { get; set; }
|
||||||
|
public double Thickness { get; set; }
|
||||||
|
|
||||||
|
public double Kerf { get; set; }
|
||||||
|
public double PartSpacing { get; set; }
|
||||||
|
|
||||||
|
public LeadIn ExternalLeadIn { get; set; } = new NoLeadIn();
|
||||||
|
public LeadOut ExternalLeadOut { get; set; } = new NoLeadOut();
|
||||||
|
|
||||||
|
public LeadIn InternalLeadIn { get; set; } = new LineLeadIn { Length = 0.125, ApproachAngle = 90 };
|
||||||
|
public LeadOut InternalLeadOut { get; set; } = new NoLeadOut();
|
||||||
|
|
||||||
|
public LeadIn ArcCircleLeadIn { get; set; } = new NoLeadIn();
|
||||||
|
public LeadOut ArcCircleLeadOut { get; set; } = new NoLeadOut();
|
||||||
|
|
||||||
|
public Tab TabConfig { get; set; }
|
||||||
|
public bool TabsEnabled { get; set; }
|
||||||
|
|
||||||
|
public SequenceParameters Sequencing { get; set; } = new SequenceParameters();
|
||||||
|
public AssignmentParameters Assignment { get; set; } = new AssignmentParameters();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
namespace OpenNest.CNC.CuttingStrategy
|
||||||
|
{
|
||||||
|
// Values match PEP Technology's numbering scheme (value 6 intentionally skipped)
|
||||||
|
public enum SequenceMethod
|
||||||
|
{
|
||||||
|
RightSide = 1,
|
||||||
|
LeastCode = 2,
|
||||||
|
Advanced = 3,
|
||||||
|
BottomSide = 4,
|
||||||
|
EdgeStart = 5,
|
||||||
|
LeftSide = 7,
|
||||||
|
RightSideAlt = 8
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SequenceParameters
|
||||||
|
{
|
||||||
|
public SequenceMethod Method { get; set; } = SequenceMethod.Advanced;
|
||||||
|
public double SmallCutoutWidth { get; set; } = 1.5;
|
||||||
|
public double SmallCutoutHeight { get; set; } = 1.5;
|
||||||
|
public double MediumCutoutWidth { get; set; } = 8.0;
|
||||||
|
public double MediumCutoutHeight { get; set; } = 8.0;
|
||||||
|
public double DistanceMediumSmall { get; set; }
|
||||||
|
public bool AlternateRowsColumns { get; set; } = true;
|
||||||
|
public bool AlternateCutoutsWithinRowColumn { get; set; } = true;
|
||||||
|
public double MinDistanceBetweenRowsColumns { get; set; } = 0.25;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user