Commit Graph

  • f5d27652f4 Merge branch 'fix/simplifier-arc-tangency' master aj 2026-09-19 12:02:08 -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
  • 0e299d7f6f feat(cincinnati): seed material library defaults and add selector dropdown ajandClaude Opus 4.6 2026-04-15 06:16:29 -04:00
  • c6f544c5d7 feat(ui): populate material combobox from post processors ajandClaude Opus 4.6 2026-04-15 06:12:54 -04:00
  • 9563094c2b fix(ui): show Drawings tab before Plates in EditNestForm ajandClaude Opus 4.6 2026-04-14 09:10:58 -04:00
  • a3ae61d993 fix(cutting): emit open contours raw instead of applying lead-in/lead-out ajandClaude Opus 4.6 2026-04-12 22:37:56 -04:00
  • 838a247ef9 fix(geometry): replace closest-point heuristic with analytical arc-to-line directional distance ajandClaude Opus 4.6 2026-04-12 22:33:48 -04:00
  • a5e5e78c4e refactor(geometry): deduplicate axis branches in SpatialQuery.OneWayDistance ajandClaude Opus 4.6 2026-04-12 21:58:45 -04:00
  • c386e462b2 docs(readme): add CAD converter section with screenshots ajandClaude Opus 4.6 2026-04-12 21:36:39 -04:00
  • 2c0457d503 feat(ui): add bend line editing to CAD converter ajandClaude Opus 4.6 2026-04-12 21:36:26 -04:00
  • b03b3eb4d9 fix(bending): detect bend lines on layer "0" in addition to "BEND" ajandClaude Opus 4.6 2026-04-12 21:36:21 -04:00
  • 29c2872819 fix(geometry): add Entity.Clone() and stop NormalizeEntities from mutating originals ajandClaude Opus 4.6 2026-04-12 21:35:13 -04:00
  • 3e96c62f33 docs(readme): reformat features as tables and document cutout-aware splitter ajandClaude Opus 4.6 2026-04-10 22:55:11 -04:00
  • 6880dee489 fix(splitter): preserve disconnected strips and trim cuts around cutouts ajandClaude Opus 4.6 2026-04-10 22:46:47 -04:00
  • 0e45c13515 feat(shapes): add PlateSizes catalog and wire Ctrl+P to snap-to-standard ajandClaude Opus 4.6 2026-04-10 20:16:29 -04:00
  • 54def611fa refactor(ui): switch CreateShapeFromInputs to control-type branching aj 2026-04-10 17:52:03 -04:00
  • b1d094104a feat(ui): add filtered pipe size dropdown to shape library ajandClaude Sonnet 4.6 2026-04-10 17:50:01 -04:00
  • 9d66b78a11 feat(ui): add bool checkbox support to ShapeLibraryForm ajandClaude Sonnet 4.6 2026-04-10 17:47:36 -04:00
  • eddbbca7ef test(shapes): verify PipeFlangeShape JSON loading and shipped config integrity aj 2026-04-10 17:45:46 -04:00
  • 4e7b5304a0 chore(shapes): migrate flange config to PipeFlangeShape schema ajandClaude Sonnet 4.6 2026-04-10 17:42:16 -04:00
  • 06485053fc test(shapes): cover empty-string PipeSize in addition to null aj 2026-04-10 17:39:50 -04:00
  • 92a57d33df feat(shapes): add pipe bore, clearance, and blind flag to PipeFlangeShape ajandClaude Sonnet 4.6 2026-04-10 17:36:10 -04:00
  • 6adc5b0967 refactor(shapes): rename FlangeShape to PipeFlangeShape aj 2026-04-10 17:33:28 -04:00
  • d215d02844 style(shapes): remove redundant usings and document PipeSizes bound aj 2026-04-10 17:31:22 -04:00
  • 57863e16e9 feat(shapes): add ANSI pipe OD lookup table ajandClaude Sonnet 4.6 2026-04-10 17:27:25 -04:00
  • 091e750e1b chore(cad-importer): remove dead code and cover named detector branch ajandClaude Opus 4.6 2026-04-10 14:13:44 -04:00