mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-27 05:01:05 -04:00
Stock can arrive up to 1.5 in wider than nominal, so only the origin-side edge is certain. A cut-off with a head-locked overcut cuts past the nominal far edge with the head height locked, covering the oversize. With that lock, Plan Cutting may start the far-edge segment at the far edge: overcut outward, rapid back still locked, unlock, cut toward the origin. Without it the direction stays fixed, as decided in Project Memory a20ea455. - CutOff.HeadLockOvercut / FarEdgeFirst, persisted in .nest; HEAD HEIGHT LOCK/UNLOCK comment markers; far edge is quadrant-aware. - Planner offers the reversed far-edge segment in the joint search, the safest route and segment insertion; Apply records the direction. - Cincinnati CL and CI Fiber posts gain lock/unlock code settings and refuse head-locked cut-offs while either is empty. - Automatic cut-off dialog setting (off by default, 1.5 in), kept between sessions and used for new cut-offs. Lock codes and machine behaviour with the head locked are unconfirmed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
30 lines
1.1 KiB
C#
30 lines
1.1 KiB
C#
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;
|
|
|
|
/// <summary>
|
|
/// Whether new cut-offs lock the head height and overcut past the nominal far sheet edge
|
|
/// by <see cref="HeadLockOvercut"/> (see <see cref="CutOff.HeadLockOvercut"/>). Off until
|
|
/// the machine's post has head-height lock codes.
|
|
/// </summary>
|
|
public bool LockHeadHeight { get; set; }
|
|
|
|
/// <summary>How far past the nominal far edge a head-locked cut-off cuts, in model units.</summary>
|
|
public double HeadLockOvercut { get; set; } = 1.5;
|
|
|
|
/// <summary>The head-locked overcut a new cut-off gets from these settings; zero when off.</summary>
|
|
public double NewCutOffHeadLockOvercut => LockHeadHeight ? HeadLockOvercut : 0;
|
|
}
|
|
}
|