-
7bc9f134f6
feat(engine): add FillExtents scaffold with pair construction and column tiling
AJ Isaacs
2026-03-18 00:45:55 -04:00
-
6e30e24957
feat(engine): add NestPhase.Extents enum value
AJ Isaacs
2026-03-18 00:42:48 -04:00
-
42f2475f3c
fix: correct Size width/length axis mapping throughout codebase
AJ Isaacs
2026-03-17 16:20:24 -04:00
-
-
a487d33f52
merge: integrate remote master
AJ Isaacs
2026-03-17 12:15:09 -04:00
-
-
bfd740c81e
feat(core): add FlangeShape with JSON preset loading
AJ Isaacs
2026-03-17 11:36:26 -04:00
-
03efeff85a
Update README.md
aj
2026-03-17 10:33:45 -04:00
-
-
d4222db0e8
fix: correct Size width/length ordering and add CLI docs to README
AJ Isaacs
2026-03-17 10:29:13 -04:00
-
21a16e5b7c
feat(ui): move add/remove plate buttons to header bar
AJ Isaacs
2026-03-17 09:46:08 -04:00
-
4616f077d5
feat(ui): move plate navigation from toolbar to header above PlateView
AJ Isaacs
2026-03-17 09:35:18 -04:00
-
d210d29554
docs: add keyboard shortcuts to README
AJ Isaacs
2026-03-17 09:17:10 -04:00
-
dde07fc256
merge: resolve polylabel conflicts, keep remote version with hole support
AJ Isaacs
2026-03-17 09:02:30 -04:00
-
-
788996abcf
docs: add screenshots to README
AJ Isaacs
2026-03-17 08:58:50 -04:00
-
224fbde19a
feat: add polylabel algorithm for part label positioning and README
AJ Isaacs
2026-03-17 08:52:48 -04:00
-
a0865405e2
refactor(mcp): use shape library in InputTools
AJ Isaacs
2026-03-17 08:10:13 -04:00
-
6e5471271d
feat(core): add RoundedRectangleShape
AJ Isaacs
2026-03-17 08:07:22 -04:00
-
0651f185e3
feat(core): add OctagonShape
AJ Isaacs
2026-03-17 08:06:21 -04:00
-
33377291a6
feat(core): add TShape
AJ Isaacs
2026-03-17 08:06:08 -04:00
-
dfd5a15274
feat(core): add TrapezoidShape
AJ Isaacs
2026-03-17 08:04:15 -04:00
-
09a7608bcb
feat(core): add IsoscelesTriangleShape
AJ Isaacs
2026-03-17 08:03:14 -04:00
-
92d2d6d2bc
feat(core): add RightTriangleShape
AJ Isaacs
2026-03-17 08:02:18 -04:00
-
641734ba70
feat(core): add RingShape
AJ Isaacs
2026-03-17 08:00:11 -04:00
-
5d0de4a1b1
feat(core): add CircleShape
AJ Isaacs
2026-03-17 07:59:26 -04:00
-
f92d09a863
feat(core): add RectangleShape
AJ Isaacs
2026-03-17 07:58:37 -04:00
-
5670ae79bf
feat(core): add ShapeDefinition base class
AJ Isaacs
2026-03-17 07:57:54 -04:00
-
aedbbbe0a6
docs: add shape library implementation plan
AJ Isaacs
2026-03-17 07:55:54 -04:00
-
5d9d48ebfc
docs: address spec review feedback for shape library
AJ Isaacs
2026-03-17 07:49:34 -04:00
-
eb6cb94893
docs: add shape library design spec
AJ Isaacs
2026-03-17 07:46:44 -04:00
-
9d40d78562
feat(ui): add remnant viewer tool window
AJ Isaacs
2026-03-16 22:49:51 -04:00
-
896cb536dd
feat(console): add --engine CLI flag to select nest engine
AJ Isaacs
2026-03-16 22:49:43 -04:00
-
493f7f837a
fix(engine): sort hull edge angles by longest edge first
AJ Isaacs
2026-03-16 22:49:35 -04:00
-
c94beb51a4
feat(engine): try interlocking pair patterns in remainder strips
AJ Isaacs
2026-03-16 22:49:27 -04:00
-
c2c723f86f
refactor(engine): clean up unused imports after extraction
AJ Isaacs
2026-03-16 22:41:30 -04:00
-
29d58cc8af
test(engine): add integration smoke tests for engine refactor
AJ Isaacs
2026-03-16 22:39:51 -04:00
-
5bb637f3e2
refactor(engine): use RemnantFiller in NestEngineBase.Nest
AJ Isaacs
2026-03-16 22:38:53 -04:00
-
75cb6b2bac
refactor(engine): rewire StripNestEngine to use extracted helpers
AJ Isaacs
2026-03-16 22:37:59 -04:00
-
c077649734
refactor(engine): rewire DefaultNestEngine to use extracted helpers
AJ Isaacs
2026-03-16 22:35:25 -04:00
-
319eace472
refactor(engine): extract RemnantFiller for iterative remnant filling
AJ Isaacs
2026-03-16 22:33:00 -04:00
-
c8587929b5
refactor(engine): extract PairFiller from DefaultNestEngine
AJ Isaacs
2026-03-16 22:31:51 -04:00
-
14048b0b7c
refactor(engine): make BuildRotatedPattern and FillPattern internal static
AJ Isaacs
2026-03-16 22:30:37 -04:00
-
a7f27480e9
refactor(engine): extract AngleCandidateBuilder from DefaultNestEngine
AJ Isaacs
2026-03-16 22:29:52 -04:00
-
094b1e9f00
refactor(engine): extract ShrinkFiller from StripNestEngine
AJ Isaacs
2026-03-16 22:28:24 -04:00
-
31dbbbeedc
refactor(engine): extract AccumulatingProgress from StripNestEngine
AJ Isaacs
2026-03-16 22:26:53 -04:00
-
ba7ded14b5
build: add InternalsVisibleTo for OpenNest.Tests
AJ Isaacs
2026-03-16 22:25:46 -04:00
-
4c4e8c37fb
docs: add engine refactor implementation plan
AJ Isaacs
2026-03-16 22:05:51 -04:00
-
0fb3a216e1
docs: fix PairFiller API signature and ShrinkFiller axis mapping
AJ Isaacs
2026-03-16 21:51:17 -04:00
-
1ed6401ba3
docs: address spec review feedback for engine refactor
AJ Isaacs
2026-03-16 21:49:04 -04:00
-
a510ac2acb
docs: add engine refactor design spec
AJ Isaacs
2026-03-16 21:44:59 -04:00
-
5553fe6386
fix(ui): compute polylabel once from unrotated drawing
AJ Isaacs
2026-03-16 20:55:29 -04:00
-
79a3410bb9
feat(ui): position part labels at polylabel center
AJ Isaacs
2026-03-16 20:46:47 -04:00
-
b647769b51
feat(ui): position part labels at polylabel center
AJ Isaacs
2026-03-16 20:44:29 -04:00
-
909b697b78
test(geometry): add PolyLabel tests for L, C, triangle, thin rect, hole
AJ Isaacs
2026-03-16 20:42:49 -04:00
-
44657a86b8
feat(geometry): add PolyLabel algorithm with square test
AJ Isaacs
2026-03-16 20:40:25 -04:00
-
45bda1b2ac
docs: add polylabel part label positioning implementation plan
AJ Isaacs
2026-03-16 20:36:45 -04:00
-
65bde123ed
fix(engine): fix remnant finder missing L-shaped and split remnants
AJ Isaacs
2026-03-16 20:03:23 -04:00
-
d0faf1e2b6
docs: update polylabel spec with hole support, caching fix, fallback
AJ Isaacs
2026-03-16 19:39:18 -04:00
-
e7864f9dc8
docs: add polylabel part label positioning design spec
AJ Isaacs
2026-03-16 19:37:00 -04:00
-
-
66050c68f6
feat(engine): add CompactIndividual to Compactor (disabled in strip nester)
AJ Isaacs
2026-03-16 14:35:07 -04:00
-
195e29da52
fix(ui): rotate grouped parts around shared center with dedup
AJ Isaacs
2026-03-16 14:11:07 -04:00
-
0b9a42e84c
fix(engine): use smallest remaining part as minimum remnant size
AJ Isaacs
2026-03-16 13:51:30 -04:00
-
00ccf82196
fix(engine): apply shrink loop to remnant fills in StripNestEngine
AJ Isaacs
2026-03-16 13:50:14 -04:00
-
a41a08c9af
fix(engine): use local quantity tracking in StripNestEngine remnant loop
AJ Isaacs
2026-03-16 13:23:32 -04:00
-
3d23943b69
fix(engine): use RemnantFinder for iterative remnant filling in StripNestEngine
AJ Isaacs
2026-03-16 13:11:28 -04:00
-
51b482aefb
test: add RemnantFinder edge cases and FillScore comparison tests
AJ Isaacs
2026-03-16 13:02:15 -04:00
-
6419f6b8a2
feat: report ActiveWorkArea in NestProgress from ReportProgress
AJ Isaacs
2026-03-16 12:58:17 -04:00
-
4911d05869
feat: wire ActiveWorkArea from NestProgress to PlateView
AJ Isaacs
2026-03-16 12:57:51 -04:00
-
2b4f7c4e80
feat: draw active work area as dashed orange rectangle on PlateView
AJ Isaacs
2026-03-16 12:56:37 -04:00
-
2c62f601ca
feat: add ActiveWorkArea property to NestProgress
AJ Isaacs
2026-03-16 12:55:54 -04:00
-
2bda7c9f0f
refactor: remove StripNestResult.RemnantBox
AJ Isaacs
2026-03-16 12:54:19 -04:00
-
9d99e3a003
refactor: update MCP tools to use RemnantFinder
AJ Isaacs
2026-03-16 12:53:48 -04:00
-
b42348665f
refactor: remove Plate.GetRemnants(), replaced by RemnantFinder
AJ Isaacs
2026-03-16 12:53:29 -04:00
-
4d30178752
refactor: replace ComputeRemainderWithin with RemnantFinder in Nest()
AJ Isaacs
2026-03-16 12:51:25 -04:00
-
2b578fa006
refactor: remove NestPhase.Remainder enum value and switch cases
AJ Isaacs
2026-03-16 12:50:48 -04:00
-
78c625361e
refactor: remove remainder phase from DefaultNestEngine
AJ Isaacs
2026-03-16 12:50:26 -04:00
-
dd3a2b0e9a
refactor: remove UsableRemnantArea from NestProgress and UI
AJ Isaacs
2026-03-16 12:47:57 -04:00
-
9b21a0c6d7
fix: update FillWithPairs debug logging after FillScore simplification
AJ Isaacs
2026-03-16 12:47:11 -04:00
-
5b9e6c28e4
refactor: simplify FillScore to count + density, remove remnant tracking
AJ Isaacs
2026-03-16 12:46:53 -04:00
-
ecdf571c71
feat: add RemnantFinder with edge projection algorithm
AJ Isaacs
2026-03-16 12:45:35 -04:00
-
f5ab070453
test: add RemnantFinder tests (red)
AJ Isaacs
2026-03-16 12:44:53 -04:00
-
5873bff48b
docs: add remnant finder implementation plan
AJ Isaacs
2026-03-16 12:38:44 -04:00
-
190f2a062f
docs: add PlateView remnant visualization to remnant finder spec
AJ Isaacs
2026-03-16 12:26:23 -04:00
-
384d53da47
docs: add remnant finder design spec
AJ Isaacs
2026-03-16 12:19:16 -04:00
-
1b62f7af04
docs: revise lead-in UI spec with external/internal split and LayerType tagging
AJ Isaacs
2026-03-16 11:04:42 -04:00
-
-
48d4220199
docs: add lead-in assignment UI design spec
AJ Isaacs
2026-03-16 01:29:32 -04:00
-
ff496e4efe
fix(engine): track multiple free rectangles in strip remnant filling
AJ Isaacs
2026-03-16 01:28:25 -04:00
-
1a3e18795b
fix(ui): reverse sequence order so cutting starts near origin
AJ Isaacs
2026-03-16 00:58:35 -04:00
-
507dff95b8
fix(ui): use LeastCode sequencer and fix AddRange double-enumeration
AJ Isaacs
2026-03-16 00:54:35 -04:00
-
a1f32eda79
feat(ui): wire Plate→Sequence menu to PartSequencerFactory
AJ Isaacs
2026-03-16 00:50:03 -04:00
-
545d031ee7
feat: add PlateProcessor for per-part lead-in assignment and cut sequencing
AJ Isaacs
2026-03-16 00:47:16 -04:00
-
-
7d198f837c
feat: add PlateProcessor orchestrator
AJ Isaacs
2026-03-16 00:44:25 -04:00
-
5948dc9cae
feat: add PlateResult and ProcessedPart
AJ Isaacs
2026-03-16 00:43:17 -04:00
-
6dffd8f5ad
feat: add DirectRapidPlanner with line-shape intersection check
AJ Isaacs
2026-03-16 00:43:06 -04:00
-
29b2572f9a
feat: add IRapidPlanner, RapidPath, and SafeHeightRapidPlanner
AJ Isaacs
2026-03-16 00:39:34 -04:00
-
c1e21abd45
feat: add PartSequencerFactory
AJ Isaacs
2026-03-16 00:36:41 -04:00
-
edc81ae45e
feat: add AdvancedSequencer with row grouping and serpentine
AJ Isaacs
2026-03-16 00:36:07 -04:00
-
7edf6ee843
feat: add LeastCodeSequencer with nearest-neighbor and 2-opt
AJ Isaacs
2026-03-16 00:35:19 -04:00
-
f568308d1a
feat: add EdgeStartSequencer
AJ Isaacs
2026-03-16 00:32:35 -04:00
-
d0351ab765
feat: add directional part sequencers (RightSide, LeftSide, BottomSide)
AJ Isaacs
2026-03-16 00:27:57 -04:00
-
4f8febde23
feat: add IPartSequencer interface and SequencedPart
AJ Isaacs
2026-03-16 00:27:02 -04:00
-
00940d1b6e
chore: rename test project to OpenNest.Tests
AJ Isaacs
2026-03-16 00:25:22 -04:00
-
1757e9e01d
refactor: change ContourCuttingStrategy.Apply to accept approachPoint
AJ Isaacs
2026-03-16 00:23:53 -04:00