Commit Graph

  • 451841401a refactor(engine): align namespaces with directory layout under OpenNest.Engine master aj 2026-09-21 13:18:34 -04:00
  • fd3375cde6 test(engine): golden-layout parity fixtures for all four strategies aj 2026-09-21 12:17:24 -04:00
  • 42bbde7433 Merge branch 'fix/failing-tests-after-master-pull' aj 2026-09-21 11:07:49 -04:00
  • 64d38c452c fix(engine): route restricted-rotation requirements to OrderedPlateNester ajandClaude Sonnet 5 2026-09-21 11:07:45 -04:00
  • 630d514b0e fix(engine): don't drop the topmost part when no other drawing is waiting ajandClaude Sonnet 5 2026-09-21 11:07:45 -04:00
  • a764a70e52 fix(engine): make canonical-frame fills orientation-invariant ajandClaude Sonnet 5 2026-09-21 11:07:44 -04:00
  • 2a855139d2 fix(core): stop Program.BoundingBox including the origin ajandClaude Sonnet 5 2026-09-21 11:07:44 -04:00
  • f23f0fa566 feat(tools): headless DXF+workbook job verification tool aj 2026-09-21 10:05:55 -04:00
  • 6f38c11383 feat(io): workbook part-quantity reader and cut-only import coverage aj 2026-09-21 10:05:39 -04:00
  • f34b3c4449 perf(engine): bounds-based short-circuit in placement validation aj 2026-09-21 10:05:39 -04:00
  • 365825bc5a fix(engine): shrink the requested axis in ShrinkFiller estimates aj 2026-09-21 10:05:18 -04:00
  • 02fc0ea3db chore: remove unused NFP nesting code ajandClaude Sonnet 5 2026-09-20 22:20:30 -04:00
  • 451876c02f fix(engine): stop PairFiller toggling the global fill-strategy registry ajandClaude Sonnet 5 2026-09-20 22:20:30 -04:00
  • 5061b41a5d feat(benchmark): build jobs from DXF manifests and run solves in parallel ajandClaude Sonnet 5 2026-09-20 21:43:41 -04:00
  • e7cbd99db6 Separate WinForms tests so main test suite runs on Linux aj 2026-09-20 17:40:06 -04:00
  • 27684c3782 style: apply CSharpier formatting to files merged from arc-tangency branch aj 2026-09-20 16:54:16 -04:00
  • 54694f9b17 Merge branch 'chore/csharpier-sweep' aj 2026-09-20 16:53:52 -04:00
  • de1248589a Merge branch 'feat/outer-profile-only' aj 2026-09-20 16:52:18 -04:00
  • a9ebd8bb55 chore: add .git-blame-ignore-revs for the CSharpier sweep aj 2026-09-20 16:42:45 -04:00
  • aec0523062 style: apply CSharpier formatting to all C# sources aj 2026-09-20 16:41:50 -04:00
  • 8e6fa677fb chore: add .editorconfig and pinned CSharpier tool manifest aj 2026-09-20 16:04:04 -04:00
  • 589d341455 feat(io): conservative opt-in bend repair with tests and console CLI aj 2026-09-20 15:22:46 -04:00
  • 1a05391d94 fix(engine): reject small corner overlaps in placement validation aj 2026-09-20 13:40:45 -04:00
  • f5d27652f4 Merge branch 'fix/simplifier-arc-tangency' aj 2026-09-19 12:02:08 -04:00
  • ea4bd836cd Add tested caller-stock StockLadder baseline with strict geometry validation aj 2026-09-19 11:24:36 -04:00
  • 9b69c67572 fix(engine): use required spacing, not a sampled gap, when resequencing shrink-fill strips ajandClaude Sonnet 5 2026-09-19 10:04:33 -04:00
  • aa88eee484 fix(benchmark): use reference-based drawing identity in NestValidator, fix duplicate-sheet-size crash, document Engines/ plugin contract ajandClaude Sonnet 5 2026-09-19 08:44:09 -04:00
  • e0e3b96bed fix(benchmark): match drawing identity across materialization boundary in NestValidator ajandClaude Sonnet 5 2026-09-19 08:29:48 -04:00
  • 424ff15ebc docs: describe INestingEngine-based benchmark comparison aj 2026-09-19 08:25:57 -04:00
  • 9888fe6083 feat(benchmark): switch CLI to NestingEngineRegistry and its Engines/ plugin directory Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> aj 2026-09-19 08:23:31 -04:00
  • a2dcfc7484 refactor(benchmark): drive engines through INestingEngine.Solve instead of a hand-rolled multi-plate loop ajandClaude Sonnet 5 2026-09-19 08:19:08 -04:00
  • ae704478af feat(engine): add NestingEngineRegistry for whole-job INestingEngine plugin discovery aj 2026-09-19 08:15:40 -04:00
  • ecca71e185 feat(engine): add FixedStrategyNestingEngine adapting IPlateNester strategies to INestingEngine ajandClaude Haiku 4.5 2026-09-19 08:12:10 -04:00
  • f0fe79f0f1 Merge remote-tracking branch 'origin/master' aj 2026-09-19 07:44:40 -04:00
  • a68e252ac7 docs: describe whole-job engine architecture aj 2026-09-18 20:18:24 -04:00
  • bc6bcae419 docs: document whole-job nesting contracts and migration boundaries aj 2026-09-18 16:27:32 -04:00
  • 02141f6ca5 refactor(engine): separate plate placement from job allocation aj 2026-09-18 08:38:23 -04:00
  • ad69023c17 feat(api): accept complete nesting jobs and report fulfillment aj 2026-09-18 06:15:04 -04:00
  • 2b0b962c8f fix(engine): enforce whole-job safety invariants aj 2026-09-18 05:56:37 -04:00
  • 75c8adc76c feat(engine): select from mixed plate inventory aj 2026-09-18 02:09:06 -04:00
  • 67f5fb8eca refactor(jobs): single-source strategy resolution in adapter aj 2026-09-17 16:26:45 -04:00
  • 5b88d85937 fix(engine): isolate job identity and engine selection aj 2026-09-17 15:35:59 -04:00
  • 0963b051be feat(engine): execute inventory-bounded multi-plate jobs aj 2026-09-17 13:55:11 -04:00
  • 71dffce72c feat(engine): introduce whole-job nesting contracts aj 2026-09-17 13:44:10 -04:00
  • a9e0f8a1d4 Rework OpenNest.Benchmark into a full multi-plate, multi-size nest aj 2026-09-15 21:36:31 -04:00
  • 20da5477b6 Fix NestValidator: add area-budget backstop, cheaper polygon conversion aj 2026-09-15 20:54:12 -04:00
  • 6a0fba0fec Add OpenNest.Benchmark: generic head-to-head engine comparison harness aj 2026-09-15 18:31:36 -04:00
  • 587000f68a Fix push broad-phase checks to preserve part spacing aj 2026-09-11 22:32:37 -04:00
  • d99e47f241 Fix duplicate bend-note rendering in CAD converter aj 2026-09-11 21:48:13 -04:00
  • a085339ba9 fix: improve arc-tangency fitting and add layered engrave/cut passes for GravographIS ajandClaude Opus 4.6 2026-08-06 23:15:18 -04:00
  • bcb85805d9 fix: remove Windows-specific TFM for Linux/Docker compatibility ajandClaude Sonnet 4.6 2026-06-25 22:33:22 -04:00
  • e493d83899 feat(io): add Gravograph .CHR font reader with text-to-geometry ajandClaude Opus 4.8 2026-05-28 14:37:19 -04:00
  • 987a5e25bc Add Gravograph IS post processor aj 2026-05-23 12:40:53 -04:00
  • 86582d28c3 fix(io): map DXF text vertical alignment for correct rendering ajandClaude Opus 4.6 2026-05-23 07:17:47 -04:00
  • f064368008 fix(io): remove zero-sweep arcs during DXF import ajandClaude Opus 4.6 2026-05-07 06:52:14 -04:00
  • 9148797897 fix(ui): remove cut-off preview debounce for immediate cursor tracking ajandClaude Opus 4.6 2026-04-30 06:35:48 -04:00
  • da77cc9270 Fix best-fit viewer bounds for angled pairs aj 2026-05-18 22:17:47 -04:00
  • 27f0685058 fix(engine): skip intersecting parts as obstacles during compactor push ajandClaude Opus 4.6 2026-05-17 19:03:33 -04:00
  • 53988acefc fix(io): deduplicate circles and full-circle arcs during DXF import ajandClaude Opus 4.6 2026-05-08 13:09:31 -04:00
  • a8d90be2ea feat: add layer filter overloads to Dxf.GetGeometry() ajandClaude Opus 4.6 2026-04-23 11:07:04 -04:00
  • c25b6bc23a feat(ui): render DXF text annotations in CAD converter preview ajandClaude Opus 4.6 2026-04-29 21:45:44 -04:00
  • 1c994718fb feat(io): add DWG file import support via ACadSharp DwgReader ajandClaude Opus 4.6 2026-04-27 22:58:26 -04:00
  • 9d58e6fba8 fix(ui): stay on drawings tab after DXF import ajandClaude Opus 4.6 2026-04-25 23:34:05 -04:00
  • 2bae5340f0 test: add nest invariance tests for fill count across import orientations ajandClaude Opus 4.6 2026-04-23 21:32:56 -04:00
  • 0b322817d7 fix(core): use chain tolerance for entity gap check to prevent spurious rapids ajandClaude Opus 4.6 2026-04-23 21:32:08 -04:00
  • e41f335c63 feat: remove duplicate arcs matching circles on same layer during DXF import ajandClaude Sonnet 4.6 2026-04-23 10:44:54 -04:00
  • 0ab33af5d3 feat: add WeldEndpoints to ShapeBuilder for gap repair on import ajandClaude Opus 4.6 2026-04-23 10:40:43 -04:00
  • e04c9381f3 feat: add IComparable<Box> and comparison operators to Box ajandClaude Sonnet 4.6 2026-04-23 10:36:23 -04:00
  • ceb9cc0b44 refactor: move Fraction from OpenNest.IO.Bom to OpenNest.Math ajandClaude Sonnet 4.6 2026-04-23 10:33:57 -04:00
  • 4cecaba83a fix(core): emit line instead of arc for near-zero sweep to avoid full-circle misinterpretation ajandClaude Opus 4.6 2026-04-23 08:50:38 -04:00
  • 4053f1f989 fix(core): arc bounding box inflated for near-zero sweep arcs ajandClaude Opus 4.6 2026-04-23 08:20:39 -04:00
  • ca67b1bd29 fix(io): handle flipped OCS normal on DXF ellipse import ajandClaude Opus 4.6 2026-04-23 08:01:45 -04:00
  • 199095ee43 fix(engine): canonicalize PlaceBestFitPairs builds to match BestFitCache frame aj 2026-04-20 09:43:56 -04:00
  • eb493d501a feat(engine): wrap single-item Fill with canonicalize/un-rotate bookends aj 2026-04-20 09:36:13 -04:00
  • 6c98732117 feat(engine): BestFitCache operates in canonical frame; TryPlaceBestFitPair builds from canonical drawing aj 2026-04-20 09:26:34 -04:00
  • a2e9fd4d14 feat(engine): extract ML features from canonical drawing frame aj 2026-04-20 09:23:21 -04:00
  • d228b6b812 refactor(engine): share MBR between PartClassifier and CanonicalAngle aj 2026-04-20 09:20:33 -04:00
  • c634aecd4b docs(core): refresh SourceInfo.Angle doc now that setter wiring lands aj 2026-04-20 09:18:54 -04:00
  • 14b7c1cf32 feat(core): store Source.Angle; recompute when Program changes aj 2026-04-20 09:13:37 -04:00
  • 402af91af5 feat(engine): add CanonicalFrame helper for drawing-to-canonical rotation aj 2026-04-20 09:06:30 -04:00
  • 9a6b656e3c feat(core): add CanonicalAngle helper for MBR-aligning angle aj 2026-04-20 08:57:03 -04:00
  • d2f9597b0c refactor(fill): use native entity geometry for linear copy distance ajandClaude Opus 4.7 2026-04-16 23:26:21 -04:00
  • c40dcf0e25 chore: remove unused debug logging to desktop ajandClaude Opus 4.7 2026-04-16 23:24:40 -04:00
  • 28653e3a9f feat(shapes): generate unique drawing names from parameters and add toolbar button ajandClaude Opus 4.6 2026-04-16 15:48:45 -04:00
  • 7c3246c6e7 fix(cutting): restrict tabs to external perimeter and clarify tab UI ajandClaude Opus 4.6 2026-04-16 08:55:30 -04:00
  • bd48f57ce0 feat(ui): distinct Dark palette and recolor drawings on scheme switch ajandClaude Opus 4.6 2026-04-15 22:06:14 -04:00
  • a6ec21accc fix(ui): address code review issues in color scheme feature ajandClaude Opus 4.6 2026-04-15 21:56:15 -04:00
  • 320cf40f41 feat(ui): ship Schemes folder for user-defined color scheme JSON ajandClaude Opus 4.6 2026-04-15 21:52:45 -04:00
  • 3beca10429 feat(ui): add color scheme picker to Options dialog ajandClaude Opus 4.6 2026-04-15 21:52:00 -04:00
  • 8bea5dac6c feat(ui): apply active color scheme at startup ajandClaude Opus 4.6 2026-04-15 21:50:03 -04:00
  • 12f8bbf8f5 feat(ui): add ActiveColorScheme user setting ajandClaude Sonnet 4.6 2026-04-15 21:49:31 -04:00
  • d15790b948 feat(ui): add ColorSchemeRegistry with Classic/Pastel/Dark built-ins ajandClaude Opus 4.6 2026-04-15 21:48:46 -04:00
  • d80f76e386 feat(ui): add ColorScheme.Name/PartColors instance props and JSON serializer ajandClaude Opus 4.6 2026-04-15 21:46:51 -04:00
  • 07bce8699a refactor(core): make Drawing.PartColors mutable for scheme overrides ajandClaude Sonnet 4.6 2026-04-15 21:45:18 -04:00
  • 9b84508ff4 refactor(shapes): generalize OctagonShape to NgonShape ajandClaude Opus 4.6 2026-04-15 13:42:02 -04:00
  • 6fdf0ad3c5 refactor(cnc): extract rapid enumeration into RapidEnumerator ajandClaude Opus 4.6 2026-04-15 12:49:04 -04:00
  • 4f7bfcc3ad Merge remote-tracking branch 'origin/master' aj 2026-04-15 12:46:40 -04:00
  • 3c53d6fecd fix(engine): default FillContext.Policy to avoid null-deref in ReportProgress v0.2.0 ajandClaude Opus 4.6 2026-04-15 06:28:58 -04:00
  • e239967a7b feat(cincinnati): emit SubProgramCall features as M98 hole calls ajandClaude Opus 4.6 2026-04-15 06:17:31 -04:00
  • 9d57d3875a fix(cnc): offset SubProgramCall positions in Program.Offset ajandClaude Opus 4.6 2026-04-15 06:17:26 -04:00