feat: add IBendDetector interface, SolidWorks implementation, and registry
Introduces a pluggable bend detection system in OpenNest.IO.Bending: - IBendDetector takes CadDocument directly to preserve MText/layer/linetype info - SolidWorksBendDetector finds lines on BEND layer with CENTER linetype and matches nearby MText notes - BendDetectorRegistry auto-registers SolidWorks detector and supports AutoDetect Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
30
OpenNest.Tests/Bending/SolidWorksBendDetectorTests.cs
Normal file
30
OpenNest.Tests/Bending/SolidWorksBendDetectorTests.cs
Normal file
@@ -0,0 +1,30 @@
|
||||
using OpenNest.Bending;
|
||||
using OpenNest.IO.Bending;
|
||||
|
||||
namespace OpenNest.Tests.Bending;
|
||||
|
||||
public class SolidWorksBendDetectorTests
|
||||
{
|
||||
[Fact]
|
||||
public void SolidWorksDetector_IsRegistered()
|
||||
{
|
||||
var detector = BendDetectorRegistry.GetByName("SolidWorks");
|
||||
Assert.NotNull(detector);
|
||||
Assert.Equal("SolidWorks", detector.Name);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Registry_ContainsSolidWorksDetector()
|
||||
{
|
||||
Assert.Contains(BendDetectorRegistry.Detectors,
|
||||
d => d.Name == "SolidWorks");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AutoDetect_EmptyDocument_ReturnsEmptyList()
|
||||
{
|
||||
var doc = new ACadSharp.CadDocument();
|
||||
var bends = BendDetectorRegistry.AutoDetect(doc);
|
||||
Assert.Empty(bends);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user