solidworks-mcp-server 2.2.0 → 3.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/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.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/resources/design-table.d.ts +28 -28
- package/dist/resources/pdm.d.ts +70 -70
- 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/drawing.d.ts +4 -4
- 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/export.d.ts +6 -6
- 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/vba-advanced.d.ts +12 -12
- package/dist/tools/vba-assembly.d.ts +8 -8
- package/dist/tools/vba-drawing.d.ts +14 -14
- package/dist/tools/vba-file-management.d.ts +16 -16
- package/dist/tools/vba-part.d.ts +10 -10
- package/dist/tools/vba.d.ts +67 -67
- package/package.json +12 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/application/use-cases/drawing/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,kBAAkB,EAClB,OAAO,EACR,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAEvD,qBAAa,eAAe;IAExB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;gBADN,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,OAAO;IAGzB,QAAQ,IAAI,IAAI,EAAE;CAInB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drawing Use Cases
|
|
3
|
+
* Business logic for SolidWorks drawing operations
|
|
4
|
+
*/
|
|
5
|
+
export class DrawingUseCases {
|
|
6
|
+
swAdapter;
|
|
7
|
+
logger;
|
|
8
|
+
constructor(swAdapter, logger) {
|
|
9
|
+
this.swAdapter = swAdapter;
|
|
10
|
+
this.logger = logger;
|
|
11
|
+
}
|
|
12
|
+
getTools() {
|
|
13
|
+
// Placeholder - will be implemented with actual drawing tools
|
|
14
|
+
return [];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/application/use-cases/drawing/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,OAAO,eAAe;IAEhB;IACA;IAFV,YACU,SAA6B,EAC7B,MAAe;QADf,cAAS,GAAT,SAAS,CAAoB;QAC7B,WAAM,GAAN,MAAM,CAAS;IACtB,CAAC;IAEJ,QAAQ;QACN,8DAA8D;QAC9D,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export Use Cases
|
|
3
|
+
* Business logic for SolidWorks export operations
|
|
4
|
+
*/
|
|
5
|
+
import { ISolidWorksAdapter, ILogger } from '../../../core/interfaces/core-abstractions.js';
|
|
6
|
+
import { Tool } from '../../services/tool-registry.js';
|
|
7
|
+
export declare class ExportUseCases {
|
|
8
|
+
private swAdapter;
|
|
9
|
+
private logger;
|
|
10
|
+
constructor(swAdapter: ISolidWorksAdapter, logger: ILogger);
|
|
11
|
+
getTools(): Tool[];
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/application/use-cases/export/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,kBAAkB,EAClB,OAAO,EACR,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAEvD,qBAAa,cAAc;IAEvB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;gBADN,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,OAAO;IAGzB,QAAQ,IAAI,IAAI,EAAE;CAInB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Export Use Cases
|
|
3
|
+
* Business logic for SolidWorks export operations
|
|
4
|
+
*/
|
|
5
|
+
export class ExportUseCases {
|
|
6
|
+
swAdapter;
|
|
7
|
+
logger;
|
|
8
|
+
constructor(swAdapter, logger) {
|
|
9
|
+
this.swAdapter = swAdapter;
|
|
10
|
+
this.logger = logger;
|
|
11
|
+
}
|
|
12
|
+
getTools() {
|
|
13
|
+
// Placeholder - will be implemented with actual export tools
|
|
14
|
+
return [];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/application/use-cases/export/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,OAAO,cAAc;IAEf;IACA;IAFV,YACU,SAA6B,EAC7B,MAAe;QADf,cAAS,GAAT,SAAS,CAAoB;QAC7B,WAAM,GAAN,MAAM,CAAS;IACtB,CAAC;IAEJ,QAAQ;QACN,6DAA6D;QAC7D,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Macro Use Cases
|
|
3
|
+
* Business logic for SolidWorks macro operations
|
|
4
|
+
*/
|
|
5
|
+
import { ISolidWorksAdapter, ILogger } from '../../../core/interfaces/core-abstractions.js';
|
|
6
|
+
import { Tool } from '../../services/tool-registry.js';
|
|
7
|
+
export declare class MacroUseCases {
|
|
8
|
+
private swAdapter;
|
|
9
|
+
private logger;
|
|
10
|
+
constructor(swAdapter: ISolidWorksAdapter, logger: ILogger);
|
|
11
|
+
getTools(): Tool[];
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/application/use-cases/macro/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,kBAAkB,EAClB,OAAO,EACR,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAEvD,qBAAa,aAAa;IAEtB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;gBADN,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,OAAO;IAGzB,QAAQ,IAAI,IAAI,EAAE;CAInB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Macro Use Cases
|
|
3
|
+
* Business logic for SolidWorks macro operations
|
|
4
|
+
*/
|
|
5
|
+
export class MacroUseCases {
|
|
6
|
+
swAdapter;
|
|
7
|
+
logger;
|
|
8
|
+
constructor(swAdapter, logger) {
|
|
9
|
+
this.swAdapter = swAdapter;
|
|
10
|
+
this.logger = logger;
|
|
11
|
+
}
|
|
12
|
+
getTools() {
|
|
13
|
+
// Placeholder - will be implemented with actual macro tools
|
|
14
|
+
return [];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/application/use-cases/macro/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,OAAO,aAAa;IAEd;IACA;IAFV,YACU,SAA6B,EAC7B,MAAe;QADf,cAAS,GAAT,SAAS,CAAoB;QAC7B,WAAM,GAAN,MAAM,CAAS;IACtB,CAAC;IAEJ,QAAQ;QACN,4DAA4D;QAC5D,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Modeling Use Cases
|
|
3
|
+
* Business logic for SolidWorks modeling operations
|
|
4
|
+
*/
|
|
5
|
+
import { ISolidWorksAdapter, ILogger } from '../../../core/interfaces/core-abstractions.js';
|
|
6
|
+
import { Tool } from '../../services/tool-registry.js';
|
|
7
|
+
export declare class ModelingUseCases {
|
|
8
|
+
private swAdapter;
|
|
9
|
+
private logger;
|
|
10
|
+
constructor(swAdapter: ISolidWorksAdapter, logger: ILogger);
|
|
11
|
+
/**
|
|
12
|
+
* Get all modeling tools
|
|
13
|
+
*/
|
|
14
|
+
getTools(): Tool[];
|
|
15
|
+
/**
|
|
16
|
+
* Create new part tool
|
|
17
|
+
*/
|
|
18
|
+
private createPartTool;
|
|
19
|
+
/**
|
|
20
|
+
* Create assembly tool
|
|
21
|
+
*/
|
|
22
|
+
private createAssemblyTool;
|
|
23
|
+
/**
|
|
24
|
+
* Create extrude tool
|
|
25
|
+
*/
|
|
26
|
+
private createExtrudeTool;
|
|
27
|
+
/**
|
|
28
|
+
* Create revolve tool
|
|
29
|
+
*/
|
|
30
|
+
private createRevolveTool;
|
|
31
|
+
/**
|
|
32
|
+
* Create cut extrude tool
|
|
33
|
+
*/
|
|
34
|
+
private createCutExtrudeTool;
|
|
35
|
+
/**
|
|
36
|
+
* Create fillet tool
|
|
37
|
+
*/
|
|
38
|
+
private createFilletTool;
|
|
39
|
+
/**
|
|
40
|
+
* Create chamfer tool
|
|
41
|
+
*/
|
|
42
|
+
private createChamferTool;
|
|
43
|
+
/**
|
|
44
|
+
* Create hole tool
|
|
45
|
+
*/
|
|
46
|
+
private createHoleTool;
|
|
47
|
+
/**
|
|
48
|
+
* Create pattern tool
|
|
49
|
+
*/
|
|
50
|
+
private createPatternTool;
|
|
51
|
+
/**
|
|
52
|
+
* Create mirror tool
|
|
53
|
+
*/
|
|
54
|
+
private createMirrorTool;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/application/use-cases/modeling/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,kBAAkB,EAClB,OAAO,EAIR,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,iCAAiC,CAAC;AAEvD,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;gBADN,SAAS,EAAE,kBAAkB,EAC7B,MAAM,EAAE,OAAO;IAGzB;;OAEG;IACH,QAAQ,IAAI,IAAI,EAAE;IAelB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkCtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwCzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoCzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsC5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoCxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoCzB;;OAEG;IACH,OAAO,CAAC,cAAc;IA4CtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwCzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAmCzB"}
|
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Modeling Use Cases
|
|
3
|
+
* Business logic for SolidWorks modeling operations
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import { ResultUtil } from '../../../core/interfaces/core-abstractions.js';
|
|
7
|
+
export class ModelingUseCases {
|
|
8
|
+
swAdapter;
|
|
9
|
+
logger;
|
|
10
|
+
constructor(swAdapter, logger) {
|
|
11
|
+
this.swAdapter = swAdapter;
|
|
12
|
+
this.logger = logger;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get all modeling tools
|
|
16
|
+
*/
|
|
17
|
+
getTools() {
|
|
18
|
+
return [
|
|
19
|
+
this.createPartTool(),
|
|
20
|
+
this.createAssemblyTool(),
|
|
21
|
+
this.createExtrudeTool(),
|
|
22
|
+
this.createRevolveTool(),
|
|
23
|
+
this.createCutExtrudeTool(),
|
|
24
|
+
this.createFilletTool(),
|
|
25
|
+
this.createChamferTool(),
|
|
26
|
+
this.createHoleTool(),
|
|
27
|
+
this.createPatternTool(),
|
|
28
|
+
this.createMirrorTool()
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Create new part tool
|
|
33
|
+
*/
|
|
34
|
+
createPartTool() {
|
|
35
|
+
return {
|
|
36
|
+
name: 'create_part',
|
|
37
|
+
description: 'Create a new SolidWorks part document',
|
|
38
|
+
category: 'modeling',
|
|
39
|
+
tags: ['part', 'create', 'new'],
|
|
40
|
+
inputSchema: z.object({
|
|
41
|
+
template: z.string().optional().describe('Template path to use'),
|
|
42
|
+
units: z.enum(['mm', 'inch']).default('mm').describe('Unit system'),
|
|
43
|
+
saveAs: z.string().optional().describe('Path to save the part')
|
|
44
|
+
}),
|
|
45
|
+
handler: async (args) => {
|
|
46
|
+
this.logger.info('Creating new part', args);
|
|
47
|
+
const result = await this.swAdapter.createPart();
|
|
48
|
+
if (!ResultUtil.isSuccess(result)) {
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
if (args.saveAs) {
|
|
52
|
+
const saveResult = await this.swAdapter.saveModel(args.saveAs);
|
|
53
|
+
if (!ResultUtil.isSuccess(saveResult)) {
|
|
54
|
+
return saveResult;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return ResultUtil.ok({
|
|
58
|
+
message: 'Part created successfully',
|
|
59
|
+
model: result.data
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Create assembly tool
|
|
66
|
+
*/
|
|
67
|
+
createAssemblyTool() {
|
|
68
|
+
return {
|
|
69
|
+
name: 'create_assembly',
|
|
70
|
+
description: 'Create a new SolidWorks assembly document',
|
|
71
|
+
category: 'modeling',
|
|
72
|
+
tags: ['assembly', 'create', 'new'],
|
|
73
|
+
inputSchema: z.object({
|
|
74
|
+
template: z.string().optional().describe('Template path to use'),
|
|
75
|
+
saveAs: z.string().optional().describe('Path to save the assembly')
|
|
76
|
+
}),
|
|
77
|
+
handler: async (args) => {
|
|
78
|
+
this.logger.info('Creating new assembly', args);
|
|
79
|
+
// Implementation would create assembly
|
|
80
|
+
return ResultUtil.ok({
|
|
81
|
+
message: 'Assembly created successfully'
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Create extrude tool
|
|
88
|
+
*/
|
|
89
|
+
createExtrudeTool() {
|
|
90
|
+
return {
|
|
91
|
+
name: 'create_extrude',
|
|
92
|
+
description: 'Create an extrude feature',
|
|
93
|
+
category: 'modeling',
|
|
94
|
+
tags: ['extrude', 'feature', 'solid'],
|
|
95
|
+
inputSchema: z.object({
|
|
96
|
+
sketch: z.string().describe('Name of the sketch to extrude'),
|
|
97
|
+
depth: z.number().describe('Extrusion depth in mm'),
|
|
98
|
+
direction: z.enum(['blind', 'through', 'midplane']).default('blind'),
|
|
99
|
+
reverse: z.boolean().default(false).describe('Reverse direction'),
|
|
100
|
+
draft: z.number().optional().describe('Draft angle in degrees'),
|
|
101
|
+
taper: z.enum(['none', 'inward', 'outward']).default('none')
|
|
102
|
+
}),
|
|
103
|
+
handler: async (args) => {
|
|
104
|
+
this.logger.info('Creating extrude feature', args);
|
|
105
|
+
const params = {
|
|
106
|
+
type: 'extrude',
|
|
107
|
+
sketch: args.sketch,
|
|
108
|
+
depth: args.depth / 1000, // Convert to meters
|
|
109
|
+
direction: args.direction,
|
|
110
|
+
reverse: args.reverse,
|
|
111
|
+
draft: args.draft,
|
|
112
|
+
taper: args.taper
|
|
113
|
+
};
|
|
114
|
+
const result = await this.swAdapter.createFeature(params);
|
|
115
|
+
if (!ResultUtil.isSuccess(result)) {
|
|
116
|
+
return result;
|
|
117
|
+
}
|
|
118
|
+
return ResultUtil.ok({
|
|
119
|
+
message: `Extrude feature created: ${result.data.name}`,
|
|
120
|
+
feature: result.data
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Create revolve tool
|
|
127
|
+
*/
|
|
128
|
+
createRevolveTool() {
|
|
129
|
+
return {
|
|
130
|
+
name: 'create_revolve',
|
|
131
|
+
description: 'Create a revolve feature',
|
|
132
|
+
category: 'modeling',
|
|
133
|
+
tags: ['revolve', 'feature', 'solid'],
|
|
134
|
+
inputSchema: z.object({
|
|
135
|
+
sketch: z.string().describe('Name of the sketch to revolve'),
|
|
136
|
+
angle: z.number().default(360).describe('Revolution angle in degrees'),
|
|
137
|
+
axis: z.string().optional().describe('Axis of revolution'),
|
|
138
|
+
direction: z.enum(['one', 'both', 'midplane']).default('one')
|
|
139
|
+
}),
|
|
140
|
+
handler: async (args) => {
|
|
141
|
+
this.logger.info('Creating revolve feature', args);
|
|
142
|
+
const params = {
|
|
143
|
+
type: 'revolve',
|
|
144
|
+
sketch: args.sketch,
|
|
145
|
+
angle: args.angle * Math.PI / 180, // Convert to radians
|
|
146
|
+
axis: args.axis,
|
|
147
|
+
direction: args.direction
|
|
148
|
+
};
|
|
149
|
+
const result = await this.swAdapter.createFeature(params);
|
|
150
|
+
if (!ResultUtil.isSuccess(result)) {
|
|
151
|
+
return result;
|
|
152
|
+
}
|
|
153
|
+
return ResultUtil.ok({
|
|
154
|
+
message: `Revolve feature created: ${result.data.name}`,
|
|
155
|
+
feature: result.data
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Create cut extrude tool
|
|
162
|
+
*/
|
|
163
|
+
createCutExtrudeTool() {
|
|
164
|
+
return {
|
|
165
|
+
name: 'create_cut_extrude',
|
|
166
|
+
description: 'Create a cut extrude feature',
|
|
167
|
+
category: 'modeling',
|
|
168
|
+
tags: ['cut', 'extrude', 'feature'],
|
|
169
|
+
inputSchema: z.object({
|
|
170
|
+
sketch: z.string().describe('Name of the sketch to cut'),
|
|
171
|
+
depth: z.number().describe('Cut depth in mm'),
|
|
172
|
+
direction: z.enum(['blind', 'through', 'all']).default('blind'),
|
|
173
|
+
reverse: z.boolean().default(false).describe('Reverse direction'),
|
|
174
|
+
draft: z.number().optional().describe('Draft angle in degrees')
|
|
175
|
+
}),
|
|
176
|
+
handler: async (args) => {
|
|
177
|
+
this.logger.info('Creating cut extrude feature', args);
|
|
178
|
+
const params = {
|
|
179
|
+
type: 'cut_extrude',
|
|
180
|
+
sketch: args.sketch,
|
|
181
|
+
depth: args.depth / 1000, // Convert to meters
|
|
182
|
+
direction: args.direction,
|
|
183
|
+
reverse: args.reverse,
|
|
184
|
+
draft: args.draft
|
|
185
|
+
};
|
|
186
|
+
const result = await this.swAdapter.createFeature(params);
|
|
187
|
+
if (!ResultUtil.isSuccess(result)) {
|
|
188
|
+
return result;
|
|
189
|
+
}
|
|
190
|
+
return ResultUtil.ok({
|
|
191
|
+
message: `Cut extrude feature created: ${result.data.name}`,
|
|
192
|
+
feature: result.data
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Create fillet tool
|
|
199
|
+
*/
|
|
200
|
+
createFilletTool() {
|
|
201
|
+
return {
|
|
202
|
+
name: 'create_fillet',
|
|
203
|
+
description: 'Create a fillet feature',
|
|
204
|
+
category: 'modeling',
|
|
205
|
+
tags: ['fillet', 'feature', 'round'],
|
|
206
|
+
inputSchema: z.object({
|
|
207
|
+
radius: z.number().describe('Fillet radius in mm'),
|
|
208
|
+
edges: z.array(z.string()).optional().describe('Edge names to fillet'),
|
|
209
|
+
faces: z.array(z.string()).optional().describe('Face names to fillet'),
|
|
210
|
+
type: z.enum(['constant', 'variable', 'face']).default('constant')
|
|
211
|
+
}),
|
|
212
|
+
handler: async (args) => {
|
|
213
|
+
this.logger.info('Creating fillet feature', args);
|
|
214
|
+
const params = {
|
|
215
|
+
type: 'fillet',
|
|
216
|
+
radius: args.radius / 1000, // Convert to meters
|
|
217
|
+
edges: args.edges,
|
|
218
|
+
faces: args.faces,
|
|
219
|
+
filletType: args.type
|
|
220
|
+
};
|
|
221
|
+
const result = await this.swAdapter.createFeature(params);
|
|
222
|
+
if (!ResultUtil.isSuccess(result)) {
|
|
223
|
+
return result;
|
|
224
|
+
}
|
|
225
|
+
return ResultUtil.ok({
|
|
226
|
+
message: `Fillet feature created: ${result.data.name}`,
|
|
227
|
+
feature: result.data
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Create chamfer tool
|
|
234
|
+
*/
|
|
235
|
+
createChamferTool() {
|
|
236
|
+
return {
|
|
237
|
+
name: 'create_chamfer',
|
|
238
|
+
description: 'Create a chamfer feature',
|
|
239
|
+
category: 'modeling',
|
|
240
|
+
tags: ['chamfer', 'feature', 'bevel'],
|
|
241
|
+
inputSchema: z.object({
|
|
242
|
+
distance: z.number().describe('Chamfer distance in mm'),
|
|
243
|
+
angle: z.number().default(45).describe('Chamfer angle in degrees'),
|
|
244
|
+
edges: z.array(z.string()).optional().describe('Edge names to chamfer'),
|
|
245
|
+
type: z.enum(['distance', 'angle', 'distance_angle']).default('distance')
|
|
246
|
+
}),
|
|
247
|
+
handler: async (args) => {
|
|
248
|
+
this.logger.info('Creating chamfer feature', args);
|
|
249
|
+
const params = {
|
|
250
|
+
type: 'chamfer',
|
|
251
|
+
distance: args.distance / 1000, // Convert to meters
|
|
252
|
+
angle: args.angle * Math.PI / 180, // Convert to radians
|
|
253
|
+
edges: args.edges,
|
|
254
|
+
chamferType: args.type
|
|
255
|
+
};
|
|
256
|
+
const result = await this.swAdapter.createFeature(params);
|
|
257
|
+
if (!ResultUtil.isSuccess(result)) {
|
|
258
|
+
return result;
|
|
259
|
+
}
|
|
260
|
+
return ResultUtil.ok({
|
|
261
|
+
message: `Chamfer feature created: ${result.data.name}`,
|
|
262
|
+
feature: result.data
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Create hole tool
|
|
269
|
+
*/
|
|
270
|
+
createHoleTool() {
|
|
271
|
+
return {
|
|
272
|
+
name: 'create_hole',
|
|
273
|
+
description: 'Create a hole feature',
|
|
274
|
+
category: 'modeling',
|
|
275
|
+
tags: ['hole', 'feature', 'drill'],
|
|
276
|
+
inputSchema: z.object({
|
|
277
|
+
diameter: z.number().describe('Hole diameter in mm'),
|
|
278
|
+
depth: z.number().describe('Hole depth in mm'),
|
|
279
|
+
position: z.object({
|
|
280
|
+
x: z.number().describe('X coordinate in mm'),
|
|
281
|
+
y: z.number().describe('Y coordinate in mm')
|
|
282
|
+
}),
|
|
283
|
+
type: z.enum(['simple', 'counterbore', 'countersink', 'tapped']).default('simple'),
|
|
284
|
+
throughAll: z.boolean().default(false)
|
|
285
|
+
}),
|
|
286
|
+
handler: async (args) => {
|
|
287
|
+
this.logger.info('Creating hole feature', args);
|
|
288
|
+
const params = {
|
|
289
|
+
type: 'hole',
|
|
290
|
+
diameter: args.diameter / 1000,
|
|
291
|
+
depth: args.throughAll ? -1 : args.depth / 1000,
|
|
292
|
+
position: {
|
|
293
|
+
x: args.position.x / 1000,
|
|
294
|
+
y: args.position.y / 1000
|
|
295
|
+
},
|
|
296
|
+
holeType: args.type,
|
|
297
|
+
throughAll: args.throughAll
|
|
298
|
+
};
|
|
299
|
+
const result = await this.swAdapter.createFeature(params);
|
|
300
|
+
if (!ResultUtil.isSuccess(result)) {
|
|
301
|
+
return result;
|
|
302
|
+
}
|
|
303
|
+
return ResultUtil.ok({
|
|
304
|
+
message: `Hole feature created: ${result.data.name}`,
|
|
305
|
+
feature: result.data
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Create pattern tool
|
|
312
|
+
*/
|
|
313
|
+
createPatternTool() {
|
|
314
|
+
return {
|
|
315
|
+
name: 'create_pattern',
|
|
316
|
+
description: 'Create a pattern feature',
|
|
317
|
+
category: 'modeling',
|
|
318
|
+
tags: ['pattern', 'feature', 'array'],
|
|
319
|
+
inputSchema: z.object({
|
|
320
|
+
feature: z.string().describe('Feature name to pattern'),
|
|
321
|
+
type: z.enum(['linear', 'circular', 'curve', 'table']).describe('Pattern type'),
|
|
322
|
+
count: z.number().min(2).describe('Number of instances'),
|
|
323
|
+
spacing: z.number().optional().describe('Spacing between instances in mm'),
|
|
324
|
+
angle: z.number().optional().describe('Angle for circular pattern in degrees'),
|
|
325
|
+
direction: z.string().optional().describe('Direction reference')
|
|
326
|
+
}),
|
|
327
|
+
handler: async (args) => {
|
|
328
|
+
this.logger.info('Creating pattern feature', args);
|
|
329
|
+
const params = {
|
|
330
|
+
type: 'pattern',
|
|
331
|
+
feature: args.feature,
|
|
332
|
+
patternType: args.type,
|
|
333
|
+
count: args.count,
|
|
334
|
+
spacing: args.spacing ? args.spacing / 1000 : undefined,
|
|
335
|
+
angle: args.angle ? args.angle * Math.PI / 180 : undefined,
|
|
336
|
+
direction: args.direction
|
|
337
|
+
};
|
|
338
|
+
const result = await this.swAdapter.createFeature(params);
|
|
339
|
+
if (!ResultUtil.isSuccess(result)) {
|
|
340
|
+
return result;
|
|
341
|
+
}
|
|
342
|
+
return ResultUtil.ok({
|
|
343
|
+
message: `Pattern feature created: ${result.data.name}`,
|
|
344
|
+
feature: result.data
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Create mirror tool
|
|
351
|
+
*/
|
|
352
|
+
createMirrorTool() {
|
|
353
|
+
return {
|
|
354
|
+
name: 'create_mirror',
|
|
355
|
+
description: 'Create a mirror feature',
|
|
356
|
+
category: 'modeling',
|
|
357
|
+
tags: ['mirror', 'feature', 'symmetry'],
|
|
358
|
+
inputSchema: z.object({
|
|
359
|
+
features: z.array(z.string()).describe('Feature names to mirror'),
|
|
360
|
+
plane: z.string().describe('Mirror plane name'),
|
|
361
|
+
bodies: z.boolean().default(false).describe('Mirror solid bodies'),
|
|
362
|
+
merge: z.boolean().default(false).describe('Merge with original')
|
|
363
|
+
}),
|
|
364
|
+
handler: async (args) => {
|
|
365
|
+
this.logger.info('Creating mirror feature', args);
|
|
366
|
+
const params = {
|
|
367
|
+
type: 'mirror',
|
|
368
|
+
features: args.features,
|
|
369
|
+
plane: args.plane,
|
|
370
|
+
bodies: args.bodies,
|
|
371
|
+
merge: args.merge
|
|
372
|
+
};
|
|
373
|
+
const result = await this.swAdapter.createFeature(params);
|
|
374
|
+
if (!ResultUtil.isSuccess(result)) {
|
|
375
|
+
return result;
|
|
376
|
+
}
|
|
377
|
+
return ResultUtil.ok({
|
|
378
|
+
message: `Mirror feature created: ${result.data.name}`,
|
|
379
|
+
feature: result.data
|
|
380
|
+
});
|
|
381
|
+
}
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/application/use-cases/modeling/index.ts"],"names":[],"mappings":"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"}
|