../

3D printing

Prompting chat assistants, code-CAD tools and AI 3D generators to design parts and models that actually print: the technologies and materials, the design rules an experienced maker checks, CAD workflows and file formats, slicer vocabulary, a four-prompt chain that takes a functional part from caliper measurements to a reviewed OpenSCAD or CadQuery model, and a prompt library for material choice, test coupons, slicer profiles, calibration, mesh cleanup, splitting and print diagnosis. The general method and the prompt skeleton are in Prompting fundamentals; generating meshes with AI is covered in AI 3D generation and cleaning them up in Modeling in Blender.

How experts think

  • Design for the process. A printed part is built in layers on a flat bed. Its shape should follow from that: flat faces down, overhangs limited, no floating islands.
  • Orientation first. Decide how the part sits on the bed before the details. Orientation sets strength, supports, surface finish and accuracy, and it often changes the design.
  • Measure, don't guess. Calipers on the mating parts. Every fit dimension in a prompt should come from a measurement or a datasheet.
  • Tolerances belong to your printer. Clearances vary by printer, material and slicer settings, so experts keep them as parameters and calibrate with a test coupon.
  • Parametric everything. Dimensions as named variables, so the second print is a one-number change.
  • Print the risky feature first. A thin slice through the hinge or thread, not the whole 6-hour part.
  • Use hardware where it is better. Heat-set inserts, nuts, bolts, pins and bearings beat printed threads and axles.
  • Function, material, design, slice, print, measure, adjust. In that order, in a loop.

Why orientation comes first, with the same bracket printed two ways:

splits here load Printed with the plate on the bed layers stack along the arm lines seen edge-on: one per layer weak: bending pulls the layers apart load Printed lying on its side every layer is a whole L extruded lines run around the corner strong: the load runs along the lines
Same geometry, same plastic; only the direction of the layers changed.

Vocabulary

TermWhat it meansSay it like
FDM / FFFfused deposition modeling / fused filament fabrication: a nozzle extrudes melted plastic filament layer by layer"Design for FDM with a 0.4 mm nozzle"
Resin printing (SLA, MSLA, DLP)light cures liquid photopolymer layer by layer"This is for an MSLA resin printer; hollow it with drain holes"
SLS / MJFpowder-bed processes that fuse nylon powder; the loose powder supports the part"Design for SLS nylon through a print service: no supports needed"
Slicersoftware that turns a 3D model into layer-by-layer machine instructions (G-code)"Give PrusaSlicer settings for this part"
Layer heightthickness of each layer"0.2 mm layers; 0.12 mm for the visible face"
Line (extrusion) widthwidth of one extruded line, ≈ nozzle diameter or a little more"Make walls a multiple of 0.45 mm line width"
Perimeters / wallsthe outline loops of each layer"Use 4 perimeters for strength"
Top and bottom layerssolid layers that close the part"At least 5 top layers so the infill doesn't show"
Infillthe internal fill pattern and density"20% gyroid infill"
Overhanga surface that leans out over empty space"No overhang steeper than 45° from vertical"
Supportsacrificial structure under overhangs"Design so it prints with no supports"
Bridgea horizontal span printed between two supports in mid-air"Keep bridges under 10 mm"
Anisotropystrength differs by direction; FDM parts are weakest between layers (along Z)"Orient it so the bending load runs along the layers, not across them"
Clearancethe designed gap between mating parts"0.3 mm clearance per side for a sliding fit"
Tolerancehow far a printed dimension may deviate from the design"Assume ±0.2 mm in XY"
Press / sliding / loose fittight, smooth-moving and free-moving fits, from smallest to largest clearance"Press fit for the bearing, sliding fit for the lid"
Elephant's footthe first layers bulging outward from bed squish"Add a 0.5 mm chamfer on all bottom edges"
Warpingcorners lifting as plastic shrinks while cooling"It's ABS: add a brim and round the corners"
Brim / raft / skirtextra flat ring stuck to the part / a sacrificial base under it / an outline that only primes the nozzle"Use a 5 mm brim, no raft"
First layerthe layer on the bed; most failures start here"First layer 0.2 mm, slow"
Retractionpulling filament back during travel moves to stop oozing"Suggest retraction settings to fix stringing"
Stringingthin hairs between parts from oozing"Here's a photo of stringing: diagnose it"
Flow (extrusion multiplier)scaling of how much plastic is pushed"Walk me through a flow calibration"
Coolingpart fan speed; high for PLA, low for ABS and ASA"Part cooling for PETG?"
Seamwhere each layer loop starts and ends, leaving a line"Put the seam on the back edge"
Fillet / chamfera rounded / angled edge"Fillet internal corners 2 mm; chamfer bottom edges, don't fillet them"
Teardrop holea horizontal hole with a pointed top so it prints without support"Make horizontal holes teardrop-shaped"
Print-in-placea mechanism printed already assembled (hinges, chains)"Print-in-place hinge with 0.4 mm clearance"
Heat-set inserta brass threaded insert pressed in with a soldering iron"Add bosses for M3 heat-set inserts; hole size from the insert datasheet"
Nut trapa hexagonal pocket that holds a nut"Add an M3 nut trap on the underside"
Manifold (watertight)a closed mesh where every edge joins exactly two faces"Check the mesh is manifold before slicing"
Non-manifoldholes, stray edges or faces that make inside and outside ambiguous"List non-manifold problems and how to fix them in Blender"
Parametricdefined by named dimensions you can change"Put every dimension in a variable at the top"
CSGconstructive solid geometry: shapes added and subtracted (union, difference)"Build it in OpenSCAD with CSG, no imported meshes"
Hollowing / drain holesemptying a resin part and adding holes so trapped resin can escape"Hollow to 2 mm walls with two drain holes near the base"
Build volumethe largest part the printer can make"My build volume is 250 × 210 × 220 mm; split if needed"

Clearance is designed per side, so a hole grows by twice the gap:

Press fit gap ≈ 0.1–0.2 mm per side pin hole = pin + 0.2–0.4 bearings, pins: pushed in Sliding fit gap ≈ 0.3 mm per side pin hole = pin + 0.6 lids, drawers: moves Loose fit gap ≈ 0.4–0.5 mm per side pin hole = pin + 0.8–1.0 print-in-place: spins free gaps drawn about 40× too wide; per side means the hole grows by twice the gap 0.0 0.1 10.2 0.2 10.4 0.3 10.6 0.4 10.8 0.5 11.0 mm gap per side hole, 10 mm pin mm
Starting values for a 0.4 mm nozzle; the tolerance coupon in the Prompt library tells you your printer's.

Technologies

TechnologyHow it worksGood forLimits
FDM / FFFheated nozzle extrudes thermoplastic filamentfunctional parts, enclosures, jigs, brackets, prototypes; cheap and fast to iteratevisible layer lines; weak in Z; overhangs need support; fine detail limited by nozzle (~0.4 mm)
SLAa laser traces each layer in a resin vatsmooth, accurate small parts, dental and jewelry modelsresin handling, washing and UV curing; brittle standard resins
MSLAan LCD screen masks UV light to cure a whole layer at onceminiatures and figurines at high detail; affordablesame resin handling; build volume usually small
DLPa projector cures each layerfast, detailed small partsas SLA
SLSa laser sinters nylon powder; loose powder supports the partstrong nylon parts with complex geometry and no supports, usually via a print servicegrainy surface; expensive machines; need escape holes for powder in hollows
MJF (HP Multi Jet Fusion)inkjet agents plus infrared heat fuse nylon powderproduction-quality nylon parts in batches via servicesas SLS; usually gray, dyed black
FDM: melt and draw extruder hot nozzle filament bed x, y z one line at a time overhangs need supports Resin (MSLA): cure a layer plate vat LCD UV resin part hangs upside down supports; wash and UV-cure SLS: sinter powder laser roller loose powder holds it up no supports; often a service all three build one thin layer, then move up (or down) and repeat
All three build one thin layer at a time; they differ in what holds up an overhang.

Metal printing (powder-bed fusion and others) exists mainly at service bureaus and has its own design rules; this sheet is about plastics.

Materials

Temperatures are typical starting ranges; the spool label or resin datasheet wins, and brands differ.

MaterialNozzle °CBed °CPropertiesUse forWatch for
PLA≈ 190–220≈ 50–65stiff, easy, good detailprototypes, display pieces, indoor jigssoftens around 55–60 °C (hot cars); brittle under impact; creeps under load
PETG≈ 220–250≈ 70–90tougher, more heat and chemical resistant than PLAfunctional parts, outdoor-ish use, containersstrings; bonds very strongly to smooth PEI beds (use a release layer such as glue stick)
ABS≈ 230–260≈ 90–110tough, heat resistant to around 90–100 °Ccar interiors, housings, parts to smooth with acetonewarps; fumes; needs an enclosure and ventilation
ASA≈ 240–265≈ 90–110like ABS, but UV resistantoutdoor partsas ABS
TPU≈ 210–245≈ 40–70flexible, rubbery, rated by Shore hardness (for example 95A)gaskets, bumpers, phone cases, feetprint slowly; direct-drive extruders cope best; strings
Nylon (PA)≈ 250–290≈ 70–110tough, wear resistant, slipperygears, hinges, living hinges, clipsabsorbs moisture fast: dry before and during printing; warps
PC≈ 260–310≈ 90–120very strong and heat resistantdemanding mechanical partshard to print; needs an enclosure and an all-metal hotend
Fiber-filled (CF, GF)per base polymerper basestiffer, mattestiff brackets, drone partsabrasive: needs a hardened nozzle
Standard resinprints at room temperature (often ≈ 20–30 °C)n/avery fine detail, smoothminiatures, display modelsbrittle; wash in alcohol and UV-cure; toxic uncured
Tough / flexible / castable resinsper datasheetn/aengineering-like, rubbery or burns out cleanlysnap fits, seals, jewelry castingslower, pricier; follow the maker's cure settings

Design for additive manufacturing

Values are for FDM with a 0.4 mm nozzle unless noted; treat them as starting points to test on your printer.

RuleTypical valueWhySay it like
Overhangsup to ≈ 45° from vertical without supporteach layer must rest mostly on the one below"No unsupported overhang beyond 45° from vertical"
Bridgesshort spans (under ≈ 5–10 mm) print cleanlylonger spans sag unless the slicer and cooling are tuned"Keep bridges under 10 mm or add a sacrificial layer"
Supportsavoid by design; tree or organic supports when neededthey scar the surface and waste time"Redesign so it prints support-free; say what you changed"
Wall thickness≥ 2 lines (≈ 0.8–0.9 mm); 1.2–2 mm or more for functional partsthin walls are weak or skipped by the slicer"Walls 2 mm, a multiple of 0.45 mm"
Minimum feature≈ the nozzle diameter in XY; resin goes far finerthe nozzle can't draw thinner than itself"No feature thinner than 0.8 mm"
Holesprint slightly undersize; horizontal holes droop at the topplastic shrinks and the hole top is an overhang"Vertical holes +0.2 mm; horizontal holes teardrop; or drill to size"
Clearances≈ 0.1–0.2 mm press, ≈ 0.3 mm sliding, ≈ 0.4–0.5 mm loose or print-in-place (per side)printers over- and under-extrude by tenths of a millimeter"Expose clearance as a parameter, default 0.3 mm"
Orientation and anisotropylayers are the weak planeparts snap along layer lines"Orient so the hook's bending load runs along the layers"
Infill≈ 15–20% for general parts; more walls before more infill for strengthperimeters carry most of the load"4 walls and 25% gyroid rather than 60% infill"
Fillets and chamferschamfer edges on the bed; fillet internal cornersa bottom fillet is an overhang; sharp inner corners concentrate stress"Chamfer bottom edges 0.5 mm, fillet inside corners 2 mm"
Elephant's foota 0.3–0.6 mm chamfer at the base, plus slicer compensationthe first layer squishes outward"Add a bottom chamfer so it fits flush"
Warpinground corners, add a brim, use an enclosure for ABS, ASA, nylonshrinkage pulls corners up"Round the footprint corners to 5 mm"
Print-in-place≥ ≈ 0.3–0.5 mm gaps; nothing that fuses on the first layermoving parts weld together if gaps are too small"Print-in-place hinge, 0.4 mm gap, pin axis horizontal"
Threadsprint only coarse threads, axis vertical; otherwise inserts or nutsfine printed threads strip and print poorly"Use M3 heat-set inserts instead of printed threads"
Splitting large modelssplit at flat, hidden faces with pins, dowels, keys or dovetailsparts must fit the build volume and print flat"Split into parts under 200 mm with 4 mm alignment pin holes"
Resin hollowinghollow walls a few mm thick, drain holes near the bottom; angle the parttrapped resin and suction forces cause failures"Hollow to 2.5 mm, two drain holes, tilt 30°"
Each new line must rest on the one below (0.45 mm lines, 0.2 mm layers, side view) 20° ≈ 84% supported each line sits on the one below 45° ≈ 56% supported almost half of each line hangs: the usual limit 65° ≈ 5% supported lines land on air and droop On a part: 45° chamfer: prints flat ledge: needs support long spans sag bridge: fine if short
The 45° rule is geometry: past it, a new line has too little of the last one to land on.

CAD workflows

ApproachToolsBest forHow a chat model helps
Parametric solid modeling (sketches, constraints, features, history)Autodesk Fusion, Onshape, FreeCAD, SolidWorksmechanical parts, assemblies, precise fitsstep-by-step instructions ("sketch on XY, constrain, extrude 20 mm"), formulas for parameters, debugging a broken feature; it can't click for you
Code-CADOpenSCAD (its own language, CSG), CadQuery and build123d (Python on the OpenCascade kernel, export STEP)parametric parts you can describe in words; the best target for chat models because the output is text you can run and diffwriting and fixing the code; adding parameters; explaining errors
Mesh and sculptingBlender, ZBrush, Nomad Sculptfigurines, organic shapes, repairing AI meshesBlender Python scripts, repair steps, scale and units
Beginner block modelingTinkercadsimple shapes, kids, first partsinstructions in plain steps
AI generatorstext- or image-to-3D (Meshy, Tripo, Rodin, Hunyuan3D, TRELLIS and others; features change quickly)figurines, props, organic decorationwriting the concept prompt; planning the cleanup

Code-CAD is where prompting pays off most for functional parts: you can read the dimensions, change a number, run it and send the error or a screenshot back.

A parametric example

What to ask a model to produce, and what to look for when it does: every dimension a named parameter, units stated, clearance exposed, derived values computed rather than typed, and the print orientation built in. The comment above each parameter and the // [min:step:max] comments turn them into sliders in OpenSCAD's Customizer.

// Parametric box with friction-fit lid. Units: mm.
 
// inside length
inner_x = 60;   // [20:1:200]
// inside width
inner_y = 40;   // [20:1:200]
// inside height
inner_z = 25;   // [10:1:100]
// wall thickness, a multiple of line width
wall = 2;       // [1.2:0.2:4]
// floor thickness
floor_t = 2;    // [1:0.2:4]
// fit gap per side; tune with a test print
clear = 0.3;    // [0.1:0.05:0.6]
// height of the lid lip
lip_h = 6;      // [3:1:15]
// outer corner radius
r = 3;          // [0.5:0.5:8]
 
$fn = 48;
outer_x = inner_x + 2 * wall;
outer_y = inner_y + 2 * wall;
 
// rounded-rectangle slab, x by y, height h
module rounded(x, y, h, rad) {
  linear_extrude(h)
    offset(r = rad) offset(delta = -rad)
      square([x, y]);
}
 
module box() {
  difference() {
    rounded(outer_x, outer_y, inner_z + floor_t, r);
    translate([wall, wall, floor_t])
      rounded(inner_x, inner_y, inner_z + 1,
              max(r - wall, 0.01));
  }
}
 
// lid prints plate-down, lip pointing up: no supports
module lid() {
  lx = inner_x - 2 * clear;
  ly = inner_y - 2 * clear;
  rounded(outer_x, outer_y, wall, r);
  translate([wall + clear, wall + clear, wall])
    difference() {
      rounded(lx, ly, lip_h, max(r - wall - clear, 0.01));
      translate([wall, wall, -1])
        rounded(lx - 2 * wall, ly - 2 * wall, lip_h + 2, 0.01);
    }
}
 
box();
translate([0, outer_y + 10, 0]) lid();

File formats

FormatWhat it holdsUse it forWatch for
STLtriangles onlythe universal exchange format to slicersno units (assumed mm), no color, no editable features
3MFzipped XML: meshes plus units, colors, materials, multiple objects, often slicer settingssharing a ready-to-print project; modern slicers' native formatsome older tools ignore the extras
STEP (.step, .stp)exact CAD solids (ISO 10303), not trianglesediting in another CAD tool; print services; newer slicers import itneeds a CAD tool or slicer that reads it; meshes can't become true STEP
OBJmesh plus UVs and textures (with an MTL file)color figurines, AI generator outputunits ambiguous; often huge or tiny on import
G-codemachine instructions for one printer and materialsending to that printernot portable between printers

Slicers and settings

The common slicers are PrusaSlicer, OrcaSlicer, UltiMaker Cura and Bambu Studio (Bambu Studio started from PrusaSlicer, and OrcaSlicer from Bambu Studio). They share concepts but not names: Cura says "walls" where PrusaSlicer says "perimeters". Tell the model which slicer and version you use.

SettingWhat it doesTypical start (0.4 mm nozzle)Say it like
Layer heightthickness per layer; at most ≈ 75% of nozzle diameter0.2 mm; 0.1–0.12 fine; 0.28 draft"0.2 mm, variable layer height on the curved top"
First layerheight, speed, temperature and squish of layer one≈ 0.2 mm, slow"My first layer has gaps: what to adjust?"
Perimeters / wallsnumber of outline loops2–4"4 walls for this bracket"
Top / bottom layerssolid skins≈ 4–6"Enough top layers to avoid pillowing"
Infilldensity and pattern (grid, gyroid, cubic, lightning)15–20%"Gyroid 20%"
Retractionfilament pull-back on travelshort on direct drive (≈ 0.5–2 mm), longer on Bowden (≈ 3–6 mm)"Retraction test for PETG on a direct-drive extruder"
Flowextrusion multipliercalibrate, typically near 0.9–1.0"Flow calibration steps for OrcaSlicer"
Pressure / linear advancecompensates nozzle pressure for sharp corners and even linescalibrate per filament"Pressure advance calibration"
Coolingpart fanhigh for PLA; low or off for ABS, ASA"Fan settings for ASA in an enclosure"
Brim / raft / skirtadhesion and primingbrim for warp-prone parts"5 mm brim on the corners only"
Supportstype, interface, Z gaptree/organic for figurines"Organic supports, painted only under the chin"
Seamwhere loops startrear or aligned"Seam on the hidden back corner"
Ironinga hot pass over top surfaces to smooth themtop surfaces only"Iron the lid top"
Modifiersdifferent settings inside a regionaround holes or bosses"More walls around the screw holes only"
Input shapingfirmware compensation for frame resonanceper printer"Ringing after corners: is it resonance?"

Troubleshooting from photos

Give the model a sharp, well-lit photo from several angles (include the first layer and a ruler or coin for scale), plus printer, slicer, material, temperatures, speeds and what changed since the last good print.

SymptomLikely causesFirst thing to try
Stringingnozzle too hot, short retraction, wet filamentlower temperature 5–10 °C, tune retraction, dry the filament
Warping, corners liftingpoor adhesion, drafts, high-shrink materialclean the bed, add a brim, enclosure, round the corners
Elephant's footfirst layer squished too much, bed too hotraise Z offset slightly, slicer compensation, bottom chamfer
Under-extrusion (gaps, weak walls)partial clog, wet filament, too fast, too coolslow down, raise temperature, check the nozzle and extruder
Layer shiftloose belt, collision, too much accelerationcheck belts and pulleys; look for curled edges the nozzle hit
Ringing / ghostingframe resonanceinput shaping, lower acceleration
Pillowing (bumps on top)too few top layers, weak coolingmore top layers, more fan
Layer splittingtoo cool, drafts (ABS, ASA)enclosure, hotter nozzle, less fan
Spaghettipart came loosefirst layer and adhesion
Resin: part stuck to the film, not the platepoor plate adhesion, too few bottom exposures, suctionlevel the plate, raise bottom exposure, angle and hollow

Brief the model

Each input has a slot in the prompt skeleton (see Prompting fundamentals); the Slot column says where it goes.

InputWhy it mattersExampleSlot
Purpose and loadssets material, orientation and wall thickness"Holds a 1.5 kg tablet at 60° on a desk"<context>
Measured mating dimensionsfits come from real numbers"Shaft is 6.00 mm with a D-flat 4.5 mm across"<context>; photos with a ruler in <materials>
Fit type per interfacepress, sliding or loose need different clearances"Press fit on the shaft, sliding fit on the lid"<requirements>
Printer, nozzle, build volumedefines limits and splits"Bed-slinger, 0.4 mm nozzle, 250 × 210 × 220 mm"<context>
Materialheat, flexibility, warping"PETG, will sit in a sunny window"<context>
Hardware on handlets the design use it"M3 × 10 screws, M3 heat-set inserts, 608 bearings"<context>
Cosmetic facethe face to keep off the bed and away from supports"The front must be clean"<requirements>
Environmentoutdoor UV, water, heat, food"Outdoors, full sun"<context>
Output formatcode you can run and edit"OpenSCAD, parameters at the top, Customizer comments"<output_format>
Your skill level and toolswhat explanations you need"First time with OpenSCAD; I use PrusaSlicer 2.9"<context>

What to ask for

StageDeliverables to ask for by name
Requirementsrequirements list with numbers (loads, sizes, fits, environment); material recommendation with reasons; questions the model needs answered
Designparametric OpenSCAD or CadQuery model; parameter table; print-orientation recommendation; hardware bill of materials; exploded description for multi-part designs
Validationtolerance test coupon; a short test-slice of the critical feature; a printability review (overhangs, bridges, thin walls, supports)
Slicingstarting slicer profile for your slicer and material; modifier suggestions; estimated weak points
Printing and fixingdiagnosis from photos; calibration sequence for a new filament (temperature tower, retraction, flow, pressure advance)
Post-processingsupport removal plan; sanding, priming and painting steps; insert installation; resin wash and cure; annealing notes (with the warning that parts shrink)
AI meshesrepair checklist; scale to a stated height; hollowing and drain holes; split plan with pins

The prompt chain

The main deliverable is a functional printed part: from caliper measurements to a parametric OpenSCAD or CadQuery model with clearances, a print orientation and starting slicer settings, reviewed for printability before the first print. Run the four prompts in order and paste each answer into the next.

1. Interview

Use before any code: the model asks what an experienced designer asks before modeling a functional part.

<context>
I need a printed [part, e.g. replacement knob for a stove's D-shaft].
Printer: [printer: open FDM | enclosed FDM | MSLA resin | print service].
I'm new to CAD.
</context>
 
<task>
Interview me the way a designer scopes a functional printed part,
before any modeling. Don't design anything yet.
</task>
 
<requirements>
- At most 10 questions, grouped: function and loads; mating parts
  and measurements; environment (heat, sun, water, food contact);
  printer and material; hardware on hand.
- For each question: why it matters to the design, and typical
  answers.
- Tell me exactly what to measure with calipers and how (e.g. a
  shaft's diameter at three points, the D-flat across), to 0.05 mm.
</requirements>
 
<process>
Ask all the questions in one message, then stop and wait. When I
answer, restate the requirements as a numbered list with values,
write [NEEDS MEASUREMENT] for any dimension I haven't given, and
end with a list of the assumptions you made.
</process>

2. Options

Use once the requirements are fixed: ways to make the part that differ in orientation, assembly or hardware.

<materials>
[paste the requirements list from stage 1]
</materials>
 
<task>
Propose [number of approaches: 2 | 3] materially different design
approaches for this part, so I can choose one to model.
</task>
 
<requirements>
- The approaches differ in how the part is made or held together:
  one piece or two; printed threads, heat-set inserts or nut traps;
  print orientation.
- For each: print orientation and why (layer direction vs. the
  load); supports needed; material; hardware; fit and clearance per
  interface; rough print time; the main way it fails.
- Apply the DfAM rules: overhangs within 45° of vertical, bridges
  under about 10 mm, walls at least 2 lines wide.
- Never invent numbers, names, quotes or sources: write
  [NEEDS MEASUREMENT] for missing dimensions and [NEEDS SOURCE] for
  datasheet values.
</requirements>
 
<output_format>
A short section per approach, then a comparison table (strength,
printability, fit accuracy, print time, cost) and a recommendation.
</output_format>
 
<process>
Stop after the recommendation and wait for my choice. End with a
list of the assumptions you made.
</process>

3. Produce

Use after you pick an approach: the full skeleton, filled in for a parametric model you can print and tune.

<materials>
[paste the requirements from stage 1 and the chosen approach from
stage 2; add photos of the mating parts next to a ruler]
</materials>
 
<context>
Part: [part, e.g. knob for a 6.0 mm D-shaft with a 4.5 mm flat].
Printer: [printer, e.g. bed-slinger, 0.4 mm nozzle, 250 × 210 ×
220 mm build volume].
Material: [material: PLA | PETG | ASA | TPU | nylon].
Slicer: [slicer and version, e.g. PrusaSlicer 2.9].
I'm new to [CAD tool: OpenSCAD | CadQuery | build123d]; comment the
code so I can change it.
</context>
 
<task>
Write a parametric model of this part in that CAD tool, with its
print orientation and starting slicer settings, ready for a test
print.
</task>
 
<requirements>
- Every dimension a named parameter at the top, with a comment and
  units (mm); in OpenSCAD add Customizer ranges.
- One clearance parameter per interface, per side; default for
  [fit: press ≈ 0.15 mm | sliding ≈ 0.3 mm | loose ≈ 0.45 mm].
  A hole or slot grows by twice the clearance.
- Derived values computed from parameters, never typed in.
- Model it in print orientation, flat face on z = 0: no overhang
  beyond 45° from vertical; horizontal holes teardrop-shaped;
  bottom edges chamfered 0.5 mm (no bottom fillets); inside corners
  filleted.
- Walls at least [minimum wall, e.g. 2 mm], a multiple of the line
  width.
- Hardware sizes (insert holes, screw heads) from datasheets: write
  [NEEDS SOURCE] if you don't have the datasheet value.
- CadQuery or build123d: only documented API calls; say which
  version you assume; export STEP and STL.
- Never invent numbers, names, quotes or sources: write
  [NEEDS MEASUREMENT] for any dimension I didn't give.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- Every fit dimension is my measurement plus the clearance, applied
  on each side.
- In the chosen orientation the load runs along the layers, not
  across them.
- It prints without supports, or the draft says where they go.
- Changing one parameter (e.g. the shaft diameter) updates
  everything that depends on it.
- The code uses only real functions and would render cleanly.
</quality_bar>
 
<output_format>
The code in one block; a parameter table (name, value, what it
controls); the print orientation and why; a slicer settings table
(layer height, walls, top and bottom layers, infill, supports,
brim); the three features most likely to need tuning after a test
print.
</output_format>
 
<process>
Ask me up to 3 questions first if anything missing would change
your answer; otherwise go on. End with a list of the assumptions
you made.
</process>

4. Review

Run this in a fresh chat with only the requirements and the design: a model reviewing its own draft shares its blind spots, so it rarely catches its own wrong clearance. The same prompt works on a model you downloaded.

<materials>
<brief>
[paste the requirements from stage 1]
</brief>
<design>
[paste the code and notes from stage 3, plus screenshots from three
angles in print orientation]
</design>
</materials>
 
<task>
Review this part for printability and fit before I print it, as a
DfAM review. Critique only: don't rewrite the code.
</task>
 
<requirements>
- Score each 1-5 with evidence from the code: dimensions vs.
  measurements; parametric (one change propagates); fits and
  clearances; orientation vs. loads; overhangs and supports; walls
  and minimum features; hardware sizes; code correctness (real
  functions, renders cleanly).
- Recompute every derived dimension yourself, including the
  clearance on both sides of each hole and slot.
- Never invent numbers, names, quotes or sources: write
  [NEEDS SOURCE] where a datasheet value is assumed.
</requirements>
 
<quality_bar>
Before answering, check your review against:
- Every score cites a line of code or a number.
- Each fix is concrete: a parameter value, a geometry change or a
  slicer setting.
- It names the one feature to test-print first, as a thin slice.
</quality_bar>
 
<output_format>
A rubric table; fixes ranked by the risk of a failed or unusable
print; a 10-minute test print of the riskiest feature.
</output_format>
 
<process>
End with a list of the assumptions you made.
</process>

Goals and loops

In an agent that runs commands and checks its own work, such as Claude Code, the Produce stage can run until it measurably passes: /goal keeps starting turns until a condition holds, and /loop repeats a prompt or skill on an interval. The checker reads only the conversation, so every condition below names a check whose output Claude prints, the constraints that must survive, and a bound. How to write your own: Goals and loops.

TaskCompletion condition
Parametric model/goal openscad -o part.stl part.scad finishes with no WARNING lines (show its output), every dimension is a named parameter at the top, and python -c "import trimesh; print(trimesh.load('part.stl').is_watertight)" prints True; or stop after 15 turns
Tolerance test coupon/goal the coupon script writes one STL per clearance from 0.1 to 0.5 mm in 0.1 mm steps (list the files and their sizes), each labeled with its clearance; or stop after 8 turns
Clean up a generated mesh/goal the repaired model is one watertight body (print trimesh's is_watertight and body count) and its height is 120 mm ±0.5 at the intended orientation; or stop after 10 turns

Loops that fit: during a long print, /loop 10m reading your printer's API (OctoPrint or Moonraker) to report progress and flag a temperature drop or a stalled job.

What a checker can't judge: fit, strength and surface finish. Only a test print in your material on your printer settles those.

Prompt library

One entry per deliverable. Quick is the minimum that still works; Full fills in the skeleton.

Material choice

Stage: options · Use when: you know what the part has to survive but not which plastic to print it in.

Quick

Compare [number: 2 | 3 | 4] materials for [part and conditions, e.g. a
bracket in a parked car, summer sun, light load] on heat, UV,
creep, ease of printing and what my printer needs (enclosure,
hardened nozzle, drying). Recommend one, then stop. Give typical
ranges only and say when the spool label or datasheet wins.

Full

<materials>
[paste the spool labels or datasheets of filaments you already own]
</materials>
 
<context>
Part: [part and use, e.g. a hook for a garden hose, 3 kg, constant].
Where: [conditions: indoors | hot car | outdoor sun | wet | near food].
Printer: [printer, e.g. open-frame bed-slinger, brass 0.4 mm nozzle,
no enclosure].
</context>
 
<task>
Compare candidate materials for this part and recommend one, so I
buy the right filament before designing.
</task>
 
<requirements>
- Compare 2-4 of: PLA, PETG, ABS, ASA, TPU, nylon, PC,
  fiber-filled, standard or tough resin.
- For each: heat resistance; UV and water; creep under a constant
  load; layer adhesion; ease of printing; printer needs (enclosure,
  all-metal hotend, hardened nozzle, drying).
- Temperatures as typical ranges only; the label or datasheet wins.
- Never invent numbers, names, quotes or sources: write
  [NEEDS SOURCE] for any property you can't support.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- The pick survives the worst condition I named (heat, sun, load).
- It prints on my printer as described, or says what to change.
- Food, child or safety use is flagged as needing a real test, not
  settled by the material choice.
</quality_bar>
 
<output_format>
Comparison table (material, heat, UV and water, creep, ease,
printer needs), then the recommendation in two sentences.
</output_format>
 
<process>
Stop after the recommendation and wait. End with a list of the
assumptions you made.
</process>

Tolerance test coupon

Stage: produce · Use when: first on any new printer, nozzle or filament, before you design anything that has to fit.

Quick

Write an OpenSCAD tolerance test: five 10 mm pins, and a bar with five
holes for per-side clearances of 0.1 to 0.5 mm (10.2 to 11.0 mm),
each value engraved, flat on the bed, no supports. Check that every
hole = pin + 2 × clearance, and tell me how to read the result as
press, sliding and loose fits.

Full

<context>
Printer: [printer, e.g. bed-slinger, 0.4 mm nozzle].
Material: [material: PLA | PETG | ASA | TPU | nylon].
Slicer: [slicer and version, e.g. OrcaSlicer 2.3].
I'll use the result to set the clearance parameter in every design.
</context>
 
<task>
Write an OpenSCAD tolerance test coupon that shows which clearance
gives a press, sliding and loose fit on this printer.
</task>
 
<requirements>
- Five 10 mm pins, 8 mm tall, on a bar; a second bar 80 × 16 × 5 mm
  with five through holes for per-side clearances of
  [clearance steps, e.g. 0.1, 0.2, 0.3, 0.4, 0.5 mm], at the pins'
  spacing.
- Engrave each clearance value beside its hole, 0.6 mm deep.
- Flat on the bed, no supports, bottom edges chamfered 0.4 mm.
- Pin diameter and the clearance list as parameters.
- Never invent numbers, names, quotes or sources: write
  [NEEDS SOURCE] where support is missing.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- Each hole diameter = pin + 2 × clearance (10.2 to 11.0 mm with
  the default steps).
- Both bars print in under about 30 minutes at normal settings.
- The engraved text is large enough to print (about 5 mm tall).
</quality_bar>
 
<output_format>
The code; then how to read the result, and how to measure the pins
with calipers to separate printer error from design error.
</output_format>
 
<process>
End with a list of the assumptions you made.
</process>

Slicer profile for a part

Stage: produce · Use when: the model is done and you want starting settings for this part, material and slicer.

Quick

Give starting [slicer and version, e.g. PrusaSlicer 2.9] settings for
[part and use, e.g. a wall bracket holding 4 kg] in [material, e.g.
PETG], 0.4 mm nozzle: layer height, walls, top and bottom layers,
infill, supports, brim, seam, plus modifiers around the screw holes.
Use my slicer's own setting names and mark any you're unsure of.

Full

<materials>
[paste or attach screenshots of the part in the slicer, or the code
and dimensions]
</materials>
 
<context>
Part: [part and use, e.g. a wall bracket holding 4 kg].
Material: [material, e.g. PETG]. Printer: [printer, e.g. direct-drive
bed-slinger, 0.4 mm nozzle]. Slicer: [slicer and version, e.g.
OrcaSlicer 2.3].
Priority: [priority: strength | surface finish | speed | accuracy].
</context>
 
<task>
Write a starting slicer profile for this part so the first print is
usable.
</task>
 
<requirements>
- Cover layer height, line width, walls, top and bottom layers,
  infill density and pattern, supports (type and where), brim, seam
  position and cooling; speeds only where they matter for this part.
- More walls before more infill for strength; modifiers for local
  changes (around holes and bosses, the cosmetic face).
- Use my slicer's own name for each setting; write [VERIFY] where
  you're unsure it exists in my version.
- Never invent numbers, names, quotes or sources: write
  [NEEDS SOURCE] where support is missing.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- The settings serve my priority, and the trade-off is named.
- Layer height is at most about 75% of the nozzle diameter; walls
  are a whole number of lines.
- The cosmetic face has no supports and no seam.
</quality_bar>
 
<output_format>
Table: setting (my slicer's name), value, why. Then the modifiers.
Then what to inspect on the first print.
</output_format>
 
<process>
Ask me up to 3 questions first if anything missing would change
your answer; otherwise go on. End with a list of the assumptions
you made.
</process>

Filament calibration plan

Stage: produce · Use when: you open a new material or brand and prints look worse than before.

Quick

I switched to [material, e.g. a new brand of PETG] on [printer, e.g. a
direct-drive bed-slinger] with [slicer and version, e.g. OrcaSlicer
2.3]. Give the calibration sequence in order (temperature, flow,
pressure advance, retraction, max volumetric speed, cooling), one
variable per test, and say where each result goes in my slicer.

Full

<context>
Material: [material, e.g. a new brand of PETG, opened today].
Printer: [printer and extruder, e.g. bed-slinger, direct drive, 0.4
mm brass nozzle]. Slicer: [slicer and version, e.g. OrcaSlicer 2.3].
Symptoms so far: [symptoms, e.g. stringing and rough overhangs].
</context>
 
<task>
Write a calibration sequence for this filament, in order, that ends
with a filament profile I can trust.
</task>
 
<requirements>
- Order: dry it first if it absorbs moisture; then temperature
  tower; flow (extrusion multiplier); pressure or linear advance;
  retraction; max volumetric speed; cooling.
- For each step: the test print (my slicer's built-in calibration
  if it has one), what to look for, how to read it, where to save
  the value.
- Use my slicer's own names; write [VERIFY] where you're unsure a
  menu or setting exists in my version.
- Never invent numbers, names, quotes or sources: write
  [NEEDS SOURCE] where support is missing.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- One variable per test, and each result is saved before the next.
- Temperatures start from the spool label's range.
- Firmware differences (pressure advance vs. linear advance) are
  called out.
</quality_bar>
 
<output_format>
Numbered steps: test, settings, what good looks like, where to save
it. Then a one-line-per-step checklist to print and tick.
</output_format>
 
<process>
Ask me up to 3 questions first if anything missing would change
your answer; otherwise go on. End with a list of the assumptions
you made.
</process>

AI mesh cleanup

Stage: produce · Use when: a text- or image-to-3D generator gave you a mesh you want to print.

Quick

I generated a figurine and exported [format: OBJ | GLB | STL]. Target:
[height, e.g. 75 mm] on [process: FDM 0.4 mm | MSLA resin]. Give the
Blender cleanup step by step: units and scale, non-manifold repair,
thin parts at final scale, a flat base, hollowing and drain holes for
resin, 3MF export. Name the menus; mark any you're unsure of.

Full

<materials>
[paste or attach screenshots of the mesh from the front, side and
below, with its polygon count]
</materials>
 
<context>
Source: [tool and format, e.g. an image-to-3D generator, OBJ with
textures]. Target: [height, e.g. 75 mm tall] on
[process: FDM 0.4 mm | MSLA resin | SLS print service].
Blender: [Blender version, e.g. 4.5] with the 3D-Print Toolbox.
</context>
 
<task>
Write a step-by-step Blender plan that turns this mesh into a
printable file.
</task>
 
<requirements>
- Steps: units in mm and scale to the target height; fix
  non-manifold edges, flipped normals, floaters and
  self-intersections; find parts thinner than
  [minimum thickness, e.g. 1.5 mm for FDM, 0.8 mm for resin] and
  thicken or remove them; add a flat base; for resin, hollow to
  about 2-2.5 mm walls with drain holes near the base; split with
  alignment pins if it won't fit or needs fewer supports; export
  3MF.
- Name the menus and operators; write [VERIFY] where you're unsure
  they exist in my Blender version.
- Never invent numbers, names, quotes or sources: write
  [NEEDS SOURCE] where support is missing.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- The plan ends with a manifold check that reports zero problems.
- Thickness is checked at the final printed scale, not on import.
- Resin parts have drain holes and no closed cavities.
</quality_bar>
 
<output_format>
Numbered steps, each with its operator and what to check before
moving on.
</output_format>
 
<process>
End with a list of the assumptions you made.
</process>

Split a large model

Stage: produce · Use when: the model is bigger than your build volume or would need heavy supports in one piece.

Quick

My model is [model size, e.g. 320 × 180 × 260 mm]; my build volume is
[build volume, e.g. 250 × 210 × 220 mm]. Plan the split for
[process: FDM | resin]: cut planes on flat, hidden faces, alignment
(pins, keys or dovetails), glue gap, orientation per part. Check that
every part fits the build volume, brim included.

Full

<materials>
[paste or attach screenshots of the model from three sides with its
overall dimensions]
</materials>
 
<context>
Model: [model, e.g. a 320 mm tall bust, decorative]. Build volume:
[build volume, e.g. 250 × 210 × 220 mm]. Process:
[process: FDM | MSLA resin]. Tools: [tools, e.g. Blender 4.5 and
PrusaSlicer 2.9].
</context>
 
<task>
Plan how to split this model into printable parts that align and
glue cleanly.
</task>
 
<requirements>
- Cut on flat, hidden faces, with as few parts as fit the build
  volume and the fewest supports per part.
- Alignment: [alignment: 4 mm pins | dowels | keyed joints | dovetails],
  with hole sizes using the clearance from my tolerance test.
- Glue gap 0.1-0.2 mm; print orientation for each part.
- Give the cut steps in Blender or the slicer's cut tool; write
  [VERIFY] for any menu you're unsure of in my version.
- Never invent numbers, names, quotes or sources: write
  [NEEDS SOURCE] where support is missing.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- Every part, with its brim, fits the build volume as oriented.
- No seam crosses a face that has to look clean.
- Pin holes allow for clearance on both sides.
</quality_bar>
 
<output_format>
Table: part, size as oriented, orientation, supports, alignment.
Then the cut steps.
</output_format>
 
<process>
End with a list of the assumptions you made.
</process>

Stage: review · Use when: a print failed or looks wrong and you want to fix it in as few test prints as possible.

Quick

[paste or attach 2-4 sharp photos with a ruler: whole part, defect,
first layer] Printer [printer, e.g. bed-slinger, Bowden], slicer
[slicer and version, e.g. Cura 5.8], material [material, e.g. PETG],
settings [settings, e.g. 240/80 °C, 0.2 mm, 60 mm/s]. Name the defect,
rank causes, give one change per test print; never change two at once.

Full

<materials>
[paste or attach 2-4 sharp, well-lit photos: the whole part, the
defect up close, the first layer, with a ruler or coin for scale]
</materials>
 
<context>
Printer: [printer and extruder, e.g. bed-slinger, Bowden extruder].
Slicer: [slicer and version, e.g. UltiMaker Cura 5.8].
Material: [material and storage, e.g. PETG, opened 3 months ago,
stored in the open]. Settings: [settings, e.g. nozzle 240 °C, bed
80 °C, 0.2 mm layers, 60 mm/s, retraction 5 mm, fan 50%].
Changed since the last good print: [changes, e.g. new spool, the
printer moved next to a window].
</context>
 
<task>
Diagnose this print from the photos and give me a test plan, so I
fix it in as few prints as possible.
</task>
 
<requirements>
- Name the defect by its standard term (stringing, warping,
  elephant's foot, under-extrusion, layer shift, ringing, pillowing,
  layer splitting).
- Rank the likely causes, saying which evidence in the photos or
  settings points to each.
- One change per test print, in order, with the result to expect.
- Never invent numbers, names, quotes or sources: write
  [NEEDS SOURCE] where support is missing, and [VERIFY] for any
  setting name you're unsure of in my slicer version.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- The diagnosis matches what the photos show, not just the most
  common defect.
- Cheap, reversible fixes (drying, cleaning the bed, temperature)
  come before hardware changes.
- No test changes more than one setting.
</quality_bar>
 
<output_format>
Defect name; causes ranked with evidence; a numbered test plan
(change, why, expected result).
</output_format>
 
<process>
Ask me up to 3 questions first if anything missing would change
your answer; otherwise go on. End with a list of the assumptions
you made.
</process>

Worked example

Weak prompt

Make me a phone stand I can 3D print.

What's wrong

  • No phone dimensions or case thickness, viewing angle or charging cable, so every size is a guess.
  • No printer, material or slicer, so wall thickness and settings are generic.
  • No fit or clearance, so the phone jams or rattles.
  • Nothing about orientation, so the design probably needs supports and snaps along its layers.
  • No output format: you get an essay or a description of an STL instead of code you can run.

Strong prompt

<context>
Printer: bed-slinger FDM, 0.4 mm nozzle, 250 × 210 × 220 mm build
volume. Material: PETG. Slicer: PrusaSlicer 2.9. First time with
OpenSCAD.
Phone in its case, measured with calipers: 78.2 mm wide, 11.8 mm
thick. It stands in portrait on a desk while charging over USB-C.
</context>
 
<task>
Write a parametric OpenSCAD phone stand that I can print and adjust
after one test print.
</task>
 
<requirements>
- Viewing angle 65° from horizontal. Lip 10 mm tall with a 14 × 8 mm
  cable slot. Base 90 mm wide × 100 mm deep so it won't tip; two
  10 mm recesses, 1 mm deep, for rubber feet.
- Parameters at the top with Customizer ranges: phone thickness,
  clearance per side (default 0.5 mm, because the phone drops in),
  angle, lip height, cable slot size, wall (default 3 mm).
- Print on its side so the layer lines run along the bending load,
  with no supports; chamfer bed edges 0.5 mm; fillet the inside
  corner where the back meets the base (r = 5 mm).
- Never invent numbers, names, quotes or sources: write
  [NEEDS MEASUREMENT] for any dimension I haven't given.
</requirements>
 
<quality_bar>
Before answering, check your draft against:
- The phone slot = phone thickness + 2 × clearance.
- The phone's center of mass sits over the base, so it won't tip.
- No overhang beyond 45° in the print orientation.
- Every derived dimension is computed from parameters.
</quality_bar>
 
<output_format>
The code, then a parameter table, why that orientation, and
starting PrusaSlicer settings for PETG.
</output_format>
 
<process>
End with a list of the assumptions you made.
</process>

What came back

Illustrative, abridged:

// Phone stand. Units: mm. Prints on its side.
phone_t = 11.8;  // [8:0.1:16] phone thickness, in its case
clear   = 0.5;   // [0.2:0.1:1.5] clearance per side
angle   = 65;    // [50:1:80] viewing angle from horizontal
lip_h   = 10;    // [5:1:20] lip height
wall    = 3;     // [2:0.5:5] wall thickness
width   = 90;    // [70:1:120] stand width
slot_w  = phone_t + clear;   // phone slot
...
module profile() { ... }     // side profile, in the XY plane
linear_extrude(width) profile();   // profile flat on the bed
 
Orientation: on its side, so each layer is the whole profile
and bending runs along the lines, not across them.
Tip check: the phone's center of mass is about 34 mm behind
the lip, well inside the 100 mm base.
PrusaSlicer 2.9, PETG: 0.2 mm layers, 4 perimeters, 5 top and
bottom layers, 20% gyroid, no supports, no brim.
Tune after a test print: clearance, lip height, angle.
Assumptions: the case has no ring grip; the desk is flat; ...

How an expert judged it

  • Parametric and orientation: pass. Named parameters with Customizer ranges and units, printed on its side so the layers carry the bending load. The tip check holds: the middle of a ≈ 160 mm phone sits 80 mm up the 65° back, ≈ 80 × cos 65° ≈ 34 mm behind the lip.
  • Fit: fail. slot_w = phone_t + clear adds the clearance once, although the comment says it is per side. The phone gets 0.25 mm a side instead of 0.5 mm, and slots print slightly small, so it may jam. This is the first <quality_bar> check, and the answer skipped it. Fix: slot_w = phone_t + 2 * clear.
  • Slicer settings: pass. They use PrusaSlicer's own names (perimeters, not walls) and match the part.
  • What a pro would add: print a 10 mm wide slice of the profile first to test the slot before the 90 mm stand.

The follow-up

slot_w adds the clearance once, but clear is per side. Change it to
phone_t + 2 * clear and check every other fit in the code for the
same mistake. Then add a test_slice parameter that cuts the stand to
a 10 mm wide slice, so I can test the slot in a 15-minute print
before printing the whole stand.

Judge the output

These checks are the same ones written into every <quality_bar> on this sheet, adapted to each deliverable; use the table to judge what comes back.

CheckThe expert questionRed flag
Dimensionsdo the numbers match your measurements, in mm?magic numbers in the code; inches mixed in
Parametriccan you change one parameter and everything follows?hard-coded positions that break when a size changes
Fitsis there an explicit clearance per interface, applied on both sides of each hole or slot?parts designed exactly to size; a per-side clearance added once
Orientationis the load running along the layers?a hook or clip whose stress splits layers apart
Overhangs and supportscan it print support-free, or does it say where supports go?floating geometry; 90° overhangs with no comment
Walls and featuresnothing thinner than ≈ 2 lines; holes sized for the hardware0.5 mm walls; screw holes at nominal size
Hardwareinserts, nuts and screws modeled with real sizes from datasheetsprinted M3 threads
Code runsdoes it render without warnings? Did the model use real functions?invented functions or library calls (common with CadQuery and build123d)
Mesh health (AI meshes)manifold, scaled, thick enough, flat base"should be printable" with no checks
Follow-up critique prompts
 
- "List every hard-coded number in this code and turn the ones
  that depend on other dimensions into derived values."
- "Which feature fails first under [load, e.g. 2 kg hanging from
  the hook]? Change the orientation or geometry to fix it."
- "Where would a slicer add supports? Redesign to remove them."
- "Make a 10-minute test print of just the
  [feature: hinge | thread | fit]."
- "Check this against the OpenSCAD documentation: is every
  function and argument real?"
- "The lid is too tight by about 0.2 mm. Which parameters change,
  and to what?"

Pitfalls

  • No measurements. "A knob for my oven" without the shaft diameter and flat is a guess.
  • Zero clearance. Parts modeled exactly to size do not fit; holes print small.
  • Clearance applied once. A per-side gap has to be added on both sides of a hole or slot.
  • Ignoring orientation. Strong in CAD, snaps at the first layer line in use.
  • Trusting library calls. Models invent CadQuery, build123d and OpenSCAD functions or arguments; run the code and paste errors back.
  • Inches and millimeters mixed. Say "mm" once and check the scale in the slicer.
  • AI meshes printed raw. Unscaled, non-manifold, with paper-thin swords and floaters.
  • Changing five settings at once when troubleshooting, so you never learn which one fixed it.
  • PLA in the sun. It softens in a hot car or window.
  • Printed threads for everything. Use inserts or nuts for anything you will tighten repeatedly.
  • Food and safety claims. "Food-safe filament" doesn't make layer lines or a brass nozzle food-safe; a model's reassurance isn't a test.
  • Reviewing in the same chat. The model defends its own code; run the printability review in a fresh chat.

References