solidworks-mcp-server 2.1.0 ā 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/README.md +75 -8
- package/dist/solidworks/api.d.ts +1 -0
- package/dist/solidworks/api.d.ts.map +1 -1
- package/dist/solidworks/api.js +328 -56
- package/dist/solidworks/api.js.map +1 -1
- package/dist/tools/modeling.d.ts.map +1 -1
- package/dist/tools/modeling.js +58 -2
- package/dist/tools/modeling.js.map +1 -1
- package/dist/tools/vba.d.ts.map +1 -1
- package/dist/tools/vba.js +72 -19
- package/dist/tools/vba.js.map +1 -1
- package/package.json +5 -3
- package/scripts/setup.js +71 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,29 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.2.0] - 2025-01-19
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **Critical: Handlebars Helper Registration** - Added all necessary Handlebars helpers (eq, ne, lt, gt, lte, gte, and, or, not) to fix VBA generation tools
|
|
12
|
+
- **Template Name Mismatch** - Fixed batch_export template mapping and created proper batch_export.vba template
|
|
13
|
+
- **Rebuild Model API** - Updated to use correct SolidWorks API methods (ForceRebuild3, EditRebuild, Rebuild) with fallback strategies
|
|
14
|
+
- **Close Model Error Handling** - Added safe error handling for title retrieval preventing COM object access errors
|
|
15
|
+
- **Export File Robustness** - Enhanced export functionality with format-specific handling and retry logic
|
|
16
|
+
- **Mass Properties Extraction** - Improved getMassProperties with comprehensive error handling
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
- batch_export.vba template for batch export operations
|
|
20
|
+
- Debug scripts (debug-server.mjs, debug-wrapper.mjs, test-fixes.mjs) for troubleshooting
|
|
21
|
+
- SWChecklist.md comprehensive testing checklist
|
|
22
|
+
- zod-to-json-schema dependency for schema validation
|
|
23
|
+
- ensureCurrentModel helper method in api.ts
|
|
24
|
+
|
|
25
|
+
### Improved
|
|
26
|
+
- Enhanced error handling across all API methods with multiple fallback strategies
|
|
27
|
+
- Better COM object access patterns for Windows SolidWorks compatibility
|
|
28
|
+
- Template compilation with proper error recovery
|
|
29
|
+
- API compatibility for different SolidWorks versions
|
|
30
|
+
|
|
8
31
|
## [2.1.0] - 2025-01-11
|
|
9
32
|
|
|
10
33
|
### Added
|
package/README.md
CHANGED
|
@@ -1,7 +1,37 @@
|
|
|
1
|
-
# SolidWorks MCP Server
|
|
1
|
+
# SolidWorks MCP Server
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
[](https://github.com/vespo92/SolidworksMCP-TS/actions/workflows/ci.yml)
|
|
6
|
+
[](https://www.npmjs.com/package/solidworks-mcp-server)
|
|
7
|
+
[](https://www.typescriptlang.org/)
|
|
8
|
+
[](https://modelcontextprotocol.com)
|
|
9
|
+
[](https://nodejs.org/)
|
|
10
|
+
[](https://opensource.org/licenses/MIT)
|
|
11
|
+
[](https://github.com/vespo92/SolidworksMCP-TS/pulls)
|
|
12
|
+
[](https://github.com/vespo92/SolidworksMCP-TS/graphs/commit-activity)
|
|
13
|
+
|
|
14
|
+
</div>
|
|
2
15
|
|
|
3
16
|
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with SolidWorks CAD software, providing automated design capabilities, macro recording, design tables with SQL integration, VBA generation, and PDM configuration management.
|
|
4
17
|
|
|
18
|
+
## šÆ Quick Start
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Install globally
|
|
22
|
+
npm install -g solidworks-mcp-server
|
|
23
|
+
|
|
24
|
+
# The installer will automatically configure Claude Desktop
|
|
25
|
+
# Restart Claude Desktop and you're ready to go!
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Then in Claude Desktop:
|
|
29
|
+
```
|
|
30
|
+
"Generate VBA to batch export all parts in my folder to STEP format"
|
|
31
|
+
"Create a parametric design table for a configurable bracket"
|
|
32
|
+
"Check for interferences in my assembly"
|
|
33
|
+
```
|
|
34
|
+
|
|
5
35
|
## š Key Features
|
|
6
36
|
|
|
7
37
|
### Core Capabilities
|
|
@@ -13,7 +43,15 @@ A comprehensive Model Context Protocol (MCP) server that enables AI assistants t
|
|
|
13
43
|
- **State Management** - Persistent resource states with auto-save
|
|
14
44
|
- **Resource-Based Architecture** - Modular, extensible design pattern
|
|
15
45
|
|
|
16
|
-
### New in v2.0
|
|
46
|
+
### New in v2.1.0 - Comprehensive VBA Generation Suite
|
|
47
|
+
- š§ **Part Modeling VBA** - Advanced features, patterns, sheet metal, surfaces
|
|
48
|
+
- šļø **Assembly Automation** - Mates, components, interference analysis
|
|
49
|
+
- š **Drawing Generation** - Views, dimensions, annotations, tables
|
|
50
|
+
- š **File & PDM Operations** - Batch processing, custom properties, vault management
|
|
51
|
+
- āļø **Advanced Features** - Configurations, equations, simulation setup
|
|
52
|
+
- šÆ **100+ VBA Tools** - Generate production-ready VBA without coding knowledge
|
|
53
|
+
|
|
54
|
+
### Enterprise Features (v2.0)
|
|
17
55
|
- šÆ **Macro Recording System** - Record actions and export to VBA
|
|
18
56
|
- š **SQL-Driven Design Tables** - Connect to databases for parametric designs
|
|
19
57
|
- šļø **PDM Configuration** - Manage vault operations, workflows, and automation
|
|
@@ -113,14 +151,43 @@ LOG_LEVEL=info
|
|
|
113
151
|
"Create folder structure with permissions for project team"
|
|
114
152
|
```
|
|
115
153
|
|
|
116
|
-
### Advanced VBA Generation
|
|
154
|
+
### Advanced VBA Generation (v2.1.0)
|
|
155
|
+
|
|
156
|
+
#### Part Modeling
|
|
157
|
+
```
|
|
158
|
+
"Generate VBA to create a parametric bracket with:
|
|
159
|
+
- Reference planes offset by 50mm
|
|
160
|
+
- Sweep feature along a 3D curve
|
|
161
|
+
- Linear pattern with 5 instances
|
|
162
|
+
- Sheet metal conversion with 2mm thickness"
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
#### Assembly Automation
|
|
166
|
+
```
|
|
167
|
+
"Generate VBA for assembly that:
|
|
168
|
+
- Inserts components from a folder
|
|
169
|
+
- Creates coincident and distance mates
|
|
170
|
+
- Checks for interferences
|
|
171
|
+
- Exports mass properties to Excel"
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
#### Batch Operations
|
|
175
|
+
```
|
|
176
|
+
"Generate VBA to process all files in C:\Parts that:
|
|
177
|
+
- Opens each SLDPRT file
|
|
178
|
+
- Updates custom properties (Part Number, Revision)
|
|
179
|
+
- Exports to STEP format
|
|
180
|
+
- Checks into PDM vault with comment"
|
|
181
|
+
```
|
|
117
182
|
|
|
183
|
+
#### Drawing Automation
|
|
118
184
|
```
|
|
119
|
-
"Generate VBA
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
185
|
+
"Generate VBA to create drawings that:
|
|
186
|
+
- Creates standard 3-view layout
|
|
187
|
+
- Adds section view A-A
|
|
188
|
+
- Dimensions all features
|
|
189
|
+
- Inserts BOM table
|
|
190
|
+
- Exports to PDF"
|
|
124
191
|
```
|
|
125
192
|
|
|
126
193
|
## š§ Available Tools
|
package/dist/solidworks/api.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export declare class SolidWorksAPI {
|
|
|
18
18
|
exportFile(filePath: string, format: string): void;
|
|
19
19
|
runMacro(macroPath: string, moduleName: string, procedureName: string, args?: any[]): any;
|
|
20
20
|
getMassProperties(): any;
|
|
21
|
+
private ensureCurrentModel;
|
|
21
22
|
getCurrentModel(): any;
|
|
22
23
|
getApp(): any;
|
|
23
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/solidworks/api.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGhE,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,YAAY,CAAM;;IAO1B,OAAO,IAAI,IAAI;IAWf,UAAU,IAAI,IAAI;IAUlB,WAAW,IAAI,OAAO;IAKtB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;IAiC5C,UAAU,CAAC,IAAI,GAAE,OAAe,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/solidworks/api.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGhE,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,YAAY,CAAM;;IAO1B,OAAO,IAAI,IAAI;IAWf,UAAU,IAAI,IAAI;IAUlB,WAAW,IAAI,OAAO;IAKtB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;IAiC5C,UAAU,CAAC,IAAI,GAAE,OAAe,GAAG,IAAI;IA0CvC,UAAU,IAAI,eAAe;IAoB7B,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG;IAe9B,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG;IAiBzB,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG;IAezB,aAAa,CACX,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAU,EACjB,OAAO,GAAE,OAAe,GACvB,iBAAiB;IA6FpB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAWlC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAa/C,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAmHlD,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,GAAE,GAAG,EAAO,GAAG,GAAG;IAe7F,iBAAiB,IAAI,GAAG;IAwHxB,OAAO,CAAC,kBAAkB;IAY1B,eAAe,IAAI,GAAG;IAKtB,MAAM,IAAI,GAAG;CAGd"}
|
package/dist/solidworks/api.js
CHANGED
|
@@ -60,10 +60,44 @@ export class SolidWorksAPI {
|
|
|
60
60
|
closeModel(save = false) {
|
|
61
61
|
if (!this.currentModel)
|
|
62
62
|
return;
|
|
63
|
+
let modelTitle = '';
|
|
64
|
+
try {
|
|
65
|
+
// Safely get the title
|
|
66
|
+
if (this.currentModel.GetTitle) {
|
|
67
|
+
modelTitle = this.currentModel.GetTitle();
|
|
68
|
+
}
|
|
69
|
+
else if (this.currentModel.GetPathName) {
|
|
70
|
+
modelTitle = this.currentModel.GetPathName();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
// If we can't get the title, continue anyway
|
|
75
|
+
modelTitle = 'Unknown';
|
|
76
|
+
}
|
|
63
77
|
if (save) {
|
|
64
|
-
|
|
78
|
+
try {
|
|
79
|
+
this.currentModel.Save3(1, 0, 0); // swSaveAsOptions_Silent
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
// Save might fail if document is new and has no path
|
|
83
|
+
try {
|
|
84
|
+
// Try Save instead
|
|
85
|
+
this.currentModel.Save();
|
|
86
|
+
}
|
|
87
|
+
catch (e2) {
|
|
88
|
+
// Continue even if save fails
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Close using app method if title is available
|
|
93
|
+
if (modelTitle && modelTitle !== 'Unknown' && this.swApp) {
|
|
94
|
+
try {
|
|
95
|
+
this.swApp.CloseDoc(modelTitle);
|
|
96
|
+
}
|
|
97
|
+
catch (e) {
|
|
98
|
+
// Fallback: just clear the reference
|
|
99
|
+
}
|
|
65
100
|
}
|
|
66
|
-
this.swApp.CloseDoc(this.currentModel.GetTitle());
|
|
67
101
|
this.currentModel = null;
|
|
68
102
|
}
|
|
69
103
|
createPart() {
|
|
@@ -117,34 +151,76 @@ export class SolidWorksAPI {
|
|
|
117
151
|
createExtrude(depth, draft = 0, reverse = false) {
|
|
118
152
|
if (!this.currentModel)
|
|
119
153
|
throw new Error('No model open');
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
154
|
+
try {
|
|
155
|
+
// Get the feature manager
|
|
156
|
+
const featureMgr = this.currentModel.FeatureManager;
|
|
157
|
+
if (!featureMgr) {
|
|
158
|
+
throw new Error('Cannot access FeatureManager');
|
|
159
|
+
}
|
|
160
|
+
// Try different extrusion methods based on what's available
|
|
161
|
+
let feature = null;
|
|
162
|
+
try {
|
|
163
|
+
// Method 1: Try FeatureExtrusion3 with all parameters
|
|
164
|
+
feature = featureMgr.FeatureExtrusion3(true, // SingleEndedFeature
|
|
165
|
+
reverse, // ReverseDirection
|
|
166
|
+
false, // UseDirection2
|
|
167
|
+
0, // EndCondition1 (0 = blind)
|
|
168
|
+
0, // EndCondition2
|
|
169
|
+
depth / 1000, // Depth1 (convert mm to m)
|
|
170
|
+
0.01, // Depth2
|
|
171
|
+
false, // RevOffset1
|
|
172
|
+
false, // RevOffset2
|
|
173
|
+
false, // ThinFeature
|
|
174
|
+
draft * Math.PI / 180, // DraftAngle1 (convert to radians)
|
|
175
|
+
0, // DraftAngle2
|
|
176
|
+
false, // DraftOutward1
|
|
177
|
+
false, // DraftOutward2
|
|
178
|
+
false, // DraftWhileDrag1
|
|
179
|
+
false, // DraftWhileDrag2
|
|
180
|
+
false, // ReverseOffset1Dir
|
|
181
|
+
true, // TranslateSurface1
|
|
182
|
+
false, // NormalToCurve
|
|
183
|
+
0, // StartCondition
|
|
184
|
+
0, // SketchPlane
|
|
185
|
+
false // FlipStartDirection
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
catch (e) {
|
|
189
|
+
// Method 2: Try FeatureExtrusion2 with fewer parameters
|
|
190
|
+
try {
|
|
191
|
+
feature = featureMgr.FeatureExtrusion2(true, // SingleEndedFeature
|
|
192
|
+
reverse, // ReverseDirection
|
|
193
|
+
false, // UseDirection2
|
|
194
|
+
0, // EndCondition1
|
|
195
|
+
0, // EndCondition2
|
|
196
|
+
depth / 1000, // Depth1
|
|
197
|
+
0.01, // Depth2
|
|
198
|
+
false, // RevOffset1
|
|
199
|
+
false, // RevOffset2
|
|
200
|
+
false, // ThinFeature
|
|
201
|
+
draft * Math.PI / 180, // DraftAngle1
|
|
202
|
+
0, // DraftAngle2
|
|
203
|
+
false, // DraftOutward1
|
|
204
|
+
false // DraftOutward2
|
|
205
|
+
);
|
|
206
|
+
}
|
|
207
|
+
catch (e2) {
|
|
208
|
+
// Method 3: Try the simplest FeatureExtrusion
|
|
209
|
+
feature = featureMgr.FeatureExtrusion(true, reverse, 0, depth / 1000, 0, 0, true, false, false, draft * Math.PI / 180, 0, false, false);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
if (!feature) {
|
|
213
|
+
throw new Error('Failed to create extrusion - ensure a sketch is selected');
|
|
214
|
+
}
|
|
215
|
+
return {
|
|
216
|
+
name: feature.Name,
|
|
217
|
+
type: 'Extrusion',
|
|
218
|
+
suppressed: false,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
throw new Error(`Extrusion failed: ${error}`);
|
|
142
223
|
}
|
|
143
|
-
return {
|
|
144
|
-
name: feature.Name,
|
|
145
|
-
type: 'Extrusion',
|
|
146
|
-
suppressed: false,
|
|
147
|
-
};
|
|
148
224
|
}
|
|
149
225
|
// Dimension operations
|
|
150
226
|
getDimension(name) {
|
|
@@ -170,23 +246,106 @@ export class SolidWorksAPI {
|
|
|
170
246
|
exportFile(filePath, format) {
|
|
171
247
|
if (!this.currentModel)
|
|
172
248
|
throw new Error('No model open');
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
'
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
249
|
+
try {
|
|
250
|
+
// Ensure the model is saved first
|
|
251
|
+
const currentPath = this.currentModel.GetPathName();
|
|
252
|
+
if (!currentPath || currentPath === '') {
|
|
253
|
+
// Save the model first if it hasn't been saved
|
|
254
|
+
const docType = this.currentModel.GetType();
|
|
255
|
+
const ext = docType === 1 ? '.SLDPRT' : docType === 2 ? '.SLDASM' : '.SLDDRW';
|
|
256
|
+
const tempPath = filePath.replace(/\.[^.]+$/, ext);
|
|
257
|
+
this.currentModel.SaveAs3(tempPath, 0, 1);
|
|
258
|
+
}
|
|
259
|
+
const ext = format.toLowerCase();
|
|
260
|
+
let success = false;
|
|
261
|
+
// Try to get export data
|
|
262
|
+
let exportData = null;
|
|
263
|
+
try {
|
|
264
|
+
exportData = this.swApp.GetExportFileData(1); // 1 = current config only
|
|
265
|
+
}
|
|
266
|
+
catch (e) {
|
|
267
|
+
// Export data might not be available for all formats
|
|
268
|
+
}
|
|
269
|
+
switch (ext) {
|
|
270
|
+
case 'step':
|
|
271
|
+
case 'stp':
|
|
272
|
+
if (exportData) {
|
|
273
|
+
try {
|
|
274
|
+
exportData.SetStep203(true); // Use STEP AP203
|
|
275
|
+
}
|
|
276
|
+
catch (e) {
|
|
277
|
+
// Method might not exist
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
// Try Extension.SaveAs first
|
|
281
|
+
try {
|
|
282
|
+
success = this.currentModel.Extension.SaveAs(filePath, 0, // version
|
|
283
|
+
1, // options
|
|
284
|
+
exportData, 0, // errors
|
|
285
|
+
0 // warnings
|
|
286
|
+
);
|
|
287
|
+
}
|
|
288
|
+
catch (e) {
|
|
289
|
+
// Fall back to SaveAs3
|
|
290
|
+
success = this.currentModel.SaveAs3(filePath, 0, 1);
|
|
291
|
+
}
|
|
292
|
+
break;
|
|
293
|
+
case 'iges':
|
|
294
|
+
case 'igs':
|
|
295
|
+
success = this.currentModel.SaveAs3(filePath, 0, 1);
|
|
296
|
+
break;
|
|
297
|
+
case 'stl':
|
|
298
|
+
// STL specific - try SaveAs4 for STL options
|
|
299
|
+
try {
|
|
300
|
+
success = this.currentModel.SaveAs4(filePath, 0, // Version
|
|
301
|
+
1, // Options
|
|
302
|
+
0, // Errors
|
|
303
|
+
0 // Warnings
|
|
304
|
+
);
|
|
305
|
+
}
|
|
306
|
+
catch (e) {
|
|
307
|
+
success = this.currentModel.SaveAs3(filePath, 0, 1);
|
|
308
|
+
}
|
|
309
|
+
break;
|
|
310
|
+
case 'pdf':
|
|
311
|
+
// PDF export requires drawing
|
|
312
|
+
const docType = this.currentModel.GetType();
|
|
313
|
+
if (docType !== 3) { // 3 = swDocDRAWING
|
|
314
|
+
throw new Error('PDF export requires a drawing document');
|
|
315
|
+
}
|
|
316
|
+
// Try ExportPdfData if available
|
|
317
|
+
try {
|
|
318
|
+
const pdfData = this.swApp.GetExportFileData(1);
|
|
319
|
+
success = this.currentModel.SaveAs3(filePath, 0, 1);
|
|
320
|
+
}
|
|
321
|
+
catch (e) {
|
|
322
|
+
success = this.currentModel.SaveAs3(filePath, 0, 1);
|
|
323
|
+
}
|
|
324
|
+
break;
|
|
325
|
+
case 'dxf':
|
|
326
|
+
case 'dwg':
|
|
327
|
+
// DXF/DWG export
|
|
328
|
+
success = this.currentModel.SaveAs3(filePath, 0, 1);
|
|
329
|
+
break;
|
|
330
|
+
default:
|
|
331
|
+
// Try generic export
|
|
332
|
+
success = this.currentModel.SaveAs3(filePath, 0, 1);
|
|
333
|
+
}
|
|
334
|
+
if (!success) {
|
|
335
|
+
// Try one more time with SaveAs2
|
|
336
|
+
try {
|
|
337
|
+
success = this.currentModel.SaveAs2(filePath, 0, true, false);
|
|
338
|
+
}
|
|
339
|
+
catch (e) {
|
|
340
|
+
throw new Error(`Failed to export to ${format}`);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
if (!success) {
|
|
344
|
+
throw new Error(`Failed to export to ${format}`);
|
|
345
|
+
}
|
|
184
346
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
);
|
|
188
|
-
if (!success) {
|
|
189
|
-
throw new Error(`Failed to export to ${format}`);
|
|
347
|
+
catch (error) {
|
|
348
|
+
throw new Error(`Export failed: ${error}`);
|
|
190
349
|
}
|
|
191
350
|
}
|
|
192
351
|
// VBA operations
|
|
@@ -200,19 +359,132 @@ export class SolidWorksAPI {
|
|
|
200
359
|
}
|
|
201
360
|
// Mass properties
|
|
202
361
|
getMassProperties() {
|
|
362
|
+
this.ensureCurrentModel();
|
|
203
363
|
if (!this.currentModel)
|
|
204
364
|
throw new Error('No model open');
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
365
|
+
// Check document type - mass properties only work for parts and assemblies
|
|
366
|
+
const docType = this.currentModel.GetType();
|
|
367
|
+
if (docType !== 1 && docType !== 2) { // 1=Part, 2=Assembly
|
|
368
|
+
throw new Error('Mass properties only available for parts and assemblies');
|
|
369
|
+
}
|
|
370
|
+
try {
|
|
371
|
+
// Get the modeler extension
|
|
372
|
+
const modeler = this.currentModel.Extension;
|
|
373
|
+
if (!modeler) {
|
|
374
|
+
throw new Error('Cannot access model extension');
|
|
375
|
+
}
|
|
376
|
+
// Create mass property object
|
|
377
|
+
let massProps = null;
|
|
378
|
+
try {
|
|
379
|
+
// Method 1: Try CreateMassProperty
|
|
380
|
+
massProps = modeler.CreateMassProperty();
|
|
381
|
+
}
|
|
382
|
+
catch (e) {
|
|
383
|
+
// Method 2: Try CreateMassProperty2
|
|
384
|
+
try {
|
|
385
|
+
massProps = modeler.CreateMassProperty2();
|
|
386
|
+
}
|
|
387
|
+
catch (e2) {
|
|
388
|
+
// Method 3: Try getting it from the model directly
|
|
389
|
+
massProps = this.currentModel.GetMassProperties();
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
if (!massProps) {
|
|
393
|
+
throw new Error('Failed to create mass property object');
|
|
394
|
+
}
|
|
395
|
+
// Update mass properties if method exists
|
|
396
|
+
try {
|
|
397
|
+
if (massProps.Update) {
|
|
398
|
+
const success = massProps.Update();
|
|
399
|
+
if (!success) {
|
|
400
|
+
// Try recalculate
|
|
401
|
+
if (massProps.Recalculate) {
|
|
402
|
+
massProps.Recalculate();
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
catch (e) {
|
|
408
|
+
// Update might not be needed
|
|
409
|
+
}
|
|
410
|
+
// Get the values with error handling
|
|
411
|
+
const result = {};
|
|
412
|
+
try {
|
|
413
|
+
result.mass = massProps.Mass;
|
|
414
|
+
}
|
|
415
|
+
catch (e) {
|
|
416
|
+
result.mass = 0;
|
|
417
|
+
}
|
|
418
|
+
try {
|
|
419
|
+
result.volume = massProps.Volume;
|
|
420
|
+
}
|
|
421
|
+
catch (e) {
|
|
422
|
+
result.volume = 0;
|
|
423
|
+
}
|
|
424
|
+
try {
|
|
425
|
+
result.surfaceArea = massProps.SurfaceArea;
|
|
426
|
+
}
|
|
427
|
+
catch (e) {
|
|
428
|
+
result.surfaceArea = 0;
|
|
429
|
+
}
|
|
430
|
+
try {
|
|
431
|
+
const com = massProps.CenterOfMass;
|
|
432
|
+
if (com && Array.isArray(com) && com.length >= 3) {
|
|
433
|
+
result.centerOfMass = {
|
|
434
|
+
x: com[0] * 1000, // Convert to mm
|
|
435
|
+
y: com[1] * 1000,
|
|
436
|
+
z: com[2] * 1000,
|
|
437
|
+
};
|
|
438
|
+
}
|
|
439
|
+
else {
|
|
440
|
+
result.centerOfMass = { x: 0, y: 0, z: 0 };
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
catch (e) {
|
|
444
|
+
result.centerOfMass = { x: 0, y: 0, z: 0 };
|
|
445
|
+
}
|
|
446
|
+
try {
|
|
447
|
+
result.density = massProps.Density;
|
|
448
|
+
}
|
|
449
|
+
catch (e) {
|
|
450
|
+
result.density = 0;
|
|
451
|
+
}
|
|
452
|
+
try {
|
|
453
|
+
const moi = massProps.MomentOfInertia;
|
|
454
|
+
if (moi && Array.isArray(moi) && moi.length >= 9) {
|
|
455
|
+
result.momentsOfInertia = {
|
|
456
|
+
Ixx: moi[0],
|
|
457
|
+
Ixy: moi[1],
|
|
458
|
+
Ixz: moi[2],
|
|
459
|
+
Iyx: moi[3],
|
|
460
|
+
Iyy: moi[4],
|
|
461
|
+
Iyz: moi[5],
|
|
462
|
+
Izx: moi[6],
|
|
463
|
+
Izy: moi[7],
|
|
464
|
+
Izz: moi[8]
|
|
465
|
+
};
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
catch (e) {
|
|
469
|
+
// Moments of inertia might not be available
|
|
470
|
+
}
|
|
471
|
+
return result;
|
|
472
|
+
}
|
|
473
|
+
catch (error) {
|
|
474
|
+
throw new Error(`Failed to get mass properties: ${error}`);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
// Helper to ensure current model is set
|
|
478
|
+
ensureCurrentModel() {
|
|
479
|
+
if (!this.currentModel && this.swApp) {
|
|
480
|
+
// Try to get the active document
|
|
481
|
+
try {
|
|
482
|
+
this.currentModel = this.swApp.ActiveDoc;
|
|
483
|
+
}
|
|
484
|
+
catch (e) {
|
|
485
|
+
// ActiveDoc might not be available
|
|
486
|
+
}
|
|
487
|
+
}
|
|
216
488
|
}
|
|
217
489
|
// Helper to get current model
|
|
218
490
|
getCurrentModel() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/solidworks/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/solidworks/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modeling.d.ts","sourceRoot":"","sources":["../../src/tools/modeling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,eAAO,MAAM,aAAa;;;;oBAqBN,GAAG,SAAS,aAAa;
|
|
1
|
+
{"version":3,"file":"modeling.d.ts","sourceRoot":"","sources":["../../src/tools/modeling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,eAAO,MAAM,aAAa;;;;oBAqBN,GAAG,SAAS,aAAa;GAqJ5C,CAAC"}
|
package/dist/tools/modeling.js
CHANGED
|
@@ -38,8 +38,27 @@ export const modelingTools = [
|
|
|
38
38
|
}),
|
|
39
39
|
handler: (args, swApi) => {
|
|
40
40
|
try {
|
|
41
|
+
// FIX: Safely handle model closing
|
|
42
|
+
const currentModel = swApi.getCurrentModel();
|
|
43
|
+
if (!currentModel) {
|
|
44
|
+
return 'No active model to close';
|
|
45
|
+
}
|
|
46
|
+
// Get title safely before closing
|
|
47
|
+
let modelTitle = 'Unknown';
|
|
48
|
+
try {
|
|
49
|
+
if (currentModel.GetTitle) {
|
|
50
|
+
modelTitle = currentModel.GetTitle();
|
|
51
|
+
}
|
|
52
|
+
else if (currentModel.GetPathName) {
|
|
53
|
+
const path = currentModel.GetPathName();
|
|
54
|
+
modelTitle = path ? path.split('\\').pop() || 'Unknown' : 'Unknown';
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
catch (e) {
|
|
58
|
+
// Title might not be available
|
|
59
|
+
}
|
|
41
60
|
swApi.closeModel(args.save);
|
|
42
|
-
return
|
|
61
|
+
return `Model "${modelTitle}" closed successfully`;
|
|
43
62
|
}
|
|
44
63
|
catch (error) {
|
|
45
64
|
return `Failed to close model: ${error}`;
|
|
@@ -108,7 +127,44 @@ export const modelingTools = [
|
|
|
108
127
|
const model = swApi.getCurrentModel();
|
|
109
128
|
if (!model)
|
|
110
129
|
throw new Error('No model open');
|
|
111
|
-
|
|
130
|
+
// FIX: Use correct SolidWorks API methods
|
|
131
|
+
let success = false;
|
|
132
|
+
if (args.force) {
|
|
133
|
+
// Use ForceRebuild3 for forced rebuild
|
|
134
|
+
try {
|
|
135
|
+
success = model.ForceRebuild3(false); // false = top level only
|
|
136
|
+
}
|
|
137
|
+
catch (e) {
|
|
138
|
+
// If ForceRebuild3 doesn't exist, try ForceRebuild
|
|
139
|
+
try {
|
|
140
|
+
model.ForceRebuild();
|
|
141
|
+
success = true;
|
|
142
|
+
}
|
|
143
|
+
catch (e2) {
|
|
144
|
+
// Fall back to EditRebuild
|
|
145
|
+
success = model.EditRebuild();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
// Use EditRebuild for normal rebuild
|
|
151
|
+
try {
|
|
152
|
+
success = model.EditRebuild();
|
|
153
|
+
}
|
|
154
|
+
catch (e) {
|
|
155
|
+
// Try alternative methods
|
|
156
|
+
try {
|
|
157
|
+
model.Rebuild(1); // 1 = swRebuildAll
|
|
158
|
+
success = true;
|
|
159
|
+
}
|
|
160
|
+
catch (e2) {
|
|
161
|
+
throw new Error('Rebuild method not available');
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (!success && success !== undefined) {
|
|
166
|
+
throw new Error('Rebuild failed');
|
|
167
|
+
}
|
|
112
168
|
return 'Model rebuilt successfully';
|
|
113
169
|
}
|
|
114
170
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modeling.js","sourceRoot":"","sources":["../../src/tools/modeling.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,mDAAmD;QAChE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;SAC9D,CAAC;QACF,OAAO,EAAE,CAAC,IAAS,EAAE,KAAoB,EAAE,EAAE;YAC3C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACzC,OAAO,UAAU,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;YAC/C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,yBAAyB,KAAK,EAAE,CAAC;YAC1C,CAAC;QACH,CAAC;KACF;IAED;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,uCAAuC;QACpD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC,IAAS,EAAE,KAAoB,EAAE,EAAE;YAC3C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;gBACjC,OAAO,qBAAqB,KAAK,CAAC,IAAI,EAAE,CAAC;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,0BAA0B,KAAK,EAAE,CAAC;YAC3C,CAAC;QACH,CAAC;KACF;IAED;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,6CAA6C;QAC1D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;SACjE,CAAC;QACF,OAAO,EAAE,CAAC,IAAS,EAAE,KAAoB,EAAE,EAAE;YAC3C,IAAI,CAAC;gBACH,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,OAAO,
|
|
1
|
+
{"version":3,"file":"modeling.js","sourceRoot":"","sources":["../../src/tools/modeling.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/vba.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vba.d.ts","sourceRoot":"","sources":["../../src/tools/vba.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"vba.d.ts","sourceRoot":"","sources":["../../src/tools/vba.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AA4OrD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA3JK,GAAG,SAAS,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA8B/B,GAAG,SAAS,aAAa;;;;;;;;;;;;;;;;;;;;;;;oBA2DzB,GAAG,SAAS,aAAa;;;;;;;;;;;;;;;;;;;;oBAyBzB,GAAG,SAAS,aAAa;;;;;;;;;;;;;;;;;;;;oBAwBzB,GAAG,SAAS,aAAa;IAwB5C,CAAC"}
|
package/dist/tools/vba.js
CHANGED
|
@@ -10,11 +10,54 @@ import { drawingVBATools } from './vba-drawing.js';
|
|
|
10
10
|
import { fileManagementVBATools } from './vba-file-management.js';
|
|
11
11
|
import { advancedVBATools } from './vba-advanced.js';
|
|
12
12
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
13
|
-
//
|
|
13
|
+
// Register Handlebars helpers - CRITICAL FIX
|
|
14
|
+
Handlebars.registerHelper('eq', function (a, b) {
|
|
15
|
+
return a === b;
|
|
16
|
+
});
|
|
17
|
+
Handlebars.registerHelper('ne', function (a, b) {
|
|
18
|
+
return a !== b;
|
|
19
|
+
});
|
|
20
|
+
Handlebars.registerHelper('lt', function (a, b) {
|
|
21
|
+
return a < b;
|
|
22
|
+
});
|
|
23
|
+
Handlebars.registerHelper('gt', function (a, b) {
|
|
24
|
+
return a > b;
|
|
25
|
+
});
|
|
26
|
+
Handlebars.registerHelper('lte', function (a, b) {
|
|
27
|
+
return a <= b;
|
|
28
|
+
});
|
|
29
|
+
Handlebars.registerHelper('gte', function (a, b) {
|
|
30
|
+
return a >= b;
|
|
31
|
+
});
|
|
32
|
+
Handlebars.registerHelper('and', function () {
|
|
33
|
+
return Array.prototype.slice.call(arguments, 0, -1).every(Boolean);
|
|
34
|
+
});
|
|
35
|
+
Handlebars.registerHelper('or', function () {
|
|
36
|
+
return Array.prototype.slice.call(arguments, 0, -1).some(Boolean);
|
|
37
|
+
});
|
|
38
|
+
Handlebars.registerHelper('not', function (a) {
|
|
39
|
+
return !a;
|
|
40
|
+
});
|
|
41
|
+
// VBA template compiler with template name mapping
|
|
14
42
|
const compileTemplate = (templateName) => {
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
|
|
43
|
+
// Map common names to actual file names
|
|
44
|
+
const templateMap = {
|
|
45
|
+
'batch_export': 'batch_process', // Fix template name mismatch
|
|
46
|
+
'create_drawing': 'create_drawing',
|
|
47
|
+
'modify_dimensions': 'modify_dimensions'
|
|
48
|
+
};
|
|
49
|
+
const actualTemplateName = templateMap[templateName] || templateName;
|
|
50
|
+
const templatePath = join(__dirname, '../../examples/vba-templates', `${actualTemplateName}.vba`);
|
|
51
|
+
try {
|
|
52
|
+
const templateContent = readFileSync(templatePath, 'utf-8');
|
|
53
|
+
return Handlebars.compile(templateContent);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
// If template doesn't exist, try without mapping
|
|
57
|
+
const directPath = join(__dirname, '../../examples/vba-templates', `${templateName}.vba`);
|
|
58
|
+
const templateContent = readFileSync(directPath, 'utf-8');
|
|
59
|
+
return Handlebars.compile(templateContent);
|
|
60
|
+
}
|
|
18
61
|
};
|
|
19
62
|
// Original VBA tools
|
|
20
63
|
const originalVBATools = [
|
|
@@ -112,14 +155,19 @@ End Sub`,
|
|
|
112
155
|
propertyValue: z.string().optional().describe('Property value for update operations'),
|
|
113
156
|
}),
|
|
114
157
|
handler: (args, swApi) => {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
158
|
+
try {
|
|
159
|
+
const template = compileTemplate('batch_process');
|
|
160
|
+
return template({
|
|
161
|
+
operation: args.operation,
|
|
162
|
+
filePattern: args.filePattern,
|
|
163
|
+
outputFormat: args.outputFormat,
|
|
164
|
+
propertyName: args.propertyName,
|
|
165
|
+
propertyValue: args.propertyValue,
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
return `Failed to generate batch VBA: ${error}`;
|
|
170
|
+
}
|
|
123
171
|
},
|
|
124
172
|
},
|
|
125
173
|
{
|
|
@@ -151,13 +199,18 @@ End Sub`,
|
|
|
151
199
|
sheet_size: z.enum(['A4', 'A3', 'A2', 'A1', 'A0', 'Letter', 'Tabloid']),
|
|
152
200
|
}),
|
|
153
201
|
handler: (args, swApi) => {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
202
|
+
try {
|
|
203
|
+
const template = compileTemplate('create_drawing');
|
|
204
|
+
return template({
|
|
205
|
+
modelPath: args.modelPath,
|
|
206
|
+
drawingTemplate: args.template,
|
|
207
|
+
views: args.views,
|
|
208
|
+
sheetSize: args.sheet_size,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
catch (error) {
|
|
212
|
+
return `Failed to generate drawing VBA: ${error}`;
|
|
213
|
+
}
|
|
161
214
|
},
|
|
162
215
|
},
|
|
163
216
|
];
|
package/dist/tools/vba.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vba.js","sourceRoot":"","sources":["../../src/tools/vba.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,oCAAoC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,
|
|
1
|
+
{"version":3,"file":"vba.js","sourceRoot":"","sources":["../../src/tools/vba.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "solidworks-mcp-server",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Comprehensive MCP server for SolidWorks with macro recording, SQL design tables, and PDM integration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"lint": "eslint src",
|
|
15
15
|
"typecheck": "tsc --noEmit",
|
|
16
16
|
"test": "vitest",
|
|
17
|
-
"prepare": "npm run build",
|
|
17
|
+
"prepare": "node -e \"if (!process.env.CI) { require('child_process').execSync('npm run build', {stdio: 'inherit'}); }\"",
|
|
18
18
|
"postinstall": "node scripts/setup.js"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
@@ -27,7 +27,8 @@
|
|
|
27
27
|
"uuid": "^11.0.0",
|
|
28
28
|
"winax": "^3.4.2",
|
|
29
29
|
"winston": "^3.15.0",
|
|
30
|
-
"zod": "^3.23.8"
|
|
30
|
+
"zod": "^3.23.8",
|
|
31
|
+
"zod-to-json-schema": "^3.24.6"
|
|
31
32
|
},
|
|
32
33
|
"devDependencies": {
|
|
33
34
|
"@eslint/js": "^9.32.0",
|
|
@@ -63,6 +64,7 @@
|
|
|
63
64
|
"homepage": "https://github.com/vespo92/SolidworksMCP-TS#readme",
|
|
64
65
|
"files": [
|
|
65
66
|
"dist/",
|
|
67
|
+
"scripts/",
|
|
66
68
|
"README.md",
|
|
67
69
|
"LICENSE",
|
|
68
70
|
"CHANGELOG.md"
|
package/scripts/setup.js
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { promises as fs } from 'fs';
|
|
3
|
+
import { homedir } from 'os';
|
|
4
|
+
import { join } from 'path';
|
|
5
|
+
|
|
6
|
+
async function updateClaudeConfig() {
|
|
7
|
+
// Skip in CI environments
|
|
8
|
+
if (process.env.CI || process.env.GITHUB_ACTIONS) {
|
|
9
|
+
console.log('āļø Skipping Claude Desktop setup in CI environment');
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
console.log('š§ Setting up SolidWorks MCP Server for Claude Desktop...\n');
|
|
14
|
+
|
|
15
|
+
// Find Claude config file
|
|
16
|
+
const configPaths = [
|
|
17
|
+
join(homedir(), 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json'),
|
|
18
|
+
join(homedir(), 'AppData', 'Roaming', 'Claude', 'claude_desktop_config.json'),
|
|
19
|
+
];
|
|
20
|
+
|
|
21
|
+
let configPath = null;
|
|
22
|
+
let config = {};
|
|
23
|
+
|
|
24
|
+
for (const path of configPaths) {
|
|
25
|
+
try {
|
|
26
|
+
const content = await fs.readFile(path, 'utf-8');
|
|
27
|
+
config = JSON.parse(content);
|
|
28
|
+
configPath = path;
|
|
29
|
+
console.log(`ā
Found Claude config at: ${path}`);
|
|
30
|
+
break;
|
|
31
|
+
} catch (e) {
|
|
32
|
+
// Continue to next path
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (!configPath) {
|
|
37
|
+
console.log('ā Could not find Claude Desktop configuration file.');
|
|
38
|
+
console.log('\nPlease add the following to your Claude Desktop configuration manually:');
|
|
39
|
+
console.log(JSON.stringify({
|
|
40
|
+
mcpServers: {
|
|
41
|
+
solidworks: {
|
|
42
|
+
command: 'npx',
|
|
43
|
+
args: ['mcp-server-solidworks-ts']
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}, null, 2));
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Update config
|
|
51
|
+
if (!config.mcpServers) {
|
|
52
|
+
config.mcpServers = {};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
config.mcpServers.solidworks = {
|
|
56
|
+
command: 'npx',
|
|
57
|
+
args: ['mcp-server-solidworks-ts']
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
// Write back
|
|
61
|
+
await fs.writeFile(configPath, JSON.stringify(config, null, 2));
|
|
62
|
+
console.log('ā
Updated Claude Desktop configuration');
|
|
63
|
+
console.log('\nš Installation complete! Please restart Claude Desktop.');
|
|
64
|
+
console.log('\nYou can now use commands like:');
|
|
65
|
+
console.log(' - "Open the part at C:/Models/example.sldprt"');
|
|
66
|
+
console.log(' - "Generate VBA to batch export files"');
|
|
67
|
+
console.log(' - "Create a 50mm extrusion"');
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Run setup
|
|
71
|
+
updateClaudeConfig().catch(console.error);
|