fix(opus55): cut clearance margin to 0.003 and drop etch marks from geometry
The 0.022 margin assumed validators flatten arcs at 0.01; NestValidator uses 0.001, so a pair can read at most 0.002 closer than true. 0.003 covers that plus the 1e-4 Clipper grid, returning ~0.019 per gap. Arc, disc, obround and zero-spacing tests still pass. Part geometry filtered only rapids, so scribe/etch moves counted as material - the bug OpenNest fixed in 1b5e1b1. Use SpecialLayers.IsMaterial. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -20,11 +20,15 @@ namespace OpenNest.Engine.Opus55;
|
||||
public sealed class Opus55NestingEngine : INestingEngine
|
||||
{
|
||||
/// <summary>
|
||||
/// Extra clearance beyond the stock's part spacing, in job units. Validators polygonize arcs
|
||||
/// circumscribed at 0.01 per side, so two tangent true arcs can read as up to 0.02 closer
|
||||
/// than they are; the rest absorbs Clipper's 1e-4 grid and inner-fit clamping.
|
||||
/// Extra clearance beyond the stock's part spacing, in job units. Footprints already contain
|
||||
/// the true outline grown by half the clearance (chord tolerance is added separately), so this
|
||||
/// only has to cover the validator's side: NestValidator flattens each perimeter within
|
||||
/// 0.001 of the true arc (OutlineTolerance), so two true arcs can read up to 0.002 closer
|
||||
/// than they are. The remaining 0.001 absorbs the 1e-4 Clipper grid on both sides (footprint
|
||||
/// offset, Minkowski union, free-region difference, the validator's own offset); the
|
||||
/// validator's round-join chord error (0.0001) only ever makes it more lenient.
|
||||
/// </summary>
|
||||
internal const double ClearanceMargin = 0.022;
|
||||
internal const double ClearanceMargin = 0.003;
|
||||
|
||||
/// <summary>Strategy variants, tried in order: (front direction, area exponent beta).</summary>
|
||||
private static readonly (PackAxis Axis, double Beta)[] Variants =
|
||||
|
||||
Reference in New Issue
Block a user