# Forty-Five > A printability check for FDM 3D printing. Open an STL of a part you are about to print (binary or ASCII; it is read in the browser and never uploaded) and set the units, bed size, nozzle, layer height, material, overhang limit (45 degrees by default) and what the part is for. The page measures the mesh and tries the six flat ways to lay it down - height, footprint and bed fit, bed contact, area past the overhang limit and flat ceilings in mid-air - and draws them as an isometric preview on the plate, a radar chart, a bed map and a table, with flags and a page reading. A metered check picks the orientation, lists findings with fixes, plans the supports, suggests slicer settings and redesign moves, and says print as is, reorient first, or redesign; the page holds it to its own measurements. https://forty-five.skillsafe.ai/ ## What it does - Free, in the browser (meshkit.js, display.js): welds the vertices; counts open edges, non-manifold edges, separate bodies and zero-area triangles; detects inside-out faces; measures surface area, volume and a rough weight (about 45% of the solid volume, for walls plus sparse infill). - Six ways down: as exported (on its -Z face), upside down, and on each of its four sides. For each: height, footprint, whether it fits the bed straight or turned and under the build height, flat area on the bed, area leaning past the overhang limit (not counting the bed), flat ceilings (within 10 degrees of facing down, in mid-air), narrowest base width, and a 0-100 score (40% support-free, 20% bed grip, 15% low profile, 15% stability, 10% no ceilings; 0 when it does not fit). - Flags: open or non-manifold mesh, inside-out faces, several bodies, suspicious units, thinner than two lines, a layer too thick for the nozzle, too big for every way, and for the as-exported and best ways: support-needing overhang (5% or more), flat ceiling, weak bed grip (under 80 mm2 or 25% of the footprint), tall and thin (over 30 mm and 4 times the base width), no fit; plus "a better side" and "no good side". - Its own reading: redesign (open mesh, too big, too thin, or every fitting way has 15% past the limit or 5% flat ceiling), reorient (another way clearly beats as exported), or print as is. - Metered, one task `check`: `orientation` (one of Z-, Z+, X-, X+, Y-, Y+), `findings` `{level, area, text, fix}`, `supports` `{needed, style, where}`, `settings` `{name, value, why}`, `redesign`, `before_print`, a title, a summary and a verdict. - The page holds the reply to its measurements: the orientation must be one of the six and fit; "no supports" on a way with support-needing overhang is flagged; a print-as-is that moves the part, a reorient that keeps it, a redesign with no moves, a verdict that ignores a must-fix flag, and any stated wall thickness (the page does not measure walls) are all called out. ## Limits - Only the six flat orientations are tried, not tilted ones. Wall thickness, holes, text, clearances and load paths are not measured; tell the check about them in the notes. - FDM only. The weight is a rough estimate. Sample parts are made up. - Exports: the part as an STL already turned to the chosen way down (in millimetres, ready for a slicer), Markdown (the six ways and the check), a CSV of the six ways, the preview as PNG and the radar chart as SVG. - Saved parts: open a re-exported file under the same name and the page says what changed since the saved version (verdict, open edges, fit, the best way's overhang, flat ceiling and bed contact). ## Sources - Built on the SkillSafe skill @earthtojake/dfam-check (Design for Additive Manufacturing checks of a mesh: overhangs, walls, supports, build orientation, redesign guidance): https://skillsafe.ai/skill/@earthtojake/dfam-check - Why now: searches for 3D printers past a million a month (Rising Trends, October 2026: https://www.risingtrends.co/trends/activities-hobbies-trends-2026), and beginner guides saying most first prints fail before the printer starts (https://www.selfcad.com/blog/why-most-beginner-3d-prints-fail-before-the-printer-even-starts). - API: https://forty-five.skillsafe.ai/api.html