Draw It Once: Modeling 3D Printed Parts So They Fit the First Time

Draw It Once: Modeling 3D Printed Parts So They Fit the First Time

Almost every failed 3D print that was not a printer problem was a drawing problem wearing a printer problem's clothes. The machine did what it was told. The part came out at exactly the size the file asked for. It just did not fit — because the file asked for the wrong thing.

ANTINSKY PETG-CF filament spool used for dimensionally stable functional 3D printed parts

This is not an article about tolerances. We have written that one, and it holds up: plastic shrinks, holes come out small, layer lines push a nominal 10 mm to 9.87 mm. This is the article one step earlier, the step almost nobody writes about, because it happens in software and leaves no evidence. It is about what you draw, in what order, and what you refuse to draw until you have measured something.

A printed part is a promise about a space that something else will occupy. A bracket promises a motor bolt pattern. A housing promises a board's mounting holes. A knob promises a shaft. The dimensions that matter are never the ones you chose — they are the ones the other object forced on you. The whole discipline of modeling for print is one sentence long: find the forced dimensions first, make them parameters, and build everything else off them.

Here is the full workflow, in the order it actually goes, with the arithmetic that decides each step.

Why the model, and not the slicer, is where parts go wrong

A slicer can compensate for a printer. It cannot compensate for a decision. There is no setting for "the hole is in the wrong place."

The failures that come out of the model layer are consistent and recognizable, and they all share a signature: they survive every calibration. You re-tune flow rate, the walls look perfect, the part still does not bolt up. Five of them account for nearly everything:

Failure Where it comes from What it looks like on the bench
Datum drift Two features dimensioned from two different references, both approximate Every bolt goes in but the last one binds
Rounded source dimensions Copying a 4.2 mm hole as 4 mm because 4 is a nicer number A press fit that is a slot, or a slip fit that needs a hammer
No test coupon Committing 90 minutes of printing before checking 30 seconds of fit The third reprint of a part you "already fixed"
Derived-by-hand dimensions Calculating a boss center from a bolt circle in your head A pattern that is exactly one pitch off, everywhere
Redrawn instead of revised Starting a v2 from scratch because the history got messy Fixing one problem, silently reintroducing two

None of these are printing problems. All five are drawing problems, and all five are cheap to prevent and expensive to discover. The rest of this article is the prevention.

The forced dimensions: separate what you choose from what you were told

Before you open a sketch, write down every dimension that some other physical object has already decided. Not the part you are drawing — the things it must touch.

A motor mount is the cleanest example because the numbers are not negotiable. An M3 clearance hole is 3.4 mm. A bolt pattern is on a fixed pitch. The boss height is set by how much shaft sticks out. Every one of those numbers belongs to a motor, a screw, or a bearing housing, and none of them belongs to you.

  • Forced: hole diameters, hole centers, shaft diameters, board outlines, connector heights, insertion depths, screw lengths, gasket groove width.
  • Chosen: wall thickness, fillet radii, outer envelope, rib layout, color, infill.
  • Derived: clearance gaps, boss heights, offsets, anything you calculate once and then trust forever.

The rule that follows from this is not obvious until it bites you: a forced dimension must never appear in your model as a number typed into a sketch. It goes in a named parameter, and every feature that touches it references the parameter. A 3.4 mm hole typed twenty times is twenty chances to type 3.5 mm once.

The corresponding discipline on the chosen side is the opposite: keep chosen numbers few. Ten changing variables is a design. Forty is a model you can no longer predict. If changing one wall thickness forces you to touch nine sketches, the model has no structure — it has surface area.

A parameter table you can actually use

You do not need a full parametric assembly. You need eight numbers, named, at the top of the model, referenced everywhere. This is a working table from a real bracket family:

Parameter Value Source Notes
hole_dia 3.4 mm Forced — M3 clearance Never smaller, never nominal 3.0
hole_pitch 31.0 mm Forced — motor pattern Also covers the two-hole pair
wall 2.0 mm Chosen An even multiple of nozzle width
boss_od 6.4 mm Derived hole_dia + 3.0 mm of meat
gap_slip 0.30 mm Derived Per side, tuned by coupon
gap_press -0.10 mm Derived Negative — intentional interference
fillet_min 1.0 mm Chosen Floor for anything load-bearing
plate_t 4.0 mm Chosen Two layer-height multiples plus walls

Two things make a table like this work rather than decorate. First, every derived value is written as an expression, not as a number — boss_od is literally hole_dia + 3, so a change to the bolt size moves the boss automatically. Second, the table lives in the model file, not in a notebook. A spreadsheet next to a CAD file is a second source of truth, and the second source of truth is always the one that is wrong.

We covered the physical side of these numbers elsewhere: how much plastic a hole actually loses, and why manufacturing tolerances have to be designed in rather than sliced out, plus the arithmetic behind shrinkage as a fixed correction. The point here is narrower: those numbers must live in the parameter table as expressions, or you will apply them inconsistently — correctly to the four holes you remembered and not to the two you did not.

Measure the actual thing, not the drawing of the thing

The most expensive habit in this workflow is trusting a datasheet for a dimension that a caliper would settle in ten seconds.

Datasheets are not wrong. They are nominal. A "10 mm shaft" is 9.95 to 10.00 mm on the drawing and whatever the grinder actually produced in your hand. A "M3 screw" has a major diameter that varies by manufacturer, and the point that matters for a printed hole is not the major diameter anyway — it is how much of the thread you are willing to let shear through.

If your printer's dimensional behaviour is the unknown rather than the part, the tuning flow for dimensional accuracy and the fundamentals in 3D printing tolerances are the two places to start before measuring anything. The measuring protocol that pays for itself the first time:

  1. Measure three times, in three places. A shaft is not round. Neither is a printed hole. Two measurements nine degrees apart will agree and lie to you.
  2. Write the number down before you round it. 9.96 mm goes in the table as 9.96. Rounding to 10.0 at the caliper stage throws away exactly the information the clearance calculation needs.
  3. Measure the counterpart's limit, not its center. For a slot, the useful number is the narrowest point. For a pocket, the shortest wall.
  4. Photograph the caliper jaw with the reading visible. Two weeks later, "I measured it" and "I measured it at 9.96" are different claims, and only one is checkable.

If you cannot measure because the part does not exist yet, say so and model to the nominal plus a test coupon. What is not allowed is measuring nothing and modeling to a remembered round number. That is the single most common cause of a first print that does not fit.

For parts that exist only as a physical object with no drawing, a scanner is the honest tool. Our walkthrough of the scanning ecosystem across Revopoint, Creality, Shining 3D and 3DMakerPro covers where scan data is good enough to model from and where it is worse than a caliper. The short version: scan for shape, caliper for anything that has to mate. Scan meshes are consistently a few tenths out on flat surfaces that face away from the camera, and that few tenths is the whole problem when it comes to a press fit. If scanning is your route, an entry-level unit like the 3DMakerPro Seal Lite is enough to get the envelope and the feature locations; the mating dimensions still come off a caliper.

Sketch with constraints, not with coordinates

There are two ways to draw a hole 15 mm from an edge. You can place it at an absolute coordinate and move on, or you can dimension it from the edge and let the sketch solve. The difference does not show up until the edge moves.

Coordinate-driven sketches feel faster for about two parts. Then a change arrives, the edge moves 4 mm, and every feature on that sketch is now in the wrong place relative to it — and nothing is visually wrong, because the absolute positions did not change. You find out at assembly.

Four constraint habits that remove most of this:

  • Fully constrain the sketch before you extrude. An under-constrained sketch has freedom left in it, and the solver will spend that freedom when something else changes. If your CAD shows degrees of freedom, get them to zero.
  • Dimension from a datum, not from whatever line is nearest. Pick one origin per part — a mounting face, a centerline, a board edge — and dimension everything from it.
  • Use symmetric constraints for symmetric features. A bolt pattern drawn as four separate distances is four chances to introduce a 0.1 mm asymmetry that will show up as a part that only fits one way.
  • Mirror rather than redraw. A mirrored feature is by construction the same feature. A redrawn one is a copy, and copies drift.

The datum choice deserves more thought than people give it, because tolerance stack-up is a property of the datum chain, not of any individual dimension. If your bracket is dimensioned from the motor face and your housing is dimensioned from the board edge, the two parts will fight over which one is "correct" and the loser is whichever one you already printed.

Feature order: the sequence that survives a revision

Models are built in a sequence, and that sequence is the reason some models accept a change in one edit and others require rebuilding. The order below is not a style preference; each step is placed where it is because moving it earlier destroys information a later step needs.

# Step Why here
1 Skeleton sketch of forced dimensions Everything downstream references this; it must exist first and change last
2 Primary solid body Gives later features something real to cut into
3 Functional features — holes, pockets, slots Cut before cosmetic work so fillets cannot swallow a hole edge
4 Stiffening features — ribs, gussets, bosses Needs the functional footprint to know where not to put material
5 Fillets at load-bearing junctions Only meaningful once the junctions exist in final position
6 Cosmetic chamfers, text, surface detail Last, because it is the first thing to sacrifice
7 Print orientation cut and split planes Decided with the printer in mind, not with the shape in mind

Step 4 is where most of the part's strength is decided, and also where most of the wasted plastic is. Shell count and wall thickness interact with rib geometry in ways that are not obvious: adding material at the wrong scale makes a part weaker, not stronger. The most violated rule in that table is number 5. Fillets applied early — because they look better in the preview and because the designer is proud of them — get consumed by later cuts, or worse, remain and now sit on an edge that no longer carries load. A 1 mm fillet on a junction that will be drilled through is decoration that costs a stress riser. We wrote about which junctions deserve the material in ribs, gussets, fillets and bosses, and which ones earn their plastic in spars, ribs and hollow sections. Both of those depend on the geometry existing before the fillet goes on.

Design the coupon before you design the part

This is the step that ends the reprint loop, and it is the step that everyone skips because it feels like a detour.

A test coupon is a small print — usually 15 minutes or less — that contains the exact features whose fit you are unsure about, at the exact sizes you intend to use, in the exact orientation you intend to print them. Not a generic tolerance test from the internet. Your hole, your material, your orientation, your printer.

What goes on a useful coupon:

  • The mating feature at nominal and at two guesses. Three holes at 3.3, 3.4 and 3.5 mm tells you which one this printer produces as "slip" for this filament.
  • The shaft or the boundary itself, printed as a male feature. Half the fit question is what the printer does to outside dimensions, and a hole-only coupon answers the other half.
  • One representative thin wall and one fillet. These set your minimums honest.
  • A witness mark or flat so you can label which hole was which. Unlabeled coupons produce confident but wrong conclusions.

Print the coupon on the same build plate at the same settings as the part. A coupon printed at half the speed on a freshly cleaned plate is a coupon that lies about the fit. It costs fifteen minutes to do it right and it saves the ninety-minute print plus the disassembly plus the second attempt.

If you want a printed, dimensioned source of truth rather than a one-off, an inspection routine with a caliper and a written pass/fail is the other half of this habit. The coupon tells you what the printer does; inspection tells you whether today's print matched.

Orientation is a modeling decision, not a slicer decision

By the time the model exists, the orientation has mostly been decided — by which face is flat, which holes are vertical, and which direction the layer lines will run. Rotating a finished model in the slicer is not choosing an orientation, it is discovering the one the model already allows.

So make the choice in CAD, explicitly, and let it change the geometry:

If the part needs… Model it so that… Because
Holes that hold a bolt Hole axis is vertical Printed holes come out out-of-round and oval when horizontal
Tension along its length Length runs in the XY plane Interlayer strength is a fraction of in-plane strength
A flat sealing face That face is on the build plate or is a single top surface A face built from stacked layer edges will never seal
No supports on a cosmetic side Cosmetic side faces up or is a vertical wall Support scars are permanent
Self-supporting overhangs Add chamfers at 45° instead of fillets upward A chamfer prints; an upward fillet sags

That last row is a modeling fix that costs nothing and removes a support operation. An overhanging fillet requires support. The same junction drawn as a 45° chamfer, or as a fillet whose tangent is under 45° from vertical, prints clean. The general principles are in strong parts are designed before they are sliced; here the point is that orientation is part of the drawing, and it has to be paid for in geometry.

Once orientation is fixed, the abrasive-wear question becomes answerable too. A part with long vertical surfaces and lots of travel path puts more filament through the nozzle than one printed flat, and fiber-filled materials turn that into nozzle life. It is a small consideration and it belongs in the model, not discovered at the extruder.

Split, joint and register — before the part gets too big

A part that does not fit the build volume is not a problem to solve at the slicer. It is a joint design problem, and joint design has its own rules that are much easier to follow when you split deliberately rather than where the software suggests.

  • Split at a low-stress plane, not at the mid-line. The longest dimension is not the best cut. Cut where the part is thickest and least loaded.
  • Give the joint a register. A butt joint between two printed halves has nothing to locate it and will be crooked by the thickness of your glue. A tongue, a step, or two pins makes it self-aligning.
  • Keep the joint faces printed, not modeled flat and hoped for. A flat joint face on a printed part is a layer stack, and two layer stacks glued together are a hinge. Print the mating faces so they interlock or so one is a shallow taper.
  • Plan for glue clearance. Adhesive has thickness. A 0.1 mm gap per side is a joint; zero is an interference fit that will hold itself apart and never bond.

For anything that must come apart repeatedly, a resin print of the same joint is an option worth knowing: ABS-like resin is tougher than standard resin at the same detail, and its dimensional behaviour is different enough that the parameter table needs its own column. The same applies to standard resin if the part is a visual proof rather than a functional one. Related joint geometry is covered in pins, pivots and bushings for anything that must rotate, and in threaded connections for anything that comes apart. Both of those articles assume the mating geometry is a parameter in the model, because a 0.2 mm error in a pivot bore is a rattle and a 0.2 mm error in a screw boss is a split boss.

Revision discipline: version the model, not the filename

The fifth failure in our opening table — redrawing instead of revising — is the one that quietly doubles the cost of every project, because it destroys the record of what you already tried.

The rules are unglamorous and they work:

  1. Never start v2 from an empty document. Copy the file, change the parameters, keep the history. If the history is genuinely broken, that is a signal to rebuild with better structure, not to rebuild in a hurry.
  2. Name revisions by the change, not by the date. bracket_v3_boss_wider tells you something at assembly. bracket_final_final2 tells you nothing and is also a lie.
  3. Keep the coupon result with the file. One line: material, plate, orientation, which hole size fit. Three months later that line is the difference between a confident change and a coin flip.
  4. Change one parameter per print. Changing hole size, wall thickness and orientation together produces a part that fits and no knowledge of why.
  5. Print the whole assembly at least once before calling it done. Individually correct parts that do not assemble is a failure mode we have a whole article about, and it is invisible until the last piece.

Revision discipline also protects you from the failures that take months to appear. A part that passed a hand-load test on day one and sags by month three is a model that was never checked for creep, fatigue and preload — and the fix belongs in the parameter table, not in a later print. The reason this matters more for 3D printing than for most fabrication is iteration speed. A machined part's revisions are costly enough that people are careful with the drawing. A printed part's revisions are cheap enough that people are careless — and the labor of nine reprints plus nine disassemblies costs far more than the plastic ever did. The material is the cheapest part of the process and the drawing is the most expensive, which is exactly inverted from how most people spend their attention.

Materials change the table, not the workflow

Nothing above changes when you change filament. What changes is the numbers in the parameter table — particularly gap_slip, and how much trust you place in a nominal dimension.

An easy, dimensionally well-behaved material makes a loose parameter table work. A high-shrinkage or fiber-filled material needs the table to be tighter, because the printer's output moves further from the file. A few reference points for the table, in the order most people meet them:

  • PLA on a good machine is the most predictable thing you can print. Start gap_slip at 0.20 mm per side and expect to tune down. A high-flow variant like ANTINSKY PLA+ High Speed holds dimensions well at speed — the fast profiles are where sloppy models show up first.
  • PETG is dimensionally honest but sticky and slightly more elastic. It tolerates a tight fit better than PLA and then creeps under it. Start at 0.25 mm. See PETG and, if surface finish matters more than clarity of the fit, PETG-CF.
  • ABS and ASA shrink, and they shrink differently depending on enclosure temperature. A parameter table for ABS needs a real coupon, not a rule of thumb. Start with ABS or ASA and print the coupon inside an enclosure at the temperature you intend to use.
  • Fiber-filled engineering grades — PA6-CF, PA12-CF, PPS-CF — are dimensionally good when dry and terrible when wet. The parameter table is fine; the moisture is the variable. Dry the spool, or the table's numbers will not reproduce. Our moisture piece is the prerequisite reading.
  • TPU is not a tolerance material. A 95A like ANTINSKY TPU 95A will hold a shape and lose an interference fit; design for elasticity, not for compression. It is an interference material. If a joint needs to be tight, TPU will make it tight and then creep out of tightness. Design the joint for the material, not around it.

Whatever you pick, the coupon tells you the actual number, and the number goes into the parameter table. That is the whole loop, and it works in any material. If you are running abrasive or fiber-filled stock, keep the high-flow nozzle situation in mind as a separate variable, and keep spools in a dry box so the dimensional variables stay controlled.

A ten-minute pre-flight before every print

The final gate. Run it once per part, and it costs less than the first layer.

  1. Are all forced dimensions in the parameter table, as expressions? Any literal number that came off a datasheet is a bug.
  2. Is every sketch fully constrained? Degrees of freedom equal zero.
  3. Does the model match a caliper measurement taken within the last week? A remembered number is not a measurement.
  4. Is there a coupon result for this material and this printer? If not, the first print is the coupon.
  5. Is the orientation chosen in CAD, with the mating faces and load direction accounted for?
  6. Does the part fit the build volume with a margin for a brim, and not by two millimeters?
  7. Are fillets on load-bearing junctions and off cosmetic edges that will be sanded anyway?
  8. If it is split, do the halves have a register and glue clearance?
  9. Is the filename descriptive, and does it carry the coupon note?
  10. Can you state, in one sentence, which single dimension is most likely to be wrong?

Question ten is the one that earns the whole exercise. If you cannot name the risky dimension, you have not thought about the fit — and naming it is what makes you check it first, on a fifteen-minute coupon, instead of on a ninety-minute part.

The part you draw is the part you get

Every calibration in this blog exists to make the printer faithful. Faithfulness is only useful if the file is right. A perfectly tuned machine will reproduce your mistakes at 0.05 mm accuracy, all day, and will do it again tomorrow, because the model does not know it is wrong.

The inversion that fixes it is to move your attention earlier. Forced dimensions into a parameter table. One datum per part. Constraints instead of coordinates. Fillets after the geometry that earns them. A coupon before the part. A revision discipline that keeps the knowledge you already paid for.

None of that is about printing. All of it decides what comes off the plate. The machine is the last step in a chain that started with a number somebody measured — and the parts that fit on the first attempt are the ones where that number was measured, not remembered.


Tags:
Vacuum, Bellows and Blow: Designing 3D Printed Pneumatic Parts That Move Air on Purpose

Heat Has to Go Somewhere: Designing 3D Printed Parts That Manage Heat and Current