-
a735884ee9
feat: add Plate.BuildPerimeterCache with ShapeProfile and convex hull fallback

ajandClaude Opus 4.6
2026-03-22 22:34:14 -04:00
-
22554b0fa3
refactor: extract CollectPoints from FindBestRotation

ajandClaude Opus 4.6
2026-03-22 22:30:59 -04:00
-
48b4849a88
fix: ShapeProfile selects perimeter by largest bounding box area

ajandClaude Opus 4.6
2026-03-22 22:29:00 -04:00
-
f79df4d426
refactor: remove NfpNestEngine

ajandClaude Opus 4.6
2026-03-22 21:11:53 -04:00
-
ebb18d9b49
fix: prevent RemnantFiller interleaving and PairFiller recursion

ajandClaude Opus 4.6
2026-03-22 21:11:47 -04:00
-
31a9e6dbad
feat: replace best-fit viewer dropdown with DrawingListBox in split view

ajandClaude Opus 4.6
2026-03-22 20:53:43 -04:00
-
a576f9fafa
fix: correct test helper winding and edge sequencer test data

ajandClaude Opus 4.6
2026-03-22 20:31:50 -04:00
-
9453bb51ce
docs: update CLAUDE.md with cut-off feature documentation

ajandClaude Opus 4.6
2026-03-22 20:02:42 -04:00
-
ad58332a5d
feat: regenerate cut-offs after part drag and fill operations

ajandClaude Opus 4.6
2026-03-22 20:01:03 -04:00
-
d4f60d5e8e
feat: add cut-off selection, drag-to-reposition, and delete

ajandClaude Opus 4.6
2026-03-22 19:57:26 -04:00
-
3ea05257eb
feat: wire up cut-off action in MainForm menu

ajandClaude Opus 4.6
2026-03-22 19:54:09 -04:00
-
7e49ed620b
feat: add ActionCutOff for placing sheet cut-offs

ajandClaude Opus 4.6
2026-03-22 19:50:38 -04:00
-
57bd0447e9
feat: add PlateView cut-off rendering with grip handle

ajandClaude Opus 4.6
2026-03-22 19:46:49 -04:00
-
07d6f08e8b
feat: engine-specific TrimAxis and rename ShrinkAxis.Height to Length

ajandClaude Opus 4.6
2026-03-22 19:43:29 -04:00
-
2f19f47a85
feat: serialize/deserialize cut-off definitions in nest file format

ajandClaude Opus 4.6
2026-03-22 19:40:01 -04:00
-
d58a446eac
feat: add Plate.CutOffs collection with materialization and transform support

ajandClaude Opus 4.6
2026-03-22 19:36:05 -04:00
-
5fc7d1989a
feat: add CutOff and CutOffSettings domain classes with segment generation

ajandClaude Opus 4.6
2026-03-22 19:32:33 -04:00
-
3f6bc2b2a1
feat: guard Plate quantity/utilization/overlap for IsCutOff parts

ajandClaude Opus 4.6
2026-03-22 19:14:28 -04:00
-
7681a1bad0
feat: add Drawing.IsCutOff flag for cut-off support

ajandClaude Opus 4.6
2026-03-22 19:12:49 -04:00
-
a548d5329a
chore: update NestProgressForm designer layout

ajandClaude Opus 4.6
2026-03-21 23:09:07 -04:00
-
07012033c7
feat: use direction-specific engines in StripNestEngine

ajandClaude Opus 4.6
2026-03-21 23:09:02 -04:00
-
92b17b2963
perf: parallelize PairFiller candidates and add GridDedup

ajandClaude Opus 4.6
2026-03-21 23:08:55 -04:00
-
b6ee04f038
fix: use Part.Rotate() in PlateView to avoid mutating shared Programs

ajandClaude Opus 4.6
2026-03-21 23:08:47 -04:00
-
8ffdacd6c0
refactor: replace NestPhase switch statements with attribute-based extensions

ajandClaude Sonnet 4.6
2026-03-21 19:49:44 -04:00
-
ccd402c50f
refactor: simplify NestProgress with computed properties and ProgressReport struct

ajandClaude Opus 4.6
2026-03-21 19:44:45 -04:00
-
b1e872577c
feat: add Description/ShortName attributes to NestPhase with extension methods

ajandClaude Sonnet 4.6
2026-03-21 19:38:54 -04:00
-
9903478d3e
refactor: simplify BestCombination.FindFrom2 and add tests

ajandClaude Opus 4.6
2026-03-21 17:07:43 -04:00
-
93a8981d0a
feat: add Disable/Enable API to FillStrategyRegistry

ajandClaude Opus 4.6
2026-03-21 15:19:27 -04:00
-
00e7866506
feat: add remnant filling to PairFiller for better part density

ajandClaude Opus 4.6
2026-03-21 15:19:19 -04:00
-
560105f952
refactor: extract shared convergence loop and reduce parameter counts in StripeFiller

ajandClaude Opus 4.6
2026-03-21 14:22:29 -04:00
-
266f8a83e6
docs: update CLAUDE.md with fill goal engines architecture

ajandClaude Opus 4.6
2026-03-21 12:58:35 -04:00
-
0b7697e9c0
feat: add VerticalRemnantEngine and HorizontalRemnantEngine

ajandClaude Sonnet 4.6
2026-03-21 12:57:33 -04:00
-
83124eb38d
feat: wire IFillComparer through PairFiller and StripeFiller

ajandClaude Sonnet 4.6
2026-03-21 12:53:28 -04:00
-
24beb8ada1
feat: wire IFillComparer through FillHelpers, Linear, and Extents strategies

ajandClaude Sonnet 4.6
2026-03-21 12:49:59 -04:00
-
ee83f17afe
feat: wire FillPolicy into DefaultNestEngine and FillContext

ajandClaude Opus 4.6
2026-03-21 12:46:30 -04:00
-
99546e7eef
feat: add IFillComparer hooks to NestEngineBase

ajandClaude Sonnet 4.6
2026-03-21 12:43:45 -04:00
-
4586a53590
feat: add FillPolicy record and FillHelpers.FillWithDirectionPreference

ajandClaude Sonnet 4.6
2026-03-21 12:41:07 -04:00
-
1a41eeb81d
feat: add VerticalRemnantComparer and HorizontalRemnantComparer

ajandClaude Sonnet 4.6
2026-03-21 12:38:23 -04:00
-
f894ffd27c
feat: add IFillComparer interface and DefaultFillComparer

ajandClaude Sonnet 4.6
2026-03-21 12:36:04 -04:00
-
0ec22f2207
feat: geometry-aware convergence, both-axis search, remnant engine, fill cache

ajandClaude Opus 4.6
2026-03-21 10:12:31 -04:00
-
3f3d95a5e4
fix: orient pair short side along primary axis before convergence

ajandClaude Opus 4.6
2026-03-21 09:22:13 -04:00
-
811d23510e
feat: add RowFillStrategy and ColumnFillStrategy with registry integration

ajandClaude Opus 4.6
2026-03-21 07:48:00 -04:00
-
0597a11a23
feat: implement StripeFiller.Fill with pair iteration, stripe tiling, and remnant fill

ajandClaude Opus 4.6
2026-03-21 07:44:59 -04:00
-
2ae1d513cf
feat: add StripeFiller.ConvergeStripeAngle iterative convergence

ajandClaude Opus 4.6
2026-03-21 07:37:59 -04:00
-
904d30d05d
feat: add StripeFiller.FindAngleForTargetSpan with scan-then-bisect

ajandClaude Opus 4.6
2026-03-21 07:36:10 -04:00
-
e9678c73b2
chore: remove remaining stale plan docs

ajandClaude Opus 4.6
2026-03-21 00:14:18 -04:00
-
4060430757
chore: remove stale superpowers docs and update gitignore

ajandClaude Opus 4.6
2026-03-21 00:13:01 -04:00
-
de527cd668
feat: add plate utilization to UI status bar

ajandClaude Opus 4.6
2026-03-21 00:10:42 -04:00
-
9887cb1aa3
fix: swap BestFitCell dimension display to height x width

ajandClaude Opus 4.6
2026-03-21 00:04:23 -04:00
-
cdf8e4e40e
refactor: use IDistanceComputer and rename Type to StrategyIndex

ajandClaude Opus 4.6
2026-03-21 00:04:19 -04:00
-
4f21fb91a1
refactor: extract IDistanceComputer with CPU and GPU implementations

ajandClaude Opus 4.6
2026-03-21 00:04:12 -04:00
-
7f96d632f3
fix: correct NFP polygon computation and inflation direction

ajandClaude Opus 4.6
2026-03-20 23:24:04 -04:00
-
38dcaf16d3
revert: switch BestFitFinder back to RotationSlideStrategy

ajandClaude Opus 4.6
2026-03-20 21:12:16 -04:00
-
8c57e43221
fix: use NoFitPolygon.Compute with hull inputs instead of direct ConvexMinkowskiSum

ajandClaude Opus 4.6
2026-03-20 20:59:53 -04:00
-
bc78ddc49c
perf: use convex hull NFP to avoid Clipper2 union bottleneck

ajandClaude Opus 4.6
2026-03-20 20:54:19 -04:00
-
c88cec2beb
perf: remove no-op AutoNester.Optimize calls from fill pipelines

ajandClaude Sonnet 4.6
2026-03-20 20:11:49 -04:00
-
b7c7cecd75
feat: wire NfpSlideStrategy into BestFitFinder pipeline

ajandClaude Sonnet 4.6
2026-03-20 20:09:48 -04:00
-
4d0d8c453b
fix: guard stepSize <= 0 in NfpSlideStrategy to prevent infinite loop

ajandClaude Opus 4.6
2026-03-20 20:07:43 -04:00
-
5f4288a786
feat: add NfpSlideStrategy for NFP-based best-fit candidate generation

ajandClaude Sonnet 4.6
2026-03-20 20:03:52 -04:00
-
707ddb80d9
style: fix var rule violation in PolygonHelper

ajandClaude Opus 4.6
2026-03-20 20:01:22 -04:00
-
71f28600d1
refactor: extract PolygonHelper from AutoNester for shared polygon operations

ajandClaude Sonnet 4.6
2026-03-20 19:56:20 -04:00
-
d39b0ae540
docs: add NFP best-fit strategy implementation plan

ajandClaude Opus 4.6
2026-03-20 16:45:50 -04:00
-
ee5c77c645
docs: address spec review — coordinate correction, edge cases

ajandClaude Opus 4.6
2026-03-20 16:32:12 -04:00
-
4615bcb40d
docs: add NFP best-fit strategy design spec

ajandClaude Opus 4.6
2026-03-20 16:28:40 -04:00
-
7843de145b
fix: swap bounding box dimensions in BestFitViewerForm

ajandClaude Opus 4.6
2026-03-20 16:19:16 -04:00
-
2d1f2217e5
fix: guard IsHandleCreated in EditNestForm timer

ajandClaude Opus 4.6
2026-03-20 14:43:51 -04:00
-
ae88c34361
fix: prioritize width-fitting candidates in PairFiller strip mode

ajandClaude Opus 4.6
2026-03-20 14:43:45 -04:00
-
708d895a04
perf: remove automatic angle sweep in linear fill

ajandClaude Opus 4.6
2026-03-20 14:43:38 -04:00
-
884817c5f9
fix: normalize best-fit pairs to landscape and fix viewer size swap

ajandClaude Opus 4.6
2026-03-20 14:43:31 -04:00
-
cf1c5fe120
feat: integrate NFP optimization into nest engines and fill UI

ajandClaude Opus 4.6
2026-03-20 14:43:24 -04:00
-
a04586f7df
feat: add AutoNester.Optimize post-pass and NfpNestEngine

ajandClaude Opus 4.6
2026-03-20 14:43:18 -04:00
-
069e966453
feat: add Compactor.Settle for iterative compaction

ajandClaude Opus 4.6
2026-03-20 14:43:10 -04:00
-
d9d275b675
feat: improve BLF with Clipper paths, spatial pruning, and progress

ajandClaude Opus 4.6
2026-03-20 14:43:04 -04:00
-
9411dd0fdd
refactor: extract PlacedPart/SequenceEntry types, add IFP caching

ajandClaude Opus 4.6
2026-03-20 14:42:50 -04:00
-
facd07d7de
feat: add Box.Translate and improve NFP/IFP geometry APIs

ajandClaude Opus 4.6
2026-03-20 14:42:43 -04:00
-
2ed02c2dae
feat: show selected part bounding box in status bar

ajandClaude Opus 4.6
2026-03-20 09:38:48 -04:00
-
3756ea255e
fix(test): plate size
aj
2026-03-20 00:32:45 -04:00
-
33ba40e203
refactor: use TrimToCount instead of blind Take(N) in DefaultNestEngine.Fill
aj
2026-03-20 00:09:53 -04:00
-
6d66636e3d
refactor: replace ShrinkFiller shrink loop with TrimToCount

ajandClaude Sonnet 4.6
2026-03-20 00:06:58 -04:00
-
85278bbb75
feat: add ShrinkFiller.TrimToCount for axis-aware edge trimming

ajandClaude Sonnet 4.6
2026-03-20 00:03:57 -04:00
-
f0a3547bd1
docs: add trim-to-count implementation plan

ajandClaude Opus 4.6
2026-03-20 00:01:39 -04:00
-
fe2a293128
docs: address spec review feedback for trim-to-count

ajandClaude Opus 4.6
2026-03-19 23:56:14 -04:00
-
11f605801f
docs: add trim-to-count design spec

ajandClaude Opus 4.6
2026-03-19 23:53:35 -04:00
-
8dc12972f5
feat(ui): add drawing selector, color scheme, and async loading to BestFitViewer

ajandClaude Opus 4.6
2026-03-19 21:44:21 -04:00
-
8a0ebf8c18
feat(ui): improve BestFitViewerForm navigation and reduce flicker

ajandClaude Opus 4.6
2026-03-19 21:23:20 -04:00
-
c552372f81
fix(core): copy-on-write for shared Program in tiled parts

ajandClaude Opus 4.6
2026-03-19 21:10:20 -04:00
-
683cb3c180
docs: fix file format section in CLAUDE.md to match v2 nest format

ajandClaude Opus 4.6
2026-03-19 18:52:07 -04:00
-
2cb2808c79
docs: add lead item rotation design spec for strip nesting

ajandClaude Opus 4.6
2026-03-19 18:12:17 -04:00
-
e969260f3d
refactor(engine): introduce PairFillResult and remove FillRemainingStrip

ajandClaude Opus 4.6
2026-03-19 15:53:23 -04:00
-
8bfc13d529
fix(engine): move progress reporting from inner fills to ShrinkFiller

ajandClaude Opus 4.6
2026-03-19 12:43:35 -04:00
-
ca35945c13
fix(ui): show active or stationary preview parts, not both overlapping

ajandClaude Opus 4.6
2026-03-19 11:50:56 -04:00
-
fab2214149
perf(engine): reduce PairFiller work area when count exceeds target

ajandClaude Opus 4.6
2026-03-19 11:35:15 -04:00
-
e3b89f2660
perf(engine): add target count to ShrinkFiller with FillBestFit estimate

ajandClaude Opus 4.6
2026-03-19 10:55:01 -04:00
-
1e9640d4fc
feat(engine): include rotating calipers angle in pair nesting tiling

ajandClaude Opus 4.6
2026-03-19 10:42:29 -04:00
-
116a386152
refactor(engine): delete obsolete StripNestResult and StripDirection

ajandClaude Sonnet 4.6
2026-03-19 10:38:12 -04:00
-
8957b20bac
feat(engine): rewrite StripNestEngine.Nest with iterative shrink-fill

ajandClaude Sonnet 4.6
2026-03-19 10:37:21 -04:00
-
c31ef9f80c
test(engine): add multi-item, leftover, unlimited qty, and cancellation tests for IterativeShrinkFiller

ajandClaude Sonnet 4.6
2026-03-19 10:34:12 -04:00
-
3b6e4bdd3a
fix(engine): remove dead unlimitedDrawings set, fix comment accuracy

ajandClaude Opus 4.6
2026-03-19 10:32:46 -04:00
-
ef737ffa6d
feat(engine): add IterativeShrinkFiller with dual-direction shrink selection

ajandClaude Sonnet 4.6
2026-03-19 10:30:10 -04:00
-
1bc635acde
docs: add iterative shrink-fill implementation plan

ajandClaude Opus 4.6
2026-03-19 10:26:08 -04:00