solidworks-mcp-server 3.0.9 → 3.1.3
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 +175 -131
- package/LICENSE +20 -20
- package/README.md +195 -444
- package/dist/adapters/circuit-breaker.d.ts +84 -0
- package/dist/adapters/circuit-breaker.d.ts.map +1 -0
- package/dist/adapters/circuit-breaker.js +228 -0
- package/dist/adapters/circuit-breaker.js.map +1 -0
- package/dist/adapters/connection-pool.d.ts +83 -0
- package/dist/adapters/connection-pool.d.ts.map +1 -0
- package/dist/adapters/connection-pool.js +282 -0
- package/dist/adapters/connection-pool.js.map +1 -0
- package/dist/adapters/edge-adapter.d.ts +43 -0
- package/dist/adapters/edge-adapter.d.ts.map +1 -0
- package/dist/adapters/edge-adapter.js +417 -0
- package/dist/adapters/edge-adapter.js.map +1 -0
- package/dist/adapters/factory.d.ts +60 -0
- package/dist/adapters/factory.d.ts.map +1 -0
- package/dist/adapters/factory.js +212 -0
- package/dist/adapters/factory.js.map +1 -0
- package/dist/adapters/feature-complexity-analyzer.d.ts +102 -0
- package/dist/adapters/feature-complexity-analyzer.d.ts.map +1 -0
- package/dist/adapters/feature-complexity-analyzer.js +322 -0
- package/dist/adapters/feature-complexity-analyzer.js.map +1 -0
- package/dist/adapters/macro-generator.d.ts +30 -0
- package/dist/adapters/macro-generator.d.ts.map +1 -0
- package/dist/adapters/macro-generator.js +524 -0
- package/dist/adapters/macro-generator.js.map +1 -0
- package/dist/adapters/mock-solidworks-adapter.d.ts +92 -0
- package/dist/adapters/mock-solidworks-adapter.d.ts.map +1 -0
- package/dist/adapters/mock-solidworks-adapter.js +367 -0
- package/dist/adapters/mock-solidworks-adapter.js.map +1 -0
- package/dist/adapters/types.d.ts +376 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +261 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/adapters/winax-adapter-enhanced.d.ts +55 -0
- package/dist/adapters/winax-adapter-enhanced.d.ts.map +1 -0
- package/dist/adapters/winax-adapter-enhanced.js +601 -0
- package/dist/adapters/winax-adapter-enhanced.js.map +1 -0
- package/dist/adapters/winax-adapter.d.ts +55 -0
- package/dist/adapters/winax-adapter.d.ts.map +1 -0
- package/dist/adapters/winax-adapter.js +667 -0
- package/dist/adapters/winax-adapter.js.map +1 -0
- package/dist/api/stainless-api.d.ts +29 -0
- package/dist/api/stainless-api.d.ts.map +1 -0
- package/dist/api/stainless-api.js +408 -0
- package/dist/api/stainless-api.js.map +1 -0
- package/dist/cache/manager.d.ts.map +1 -1
- package/dist/cache/manager.js +4 -3
- package/dist/cache/manager.js.map +1 -1
- package/dist/core/interfaces/core-abstractions.d.ts.map +1 -1
- package/dist/core/interfaces/core-abstractions.js.map +1 -1
- package/dist/db/connection.js +4 -4
- package/dist/db/connection.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +86 -79
- package/dist/index.js.map +1 -1
- package/dist/knowledge/chromadb.d.ts.map +1 -1
- package/dist/knowledge/chromadb.js +5 -3
- package/dist/knowledge/chromadb.js.map +1 -1
- package/dist/macro/recorder.d.ts +1 -1
- package/dist/macro/recorder.d.ts.map +1 -1
- package/dist/macro/recorder.js +10 -10
- package/dist/macro/recorder.js.map +1 -1
- package/dist/resources/base.js +10 -10
- package/dist/resources/base.js.map +1 -1
- package/dist/resources/design-table.d.ts +10 -12
- package/dist/resources/design-table.d.ts.map +1 -1
- package/dist/resources/design-table.js +42 -39
- package/dist/resources/design-table.js.map +1 -1
- package/dist/resources/pdm.d.ts +44 -45
- package/dist/resources/pdm.d.ts.map +1 -1
- package/dist/resources/pdm.js +118 -79
- package/dist/resources/pdm.js.map +1 -1
- package/dist/resources/registry.d.ts +1 -1
- package/dist/resources/registry.d.ts.map +1 -1
- package/dist/resources/registry.js +1 -1
- package/dist/shared/constants/solidworks-constants.d.ts.map +1 -1
- package/dist/shared/constants/solidworks-constants.js +9 -9
- package/dist/shared/constants/solidworks-constants.js.map +1 -1
- package/dist/solidworks/api.d.ts +8 -3
- package/dist/solidworks/api.d.ts.map +1 -1
- package/dist/solidworks/api.js +599 -134
- package/dist/solidworks/api.js.map +1 -1
- package/dist/state/store.d.ts +1 -1
- package/dist/state/store.d.ts.map +1 -1
- package/dist/state/store.js +14 -14
- package/dist/state/store.js.map +1 -1
- package/dist/tools/analysis.d.ts +12 -2
- package/dist/tools/analysis.d.ts.map +1 -1
- package/dist/tools/analysis.js +141 -31
- package/dist/tools/analysis.js.map +1 -1
- package/dist/tools/diagnostics.d.ts +1 -1
- package/dist/tools/diagnostics.d.ts.map +1 -1
- package/dist/tools/diagnostics.js +2 -2
- package/dist/tools/diagnostics.js.map +1 -1
- package/dist/tools/drawing.d.ts +2 -2
- package/dist/tools/drawing.d.ts.map +1 -1
- package/dist/tools/drawing.js +94 -10
- package/dist/tools/drawing.js.map +1 -1
- package/dist/tools/enhanced-drawing.d.ts +1 -1
- package/dist/tools/enhanced-drawing.d.ts.map +1 -1
- package/dist/tools/enhanced-drawing.js +10 -13
- package/dist/tools/enhanced-drawing.js.map +1 -1
- package/dist/tools/export.d.ts +1 -1
- package/dist/tools/export.d.ts.map +1 -1
- package/dist/tools/export.js +88 -14
- package/dist/tools/export.js.map +1 -1
- package/dist/tools/extrusion-helper.d.ts +15 -0
- package/dist/tools/extrusion-helper.d.ts.map +1 -0
- package/dist/tools/extrusion-helper.js +61 -0
- package/dist/tools/extrusion-helper.js.map +1 -0
- package/dist/tools/macro-security.d.ts +2 -2
- package/dist/tools/macro-security.d.ts.map +1 -1
- package/dist/tools/macro-security.js +2 -2
- package/dist/tools/macro-security.js.map +1 -1
- package/dist/tools/modeling.d.ts +2 -2
- package/dist/tools/modeling.d.ts.map +1 -1
- package/dist/tools/modeling.js +6 -6
- package/dist/tools/modeling.js.map +1 -1
- package/dist/tools/native-macro.d.ts +1 -1
- package/dist/tools/native-macro.d.ts.map +1 -1
- package/dist/tools/native-macro.js +246 -239
- package/dist/tools/native-macro.js.map +1 -1
- package/dist/tools/sketch.d.ts +28 -28
- package/dist/tools/sketch.d.ts.map +1 -1
- package/dist/tools/sketch.js +202 -136
- package/dist/tools/sketch.js.map +1 -1
- package/dist/tools/template-manager.d.ts +5 -5
- package/dist/tools/template-manager.d.ts.map +1 -1
- package/dist/tools/template-manager.js +66 -65
- package/dist/tools/template-manager.js.map +1 -1
- package/dist/tools/vba-advanced.d.ts +10 -10
- package/dist/tools/vba-advanced.d.ts.map +1 -1
- package/dist/tools/vba-advanced.js +791 -708
- package/dist/tools/vba-advanced.js.map +1 -1
- package/dist/tools/vba-assembly.d.ts +10 -10
- package/dist/tools/vba-assembly.d.ts.map +1 -1
- package/dist/tools/vba-assembly.js +562 -500
- package/dist/tools/vba-assembly.js.map +1 -1
- package/dist/tools/vba-drawing.d.ts +12 -12
- package/dist/tools/vba-drawing.d.ts.map +1 -1
- package/dist/tools/vba-drawing.js +681 -572
- package/dist/tools/vba-drawing.js.map +1 -1
- package/dist/tools/vba-file-management.d.ts +12 -12
- package/dist/tools/vba-file-management.d.ts.map +1 -1
- package/dist/tools/vba-file-management.js +662 -589
- package/dist/tools/vba-file-management.js.map +1 -1
- package/dist/tools/vba-part.d.ts +10 -10
- package/dist/tools/vba-part.d.ts.map +1 -1
- package/dist/tools/vba-part.js +484 -426
- package/dist/tools/vba-part.js.map +1 -1
- package/dist/tools/vba.d.ts +361 -361
- package/dist/tools/vba.d.ts.map +1 -1
- package/dist/tools/vba.js +67 -81
- package/dist/tools/vba.js.map +1 -1
- package/dist/utils/config.js +2 -2
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/environment.d.ts +243 -0
- package/dist/utils/environment.d.ts.map +1 -0
- package/dist/utils/environment.js +207 -0
- package/dist/utils/environment.js.map +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +6 -6
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/solidworks-config.d.ts +39 -0
- package/dist/utils/solidworks-config.d.ts.map +1 -0
- package/dist/utils/solidworks-config.js +156 -0
- package/dist/utils/solidworks-config.js.map +1 -0
- package/package.json +84 -84
- package/scripts/setup.js +70 -70
- package/dist/application/services/command-bus.d.ts +0 -39
- package/dist/application/services/command-bus.d.ts.map +0 -1
- package/dist/application/services/command-bus.js +0 -88
- package/dist/application/services/command-bus.js.map +0 -1
- package/dist/application/services/event-bus.d.ts +0 -31
- package/dist/application/services/event-bus.d.ts.map +0 -1
- package/dist/application/services/event-bus.js +0 -83
- package/dist/application/services/event-bus.js.map +0 -1
- package/dist/application/services/query-bus.d.ts +0 -30
- package/dist/application/services/query-bus.d.ts.map +0 -1
- package/dist/application/services/query-bus.js +0 -59
- package/dist/application/services/query-bus.js.map +0 -1
- package/dist/application/services/tool-registry.d.ts +0 -53
- package/dist/application/services/tool-registry.d.ts.map +0 -1
- package/dist/application/services/tool-registry.js +0 -81
- package/dist/application/services/tool-registry.js.map +0 -1
- package/dist/application/use-cases/analysis/index.d.ts +0 -13
- package/dist/application/use-cases/analysis/index.d.ts.map +0 -1
- package/dist/application/use-cases/analysis/index.js +0 -17
- package/dist/application/use-cases/analysis/index.js.map +0 -1
- package/dist/application/use-cases/drawing/index.d.ts +0 -13
- package/dist/application/use-cases/drawing/index.d.ts.map +0 -1
- package/dist/application/use-cases/drawing/index.js +0 -17
- package/dist/application/use-cases/drawing/index.js.map +0 -1
- package/dist/application/use-cases/export/index.d.ts +0 -13
- package/dist/application/use-cases/export/index.d.ts.map +0 -1
- package/dist/application/use-cases/export/index.js +0 -17
- package/dist/application/use-cases/export/index.js.map +0 -1
- package/dist/application/use-cases/macro/index.d.ts +0 -13
- package/dist/application/use-cases/macro/index.d.ts.map +0 -1
- package/dist/application/use-cases/macro/index.js +0 -17
- package/dist/application/use-cases/macro/index.js.map +0 -1
- package/dist/application/use-cases/modeling/index.d.ts +0 -56
- package/dist/application/use-cases/modeling/index.d.ts.map +0 -1
- package/dist/application/use-cases/modeling/index.js +0 -385
- package/dist/application/use-cases/modeling/index.js.map +0 -1
- package/dist/index.refactored.d.ts +0 -7
- package/dist/index.refactored.d.ts.map +0 -1
- package/dist/index.refactored.js +0 -254
- package/dist/index.refactored.js.map +0 -1
- package/dist/infrastructure/config/configuration-manager.d.ts +0 -381
- package/dist/infrastructure/config/configuration-manager.d.ts.map +0 -1
- package/dist/infrastructure/config/configuration-manager.js +0 -566
- package/dist/infrastructure/config/configuration-manager.js.map +0 -1
- package/dist/infrastructure/container/service-locator.d.ts +0 -14
- package/dist/infrastructure/container/service-locator.d.ts.map +0 -1
- package/dist/infrastructure/container/service-locator.js +0 -38
- package/dist/infrastructure/container/service-locator.js.map +0 -1
- package/dist/infrastructure/logging/logger.d.ts +0 -24
- package/dist/infrastructure/logging/logger.d.ts.map +0 -1
- package/dist/infrastructure/logging/logger.js +0 -65
- package/dist/infrastructure/logging/logger.js.map +0 -1
- package/dist/infrastructure/solidworks/solidworks-adapter.d.ts +0 -43
- package/dist/infrastructure/solidworks/solidworks-adapter.d.ts.map +0 -1
- package/dist/infrastructure/solidworks/solidworks-adapter.js +0 -527
- package/dist/infrastructure/solidworks/solidworks-adapter.js.map +0 -1
- package/dist/presentation/mcp/request-handler.d.ts +0 -41
- package/dist/presentation/mcp/request-handler.d.ts.map +0 -1
- package/dist/presentation/mcp/request-handler.js +0 -100
- package/dist/presentation/mcp/request-handler.js.map +0 -1
- package/dist/presentation/transformers/error-transformer.d.ts +0 -16
- package/dist/presentation/transformers/error-transformer.d.ts.map +0 -1
- package/dist/presentation/transformers/error-transformer.js +0 -44
- package/dist/presentation/transformers/error-transformer.js.map +0 -1
- package/dist/presentation/transformers/response-transformer.d.ts +0 -24
- package/dist/presentation/transformers/response-transformer.d.ts.map +0 -1
- package/dist/presentation/transformers/response-transformer.js +0 -102
- package/dist/presentation/transformers/response-transformer.js.map +0 -1
- package/dist/tools/drawing-analysis.d.ts +0 -9
- package/dist/tools/drawing-analysis.d.ts.map +0 -1
- package/dist/tools/drawing-analysis.js +0 -239
- package/dist/tools/drawing-analysis.js.map +0 -1
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Native Macro Recording for SolidWorks
|
|
3
3
|
* Uses SolidWorks' built-in macro recording API for proper VBA initialization
|
|
4
4
|
*/
|
|
5
|
+
import * as fs from 'node:fs';
|
|
6
|
+
import * as path from 'node:path';
|
|
5
7
|
import { z } from 'zod';
|
|
6
8
|
/**
|
|
7
9
|
* Native macro recording tools that use SolidWorks' internal VBA engine
|
|
@@ -18,7 +20,7 @@ export const nativeMacroTools = [
|
|
|
18
20
|
pauseRecording: z.boolean().default(false).describe('Start in paused state'),
|
|
19
21
|
recordViewCommands: z.boolean().default(false).describe('Record view manipulation commands'),
|
|
20
22
|
recordFeatureManager: z.boolean().default(true).describe('Record feature manager commands'),
|
|
21
|
-
recordSelections: z.boolean().default(true).describe('Record selection commands')
|
|
23
|
+
recordSelections: z.boolean().default(true).describe('Record selection commands'),
|
|
22
24
|
}),
|
|
23
25
|
handler: (args, swApi) => {
|
|
24
26
|
try {
|
|
@@ -28,11 +30,9 @@ export const nativeMacroTools = [
|
|
|
28
30
|
// Ensure macro path has correct extension
|
|
29
31
|
let macroPath = args.macroPath;
|
|
30
32
|
if (!macroPath.toLowerCase().endsWith('.swp')) {
|
|
31
|
-
macroPath = macroPath.replace(/\.[^.]*$/, '')
|
|
33
|
+
macroPath = `${macroPath.replace(/\.[^.]*$/, '')}.swp`;
|
|
32
34
|
}
|
|
33
35
|
// Ensure directory exists
|
|
34
|
-
const path = require('path');
|
|
35
|
-
const fs = require('fs');
|
|
36
36
|
const dir = path.dirname(macroPath);
|
|
37
37
|
if (!fs.existsSync(dir)) {
|
|
38
38
|
fs.mkdirSync(dir, { recursive: true });
|
|
@@ -59,21 +59,21 @@ export const nativeMacroTools = [
|
|
|
59
59
|
options: {
|
|
60
60
|
recordViewCommands: args.recordViewCommands,
|
|
61
61
|
recordFeatureManager: args.recordFeatureManager,
|
|
62
|
-
recordSelections: args.recordSelections
|
|
63
|
-
}
|
|
62
|
+
recordSelections: args.recordSelections,
|
|
63
|
+
},
|
|
64
64
|
};
|
|
65
65
|
}
|
|
66
66
|
catch (error) {
|
|
67
67
|
return `Failed to start native macro recording: ${error}`;
|
|
68
68
|
}
|
|
69
|
-
}
|
|
69
|
+
},
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
72
|
name: 'stop_native_macro_recording',
|
|
73
73
|
description: 'Stop the current native macro recording and save',
|
|
74
74
|
inputSchema: z.object({
|
|
75
75
|
openInEditor: z.boolean().default(false).describe('Open macro in VBA editor after saving'),
|
|
76
|
-
runMacro: z.boolean().default(false).describe('Run the macro immediately after saving')
|
|
76
|
+
runMacro: z.boolean().default(false).describe('Run the macro immediately after saving'),
|
|
77
77
|
}),
|
|
78
78
|
handler: (args, swApi) => {
|
|
79
79
|
try {
|
|
@@ -90,8 +90,8 @@ export const nativeMacroTools = [
|
|
|
90
90
|
}
|
|
91
91
|
// Run macro if requested
|
|
92
92
|
if (args.runMacro) {
|
|
93
|
-
swApp.RunMacro2(lastMacroPath,
|
|
94
|
-
|
|
93
|
+
swApp.RunMacro2(lastMacroPath, 'main', // Default module name
|
|
94
|
+
'main', // Default procedure name
|
|
95
95
|
1 // swRunMacroOption_e.swRunMacroUnloadAfterRun
|
|
96
96
|
);
|
|
97
97
|
}
|
|
@@ -100,19 +100,19 @@ export const nativeMacroTools = [
|
|
|
100
100
|
message: 'Native macro recording stopped and saved',
|
|
101
101
|
macroPath: lastMacroPath,
|
|
102
102
|
openedInEditor: args.openInEditor,
|
|
103
|
-
executed: args.runMacro
|
|
103
|
+
executed: args.runMacro,
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
106
|
catch (error) {
|
|
107
107
|
return `Failed to stop native macro recording: ${error}`;
|
|
108
108
|
}
|
|
109
|
-
}
|
|
109
|
+
},
|
|
110
110
|
},
|
|
111
111
|
{
|
|
112
112
|
name: 'pause_resume_macro_recording',
|
|
113
113
|
description: 'Pause or resume the current macro recording',
|
|
114
114
|
inputSchema: z.object({
|
|
115
|
-
action: z.enum(['pause', 'resume']).describe('Action to perform')
|
|
115
|
+
action: z.enum(['pause', 'resume']).describe('Action to perform'),
|
|
116
116
|
}),
|
|
117
117
|
handler: (args, swApi) => {
|
|
118
118
|
try {
|
|
@@ -128,13 +128,13 @@ export const nativeMacroTools = [
|
|
|
128
128
|
return {
|
|
129
129
|
success: true,
|
|
130
130
|
message: `Macro recording ${args.action}d`,
|
|
131
|
-
status: args.action === 'pause' ? 'paused' : 'recording'
|
|
131
|
+
status: args.action === 'pause' ? 'paused' : 'recording',
|
|
132
132
|
};
|
|
133
133
|
}
|
|
134
134
|
catch (error) {
|
|
135
135
|
return `Failed to ${args.action} macro recording: ${error}`;
|
|
136
136
|
}
|
|
137
|
-
}
|
|
137
|
+
},
|
|
138
138
|
},
|
|
139
139
|
// ============================================
|
|
140
140
|
// MACRO EXECUTION & MANAGEMENT
|
|
@@ -147,7 +147,7 @@ export const nativeMacroTools = [
|
|
|
147
147
|
moduleName: z.string().default('main').describe('Module name containing the macro'),
|
|
148
148
|
procedureName: z.string().default('main').describe('Procedure/subroutine name to run'),
|
|
149
149
|
arguments: z.array(z.any()).optional().describe('Arguments to pass to the macro'),
|
|
150
|
-
unloadAfterRun: z.boolean().default(true).describe('Unload macro from memory after execution')
|
|
150
|
+
unloadAfterRun: z.boolean().default(true).describe('Unload macro from memory after execution'),
|
|
151
151
|
}),
|
|
152
152
|
handler: (args, swApi) => {
|
|
153
153
|
try {
|
|
@@ -155,7 +155,6 @@ export const nativeMacroTools = [
|
|
|
155
155
|
if (!swApp)
|
|
156
156
|
throw new Error('SolidWorks application not connected');
|
|
157
157
|
// Check if macro file exists
|
|
158
|
-
const fs = require('fs');
|
|
159
158
|
if (!fs.existsSync(args.macroPath)) {
|
|
160
159
|
throw new Error(`Macro file not found: ${args.macroPath}`);
|
|
161
160
|
}
|
|
@@ -165,7 +164,7 @@ export const nativeMacroTools = [
|
|
|
165
164
|
let success;
|
|
166
165
|
if (args.arguments && args.arguments.length > 0) {
|
|
167
166
|
// Run with arguments (requires special handling)
|
|
168
|
-
const vbaApp = swApp.GetAddInObject(
|
|
167
|
+
const vbaApp = swApp.GetAddInObject('SldWorks.MacroRunner');
|
|
169
168
|
success = vbaApp.RunMacroWithArguments(args.macroPath, args.moduleName, args.procedureName, args.arguments);
|
|
170
169
|
}
|
|
171
170
|
else {
|
|
@@ -181,19 +180,19 @@ export const nativeMacroTools = [
|
|
|
181
180
|
macroPath: args.macroPath,
|
|
182
181
|
module: args.moduleName,
|
|
183
182
|
procedure: args.procedureName,
|
|
184
|
-
hadArguments: args.arguments ? args.arguments.length : 0
|
|
183
|
+
hadArguments: args.arguments ? args.arguments.length : 0,
|
|
185
184
|
};
|
|
186
185
|
}
|
|
187
186
|
catch (error) {
|
|
188
187
|
return `Failed to run macro: ${error}`;
|
|
189
188
|
}
|
|
190
|
-
}
|
|
189
|
+
},
|
|
191
190
|
},
|
|
192
191
|
{
|
|
193
192
|
name: 'edit_macro',
|
|
194
193
|
description: 'Open a macro in the SolidWorks VBA editor',
|
|
195
194
|
inputSchema: z.object({
|
|
196
|
-
macroPath: z.string().describe('Full path to the macro file')
|
|
195
|
+
macroPath: z.string().describe('Full path to the macro file'),
|
|
197
196
|
}),
|
|
198
197
|
handler: (args, swApi) => {
|
|
199
198
|
try {
|
|
@@ -201,7 +200,6 @@ export const nativeMacroTools = [
|
|
|
201
200
|
if (!swApp)
|
|
202
201
|
throw new Error('SolidWorks application not connected');
|
|
203
202
|
// Check if macro file exists
|
|
204
|
-
const fs = require('fs');
|
|
205
203
|
if (!fs.existsSync(args.macroPath)) {
|
|
206
204
|
throw new Error(`Macro file not found: ${args.macroPath}`);
|
|
207
205
|
}
|
|
@@ -213,13 +211,13 @@ export const nativeMacroTools = [
|
|
|
213
211
|
return {
|
|
214
212
|
success: true,
|
|
215
213
|
message: 'Macro opened in VBA editor',
|
|
216
|
-
macroPath: args.macroPath
|
|
214
|
+
macroPath: args.macroPath,
|
|
217
215
|
};
|
|
218
216
|
}
|
|
219
217
|
catch (error) {
|
|
220
218
|
return `Failed to edit macro: ${error}`;
|
|
221
219
|
}
|
|
222
|
-
}
|
|
220
|
+
},
|
|
223
221
|
},
|
|
224
222
|
// ============================================
|
|
225
223
|
// MACRO INITIALIZATION & CONVERSION
|
|
@@ -233,7 +231,7 @@ export const nativeMacroTools = [
|
|
|
233
231
|
description: z.string().optional().describe('Macro description'),
|
|
234
232
|
includeErrorHandling: z.boolean().default(true).describe('Include error handling code'),
|
|
235
233
|
includeComments: z.boolean().default(true).describe('Include helpful comments'),
|
|
236
|
-
template: z.enum(['basic', 'part', 'assembly', 'drawing']).default('basic').describe('Macro template type')
|
|
234
|
+
template: z.enum(['basic', 'part', 'assembly', 'drawing']).default('basic').describe('Macro template type'),
|
|
237
235
|
}),
|
|
238
236
|
handler: (args, swApi) => {
|
|
239
237
|
try {
|
|
@@ -243,11 +241,9 @@ export const nativeMacroTools = [
|
|
|
243
241
|
// Ensure macro path has correct extension
|
|
244
242
|
let macroPath = args.macroPath;
|
|
245
243
|
if (!macroPath.toLowerCase().endsWith('.swp')) {
|
|
246
|
-
macroPath = macroPath.replace(/\.[^.]*$/, '')
|
|
244
|
+
macroPath = `${macroPath.replace(/\.[^.]*$/, '')}.swp`;
|
|
247
245
|
}
|
|
248
246
|
// Create directory if needed
|
|
249
|
-
const path = require('path');
|
|
250
|
-
const fs = require('fs');
|
|
251
247
|
const dir = path.dirname(macroPath);
|
|
252
248
|
if (!fs.existsSync(dir)) {
|
|
253
249
|
fs.mkdirSync(dir, { recursive: true });
|
|
@@ -259,15 +255,15 @@ export const nativeMacroTools = [
|
|
|
259
255
|
// Now edit the macro to add our template code
|
|
260
256
|
swApp.EditMacro(macroPath);
|
|
261
257
|
// Get VBA environment
|
|
262
|
-
const vbaEditor = swApp.GetAddInObject(
|
|
258
|
+
const vbaEditor = swApp.GetAddInObject('VBA.Editor');
|
|
263
259
|
const vbaProject = vbaEditor.ActiveVBProject;
|
|
264
|
-
const codeModule = vbaProject.VBComponents(
|
|
260
|
+
const codeModule = vbaProject.VBComponents('Module1').CodeModule;
|
|
265
261
|
// Clear existing code
|
|
266
262
|
if (codeModule.CountOfLines > 0) {
|
|
267
263
|
codeModule.DeleteLines(1, codeModule.CountOfLines);
|
|
268
264
|
}
|
|
269
265
|
// Build template code based on type
|
|
270
|
-
|
|
266
|
+
const templateCode = generateMacroTemplate(args);
|
|
271
267
|
// Insert the template code
|
|
272
268
|
codeModule.InsertLines(1, templateCode);
|
|
273
269
|
// Save the macro
|
|
@@ -278,13 +274,13 @@ export const nativeMacroTools = [
|
|
|
278
274
|
macroPath,
|
|
279
275
|
macroName: args.macroName,
|
|
280
276
|
template: args.template,
|
|
281
|
-
linesOfCode: templateCode.split('\n').length
|
|
277
|
+
linesOfCode: templateCode.split('\n').length,
|
|
282
278
|
};
|
|
283
279
|
}
|
|
284
280
|
catch (error) {
|
|
285
281
|
return `Failed to create initialized macro: ${error}`;
|
|
286
282
|
}
|
|
287
|
-
}
|
|
283
|
+
},
|
|
288
284
|
},
|
|
289
285
|
{
|
|
290
286
|
name: 'convert_text_to_native_macro',
|
|
@@ -294,7 +290,7 @@ export const nativeMacroTools = [
|
|
|
294
290
|
outputPath: z.string().describe('Path where the converted macro will be saved'),
|
|
295
291
|
macroName: z.string().describe('Name for the macro'),
|
|
296
292
|
addInitialization: z.boolean().default(true).describe('Add SolidWorks initialization code'),
|
|
297
|
-
addReferences: z.boolean().default(true).describe('Add required type library references')
|
|
293
|
+
addReferences: z.boolean().default(true).describe('Add required type library references'),
|
|
298
294
|
}),
|
|
299
295
|
handler: (args, swApi) => {
|
|
300
296
|
try {
|
|
@@ -304,7 +300,7 @@ export const nativeMacroTools = [
|
|
|
304
300
|
// Ensure output path has correct extension
|
|
305
301
|
let outputPath = args.outputPath;
|
|
306
302
|
if (!outputPath.toLowerCase().endsWith('.swp')) {
|
|
307
|
-
outputPath = outputPath.replace(/\.[^.]*$/, '')
|
|
303
|
+
outputPath = `${outputPath.replace(/\.[^.]*$/, '')}.swp`;
|
|
308
304
|
}
|
|
309
305
|
// Create an initialized macro first
|
|
310
306
|
swApp.RecordMacro(outputPath);
|
|
@@ -312,16 +308,16 @@ export const nativeMacroTools = [
|
|
|
312
308
|
// Open in editor
|
|
313
309
|
swApp.EditMacro(outputPath);
|
|
314
310
|
// Get VBA environment
|
|
315
|
-
const vbaEditor = swApp.GetAddInObject(
|
|
311
|
+
const vbaEditor = swApp.GetAddInObject('VBA.Editor');
|
|
316
312
|
const vbaProject = vbaEditor.ActiveVBProject;
|
|
317
313
|
// Add required references if needed
|
|
318
314
|
if (args.addReferences) {
|
|
319
315
|
const references = vbaProject.References;
|
|
320
316
|
// Add SolidWorks type libraries if not present
|
|
321
317
|
const requiredRefs = [
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
318
|
+
'SldWorks 2024 Type Library',
|
|
319
|
+
'SldWorks 2024 Constant type library',
|
|
320
|
+
'SldWorks 2024 Commands type library',
|
|
325
321
|
];
|
|
326
322
|
for (const refName of requiredRefs) {
|
|
327
323
|
try {
|
|
@@ -333,7 +329,7 @@ export const nativeMacroTools = [
|
|
|
333
329
|
}
|
|
334
330
|
}
|
|
335
331
|
// Get the code module
|
|
336
|
-
const codeModule = vbaProject.VBComponents(
|
|
332
|
+
const codeModule = vbaProject.VBComponents('Module1').CodeModule;
|
|
337
333
|
// Clear existing code
|
|
338
334
|
if (codeModule.CountOfLines > 0) {
|
|
339
335
|
codeModule.DeleteLines(1, codeModule.CountOfLines);
|
|
@@ -342,40 +338,42 @@ export const nativeMacroTools = [
|
|
|
342
338
|
let processedCode = args.vbaCode;
|
|
343
339
|
// Add initialization if needed
|
|
344
340
|
if (args.addInitialization && !processedCode.includes('Dim swApp')) {
|
|
345
|
-
const initCode = `
|
|
346
|
-
' ${args.macroName}
|
|
347
|
-
' Converted from text VBA by SolidWorks MCP Server
|
|
348
|
-
' Date: ${new Date().toISOString()}
|
|
349
|
-
|
|
350
|
-
Option Explicit
|
|
351
|
-
|
|
352
|
-
' SolidWorks Variables
|
|
353
|
-
Dim swApp As SldWorks.SldWorks
|
|
354
|
-
Dim swModel As SldWorks.ModelDoc2
|
|
355
|
-
Dim swPart As SldWorks.PartDoc
|
|
356
|
-
Dim swAssembly As SldWorks.AssemblyDoc
|
|
357
|
-
Dim swDrawing As SldWorks.DrawingDoc
|
|
358
|
-
Dim boolStatus As Boolean
|
|
359
|
-
Dim longStatus As Long, longWarnings As Long
|
|
360
|
-
|
|
341
|
+
const initCode = `
|
|
342
|
+
' ${args.macroName}
|
|
343
|
+
' Converted from text VBA by SolidWorks MCP Server
|
|
344
|
+
' Date: ${new Date().toISOString()}
|
|
345
|
+
|
|
346
|
+
Option Explicit
|
|
347
|
+
|
|
348
|
+
' SolidWorks Variables
|
|
349
|
+
Dim swApp As SldWorks.SldWorks
|
|
350
|
+
Dim swModel As SldWorks.ModelDoc2
|
|
351
|
+
Dim swPart As SldWorks.PartDoc
|
|
352
|
+
Dim swAssembly As SldWorks.AssemblyDoc
|
|
353
|
+
Dim swDrawing As SldWorks.DrawingDoc
|
|
354
|
+
Dim boolStatus As Boolean
|
|
355
|
+
Dim longStatus As Long, longWarnings As Long
|
|
356
|
+
|
|
361
357
|
`;
|
|
362
358
|
processedCode = initCode + processedCode;
|
|
363
359
|
}
|
|
364
360
|
// Ensure main subroutine exists
|
|
365
361
|
if (!processedCode.includes('Sub main')) {
|
|
366
|
-
processedCode =
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
362
|
+
processedCode =
|
|
363
|
+
processedCode +
|
|
364
|
+
`
|
|
365
|
+
|
|
366
|
+
Sub main()
|
|
367
|
+
Set swApp = Application.SldWorks
|
|
368
|
+
Set swModel = swApp.ActiveDoc
|
|
369
|
+
|
|
370
|
+
If swModel Is Nothing Then
|
|
371
|
+
MsgBox "Please open a document first."
|
|
372
|
+
Exit Sub
|
|
373
|
+
End If
|
|
374
|
+
|
|
375
|
+
' Call your main procedure here
|
|
376
|
+
${args.macroName}
|
|
379
377
|
End Sub`;
|
|
380
378
|
}
|
|
381
379
|
// Insert the processed code
|
|
@@ -389,13 +387,13 @@ End Sub`;
|
|
|
389
387
|
macroName: args.macroName,
|
|
390
388
|
linesOfCode: processedCode.split('\n').length,
|
|
391
389
|
referencesAdded: args.addReferences,
|
|
392
|
-
initializationAdded: args.addInitialization
|
|
390
|
+
initializationAdded: args.addInitialization,
|
|
393
391
|
};
|
|
394
392
|
}
|
|
395
393
|
catch (error) {
|
|
396
394
|
return `Failed to convert text to native macro: ${error}`;
|
|
397
395
|
}
|
|
398
|
-
}
|
|
396
|
+
},
|
|
399
397
|
},
|
|
400
398
|
// ============================================
|
|
401
399
|
// MACRO BATCH OPERATIONS
|
|
@@ -404,15 +402,17 @@ End Sub`;
|
|
|
404
402
|
name: 'batch_run_macros',
|
|
405
403
|
description: 'Run multiple macros in sequence',
|
|
406
404
|
inputSchema: z.object({
|
|
407
|
-
macros: z
|
|
405
|
+
macros: z
|
|
406
|
+
.array(z.object({
|
|
408
407
|
path: z.string().describe('Macro file path'),
|
|
409
408
|
module: z.string().default('main').describe('Module name'),
|
|
410
409
|
procedure: z.string().default('main').describe('Procedure name'),
|
|
411
410
|
arguments: z.array(z.any()).optional().describe('Arguments'),
|
|
412
|
-
continueOnError: z.boolean().default(true).describe('Continue if this macro fails')
|
|
413
|
-
}))
|
|
411
|
+
continueOnError: z.boolean().default(true).describe('Continue if this macro fails'),
|
|
412
|
+
}))
|
|
413
|
+
.describe('Array of macros to run'),
|
|
414
414
|
delayBetween: z.number().default(1000).describe('Delay between macros in milliseconds'),
|
|
415
|
-
stopOnError: z.boolean().default(false).describe('Stop batch if any macro fails')
|
|
415
|
+
stopOnError: z.boolean().default(false).describe('Stop batch if any macro fails'),
|
|
416
416
|
}),
|
|
417
417
|
handler: async (args, swApi) => {
|
|
418
418
|
try {
|
|
@@ -424,7 +424,7 @@ End Sub`;
|
|
|
424
424
|
successful: 0,
|
|
425
425
|
failed: 0,
|
|
426
426
|
skipped: 0,
|
|
427
|
-
details: []
|
|
427
|
+
details: [],
|
|
428
428
|
};
|
|
429
429
|
for (let i = 0; i < args.macros.length; i++) {
|
|
430
430
|
const macro = args.macros[i];
|
|
@@ -433,11 +433,10 @@ End Sub`;
|
|
|
433
433
|
path: macro.path,
|
|
434
434
|
status: 'pending',
|
|
435
435
|
message: '',
|
|
436
|
-
startTime: new Date().toISOString()
|
|
436
|
+
startTime: new Date().toISOString(),
|
|
437
437
|
};
|
|
438
438
|
try {
|
|
439
439
|
// Check if file exists
|
|
440
|
-
const fs = require('fs');
|
|
441
440
|
if (!fs.existsSync(macro.path)) {
|
|
442
441
|
throw new Error('Macro file not found');
|
|
443
442
|
}
|
|
@@ -465,190 +464,198 @@ End Sub`;
|
|
|
465
464
|
results.details.push(result);
|
|
466
465
|
// Delay between macros
|
|
467
466
|
if (i < args.macros.length - 1) {
|
|
468
|
-
await new Promise(resolve => setTimeout(resolve, args.delayBetween));
|
|
467
|
+
await new Promise((resolve) => setTimeout(resolve, args.delayBetween));
|
|
469
468
|
}
|
|
470
469
|
}
|
|
471
470
|
return {
|
|
472
471
|
success: results.failed === 0,
|
|
473
472
|
message: `Batch execution completed: ${results.successful}/${results.total} successful`,
|
|
474
|
-
results
|
|
473
|
+
results,
|
|
475
474
|
};
|
|
476
475
|
}
|
|
477
476
|
catch (error) {
|
|
478
477
|
return `Failed to run batch macros: ${error}`;
|
|
479
478
|
}
|
|
480
|
-
}
|
|
481
|
-
}
|
|
479
|
+
},
|
|
480
|
+
},
|
|
482
481
|
];
|
|
483
482
|
// Helper function to generate macro templates
|
|
484
483
|
function generateMacroTemplate(args) {
|
|
485
484
|
const templates = {
|
|
486
|
-
basic: `
|
|
487
|
-
' Macro: ${args.macroName}
|
|
488
|
-
' Description: ${args.description || 'Basic SolidWorks macro'}
|
|
489
|
-
' Created: ${new Date().toISOString()}
|
|
490
|
-
' Generated by SolidWorks MCP Server
|
|
491
|
-
|
|
492
|
-
Option Explicit
|
|
493
|
-
|
|
494
|
-
' SolidWorks Variables
|
|
495
|
-
Dim swApp As SldWorks.SldWorks
|
|
496
|
-
Dim swModel As SldWorks.ModelDoc2
|
|
497
|
-
Dim boolStatus As Boolean
|
|
498
|
-
Dim longStatus As Long, longWarnings As Long
|
|
499
|
-
|
|
500
|
-
Sub main()
|
|
501
|
-
${args.includeErrorHandling ? ' On Error GoTo ErrorHandler' : ''}
|
|
502
|
-
|
|
503
|
-
' Get SolidWorks application
|
|
504
|
-
Set swApp = Application.SldWorks
|
|
505
|
-
|
|
506
|
-
' Get active document
|
|
507
|
-
Set swModel = swApp.ActiveDoc
|
|
508
|
-
|
|
509
|
-
' Check if document is open
|
|
510
|
-
If swModel Is Nothing Then
|
|
511
|
-
MsgBox "Please open a document first."
|
|
512
|
-
Exit Sub
|
|
513
|
-
End If
|
|
514
|
-
|
|
515
|
-
${args.includeComments ? "' Your code here" : ''}
|
|
516
|
-
|
|
517
|
-
MsgBox "Macro completed successfully!"
|
|
518
|
-
|
|
519
|
-
${args.includeErrorHandling
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
485
|
+
basic: `
|
|
486
|
+
' Macro: ${args.macroName}
|
|
487
|
+
' Description: ${args.description || 'Basic SolidWorks macro'}
|
|
488
|
+
' Created: ${new Date().toISOString()}
|
|
489
|
+
' Generated by SolidWorks MCP Server
|
|
490
|
+
|
|
491
|
+
Option Explicit
|
|
492
|
+
|
|
493
|
+
' SolidWorks Variables
|
|
494
|
+
Dim swApp As SldWorks.SldWorks
|
|
495
|
+
Dim swModel As SldWorks.ModelDoc2
|
|
496
|
+
Dim boolStatus As Boolean
|
|
497
|
+
Dim longStatus As Long, longWarnings As Long
|
|
498
|
+
|
|
499
|
+
Sub main()
|
|
500
|
+
${args.includeErrorHandling ? ' On Error GoTo ErrorHandler' : ''}
|
|
501
|
+
|
|
502
|
+
' Get SolidWorks application
|
|
503
|
+
Set swApp = Application.SldWorks
|
|
504
|
+
|
|
505
|
+
' Get active document
|
|
506
|
+
Set swModel = swApp.ActiveDoc
|
|
507
|
+
|
|
508
|
+
' Check if document is open
|
|
509
|
+
If swModel Is Nothing Then
|
|
510
|
+
MsgBox "Please open a document first."
|
|
511
|
+
Exit Sub
|
|
512
|
+
End If
|
|
513
|
+
|
|
514
|
+
${args.includeComments ? "' Your code here" : ''}
|
|
515
|
+
|
|
516
|
+
MsgBox "Macro completed successfully!"
|
|
517
|
+
|
|
518
|
+
${args.includeErrorHandling
|
|
519
|
+
? `ErrorHandler:
|
|
520
|
+
If Err.Number <> 0 Then
|
|
521
|
+
MsgBox "Error " & Err.Number & ": " & Err.Description
|
|
522
|
+
End If`
|
|
523
|
+
: ''}
|
|
524
|
+
End Sub`,
|
|
525
|
+
part: `
|
|
526
|
+
' Macro: ${args.macroName}
|
|
527
|
+
' Description: ${args.description || 'Part-specific SolidWorks macro'}
|
|
528
|
+
' Created: ${new Date().toISOString()}
|
|
529
|
+
|
|
530
|
+
Option Explicit
|
|
531
|
+
|
|
532
|
+
Dim swApp As SldWorks.SldWorks
|
|
533
|
+
Dim swModel As SldWorks.ModelDoc2
|
|
534
|
+
Dim swPart As SldWorks.PartDoc
|
|
535
|
+
Dim swFeature As SldWorks.Feature
|
|
536
|
+
Dim swFeatMgr As SldWorks.FeatureManager
|
|
537
|
+
|
|
538
|
+
Sub main()
|
|
539
|
+
${args.includeErrorHandling ? ' On Error GoTo ErrorHandler' : ''}
|
|
540
|
+
|
|
541
|
+
Set swApp = Application.SldWorks
|
|
542
|
+
Set swModel = swApp.ActiveDoc
|
|
543
|
+
|
|
544
|
+
' Verify this is a part document
|
|
545
|
+
If swModel Is Nothing Then
|
|
546
|
+
MsgBox "Please open a part document."
|
|
547
|
+
Exit Sub
|
|
548
|
+
End If
|
|
549
|
+
|
|
550
|
+
If swModel.GetType <> swDocPART Then
|
|
551
|
+
MsgBox "This macro only works with part documents."
|
|
552
|
+
Exit Sub
|
|
553
|
+
End If
|
|
554
|
+
|
|
555
|
+
Set swPart = swModel
|
|
556
|
+
Set swFeatMgr = swModel.FeatureManager
|
|
557
|
+
|
|
558
|
+
${args.includeComments ? "' Part-specific operations here" : ''}
|
|
559
|
+
|
|
560
|
+
${args.includeErrorHandling
|
|
561
|
+
? `ErrorHandler:
|
|
562
|
+
If Err.Number <> 0 Then
|
|
563
|
+
MsgBox "Error " & Err.Number & ": " & Err.Description
|
|
564
|
+
End If`
|
|
565
|
+
: ''}
|
|
523
566
|
End Sub`,
|
|
524
|
-
|
|
525
|
-
' Macro: ${args.macroName}
|
|
526
|
-
' Description: ${args.description || '
|
|
527
|
-
' Created: ${new Date().toISOString()}
|
|
528
|
-
|
|
529
|
-
Option Explicit
|
|
530
|
-
|
|
531
|
-
Dim swApp As SldWorks.SldWorks
|
|
532
|
-
Dim swModel As SldWorks.ModelDoc2
|
|
533
|
-
Dim
|
|
534
|
-
Dim
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
Set
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
567
|
+
assembly: `
|
|
568
|
+
' Macro: ${args.macroName}
|
|
569
|
+
' Description: ${args.description || 'Assembly-specific SolidWorks macro'}
|
|
570
|
+
' Created: ${new Date().toISOString()}
|
|
571
|
+
|
|
572
|
+
Option Explicit
|
|
573
|
+
|
|
574
|
+
Dim swApp As SldWorks.SldWorks
|
|
575
|
+
Dim swModel As SldWorks.ModelDoc2
|
|
576
|
+
Dim swAssembly As SldWorks.AssemblyDoc
|
|
577
|
+
Dim swComp As SldWorks.Component2
|
|
578
|
+
|
|
579
|
+
Sub main()
|
|
580
|
+
${args.includeErrorHandling ? ' On Error GoTo ErrorHandler' : ''}
|
|
581
|
+
|
|
582
|
+
Set swApp = Application.SldWorks
|
|
583
|
+
Set swModel = swApp.ActiveDoc
|
|
584
|
+
|
|
585
|
+
' Verify this is an assembly document
|
|
586
|
+
If swModel Is Nothing Then
|
|
587
|
+
MsgBox "Please open an assembly document."
|
|
588
|
+
Exit Sub
|
|
589
|
+
End If
|
|
590
|
+
|
|
591
|
+
If swModel.GetType <> swDocASSEMBLY Then
|
|
592
|
+
MsgBox "This macro only works with assembly documents."
|
|
593
|
+
Exit Sub
|
|
594
|
+
End If
|
|
595
|
+
|
|
596
|
+
Set swAssembly = swModel
|
|
597
|
+
|
|
598
|
+
${args.includeComments ? "' Assembly-specific operations here" : ''}
|
|
599
|
+
|
|
600
|
+
${args.includeErrorHandling
|
|
601
|
+
? `ErrorHandler:
|
|
602
|
+
If Err.Number <> 0 Then
|
|
603
|
+
MsgBox "Error " & Err.Number & ": " & Err.Description
|
|
604
|
+
End If`
|
|
605
|
+
: ''}
|
|
563
606
|
End Sub`,
|
|
564
|
-
|
|
565
|
-
' Macro: ${args.macroName}
|
|
566
|
-
' Description: ${args.description || '
|
|
567
|
-
' Created: ${new Date().toISOString()}
|
|
568
|
-
|
|
569
|
-
Option Explicit
|
|
570
|
-
|
|
571
|
-
Dim swApp As SldWorks.SldWorks
|
|
572
|
-
Dim swModel As SldWorks.ModelDoc2
|
|
573
|
-
Dim
|
|
574
|
-
Dim
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
Set
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
${args.
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
607
|
+
drawing: `
|
|
608
|
+
' Macro: ${args.macroName}
|
|
609
|
+
' Description: ${args.description || 'Drawing-specific SolidWorks macro'}
|
|
610
|
+
' Created: ${new Date().toISOString()}
|
|
611
|
+
|
|
612
|
+
Option Explicit
|
|
613
|
+
|
|
614
|
+
Dim swApp As SldWorks.SldWorks
|
|
615
|
+
Dim swModel As SldWorks.ModelDoc2
|
|
616
|
+
Dim swDrawing As SldWorks.DrawingDoc
|
|
617
|
+
Dim swSheet As SldWorks.Sheet
|
|
618
|
+
Dim swView As SldWorks.View
|
|
619
|
+
|
|
620
|
+
Sub main()
|
|
621
|
+
${args.includeErrorHandling ? ' On Error GoTo ErrorHandler' : ''}
|
|
622
|
+
|
|
623
|
+
Set swApp = Application.SldWorks
|
|
624
|
+
Set swModel = swApp.ActiveDoc
|
|
625
|
+
|
|
626
|
+
' Verify this is a drawing document
|
|
627
|
+
If swModel Is Nothing Then
|
|
628
|
+
MsgBox "Please open a drawing document."
|
|
629
|
+
Exit Sub
|
|
630
|
+
End If
|
|
631
|
+
|
|
632
|
+
If swModel.GetType <> swDocDRAWING Then
|
|
633
|
+
MsgBox "This macro only works with drawing documents."
|
|
634
|
+
Exit Sub
|
|
635
|
+
End If
|
|
636
|
+
|
|
637
|
+
Set swDrawing = swModel
|
|
638
|
+
Set swSheet = swDrawing.GetCurrentSheet
|
|
639
|
+
|
|
640
|
+
${args.includeComments ? "' Drawing-specific operations here" : ''}
|
|
641
|
+
|
|
642
|
+
${args.includeErrorHandling
|
|
643
|
+
? `ErrorHandler:
|
|
644
|
+
If Err.Number <> 0 Then
|
|
645
|
+
MsgBox "Error " & Err.Number & ": " & Err.Description
|
|
646
|
+
End If`
|
|
647
|
+
: ''}
|
|
601
648
|
End Sub`,
|
|
602
|
-
drawing: `
|
|
603
|
-
' Macro: ${args.macroName}
|
|
604
|
-
' Description: ${args.description || 'Drawing-specific SolidWorks macro'}
|
|
605
|
-
' Created: ${new Date().toISOString()}
|
|
606
|
-
|
|
607
|
-
Option Explicit
|
|
608
|
-
|
|
609
|
-
Dim swApp As SldWorks.SldWorks
|
|
610
|
-
Dim swModel As SldWorks.ModelDoc2
|
|
611
|
-
Dim swDrawing As SldWorks.DrawingDoc
|
|
612
|
-
Dim swSheet As SldWorks.Sheet
|
|
613
|
-
Dim swView As SldWorks.View
|
|
614
|
-
|
|
615
|
-
Sub main()
|
|
616
|
-
${args.includeErrorHandling ? ' On Error GoTo ErrorHandler' : ''}
|
|
617
|
-
|
|
618
|
-
Set swApp = Application.SldWorks
|
|
619
|
-
Set swModel = swApp.ActiveDoc
|
|
620
|
-
|
|
621
|
-
' Verify this is a drawing document
|
|
622
|
-
If swModel Is Nothing Then
|
|
623
|
-
MsgBox "Please open a drawing document."
|
|
624
|
-
Exit Sub
|
|
625
|
-
End If
|
|
626
|
-
|
|
627
|
-
If swModel.GetType <> swDocDRAWING Then
|
|
628
|
-
MsgBox "This macro only works with drawing documents."
|
|
629
|
-
Exit Sub
|
|
630
|
-
End If
|
|
631
|
-
|
|
632
|
-
Set swDrawing = swModel
|
|
633
|
-
Set swSheet = swDrawing.GetCurrentSheet
|
|
634
|
-
|
|
635
|
-
${args.includeComments ? "' Drawing-specific operations here" : ''}
|
|
636
|
-
|
|
637
|
-
${args.includeErrorHandling ? `ErrorHandler:
|
|
638
|
-
If Err.Number <> 0 Then
|
|
639
|
-
MsgBox "Error " & Err.Number & ": " & Err.Description
|
|
640
|
-
End If` : ''}
|
|
641
|
-
End Sub`
|
|
642
649
|
};
|
|
643
650
|
return templates[args.template] || templates.basic;
|
|
644
651
|
}
|
|
645
652
|
// Helper function to get SolidWorks type library GUIDs
|
|
646
653
|
function getSolidWorksTypeLibGuid(libName) {
|
|
647
654
|
const guids = {
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
655
|
+
'SldWorks 2024 Type Library': '{83A33D31-27C5-11CE-BFD4-00400513BB57}',
|
|
656
|
+
'SldWorks 2024 Constant type library': '{4687F359-55D0-4CD3-B6CF-2EB42C11F989}',
|
|
657
|
+
'SldWorks 2024 Commands type library': '{0AC0837E-7365-48E8-9651-A141AAB75963}',
|
|
651
658
|
};
|
|
652
|
-
return guids[libName] ||
|
|
659
|
+
return guids[libName] || '';
|
|
653
660
|
}
|
|
654
661
|
//# sourceMappingURL=native-macro.js.map
|