solidworks-mcp-server 2.2.0 → 3.0.1

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.
Files changed (109) hide show
  1. package/README.md +33 -10
  2. package/dist/application/services/command-bus.d.ts +39 -0
  3. package/dist/application/services/command-bus.d.ts.map +1 -0
  4. package/dist/application/services/command-bus.js +88 -0
  5. package/dist/application/services/command-bus.js.map +1 -0
  6. package/dist/application/services/event-bus.d.ts +31 -0
  7. package/dist/application/services/event-bus.d.ts.map +1 -0
  8. package/dist/application/services/event-bus.js +83 -0
  9. package/dist/application/services/event-bus.js.map +1 -0
  10. package/dist/application/services/query-bus.d.ts +30 -0
  11. package/dist/application/services/query-bus.d.ts.map +1 -0
  12. package/dist/application/services/query-bus.js +59 -0
  13. package/dist/application/services/query-bus.js.map +1 -0
  14. package/dist/application/services/tool-registry.d.ts +53 -0
  15. package/dist/application/services/tool-registry.d.ts.map +1 -0
  16. package/dist/application/services/tool-registry.js +81 -0
  17. package/dist/application/services/tool-registry.js.map +1 -0
  18. package/dist/application/use-cases/analysis/index.d.ts +13 -0
  19. package/dist/application/use-cases/analysis/index.d.ts.map +1 -0
  20. package/dist/application/use-cases/analysis/index.js +17 -0
  21. package/dist/application/use-cases/analysis/index.js.map +1 -0
  22. package/dist/application/use-cases/drawing/index.d.ts +13 -0
  23. package/dist/application/use-cases/drawing/index.d.ts.map +1 -0
  24. package/dist/application/use-cases/drawing/index.js +17 -0
  25. package/dist/application/use-cases/drawing/index.js.map +1 -0
  26. package/dist/application/use-cases/export/index.d.ts +13 -0
  27. package/dist/application/use-cases/export/index.d.ts.map +1 -0
  28. package/dist/application/use-cases/export/index.js +17 -0
  29. package/dist/application/use-cases/export/index.js.map +1 -0
  30. package/dist/application/use-cases/macro/index.d.ts +13 -0
  31. package/dist/application/use-cases/macro/index.d.ts.map +1 -0
  32. package/dist/application/use-cases/macro/index.js +17 -0
  33. package/dist/application/use-cases/macro/index.js.map +1 -0
  34. package/dist/application/use-cases/modeling/index.d.ts +56 -0
  35. package/dist/application/use-cases/modeling/index.d.ts.map +1 -0
  36. package/dist/application/use-cases/modeling/index.js +385 -0
  37. package/dist/application/use-cases/modeling/index.js.map +1 -0
  38. package/dist/core/interfaces/core-abstractions.d.ts +289 -0
  39. package/dist/core/interfaces/core-abstractions.d.ts.map +1 -0
  40. package/dist/core/interfaces/core-abstractions.js +121 -0
  41. package/dist/core/interfaces/core-abstractions.js.map +1 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +11 -4
  44. package/dist/index.js.map +1 -1
  45. package/dist/index.refactored.d.ts +7 -0
  46. package/dist/index.refactored.d.ts.map +1 -0
  47. package/dist/index.refactored.js +254 -0
  48. package/dist/index.refactored.js.map +1 -0
  49. package/dist/infrastructure/config/configuration-manager.d.ts +381 -0
  50. package/dist/infrastructure/config/configuration-manager.d.ts.map +1 -0
  51. package/dist/infrastructure/config/configuration-manager.js +566 -0
  52. package/dist/infrastructure/config/configuration-manager.js.map +1 -0
  53. package/dist/infrastructure/container/service-locator.d.ts +14 -0
  54. package/dist/infrastructure/container/service-locator.d.ts.map +1 -0
  55. package/dist/infrastructure/container/service-locator.js +38 -0
  56. package/dist/infrastructure/container/service-locator.js.map +1 -0
  57. package/dist/infrastructure/logging/logger.d.ts +24 -0
  58. package/dist/infrastructure/logging/logger.d.ts.map +1 -0
  59. package/dist/infrastructure/logging/logger.js +65 -0
  60. package/dist/infrastructure/logging/logger.js.map +1 -0
  61. package/dist/infrastructure/solidworks/solidworks-adapter.d.ts +43 -0
  62. package/dist/infrastructure/solidworks/solidworks-adapter.d.ts.map +1 -0
  63. package/dist/infrastructure/solidworks/solidworks-adapter.js +527 -0
  64. package/dist/infrastructure/solidworks/solidworks-adapter.js.map +1 -0
  65. package/dist/presentation/mcp/request-handler.d.ts +41 -0
  66. package/dist/presentation/mcp/request-handler.d.ts.map +1 -0
  67. package/dist/presentation/mcp/request-handler.js +100 -0
  68. package/dist/presentation/mcp/request-handler.js.map +1 -0
  69. package/dist/presentation/transformers/error-transformer.d.ts +16 -0
  70. package/dist/presentation/transformers/error-transformer.d.ts.map +1 -0
  71. package/dist/presentation/transformers/error-transformer.js +44 -0
  72. package/dist/presentation/transformers/error-transformer.js.map +1 -0
  73. package/dist/presentation/transformers/response-transformer.d.ts +24 -0
  74. package/dist/presentation/transformers/response-transformer.d.ts.map +1 -0
  75. package/dist/presentation/transformers/response-transformer.js +102 -0
  76. package/dist/presentation/transformers/response-transformer.js.map +1 -0
  77. package/dist/shared/constants/solidworks-constants.d.ts +302 -0
  78. package/dist/shared/constants/solidworks-constants.d.ts.map +1 -0
  79. package/dist/shared/constants/solidworks-constants.js +471 -0
  80. package/dist/shared/constants/solidworks-constants.js.map +1 -0
  81. package/dist/tools/diagnostics.d.ts +21 -0
  82. package/dist/tools/diagnostics.d.ts.map +1 -0
  83. package/dist/tools/diagnostics.js +120 -0
  84. package/dist/tools/diagnostics.js.map +1 -0
  85. package/dist/tools/drawing-analysis.d.ts +9 -0
  86. package/dist/tools/drawing-analysis.d.ts.map +1 -0
  87. package/dist/tools/drawing-analysis.js +239 -0
  88. package/dist/tools/drawing-analysis.js.map +1 -0
  89. package/dist/tools/enhanced-drawing.d.ts +51 -0
  90. package/dist/tools/enhanced-drawing.d.ts.map +1 -0
  91. package/dist/tools/enhanced-drawing.js +193 -0
  92. package/dist/tools/enhanced-drawing.js.map +1 -0
  93. package/dist/tools/macro-security.d.ts +9 -0
  94. package/dist/tools/macro-security.d.ts.map +1 -0
  95. package/dist/tools/macro-security.js +86 -0
  96. package/dist/tools/macro-security.js.map +1 -0
  97. package/dist/tools/native-macro.d.ts +149 -0
  98. package/dist/tools/native-macro.d.ts.map +1 -0
  99. package/dist/tools/native-macro.js +654 -0
  100. package/dist/tools/native-macro.js.map +1 -0
  101. package/dist/tools/sketch.d.ts +663 -0
  102. package/dist/tools/sketch.d.ts.map +1 -0
  103. package/dist/tools/sketch.js +815 -0
  104. package/dist/tools/sketch.js.map +1 -0
  105. package/dist/tools/template-manager.d.ts +231 -0
  106. package/dist/tools/template-manager.d.ts.map +1 -0
  107. package/dist/tools/template-manager.js +626 -0
  108. package/dist/tools/template-manager.js.map +1 -0
  109. package/package.json +12 -7
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ import { SolidWorksAPI } from '../solidworks/api.js';
3
+ export declare const drawingAnalysisTools: {
4
+ name: string;
5
+ description: string;
6
+ inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
7
+ handler: (args: any, swApi: SolidWorksAPI) => any;
8
+ }[];
9
+ //# sourceMappingURL=drawing-analysis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawing-analysis.d.ts","sourceRoot":"","sources":["../../src/tools/drawing-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,eAAO,MAAM,oBAAoB;;;;oBAKb,GAAG,SAAS,aAAa;GAkP5C,CAAC"}
@@ -0,0 +1,239 @@
1
+ import { z } from 'zod';
2
+ export const drawingAnalysisTools = [
3
+ {
4
+ name: 'get_drawing_sheet_info',
5
+ description: 'Get comprehensive information about the current drawing sheet including size, scale, and recommended view positions',
6
+ inputSchema: z.object({}),
7
+ handler: (args, swApi) => {
8
+ try {
9
+ // This will call the new getDrawingSheetInfo method we're adding to the API
10
+ return swApi.getDrawingSheetInfo();
11
+ }
12
+ catch (error) {
13
+ return `Failed to get drawing sheet info: ${error}`;
14
+ }
15
+ },
16
+ },
17
+ {
18
+ name: 'get_drawing_views',
19
+ description: 'Get information about all views in the current drawing',
20
+ inputSchema: z.object({}),
21
+ handler: (args, swApi) => {
22
+ try {
23
+ return swApi.getDrawingViews();
24
+ }
25
+ catch (error) {
26
+ return `Failed to get drawing views: ${error}`;
27
+ }
28
+ },
29
+ },
30
+ {
31
+ name: 'set_drawing_sheet_size',
32
+ description: 'Set the drawing sheet size',
33
+ inputSchema: z.object({
34
+ paperSize: z.enum(['Letter', 'Letter-Landscape', 'Tabloid', 'Tabloid-Landscape', 'A4', 'A3', 'A2', 'A1', 'A0', 'Custom']).describe('Paper size'),
35
+ width: z.number().optional().describe('Width in inches (for custom size)'),
36
+ height: z.number().optional().describe('Height in inches (for custom size)'),
37
+ }),
38
+ handler: (args, swApi) => {
39
+ try {
40
+ return swApi.setDrawingSheetSize(args.paperSize, args.width, args.height);
41
+ }
42
+ catch (error) {
43
+ return `Failed to set sheet size: ${error}`;
44
+ }
45
+ },
46
+ },
47
+ {
48
+ name: 'get_template_custom_properties',
49
+ description: 'Get custom properties from the drawing template, including view position settings',
50
+ inputSchema: z.object({}),
51
+ handler: (args, swApi) => {
52
+ try {
53
+ return swApi.getTemplateCustomProperties();
54
+ }
55
+ catch (error) {
56
+ return `Failed to get template properties: ${error}`;
57
+ }
58
+ },
59
+ },
60
+ {
61
+ name: 'set_template_custom_properties',
62
+ description: 'Set custom properties in the drawing template for view positions and other settings',
63
+ inputSchema: z.object({
64
+ properties: z.record(z.string()).describe('Key-value pairs of properties to set'),
65
+ }),
66
+ handler: (args, swApi) => {
67
+ try {
68
+ return swApi.setTemplateCustomProperties(args.properties);
69
+ }
70
+ catch (error) {
71
+ return `Failed to set template properties: ${error}`;
72
+ }
73
+ },
74
+ },
75
+ {
76
+ name: 'setup_template_positions',
77
+ description: 'Set up a drawing template with standard view positions',
78
+ inputSchema: z.object({
79
+ sheetSize: z.enum(['Letter', 'Tabloid', 'A4', 'A3']).default('Tabloid').describe('Sheet size to configure for'),
80
+ }),
81
+ handler: (args, swApi) => {
82
+ try {
83
+ let properties = {};
84
+ if (args.sheetSize === 'Tabloid') {
85
+ // 11x17 positions
86
+ properties = {
87
+ 'VIEW_ISO_X': '0.0762', // 3 inches
88
+ 'VIEW_ISO_Y': '0.2286', // 9 inches
89
+ 'VIEW_ISO_SCALE': '1.5',
90
+ 'VIEW_TOP_X': '0.2159', // 8.5 inches
91
+ 'VIEW_TOP_Y': '0.1397', // 5.5 inches
92
+ 'VIEW_TOP_SCALE': '2',
93
+ 'VIEW_SIDE_X': '0.3429', // 13.5 inches
94
+ 'VIEW_SIDE_Y': '0.1397', // 5.5 inches
95
+ 'VIEW_SIDE_SCALE': '2',
96
+ 'VIEW_SECTION_X': '0.2159', // 8.5 inches
97
+ 'VIEW_SECTION_Y': '0.0508', // 2 inches
98
+ 'VIEW_SECTION_SCALE': '2',
99
+ 'DIM_TEXT_HEIGHT': '0.003175', // 1/8 inch
100
+ 'DIM_ARROW_SIZE': '0.00238', // 3/32 inch
101
+ 'DIM_OFFSET': '0.00635', // 1/4 inch
102
+ };
103
+ }
104
+ else if (args.sheetSize === 'Letter') {
105
+ // 8.5x11 positions
106
+ properties = {
107
+ 'VIEW_ISO_X': '0.0508', // 2 inches
108
+ 'VIEW_ISO_Y': '0.1778', // 7 inches
109
+ 'VIEW_ISO_SCALE': '1',
110
+ 'VIEW_TOP_X': '0.1080', // 4.25 inches
111
+ 'VIEW_TOP_Y': '0.1016', // 4 inches
112
+ 'VIEW_TOP_SCALE': '1.5',
113
+ 'VIEW_SIDE_X': '0.1651', // 6.5 inches
114
+ 'VIEW_SIDE_Y': '0.1016', // 4 inches
115
+ 'VIEW_SIDE_SCALE': '1.5',
116
+ 'VIEW_SECTION_X': '0.1080', // 4.25 inches
117
+ 'VIEW_SECTION_Y': '0.0381', // 1.5 inches
118
+ 'VIEW_SECTION_SCALE': '1.5',
119
+ 'DIM_TEXT_HEIGHT': '0.00238', // 3/32 inch
120
+ 'DIM_ARROW_SIZE': '0.001905', // 3/40 inch
121
+ 'DIM_OFFSET': '0.00476', // 3/16 inch
122
+ };
123
+ }
124
+ const result = swApi.setTemplateCustomProperties(properties);
125
+ return {
126
+ ...result,
127
+ message: `Template configured for ${args.sheetSize} size with standard positions`,
128
+ hint: 'Save the template to preserve these settings'
129
+ };
130
+ }
131
+ catch (error) {
132
+ return `Failed to setup template: ${error}`;
133
+ }
134
+ },
135
+ },
136
+ {
137
+ name: 'get_drawing_dimensions',
138
+ description: 'Get all dimensions in the current drawing view',
139
+ inputSchema: z.object({
140
+ viewName: z.string().optional().describe('Specific view name, or all views if not specified'),
141
+ }),
142
+ handler: (args, swApi) => {
143
+ try {
144
+ const model = swApi.getCurrentModel();
145
+ if (!model || model.GetType() !== 3) {
146
+ throw new Error('Current document must be a drawing');
147
+ }
148
+ const drawingDoc = model;
149
+ const dimensions = [];
150
+ // Get all views or specific view
151
+ const sheet = drawingDoc.GetCurrentSheet();
152
+ const views = sheet.GetViews();
153
+ if (views && views.length > 0) {
154
+ for (const view of views) {
155
+ if (args.viewName && view.Name !== args.viewName)
156
+ continue;
157
+ // Get dimensions from this view
158
+ const dispDim = view.GetFirstDisplayDimension();
159
+ let currentDim = dispDim;
160
+ while (currentDim) {
161
+ try {
162
+ const dim = currentDim.GetDimension2(0);
163
+ if (dim) {
164
+ dimensions.push({
165
+ name: dim.FullName || dim.Name,
166
+ value: dim.SystemValue * 1000, // Convert to mm
167
+ text: currentDim.GetText(0),
168
+ view: view.Name
169
+ });
170
+ }
171
+ }
172
+ catch (e) {
173
+ // Continue with next dimension
174
+ }
175
+ currentDim = view.GetNextDisplayDimension(currentDim);
176
+ }
177
+ }
178
+ }
179
+ return {
180
+ dimensionCount: dimensions.length,
181
+ dimensions: dimensions
182
+ };
183
+ }
184
+ catch (error) {
185
+ return `Failed to get drawing dimensions: ${error}`;
186
+ }
187
+ },
188
+ },
189
+ {
190
+ name: 'set_drawing_scale',
191
+ description: 'Set the scale of the drawing sheet or a specific view',
192
+ inputSchema: z.object({
193
+ scaleNumerator: z.number().describe('Scale numerator (e.g., 2 for 2:1)'),
194
+ scaleDenominator: z.number().default(1).describe('Scale denominator (e.g., 1 for 2:1)'),
195
+ viewName: z.string().optional().describe('Specific view name, or sheet scale if not specified'),
196
+ }),
197
+ handler: (args, swApi) => {
198
+ try {
199
+ const model = swApi.getCurrentModel();
200
+ if (!model || model.GetType() !== 3) {
201
+ throw new Error('Current document must be a drawing');
202
+ }
203
+ const drawingDoc = model;
204
+ if (args.viewName) {
205
+ // Set specific view scale
206
+ const sheet = drawingDoc.GetCurrentSheet();
207
+ const views = sheet.GetViews();
208
+ let viewFound = false;
209
+ for (const view of views) {
210
+ if (view.Name === args.viewName) {
211
+ view.ScaleDecimal = args.scaleNumerator / args.scaleDenominator;
212
+ view.UseSheetScale = 0; // Don't use sheet scale
213
+ viewFound = true;
214
+ break;
215
+ }
216
+ }
217
+ if (!viewFound) {
218
+ throw new Error(`View "${args.viewName}" not found`);
219
+ }
220
+ }
221
+ else {
222
+ // Set sheet scale
223
+ const sheet = drawingDoc.GetCurrentSheet();
224
+ sheet.SetScale(args.scaleNumerator, args.scaleDenominator, false, false);
225
+ }
226
+ drawingDoc.EditRebuild3();
227
+ return {
228
+ success: true,
229
+ scale: `${args.scaleNumerator}:${args.scaleDenominator}`,
230
+ appliedTo: args.viewName || 'Sheet'
231
+ };
232
+ }
233
+ catch (error) {
234
+ return `Failed to set scale: ${error}`;
235
+ }
236
+ },
237
+ },
238
+ ];
239
+ //# sourceMappingURL=drawing-analysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawing-analysis.js","sourceRoot":"","sources":["../../src/tools/drawing-analysis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import { z } from 'zod';
2
+ import { SolidWorksAPI } from '../solidworks/api.js';
3
+ export declare const enhancedDrawingTools: ({
4
+ name: string;
5
+ description: string;
6
+ inputSchema: z.ZodObject<{
7
+ viewName: z.ZodString;
8
+ }, "strip", z.ZodTypeAny, {
9
+ viewName: string;
10
+ }, {
11
+ viewName: string;
12
+ }>;
13
+ handler: (args: any, swApi: SolidWorksAPI) => string;
14
+ } | {
15
+ name: string;
16
+ description: string;
17
+ inputSchema: z.ZodObject<{
18
+ configs: z.ZodArray<z.ZodObject<{
19
+ name: z.ZodString;
20
+ outsideDiameter: z.ZodNumber;
21
+ insideDiameter: z.ZodNumber;
22
+ thickness: z.ZodNumber;
23
+ }, "strip", z.ZodTypeAny, {
24
+ name: string;
25
+ thickness: number;
26
+ outsideDiameter: number;
27
+ insideDiameter: number;
28
+ }, {
29
+ name: string;
30
+ thickness: number;
31
+ outsideDiameter: number;
32
+ insideDiameter: number;
33
+ }>, "many">;
34
+ }, "strip", z.ZodTypeAny, {
35
+ configs: {
36
+ name: string;
37
+ thickness: number;
38
+ outsideDiameter: number;
39
+ insideDiameter: number;
40
+ }[];
41
+ }, {
42
+ configs: {
43
+ name: string;
44
+ thickness: number;
45
+ outsideDiameter: number;
46
+ insideDiameter: number;
47
+ }[];
48
+ }>;
49
+ handler: (args: any, swApi: SolidWorksAPI) => string;
50
+ })[];
51
+ //# sourceMappingURL=enhanced-drawing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhanced-drawing.d.ts","sourceRoot":"","sources":["../../src/tools/enhanced-drawing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,eAAO,MAAM,oBAAoB;;;;;;;;;;oBA8Eb,GAAG,SAAS,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAsFzB,GAAG,SAAS,aAAa;IA2C5C,CAAC"}
@@ -0,0 +1,193 @@
1
+ import { z } from 'zod';
2
+ export const enhancedDrawingTools = [
3
+ {
4
+ name: 'add_diameter_dimension',
5
+ description: 'Add dimension with diameter symbol to a view',
6
+ inputSchema: z.object({
7
+ viewName: z.string().describe('Name of the view'),
8
+ x: z.number().describe('X position'),
9
+ y: z.number().describe('Y position'),
10
+ text: z.string().optional().describe('Custom dimension text')
11
+ }),
12
+ handler: (args, swApi) => {
13
+ try {
14
+ const model = swApi.getCurrentModel();
15
+ if (!model)
16
+ throw new Error('No drawing open');
17
+ const drawing = model;
18
+ const view = drawing.GetFirstView();
19
+ // Find target view
20
+ let targetView = view.GetNextView();
21
+ while (targetView) {
22
+ if (targetView.GetName2() === args.viewName) {
23
+ break;
24
+ }
25
+ targetView = targetView.GetNextView();
26
+ }
27
+ if (!targetView)
28
+ throw new Error('View not found');
29
+ // Select an edge in the view
30
+ targetView.SelectEntity(false);
31
+ // Add dimension with diameter symbol
32
+ const swApp = swApi.getApp();
33
+ const dim = drawing.AddDimension2(args.x, args.y, 0);
34
+ if (dim) {
35
+ // Try multiple methods to add diameter symbol
36
+ const methods = [
37
+ '<MOD-DIAM><DIM>', // SolidWorks modifier
38
+ '<MOD-DIAM>', // Just the modifier
39
+ String.fromCharCode(8960), // Unicode diameter
40
+ '\u2300<DIM>', // Unicode with dimension
41
+ '<FONT name="Arial" effect=U+2300><DIM>' // Font with Unicode
42
+ ];
43
+ for (const method of methods) {
44
+ try {
45
+ dim.SetText(0, args.text || method);
46
+ console.log(`Diameter symbol method worked: ${method}`);
47
+ break;
48
+ }
49
+ catch (e) {
50
+ console.log(`Method failed: ${method}`);
51
+ continue;
52
+ }
53
+ }
54
+ // Set as diameter dimension type
55
+ try {
56
+ dim.DimensionType = 2; // swDiameterDimension
57
+ }
58
+ catch (e) {
59
+ console.log('Could not set dimension type');
60
+ }
61
+ }
62
+ return 'Diameter dimension added';
63
+ }
64
+ catch (error) {
65
+ return `Failed to add diameter dimension: ${error}`;
66
+ }
67
+ },
68
+ },
69
+ {
70
+ name: 'set_view_grayscale_enhanced',
71
+ description: 'Enhanced method to set view to grayscale',
72
+ inputSchema: z.object({
73
+ viewName: z.string().describe('Name of the view to set grayscale')
74
+ }),
75
+ handler: (args, swApi) => {
76
+ try {
77
+ const model = swApi.getCurrentModel();
78
+ if (!model)
79
+ throw new Error('No drawing open');
80
+ const drawing = model;
81
+ const view = drawing.GetFirstView();
82
+ // Find target view
83
+ let targetView = view.GetNextView();
84
+ while (targetView) {
85
+ if (targetView.GetName2() === args.viewName) {
86
+ break;
87
+ }
88
+ targetView = targetView.GetNextView();
89
+ }
90
+ if (!targetView)
91
+ throw new Error('View not found');
92
+ const results = [];
93
+ // Method 1: SetDisplayMode with various options
94
+ try {
95
+ targetView.SetDisplayMode3(false, 4, false, false); // 4 = Shaded
96
+ results.push('Set to shaded mode');
97
+ }
98
+ catch (e) {
99
+ results.push(`SetDisplayMode3 failed: ${e}`);
100
+ }
101
+ // Method 2: Try RenderMode
102
+ try {
103
+ targetView.RenderMode = 3; // Grayscale
104
+ results.push('RenderMode set to 3');
105
+ }
106
+ catch (e) {
107
+ results.push(`RenderMode failed: ${e}`);
108
+ }
109
+ // Method 3: DisplayData with various states
110
+ try {
111
+ const dispData = targetView.GetDisplayData();
112
+ if (dispData) {
113
+ const states = [3, 6, 9, 12, 15]; // Possible grayscale states
114
+ for (const state of states) {
115
+ try {
116
+ dispData.SetDisplayState(state);
117
+ results.push(`DisplayState set to ${state}`);
118
+ break;
119
+ }
120
+ catch (e) {
121
+ continue;
122
+ }
123
+ }
124
+ }
125
+ }
126
+ catch (e) {
127
+ results.push(`DisplayData failed: ${e}`);
128
+ }
129
+ // Method 4: Try configuration display state
130
+ try {
131
+ const config = model.GetActiveConfiguration();
132
+ if (config) {
133
+ config.UseAlternateDisplayStateInDrawings = true;
134
+ config.AlternateDisplayState = 'Grayscale';
135
+ results.push('Set alternate display state to Grayscale');
136
+ }
137
+ }
138
+ catch (e) {
139
+ results.push(`Config display state failed: ${e}`);
140
+ }
141
+ return results.join('\n');
142
+ }
143
+ catch (error) {
144
+ return `Failed to set grayscale: ${error}`;
145
+ }
146
+ },
147
+ },
148
+ {
149
+ name: 'create_configurations_batch',
150
+ description: 'Create multiple configurations with dimensions',
151
+ inputSchema: z.object({
152
+ configs: z.array(z.object({
153
+ name: z.string(),
154
+ outsideDiameter: z.number(),
155
+ insideDiameter: z.number(),
156
+ thickness: z.number()
157
+ }))
158
+ }),
159
+ handler: (args, swApi) => {
160
+ try {
161
+ const model = swApi.getCurrentModel();
162
+ if (!model)
163
+ throw new Error('No model open');
164
+ const results = [];
165
+ for (const config of args.configs) {
166
+ try {
167
+ // Create configuration
168
+ const newConfig = model.AddConfiguration3(config.name, `OD: ${config.outsideDiameter}, ID: ${config.insideDiameter}`, '', 0, '');
169
+ if (newConfig) {
170
+ // Activate configuration
171
+ model.ShowConfiguration2(config.name);
172
+ // Set dimensions
173
+ swApi.setDimension('OUTSIDE DIAMETER@FRONT SKETCH@WasherTest.Part', config.outsideDiameter);
174
+ swApi.setDimension('INSIDE DIAMETER@FRONT SKETCH@WasherTest.Part', config.insideDiameter);
175
+ swApi.setDimension('WASHER THICKNESS@SIDE SKETCH@WasherTest.Part', config.thickness);
176
+ // Rebuild
177
+ model.EditRebuild3();
178
+ results.push(`✅ Created config: ${config.name}`);
179
+ }
180
+ }
181
+ catch (e) {
182
+ results.push(`❌ Failed config ${config.name}: ${e}`);
183
+ }
184
+ }
185
+ return results.join('\n');
186
+ }
187
+ catch (error) {
188
+ return `Failed to create configurations: ${error}`;
189
+ }
190
+ },
191
+ }
192
+ ];
193
+ //# sourceMappingURL=enhanced-drawing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhanced-drawing.js","sourceRoot":"","sources":["../../src/tools/enhanced-drawing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { z } from 'zod';
2
+ import { SolidWorksAPI } from '../solidworks/api.js';
3
+ export declare const macroSecurityTools: {
4
+ name: string;
5
+ description: string;
6
+ inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
7
+ handler: (args: any, swApi: SolidWorksAPI) => string;
8
+ }[];
9
+ //# sourceMappingURL=macro-security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"macro-security.d.ts","sourceRoot":"","sources":["../../src/tools/macro-security.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,eAAO,MAAM,kBAAkB;;;;oBAwCX,GAAG,SAAS,aAAa;GAgD5C,CAAC"}
@@ -0,0 +1,86 @@
1
+ import { z } from 'zod';
2
+ export const macroSecurityTools = [
3
+ {
4
+ name: 'macro_set_security',
5
+ description: 'Attempt to set macro security level',
6
+ inputSchema: z.object({
7
+ level: z.enum(['low', 'medium', 'high']).describe('Security level to set'),
8
+ }),
9
+ handler: (args, swApi) => {
10
+ try {
11
+ const swApp = swApi.swApp;
12
+ if (!swApp) {
13
+ throw new Error('Not connected to SolidWorks');
14
+ }
15
+ const levels = { 'low': 0, 'medium': 1, 'high': 2 };
16
+ const targetLevel = levels[args.level];
17
+ // Try to set the macro security level
18
+ // 77 = swUserPreferenceIntegerValue_e.swMacroSecurityLevel
19
+ try {
20
+ swApp.SetUserPreferenceIntegerValue(77, targetLevel);
21
+ // Verify the change
22
+ const newLevel = swApp.GetUserPreferenceIntegerValue(77);
23
+ const levelNames = ['Low', 'Medium', 'High'];
24
+ return `Macro security set to: ${levelNames[newLevel]}. You may need to restart SolidWorks for changes to take effect.`;
25
+ }
26
+ catch (e) {
27
+ return `Could not change security level: ${e}. You may need to change it manually in SolidWorks.`;
28
+ }
29
+ }
30
+ catch (error) {
31
+ return `Failed to set security: ${error}`;
32
+ }
33
+ },
34
+ },
35
+ {
36
+ name: 'macro_get_security_info',
37
+ description: 'Get detailed macro security information',
38
+ inputSchema: z.object({}),
39
+ handler: (args, swApi) => {
40
+ try {
41
+ const swApp = swApi.swApp;
42
+ if (!swApp) {
43
+ throw new Error('Not connected to SolidWorks');
44
+ }
45
+ const info = [];
46
+ // Get current security level
47
+ try {
48
+ const level = swApp.GetUserPreferenceIntegerValue(77);
49
+ const levels = ['Low (All macros run)', 'Medium (Prompt for macros)', 'High (Macros disabled)'];
50
+ info.push(`Current Security Level: ${levels[level] || 'Unknown'}`);
51
+ }
52
+ catch (e) {
53
+ info.push(`Could not read security level: ${e}`);
54
+ }
55
+ // Check if VBA is enabled
56
+ try {
57
+ // 197 = swUserPreferenceToggle_e.swMacroEnable
58
+ const vbaEnabled = swApp.GetUserPreferenceToggle(197);
59
+ info.push(`VBA Macros Enabled: ${vbaEnabled ? 'Yes' : 'No'}`);
60
+ }
61
+ catch (e) {
62
+ info.push(`Could not check VBA status: ${e}`);
63
+ }
64
+ // Try to enable VBA if disabled
65
+ try {
66
+ swApp.SetUserPreferenceToggle(197, true);
67
+ info.push('Attempted to enable VBA macros');
68
+ }
69
+ catch (e) {
70
+ info.push(`Could not enable VBA: ${e}`);
71
+ }
72
+ info.push('\nTo manually change security in SolidWorks 2023:');
73
+ info.push('1. Tools → Add-Ins → Check "SolidWorks API SDK"');
74
+ info.push('2. Tools → Macro → Security (if available)');
75
+ info.push('3. Or Tools → Options → System Options');
76
+ info.push('4. Look for "Enable VBA macros" checkbox');
77
+ info.push('5. Set "Macro security" to Low or Medium');
78
+ return info.join('\n');
79
+ }
80
+ catch (error) {
81
+ return `Failed to get security info: ${error}`;
82
+ }
83
+ },
84
+ },
85
+ ];
86
+ //# sourceMappingURL=macro-security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"macro-security.js","sourceRoot":"","sources":["../../src/tools/macro-security.ts"],"names":[],"mappings":"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"}