3D Printer on Demand
Quote, check and order 3D prints of STL, 3MF, STEP or OBJ files. Made in the USA, shipped in the US.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"3d-printer-on-demand": {
"url": "https://3dprinterondemand.com/api/mcp"
}
}
}Remote-Endpunkte
https://3dprinterondemand.com/api/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (9)
🟡get_print_quote(model_file, material, color, quantity, part_description)
Use this when someone wants a quote to have a 3D model (an STL, 3MF, STEP or OBJ file) printed and shipped by 3D Printer on Demand. It reads the attached file, checks that it can be printed, saves the quote, and returns the estimate with a private link that opens the saved quote on our website. When no file is attached, or the file type cannot be read, it returns a link to upload the file on our website. It does not cover drawings or photos.
Eingabe-Schema
{
"type": "object",
"properties": {
"model_file": {
"type": "object",
"properties": {
"download_url": {
"type": "string",
"description": "Download URL of the attached file."
},
"file_id": {
"type": "string",
"description": "Identifier of the attached file."
},
"mime_type": {
"type": "string"
},
"file_name": {
"type": "string"
}
},
"required": [
"download_url",
"file_id"
],
"additionalProperties": true,
"description": "The STL, 3MF, STEP or OBJ file the user attached."
},
"material": {
"type": "string",
"enum": [
"petg",
"pla",
"abs",
"pa-cf",
"petg-cf",
"opm",
"tpu"
],
"default": "petg",
"description": "Material id, one of the listed values. Default petg."
},
"color": {
"type": "string",
"maxLength": 40,
"description": "Color name for the chosen material. Default is the material's first color."
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"default": 1,
"description": "How many copies of the part."
},
"part_description": {
"type": "string",
"maxLength": 500,
"description": "What the user says this part is or what it is for, in their own words, if they said. Leave out if they did not."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"outcome": {
"type": "string",
"enum": [
"instant",
"needs_upload",
"needs_review",
"not_accepted",
"invalid_choice",
"try_later"
]
},
"message": {
"type": "string"
},
"upload_url": {
"type": "string"
},
"review_url": {
"type": "string"
},
"quote_url": {
"type": "string"
},
"file_name": {
"type": "string"
},
"material": {
"type": "string"
},
"color": {
"type": "string"
},
"quantity": {
"type": "number"
},
"currency": {
"type": "string",
"const": "USD"
},
"price_per_part_usd": {
"type": "number"
},
"subtotal_usd": {
"type": "number"
},
"shipping_usd": {
"type": "number"
},
"order_fee_usd": {
"type": "number"
},
"total_usd": {
"type": "number"
},
"size_mm": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"z": {
"type": "number"
}
},
"required": [
"x",
"y",
"z"
],
"additionalProperties": false
},
"print_fit_notes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"detail": {
"type": "string"
}
},
"required": [
"title",
"detail"
],
"additionalProperties": false
}
},
"price_held_days": {
"type": "number"
},
"multi_color": {
"type": "boolean"
},
"next_step": {
"type": "string"
},
"valid_colors": {
"type": "array",
"items": {
"type": "string"
}
},
"valid_materials": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"outcome",
"message"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡update_print_quote(quote_url, quantity, color)
Use this when someone wants a different quantity or color on a quote 3D Printer on Demand already gave them. It takes that quote's private link and the new quantity, works out the estimate again from the file saved with the quote, saves it, and returns the new estimate with a new private link. The earlier link keeps the earlier quote. It does not take a new file, a different material, or a link that did not come from one of our quotes.
Eingabe-Schema
{
"type": "object",
"properties": {
"quote_url": {
"type": "string",
"maxLength": 300,
"description": "The private quote link from an earlier quote in this chat."
},
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 100000,
"description": "The new number of copies of the part."
},
"color": {
"type": "string",
"maxLength": 40,
"description": "A new color for the same material. Leave out to keep the saved color."
}
},
"required": [
"quote_url",
"quantity"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"outcome": {
"type": "string",
"enum": [
"instant",
"needs_upload",
"needs_review",
"not_accepted",
"invalid_choice",
"try_later"
]
},
"message": {
"type": "string"
},
"upload_url": {
"type": "string"
},
"review_url": {
"type": "string"
},
"quote_url": {
"type": "string"
},
"file_name": {
"type": "string"
},
"material": {
"type": "string"
},
"color": {
"type": "string"
},
"quantity": {
"type": "number"
},
"currency": {
"type": "string",
"const": "USD"
},
"price_per_part_usd": {
"type": "number"
},
"subtotal_usd": {
"type": "number"
},
"shipping_usd": {
"type": "number"
},
"order_fee_usd": {
"type": "number"
},
"total_usd": {
"type": "number"
},
"size_mm": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"z": {
"type": "number"
}
},
"required": [
"x",
"y",
"z"
],
"additionalProperties": false
},
"print_fit_notes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"detail": {
"type": "string"
}
},
"required": [
"title",
"detail"
],
"additionalProperties": false
}
},
"price_held_days": {
"type": "number"
},
"multi_color": {
"type": "boolean"
},
"next_step": {
"type": "string"
},
"valid_colors": {
"type": "array",
"items": {
"type": "string"
}
},
"valid_materials": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"outcome",
"message"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_materials
Use this when someone asks which plastics 3D Printer on Demand prints, which colors each comes in, which material suits a job, or which materials are quoted by a person. It returns each material with what it is for, what it is not advised for, its colors and how it is quoted, plus plain guidance on comparing them. It returns no engineering figures.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"materials": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"summary": {
"type": "string"
},
"best_for": {
"type": "string"
},
"not_advised": {
"type": "string"
},
"colors": {
"type": "array",
"items": {
"type": "string"
}
},
"pricing_mode": {
"type": "string",
"enum": [
"instant",
"reviewed_by_a_person"
]
},
"heat_rank": {
"type": "string"
}
},
"required": [
"id",
"name",
"summary",
"best_for",
"not_advised",
"colors",
"pricing_mode",
"heat_rank"
],
"additionalProperties": false
}
},
"guidance": {
"type": "array",
"items": {
"type": "string"
}
},
"heat_rank_note": {
"type": "string"
},
"strength_note": {
"type": "string"
},
"materials_url": {
"type": "string"
},
"review_url": {
"type": "string"
}
},
"required": [
"materials",
"guidance",
"heat_rank_note",
"strength_note",
"materials_url",
"review_url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_service_details
Use this when someone asks how 3D Printer on Demand works: lead time, shipping, how long a quote is held, accepted file types, the largest part, the items we refuse to print, or where to upload a file, request a review or get in touch. It returns these facts as our website publishes them.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"brand": {
"type": "string"
},
"lead_time": {
"type": "string"
},
"lead_time_reviewed": {
"type": "string"
},
"expedite": {
"type": "string"
},
"shipping": {
"type": "string"
},
"shipping_flat_usd": {
"type": "number"
},
"freight_quote_over": {
"type": "string"
},
"ships_to": {
"type": "string"
},
"made_in": {
"type": "string"
},
"quote_hold": {
"type": "string"
},
"quote_hold_days": {
"type": "number"
},
"file_types": {
"type": "string"
},
"file_types_instant": {
"type": "array",
"items": {
"type": "string"
}
},
"file_types_review": {
"type": "array",
"items": {
"type": "string"
}
},
"file_types_in_chat": {
"type": "array",
"items": {
"type": "string"
}
},
"largest_instant_part_mm": {
"type": "number"
},
"part_size": {
"type": "string"
},
"materials": {
"type": "string"
},
"review_follow_up": {
"type": "string"
},
"not_printed": {
"type": "array",
"items": {
"type": "string"
}
},
"contact_email": {
"type": "string"
},
"urls": {
"type": "object",
"properties": {
"instant_quote": {
"type": "string"
},
"review_request": {
"type": "string"
},
"materials": {
"type": "string"
},
"contact": {
"type": "string"
},
"privacy": {
"type": "string"
},
"terms": {
"type": "string"
}
},
"required": [
"instant_quote",
"review_request",
"materials",
"contact",
"privacy",
"terms"
],
"additionalProperties": false
}
},
"required": [
"brand",
"lead_time",
"lead_time_reviewed",
"expedite",
"shipping",
"shipping_flat_usd",
"freight_quote_over",
"quote_hold",
"quote_hold_days",
"file_types",
"file_types_instant",
"file_types_review",
"file_types_in_chat",
"largest_instant_part_mm",
"part_size",
"materials",
"review_follow_up",
"not_printed",
"contact_email",
"urls"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_printability(model_file, material, part_description)
Use this when someone attaches an STL, 3MF, STEP or OBJ file and wants to know whether it will 3D print well: size, walls, mesh problems and what to change. It reads the file, runs the same automatic design checks as our website, and stores nothing. It gives no quote. When no file is attached, it returns a link to upload the file on our website.
Eingabe-Schema
{
"type": "object",
"properties": {
"model_file": {
"type": "object",
"properties": {
"download_url": {
"type": "string",
"description": "Download URL of the attached file."
},
"file_id": {
"type": "string",
"description": "Identifier of the attached file."
},
"mime_type": {
"type": "string"
},
"file_name": {
"type": "string"
}
},
"required": [
"download_url",
"file_id"
],
"additionalProperties": true,
"description": "The STL, 3MF, STEP or OBJ file the user attached."
},
"material": {
"type": "string",
"enum": [
"petg",
"pla",
"abs",
"pa-cf",
"petg-cf",
"opm",
"tpu"
],
"description": "Material id the part would be printed in, if the user named one, one of the listed values."
},
"part_description": {
"type": "string",
"maxLength": 500,
"description": "What the user says this part is or what it is for, in their own words, if they said. Leave out if they did not."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"outcome": {
"type": "string",
"enum": [
"checked",
"needs_upload",
"not_accepted",
"try_later"
]
},
"message": {
"type": "string"
},
"upload_url": {
"type": "string"
},
"design_check_url": {
"type": "string"
},
"review_url": {
"type": "string"
},
"file_name": {
"type": "string"
},
"material": {
"type": "string"
},
"material_pricing_mode": {
"type": "string",
"enum": [
"instant",
"reviewed_by_a_person"
]
},
"size_mm": {
"type": "object",
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
},
"z": {
"type": "number"
}
},
"required": [
"x",
"y",
"z"
],
"additionalProperties": false
},
"volume_cm3": {
"type": "number"
},
"fits_instant_size_limit": {
"type": "boolean"
},
"size_limit": {
"type": "string"
},
"multi_color": {
"type": "boolean"
},
"findings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"area": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"pass",
"note",
"needs_change"
]
},
"needs_person": {
"type": "boolean"
},
"title": {
"type": "string"
},
"detail": {
"type": "string"
},
"what_to_do": {
"type": "string"
},
"learn_more_url": {
"type": "string"
}
},
"required": [
"area",
"severity",
"needs_person",
"title",
"detail"
],
"additionalProperties": false
}
},
"needs_person": {
"type": "boolean"
},
"person_reasons": {
"type": "array",
"items": {
"type": "string"
}
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"outcome",
"message"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_design_guidance(topic, question)
Use this when someone asks how to design a part for FDM 3D printing: wall thickness, tolerances, hole clearances, overhangs and supports, orientation, infill, bosses, ribs, snap fits, threaded inserts, dimensional accuracy, published material figures, or printing compared with molding or machining. It takes a topic or the question and returns short answers with their published sources and a link to the full page. It does not check a specific file.
Eingabe-Schema
{
"type": "object",
"properties": {
"topic": {
"type": "string",
"enum": [
"wall-thickness",
"fdm-tolerances",
"supports-and-overhangs",
"orientation",
"infill",
"hole-clearances",
"dimensional-accuracy",
"bosses",
"ribs",
"snap-fits",
"threaded-inserts",
"fdm-vs-injection-molding",
"fdm-vs-cnc",
"production-economics",
"prototype-to-production",
"material-properties"
],
"description": "The engineering topic, when it is clear which one the user means."
},
"question": {
"type": "string",
"maxLength": 500,
"description": "The user's question in their own words. Used only to pick the topic and the most relevant answers."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"outcome": {
"type": "string",
"enum": [
"guidance",
"no_match",
"topic_list"
]
},
"message": {
"type": "string"
},
"topics": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"summary": {
"type": "string"
},
"page_url": {
"type": "string"
},
"points": {
"type": "array",
"items": {
"type": "object",
"properties": {
"question": {
"type": "string"
},
"answer": {
"type": "string"
},
"claim_class": {
"anyOf": [
{
"type": "string",
"enum": [
"datasheet",
"representative",
"internal_test",
"guaranteed_spec",
"own_operational"
]
},
{
"type": "null"
}
]
},
"source_refs": {
"type": "array",
"items": {
"type": "number"
}
}
},
"required": [
"question",
"answer",
"claim_class",
"source_refs"
],
"additionalProperties": false
}
},
"tables": {
"type": "array",
"items": {
"type": "object",
"properties": {
"question": {
"type": "string"
},
"caption": {
"type": "string"
},
"columns": {
"type": "array",
"items": {
"type": "string"
}
},
"rows": {
"type": "array",
"items": {
"type": "object",
"properties": {
"cells": {
"type": "array",
"items": {
"type": "string"
}
},
"claim_class": {
"$ref": "#/properties/topics/items/properties/points/items/properties/claim_class/anyOf/0"
},
"source_ref": {
"type": [
"number",
"null"
]
}
},
"required": [
"cells",
"claim_class",
"source_ref"
],
"additionalProperties": false
}
}
},
"required": [
"question",
"caption",
"columns",
"rows"
],
"additionalProperties": false
}
},
"left_on_page": {
"type": "object",
"properties": {
"answers": {
"type": "number"
},
"tables": {
"type": "number"
}
},
"required": [
"answers",
"tables"
],
"additionalProperties": false
},
"limitations": {
"type": "array",
"items": {
"type": "string"
}
},
"when_to_test": {
"type": "string"
},
"related_topics": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"title",
"url"
],
"additionalProperties": false
}
},
"related_site_tools": {
"type": "array",
"items": {
"$ref": "#/properties/topics/items/properties/related_topics/items"
}
},
"related_chat_tools": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"title",
"summary",
"page_url",
"points",
"tables",
"left_on_page",
"limitations",
"when_to_test",
"related_topics",
"related_site_tools",
"related_chat_tools"
],
"additionalProperties": false
}
},
"sources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ref": {
"type": "number"
},
"title": {
"type": "string"
},
"publisher": {
"type": "string"
},
"url": {
"type": "string"
},
"checked_on": {
"type": "string"
},
"status": {
"type": "string"
}
},
"required": [
"ref",
"title",
"publisher",
"url"
],
"additionalProperties": false
}
},
"claim_classes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"claim_class": {
"type": "string"
},
"meaning": {
"type": "string"
}
},
"required": [
"claim_class",
"meaning"
],
"additionalProperties": false
}
},
"citation_rule": {
"type": "string"
},
"available_topics": {
"type": "array",
"items": {
"type": "object",
"properties": {
"topic": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"topic",
"title",
"url"
],
"additionalProperties": false
}
},
"engineering_url": {
"type": "string"
}
},
"required": [
"outcome",
"message",
"topics",
"sources",
"claim_classes",
"citation_rule",
"engineering_url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢recommend_material(environment, heat_exposure, impact, flexibility, chemical_exposure, ...)
Use this when someone wants help choosing which of our plastics suits a part, from where it will be used: indoor or outdoor, heat, impact, flexing, chemicals, looks and material cost. It returns the materials we offer that fit, best match first, the reasons in plain words, and the ones ruled out and why. It does not rank materials by strength or stiffness, and it sends safety-critical parts to a person.
Eingabe-Schema
{
"type": "object",
"properties": {
"environment": {
"type": "string",
"enum": [
"indoor",
"outdoor"
],
"description": "Where the part lives. Default indoor."
},
"heat_exposure": {
"type": "string",
"enum": [
"none",
"warm",
"hot"
],
"description": "How much heat the part sees in use. Default none."
},
"impact": {
"type": "string",
"enum": [
"no_preference",
"high"
],
"description": "high when the part takes knocks or drops."
},
"flexibility": {
"type": "string",
"enum": [
"no_preference",
"flexible",
"rigid"
],
"description": "flexible for parts that must bend and spring back, rigid for parts that must not."
},
"chemical_exposure": {
"type": "string",
"enum": [
"none",
"some",
"harsh"
],
"description": "Contact with oils, fuels, cleaners or solvents. Default none."
},
"appearance": {
"type": "string",
"enum": [
"standard",
"high"
],
"description": "high when looks and color choice matter."
},
"cost_sensitivity": {
"type": "string",
"enum": [
"standard",
"high"
],
"description": "high when keeping material cost low matters most."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"outcome": {
"type": "string",
"enum": [
"ranked",
"none_fit"
]
},
"message": {
"type": "string"
},
"recommendations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"rank": {
"type": "number"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"summary": {
"type": "string"
},
"best_for": {
"type": "string"
},
"not_advised": {
"type": "string"
},
"pricing_mode": {
"type": "string",
"enum": [
"instant",
"reviewed_by_a_person"
]
},
"heat_rank": {
"type": "string"
},
"reasons": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"rank",
"id",
"name",
"summary",
"best_for",
"not_advised",
"pricing_mode",
"heat_rank",
"reasons"
],
"additionalProperties": false
}
},
"ruled_out": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"reasons": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"id",
"name",
"reasons"
],
"additionalProperties": false
}
},
"guidance": {
"type": "array",
"items": {
"type": "string"
}
},
"heat_rank_note": {
"type": "string"
},
"strength_note": {
"type": "string"
},
"selector_url": {
"type": "string"
},
"materials_url": {
"type": "string"
},
"properties_url": {
"type": "string"
},
"review_url": {
"type": "string"
}
},
"required": [
"outcome",
"message",
"recommendations",
"ruled_out",
"guidance",
"heat_rank_note",
"strength_note",
"selector_url",
"materials_url",
"properties_url",
"review_url"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢compare_print_vs_molding(quantity, printed_unit_cost, tooling_cost, molded_unit_cost, tool_revisions, ...)
Use this when someone wants to compare 3D printing with injection molding for a quantity, using their own numbers: quantity, printed unit cost, tooling cost and molded unit cost. It returns the totals for each, the crossover quantity on those numbers, and the published range with sources. It makes up no cost, and when a number is missing it says which.
Eingabe-Schema
{
"type": "object",
"properties": {
"quantity": {
"type": "integer",
"minimum": 1,
"maximum": 1000000,
"description": "The total or yearly quantity to compare."
},
"printed_unit_cost": {
"type": "number",
"exclusiveMinimum": 0,
"description": "The user's cost per printed part, in US dollars."
},
"tooling_cost": {
"type": "number",
"minimum": 0,
"description": "What the mold costs, in US dollars. 0 if the user has no tooling quote yet."
},
"molded_unit_cost": {
"type": "number",
"exclusiveMinimum": 0,
"description": "The user's cost per molded part once the tool exists, in US dollars."
},
"tool_revisions": {
"type": "integer",
"minimum": 0,
"maximum": 10,
"description": "Expected tool revisions. Default 0."
},
"revision_cost": {
"type": "number",
"minimum": 0,
"description": "Cost per tool revision, in US dollars."
},
"setup_cost": {
"type": "number",
"minimum": 0,
"description": "Setup or secondary cost per printed order, in US dollars. Default 0."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"outcome": {
"type": "string",
"enum": [
"computed",
"needs_inputs",
"invalid_input"
]
},
"message": {
"type": "string"
},
"missing": {
"type": "array",
"items": {
"type": "string"
}
},
"problems": {
"type": "array",
"items": {
"type": "string"
}
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
}
},
"result": {
"type": "object",
"properties": {
"quantity": {
"type": "number"
},
"currency": {
"type": "string",
"const": "USD"
},
"tooling_total": {
"type": "number"
},
"printed_total_at_quantity": {
"type": "number"
},
"molded_total_at_quantity": {
"type": "number"
},
"per_unit_gap": {
"type": "number"
},
"break_even_quantity": {
"type": [
"number",
"null"
]
},
"cheaper_at_quantity": {
"type": "string",
"enum": [
"printing",
"molding",
"tie"
]
},
"difference_at_quantity": {
"type": "number"
}
},
"required": [
"quantity",
"currency",
"tooling_total",
"printed_total_at_quantity",
"molded_total_at_quantity",
"per_unit_gap",
"break_even_quantity",
"cheaper_at_quantity",
"difference_at_quantity"
],
"additionalProperties": false
},
"table": {
"type": "array",
"items": {
"type": "object",
"properties": {
"quantity": {
"type": "number"
},
"printed_total": {
"type": "number"
},
"molded_total": {
"type": "number"
}
},
"required": [
"quantity",
"printed_total",
"molded_total"
],
"additionalProperties": false
}
},
"published_range": {
"type": "object",
"properties": {
"text": {
"type": "string"
},
"source_refs": {
"type": "array",
"items": {
"type": "number"
}
}
},
"required": [
"text",
"source_refs"
],
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ref": {
"type": "number"
},
"title": {
"type": "string"
},
"publisher": {
"type": "string"
},
"url": {
"type": "string"
},
"checked_on": {
"type": "string"
},
"status": {
"type": "string"
}
},
"required": [
"ref",
"title",
"publisher",
"url"
],
"additionalProperties": false
}
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"tool_url": {
"type": "string"
},
"reading": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"title",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"outcome",
"message",
"published_range",
"sources",
"notes",
"tool_url",
"reading"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢size_hole_or_tolerance(fit_type, hole_diameter_mm, hole_axis)
Use this when someone asks what clearance or hole size to draw for a printed fit: a sliding part, a bolt or pin through a hole, two printed parts that mate, a press fit, or a snap fit. It returns published starting clearances and hole guidance, each with its source, and how to test the fit. It gives no single universal hole offset, because none is published.
Eingabe-Schema
{
"type": "object",
"properties": {
"fit_type": {
"type": "string",
"enum": [
"sliding-moving",
"bolt-clearance",
"pin-in-hole",
"mating-fdm-parts",
"press-interference",
"snap-fit"
],
"description": "What the fit is for: sliding-moving, bolt-clearance, pin-in-hole, mating-fdm-parts, press-interference or snap-fit."
},
"hole_diameter_mm": {
"type": "number",
"minimum": 0.1,
"maximum": 500,
"description": "The hole diameter the user plans to draw, in mm."
},
"hole_axis": {
"type": "string",
"enum": [
"vertical-z",
"horizontal-xy"
],
"description": "vertical-z when the hole goes through a top or bottom face, horizontal-xy when it goes through a side wall."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"outcome": {
"type": "string",
"enum": [
"guidance",
"needs_input"
]
},
"message": {
"type": "string"
},
"fit": {
"type": "object",
"properties": {
"fit_type": {
"type": "string"
},
"label": {
"type": "string"
},
"has_number": {
"type": "boolean"
},
"starting_clearances": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string"
},
"value": {
"type": "string"
},
"source_ref": {
"type": [
"number",
"null"
]
},
"basis": {
"type": "string"
}
},
"required": [
"label",
"value",
"source_ref"
],
"additionalProperties": false
}
},
"no_number_reason": {
"type": "string"
},
"considerations": {
"type": "array",
"items": {
"type": "string"
}
},
"test_coupon": {
"type": "string"
},
"source_refs": {
"type": "array",
"items": {
"type": "number"
}
}
},
"required": [
"fit_type",
"label",
"has_number",
"starting_clearances",
"considerations",
"test_coupon",
"source_refs"
],
"additionalProperties": false
},
"hole": {
"type": "object",
"properties": {
"nominal_diameter_mm": {
"type": "number"
},
"axis": {
"type": "string"
},
"direction": {
"type": "object",
"properties": {
"text": {
"type": "string"
},
"source_refs": {
"type": "array",
"items": {
"type": "number"
}
}
},
"required": [
"text",
"source_refs"
],
"additionalProperties": false
},
"magnitude": {
"$ref": "#/properties/hole/properties/direction"
},
"published_minimums": {
"type": "array",
"items": {
"type": "object",
"properties": {
"publisher": {
"type": "string"
},
"axis": {
"type": "string"
},
"min_diameter_mm": {
"type": "number"
},
"note": {
"type": "string"
},
"source_ref": {
"type": [
"number",
"null"
]
}
},
"required": [
"publisher",
"axis",
"min_diameter_mm",
"note",
"source_ref"
],
"additionalProperties": false
}
},
"below_published_minimum": {
"type": "boolean"
},
"below_minimum_note": {
"type": "string"
},
"single_setup_examples": {
"type": "array",
"items": {
"type": "object",
"properties": {
"material": {
"type": "string"
},
"nominal_mm": {
"type": "number"
},
"measured_mm": {
"type": "number"
},
"study": {
"type": "string"
},
"source_ref": {
"type": [
"number",
"null"
]
}
},
"required": [
"material",
"nominal_mm",
"measured_mm",
"study",
"source_ref"
],
"additionalProperties": false
}
},
"gear_bore_example": {
"$ref": "#/properties/hole/properties/direction"
},
"drill_or_ream": {
"$ref": "#/properties/hole/properties/direction"
},
"measurement_plan": {
"type": "string"
}
},
"required": [
"nominal_diameter_mm",
"direction",
"magnitude",
"published_minimums",
"single_setup_examples",
"gear_bore_example",
"drill_or_ream",
"measurement_plan"
],
"additionalProperties": false
},
"fit_types": {
"type": "array",
"items": {
"type": "object",
"properties": {
"fit_type": {
"type": "string"
},
"label": {
"type": "string"
}
},
"required": [
"fit_type",
"label"
],
"additionalProperties": false
}
},
"tolerance_posture": {
"type": "string"
},
"guidance": {
"type": "array",
"items": {
"type": "string"
}
},
"sources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"ref": {
"type": "number"
},
"title": {
"type": "string"
},
"publisher": {
"type": "string"
},
"url": {
"type": "string"
},
"checked_on": {
"type": "string"
},
"status": {
"type": "string"
}
},
"required": [
"ref",
"title",
"publisher",
"url"
],
"additionalProperties": false
}
},
"citation_rule": {
"type": "string"
},
"urls": {
"type": "object",
"properties": {
"tolerance_guide": {
"type": "string"
},
"hole_compensation": {
"type": "string"
},
"hole_clearances": {
"type": "string"
},
"fdm_tolerances": {
"type": "string"
},
"review_request": {
"type": "string"
}
},
"required": [
"tolerance_guide",
"hole_compensation",
"hole_clearances",
"fdm_tolerances",
"review_request"
],
"additionalProperties": false
}
},
"required": [
"outcome",
"message",
"tolerance_posture",
"guidance",
"sources",
"citation_rule",
"urls"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Nachweis