Set filament slot mapping
set_filament_slot_mappingAssign each plate filament to a specific CANVAS tray for the next Send, replacing the current mapping without starting a print. Use valid tray IDs so OrcaSlicer's Send dialog is pre-filled correctly.
Instructions
Choose which CANVAS tray each filament prints from on the next Send (Elegoo Centauri Carbon 2 only); it starts nothing.
Returns the same reply as get_filament_slot_mapping, so check valid and problems. Needs fork v2.4.2-mcp.14 or later. It reads the printer when no slot list is cached, so it can take up to about 18 seconds, and OrcaSlicer's API serves one request at a time meanwhile, so other tools wait.
The list REPLACES the whole mapping set through the API: a filament left out gets no tray from the API, and an empty list clears the API choices so Send falls back to the saved choices and automatic matching. Include every filament you want pinned.
This starts nothing. OrcaSlicer's own Send dialog opens pre-filled with this mapping and the user still clicks Send. Each tray can serve only one filament (422 duplicate_tray), the tray must be ready (422 tray_not_ready), and the indexes must exist (422 unknown_filament_index, which also covers a project filament that is not on the plate; unknown_tray, slots_unavailable when the printer could not be read; the reply then says why). Malformed lists get 400: each filament at most once, and integers for filament, canvas_id and tray_id. Use get_printer_slots first to pick trays whose material and colour fit.
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": {
"mapping": "<mapping>"
},
"name": "set_filament_slot_mapping"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mapping | Yes | One entry per filament of the plate the next Send uses (the indexes get_filament_slot_mapping lists): {filament: 0-based filament index, canvas_id, tray_id} from get_printer_slots. |