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 @@
|
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/state/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { SolidWorksAPI } from '../solidworks/api.js';
|
|
3
|
+
export declare const analysisTools: ({
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
inputSchema: z.ZodObject<{
|
|
7
|
+
units: z.ZodDefault<z.ZodEnum<["kg", "g", "lb"]>>;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
units: "kg" | "g" | "lb";
|
|
10
|
+
}, {
|
|
11
|
+
units?: "kg" | "g" | "lb" | undefined;
|
|
12
|
+
}>;
|
|
13
|
+
handler: (args: any, swApi: SolidWorksAPI) => Promise<string | {
|
|
14
|
+
mass: string;
|
|
15
|
+
volume: string;
|
|
16
|
+
surfaceArea: string;
|
|
17
|
+
centerOfMass: {
|
|
18
|
+
x: string;
|
|
19
|
+
y: string;
|
|
20
|
+
z: string;
|
|
21
|
+
};
|
|
22
|
+
}>;
|
|
23
|
+
} | {
|
|
24
|
+
name: string;
|
|
25
|
+
description: string;
|
|
26
|
+
inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
27
|
+
handler: (args: any, swApi: SolidWorksAPI) => Promise<string | {
|
|
28
|
+
dimensions: {
|
|
29
|
+
width: string;
|
|
30
|
+
height: string;
|
|
31
|
+
depth: string;
|
|
32
|
+
};
|
|
33
|
+
volume: string;
|
|
34
|
+
diagonal: string;
|
|
35
|
+
}>;
|
|
36
|
+
})[];
|
|
37
|
+
//# sourceMappingURL=analysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../src/tools/analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,eAAO,MAAM,aAAa;;;;;;;;;;oBAOA,GAAG,SAAS,aAAa;;;;;;;;;;;;;;oBAsIzB,GAAG,SAAS,aAAa;;;;;;;;;IAqClD,CAAC"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const analysisTools = [
|
|
3
|
+
{
|
|
4
|
+
name: 'get_mass_properties',
|
|
5
|
+
description: 'Get mass properties of the current model',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
units: z.enum(['kg', 'g', 'lb']).default('kg').describe('Mass units'),
|
|
8
|
+
}),
|
|
9
|
+
handler: async (args, swApi) => {
|
|
10
|
+
try {
|
|
11
|
+
const props = await swApi.getMassProperties();
|
|
12
|
+
// Convert mass based on units
|
|
13
|
+
let mass = props.mass;
|
|
14
|
+
if (args.units === 'g')
|
|
15
|
+
mass *= 1000;
|
|
16
|
+
if (args.units === 'lb')
|
|
17
|
+
mass *= 2.20462;
|
|
18
|
+
return {
|
|
19
|
+
mass: `${mass.toFixed(3)} ${args.units}`,
|
|
20
|
+
volume: `${(props.volume * 1e9).toFixed(3)} mm³`,
|
|
21
|
+
surfaceArea: `${(props.surfaceArea * 1e6).toFixed(3)} mm²`,
|
|
22
|
+
centerOfMass: {
|
|
23
|
+
x: `${(props.centerOfMass.x * 1000).toFixed(3)} mm`,
|
|
24
|
+
y: `${(props.centerOfMass.y * 1000).toFixed(3)} mm`,
|
|
25
|
+
z: `${(props.centerOfMass.z * 1000).toFixed(3)} mm`,
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
return `Failed to get mass properties: ${error}`;
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: 'check_interference',
|
|
36
|
+
description: 'Check for interference between components in an assembly',
|
|
37
|
+
inputSchema: z.object({
|
|
38
|
+
treatCoincidenceAsInterference: z.boolean().default(false),
|
|
39
|
+
treatSubAssembliesAsComponents: z.boolean().default(false),
|
|
40
|
+
includeMultibodyParts: z.boolean().default(true),
|
|
41
|
+
}),
|
|
42
|
+
handler: async (args, swApi) => {
|
|
43
|
+
try {
|
|
44
|
+
const model = swApi.getCurrentModel();
|
|
45
|
+
if (!model || model.GetType() !== 2) { // swDocASSEMBLY
|
|
46
|
+
throw new Error('Current document must be an assembly');
|
|
47
|
+
}
|
|
48
|
+
const interferenceDetect = model.InterferenceDetectionManager;
|
|
49
|
+
interferenceDetect.TreatCoincidenceAsInterference = args.treatCoincidenceAsInterference;
|
|
50
|
+
interferenceDetect.TreatSubAssembliesAsComponents = args.treatSubAssembliesAsComponents;
|
|
51
|
+
interferenceDetect.IncludeMultibodyPartInterferences = args.includeMultibodyParts;
|
|
52
|
+
const results = interferenceDetect.GetInterferences();
|
|
53
|
+
const count = interferenceDetect.GetInterferenceCount();
|
|
54
|
+
if (count === 0) {
|
|
55
|
+
return 'No interferences detected';
|
|
56
|
+
}
|
|
57
|
+
return `Found ${count} interference(s). Use VBA or manual review to examine details.`;
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
return `Failed to check interference: ${error}`;
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'measure_distance',
|
|
66
|
+
description: 'Measure distance between two selected entities',
|
|
67
|
+
inputSchema: z.object({
|
|
68
|
+
entity1: z.string().describe('Name or reference of first entity'),
|
|
69
|
+
entity2: z.string().describe('Name or reference of second entity'),
|
|
70
|
+
}),
|
|
71
|
+
handler: async (args, swApi) => {
|
|
72
|
+
try {
|
|
73
|
+
// Note: This would require entity selection which is complex in COM
|
|
74
|
+
return `Distance measurement requires interactive selection. Use the Measure tool in SolidWorks or generate VBA for automated measurement.`;
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
return `Failed to measure distance: ${error}`;
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: 'analyze_draft',
|
|
83
|
+
description: 'Analyze draft angles for molding',
|
|
84
|
+
inputSchema: z.object({
|
|
85
|
+
pullDirection: z.enum(['x', 'y', 'z', '-x', '-y', '-z']).describe('Pull direction'),
|
|
86
|
+
requiredAngle: z.number().default(1).describe('Required draft angle in degrees'),
|
|
87
|
+
}),
|
|
88
|
+
handler: async (args, swApi) => {
|
|
89
|
+
try {
|
|
90
|
+
const model = swApi.getCurrentModel();
|
|
91
|
+
if (!model)
|
|
92
|
+
throw new Error('No model open');
|
|
93
|
+
// Draft analysis would require DraftAnalysisManager
|
|
94
|
+
return `Draft analysis initiated. Check SolidWorks display for colored results:\n` +
|
|
95
|
+
`- Green: Positive draft (>${args.requiredAngle}°)\n` +
|
|
96
|
+
`- Yellow: Requires draft\n` +
|
|
97
|
+
`- Red: Negative draft\n` +
|
|
98
|
+
`Pull direction: ${args.pullDirection}`;
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
return `Failed to analyze draft: ${error}`;
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
name: 'check_geometry',
|
|
107
|
+
description: 'Check model geometry for errors',
|
|
108
|
+
inputSchema: z.object({
|
|
109
|
+
checkType: z.enum(['all', 'faces', 'edges', 'vertices']).default('all'),
|
|
110
|
+
}),
|
|
111
|
+
handler: async (args, swApi) => {
|
|
112
|
+
try {
|
|
113
|
+
const model = swApi.getCurrentModel();
|
|
114
|
+
if (!model)
|
|
115
|
+
throw new Error('No model open');
|
|
116
|
+
const check = model.Extension.RunCheck3(524287, // swGeomCheckAll
|
|
117
|
+
true, // repair
|
|
118
|
+
true, // display results
|
|
119
|
+
false // do not create solid
|
|
120
|
+
);
|
|
121
|
+
if (check === 0) {
|
|
122
|
+
return 'No geometry errors found';
|
|
123
|
+
}
|
|
124
|
+
return `Found and attempted to repair ${check} geometry issue(s)`;
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
return `Failed to check geometry: ${error}`;
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
name: 'get_bounding_box',
|
|
133
|
+
description: 'Get the bounding box dimensions of the model',
|
|
134
|
+
inputSchema: z.object({}),
|
|
135
|
+
handler: async (args, swApi) => {
|
|
136
|
+
try {
|
|
137
|
+
const model = swApi.getCurrentModel();
|
|
138
|
+
if (!model)
|
|
139
|
+
throw new Error('No model open');
|
|
140
|
+
const partDoc = model;
|
|
141
|
+
const bodies = partDoc.GetBodies2(0, true);
|
|
142
|
+
if (!bodies || bodies.length === 0) {
|
|
143
|
+
throw new Error('No solid bodies found');
|
|
144
|
+
}
|
|
145
|
+
const body = bodies[0];
|
|
146
|
+
const box = body.GetBodyBox();
|
|
147
|
+
if (!box || box.length < 6) {
|
|
148
|
+
throw new Error('Failed to get bounding box');
|
|
149
|
+
}
|
|
150
|
+
const width = (box[3] - box[0]) * 1000;
|
|
151
|
+
const height = (box[4] - box[1]) * 1000;
|
|
152
|
+
const depth = (box[5] - box[2]) * 1000;
|
|
153
|
+
return {
|
|
154
|
+
dimensions: {
|
|
155
|
+
width: `${width.toFixed(2)} mm`,
|
|
156
|
+
height: `${height.toFixed(2)} mm`,
|
|
157
|
+
depth: `${depth.toFixed(2)} mm`,
|
|
158
|
+
},
|
|
159
|
+
volume: `${(width * height * depth).toFixed(2)} mm³`,
|
|
160
|
+
diagonal: `${Math.sqrt(width * width + height * height + depth * depth).toFixed(2)} mm`,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
catch (error) {
|
|
164
|
+
return `Failed to get bounding box: ${error}`;
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
];
|
|
169
|
+
//# sourceMappingURL=analysis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../src/tools/analysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { SolidWorksAPI } from '../solidworks/api.js';
|
|
3
|
+
export declare const drawingTools: ({
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
inputSchema: z.ZodObject<{
|
|
7
|
+
template: z.ZodString;
|
|
8
|
+
sheet_size: z.ZodOptional<z.ZodEnum<["A4", "A3", "A2", "A1", "A0", "Letter", "Tabloid"]>>;
|
|
9
|
+
}, "strip", z.ZodTypeAny, {
|
|
10
|
+
template: string;
|
|
11
|
+
sheet_size?: "A4" | "A3" | "A2" | "A1" | "A0" | "Letter" | "Tabloid" | undefined;
|
|
12
|
+
}, {
|
|
13
|
+
template: string;
|
|
14
|
+
sheet_size?: "A4" | "A3" | "A2" | "A1" | "A0" | "Letter" | "Tabloid" | undefined;
|
|
15
|
+
}>;
|
|
16
|
+
handler: (args: any, swApi: SolidWorksAPI) => Promise<string>;
|
|
17
|
+
} | {
|
|
18
|
+
name: string;
|
|
19
|
+
description: string;
|
|
20
|
+
inputSchema: z.ZodObject<{
|
|
21
|
+
viewType: z.ZodEnum<["front", "top", "right", "back", "bottom", "left", "iso", "current"]>;
|
|
22
|
+
modelPath: z.ZodString;
|
|
23
|
+
x: z.ZodNumber;
|
|
24
|
+
y: z.ZodNumber;
|
|
25
|
+
scale: z.ZodOptional<z.ZodNumber>;
|
|
26
|
+
}, "strip", z.ZodTypeAny, {
|
|
27
|
+
x: number;
|
|
28
|
+
y: number;
|
|
29
|
+
viewType: "front" | "top" | "right" | "back" | "bottom" | "left" | "iso" | "current";
|
|
30
|
+
modelPath: string;
|
|
31
|
+
scale?: number | undefined;
|
|
32
|
+
}, {
|
|
33
|
+
x: number;
|
|
34
|
+
y: number;
|
|
35
|
+
viewType: "front" | "top" | "right" | "back" | "bottom" | "left" | "iso" | "current";
|
|
36
|
+
modelPath: string;
|
|
37
|
+
scale?: number | undefined;
|
|
38
|
+
}>;
|
|
39
|
+
handler: (args: any, swApi: SolidWorksAPI) => Promise<string>;
|
|
40
|
+
} | {
|
|
41
|
+
name: string;
|
|
42
|
+
description: string;
|
|
43
|
+
inputSchema: z.ZodObject<{
|
|
44
|
+
parentView: z.ZodString;
|
|
45
|
+
x: z.ZodNumber;
|
|
46
|
+
y: z.ZodNumber;
|
|
47
|
+
sectionLine: z.ZodObject<{
|
|
48
|
+
x1: z.ZodNumber;
|
|
49
|
+
y1: z.ZodNumber;
|
|
50
|
+
x2: z.ZodNumber;
|
|
51
|
+
y2: z.ZodNumber;
|
|
52
|
+
}, "strip", z.ZodTypeAny, {
|
|
53
|
+
x1: number;
|
|
54
|
+
y1: number;
|
|
55
|
+
x2: number;
|
|
56
|
+
y2: number;
|
|
57
|
+
}, {
|
|
58
|
+
x1: number;
|
|
59
|
+
y1: number;
|
|
60
|
+
x2: number;
|
|
61
|
+
y2: number;
|
|
62
|
+
}>;
|
|
63
|
+
}, "strip", z.ZodTypeAny, {
|
|
64
|
+
x: number;
|
|
65
|
+
y: number;
|
|
66
|
+
parentView: string;
|
|
67
|
+
sectionLine: {
|
|
68
|
+
x1: number;
|
|
69
|
+
y1: number;
|
|
70
|
+
x2: number;
|
|
71
|
+
y2: number;
|
|
72
|
+
};
|
|
73
|
+
}, {
|
|
74
|
+
x: number;
|
|
75
|
+
y: number;
|
|
76
|
+
parentView: string;
|
|
77
|
+
sectionLine: {
|
|
78
|
+
x1: number;
|
|
79
|
+
y1: number;
|
|
80
|
+
x2: number;
|
|
81
|
+
y2: number;
|
|
82
|
+
};
|
|
83
|
+
}>;
|
|
84
|
+
handler: (args: any, swApi: SolidWorksAPI) => Promise<string>;
|
|
85
|
+
} | {
|
|
86
|
+
name: string;
|
|
87
|
+
description: string;
|
|
88
|
+
inputSchema: z.ZodObject<{
|
|
89
|
+
viewName: z.ZodString;
|
|
90
|
+
autoArrange: z.ZodDefault<z.ZodBoolean>;
|
|
91
|
+
}, "strip", z.ZodTypeAny, {
|
|
92
|
+
viewName: string;
|
|
93
|
+
autoArrange: boolean;
|
|
94
|
+
}, {
|
|
95
|
+
viewName: string;
|
|
96
|
+
autoArrange?: boolean | undefined;
|
|
97
|
+
}>;
|
|
98
|
+
handler: (args: any, swApi: SolidWorksAPI) => Promise<string>;
|
|
99
|
+
} | {
|
|
100
|
+
name: string;
|
|
101
|
+
description: string;
|
|
102
|
+
inputSchema: z.ZodObject<{
|
|
103
|
+
properties: z.ZodObject<{
|
|
104
|
+
title: z.ZodOptional<z.ZodString>;
|
|
105
|
+
drawnBy: z.ZodOptional<z.ZodString>;
|
|
106
|
+
checkedBy: z.ZodOptional<z.ZodString>;
|
|
107
|
+
date: z.ZodOptional<z.ZodString>;
|
|
108
|
+
scale: z.ZodOptional<z.ZodString>;
|
|
109
|
+
material: z.ZodOptional<z.ZodString>;
|
|
110
|
+
finish: z.ZodOptional<z.ZodString>;
|
|
111
|
+
}, "strip", z.ZodTypeAny, {
|
|
112
|
+
finish?: string | undefined;
|
|
113
|
+
date?: string | undefined;
|
|
114
|
+
scale?: string | undefined;
|
|
115
|
+
title?: string | undefined;
|
|
116
|
+
drawnBy?: string | undefined;
|
|
117
|
+
checkedBy?: string | undefined;
|
|
118
|
+
material?: string | undefined;
|
|
119
|
+
}, {
|
|
120
|
+
finish?: string | undefined;
|
|
121
|
+
date?: string | undefined;
|
|
122
|
+
scale?: string | undefined;
|
|
123
|
+
title?: string | undefined;
|
|
124
|
+
drawnBy?: string | undefined;
|
|
125
|
+
checkedBy?: string | undefined;
|
|
126
|
+
material?: string | undefined;
|
|
127
|
+
}>;
|
|
128
|
+
}, "strip", z.ZodTypeAny, {
|
|
129
|
+
properties: {
|
|
130
|
+
finish?: string | undefined;
|
|
131
|
+
date?: string | undefined;
|
|
132
|
+
scale?: string | undefined;
|
|
133
|
+
title?: string | undefined;
|
|
134
|
+
drawnBy?: string | undefined;
|
|
135
|
+
checkedBy?: string | undefined;
|
|
136
|
+
material?: string | undefined;
|
|
137
|
+
};
|
|
138
|
+
}, {
|
|
139
|
+
properties: {
|
|
140
|
+
finish?: string | undefined;
|
|
141
|
+
date?: string | undefined;
|
|
142
|
+
scale?: string | undefined;
|
|
143
|
+
title?: string | undefined;
|
|
144
|
+
drawnBy?: string | undefined;
|
|
145
|
+
checkedBy?: string | undefined;
|
|
146
|
+
material?: string | undefined;
|
|
147
|
+
};
|
|
148
|
+
}>;
|
|
149
|
+
handler: (args: any, swApi: SolidWorksAPI) => Promise<string>;
|
|
150
|
+
})[];
|
|
151
|
+
//# sourceMappingURL=drawing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawing.d.ts","sourceRoot":"","sources":["../../src/tools/drawing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,eAAO,MAAM,YAAY;;;;;;;;;;;;;oBAQC,GAAG,SAAS,aAAa;;;;;;;;;;;;;;;;;;;;;;;oBA2BzB,GAAG,SAAS,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAyDzB,GAAG,SAAS,aAAa;;;;;;;;;;;;;;oBAuBzB,GAAG,SAAS,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA6CzB,GAAG,SAAS,aAAa;IA8BlD,CAAC"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const drawingTools = [
|
|
3
|
+
{
|
|
4
|
+
name: 'create_drawing_from_model',
|
|
5
|
+
description: 'Create a new drawing from the current 3D model',
|
|
6
|
+
inputSchema: z.object({
|
|
7
|
+
template: z.string().describe('Drawing template path'),
|
|
8
|
+
sheet_size: z.enum(['A4', 'A3', 'A2', 'A1', 'A0', 'Letter', 'Tabloid']).optional(),
|
|
9
|
+
}),
|
|
10
|
+
handler: async (args, swApi) => {
|
|
11
|
+
try {
|
|
12
|
+
const app = swApi.getApp();
|
|
13
|
+
const model = swApi.getCurrentModel();
|
|
14
|
+
if (!model)
|
|
15
|
+
throw new Error('No model open');
|
|
16
|
+
// Create new drawing
|
|
17
|
+
const drawing = app.NewDocument(args.template, 0, 0, 0);
|
|
18
|
+
if (!drawing)
|
|
19
|
+
throw new Error('Failed to create drawing');
|
|
20
|
+
return `Created new drawing from template: ${args.template}`;
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
return `Failed to create drawing: ${error}`;
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: 'add_drawing_view',
|
|
29
|
+
description: 'Add a view to the current drawing',
|
|
30
|
+
inputSchema: z.object({
|
|
31
|
+
viewType: z.enum(['front', 'top', 'right', 'back', 'bottom', 'left', 'iso', 'current']),
|
|
32
|
+
modelPath: z.string().describe('Path to the model file'),
|
|
33
|
+
x: z.number().describe('X position on sheet (mm)'),
|
|
34
|
+
y: z.number().describe('Y position on sheet (mm)'),
|
|
35
|
+
scale: z.number().optional().describe('View scale (e.g., 0.5 for 1:2)'),
|
|
36
|
+
}),
|
|
37
|
+
handler: async (args, swApi) => {
|
|
38
|
+
try {
|
|
39
|
+
const model = swApi.getCurrentModel();
|
|
40
|
+
if (!model || model.GetType() !== 3) { // swDocDRAWING
|
|
41
|
+
throw new Error('Current document must be a drawing');
|
|
42
|
+
}
|
|
43
|
+
const drawingDoc = model;
|
|
44
|
+
// View orientation map
|
|
45
|
+
const orientationMap = {
|
|
46
|
+
front: '*Front',
|
|
47
|
+
top: '*Top',
|
|
48
|
+
right: '*Right',
|
|
49
|
+
back: '*Back',
|
|
50
|
+
bottom: '*Bottom',
|
|
51
|
+
left: '*Left',
|
|
52
|
+
iso: '*Isometric',
|
|
53
|
+
current: '*Current',
|
|
54
|
+
};
|
|
55
|
+
const view = drawingDoc.CreateDrawViewFromModelView3(args.modelPath, orientationMap[args.viewType], args.x / 1000, // Convert mm to m
|
|
56
|
+
args.y / 1000, 0);
|
|
57
|
+
if (!view)
|
|
58
|
+
throw new Error('Failed to create view');
|
|
59
|
+
// Set scale if specified
|
|
60
|
+
if (args.scale) {
|
|
61
|
+
view.ScaleDecimal = args.scale;
|
|
62
|
+
}
|
|
63
|
+
return `Added ${args.viewType} view at (${args.x}, ${args.y})`;
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
return `Failed to add drawing view: ${error}`;
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: 'add_section_view',
|
|
72
|
+
description: 'Add a section view to the drawing',
|
|
73
|
+
inputSchema: z.object({
|
|
74
|
+
parentView: z.string().describe('Name of the parent view'),
|
|
75
|
+
x: z.number().describe('X position on sheet (mm)'),
|
|
76
|
+
y: z.number().describe('Y position on sheet (mm)'),
|
|
77
|
+
sectionLine: z.object({
|
|
78
|
+
x1: z.number(),
|
|
79
|
+
y1: z.number(),
|
|
80
|
+
x2: z.number(),
|
|
81
|
+
y2: z.number(),
|
|
82
|
+
}).describe('Section line coordinates relative to parent view'),
|
|
83
|
+
}),
|
|
84
|
+
handler: async (args, swApi) => {
|
|
85
|
+
try {
|
|
86
|
+
const model = swApi.getCurrentModel();
|
|
87
|
+
if (!model || model.GetType() !== 3) {
|
|
88
|
+
throw new Error('Current document must be a drawing');
|
|
89
|
+
}
|
|
90
|
+
// Implementation would require selecting parent view and creating section line
|
|
91
|
+
// This is a simplified response
|
|
92
|
+
return `Section view creation requires interactive selection. Use VBA generation for automated section views.`;
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
return `Failed to add section view: ${error}`;
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
name: 'add_dimensions',
|
|
101
|
+
description: 'Add dimensions to a drawing view',
|
|
102
|
+
inputSchema: z.object({
|
|
103
|
+
viewName: z.string().describe('Name of the view to dimension'),
|
|
104
|
+
autoArrange: z.boolean().default(true).describe('Automatically arrange dimensions'),
|
|
105
|
+
}),
|
|
106
|
+
handler: async (args, swApi) => {
|
|
107
|
+
try {
|
|
108
|
+
const model = swApi.getCurrentModel();
|
|
109
|
+
if (!model || model.GetType() !== 3) {
|
|
110
|
+
throw new Error('Current document must be a drawing');
|
|
111
|
+
}
|
|
112
|
+
const drawingDoc = model;
|
|
113
|
+
const view = drawingDoc.FeatureByName(args.viewName);
|
|
114
|
+
if (!view)
|
|
115
|
+
throw new Error(`View "${args.viewName}" not found`);
|
|
116
|
+
// Select the view
|
|
117
|
+
view.Select2(false, 0);
|
|
118
|
+
// Auto-dimension
|
|
119
|
+
drawingDoc.Extension.AutoDimension(1, // Scheme: Baseline
|
|
120
|
+
1, // Type: Linear dimensions
|
|
121
|
+
true, // Include hidden edges
|
|
122
|
+
1, // Placement: Above view
|
|
123
|
+
0 // Offset
|
|
124
|
+
);
|
|
125
|
+
return `Added dimensions to view: ${args.viewName}`;
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
return `Failed to add dimensions: ${error}`;
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
name: 'update_sheet_format',
|
|
134
|
+
description: 'Update drawing sheet format and properties',
|
|
135
|
+
inputSchema: z.object({
|
|
136
|
+
properties: z.object({
|
|
137
|
+
title: z.string().optional(),
|
|
138
|
+
drawnBy: z.string().optional(),
|
|
139
|
+
checkedBy: z.string().optional(),
|
|
140
|
+
date: z.string().optional(),
|
|
141
|
+
scale: z.string().optional(),
|
|
142
|
+
material: z.string().optional(),
|
|
143
|
+
finish: z.string().optional(),
|
|
144
|
+
}),
|
|
145
|
+
}),
|
|
146
|
+
handler: async (args, swApi) => {
|
|
147
|
+
try {
|
|
148
|
+
const model = swApi.getCurrentModel();
|
|
149
|
+
if (!model || model.GetType() !== 3) {
|
|
150
|
+
throw new Error('Current document must be a drawing');
|
|
151
|
+
}
|
|
152
|
+
// Update custom properties
|
|
153
|
+
const customPropMgr = model.Extension.CustomPropertyManager('');
|
|
154
|
+
for (const [key, value] of Object.entries(args.properties)) {
|
|
155
|
+
if (value) {
|
|
156
|
+
customPropMgr.Add3(key, 30, // swCustomInfoType_e.swCustomInfoText
|
|
157
|
+
value, 1 // swCustomPropertyAddOption_e.swCustomPropertyReplaceValue
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
// Force update of sheet format
|
|
162
|
+
model.ForceRebuild3(false);
|
|
163
|
+
return `Updated sheet format properties`;
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
return `Failed to update sheet format: ${error}`;
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
];
|
|
171
|
+
//# sourceMappingURL=drawing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawing.js","sourceRoot":"","sources":["../../src/tools/drawing.ts"],"names":[],"mappings":"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"}
|