36 Commits

Author SHA1 Message Date
da4d3228b0 revert: remove degree symbol fix (moved to caller)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:31:50 -05:00
3c1700c480 fix: repair double-encoded degree symbol in DXF output
ACadSharp misreads UTF-8 degree symbol (C2 B0) as two ANSI_1252
characters (°) then writes that back out. Post-process the saved
DXF to replace ° with ° so bend notes display correctly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 16:28:38 -05:00
f2f50f9914 fix: set bend line entity color to ByLayer
Bend lines retained their original explicit color (white) from
SolidWorks after being moved to the BEND layer. Now set to ByLayer
so they inherit the layer's yellow color.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:51:54 -05:00
bf36a56387 fix: detect bend lines from SolidWorks DXF exports
Three issues prevented bend line detection after the ACadSharp migration:

1. IsBendLine required layer "BEND" but SolidWorks exports bend lines
   on layer "0" with CENTERX2 linetype. Added "0" as accepted layer.

2. Bend note regex used literal ° which failed when ACadSharp reads the
   degree symbol as multi-byte "°" due to ANSI/UTF-8 encoding mismatch.
   Changed to [^R\d]* to tolerate any characters between angle and R.

3. Radius filter excluded bends with null Radius (unparsed notes).
   Nullable comparison null <= 4.0 evaluates to false in C#, filtering
   out all bends. Added null check to include unparsed bends.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:33:59 -05:00
6e131d402e fix: upgrade ACadSharp 3.1.32 → 3.4.9 to fix missing OBJECTS section
The DxfWriter in 3.1.32 wrote root dictionary entries referencing child
dictionary objects (ACAD_GROUP, ACAD_LAYOUT, etc.) but never serialized
the actual objects. This caused AutoCAD to report "GroupTable dictionary
was not defined in NamedObject dictionary". Version 3.4.9 includes the
root dictionary fix from PR #957.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:20:45 -05:00
f04c75235c fix: enable CreateDefaults on DxfReader to fix missing ACAD_GROUP dictionary
SolidWorks DXF exports don't include the ACAD_GROUP entry in the Named
Object Dictionary. Without it, AutoCAD reports "GroupTable dictionary was
not defined in NamedObject dictionary" when opening the file.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:13:06 -05:00
2e8f0e60c5 feat: switch from netDxf to ACadSharp for DXF operations
Replace vendored netDxf git submodule with ACadSharp NuGet package
(v3.1.32). This aligns the DXF dependency with the parent project.

API migration: DxfDocument→CadDocument, Vector3→XYZ, Vector2→XY,
MText.Position→MText.InsertPoint, Line.Linetype→Line.LineType,
DxfDocument.Load()→DxfReader, doc.Save()→DxfWriter.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 12:52:08 -05:00
b0e48442ca fix: return etch lines and support additional bend layer names
- Fix GetEtchLines() using yield break instead of return lines, which
  caused all etch lines to be silently discarded
- Support BEND LINES and BENDLINES layer names in addition to BEND
- Move all bend lines to BEND layer before processing
- Migrate csproj from .NET Framework 4.8 to SDK-style net8.0-windows

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 12:37:22 -05:00
AJ
89d987f6c6 Refactor Main method to separate responsibilities and improve readability 2025-05-09 07:47:29 -04:00
AJ
78ae737adb Refactor Etcher.AddEtchLines into discrete steps and helpers 2025-05-08 19:32:20 -04:00
AJ
2391eb7050 Format Bend.ToString() with 2dp and “?” placeholders for nulls 2025-05-08 19:30:41 -04:00
AJ
dd7443ddb8 Moved GetEtchLines to Etcher class 2025-05-08 08:41:00 -04:00
AJ
e5daf748c6 Extract IsBendLine helper to clean up BendLineExtractor 2025-05-08 08:24:31 -04:00
AJ
774012021c bendNoteRegex tweaks 2025-05-08 07:53:42 -04:00
AJ
214cc94816 Culture-safe parsing 2025-05-08 07:31:19 -04:00
AJ
04031a7677 Changed target framework to version 4.8 2023-03-01 08:04:50 -05:00
AJ
3e4ab60366 Allow multiple paths passed through args 2021-04-07 22:00:11 -04:00
AJ
2b30498147 Wrap main in try catch 2021-04-07 21:06:22 -04:00
AJ
f664bd79a4 Added Etcher class 2021-03-08 22:38:29 -05:00
AJ
1e66f9d960 Create application without a manifest 2020-03-05 07:59:21 -05:00
AJ
748899d7bf Made Program class public so it can be used in other projects 2020-03-05 07:45:22 -05:00
AJ
bf8568f2cf Cleanup GetEtchLines 2019-10-01 20:25:40 -04:00
AJ
d6b000ee51 Fixed PointPerpendicularTo 2019-09-30 19:21:21 -04:00
AJ
876455357f Cleanup 2019-09-25 17:52:31 -04:00
AJ
68f6035e5f Changed SharpRadius to property 2019-09-16 19:44:46 -04:00
AJ
76e060d361 Added option to replace sharp bends with radius. 2019-09-15 01:43:57 -04:00
AJ
559f57fb44 Moved bend line extraction to separate class. 2019-09-15 00:21:04 -04:00
AJ
443912f8f8 Handle sharp bends 2019-09-11 13:18:10 -04:00
AJ
5da216dec2 Exclude bend lines where radius is too large. 2019-09-10 14:42:23 -04:00
AJ
80d4f78858 Filter existing etch lines by layer. 2019-09-07 10:14:29 -04:00
AJ
cc83752b0c Fixed finding existing etch lines. 2019-09-07 09:37:52 -04:00
AJ
767070a011 Changed assembly name 2019-09-07 08:03:26 -04:00
AJ
be50441475 Don't add duplicate etch lines. 2019-09-07 07:57:44 -04:00
AJ
1661aa42dd GetPartType 2019-09-07 07:45:01 -04:00
AJ
3d54cb8b84 Changed namespace 2019-09-06 21:10:48 -04:00
AJ
3ef94813ac First commit. 2019-09-06 17:28:34 -04:00