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.
- package/README.md +33 -10
- package/dist/application/services/command-bus.d.ts +39 -0
- package/dist/application/services/command-bus.d.ts.map +1 -0
- package/dist/application/services/command-bus.js +88 -0
- package/dist/application/services/command-bus.js.map +1 -0
- package/dist/application/services/event-bus.d.ts +31 -0
- package/dist/application/services/event-bus.d.ts.map +1 -0
- package/dist/application/services/event-bus.js +83 -0
- package/dist/application/services/event-bus.js.map +1 -0
- package/dist/application/services/query-bus.d.ts +30 -0
- package/dist/application/services/query-bus.d.ts.map +1 -0
- package/dist/application/services/query-bus.js +59 -0
- package/dist/application/services/query-bus.js.map +1 -0
- package/dist/application/services/tool-registry.d.ts +53 -0
- package/dist/application/services/tool-registry.d.ts.map +1 -0
- package/dist/application/services/tool-registry.js +81 -0
- package/dist/application/services/tool-registry.js.map +1 -0
- package/dist/application/use-cases/analysis/index.d.ts +13 -0
- package/dist/application/use-cases/analysis/index.d.ts.map +1 -0
- package/dist/application/use-cases/analysis/index.js +17 -0
- package/dist/application/use-cases/analysis/index.js.map +1 -0
- package/dist/application/use-cases/drawing/index.d.ts +13 -0
- package/dist/application/use-cases/drawing/index.d.ts.map +1 -0
- package/dist/application/use-cases/drawing/index.js +17 -0
- package/dist/application/use-cases/drawing/index.js.map +1 -0
- package/dist/application/use-cases/export/index.d.ts +13 -0
- package/dist/application/use-cases/export/index.d.ts.map +1 -0
- package/dist/application/use-cases/export/index.js +17 -0
- package/dist/application/use-cases/export/index.js.map +1 -0
- package/dist/application/use-cases/macro/index.d.ts +13 -0
- package/dist/application/use-cases/macro/index.d.ts.map +1 -0
- package/dist/application/use-cases/macro/index.js +17 -0
- package/dist/application/use-cases/macro/index.js.map +1 -0
- package/dist/application/use-cases/modeling/index.d.ts +56 -0
- package/dist/application/use-cases/modeling/index.d.ts.map +1 -0
- package/dist/application/use-cases/modeling/index.js +385 -0
- package/dist/application/use-cases/modeling/index.js.map +1 -0
- package/dist/core/interfaces/core-abstractions.d.ts +289 -0
- package/dist/core/interfaces/core-abstractions.d.ts.map +1 -0
- package/dist/core/interfaces/core-abstractions.js +121 -0
- package/dist/core/interfaces/core-abstractions.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -4
- package/dist/index.js.map +1 -1
- package/dist/index.refactored.d.ts +7 -0
- package/dist/index.refactored.d.ts.map +1 -0
- package/dist/index.refactored.js +254 -0
- package/dist/index.refactored.js.map +1 -0
- package/dist/infrastructure/config/configuration-manager.d.ts +381 -0
- package/dist/infrastructure/config/configuration-manager.d.ts.map +1 -0
- package/dist/infrastructure/config/configuration-manager.js +566 -0
- package/dist/infrastructure/config/configuration-manager.js.map +1 -0
- package/dist/infrastructure/container/service-locator.d.ts +14 -0
- package/dist/infrastructure/container/service-locator.d.ts.map +1 -0
- package/dist/infrastructure/container/service-locator.js +38 -0
- package/dist/infrastructure/container/service-locator.js.map +1 -0
- package/dist/infrastructure/logging/logger.d.ts +24 -0
- package/dist/infrastructure/logging/logger.d.ts.map +1 -0
- package/dist/infrastructure/logging/logger.js +65 -0
- package/dist/infrastructure/logging/logger.js.map +1 -0
- package/dist/infrastructure/solidworks/solidworks-adapter.d.ts +43 -0
- package/dist/infrastructure/solidworks/solidworks-adapter.d.ts.map +1 -0
- package/dist/infrastructure/solidworks/solidworks-adapter.js +527 -0
- package/dist/infrastructure/solidworks/solidworks-adapter.js.map +1 -0
- package/dist/presentation/mcp/request-handler.d.ts +41 -0
- package/dist/presentation/mcp/request-handler.d.ts.map +1 -0
- package/dist/presentation/mcp/request-handler.js +100 -0
- package/dist/presentation/mcp/request-handler.js.map +1 -0
- package/dist/presentation/transformers/error-transformer.d.ts +16 -0
- package/dist/presentation/transformers/error-transformer.d.ts.map +1 -0
- package/dist/presentation/transformers/error-transformer.js +44 -0
- package/dist/presentation/transformers/error-transformer.js.map +1 -0
- package/dist/presentation/transformers/response-transformer.d.ts +24 -0
- package/dist/presentation/transformers/response-transformer.d.ts.map +1 -0
- package/dist/presentation/transformers/response-transformer.js +102 -0
- package/dist/presentation/transformers/response-transformer.js.map +1 -0
- package/dist/shared/constants/solidworks-constants.d.ts +302 -0
- package/dist/shared/constants/solidworks-constants.d.ts.map +1 -0
- package/dist/shared/constants/solidworks-constants.js +471 -0
- package/dist/shared/constants/solidworks-constants.js.map +1 -0
- package/dist/tools/diagnostics.d.ts +21 -0
- package/dist/tools/diagnostics.d.ts.map +1 -0
- package/dist/tools/diagnostics.js +120 -0
- package/dist/tools/diagnostics.js.map +1 -0
- package/dist/tools/drawing-analysis.d.ts +9 -0
- package/dist/tools/drawing-analysis.d.ts.map +1 -0
- package/dist/tools/drawing-analysis.js +239 -0
- package/dist/tools/drawing-analysis.js.map +1 -0
- package/dist/tools/enhanced-drawing.d.ts +51 -0
- package/dist/tools/enhanced-drawing.d.ts.map +1 -0
- package/dist/tools/enhanced-drawing.js +193 -0
- package/dist/tools/enhanced-drawing.js.map +1 -0
- package/dist/tools/macro-security.d.ts +9 -0
- package/dist/tools/macro-security.d.ts.map +1 -0
- package/dist/tools/macro-security.js +86 -0
- package/dist/tools/macro-security.js.map +1 -0
- package/dist/tools/native-macro.d.ts +149 -0
- package/dist/tools/native-macro.d.ts.map +1 -0
- package/dist/tools/native-macro.js +654 -0
- package/dist/tools/native-macro.js.map +1 -0
- package/dist/tools/sketch.d.ts +663 -0
- package/dist/tools/sketch.d.ts.map +1 -0
- package/dist/tools/sketch.js +815 -0
- package/dist/tools/sketch.js.map +1 -0
- package/dist/tools/template-manager.d.ts +231 -0
- package/dist/tools/template-manager.d.ts.map +1 -0
- package/dist/tools/template-manager.js +626 -0
- package/dist/tools/template-manager.js.map +1 -0
- 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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,8CAA8C;QAC3D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACjD,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YACpC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;SAC9D,CAAC;QACF,OAAO,EAAE,CAAC,IAAS,EAAE,KAAoB,EAAE,EAAE;YAC3C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;gBACtC,IAAI,CAAC,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBAE/C,MAAM,OAAO,GAAG,KAAK,CAAC;gBACtB,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;gBAEpC,mBAAmB;gBACnB,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpC,OAAO,UAAU,EAAE,CAAC;oBAClB,IAAI,UAAU,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAC5C,MAAM;oBACR,CAAC;oBACD,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;gBACxC,CAAC;gBAED,IAAI,CAAC,UAAU;oBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBAEnD,6BAA6B;gBAC7B,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBAE/B,qCAAqC;gBACrC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAErD,IAAI,GAAG,EAAE,CAAC;oBACR,8CAA8C;oBAC9C,MAAM,OAAO,GAAG;wBACd,iBAAiB,EAAY,sBAAsB;wBACnD,YAAY,EAAkB,oBAAoB;wBAClD,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAK,mBAAmB;wBACjD,aAAa,EAAgB,yBAAyB;wBACtD,wCAAwC,CAAC,oBAAoB;qBAC9D,CAAC;oBAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;wBAC7B,IAAI,CAAC;4BACH,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;4BACpC,OAAO,CAAC,GAAG,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;4BACxD,MAAM;wBACR,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACX,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC;4BACxC,SAAS;wBACX,CAAC;oBACH,CAAC;oBAED,iCAAiC;oBACjC,IAAI,CAAC;wBACH,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,sBAAsB;oBAC/C,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;oBAC9C,CAAC;gBACH,CAAC;gBAED,OAAO,0BAA0B,CAAC;YACpC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,qCAAqC,KAAK,EAAE,CAAC;YACtD,CAAC;QACH,CAAC;KACF;IAED;QACE,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,0CAA0C;QACvD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SACnE,CAAC;QACF,OAAO,EAAE,CAAC,IAAS,EAAE,KAAoB,EAAE,EAAE;YAC3C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;gBACtC,IAAI,CAAC,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBAE/C,MAAM,OAAO,GAAG,KAAK,CAAC;gBACtB,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;gBAEpC,mBAAmB;gBACnB,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACpC,OAAO,UAAU,EAAE,CAAC;oBAClB,IAAI,UAAU,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAC5C,MAAM;oBACR,CAAC;oBACD,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;gBACxC,CAAC;gBAED,IAAI,CAAC,UAAU;oBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBAEnD,MAAM,OAAO,GAAa,EAAE,CAAC;gBAE7B,gDAAgD;gBAChD,IAAI,CAAC;oBACH,UAAU,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,aAAa;oBACjE,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gBACrC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBAED,2BAA2B;gBAC3B,IAAI,CAAC;oBACH,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,YAAY;oBACvC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACtC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;gBAC1C,CAAC;gBAED,4CAA4C;gBAC5C,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,UAAU,CAAC,cAAc,EAAE,CAAC;oBAC7C,IAAI,QAAQ,EAAE,CAAC;wBACb,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,4BAA4B;wBAC9D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;4BAC3B,IAAI,CAAC;gCACH,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gCAChC,OAAO,CAAC,IAAI,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;gCAC7C,MAAM;4BACR,CAAC;4BAAC,OAAO,CAAC,EAAE,CAAC;gCACX,SAAS;4BACX,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;gBAC3C,CAAC;gBAED,4CAA4C;gBAC5C,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,KAAK,CAAC,sBAAsB,EAAE,CAAC;oBAC9C,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,CAAC,kCAAkC,GAAG,IAAI,CAAC;wBACjD,MAAM,CAAC,qBAAqB,GAAG,WAAW,CAAC;wBAC3C,OAAO,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;oBAC3D,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,CAAC,CAAC;gBACpD,CAAC;gBAED,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,4BAA4B,KAAK,EAAE,CAAC;YAC7C,CAAC;QACH,CAAC;KACF;IAED;QACE,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,gDAAgD;QAC7D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;gBACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;gBAChB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;gBAC3B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;gBAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;aACtB,CAAC,CAAC;SACJ,CAAC;QACF,OAAO,EAAE,CAAC,IAAS,EAAE,KAAoB,EAAE,EAAE;YAC3C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;gBACtC,IAAI,CAAC,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;gBAE7C,MAAM,OAAO,GAAa,EAAE,CAAC;gBAE7B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClC,IAAI,CAAC;wBACH,uBAAuB;wBACvB,MAAM,SAAS,GAAG,KAAK,CAAC,iBAAiB,CACvC,MAAM,CAAC,IAAI,EACX,OAAO,MAAM,CAAC,eAAe,SAAS,MAAM,CAAC,cAAc,EAAE,EAC7D,EAAE,EACF,CAAC,EACD,EAAE,CACH,CAAC;wBAEF,IAAI,SAAS,EAAE,CAAC;4BACd,yBAAyB;4BACzB,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;4BAEtC,iBAAiB;4BACjB,KAAK,CAAC,YAAY,CAAC,+CAA+C,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;4BAC5F,KAAK,CAAC,YAAY,CAAC,8CAA8C,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;4BAC1F,KAAK,CAAC,YAAY,CAAC,8CAA8C,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;4BAErF,UAAU;4BACV,KAAK,CAAC,YAAY,EAAE,CAAC;4BAErB,OAAO,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;wBACnD,CAAC;oBACH,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,OAAO,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;oBACvD,CAAC;gBACH,CAAC;gBAED,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,oCAAoC,KAAK,EAAE,CAAC;YACrD,CAAC;QACH,CAAC;KACF;CACF,CAAC"}
|
|
@@ -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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"}
|