solidworks-mcp-server 2.0.1 → 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 +64 -0
- package/README.md +75 -8
- package/dist/db/connection.d.ts.map +1 -1
- package/dist/db/connection.js.map +1 -1
- package/dist/knowledge/chromadb.js +1 -1
- package/dist/knowledge/chromadb.js.map +1 -1
- package/dist/resources/design-table.d.ts +16 -16
- package/dist/resources/design-table.d.ts.map +1 -1
- package/dist/resources/design-table.js +2 -2
- package/dist/resources/design-table.js.map +1 -1
- package/dist/resources/pdm.d.ts +43 -43
- package/dist/resources/pdm.d.ts.map +1 -1
- package/dist/resources/pdm.js +8 -8
- package/dist/resources/pdm.js.map +1 -1
- package/dist/solidworks/api.d.ts +15 -14
- package/dist/solidworks/api.d.ts.map +1 -1
- package/dist/solidworks/api.js +343 -71
- package/dist/solidworks/api.js.map +1 -1
- package/dist/tools/analysis.d.ts +4 -4
- package/dist/tools/analysis.d.ts.map +1 -1
- package/dist/tools/analysis.js +10 -15
- package/dist/tools/analysis.js.map +1 -1
- package/dist/tools/drawing.d.ts +5 -5
- package/dist/tools/drawing.d.ts.map +1 -1
- package/dist/tools/drawing.js +5 -5
- package/dist/tools/drawing.js.map +1 -1
- package/dist/tools/export.d.ts +4 -4
- package/dist/tools/export.d.ts.map +1 -1
- package/dist/tools/export.js +8 -8
- package/dist/tools/export.js.map +1 -1
- package/dist/tools/modeling.d.ts +1 -1
- package/dist/tools/modeling.d.ts.map +1 -1
- package/dist/tools/modeling.js +71 -15
- package/dist/tools/modeling.js.map +1 -1
- package/dist/tools/vba-advanced.d.ts +228 -0
- package/dist/tools/vba-advanced.d.ts.map +1 -0
- package/dist/tools/vba-advanced.js +787 -0
- package/dist/tools/vba-advanced.js.map +1 -0
- package/dist/tools/vba-assembly.d.ts +143 -0
- package/dist/tools/vba-assembly.d.ts.map +1 -0
- package/dist/tools/vba-assembly.js +588 -0
- package/dist/tools/vba-assembly.js.map +1 -0
- package/dist/tools/vba-drawing.d.ts +350 -0
- package/dist/tools/vba-drawing.d.ts.map +1 -0
- package/dist/tools/vba-drawing.js +695 -0
- package/dist/tools/vba-drawing.js.map +1 -0
- package/dist/tools/vba-file-management.d.ts +156 -0
- package/dist/tools/vba-file-management.d.ts.map +1 -0
- package/dist/tools/vba-file-management.js +655 -0
- package/dist/tools/vba-file-management.js.map +1 -0
- package/dist/tools/vba-part.d.ts +187 -0
- package/dist/tools/vba-part.d.ts.map +1 -0
- package/dist/tools/vba-part.js +516 -0
- package/dist/tools/vba-part.js.map +1 -0
- package/dist/tools/vba.d.ts +1037 -9
- package/dist/tools/vba.d.ts.map +1 -1
- package/dist/tools/vba.js +94 -26
- package/dist/tools/vba.js.map +1 -1
- package/dist/utils/logger.js +2 -2
- package/dist/utils/logger.js.map +1 -1
- package/package.json +6 -3
- package/scripts/setup.js +71 -0
package/dist/solidworks/api.js
CHANGED
|
@@ -9,7 +9,7 @@ export class SolidWorksAPI {
|
|
|
9
9
|
this.swApp = null;
|
|
10
10
|
this.currentModel = null;
|
|
11
11
|
}
|
|
12
|
-
|
|
12
|
+
connect() {
|
|
13
13
|
try {
|
|
14
14
|
// Create or get running instance of SolidWorks
|
|
15
15
|
this.swApp = createActiveXObject('SldWorks.Application');
|
|
@@ -20,7 +20,7 @@ export class SolidWorksAPI {
|
|
|
20
20
|
throw new Error(`Failed to connect to SolidWorks: ${error}`);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
|
|
23
|
+
disconnect() {
|
|
24
24
|
if (this.currentModel) {
|
|
25
25
|
this.currentModel = null;
|
|
26
26
|
}
|
|
@@ -33,7 +33,7 @@ export class SolidWorksAPI {
|
|
|
33
33
|
return this.swApp !== null;
|
|
34
34
|
}
|
|
35
35
|
// Model operations
|
|
36
|
-
|
|
36
|
+
openModel(filePath) {
|
|
37
37
|
if (!this.swApp)
|
|
38
38
|
throw new Error('Not connected to SolidWorks');
|
|
39
39
|
const errors = { value: 0 };
|
|
@@ -57,16 +57,50 @@ export class SolidWorksAPI {
|
|
|
57
57
|
isActive: true,
|
|
58
58
|
};
|
|
59
59
|
}
|
|
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() {
|
|
70
104
|
if (!this.swApp)
|
|
71
105
|
throw new Error('Not connected to SolidWorks');
|
|
72
106
|
// Create new part document
|
|
@@ -80,7 +114,7 @@ export class SolidWorksAPI {
|
|
|
80
114
|
};
|
|
81
115
|
}
|
|
82
116
|
// Macro support methods
|
|
83
|
-
|
|
117
|
+
createSketch(params) {
|
|
84
118
|
if (!this.currentModel)
|
|
85
119
|
throw new Error('No active model');
|
|
86
120
|
const { plane = 'Front' } = params;
|
|
@@ -92,7 +126,7 @@ export class SolidWorksAPI {
|
|
|
92
126
|
}
|
|
93
127
|
return { success: false, error: 'Failed to create sketch' };
|
|
94
128
|
}
|
|
95
|
-
|
|
129
|
+
addLine(params) {
|
|
96
130
|
if (!this.currentModel)
|
|
97
131
|
throw new Error('No active model');
|
|
98
132
|
const { x1 = 0, y1 = 0, z1 = 0, x2 = 100, y2 = 0, z2 = 0 } = params;
|
|
@@ -103,51 +137,93 @@ export class SolidWorksAPI {
|
|
|
103
137
|
}
|
|
104
138
|
return { success: false, error: 'Failed to create line' };
|
|
105
139
|
}
|
|
106
|
-
|
|
140
|
+
extrude(params) {
|
|
107
141
|
if (!this.currentModel)
|
|
108
142
|
throw new Error('No active model');
|
|
109
143
|
const { depth = 25, reverse = false, draft = 0 } = params;
|
|
110
|
-
const feature =
|
|
144
|
+
const feature = this.createExtrude(depth, draft, reverse);
|
|
111
145
|
if (feature) {
|
|
112
146
|
return { success: true, featureId: feature.name };
|
|
113
147
|
}
|
|
114
148
|
return { success: false, error: 'Failed to create extrusion' };
|
|
115
149
|
}
|
|
116
150
|
// Feature operations
|
|
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) {
|
|
151
227
|
if (!this.currentModel)
|
|
152
228
|
throw new Error('No model open');
|
|
153
229
|
const dimension = this.currentModel.Parameter(name);
|
|
@@ -156,7 +232,7 @@ export class SolidWorksAPI {
|
|
|
156
232
|
}
|
|
157
233
|
return dimension.SystemValue * 1000; // Convert m to mm
|
|
158
234
|
}
|
|
159
|
-
|
|
235
|
+
setDimension(name, value) {
|
|
160
236
|
if (!this.currentModel)
|
|
161
237
|
throw new Error('No model open');
|
|
162
238
|
const dimension = this.currentModel.Parameter(name);
|
|
@@ -167,30 +243,113 @@ export class SolidWorksAPI {
|
|
|
167
243
|
this.currentModel.EditRebuild3();
|
|
168
244
|
}
|
|
169
245
|
// Export operations
|
|
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
|
|
193
|
-
|
|
352
|
+
runMacro(macroPath, moduleName, procedureName, args = []) {
|
|
194
353
|
if (!this.swApp)
|
|
195
354
|
throw new Error('Not connected to SolidWorks');
|
|
196
355
|
const result = this.swApp.RunMacro2(macroPath, moduleName, procedureName, 1, // swRunMacroOption
|
|
@@ -199,20 +358,133 @@ export class SolidWorksAPI {
|
|
|
199
358
|
return result;
|
|
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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"}
|
package/dist/tools/analysis.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export declare const analysisTools: ({
|
|
|
10
10
|
}, {
|
|
11
11
|
units?: "kg" | "g" | "lb" | undefined;
|
|
12
12
|
}>;
|
|
13
|
-
handler: (args: any, swApi: SolidWorksAPI) =>
|
|
13
|
+
handler: (args: any, swApi: SolidWorksAPI) => string | {
|
|
14
14
|
mass: string;
|
|
15
15
|
volume: string;
|
|
16
16
|
surfaceArea: string;
|
|
@@ -19,12 +19,12 @@ export declare const analysisTools: ({
|
|
|
19
19
|
y: string;
|
|
20
20
|
z: string;
|
|
21
21
|
};
|
|
22
|
-
}
|
|
22
|
+
};
|
|
23
23
|
} | {
|
|
24
24
|
name: string;
|
|
25
25
|
description: string;
|
|
26
26
|
inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
27
|
-
handler: (args: any, swApi: SolidWorksAPI) =>
|
|
27
|
+
handler: (args: any, swApi: SolidWorksAPI) => string | {
|
|
28
28
|
dimensions: {
|
|
29
29
|
width: string;
|
|
30
30
|
height: string;
|
|
@@ -32,6 +32,6 @@ export declare const analysisTools: ({
|
|
|
32
32
|
};
|
|
33
33
|
volume: string;
|
|
34
34
|
diagonal: string;
|
|
35
|
-
}
|
|
35
|
+
};
|
|
36
36
|
})[];
|
|
37
37
|
//# sourceMappingURL=analysis.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../src/tools/analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,eAAO,MAAM,aAAa;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../src/tools/analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,eAAO,MAAM,aAAa;;;;;;;;;;oBAON,GAAG,SAAS,aAAa;;;;;;;;;;;;;;oBAkIzB,GAAG,SAAS,aAAa;;;;;;;;;IAqC5C,CAAC"}
|
package/dist/tools/analysis.js
CHANGED
|
@@ -6,9 +6,9 @@ export const analysisTools = [
|
|
|
6
6
|
inputSchema: z.object({
|
|
7
7
|
units: z.enum(['kg', 'g', 'lb']).default('kg').describe('Mass units'),
|
|
8
8
|
}),
|
|
9
|
-
handler:
|
|
9
|
+
handler: (args, swApi) => {
|
|
10
10
|
try {
|
|
11
|
-
const props =
|
|
11
|
+
const props = swApi.getMassProperties();
|
|
12
12
|
// Convert mass based on units
|
|
13
13
|
let mass = props.mass;
|
|
14
14
|
if (args.units === 'g')
|
|
@@ -39,7 +39,7 @@ export const analysisTools = [
|
|
|
39
39
|
treatSubAssembliesAsComponents: z.boolean().default(false),
|
|
40
40
|
includeMultibodyParts: z.boolean().default(true),
|
|
41
41
|
}),
|
|
42
|
-
handler:
|
|
42
|
+
handler: (args, swApi) => {
|
|
43
43
|
try {
|
|
44
44
|
const model = swApi.getCurrentModel();
|
|
45
45
|
if (!model || model.GetType() !== 2) { // swDocASSEMBLY
|
|
@@ -49,7 +49,7 @@ export const analysisTools = [
|
|
|
49
49
|
interferenceDetect.TreatCoincidenceAsInterference = args.treatCoincidenceAsInterference;
|
|
50
50
|
interferenceDetect.TreatSubAssembliesAsComponents = args.treatSubAssembliesAsComponents;
|
|
51
51
|
interferenceDetect.IncludeMultibodyPartInterferences = args.includeMultibodyParts;
|
|
52
|
-
|
|
52
|
+
interferenceDetect.GetInterferences(); // Process interferences
|
|
53
53
|
const count = interferenceDetect.GetInterferenceCount();
|
|
54
54
|
if (count === 0) {
|
|
55
55
|
return 'No interferences detected';
|
|
@@ -68,14 +68,9 @@ export const analysisTools = [
|
|
|
68
68
|
entity1: z.string().describe('Name or reference of first entity'),
|
|
69
69
|
entity2: z.string().describe('Name or reference of second entity'),
|
|
70
70
|
}),
|
|
71
|
-
handler:
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return `Distance measurement requires interactive selection. Use the Measure tool in SolidWorks or generate VBA for automated measurement.`;
|
|
75
|
-
}
|
|
76
|
-
catch (error) {
|
|
77
|
-
return `Failed to measure distance: ${error}`;
|
|
78
|
-
}
|
|
71
|
+
handler: (args, swApi) => {
|
|
72
|
+
// Note: This would require entity selection which is complex in COM
|
|
73
|
+
return `Distance measurement requires interactive selection. Use the Measure tool in SolidWorks or generate VBA for automated measurement.`;
|
|
79
74
|
},
|
|
80
75
|
},
|
|
81
76
|
{
|
|
@@ -85,7 +80,7 @@ export const analysisTools = [
|
|
|
85
80
|
pullDirection: z.enum(['x', 'y', 'z', '-x', '-y', '-z']).describe('Pull direction'),
|
|
86
81
|
requiredAngle: z.number().default(1).describe('Required draft angle in degrees'),
|
|
87
82
|
}),
|
|
88
|
-
handler:
|
|
83
|
+
handler: (args, swApi) => {
|
|
89
84
|
try {
|
|
90
85
|
const model = swApi.getCurrentModel();
|
|
91
86
|
if (!model)
|
|
@@ -108,7 +103,7 @@ export const analysisTools = [
|
|
|
108
103
|
inputSchema: z.object({
|
|
109
104
|
checkType: z.enum(['all', 'faces', 'edges', 'vertices']).default('all'),
|
|
110
105
|
}),
|
|
111
|
-
handler:
|
|
106
|
+
handler: (args, swApi) => {
|
|
112
107
|
try {
|
|
113
108
|
const model = swApi.getCurrentModel();
|
|
114
109
|
if (!model)
|
|
@@ -132,7 +127,7 @@ export const analysisTools = [
|
|
|
132
127
|
name: 'get_bounding_box',
|
|
133
128
|
description: 'Get the bounding box dimensions of the model',
|
|
134
129
|
inputSchema: z.object({}),
|
|
135
|
-
handler:
|
|
130
|
+
handler: (args, swApi) => {
|
|
136
131
|
try {
|
|
137
132
|
const model = swApi.getCurrentModel();
|
|
138
133
|
if (!model)
|