Formlabs print
Skill mkebiclioglu/formlabs-claude-skills/.claude/skills/formlabs-print
End-to-end Formlabs print job preparation. Takes one or more STL/OBJ files, sets up a scene for a specific printer + material, auto-orients, generates supports, estimates time and material, and either saves a .form file or uploads the job to a printer. Use when the user wants to prepare or run a Formlabs print from natural language.From its SKILL.md
npx -y skills add mkebiclioglu/formlabs-claude-skills --skill formlabs-printAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.4 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it
Formlabs print preparation
You orchestrate the formlabs MCP server to take a user from raw STL/OBJ files
to a printable .form file or a queued print job.
Precondition (always)
First action: call health_check. If it errors:
- The
formlabsMCP server is not installed or PreFormServer failed to start. - Surface the error to the user, link them to https://github.com/mkebiclioglu/formlabs-local-mcp, and STOP. Don't attempt the workflow.
If health_check returns a version, proceed.
Required inputs
Confirm before you start:
- Model file(s) — must be absolute paths (PreFormServer rejects relative paths, env vars, and URLs). If the user gives a relative path, resolve it against the current working directory and confirm.
- Printer + material — either:
machine_type+material_code+layer_thickness_mm. If the user names a printer but not a material, calllist_printer_typesto confirm the code, thenlist_materialsand pick the matching material's firstmaterial_settingsentry.- or an
.fpsprint-settings file the user already has.
- Destination — save to a
.formfile, or send to a printer? If sending to a printer, get the printer serial or local IP, and a job name.
If any of these are missing, ask once with all the unknowns batched into a single question. Do not interrogate the user step by step.
Standard workflow
create_scenewith the printer + material settings.- For each model:
import_modelwith the absolute path. The MCP server defaultsrepair_behavior="REPAIR"andunits="MILLIMETERS"— that's correct for ~all CAD-exported STLs. Only override if the user explicitly mentions non-mm units or insists on preserving an unrepaired mesh. Collect the returned model IDs from the responses. auto_orient(defaults tomodels: "ALL").auto_support. For dental / jewelry / very small parts the user may want higherdensity— only set it if the user mentions it.- Printer-type branch:
- SLA printers (anything starting with
FORM-):auto_layout. - SLS printers (anything starting with
FS):auto_pack. The server will error if you call the wrong one. If unsure, check themachine_typeon the scene first.
- SLA printers (anything starting with
get_print_validation. If there are errors, surface them and stop. If there are warnings, surface them and ask whether to continue.- Auto drain holes (SLA only). After
auto_support, callauto_add_drain_holes. It checksget_print_validationfor cups per model and places holes using bounding-box sampling plus PreForm's own surface projection — no XYZ prompts to the user. Surface the per-model summary (cups_detected,holes_requested, warnings). If PreForm reports a "no surface found" warning for a model, tell the user that auto-placement couldn't find a spot and offer either to skip drain holes or to hand-place them viaadd_drain_holes. estimate_print_time. Report time and material usage to the user.- Confirm with the user before the final destructive step (saving over an existing file, or sending a print).
- Either
save_form(with absolute path) orprint_to_printer. For remote printing the user must have beenlogin'd already — surface the error clearly if not. - Optionally
save_screenshotto a.pngnext to the.formso the user has a preview.
Things to do and things to avoid
- Do report progress between major steps.
auto_supporton a complex model can take a minute or two. - Do show the printer's
machine_typeandmaterial_codeon confirmation — the single most common source of user error. - Do trust the post-import verification baked into
import_model. If it raisesIMPORT_PRODUCED_EMPTY_SCENE, the STL really is malformed; tell the user and stop. Don't loop retries. - Don't call
auto_layoutfor SLS printers orauto_packfor SLA printers; the server will error. - Don't silently overwrite a
.formfile the user didn't name explicitly. - Don't invent
machine_typeormaterial_codevalues. If unsure, calllist_materialsand pick from real values. - Don't retry a
print_to_printercall after a 4xx — the printer probably isn't reachable. Ask the user to check. - Don't use TaskCreate for this flow. It's a short linear pipeline; task tracking is overhead.
Examples
Single part, save to file
"Prep
~/parts/bracket.stlfor the Form 4 in Black V5 and save it as~/jobs/bracket.form."
Resolve paths → health_check → create_scene(FORM-4-0, FLGPBK05, 0.025) →
import_model → auto_orient → auto_support → auto_layout →
get_print_validation → check cups → estimate_print_time → report
time/material → save_form.
Multiple parts, send to printer
"Pack these five parts onto my Fuse 1+ and send to printer Fuse-Loud-Otter."
health_check → create_scene(FS30-1-0, …) → loop import_model →
auto_orient → auto_support → auto_pack → validate → estimate → confirm
→ print_to_printer.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.