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.
Files changed (88) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/LICENSE +21 -0
  3. package/README.md +333 -0
  4. package/dist/cache/manager.d.ts +50 -0
  5. package/dist/cache/manager.d.ts.map +1 -0
  6. package/dist/cache/manager.js +127 -0
  7. package/dist/cache/manager.js.map +1 -0
  8. package/dist/db/connection.d.ts +48 -0
  9. package/dist/db/connection.d.ts.map +1 -0
  10. package/dist/db/connection.js +132 -0
  11. package/dist/db/connection.js.map +1 -0
  12. package/dist/index.d.ts +37 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +402 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/knowledge/chromadb.d.ts +16 -0
  17. package/dist/knowledge/chromadb.d.ts.map +1 -0
  18. package/dist/knowledge/chromadb.js +80 -0
  19. package/dist/knowledge/chromadb.js.map +1 -0
  20. package/dist/macro/index.d.ts +6 -0
  21. package/dist/macro/index.d.ts.map +1 -0
  22. package/dist/macro/index.js +6 -0
  23. package/dist/macro/index.js.map +1 -0
  24. package/dist/macro/recorder.d.ts +72 -0
  25. package/dist/macro/recorder.d.ts.map +1 -0
  26. package/dist/macro/recorder.js +228 -0
  27. package/dist/macro/recorder.js.map +1 -0
  28. package/dist/macro/types.d.ts +77 -0
  29. package/dist/macro/types.d.ts.map +1 -0
  30. package/dist/macro/types.js +5 -0
  31. package/dist/macro/types.js.map +1 -0
  32. package/dist/resources/base.d.ts +116 -0
  33. package/dist/resources/base.d.ts.map +1 -0
  34. package/dist/resources/base.js +161 -0
  35. package/dist/resources/base.js.map +1 -0
  36. package/dist/resources/design-table.d.ts +384 -0
  37. package/dist/resources/design-table.d.ts.map +1 -0
  38. package/dist/resources/design-table.js +337 -0
  39. package/dist/resources/design-table.js.map +1 -0
  40. package/dist/resources/pdm.d.ts +1277 -0
  41. package/dist/resources/pdm.d.ts.map +1 -0
  42. package/dist/resources/pdm.js +358 -0
  43. package/dist/resources/pdm.js.map +1 -0
  44. package/dist/resources/registry.d.ts +59 -0
  45. package/dist/resources/registry.d.ts.map +1 -0
  46. package/dist/resources/registry.js +88 -0
  47. package/dist/resources/registry.js.map +1 -0
  48. package/dist/solidworks/api.d.ts +24 -0
  49. package/dist/solidworks/api.d.ts.map +1 -0
  50. package/dist/solidworks/api.js +226 -0
  51. package/dist/solidworks/api.js.map +1 -0
  52. package/dist/solidworks/types.d.ts +55 -0
  53. package/dist/solidworks/types.d.ts.map +1 -0
  54. package/dist/solidworks/types.js +2 -0
  55. package/dist/solidworks/types.js.map +1 -0
  56. package/dist/state/store.d.ts +101 -0
  57. package/dist/state/store.d.ts.map +1 -0
  58. package/dist/state/store.js +262 -0
  59. package/dist/state/store.js.map +1 -0
  60. package/dist/tools/analysis.d.ts +37 -0
  61. package/dist/tools/analysis.d.ts.map +1 -0
  62. package/dist/tools/analysis.js +169 -0
  63. package/dist/tools/analysis.js.map +1 -0
  64. package/dist/tools/drawing.d.ts +151 -0
  65. package/dist/tools/drawing.d.ts.map +1 -0
  66. package/dist/tools/drawing.js +171 -0
  67. package/dist/tools/drawing.js.map +1 -0
  68. package/dist/tools/export.d.ts +97 -0
  69. package/dist/tools/export.d.ts.map +1 -0
  70. package/dist/tools/export.js +128 -0
  71. package/dist/tools/export.js.map +1 -0
  72. package/dist/tools/modeling.d.ts +9 -0
  73. package/dist/tools/modeling.d.ts.map +1 -0
  74. package/dist/tools/modeling.js +120 -0
  75. package/dist/tools/modeling.js.map +1 -0
  76. package/dist/tools/vba.d.ts +123 -0
  77. package/dist/tools/vba.d.ts.map +1 -0
  78. package/dist/tools/vba.js +158 -0
  79. package/dist/tools/vba.js.map +1 -0
  80. package/dist/utils/config.d.ts +18 -0
  81. package/dist/utils/config.d.ts.map +1 -0
  82. package/dist/utils/config.js +26 -0
  83. package/dist/utils/config.js.map +1 -0
  84. package/dist/utils/logger.d.ts +14 -0
  85. package/dist/utils/logger.d.ts.map +1 -0
  86. package/dist/utils/logger.js +84 -0
  87. package/dist/utils/logger.js.map +1 -0
  88. 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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"}