fix(io): deduplicate circles and full-circle arcs during DXF import

Duplicate circle entities at the same location inflated pierce counts
and cut pricing (e.g. SULLYS-035 showed 9 pierces instead of 8).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-08 13:09:32 -04:00
parent a18b5398de
commit 1945270fa7
3 changed files with 40 additions and 1 deletions
+5 -1
View File
@@ -133,6 +133,7 @@ namespace OpenNest.IO
var entities = new List<Entity>();
var lines = new List<Line>();
var arcs = new List<Arc>();
var circles = new List<Circle>();
foreach (var entity in doc.Entities)
{
@@ -150,7 +151,7 @@ namespace OpenNest.IO
break;
case ACadSharp.Entities.Circle circle:
entities.Add(circle.ToOpenNest());
circles.Add(circle.ToOpenNest());
break;
case ACadSharp.Entities.Spline spline:
@@ -181,7 +182,10 @@ namespace OpenNest.IO
GeometryOptimizer.Optimize(lines);
GeometryOptimizer.Optimize(arcs);
GeometryOptimizer.Deduplicate(circles);
GeometryOptimizer.Deduplicate(circles, arcs);
entities.AddRange(circles);
entities.AddRange(lines);
entities.AddRange(arcs);