solidworks-mcp 0.1.1-beta.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 +34 -0
- package/bin/solidworks-mcp-server.js +2 -0
- package/dist/bootstrap/bridge-bootstrap.d.ts +25 -0
- package/dist/bootstrap/bridge-bootstrap.d.ts.map +1 -0
- package/dist/bootstrap/bridge-bootstrap.js +175 -0
- package/dist/bootstrap/bridge-bootstrap.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +277 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/assembly-tools.d.ts +73 -0
- package/dist/tools/assembly-tools.d.ts.map +1 -0
- package/dist/tools/assembly-tools.js +92 -0
- package/dist/tools/assembly-tools.js.map +1 -0
- package/dist/tools/document-tools.d.ts +59 -0
- package/dist/tools/document-tools.d.ts.map +1 -0
- package/dist/tools/document-tools.js +82 -0
- package/dist/tools/document-tools.js.map +1 -0
- package/dist/tools/feature-tools.d.ts +83 -0
- package/dist/tools/feature-tools.d.ts.map +1 -0
- package/dist/tools/feature-tools.js +106 -0
- package/dist/tools/feature-tools.js.map +1 -0
- package/dist/tools/selection-tools.d.ts +58 -0
- package/dist/tools/selection-tools.d.ts.map +1 -0
- package/dist/tools/selection-tools.js +69 -0
- package/dist/tools/selection-tools.js.map +1 -0
- package/dist/tools/sketch-tools.d.ts +156 -0
- package/dist/tools/sketch-tools.d.ts.map +1 -0
- package/dist/tools/sketch-tools.js +123 -0
- package/dist/tools/sketch-tools.js.map +1 -0
- package/dist/transport/named-pipe-client.d.ts +53 -0
- package/dist/transport/named-pipe-client.d.ts.map +1 -0
- package/dist/transport/named-pipe-client.js +189 -0
- package/dist/transport/named-pipe-client.js.map +1 -0
- package/dist/types/solidworks.d.ts +60 -0
- package/dist/types/solidworks.d.ts.map +1 -0
- package/dist/types/solidworks.js +79 -0
- package/dist/types/solidworks.js.map +1 -0
- package/package.json +56 -0
- package/vendor/bridge/SolidWorks.Interop.sldworks.dll +0 -0
- package/vendor/bridge/SolidWorks.Interop.swconst.dll +0 -0
- package/vendor/bridge/SolidWorksBridge.deps.json +63 -0
- package/vendor/bridge/SolidWorksBridge.dll +0 -0
- package/vendor/bridge/SolidWorksBridge.exe +0 -0
- package/vendor/bridge/SolidWorksBridge.pdb +0 -0
- package/vendor/bridge/SolidWorksBridge.runtimeconfig.json +13 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
// ── Shared schemas ──────────────────────────────────────────────
|
|
3
|
+
export const MateAlignSchema = z
|
|
4
|
+
.enum(['None', 'AntiAligned', 'Closest'])
|
|
5
|
+
.default('Closest')
|
|
6
|
+
.describe('Mate alignment: None, AntiAligned, or Closest');
|
|
7
|
+
// ── Zod input schemas ───────────────────────────────────────────
|
|
8
|
+
export const InsertComponentSchema = z.object({
|
|
9
|
+
filePath: z
|
|
10
|
+
.string()
|
|
11
|
+
.min(1)
|
|
12
|
+
.describe('Full path to the part or assembly file to insert (.sldprt / .sldasm)'),
|
|
13
|
+
x: z.number().default(0).describe('X position to insert the component (meters)'),
|
|
14
|
+
y: z.number().default(0).describe('Y position to insert the component (meters)'),
|
|
15
|
+
z: z.number().default(0).describe('Z position to insert the component (meters)'),
|
|
16
|
+
});
|
|
17
|
+
export const AddMateCoincidentSchema = z.object({
|
|
18
|
+
align: MateAlignSchema.optional(),
|
|
19
|
+
});
|
|
20
|
+
export const AddMateConcentricSchema = z.object({
|
|
21
|
+
align: MateAlignSchema.optional(),
|
|
22
|
+
});
|
|
23
|
+
export const AddMateParallelSchema = z.object({
|
|
24
|
+
align: MateAlignSchema.optional(),
|
|
25
|
+
});
|
|
26
|
+
export const AddMateDistanceSchema = z.object({
|
|
27
|
+
distance: z.number().nonnegative().describe('Mate distance (meters)'),
|
|
28
|
+
align: MateAlignSchema.optional(),
|
|
29
|
+
});
|
|
30
|
+
export const AddMateAngleSchema = z.object({
|
|
31
|
+
angleDegrees: z.number().describe('Mate angle (degrees)'),
|
|
32
|
+
align: MateAlignSchema.optional(),
|
|
33
|
+
});
|
|
34
|
+
export const ListComponentsSchema = z
|
|
35
|
+
.object({})
|
|
36
|
+
.describe('List all top-level components in the active assembly');
|
|
37
|
+
// ── Tool handler functions ──────────────────────────────────────
|
|
38
|
+
export async function swInsertComponent(client, params) {
|
|
39
|
+
const resp = await client.request('sw.assembly.insert_component', {
|
|
40
|
+
filePath: params.filePath,
|
|
41
|
+
x: params.x ?? 0,
|
|
42
|
+
y: params.y ?? 0,
|
|
43
|
+
z: params.z ?? 0,
|
|
44
|
+
});
|
|
45
|
+
if (resp.error)
|
|
46
|
+
throw new Error(`sw.assembly.insert_component failed: ${resp.error.message}`);
|
|
47
|
+
return resp.result;
|
|
48
|
+
}
|
|
49
|
+
export async function swAddMateCoincident(client, params) {
|
|
50
|
+
const resp = await client.request('sw.assembly.add_mate_coincident', {
|
|
51
|
+
...(params.align ? { align: params.align } : {}),
|
|
52
|
+
});
|
|
53
|
+
if (resp.error)
|
|
54
|
+
throw new Error(`sw.assembly.add_mate_coincident failed: ${resp.error.message}`);
|
|
55
|
+
}
|
|
56
|
+
export async function swAddMateConcentric(client, params) {
|
|
57
|
+
const resp = await client.request('sw.assembly.add_mate_concentric', {
|
|
58
|
+
...(params.align ? { align: params.align } : {}),
|
|
59
|
+
});
|
|
60
|
+
if (resp.error)
|
|
61
|
+
throw new Error(`sw.assembly.add_mate_concentric failed: ${resp.error.message}`);
|
|
62
|
+
}
|
|
63
|
+
export async function swAddMateParallel(client, params) {
|
|
64
|
+
const resp = await client.request('sw.assembly.add_mate_parallel', {
|
|
65
|
+
...(params.align ? { align: params.align } : {}),
|
|
66
|
+
});
|
|
67
|
+
if (resp.error)
|
|
68
|
+
throw new Error(`sw.assembly.add_mate_parallel failed: ${resp.error.message}`);
|
|
69
|
+
}
|
|
70
|
+
export async function swAddMateDistance(client, params) {
|
|
71
|
+
const resp = await client.request('sw.assembly.add_mate_distance', {
|
|
72
|
+
distance: params.distance,
|
|
73
|
+
...(params.align ? { align: params.align } : {}),
|
|
74
|
+
});
|
|
75
|
+
if (resp.error)
|
|
76
|
+
throw new Error(`sw.assembly.add_mate_distance failed: ${resp.error.message}`);
|
|
77
|
+
}
|
|
78
|
+
export async function swAddMateAngle(client, params) {
|
|
79
|
+
const resp = await client.request('sw.assembly.add_mate_angle', {
|
|
80
|
+
angleDegrees: params.angleDegrees,
|
|
81
|
+
...(params.align ? { align: params.align } : {}),
|
|
82
|
+
});
|
|
83
|
+
if (resp.error)
|
|
84
|
+
throw new Error(`sw.assembly.add_mate_angle failed: ${resp.error.message}`);
|
|
85
|
+
}
|
|
86
|
+
export async function swListComponents(client) {
|
|
87
|
+
const resp = await client.request('sw.assembly.list_components');
|
|
88
|
+
if (resp.error)
|
|
89
|
+
throw new Error(`sw.assembly.list_components failed: ${resp.error.message}`);
|
|
90
|
+
return resp.result ?? [];
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=assembly-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assembly-tools.js","sourceRoot":"","sources":["../../src/tools/assembly-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { NamedPipeClient } from '../transport/named-pipe-client.js';
|
|
3
|
+
export interface SwDocumentInfo {
|
|
4
|
+
path: string;
|
|
5
|
+
title: string;
|
|
6
|
+
type: number;
|
|
7
|
+
}
|
|
8
|
+
export declare const ConnectSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
9
|
+
export declare const DisconnectSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
10
|
+
export declare const NewDocumentSchema: z.ZodObject<{
|
|
11
|
+
type: z.ZodDefault<z.ZodEnum<["Part", "Assembly", "Drawing"]>>;
|
|
12
|
+
templatePath: z.ZodOptional<z.ZodString>;
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
type: "Part" | "Assembly" | "Drawing";
|
|
15
|
+
templatePath?: string | undefined;
|
|
16
|
+
}, {
|
|
17
|
+
type?: "Part" | "Assembly" | "Drawing" | undefined;
|
|
18
|
+
templatePath?: string | undefined;
|
|
19
|
+
}>;
|
|
20
|
+
export declare const OpenDocumentSchema: z.ZodObject<{
|
|
21
|
+
path: z.ZodString;
|
|
22
|
+
}, "strip", z.ZodTypeAny, {
|
|
23
|
+
path: string;
|
|
24
|
+
}, {
|
|
25
|
+
path: string;
|
|
26
|
+
}>;
|
|
27
|
+
export declare const CloseDocumentSchema: z.ZodObject<{
|
|
28
|
+
path: z.ZodString;
|
|
29
|
+
}, "strip", z.ZodTypeAny, {
|
|
30
|
+
path: string;
|
|
31
|
+
}, {
|
|
32
|
+
path: string;
|
|
33
|
+
}>;
|
|
34
|
+
export declare const SaveDocumentSchema: z.ZodObject<{
|
|
35
|
+
path: z.ZodString;
|
|
36
|
+
}, "strip", z.ZodTypeAny, {
|
|
37
|
+
path: string;
|
|
38
|
+
}, {
|
|
39
|
+
path: string;
|
|
40
|
+
}>;
|
|
41
|
+
export declare const ListDocumentsSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
42
|
+
export declare const GetActiveDocumentSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
43
|
+
export declare function swConnect(client: NamedPipeClient): Promise<{
|
|
44
|
+
connected: boolean;
|
|
45
|
+
}>;
|
|
46
|
+
export declare function swDisconnect(client: NamedPipeClient): Promise<{
|
|
47
|
+
connected: boolean;
|
|
48
|
+
}>;
|
|
49
|
+
export declare function swNewDocument(client: NamedPipeClient, params: z.infer<typeof NewDocumentSchema>): Promise<SwDocumentInfo>;
|
|
50
|
+
export declare function swOpenDocument(client: NamedPipeClient, params: z.infer<typeof OpenDocumentSchema>): Promise<SwDocumentInfo>;
|
|
51
|
+
export declare function swCloseDocument(client: NamedPipeClient, params: z.infer<typeof CloseDocumentSchema>): Promise<{
|
|
52
|
+
closed: boolean;
|
|
53
|
+
}>;
|
|
54
|
+
export declare function swSaveDocument(client: NamedPipeClient, params: z.infer<typeof SaveDocumentSchema>): Promise<{
|
|
55
|
+
saved: boolean;
|
|
56
|
+
}>;
|
|
57
|
+
export declare function swListDocuments(client: NamedPipeClient): Promise<SwDocumentInfo[]>;
|
|
58
|
+
export declare function swGetActiveDocument(client: NamedPipeClient): Promise<SwDocumentInfo | null>;
|
|
59
|
+
//# sourceMappingURL=document-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-tools.d.ts","sourceRoot":"","sources":["../../src/tools/document-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAIzE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAID,eAAO,MAAM,aAAa,gDAAoE,CAAC;AAE/F,eAAO,MAAM,gBAAgB,gDAAsD,CAAC;AAEpF,eAAO,MAAM,iBAAiB;;;;;;;;;EAS5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;EAE7B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;EAE9B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;EAE7B,CAAC;AAEH,eAAO,MAAM,mBAAmB,gDAEgB,CAAC;AAEjD,eAAO,MAAM,uBAAuB,gDAEY,CAAC;AAIjD,wBAAsB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAIxF;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAI3F;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,GACxC,OAAO,CAAC,cAAc,CAAC,CAOzB;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,GACzC,OAAO,CAAC,cAAc,CAAC,CAIzB;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,GAC1C,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,CAI9B;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,GACzC,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAI7B;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAIxF;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAIhC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
// ── Zod input schemas (validated by MCP SDK) ───────────────────
|
|
3
|
+
export const ConnectSchema = z.object({}).describe('Connect to SolidWorks (no params needed)');
|
|
4
|
+
export const DisconnectSchema = z.object({}).describe('Disconnect from SolidWorks');
|
|
5
|
+
export const NewDocumentSchema = z.object({
|
|
6
|
+
type: z
|
|
7
|
+
.enum(['Part', 'Assembly', 'Drawing'])
|
|
8
|
+
.default('Part')
|
|
9
|
+
.describe('Document type to create'),
|
|
10
|
+
templatePath: z
|
|
11
|
+
.string()
|
|
12
|
+
.optional()
|
|
13
|
+
.describe('Full path to template file (.prtdot / .asmdot / .drwdot). Uses SW default if omitted.'),
|
|
14
|
+
});
|
|
15
|
+
export const OpenDocumentSchema = z.object({
|
|
16
|
+
path: z.string().min(1).describe('Full path to the SolidWorks file to open'),
|
|
17
|
+
});
|
|
18
|
+
export const CloseDocumentSchema = z.object({
|
|
19
|
+
path: z.string().min(1).describe('Full path of the open document to close'),
|
|
20
|
+
});
|
|
21
|
+
export const SaveDocumentSchema = z.object({
|
|
22
|
+
path: z.string().min(1).describe('Full path of the open document to save'),
|
|
23
|
+
});
|
|
24
|
+
export const ListDocumentsSchema = z
|
|
25
|
+
.object({})
|
|
26
|
+
.describe('List all currently open documents');
|
|
27
|
+
export const GetActiveDocumentSchema = z
|
|
28
|
+
.object({})
|
|
29
|
+
.describe('Get the currently active document');
|
|
30
|
+
// ── Tool handler functions ──────────────────────────────────────
|
|
31
|
+
export async function swConnect(client) {
|
|
32
|
+
const resp = await client.request('sw.connect');
|
|
33
|
+
if (resp.error)
|
|
34
|
+
throw new Error(`sw.connect failed: ${resp.error.message}`);
|
|
35
|
+
return resp.result;
|
|
36
|
+
}
|
|
37
|
+
export async function swDisconnect(client) {
|
|
38
|
+
const resp = await client.request('sw.disconnect');
|
|
39
|
+
if (resp.error)
|
|
40
|
+
throw new Error(`sw.disconnect failed: ${resp.error.message}`);
|
|
41
|
+
return resp.result;
|
|
42
|
+
}
|
|
43
|
+
export async function swNewDocument(client, params) {
|
|
44
|
+
const resp = await client.request('sw.new_document', {
|
|
45
|
+
type: params.type,
|
|
46
|
+
...(params.templatePath ? { templatePath: params.templatePath } : {}),
|
|
47
|
+
});
|
|
48
|
+
if (resp.error)
|
|
49
|
+
throw new Error(`sw.new_document failed: ${resp.error.message}`);
|
|
50
|
+
return resp.result;
|
|
51
|
+
}
|
|
52
|
+
export async function swOpenDocument(client, params) {
|
|
53
|
+
const resp = await client.request('sw.open_document', { path: params.path });
|
|
54
|
+
if (resp.error)
|
|
55
|
+
throw new Error(`sw.open_document failed: ${resp.error.message}`);
|
|
56
|
+
return resp.result;
|
|
57
|
+
}
|
|
58
|
+
export async function swCloseDocument(client, params) {
|
|
59
|
+
const resp = await client.request('sw.close_document', { path: params.path });
|
|
60
|
+
if (resp.error)
|
|
61
|
+
throw new Error(`sw.close_document failed: ${resp.error.message}`);
|
|
62
|
+
return resp.result;
|
|
63
|
+
}
|
|
64
|
+
export async function swSaveDocument(client, params) {
|
|
65
|
+
const resp = await client.request('sw.save_document', { path: params.path });
|
|
66
|
+
if (resp.error)
|
|
67
|
+
throw new Error(`sw.save_document failed: ${resp.error.message}`);
|
|
68
|
+
return resp.result;
|
|
69
|
+
}
|
|
70
|
+
export async function swListDocuments(client) {
|
|
71
|
+
const resp = await client.request('sw.list_documents');
|
|
72
|
+
if (resp.error)
|
|
73
|
+
throw new Error(`sw.list_documents failed: ${resp.error.message}`);
|
|
74
|
+
return resp.result ?? [];
|
|
75
|
+
}
|
|
76
|
+
export async function swGetActiveDocument(client) {
|
|
77
|
+
const resp = await client.request('sw.get_active_document');
|
|
78
|
+
if (resp.error)
|
|
79
|
+
throw new Error(`sw.get_active_document failed: ${resp.error.message}`);
|
|
80
|
+
return resp.result ?? null;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=document-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-tools.js","sourceRoot":"","sources":["../../src/tools/document-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { NamedPipeClient } from '../transport/named-pipe-client.js';
|
|
3
|
+
export interface SwFeatureInfo {
|
|
4
|
+
name: string;
|
|
5
|
+
type: string;
|
|
6
|
+
}
|
|
7
|
+
/** End condition for extrude/cut. Matches C# EndCondition enum values (swEndConditions_e). */
|
|
8
|
+
export declare const EndConditionSchema: z.ZodDefault<z.ZodEnum<["Blind", "ThroughAll", "MidPlane"]>>;
|
|
9
|
+
export declare const ExtrudeSchema: z.ZodObject<{
|
|
10
|
+
depth: z.ZodNumber;
|
|
11
|
+
endCondition: z.ZodOptional<z.ZodDefault<z.ZodEnum<["Blind", "ThroughAll", "MidPlane"]>>>;
|
|
12
|
+
flipDirection: z.ZodDefault<z.ZodBoolean>;
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
depth: number;
|
|
15
|
+
flipDirection: boolean;
|
|
16
|
+
endCondition?: "Blind" | "ThroughAll" | "MidPlane" | undefined;
|
|
17
|
+
}, {
|
|
18
|
+
depth: number;
|
|
19
|
+
endCondition?: "Blind" | "ThroughAll" | "MidPlane" | undefined;
|
|
20
|
+
flipDirection?: boolean | undefined;
|
|
21
|
+
}>;
|
|
22
|
+
export declare const ExtrudeCutSchema: z.ZodObject<{
|
|
23
|
+
depth: z.ZodNumber;
|
|
24
|
+
endCondition: z.ZodOptional<z.ZodDefault<z.ZodEnum<["Blind", "ThroughAll", "MidPlane"]>>>;
|
|
25
|
+
flipDirection: z.ZodDefault<z.ZodBoolean>;
|
|
26
|
+
}, "strip", z.ZodTypeAny, {
|
|
27
|
+
depth: number;
|
|
28
|
+
flipDirection: boolean;
|
|
29
|
+
endCondition?: "Blind" | "ThroughAll" | "MidPlane" | undefined;
|
|
30
|
+
}, {
|
|
31
|
+
depth: number;
|
|
32
|
+
endCondition?: "Blind" | "ThroughAll" | "MidPlane" | undefined;
|
|
33
|
+
flipDirection?: boolean | undefined;
|
|
34
|
+
}>;
|
|
35
|
+
export declare const RevolveSchema: z.ZodObject<{
|
|
36
|
+
angleDegrees: z.ZodNumber;
|
|
37
|
+
isCut: z.ZodDefault<z.ZodBoolean>;
|
|
38
|
+
}, "strip", z.ZodTypeAny, {
|
|
39
|
+
angleDegrees: number;
|
|
40
|
+
isCut: boolean;
|
|
41
|
+
}, {
|
|
42
|
+
angleDegrees: number;
|
|
43
|
+
isCut?: boolean | undefined;
|
|
44
|
+
}>;
|
|
45
|
+
export declare const FilletSchema: z.ZodObject<{
|
|
46
|
+
radius: z.ZodNumber;
|
|
47
|
+
}, "strip", z.ZodTypeAny, {
|
|
48
|
+
radius: number;
|
|
49
|
+
}, {
|
|
50
|
+
radius: number;
|
|
51
|
+
}>;
|
|
52
|
+
export declare const ChamferSchema: z.ZodObject<{
|
|
53
|
+
distance: z.ZodNumber;
|
|
54
|
+
}, "strip", z.ZodTypeAny, {
|
|
55
|
+
distance: number;
|
|
56
|
+
}, {
|
|
57
|
+
distance: number;
|
|
58
|
+
}>;
|
|
59
|
+
export declare const ShellSchema: z.ZodObject<{
|
|
60
|
+
thickness: z.ZodNumber;
|
|
61
|
+
}, "strip", z.ZodTypeAny, {
|
|
62
|
+
thickness: number;
|
|
63
|
+
}, {
|
|
64
|
+
thickness: number;
|
|
65
|
+
}>;
|
|
66
|
+
export declare const SimpleHoleSchema: z.ZodObject<{
|
|
67
|
+
diameter: z.ZodNumber;
|
|
68
|
+
depth: z.ZodNumber;
|
|
69
|
+
}, "strip", z.ZodTypeAny, {
|
|
70
|
+
depth: number;
|
|
71
|
+
diameter: number;
|
|
72
|
+
}, {
|
|
73
|
+
depth: number;
|
|
74
|
+
diameter: number;
|
|
75
|
+
}>;
|
|
76
|
+
export declare function swExtrude(client: NamedPipeClient, params: z.input<typeof ExtrudeSchema>): Promise<SwFeatureInfo>;
|
|
77
|
+
export declare function swExtrudeCut(client: NamedPipeClient, params: z.input<typeof ExtrudeCutSchema>): Promise<SwFeatureInfo>;
|
|
78
|
+
export declare function swRevolve(client: NamedPipeClient, params: z.input<typeof RevolveSchema>): Promise<SwFeatureInfo>;
|
|
79
|
+
export declare function swFillet(client: NamedPipeClient, params: z.infer<typeof FilletSchema>): Promise<SwFeatureInfo>;
|
|
80
|
+
export declare function swChamfer(client: NamedPipeClient, params: z.infer<typeof ChamferSchema>): Promise<SwFeatureInfo>;
|
|
81
|
+
export declare function swShell(client: NamedPipeClient, params: z.infer<typeof ShellSchema>): Promise<SwFeatureInfo>;
|
|
82
|
+
export declare function swSimpleHole(client: NamedPipeClient, params: z.infer<typeof SimpleHoleSchema>): Promise<SwFeatureInfo>;
|
|
83
|
+
//# sourceMappingURL=feature-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-tools.d.ts","sourceRoot":"","sources":["../../src/tools/feature-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAIzE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAID,8FAA8F;AAC9F,eAAO,MAAM,kBAAkB,8DAG2C,CAAC;AAI3E,eAAO,MAAM,aAAa;;;;;;;;;;;;EAOxB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAO3B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;EAUxB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;EAEvB,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;EAExB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;EAEtB,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;EAG3B,CAAC;AAIH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GACpC,OAAO,CAAC,aAAa,CAAC,CAQxB;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,GACvC,OAAO,CAAC,aAAa,CAAC,CAQxB;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GACpC,OAAO,CAAC,aAAa,CAAC,CAOxB;AAED,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,GACnC,OAAO,CAAC,aAAa,CAAC,CAIxB;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,GACpC,OAAO,CAAC,aAAa,CAAC,CAIxB;AAED,wBAAsB,OAAO,CAC3B,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GAClC,OAAO,CAAC,aAAa,CAAC,CAIxB;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,GACvC,OAAO,CAAC,aAAa,CAAC,CAOxB"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
// ── Shared enum ─────────────────────────────────────────────────
|
|
3
|
+
/** End condition for extrude/cut. Matches C# EndCondition enum values (swEndConditions_e). */
|
|
4
|
+
export const EndConditionSchema = z
|
|
5
|
+
.enum(['Blind', 'ThroughAll', 'MidPlane'])
|
|
6
|
+
.default('Blind')
|
|
7
|
+
.describe('End condition: Blind (fixed depth), ThroughAll, or MidPlane');
|
|
8
|
+
// ── Zod input schemas ───────────────────────────────────────────
|
|
9
|
+
export const ExtrudeSchema = z.object({
|
|
10
|
+
depth: z.number().positive().describe('Extrusion depth (meters). Used when endCondition=Blind.'),
|
|
11
|
+
endCondition: EndConditionSchema.optional(),
|
|
12
|
+
flipDirection: z
|
|
13
|
+
.boolean()
|
|
14
|
+
.default(false)
|
|
15
|
+
.describe('Flip the extrude direction if true'),
|
|
16
|
+
});
|
|
17
|
+
export const ExtrudeCutSchema = z.object({
|
|
18
|
+
depth: z.number().positive().describe('Cut depth (meters). Used when endCondition=Blind.'),
|
|
19
|
+
endCondition: EndConditionSchema.optional(),
|
|
20
|
+
flipDirection: z
|
|
21
|
+
.boolean()
|
|
22
|
+
.default(false)
|
|
23
|
+
.describe('Flip the cut direction if true'),
|
|
24
|
+
});
|
|
25
|
+
export const RevolveSchema = z.object({
|
|
26
|
+
angleDegrees: z
|
|
27
|
+
.number()
|
|
28
|
+
.positive()
|
|
29
|
+
.max(360)
|
|
30
|
+
.describe('Revolve angle in degrees (0–360)'),
|
|
31
|
+
isCut: z
|
|
32
|
+
.boolean()
|
|
33
|
+
.default(false)
|
|
34
|
+
.describe('If true, creates a revolve cut; otherwise a boss revolve'),
|
|
35
|
+
});
|
|
36
|
+
export const FilletSchema = z.object({
|
|
37
|
+
radius: z.number().positive().describe('Fillet radius (meters)'),
|
|
38
|
+
});
|
|
39
|
+
export const ChamferSchema = z.object({
|
|
40
|
+
distance: z.number().positive().describe('Chamfer distance (meters)'),
|
|
41
|
+
});
|
|
42
|
+
export const ShellSchema = z.object({
|
|
43
|
+
thickness: z.number().positive().describe('Shell wall thickness (meters)'),
|
|
44
|
+
});
|
|
45
|
+
export const SimpleHoleSchema = z.object({
|
|
46
|
+
diameter: z.number().positive().describe('Hole diameter (meters)'),
|
|
47
|
+
depth: z.number().positive().describe('Hole depth (meters)'),
|
|
48
|
+
});
|
|
49
|
+
// ── Tool handler functions ──────────────────────────────────────
|
|
50
|
+
export async function swExtrude(client, params) {
|
|
51
|
+
const resp = await client.request('sw.feature.extrude', {
|
|
52
|
+
depth: params.depth,
|
|
53
|
+
...(params.endCondition ? { endCondition: params.endCondition } : {}),
|
|
54
|
+
...(params.flipDirection !== undefined ? { flipDirection: params.flipDirection } : {}),
|
|
55
|
+
});
|
|
56
|
+
if (resp.error)
|
|
57
|
+
throw new Error(`sw.feature.extrude failed: ${resp.error.message}`);
|
|
58
|
+
return resp.result;
|
|
59
|
+
}
|
|
60
|
+
export async function swExtrudeCut(client, params) {
|
|
61
|
+
const resp = await client.request('sw.feature.extrude_cut', {
|
|
62
|
+
depth: params.depth,
|
|
63
|
+
...(params.endCondition ? { endCondition: params.endCondition } : {}),
|
|
64
|
+
...(params.flipDirection !== undefined ? { flipDirection: params.flipDirection } : {}),
|
|
65
|
+
});
|
|
66
|
+
if (resp.error)
|
|
67
|
+
throw new Error(`sw.feature.extrude_cut failed: ${resp.error.message}`);
|
|
68
|
+
return resp.result;
|
|
69
|
+
}
|
|
70
|
+
export async function swRevolve(client, params) {
|
|
71
|
+
const resp = await client.request('sw.feature.revolve', {
|
|
72
|
+
angleDegrees: params.angleDegrees,
|
|
73
|
+
isCut: params.isCut ?? false,
|
|
74
|
+
});
|
|
75
|
+
if (resp.error)
|
|
76
|
+
throw new Error(`sw.feature.revolve failed: ${resp.error.message}`);
|
|
77
|
+
return resp.result;
|
|
78
|
+
}
|
|
79
|
+
export async function swFillet(client, params) {
|
|
80
|
+
const resp = await client.request('sw.feature.fillet', { radius: params.radius });
|
|
81
|
+
if (resp.error)
|
|
82
|
+
throw new Error(`sw.feature.fillet failed: ${resp.error.message}`);
|
|
83
|
+
return resp.result;
|
|
84
|
+
}
|
|
85
|
+
export async function swChamfer(client, params) {
|
|
86
|
+
const resp = await client.request('sw.feature.chamfer', { distance: params.distance });
|
|
87
|
+
if (resp.error)
|
|
88
|
+
throw new Error(`sw.feature.chamfer failed: ${resp.error.message}`);
|
|
89
|
+
return resp.result;
|
|
90
|
+
}
|
|
91
|
+
export async function swShell(client, params) {
|
|
92
|
+
const resp = await client.request('sw.feature.shell', { thickness: params.thickness });
|
|
93
|
+
if (resp.error)
|
|
94
|
+
throw new Error(`sw.feature.shell failed: ${resp.error.message}`);
|
|
95
|
+
return resp.result;
|
|
96
|
+
}
|
|
97
|
+
export async function swSimpleHole(client, params) {
|
|
98
|
+
const resp = await client.request('sw.feature.simple_hole', {
|
|
99
|
+
diameter: params.diameter,
|
|
100
|
+
depth: params.depth,
|
|
101
|
+
});
|
|
102
|
+
if (resp.error)
|
|
103
|
+
throw new Error(`sw.feature.simple_hole failed: ${resp.error.message}`);
|
|
104
|
+
return resp.result;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=feature-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-tools.js","sourceRoot":"","sources":["../../src/tools/feature-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,mEAAmE;AAEnE,8FAA8F;AAC9F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,IAAI,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;KACzC,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,6DAA6D,CAAC,CAAC;AAE3E,mEAAmE;AAEnE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;IAChG,YAAY,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IAC3C,aAAa,EAAE,CAAC;SACb,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,oCAAoC,CAAC;CAClD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IAC1F,YAAY,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IAC3C,aAAa,EAAE,CAAC;SACb,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,gCAAgC,CAAC;CAC9C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CAAC,kCAAkC,CAAC;IAC/C,KAAK,EAAE,CAAC;SACL,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,0DAA0D,CAAC;CACxE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;CACjE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;CACtE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;CAC3E,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAClE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CAC7D,CAAC,CAAC;AAEH,mEAAmE;AAEnE,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAuB,EACvB,MAAqC;IAErC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE;QACtD,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvF,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACpF,OAAO,IAAI,CAAC,MAAuB,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAuB,EACvB,MAAwC;IAExC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,wBAAwB,EAAE;QAC1D,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvF,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACxF,OAAO,IAAI,CAAC,MAAuB,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAuB,EACvB,MAAqC;IAErC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE;QACtD,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;KAC7B,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACpF,OAAO,IAAI,CAAC,MAAuB,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAuB,EACvB,MAAoC;IAEpC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAClF,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACnF,OAAO,IAAI,CAAC,MAAuB,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAuB,EACvB,MAAqC;IAErC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvF,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACpF,OAAO,IAAI,CAAC,MAAuB,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAuB,EACvB,MAAmC;IAEnC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACvF,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAClF,OAAO,IAAI,CAAC,MAAuB,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAuB,EACvB,MAAwC;IAExC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,wBAAwB,EAAE;QAC1D,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACxF,OAAO,IAAI,CAAC,MAAuB,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { NamedPipeClient } from '../transport/named-pipe-client.js';
|
|
3
|
+
export interface SwSelectionResult {
|
|
4
|
+
success: boolean;
|
|
5
|
+
message: string;
|
|
6
|
+
}
|
|
7
|
+
export interface SwSelectableEntityInfo {
|
|
8
|
+
index: number;
|
|
9
|
+
entityType: 'Face' | 'Edge' | 'Vertex';
|
|
10
|
+
componentName: string | null;
|
|
11
|
+
box: number[] | null;
|
|
12
|
+
}
|
|
13
|
+
export declare const SelectableEntityTypeSchema: z.ZodEnum<["Face", "Edge", "Vertex"]>;
|
|
14
|
+
export declare const SelectByNameSchema: z.ZodObject<{
|
|
15
|
+
name: z.ZodString;
|
|
16
|
+
selType: z.ZodString;
|
|
17
|
+
}, "strip", z.ZodTypeAny, {
|
|
18
|
+
name: string;
|
|
19
|
+
selType: string;
|
|
20
|
+
}, {
|
|
21
|
+
name: string;
|
|
22
|
+
selType: string;
|
|
23
|
+
}>;
|
|
24
|
+
export declare const ClearSelectionSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
25
|
+
export declare const ListEntitiesSchema: z.ZodObject<{
|
|
26
|
+
entityType: z.ZodOptional<z.ZodEnum<["Face", "Edge", "Vertex"]>>;
|
|
27
|
+
componentName: z.ZodOptional<z.ZodString>;
|
|
28
|
+
}, "strip", z.ZodTypeAny, {
|
|
29
|
+
entityType?: "Face" | "Edge" | "Vertex" | undefined;
|
|
30
|
+
componentName?: string | undefined;
|
|
31
|
+
}, {
|
|
32
|
+
entityType?: "Face" | "Edge" | "Vertex" | undefined;
|
|
33
|
+
componentName?: string | undefined;
|
|
34
|
+
}>;
|
|
35
|
+
export declare const SelectEntitySchema: z.ZodObject<{
|
|
36
|
+
entityType: z.ZodEnum<["Face", "Edge", "Vertex"]>;
|
|
37
|
+
index: z.ZodNumber;
|
|
38
|
+
append: z.ZodDefault<z.ZodBoolean>;
|
|
39
|
+
mark: z.ZodDefault<z.ZodNumber>;
|
|
40
|
+
componentName: z.ZodOptional<z.ZodString>;
|
|
41
|
+
}, "strip", z.ZodTypeAny, {
|
|
42
|
+
entityType: "Face" | "Edge" | "Vertex";
|
|
43
|
+
index: number;
|
|
44
|
+
append: boolean;
|
|
45
|
+
mark: number;
|
|
46
|
+
componentName?: string | undefined;
|
|
47
|
+
}, {
|
|
48
|
+
entityType: "Face" | "Edge" | "Vertex";
|
|
49
|
+
index: number;
|
|
50
|
+
componentName?: string | undefined;
|
|
51
|
+
append?: boolean | undefined;
|
|
52
|
+
mark?: number | undefined;
|
|
53
|
+
}>;
|
|
54
|
+
export declare function swSelectByName(client: NamedPipeClient, params: z.infer<typeof SelectByNameSchema>): Promise<SwSelectionResult>;
|
|
55
|
+
export declare function swClearSelection(client: NamedPipeClient): Promise<void>;
|
|
56
|
+
export declare function swListEntities(client: NamedPipeClient, params?: z.input<typeof ListEntitiesSchema>): Promise<SwSelectableEntityInfo[]>;
|
|
57
|
+
export declare function swSelectEntity(client: NamedPipeClient, params: z.input<typeof SelectEntitySchema>): Promise<SwSelectionResult>;
|
|
58
|
+
//# sourceMappingURL=selection-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection-tools.d.ts","sourceRoot":"","sources":["../../src/tools/selection-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAIzE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,0BAA0B,uCAEmB,CAAC;AAI3D,eAAO,MAAM,kBAAkB;;;;;;;;;EAQ7B,CAAC;AAEH,eAAO,MAAM,oBAAoB,gDAAwD,CAAC;AAE1F,eAAO,MAAM,kBAAkB;;;;;;;;;EAO7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;EAU7B,CAAC;AAIH,wBAAsB,cAAc,CAClC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,GACzC,OAAO,CAAC,iBAAiB,CAAC,CAO5B;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7E;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,eAAe,EACvB,MAAM,GAAE,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAM,GAC9C,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAOnC;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,GACzC,OAAO,CAAC,iBAAiB,CAAC,CAU5B"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const SelectableEntityTypeSchema = z
|
|
3
|
+
.enum(['Face', 'Edge', 'Vertex'])
|
|
4
|
+
.describe('Topology entity kind: Face, Edge, or Vertex');
|
|
5
|
+
// ── Zod input schemas ───────────────────────────────────────────
|
|
6
|
+
export const SelectByNameSchema = z.object({
|
|
7
|
+
name: z.string().min(1).describe('Name of the entity to select (e.g. "前视基准面")'),
|
|
8
|
+
selType: z
|
|
9
|
+
.string()
|
|
10
|
+
.min(1)
|
|
11
|
+
.describe('Selection type string used by SolidWorks, e.g. "PLANE", "EDGE", "FACE", "VERTEX"'),
|
|
12
|
+
});
|
|
13
|
+
export const ClearSelectionSchema = z.object({}).describe('Clear all current selections');
|
|
14
|
+
export const ListEntitiesSchema = z.object({
|
|
15
|
+
entityType: SelectableEntityTypeSchema.optional(),
|
|
16
|
+
componentName: z
|
|
17
|
+
.string()
|
|
18
|
+
.min(1)
|
|
19
|
+
.optional()
|
|
20
|
+
.describe('Optional component name filter when the active document is an assembly'),
|
|
21
|
+
});
|
|
22
|
+
export const SelectEntitySchema = z.object({
|
|
23
|
+
entityType: SelectableEntityTypeSchema,
|
|
24
|
+
index: z.number().int().nonnegative().describe('Entity index returned by sw_list_entities'),
|
|
25
|
+
append: z.boolean().default(false).describe('Append to the current selection if true'),
|
|
26
|
+
mark: z.number().int().default(0).describe('Selection mark used by downstream SolidWorks APIs'),
|
|
27
|
+
componentName: z
|
|
28
|
+
.string()
|
|
29
|
+
.min(1)
|
|
30
|
+
.optional()
|
|
31
|
+
.describe('Optional component name filter when the active document is an assembly'),
|
|
32
|
+
});
|
|
33
|
+
// ── Tool handler functions ──────────────────────────────────────
|
|
34
|
+
export async function swSelectByName(client, params) {
|
|
35
|
+
const resp = await client.request('sw.select.by_name', {
|
|
36
|
+
name: params.name,
|
|
37
|
+
selType: params.selType,
|
|
38
|
+
});
|
|
39
|
+
if (resp.error)
|
|
40
|
+
throw new Error(`sw.select.by_name failed: ${resp.error.message}`);
|
|
41
|
+
return resp.result;
|
|
42
|
+
}
|
|
43
|
+
export async function swClearSelection(client) {
|
|
44
|
+
const resp = await client.request('sw.select.clear');
|
|
45
|
+
if (resp.error)
|
|
46
|
+
throw new Error(`sw.select.clear failed: ${resp.error.message}`);
|
|
47
|
+
}
|
|
48
|
+
export async function swListEntities(client, params = {}) {
|
|
49
|
+
const resp = await client.request('sw.select.list_entities', {
|
|
50
|
+
...(params.entityType ? { entityType: params.entityType } : {}),
|
|
51
|
+
...(params.componentName ? { componentName: params.componentName } : {}),
|
|
52
|
+
});
|
|
53
|
+
if (resp.error)
|
|
54
|
+
throw new Error(`sw.select.list_entities failed: ${resp.error.message}`);
|
|
55
|
+
return resp.result ?? [];
|
|
56
|
+
}
|
|
57
|
+
export async function swSelectEntity(client, params) {
|
|
58
|
+
const resp = await client.request('sw.select.entity', {
|
|
59
|
+
entityType: params.entityType,
|
|
60
|
+
index: params.index,
|
|
61
|
+
append: params.append ?? false,
|
|
62
|
+
mark: params.mark ?? 0,
|
|
63
|
+
...(params.componentName ? { componentName: params.componentName } : {}),
|
|
64
|
+
});
|
|
65
|
+
if (resp.error)
|
|
66
|
+
throw new Error(`sw.select.entity failed: ${resp.error.message}`);
|
|
67
|
+
return resp.result;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=selection-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection-tools.js","sourceRoot":"","sources":["../../src/tools/selection-tools.ts"],"names":[],"mappings":"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"}
|