136 Commits

Author SHA1 Message Date
32e8379e9b refactor: extract CutTemplate from BomItem for all-item BOM tracking
BomItems are now created for every BOM item regardless of whether they
produce a DXF. Sheet metal cut data (thickness, k-factor, bend radius,
DXF path, content hash) moved to a new CutTemplate entity with a 1:1
optional relationship. Non-sheet-metal items are counted as "skipped"
instead of "failed" in the export summary. Added Cut Templates tab to
the UI with a DataGridView for viewing cut template records.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 15:32:17 -05:00
0ace378eff docs: update README to reflect local export and .NET 8 migration
Remove CutFab API references and document the current architecture:
local file export, SQL Server tracking, and .NET 8.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 22:35:41 -05:00
697463f61e feat: disable SolidWorks user input during export
Sets CommandInProgress to block user interaction with SolidWorks
while the DXF export is running, preventing accidental interference.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 22:32:12 -05:00
aj
4eb13a1aca Added Readme 2026-02-13 22:18:36 -05:00
49051b5e64 refactor: replace CutFab API with local file export and database
Remove CutFabApiClient and DrawingSelectionForm - exports no longer
depend on an external API server. DXF/PDF files are saved directly
to a configurable output folder, and export records are persisted
to a local SQL Server database via EF Core.

Replace Color-based progress logging with LogLevel enum across all
services. Redesign MainForm with equipment/drawing filter dropdowns
populated from export history, log row coloring by severity, and
simplified startup flow in Program.cs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 11:27:04 -05:00
384fceb047 feat: add local database and file export infrastructure
Add EF Core DbContext with ExportRecord and BomItem entities for
tracking export history locally. Add FileExportService for saving
DXF and PDF files to a configurable output folder.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 11:26:50 -05:00
c4926c6e9f refactor: migrate to .NET 8 SDK-style project format
Convert from .NET Framework 4.8 legacy csproj to .NET 8 SDK-style.
Add ComHelper class for COM Running Object Table access, replacing
Marshal.GetActiveObject which is not available in .NET Core.
Add EF Core and System.Configuration.ConfigurationManager packages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 11:26:40 -05:00
6b1a5f0ab6 docs: remove AGENTS.md documentation file
Remove obsolete or unnecessary documentation file.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 09:59:16 -05:00
13009aa15e feat: add async SolidWorks connection at startup
Update service container to asynchronously connect to SolidWorks before showing DrawingSelectionForm:
- Convert ResolveDrawingSelection to async method
- Attempt SolidWorks connection and handle failures gracefully
- Show warning dialog if connection fails but allow user to continue
- Pass SolidWorksService instance to DrawingSelectionForm

This enables the active drawing display feature while maintaining robustness when SolidWorks is unavailable.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 09:59:06 -05:00
136a571aea feat(ui): display active SolidWorks drawing in DrawingSelectionForm
Add real-time display of the currently active SolidWorks document:
- Show active drawing name with visual status indicators
- Display different states: drawing (green), non-drawing (orange), none (gray), error (red)
- Subscribe to ActiveDocumentChanged events for live updates
- Inject ISolidWorksService dependency for document access

This helps users verify they're working with the correct drawing before export.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 09:58:48 -05:00
8b1c2b5b1b refactor(ui): improve DrawingSelectionForm layout and responsiveness
- Make form wider (584x315) for better content display
- Add anchor properties to controls for responsive resizing
- Adjust control positions and spacing for improved layout
- Update MainForm tab sizes to match new dimensions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 09:58:33 -05:00
f68bddac93 chore: remove test SolidWorks files from repository
Remove TestDocs/ directory and add to .gitignore. Test files can be maintained locally without bloating the repository history.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 09:56:45 -05:00
de4847b834 refactor(ui): update MainForm for drawing-based workflow
Refactored MainForm to work with pre-selected drawing ID and number. Added PDF viewer control, enhanced BOM item management with sheet metal properties, and improved UI layout for drawing-specific operations.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 06:47:04 -05:00
cbfb9190c5 refactor: update application startup flow
Modified Program.cs to display DrawingSelectionForm at startup before launching MainForm. The selected drawing ID and number are now passed to MainForm constructor.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 06:46:43 -05:00
9b1fbd9fad feat(ui): add drawing selection form
Added DrawingSelectionForm to allow users to select equipment and drawing at application startup, replacing the previous workflow where drawing selection happened within the main form.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 06:46:32 -05:00
51bf3b00dd feat(api): add BOM items and cut templates endpoints
Added GetBomItemsForDrawingAsync and GetCutTemplatesAsync methods to fetch BOM items with sheet metal properties and cut template data from the API.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 06:46:22 -05:00
a32bbfa5d9 feat: add BomItem and LogEvent models
Added BomItem model with sheet metal properties (thickness, k-factor, bend radius) and LogEvent model for structured logging with action tracking.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 06:46:11 -05:00
84f0196c97 refactor: remove Excel export functionality
Removed BomExcelExporter service, BomExcelSettings class, BomTemplate.xlsx template, and EPPlus package dependency. This functionality is being replaced with direct API integration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 06:45:58 -05:00
5cf7e1f1e5 chore: add Claude Code configuration and documentation
- Add /organize-commits slash command for logical commit organization
- Add AGENTS.md with repository guidelines and workflows

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 17:30:06 -04:00
35ac0fb3f8 feat(api): add sheet metal properties to DXF upload
- Add defaultBendRadius and material parameters to UploadDxfZipAsync
- Pass bend radius and material from BOM items to API
- Enables more complete sheet metal specification in CutFab

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 17:29:56 -04:00
cc34fb43b6 refactor(ui): rename controls and improve drawing selection
- Rename form controls from generic names to descriptive ones:
  - button1 → runButton
  - richTextBox1 → logTextBox
  - comboBox1 → viewFlipDeciderBox
  - comboBox2 → drawingNoBox
- Preserve drawing selection when switching equipment
- Auto-populate drawing number from active document

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-30 17:29:47 -04:00
AJ
d29d9a0e06 Feature: send sheet metal properties and upload all BOM items
Enhanced DXF export to send thickness and kfactor properties from SolidWorks
to the CutFab API, and ensures all BOM items are uploaded regardless of whether
they have DXF files.

Changes:
- Modified UploadDxfZipAsync to accept and send thickness/kfactor parameters
- Updated DxfExportService to extract thickness/kfactor from Item and pass to API
- Refactored BOM item creation to happen for all items, not just those with DXF files
- This ensures purchased parts, hardware, and other non-sheet-metal items are uploaded

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 00:17:37 -04:00
c7f2a51823 Submodule EtchBendLines updated
Submodule EtchBendLines:
    > 89d987f - Refactor Main method to separate responsibilities and improve readability
    > 78ae737 - Refactor Etcher.AddEtchLines into discrete steps and helpers
    > 2391eb7 - Format Bend.ToString() with 2dp and “?” placeholders for nulls
    > dd7443d - Moved GetEtchLines to Etcher class
    > e5daf74 - Extract IsBendLine helper to clean up BendLineExtractor
    > 7740120 - bendNoteRegex tweaks
    > 214cc94 - Culture-safe parsing
2025-10-28 17:35:14 -04:00
AJ
5b996be91e refactor(model): rename JobNo to EquipmentNo in DrawingInfo
- Update regex group and ToString to use EquipmentNo

- Prepare for equipment-centric drawing identification
2025-10-28 17:24:27 -04:00
AJ
6bddbff08e feat(naming): update DXF filename format to include drawing number and PT##
- Use prefix as drawing number and format as {DrawingNo} PT{ItemNo}

- Default to PT{ItemNo} when no prefix provided
2025-10-28 17:24:21 -04:00
AJ
1ec72bc98f feat(export): integrate CutFab API in export flow
- Export to temp directory and auto-upload PDF/DXF

- Resolve or create drawing via API using selected Equipment ID

- Upload DXFs per-part and create BOM items

- Attempt auto-linking of templates after export

- Add EquipmentId to ExportContext
2025-10-28 17:24:16 -04:00
AJ
b122b88435 feat(ui): add equipment and drawing selectors powered by API\n\n- Inject ICutFabApiClient into MainForm\n- Populate equipment and drawings on load\n- Hook selection changes and pass into export context\n- Resize layout and replace prefix textbox with selectors 2025-10-28 17:24:00 -04:00
AJ
b677ac8ec9 feat(api): add CutFab API client and configuration\n\n- Add ICutFabApiClient + CutFabApiClient HTTP client\n- Wire base URL via appSettings (CutFab.ApiBaseUrl)\n- Register client in Program and inject into services\n- Add required System.Net.Http and compression references 2025-10-28 17:23:56 -04:00
AJ
c9a8442a29 Refactored ExportContext 2025-10-01 09:44:07 -04:00
AJ
a2b89318e1 Changed mm to inches in sheet metal properties 2025-10-01 09:42:22 -04:00
AJ
f1fc105a1b Set minimum width for BOM description column 2025-10-01 09:42:01 -04:00
AJ
58269f9761 Changed BomExcelSettings defaults 2025-10-01 09:40:54 -04:00
AJ
4053038632 Fixed unit scales 2025-10-01 09:40:16 -04:00
AJ
2d5ffdf5c0 Refactored MainForm 2025-09-29 13:29:50 -04:00
AJ
6b37f0f6f7 Refactored BomToExcel 2024-12-23 14:10:12 -05:00
AJ
c1aaaf07ee Set flat pattern suppression state to fully resolved. 2023-07-22 08:23:53 -04:00
AJ
63b96e1451 Remove xml tags from BOM items. 2023-07-22 08:21:59 -04:00
AJ
97f45b2fcc Set SimplifyBends to true
When set to false, some bend reliefs are made of splines
2023-03-02 09:19:14 -05:00
AJ
2e6ecd11a1 Uncheck flat pattern corner treatment 2023-03-01 08:07:06 -05:00
AJ
db481baa89 Changed target framework to version 4.8 2023-03-01 08:06:34 -05:00
AJ
636818ed33 Submodule EtchBendLines updated
Submodule EtchBendLines:
    > 04031a7 - Changed target framework to version 4.8
    > 3e4ab60 - Allow multiple paths passed through args
    > 2b30498 - Wrap main in try catch
2023-03-01 08:05:48 -05:00
AJ
979067db21 Save drawing pdf in same directory as DXF files. 2022-06-23 12:44:44 -04:00
AJ
a0080c8a68 Print errors when getting BOM items. 2022-06-23 11:06:23 -04:00
AJ
aeec611f78 Include 5000 range in drawing numbers. 2022-06-23 10:47:30 -04:00
AJ
d3f6791b53 UpdatePrefix() 2021-10-12 20:51:40 -04:00
AJ
15edbf6fec Reset prefix if no drawing info is found. 2021-10-11 06:25:01 -04:00
AJ
0d1fd67b8d Updated publish settings 2021-04-14 07:15:23 -04:00
AJ
4fe7e0e8d7 Show automatic view flip decider first. 2021-03-24 06:47:46 -04:00
AJ
e39b7292cb Fixed missing argument for ExportDrawingToPDF 2021-03-22 07:15:30 -04:00
AJ
d7e4eb7e87 Specify savepath for ExportDrawingToPDF 2021-03-21 23:46:57 -04:00