solidworks-mcp-server 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/LICENSE +21 -0
- package/README.md +333 -0
- package/dist/cache/manager.d.ts +50 -0
- package/dist/cache/manager.d.ts.map +1 -0
- package/dist/cache/manager.js +127 -0
- package/dist/cache/manager.js.map +1 -0
- package/dist/db/connection.d.ts +48 -0
- package/dist/db/connection.d.ts.map +1 -0
- package/dist/db/connection.js +132 -0
- package/dist/db/connection.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +402 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge/chromadb.d.ts +16 -0
- package/dist/knowledge/chromadb.d.ts.map +1 -0
- package/dist/knowledge/chromadb.js +80 -0
- package/dist/knowledge/chromadb.js.map +1 -0
- package/dist/macro/index.d.ts +6 -0
- package/dist/macro/index.d.ts.map +1 -0
- package/dist/macro/index.js +6 -0
- package/dist/macro/index.js.map +1 -0
- package/dist/macro/recorder.d.ts +72 -0
- package/dist/macro/recorder.d.ts.map +1 -0
- package/dist/macro/recorder.js +228 -0
- package/dist/macro/recorder.js.map +1 -0
- package/dist/macro/types.d.ts +77 -0
- package/dist/macro/types.d.ts.map +1 -0
- package/dist/macro/types.js +5 -0
- package/dist/macro/types.js.map +1 -0
- package/dist/resources/base.d.ts +116 -0
- package/dist/resources/base.d.ts.map +1 -0
- package/dist/resources/base.js +161 -0
- package/dist/resources/base.js.map +1 -0
- package/dist/resources/design-table.d.ts +384 -0
- package/dist/resources/design-table.d.ts.map +1 -0
- package/dist/resources/design-table.js +337 -0
- package/dist/resources/design-table.js.map +1 -0
- package/dist/resources/pdm.d.ts +1277 -0
- package/dist/resources/pdm.d.ts.map +1 -0
- package/dist/resources/pdm.js +358 -0
- package/dist/resources/pdm.js.map +1 -0
- package/dist/resources/registry.d.ts +59 -0
- package/dist/resources/registry.d.ts.map +1 -0
- package/dist/resources/registry.js +88 -0
- package/dist/resources/registry.js.map +1 -0
- package/dist/solidworks/api.d.ts +24 -0
- package/dist/solidworks/api.d.ts.map +1 -0
- package/dist/solidworks/api.js +226 -0
- package/dist/solidworks/api.js.map +1 -0
- package/dist/solidworks/types.d.ts +55 -0
- package/dist/solidworks/types.d.ts.map +1 -0
- package/dist/solidworks/types.js +2 -0
- package/dist/solidworks/types.js.map +1 -0
- package/dist/state/store.d.ts +101 -0
- package/dist/state/store.d.ts.map +1 -0
- package/dist/state/store.js +262 -0
- package/dist/state/store.js.map +1 -0
- package/dist/tools/analysis.d.ts +37 -0
- package/dist/tools/analysis.d.ts.map +1 -0
- package/dist/tools/analysis.js +169 -0
- package/dist/tools/analysis.js.map +1 -0
- package/dist/tools/drawing.d.ts +151 -0
- package/dist/tools/drawing.d.ts.map +1 -0
- package/dist/tools/drawing.js +171 -0
- package/dist/tools/drawing.js.map +1 -0
- package/dist/tools/export.d.ts +97 -0
- package/dist/tools/export.d.ts.map +1 -0
- package/dist/tools/export.js +128 -0
- package/dist/tools/export.js.map +1 -0
- package/dist/tools/modeling.d.ts +9 -0
- package/dist/tools/modeling.d.ts.map +1 -0
- package/dist/tools/modeling.js +120 -0
- package/dist/tools/modeling.js.map +1 -0
- package/dist/tools/vba.d.ts +123 -0
- package/dist/tools/vba.d.ts.map +1 -0
- package/dist/tools/vba.js +158 -0
- package/dist/tools/vba.js.map +1 -0
- package/dist/utils/config.d.ts +18 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +26 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/logger.d.ts +14 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +84 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Design Table Resource for SolidWorks MCP
|
|
3
|
+
* Manages design tables with SQL database integration
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { SolidWorksResource, ResourceStatus } from './base.js';
|
|
7
|
+
import { dbManager } from '../db/connection.js';
|
|
8
|
+
import { logger } from '../utils/logger.js';
|
|
9
|
+
// Schema for design table configuration
|
|
10
|
+
const DesignTableSchema = z.object({
|
|
11
|
+
tableName: z.string().min(1),
|
|
12
|
+
fileName: z.string().optional(),
|
|
13
|
+
parameters: z.array(z.object({
|
|
14
|
+
name: z.string(),
|
|
15
|
+
type: z.enum(['dimension', 'feature', 'configuration', 'custom']),
|
|
16
|
+
dataType: z.enum(['number', 'string', 'boolean']),
|
|
17
|
+
defaultValue: z.any().optional(),
|
|
18
|
+
sqlColumn: z.string().optional(),
|
|
19
|
+
formula: z.string().optional()
|
|
20
|
+
})),
|
|
21
|
+
configurations: z.array(z.object({
|
|
22
|
+
name: z.string(),
|
|
23
|
+
values: z.record(z.any()),
|
|
24
|
+
active: z.boolean().default(false)
|
|
25
|
+
})).optional(),
|
|
26
|
+
dataSource: z.object({
|
|
27
|
+
type: z.enum(['file', 'sql', 'api', 'manual']),
|
|
28
|
+
connectionString: z.string().optional(),
|
|
29
|
+
query: z.string().optional(),
|
|
30
|
+
filePath: z.string().optional(),
|
|
31
|
+
apiEndpoint: z.string().optional(),
|
|
32
|
+
refreshInterval: z.number().optional()
|
|
33
|
+
}).optional(),
|
|
34
|
+
autoUpdate: z.boolean().default(false),
|
|
35
|
+
validation: z.object({
|
|
36
|
+
enabled: z.boolean().default(true),
|
|
37
|
+
rules: z.array(z.object({
|
|
38
|
+
parameter: z.string(),
|
|
39
|
+
rule: z.string(),
|
|
40
|
+
message: z.string()
|
|
41
|
+
})).optional()
|
|
42
|
+
}).optional()
|
|
43
|
+
});
|
|
44
|
+
export class DesignTableResource extends SolidWorksResource {
|
|
45
|
+
type = 'design-table';
|
|
46
|
+
schema = DesignTableSchema;
|
|
47
|
+
sqlConnection = null;
|
|
48
|
+
constructor(id, name, properties) {
|
|
49
|
+
super(id, name, properties);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Execute design table operations
|
|
53
|
+
*/
|
|
54
|
+
async execute(api) {
|
|
55
|
+
this.setStatus(ResourceStatus.EXECUTING);
|
|
56
|
+
try {
|
|
57
|
+
const config = this._properties;
|
|
58
|
+
// Load data from SQL if configured
|
|
59
|
+
if (config.dataSource?.type === 'sql') {
|
|
60
|
+
await this.loadFromSQL(config.dataSource);
|
|
61
|
+
}
|
|
62
|
+
// Create or update design table in SolidWorks
|
|
63
|
+
const result = await this.updateDesignTable(api, config);
|
|
64
|
+
this.setStatus(ResourceStatus.COMPLETED);
|
|
65
|
+
this.setOutputs({
|
|
66
|
+
tableId: result.tableId,
|
|
67
|
+
configurationsCreated: result.configurations,
|
|
68
|
+
parametersUpdated: result.parameters,
|
|
69
|
+
timestamp: new Date().toISOString()
|
|
70
|
+
});
|
|
71
|
+
return result;
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
this.setStatus(ResourceStatus.FAILED);
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Load data from SQL database
|
|
80
|
+
*/
|
|
81
|
+
async loadFromSQL(dataSource) {
|
|
82
|
+
if (!dataSource.connectionString || !dataSource.query) {
|
|
83
|
+
throw new Error('SQL connection string and query are required');
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
// Create database connection
|
|
87
|
+
const connection = await dbManager.createConnection(`design_table_${this.id}`, dataSource.connectionString);
|
|
88
|
+
// Execute query
|
|
89
|
+
const data = await connection.query(dataSource.query);
|
|
90
|
+
// Map SQL results to configurations
|
|
91
|
+
const configurations = data.map((row, index) => ({
|
|
92
|
+
name: row.config_name || row.name || `Config_${index + 1}`,
|
|
93
|
+
values: this.mapSQLToParameters(row),
|
|
94
|
+
active: index === 0
|
|
95
|
+
}));
|
|
96
|
+
// Update properties with loaded configurations
|
|
97
|
+
this._properties.configurations = configurations;
|
|
98
|
+
logger.info(`Loaded ${configurations.length} configurations from SQL`);
|
|
99
|
+
// Close connection
|
|
100
|
+
await dbManager.closeConnection(`design_table_${this.id}`);
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
logger.error('Failed to load from SQL', error);
|
|
104
|
+
// Fallback to simulated data for testing
|
|
105
|
+
const simulatedData = await this.getSimulatedData();
|
|
106
|
+
const configurations = simulatedData.map((row, index) => ({
|
|
107
|
+
name: row.config_name || `Config_${index + 1}`,
|
|
108
|
+
values: this.mapSQLToParameters(row),
|
|
109
|
+
active: index === 0
|
|
110
|
+
}));
|
|
111
|
+
this._properties.configurations = configurations;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get simulated data for testing
|
|
116
|
+
*/
|
|
117
|
+
async getSimulatedData() {
|
|
118
|
+
// Fallback data for when database is not available
|
|
119
|
+
return [
|
|
120
|
+
{
|
|
121
|
+
config_name: 'Standard',
|
|
122
|
+
length: 100,
|
|
123
|
+
width: 50,
|
|
124
|
+
height: 25,
|
|
125
|
+
material: 'Steel',
|
|
126
|
+
finish: 'Painted'
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
config_name: 'Large',
|
|
130
|
+
length: 150,
|
|
131
|
+
width: 75,
|
|
132
|
+
height: 40,
|
|
133
|
+
material: 'Aluminum',
|
|
134
|
+
finish: 'Anodized'
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
config_name: 'Custom',
|
|
138
|
+
length: 120,
|
|
139
|
+
width: 60,
|
|
140
|
+
height: 30,
|
|
141
|
+
material: 'Steel',
|
|
142
|
+
finish: 'Powder Coated'
|
|
143
|
+
}
|
|
144
|
+
];
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Map SQL row data to design table parameters
|
|
148
|
+
*/
|
|
149
|
+
mapSQLToParameters(row) {
|
|
150
|
+
const config = this._properties;
|
|
151
|
+
const values = {};
|
|
152
|
+
for (const param of config.parameters) {
|
|
153
|
+
if (param.sqlColumn && row[param.sqlColumn] !== undefined) {
|
|
154
|
+
values[param.name] = this.convertValue(row[param.sqlColumn], param.dataType);
|
|
155
|
+
}
|
|
156
|
+
else if (param.formula) {
|
|
157
|
+
values[param.name] = this.evaluateFormula(param.formula, row);
|
|
158
|
+
}
|
|
159
|
+
else if (param.defaultValue !== undefined) {
|
|
160
|
+
values[param.name] = param.defaultValue;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
return values;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Convert value to appropriate data type
|
|
167
|
+
*/
|
|
168
|
+
convertValue(value, dataType) {
|
|
169
|
+
switch (dataType) {
|
|
170
|
+
case 'number':
|
|
171
|
+
return Number(value);
|
|
172
|
+
case 'boolean':
|
|
173
|
+
return Boolean(value);
|
|
174
|
+
case 'string':
|
|
175
|
+
default:
|
|
176
|
+
return String(value);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Evaluate formula with row data
|
|
181
|
+
*/
|
|
182
|
+
evaluateFormula(formula, row) {
|
|
183
|
+
// Simple formula evaluation (expand as needed)
|
|
184
|
+
let result = formula;
|
|
185
|
+
for (const [key, value] of Object.entries(row)) {
|
|
186
|
+
result = result.replace(`{${key}}`, String(value));
|
|
187
|
+
}
|
|
188
|
+
return result;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Update design table in SolidWorks
|
|
192
|
+
*/
|
|
193
|
+
async updateDesignTable(api, config) {
|
|
194
|
+
// This would interact with actual SolidWorks API
|
|
195
|
+
return {
|
|
196
|
+
tableId: this.id,
|
|
197
|
+
configurations: config.configurations?.map(c => c.name) || [],
|
|
198
|
+
parameters: config.parameters.map(p => p.name)
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Convert to VBA code
|
|
203
|
+
*/
|
|
204
|
+
toVBACode() {
|
|
205
|
+
const config = this._properties;
|
|
206
|
+
const vbaLines = [
|
|
207
|
+
`' Design Table: ${this.name}`,
|
|
208
|
+
`Sub CreateDesignTable_${this.sanitizeName(this.name)}()`,
|
|
209
|
+
' Dim swApp As SldWorks.SldWorks',
|
|
210
|
+
' Dim swModel As SldWorks.ModelDoc2',
|
|
211
|
+
' Dim swDesignTable As SldWorks.DesignTable',
|
|
212
|
+
' ',
|
|
213
|
+
' Set swApp = Application.SldWorks',
|
|
214
|
+
' Set swModel = swApp.ActiveDoc',
|
|
215
|
+
' ',
|
|
216
|
+
' \' Create design table',
|
|
217
|
+
` Set swDesignTable = swModel.InsertDesignTable("${config.tableName}", True, False)`,
|
|
218
|
+
' '
|
|
219
|
+
];
|
|
220
|
+
// Add parameters
|
|
221
|
+
for (const param of config.parameters) {
|
|
222
|
+
vbaLines.push(` ' Add parameter: ${param.name}`);
|
|
223
|
+
vbaLines.push(` swDesignTable.AddParameter "${param.name}", "${param.type}"`);
|
|
224
|
+
}
|
|
225
|
+
// Add configurations
|
|
226
|
+
if (config.configurations) {
|
|
227
|
+
vbaLines.push(' ');
|
|
228
|
+
vbaLines.push(' \' Add configurations');
|
|
229
|
+
for (const cfg of config.configurations) {
|
|
230
|
+
vbaLines.push(` swDesignTable.AddConfiguration "${cfg.name}"`);
|
|
231
|
+
for (const [key, value] of Object.entries(cfg.values)) {
|
|
232
|
+
vbaLines.push(` swDesignTable.SetCellValue "${cfg.name}", "${key}", "${value}"`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
vbaLines.push(' ');
|
|
237
|
+
vbaLines.push(' swDesignTable.UpdateTable');
|
|
238
|
+
vbaLines.push('End Sub');
|
|
239
|
+
return vbaLines.join('\n');
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Convert to macro code
|
|
243
|
+
*/
|
|
244
|
+
toMacroCode() {
|
|
245
|
+
const config = this._properties;
|
|
246
|
+
return JSON.stringify({
|
|
247
|
+
type: 'design-table',
|
|
248
|
+
name: this.name,
|
|
249
|
+
actions: [
|
|
250
|
+
{
|
|
251
|
+
action: 'create-design-table',
|
|
252
|
+
parameters: {
|
|
253
|
+
tableName: config.tableName,
|
|
254
|
+
parameters: config.parameters,
|
|
255
|
+
configurations: config.configurations
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
]
|
|
259
|
+
}, null, 2);
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Get required capabilities
|
|
263
|
+
*/
|
|
264
|
+
getRequiredCapabilities() {
|
|
265
|
+
const config = this._properties;
|
|
266
|
+
const capabilities = ['design-table'];
|
|
267
|
+
if (config.dataSource?.type === 'sql') {
|
|
268
|
+
capabilities.push('sql-integration');
|
|
269
|
+
}
|
|
270
|
+
if (config.autoUpdate) {
|
|
271
|
+
capabilities.push('auto-update');
|
|
272
|
+
}
|
|
273
|
+
return capabilities;
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Sanitize name for VBA
|
|
277
|
+
*/
|
|
278
|
+
sanitizeName(name) {
|
|
279
|
+
return name.replace(/[^a-zA-Z0-9_]/g, '_');
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Refresh data from source
|
|
283
|
+
*/
|
|
284
|
+
async refresh(api) {
|
|
285
|
+
const config = this._properties;
|
|
286
|
+
if (config.dataSource?.type === 'sql') {
|
|
287
|
+
await this.loadFromSQL(config.dataSource);
|
|
288
|
+
await this.updateDesignTable(api, config);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Validate design table configuration
|
|
293
|
+
*/
|
|
294
|
+
validateConfiguration() {
|
|
295
|
+
const result = super.validate();
|
|
296
|
+
if (!result.valid) {
|
|
297
|
+
return result;
|
|
298
|
+
}
|
|
299
|
+
const config = this._properties;
|
|
300
|
+
const warnings = [];
|
|
301
|
+
// Check for parameter conflicts
|
|
302
|
+
const paramNames = new Set();
|
|
303
|
+
for (const param of config.parameters) {
|
|
304
|
+
if (paramNames.has(param.name)) {
|
|
305
|
+
warnings.push({
|
|
306
|
+
path: `parameters.${param.name}`,
|
|
307
|
+
message: `Duplicate parameter name: ${param.name}`
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
paramNames.add(param.name);
|
|
311
|
+
}
|
|
312
|
+
// Validate SQL configuration
|
|
313
|
+
if (config.dataSource?.type === 'sql') {
|
|
314
|
+
if (!config.dataSource.connectionString) {
|
|
315
|
+
warnings.push({
|
|
316
|
+
path: 'dataSource.connectionString',
|
|
317
|
+
message: 'SQL connection string is required for SQL data source'
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
if (!config.dataSource.query) {
|
|
321
|
+
warnings.push({
|
|
322
|
+
path: 'dataSource.query',
|
|
323
|
+
message: 'SQL query is required for SQL data source'
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
return {
|
|
328
|
+
valid: warnings.length === 0,
|
|
329
|
+
warnings: warnings.length > 0 ? warnings : undefined
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
// Type guard
|
|
334
|
+
export function isDesignTableResource(resource) {
|
|
335
|
+
return resource instanceof DesignTableResource;
|
|
336
|
+
}
|
|
337
|
+
//# sourceMappingURL=design-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-table.js","sourceRoot":"","sources":["../../src/resources/design-table.ts"],"names":[],"mappings":"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"}
|