reprint_with_material
Reprint an existing model in a different material by automatically reslicing with the target material's settings, checking safety, uploading, and starting the print.
Instructions
Reprint a model with a different material — the slice is set for it.
One-shot convenience tool: reslices the model for the new material
(its temperatures, melt rate and cooling, from the same resolver every
slice uses -- see ``build_material_overrides``), merges any extra
overrides you provide, runs a safety check, uploads to the printer, and
starts the print. The file is labelled and weighed as the new material.
Use this when you want to reprint an existing model in a different
material (e.g. PLA → PETG for outdoor durability, or PLA → TPU for
flexibility). The tool handles all the slicer parameter changes
automatically.
Example: "Reprint my grip extension in PETG instead of PLA"::
reprint_with_material(
file_path="/path/to/grip_extension.stl",
material_id="petg",
printer_name="my_bambu",
printer_id="bambu_a1",
use_ams=True,
ams_mapping="[1]", # PETG is in slot A2 (tray id 1)
)
Requires PrusaSlicer or OrcaSlicer installed locally.
Args:
file_path: Path to the model file (STL, 3MF, STEP, OBJ).
material_id: Target material (e.g. ``"petg"``, ``"tpu"``).
printer_name: Registered printer name in fleet. If omitted,
uses the default printer.
printer_id: Printer model ID for profile selection
(e.g. ``"bambu_a1"``, ``"ender3"``).
extra_overrides: Optional JSON string of additional slicer
overrides to merge on top of the material defaults
(e.g. ``'{"fill_density": "30%"}'``).
use_ams: Enable AMS filament feeding (Bambu printers).
ams_mapping: JSON string of AMS slot indices (e.g. ``"[1]"``).
Maps each extruder/filament to an AMS tray position.
preview_token: Token from ``issue_preview_token`` proving this model
was shown to the person before printing. Required beside their
go-ahead: a print is shown to its owner before it starts.
brief_id: The saved goal from ``design_session`` this model was made
for. The goal then records the material it printed in, and keeps
the one it replaces on its history (``goal_material`` in the
reply). Omitted, the goal named beside the model, if any.
chosen_by: Who picked this material: ``"person"`` when they named it,
``"agent"`` when you proposed it. Kept with the goal's record;
omitted, it is left unsaid.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"file_path": "<file_path>",
"material_id": "<material_id>"
},
"name": "reprint_with_material"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| use_ams | No | Enable AMS filament feeding (Bambu printers). | |
| brief_id | No | The saved goal from ``design_session`` this model was made for. The goal then records the material it printed in, and keeps the one it replaces on its history (``goal_material`` in the reply). Omitted, the goal named beside the model, if any. Default: "". | |
| chosen_by | No | Who picked this material: ``"person"`` when they named it, ``"agent"`` when you proposed it. Kept with the goal's record; omitted, it is left unsaid. Default: "". | |
| file_path | Yes | Path to the model file (STL, 3MF, STEP, OBJ). | |
| printer_id | No | Printer model ID for profile selection (e.g. ``"bambu_a1"``, ``"ender3"``). | |
| ams_mapping | No | JSON string of AMS slot indices (e.g. ``"[1]"``). Maps each extruder/filament to an AMS tray position. | |
| material_id | Yes | Target material (e.g. ``"petg"``, ``"tpu"``). | |
| printer_name | No | Registered printer name in fleet. If omitted, uses the default printer. | |
| preview_token | No | Token from ``issue_preview_token`` proving this model was shown to the person before printing. Required beside their go-ahead: a print is shown to its owner before it starts. | |
| extra_overrides | No | Optional JSON string of additional slicer overrides to merge on top of the material defaults (e.g. ``'{"fill_density": "30%"}'``). |