fusion-needle3 / tools.json
CharlZKP's picture
Fusion Needle 0.2.0
6a4ed63 verified
Raw History Blame Contribute Delete
30.5 kB
[
{
"name": "create_sketch",
"description": "Start a new sketch on an origin plane or on a face of the body.",
"parameters": {
"type": "object",
"properties": {
"plane": {
"type": "string",
"enum": [
"xy",
"xz",
"yz"
],
"default": "xy",
"description": "origin plane: XY (top plane), XZ (front plane), YZ (right plane)"
},
"face": {
"type": "string",
"enum": [
"top",
"bottom",
"front",
"back",
"left",
"right"
],
"description": "body face to sketch on instead of a plane"
},
"offset": {
"type": "number",
"description": "offset from the plane in mm"
}
},
"required": []
}
},
{
"name": "draw_rectangle",
"description": "Draw a rectangle in the active sketch, centred on a point.",
"parameters": {
"type": "object",
"properties": {
"width": {
"type": "number",
"exclusiveMinimum": 0,
"description": "size along X in mm, the first number of 40x30"
},
"height": {
"type": "number",
"exclusiveMinimum": 0,
"description": "size along Y in mm, the second number of 40x30"
},
"center_x": {
"type": "number",
"default": 0,
"description": "centre X in mm"
},
"center_y": {
"type": "number",
"default": 0,
"description": "centre Y in mm"
}
},
"required": [
"width",
"height"
]
}
},
{
"name": "draw_circle",
"description": "Draw a circle in the active sketch.",
"parameters": {
"type": "object",
"properties": {
"diameter": {
"type": "number",
"exclusiveMinimum": 0,
"description": "diameter in mm, the number after Ø or 'dia'"
},
"center_x": {
"type": "number",
"default": 0,
"description": "centre X in mm"
},
"center_y": {
"type": "number",
"default": 0,
"description": "centre Y in mm"
}
},
"required": [
"diameter"
]
}
},
{
"name": "draw_line",
"description": "Draw a straight line in the active sketch between two points.",
"parameters": {
"type": "object",
"properties": {
"start_x": {
"type": "number",
"description": "start X in mm, the point after 'from'"
},
"start_y": {
"type": "number",
"description": "start Y in mm, the point after 'from'"
},
"end_x": {
"type": "number",
"description": "end X in mm, the point after 'to'"
},
"end_y": {
"type": "number",
"description": "end Y in mm, the point after 'to'"
}
},
"required": [
"start_x",
"start_y",
"end_x",
"end_y"
]
}
},
{
"name": "draw_slot",
"description": "Draw a straight slot (obround) in the active sketch; 20x6 = length 20, width 6.",
"parameters": {
"type": "object",
"properties": {
"length": {
"type": "number",
"exclusiveMinimum": 0,
"description": "centre-to-centre length in mm"
},
"width": {
"type": "number",
"exclusiveMinimum": 0,
"description": "slot width in mm"
},
"center_x": {
"type": "number",
"default": 0,
"description": "centre X in mm"
},
"center_y": {
"type": "number",
"default": 0,
"description": "centre Y in mm"
},
"angle": {
"type": "number",
"default": 0,
"description": "rotation in degrees"
}
},
"required": [
"length",
"width"
]
}
},
{
"name": "add_dimension",
"description": "Add a driving dimension to entities of the active sketch.",
"parameters": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"distance",
"horizontal",
"vertical",
"diameter",
"radius",
"angle"
],
"description": "type of dimension"
},
"value": {
"type": "number",
"description": "dimension value in mm, or degrees for angle"
},
"entity_one": {
"type": "integer",
"minimum": 1,
"description": "first entity number, e.g. the 2 of line 2"
},
"entity_two": {
"type": "integer",
"minimum": 1,
"description": "second entity number"
}
},
"required": [
"kind",
"value"
]
}
},
{
"name": "add_constraint",
"description": "Add a geometric constraint between entities of the active sketch.",
"parameters": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"horizontal",
"vertical",
"parallel",
"perpendicular",
"tangent",
"equal",
"coincident",
"concentric",
"midpoint",
"symmetric",
"fix"
],
"description": "type of constraint"
},
"entity_one": {
"type": "integer",
"minimum": 1,
"description": "first entity number, e.g. the 2 of line 2"
},
"entity_two": {
"type": "integer",
"minimum": 1,
"description": "second entity number"
}
},
"required": [
"kind"
]
}
},
{
"name": "extrude",
"description": "Extrude (pad) the active sketch profile into a solid, or cut it out of the body (pocket).",
"parameters": {
"type": "object",
"properties": {
"distance": {
"type": "number",
"exclusiveMinimum": 0,
"description": "distance in mm: thickness, height or depth"
},
"operation": {
"type": "string",
"enum": [
"new_body",
"join",
"cut",
"intersect"
],
"default": "new_body",
"description": "join adds material (boss), cut removes it (pocket)"
},
"direction": {
"type": "string",
"enum": [
"positive",
"negative",
"symmetric"
],
"default": "positive",
"description": "side of the sketch plane; symmetric = both sides"
},
"extent": {
"type": "string",
"enum": [
"distance",
"through_all"
],
"default": "distance",
"description": "through_all = through everything"
}
},
"required": []
}
},
{
"name": "create_hole",
"description": "Drill a hole into a face of the body.",
"parameters": {
"type": "object",
"properties": {
"diameter": {
"type": "number",
"exclusiveMinimum": 0,
"description": "hole diameter in mm, the number after Ø or 'dia'"
},
"x": {
"type": "number",
"default": 0,
"description": "centre X in mm"
},
"y": {
"type": "number",
"default": 0,
"description": "centre Y in mm"
},
"depth": {
"type": "number",
"exclusiveMinimum": 0,
"description": "depth in mm of a blind hole; omit for a through hole"
},
"face": {
"type": "string",
"enum": [
"top",
"bottom",
"front",
"back",
"left",
"right"
],
"default": "top",
"description": "face to drill into"
}
},
"required": [
"diameter"
]
}
},
{
"name": "circular_pattern",
"description": "Repeat a feature or body around an axis (polar pattern, circular array).",
"parameters": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"minimum": 2,
"description": "total number of instances, the number after x or ×"
},
"axis": {
"type": "string",
"enum": [
"x",
"y",
"z"
],
"default": "z",
"description": "axis to rotate around"
},
"angle": {
"type": "number",
"default": 360,
"description": "total angle in degrees"
},
"target": {
"type": "string",
"enum": [
"last_feature",
"body"
],
"default": "last_feature",
"description": "what to repeat"
}
},
"required": [
"count"
]
}
},
{
"name": "rectangular_pattern",
"description": "Repeat a feature or body in a row or grid along X and Y (linear pattern).",
"parameters": {
"type": "object",
"properties": {
"x_count": {
"type": "integer",
"minimum": 1,
"description": "instances along X"
},
"x_spacing": {
"type": "number",
"description": "spacing along X in mm"
},
"y_count": {
"type": "integer",
"minimum": 1,
"default": 1,
"description": "instances along Y"
},
"y_spacing": {
"type": "number",
"description": "spacing along Y in mm"
},
"target": {
"type": "string",
"enum": [
"last_feature",
"body"
],
"default": "last_feature",
"description": "what to repeat"
}
},
"required": [
"x_count",
"x_spacing"
]
}
},
{
"name": "mirror",
"description": "Mirror a feature or body across an origin plane.",
"parameters": {
"type": "object",
"properties": {
"plane": {
"type": "string",
"enum": [
"xy",
"xz",
"yz"
],
"description": "mirror plane"
},
"target": {
"type": "string",
"enum": [
"last_feature",
"body"
],
"default": "last_feature",
"description": "what to mirror"
}
},
"required": [
"plane"
]
}
},
{
"name": "fillet",
"description": "Round edges of the body with a radius.",
"parameters": {
"type": "object",
"properties": {
"radius": {
"type": "number",
"exclusiveMinimum": 0,
"description": "fillet radius in mm, the number after R"
},
"edges": {
"type": "string",
"enum": [
"all",
"top",
"bottom",
"vertical"
],
"default": "all",
"description": "which edges of the body"
}
},
"required": [
"radius"
]
}
},
{
"name": "chamfer",
"description": "Bevel edges of the body with an equal-distance chamfer.",
"parameters": {
"type": "object",
"properties": {
"distance": {
"type": "number",
"exclusiveMinimum": 0,
"description": "chamfer distance in mm"
},
"edges": {
"type": "string",
"enum": [
"all",
"top",
"bottom",
"vertical"
],
"default": "all",
"description": "which edges of the body"
}
},
"required": [
"distance"
]
}
},
{
"name": "shell",
"description": "Hollow out the body, leaving walls of a given thickness and one face open.",
"parameters": {
"type": "object",
"properties": {
"thickness": {
"type": "number",
"exclusiveMinimum": 0,
"description": "wall thickness in mm"
},
"open_face": {
"type": "string",
"enum": [
"top",
"bottom",
"front",
"back",
"left",
"right"
],
"default": "top",
"description": "face to remove"
}
},
"required": [
"thickness"
]
}
},
{
"name": "undo",
"description": "Undo the most recent operation.",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
},
{
"name": "redo",
"description": "Redo the most recently undone operation.",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
},
{
"name": "draw_polygon",
"description": "Draw a regular polygon such as a hexagon in the active sketch.",
"parameters": {
"type": "object",
"properties": {
"shape": {
"type": "string",
"enum": [
"triangle",
"pentagon",
"hexagon",
"octagon"
],
"description": "which polygon"
},
"size": {
"type": "number",
"exclusiveMinimum": 0,
"description": "size in mm"
},
"measure": {
"type": "string",
"enum": [
"flats",
"corners",
"side"
],
"default": "flats",
"description": "size is across flats, across corners or one side"
},
"center_x": {
"type": "number",
"default": 0,
"description": "centre X in mm"
},
"center_y": {
"type": "number",
"default": 0,
"description": "centre Y in mm"
},
"angle": {
"type": "number",
"default": 0,
"description": "rotation in degrees"
}
},
"required": [
"shape",
"size"
]
}
},
{
"name": "draw_arc",
"description": "Draw a circular arc in the active sketch, counter-clockwise from a start to an end angle.",
"parameters": {
"type": "object",
"properties": {
"radius": {
"type": "number",
"exclusiveMinimum": 0,
"description": "radius in mm, the number after R"
},
"start_angle": {
"type": "number",
"default": 0,
"description": "start angle in degrees"
},
"end_angle": {
"type": "number",
"default": 180,
"description": "end angle in degrees"
},
"center_x": {
"type": "number",
"default": 0,
"description": "centre X in mm"
},
"center_y": {
"type": "number",
"default": 0,
"description": "centre Y in mm"
}
},
"required": [
"radius"
]
}
},
{
"name": "revolve",
"description": "Revolve the active sketch profile around an origin axis into a solid (turned part).",
"parameters": {
"type": "object",
"properties": {
"axis": {
"type": "string",
"enum": [
"x",
"y",
"z"
],
"description": "axis to revolve around"
},
"angle": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 360,
"default": 360,
"description": "angle in degrees"
},
"operation": {
"type": "string",
"enum": [
"new_body",
"join",
"cut",
"intersect"
],
"default": "new_body",
"description": "join adds material, cut removes it"
}
},
"required": [
"axis"
]
}
},
{
"name": "combine",
"description": "Boolean of bodies: join the other bodies to the first body, subtract them from it, or keep the overlap.",
"parameters": {
"type": "object",
"properties": {
"operation": {
"type": "string",
"enum": [
"join",
"cut",
"intersect"
],
"default": "join",
"description": "join merges, cut subtracts, intersect keeps the overlap"
}
},
"required": []
}
},
{
"name": "move_body",
"description": "Move the body by a distance along X, Y and Z.",
"parameters": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -10000,
"maximum": 10000,
"default": 0,
"description": "distance along X in mm"
},
"y": {
"type": "number",
"minimum": -10000,
"maximum": 10000,
"default": 0,
"description": "distance along Y in mm"
},
"z": {
"type": "number",
"minimum": -10000,
"maximum": 10000,
"default": 0,
"description": "distance along Z (up) in mm"
}
},
"required": []
}
},
{
"name": "set_material",
"description": "Assign a physical material to the body.",
"parameters": {
"type": "object",
"properties": {
"material": {
"type": "string",
"enum": [
"steel",
"stainless_steel",
"aluminum",
"brass",
"copper",
"titanium",
"abs",
"nylon"
],
"description": "material named in the request"
}
},
"required": [
"material"
]
}
},
{
"name": "set_parameter",
"description": "Create a named user parameter or change its value.",
"parameters": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]{0,31}$",
"maxLength": 32,
"description": "parameter name exactly as written, e.g. wall_t"
},
"value": {
"type": "number",
"minimum": -100000,
"maximum": 100000,
"description": "the number after = or 'to'"
},
"unit": {
"type": "string",
"enum": [
"mm",
"cm",
"inch",
"deg",
"none"
],
"default": "mm",
"description": "unit of the value; none for a plain count"
}
},
"required": [
"name",
"value"
]
}
},
{
"name": "list_parameters",
"description": "List the user parameters with their values.",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
},
{
"name": "measure_body",
"description": "Report the size (bounding box), volume and mass of each body.",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
},
{
"name": "check_timeline",
"description": "Check the timeline for features with errors or warnings.",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
},
{
"name": "capture_view",
"description": "Take a screenshot of the model, optionally from a standard view direction.",
"parameters": {
"type": "object",
"properties": {
"direction": {
"type": "string",
"enum": [
"current",
"front",
"back",
"bottom",
"top",
"left",
"right",
"iso-bottom-left",
"iso-bottom-right",
"iso-top-left",
"iso-top-right"
],
"default": "current",
"description": "view to capture from; iso = isometric corner"
}
},
"required": []
}
},
{
"name": "fit_view",
"description": "Zoom the view so the whole model fits the window.",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
},
{
"name": "export_model",
"description": "Export the design to a file in a named format.",
"parameters": {
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"step",
"stl",
"3mf",
"iges",
"f3d"
],
"description": "file format named in the request"
},
"name": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,39}$",
"maxLength": 40,
"description": "file name without extension, exactly as written"
}
},
"required": [
"format"
]
}
},
{
"name": "new_document",
"description": "Create a new empty design document.",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
},
{
"name": "save_document",
"description": "Save the active document.",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
},
{
"name": "open_document",
"description": "Find a saved document by name and open it.",
"parameters": {
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9 _.-]{0,39}$",
"maxLength": 40,
"description": "document name or part of it, exactly as written"
}
},
"required": [
"name"
]
}
},
{
"name": "create_box",
"description": "Create a box (block, cube) in one step, centred on the origin.",
"parameters": {
"type": "object",
"properties": {
"width": {
"type": "number",
"exclusiveMinimum": 0,
"description": "size along X in mm, the first number of 40x30x10"
},
"depth": {
"type": "number",
"exclusiveMinimum": 0,
"description": "size along Y in mm, the second number"
},
"height": {
"type": "number",
"exclusiveMinimum": 0,
"description": "size along Z (up) in mm, the third number"
}
},
"required": [
"width",
"depth",
"height"
]
}
},
{
"name": "create_cylinder",
"description": "Create a cylinder (rod, disc) in one step, standing on the origin.",
"parameters": {
"type": "object",
"properties": {
"diameter": {
"type": "number",
"exclusiveMinimum": 0,
"description": "diameter in mm, the number after Ø or 'dia'"
},
"height": {
"type": "number",
"exclusiveMinimum": 0,
"description": "height or length in mm"
}
},
"required": [
"diameter",
"height"
]
}
},
{
"name": "center_hole",
"description": "Drill a hole at the centre (middle) of a face of the body.",
"parameters": {
"type": "object",
"properties": {
"diameter": {
"type": "number",
"exclusiveMinimum": 0,
"description": "hole diameter in mm, the number after Ø or 'dia'"
},
"depth": {
"type": "number",
"exclusiveMinimum": 0,
"description": "depth in mm of a blind hole; omit for a through hole"
},
"face": {
"type": "string",
"enum": [
"top",
"bottom",
"front",
"back",
"left",
"right"
],
"default": "top",
"description": "face to drill into"
}
},
"required": [
"diameter"
]
}
},
{
"name": "corner_holes",
"description": "Drill a hole near each corner of a face of the body.",
"parameters": {
"type": "object",
"properties": {
"diameter": {
"type": "number",
"exclusiveMinimum": 0,
"description": "hole diameter in mm"
},
"margin": {
"type": "number",
"exclusiveMinimum": 0,
"description": "inset in mm from the edges"
},
"depth": {
"type": "number",
"exclusiveMinimum": 0,
"description": "depth in mm; omit for through holes"
},
"face": {
"type": "string",
"enum": [
"top",
"bottom",
"front",
"back",
"left",
"right"
],
"default": "top",
"description": "face to drill into"
}
},
"required": [
"diameter",
"margin"
]
}
},
{
"name": "bolt_hole",
"description": "Drill a clearance hole for a metric screw such as M6.",
"parameters": {
"type": "object",
"properties": {
"size": {
"type": "string",
"enum": [
"M3",
"M4",
"M5",
"M6",
"M8",
"M10",
"M12"
],
"description": "screw size"
},
"style": {
"type": "string",
"enum": [
"clearance",
"counterbore",
"countersink"
],
"default": "clearance",
"description": "recess for the screw head"
},
"x": {
"type": "number",
"default": 0,
"description": "centre X in mm"
},
"y": {
"type": "number",
"default": 0,
"description": "centre Y in mm"
}
},
"required": [
"size"
]
}
},
{
"name": "split_body",
"description": "Split the body into two bodies at its middle (cut it in half).",
"parameters": {
"type": "object",
"properties": {
"direction": {
"type": "string",
"enum": [
"vertical",
"horizontal",
"lengthwise"
],
"default": "vertical",
"description": "horizontal = top and bottom halves; vertical = across the longest side; lengthwise = along it"
},
"offset": {
"type": "number",
"description": "distance in mm of the cut from the middle"
}
},
"required": []
}
},
{
"name": "copy_body",
"description": "Duplicate the body: make copies of it in a row.",
"parameters": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 1,
"description": "number of copies, the number before 'times' or 'copies'"
},
"spacing": {
"type": "number",
"exclusiveMinimum": 0,
"description": "distance in mm from one copy to the next; omit for side by side"
},
"axis": {
"type": "string",
"enum": [
"x",
"y",
"z"
],
"default": "x",
"description": "direction of the row"
}
},
"required": []
}
},
{
"name": "set_thickness",
"description": "Change the thickness (height) of the existing body by editing its extrude.",
"parameters": {
"type": "object",
"properties": {
"thickness": {
"type": "number",
"exclusiveMinimum": 0,
"description": "new thickness or height in mm"
}
},
"required": [
"thickness"
]
}
},
{
"name": "scale_body",
"description": "Scale the body uniformly by a factor (resize, make bigger or smaller).",
"parameters": {
"type": "object",
"properties": {
"factor": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000,
"description": "scale factor as written: 2 doubles, 0.5 halves"
}
},
"required": [
"factor"
]
}
},
{
"name": "rotate_body",
"description": "Rotate the body in place by an angle around an axis.",
"parameters": {
"type": "object",
"properties": {
"angle": {
"type": "number",
"minimum": -360,
"maximum": 360,
"description": "angle in degrees"
},
"axis": {
"type": "string",
"enum": [
"x",
"y",
"z"
],
"default": "z",
"description": "axis to rotate around; z is upright"
}
},
"required": [
"angle"
]
}
},
{
"name": "delete_body",
"description": "Delete the body from the design.",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
},
{
"name": "hide_body",
"description": "Hide the body (make it invisible) without deleting it.",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
},
{
"name": "show_body",
"description": "Show hidden bodies again (unhide).",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
},
{
"name": "set_color",
"description": "Give the body a colour (appearance).",
"parameters": {
"type": "object",
"properties": {
"color": {
"type": "string",
"enum": [
"red",
"orange",
"yellow",
"green",
"blue",
"purple",
"pink",
"brown",
"black",
"white",
"gray"
],
"description": "colour named in the request"
}
},
"required": [
"color"
]
}
}
]