namespace OpenNest { public enum CutDirection { TowardOrigin, AwayFromOrigin, } public class CutOffSettings { public double PartClearance { get; set; } = 0.02; public double Overtravel { get; set; } public double MinSegmentLength { get; set; } = 0.05; public CutDirection CutDirection { get; set; } = CutDirection.AwayFromOrigin; /// /// Whether new cut-offs lock the head height and overcut past the nominal far sheet edge /// by (see ). Off until /// the machine's post has head-height lock codes. /// public bool LockHeadHeight { get; set; } /// How far past the nominal far edge a head-locked cut-off cuts, in model units. public double HeadLockOvercut { get; set; } = 1.5; /// The head-locked overcut a new cut-off gets from these settings; zero when off. public double NewCutOffHeadLockOvercut => LockHeadHeight ? HeadLockOvercut : 0; } }