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 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 v2.0
1
+ # SolidWorks MCP Server
2
+
3
+ <div align="center">
4
+
5
+ [![CI](https://github.com/vespo92/SolidworksMCP-TS/actions/workflows/ci.yml/badge.svg)](https://github.com/vespo92/SolidworksMCP-TS/actions/workflows/ci.yml)
6
+ [![npm version](https://badge.fury.io/js/solidworks-mcp-server.svg)](https://www.npmjs.com/package/solidworks-mcp-server)
7
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.5-blue?logo=typescript)](https://www.typescriptlang.org/)
8
+ [![MCP Compatible](https://img.shields.io/badge/MCP-Compatible-green?logo=anthropic)](https://modelcontextprotocol.com)
9
+ [![Node.js](https://img.shields.io/badge/Node.js-20+-green?logo=node.js)](https://nodejs.org/)
10
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
11
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/vespo92/SolidworksMCP-TS/pulls)
12
+ [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](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 script that:
120
- 1. Opens all parts in folder
121
- 2. Updates material to Aluminum
122
- 3. Runs stress analysis
123
- 4. Exports results to Excel"
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
@@ -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;IAWvC,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;IAqCpB,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;IA6BlD,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,GAAE,GAAG,EAAO,GAAG,GAAG;IAe7F,iBAAiB,IAAI,GAAG;IAkBxB,eAAe,IAAI,GAAG;IAKtB,MAAM,IAAI,GAAG;CAGd"}
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"}
@@ -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
- this.currentModel.Save3(1, 0, 0); // swSaveAsOptions_Silent
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
- const feature = this.currentModel.FeatureManager.FeatureExtrusion3(true, // sd
121
- reverse, // flip
122
- false, // dir
123
- 0, // t1
124
- 0, // t2
125
- depth / 1000, // convert mm to m
126
- 0.01, // d2
127
- false, // dchk1
128
- false, // dchk2
129
- false, // dang
130
- draft * Math.PI / 180, // convert degrees to radians
131
- 0, // d2ang
132
- false, // offsetReverse1
133
- false, // offsetReverse2
134
- false, // translateSurface1
135
- false, // translateSurface2
136
- false, // merge
137
- true, // useFeatScope
138
- true // useAutoSelect
139
- );
140
- if (!feature) {
141
- throw new Error('Failed to create extrusion');
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
- const formatMap = {
174
- 'step': 0,
175
- 'iges': 1,
176
- 'stl': 2,
177
- 'pdf': 3,
178
- 'dxf': 4,
179
- 'dwg': 5,
180
- };
181
- const exportFormat = formatMap[format.toLowerCase()];
182
- if (exportFormat === undefined) {
183
- throw new Error(`Unsupported export format: ${format}`);
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
- const success = this.currentModel.SaveAs3(filePath, 0, // version
186
- 1 // options
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
- const massProps = this.currentModel.Extension.CreateMassProperty();
206
- return {
207
- mass: massProps.Mass,
208
- volume: massProps.Volume,
209
- surfaceArea: massProps.SurfaceArea,
210
- centerOfMass: {
211
- x: massProps.CenterOfMass[0],
212
- y: massProps.CenterOfMass[1],
213
- z: massProps.CenterOfMass[2],
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":"AAAA,uEAAuE;AACvE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,MAAM,EAAE,mBAAmB,EAAE,GAAG,KAAY,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,OAAO,aAAa;IAChB,KAAK,CAAM;IACX,YAAY,CAAM;IAE1B;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,IAAI,CAAC;YACH,+CAA+C;YAC/C,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;YACzD,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,0CAA0C;YAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;IAC7B,CAAC;IAED,mBAAmB;IACnB,SAAS,CAAC,QAAgB;QACxB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAE9B,qCAAqC;QACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACpD,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,YAAY;QAC7B,IAAI,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,CAAC,CAAC,gBAAgB;QACnD,IAAI,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,CAAC,CAAC,eAAe;QAElD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CACrC,QAAQ,EACR,OAAO,EACP,CAAC,EAAE,0BAA0B;QAC7B,EAAE,EACF,MAAM,EACN,QAAQ,CACT,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;YAClC,IAAI,EAAG,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAqC;YACvF,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAED,UAAU,CAAC,OAAgB,KAAK;QAC9B,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAE/B,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,uBAAuB;YACvB,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAC/B,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC5C,CAAC;iBAAM,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;gBACzC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAC/C,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,6CAA6C;YAC7C,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC;gBACH,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAyB;YAC7D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,qDAAqD;gBACrD,IAAI,CAAC;oBACH,mBAAmB;oBACnB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gBAC3B,CAAC;gBAAC,OAAO,EAAE,EAAE,CAAC;oBACZ,8BAA8B;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;QAED,+CAA+C;QAC/C,IAAI,UAAU,IAAI,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACzD,IAAI,CAAC;gBACH,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,qCAAqC;YACvC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAEhE,2BAA2B;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CACxC,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE,wBAAwB;QACpE,CAAC,EACD,CAAC,EACD,CAAC,CACF,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;YAClC,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAED,wBAAwB;IACxB,YAAY,CAAC,MAAW;QACtB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAE3D,MAAM,EAAE,KAAK,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAElE,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC;YACrE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QACjD,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;IAC9D,CAAC;IAED,OAAO,CAAC,MAAW;QACjB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAE3D,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC;QAEpE,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,CACrD,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,EAAG,kBAAkB;QACpD,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,CAChC,CAAC;QAEF,IAAI,IAAI,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;QACzD,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;IAC5D,CAAC;IAED,OAAO,CAAC,MAAW;QACjB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAE3D,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC;QAE1D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAE1D,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QACpD,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC;IACjE,CAAC;IAED,qBAAqB;IACrB,aAAa,CACX,KAAa,EACb,QAAgB,CAAC,EACjB,UAAmB,KAAK;QAExB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,0BAA0B;YAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;YACpD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YAED,4DAA4D;YAC5D,IAAI,OAAO,GAAG,IAAI,CAAC;YAEnB,IAAI,CAAC;gBACH,sDAAsD;gBACtD,OAAO,GAAG,UAAU,CAAC,iBAAiB,CACpC,IAAI,EAAK,qBAAqB;gBAC9B,OAAO,EAAE,mBAAmB;gBAC5B,KAAK,EAAI,gBAAgB;gBACzB,CAAC,EAAQ,4BAA4B;gBACrC,CAAC,EAAQ,iBAAiB;gBAC1B,KAAK,GAAG,IAAI,EAAE,2BAA2B;gBACzC,IAAI,EAAK,SAAS;gBAClB,KAAK,EAAI,aAAa;gBACtB,KAAK,EAAI,aAAa;gBACtB,KAAK,EAAI,cAAc;gBACvB,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,mCAAmC;gBAC1D,CAAC,EAAQ,cAAc;gBACvB,KAAK,EAAI,gBAAgB;gBACzB,KAAK,EAAI,gBAAgB;gBACzB,KAAK,EAAI,kBAAkB;gBAC3B,KAAK,EAAI,kBAAkB;gBAC3B,KAAK,EAAI,oBAAoB;gBAC7B,IAAI,EAAK,oBAAoB;gBAC7B,KAAK,EAAI,gBAAgB;gBACzB,CAAC,EAAQ,iBAAiB;gBAC1B,CAAC,EAAQ,cAAc;gBACvB,KAAK,CAAI,qBAAqB;iBAC/B,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,wDAAwD;gBACxD,IAAI,CAAC;oBACH,OAAO,GAAG,UAAU,CAAC,iBAAiB,CACpC,IAAI,EAAK,qBAAqB;oBAC9B,OAAO,EAAE,mBAAmB;oBAC5B,KAAK,EAAI,gBAAgB;oBACzB,CAAC,EAAQ,gBAAgB;oBACzB,CAAC,EAAQ,gBAAgB;oBACzB,KAAK,GAAG,IAAI,EAAE,SAAS;oBACvB,IAAI,EAAK,SAAS;oBAClB,KAAK,EAAI,aAAa;oBACtB,KAAK,EAAI,aAAa;oBACtB,KAAK,EAAI,cAAc;oBACvB,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,cAAc;oBACrC,CAAC,EAAQ,cAAc;oBACvB,KAAK,EAAI,gBAAgB;oBACzB,KAAK,CAAI,gBAAgB;qBAC1B,CAAC;gBACJ,CAAC;gBAAC,OAAO,EAAE,EAAE,CAAC;oBACZ,8CAA8C;oBAC9C,OAAO,GAAG,UAAU,CAAC,gBAAgB,CACnC,IAAI,EACJ,OAAO,EACP,CAAC,EACD,KAAK,GAAG,IAAI,EACZ,CAAC,EACD,CAAC,EACD,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EACrB,CAAC,EACD,KAAK,EACL,KAAK,CACN,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAC9E,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,WAAW;gBACjB,UAAU,EAAE,KAAK;aAClB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,YAAY,CAAC,IAAY;QACvB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAEzD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,aAAa,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,kBAAkB;IACzD,CAAC;IAED,YAAY,CAAC,IAAY,EAAE,KAAa;QACtC,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAEzD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,aAAa,CAAC,CAAC;QACnD,CAAC;QAED,SAAS,CAAC,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,kBAAkB;QACxD,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;IACnC,CAAC;IAED,oBAAoB;IACpB,UAAU,CAAC,QAAgB,EAAE,MAAc;QACzC,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,kCAAkC;YAClC,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YACpD,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;gBACvC,+CAA+C;gBAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC5C,MAAM,GAAG,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC9E,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;gBACnD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5C,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YACjC,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,yBAAyB;YACzB,IAAI,UAAU,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC;gBACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B;YAC1E,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,qDAAqD;YACvD,CAAC;YAED,QAAO,GAAG,EAAE,CAAC;gBACX,KAAK,MAAM,CAAC;gBACZ,KAAK,KAAK;oBACR,IAAI,UAAU,EAAE,CAAC;wBACf,IAAI,CAAC;4BACH,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB;wBAChD,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACX,yBAAyB;wBAC3B,CAAC;oBACH,CAAC;oBACD,6BAA6B;oBAC7B,IAAI,CAAC;wBACH,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,CAC1C,QAAQ,EACR,CAAC,EAAE,UAAU;wBACb,CAAC,EAAE,UAAU;wBACb,UAAU,EACV,CAAC,EAAE,SAAS;wBACZ,CAAC,CAAE,WAAW;yBACf,CAAC;oBACJ,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,uBAAuB;wBACvB,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACtD,CAAC;oBACD,MAAM;gBAER,KAAK,MAAM,CAAC;gBACZ,KAAK,KAAK;oBACR,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACpD,MAAM;gBAER,KAAK,KAAK;oBACR,6CAA6C;oBAC7C,IAAI,CAAC;wBACH,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CACjC,QAAQ,EACR,CAAC,EAAE,UAAU;wBACb,CAAC,EAAE,UAAU;wBACb,CAAC,EAAE,SAAS;wBACZ,CAAC,CAAE,WAAW;yBACf,CAAC;oBACJ,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACtD,CAAC;oBACD,MAAM;gBAER,KAAK,KAAK;oBACR,8BAA8B;oBAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;oBAC5C,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,mBAAmB;wBACtC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;oBAC5D,CAAC;oBACD,iCAAiC;oBACjC,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;wBAChD,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACtD,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACtD,CAAC;oBACD,MAAM;gBAER,KAAK,KAAK,CAAC;gBACX,KAAK,KAAK;oBACR,iBAAiB;oBACjB,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACpD,MAAM;gBAER;oBACE,qBAAqB;oBACrB,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACxD,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,iCAAiC;gBACjC,IAAI,CAAC;oBACH,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;gBAChE,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,QAAQ,CAAC,SAAiB,EAAE,UAAkB,EAAE,aAAqB,EAAE,OAAc,EAAE;QACrF,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CACjC,SAAS,EACT,UAAU,EACV,aAAa,EACb,CAAC,EAAE,mBAAmB;QACtB,CAAC,CAAE,QAAQ;SACZ,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,iBAAiB;QACf,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QAEzD,2EAA2E;QAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC5C,IAAI,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC,qBAAqB;YACzD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,CAAC;YACH,4BAA4B;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YAED,8BAA8B;YAC9B,IAAI,SAAS,GAAG,IAAI,CAAC;YAErB,IAAI,CAAC;gBACH,mCAAmC;gBACnC,SAAS,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAC3C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,oCAAoC;gBACpC,IAAI,CAAC;oBACH,SAAS,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;gBAC5C,CAAC;gBAAC,OAAO,EAAE,EAAE,CAAC;oBACZ,mDAAmD;oBACnD,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YAED,0CAA0C;YAC1C,IAAI,CAAC;gBACH,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;oBACrB,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;oBACnC,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,kBAAkB;wBAClB,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;4BAC1B,SAAS,CAAC,WAAW,EAAE,CAAC;wBAC1B,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,6BAA6B;YAC/B,CAAC;YAED,qCAAqC;YACrC,MAAM,MAAM,GAAQ,EAAE,CAAC;YAEvB,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;YAC/B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;YACnC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACpB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;YAC7C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;YACzB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,SAAS,CAAC,YAAY,CAAC;gBACnC,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACjD,MAAM,CAAC,YAAY,GAAG;wBACpB,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,gBAAgB;wBAClC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI;wBAChB,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI;qBACjB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7C,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7C,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;YACrC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;YACrB,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,SAAS,CAAC,eAAe,CAAC;gBACtC,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACjD,MAAM,CAAC,gBAAgB,GAAG;wBACxB,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;wBACX,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;wBACX,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;wBACX,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;wBACX,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;wBACX,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;wBACX,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;wBACX,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;wBACX,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;qBACZ,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,4CAA4C;YAC9C,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,wCAAwC;IAChC,kBAAkB;QACxB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACrC,iCAAiC;YACjC,IAAI,CAAC;gBACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YAC3C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,mCAAmC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,+BAA+B;IAC/B,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF"}
@@ -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;GA+F5C,CAAC"}
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"}
@@ -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 'Model closed successfully';
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
- model.EditRebuild3();
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":"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"}
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,mCAAmC;gBACnC,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;gBAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,OAAO,0BAA0B,CAAC;gBACpC,CAAC;gBAED,kCAAkC;gBAClC,IAAI,UAAU,GAAG,SAAS,CAAC;gBAC3B,IAAI,CAAC;oBACH,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;wBAC1B,UAAU,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;oBACvC,CAAC;yBAAM,IAAI,YAAY,CAAC,WAAW,EAAE,CAAC;wBACpC,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;wBACxC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;oBACtE,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,+BAA+B;gBACjC,CAAC;gBAED,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,OAAO,UAAU,UAAU,uBAAuB,CAAC;YACrD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,0BAA0B,KAAK,EAAE,CAAC;YAC3C,CAAC;QACH,CAAC;KACF;IAED;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,6BAA6B;QAC1C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACnD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YAC/D,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;SAClE,CAAC;QACF,OAAO,EAAE,CAAC,IAAS,EAAE,KAAoB,EAAE,EAAE;YAC3C,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1E,OAAO,sBAAsB,OAAO,CAAC,IAAI,EAAE,CAAC;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,+BAA+B,KAAK,EAAE,CAAC;YAChD,CAAC;QACH,CAAC;KACF;IAED;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,8BAA8B;QAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;SACjE,CAAC;QACF,OAAO,EAAE,CAAC,IAAS,EAAE,KAAoB,EAAE,EAAE;YAC3C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5C,OAAO,aAAa,IAAI,CAAC,IAAI,MAAM,KAAK,KAAK,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,4BAA4B,KAAK,EAAE,CAAC;YAC7C,CAAC;QACH,CAAC;KACF;IAED;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,8BAA8B;QAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;YAChE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;SAC9C,CAAC;QACF,OAAO,EAAE,CAAC,IAAS,EAAE,KAAoB,EAAE,EAAE;YAC3C,IAAI,CAAC;gBACH,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1C,OAAO,iBAAiB,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,KAAK,CAAC;YACzD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,4BAA4B,KAAK,EAAE,CAAC;YAC7C,CAAC;QACH,CAAC;KACF;IAED;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,2BAA2B;QACxC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;SAC/E,CAAC;QACF,OAAO,EAAE,CAAC,IAAS,EAAE,KAAoB,EAAE,EAAE;YAC3C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;gBACtC,IAAI,CAAC,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;gBAE7C,0CAA0C;gBAC1C,IAAI,OAAO,GAAG,KAAK,CAAC;gBAEpB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,uCAAuC;oBACvC,IAAI,CAAC;wBACH,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,yBAAyB;oBACjE,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,mDAAmD;wBACnD,IAAI,CAAC;4BACH,KAAK,CAAC,YAAY,EAAE,CAAC;4BACrB,OAAO,GAAG,IAAI,CAAC;wBACjB,CAAC;wBAAC,OAAO,EAAE,EAAE,CAAC;4BACZ,2BAA2B;4BAC3B,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;wBAChC,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,qCAAqC;oBACrC,IAAI,CAAC;wBACH,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;oBAChC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,0BAA0B;wBAC1B,IAAI,CAAC;4BACH,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB;4BACrC,OAAO,GAAG,IAAI,CAAC;wBACjB,CAAC;wBAAC,OAAO,EAAE,EAAE,CAAC;4BACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;wBAClD,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBACtC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBACpC,CAAC;gBAED,OAAO,4BAA4B,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,4BAA4B,KAAK,EAAE,CAAC;YAC7C,CAAC;QACH,CAAC;KACF;CACF,CAAC"}
@@ -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;AA+KrD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAnJK,GAAG,SAAS,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA8B/B,GAAG,SAAS,aAAa;;;;;;;;;;;;;;;;;;;;;;;oBA2DzB,GAAG,SAAS,aAAa;;;;;;;;;;;;;;;;;;;;oBAqBzB,GAAG,SAAS,aAAa;;;;;;;;;;;;;;;;;;;;oBAwBzB,GAAG,SAAS,aAAa;IAoB5C,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
- // VBA template compiler
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
- const templatePath = join(__dirname, '../../examples/vba-templates', `${templateName}.vba`);
16
- const templateContent = readFileSync(templatePath, 'utf-8');
17
- return Handlebars.compile(templateContent);
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
- const template = compileTemplate('batch_process');
116
- return template({
117
- operation: args.operation,
118
- filePattern: args.filePattern,
119
- outputFormat: args.outputFormat,
120
- propertyName: args.propertyName,
121
- propertyValue: args.propertyValue,
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
- const template = compileTemplate('create_drawing');
155
- return template({
156
- modelPath: args.modelPath,
157
- drawingTemplate: args.template,
158
- views: args.views,
159
- sheetSize: args.sheet_size,
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
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"vba.js","sourceRoot":"","sources":["../../src/tools/vba.ts"],"names":[],"mappings":"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"}
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.1.0",
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"
@@ -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);