<April 2025 update: lots. lots of slicer evolution since first written>
This log page describes printable parts for the XY stage. See the "start here" page for Z axis, hardware, etc. STLs for now; I intend to share the CAD later after a think about how much clean-up it will get.

My 3d printing experience is narrow. Starting out with PrusaSlicer 2.5.2 defaults for Ender 3 Pro w/0.4 mm nozzle set my "normal" for whatever I don't mention below. Using a few more versions of PrusaSlicer then switching to Orca has broadened my awareness only slightly. I'll try to call out parameters that contribute to a good result without under-specifying non-obvious points that I witlessly take for granted or over-specifying a load of noise that doesn't matter. But I'm not the best qualified author for the job. Please comment when you work out what would have been helpful to know up front for a good result from your setup.
Briefly:
General
- download minamil3dp-XY-STLs-v0.9.1.zip from Files section
- filenames: "minamil3dp-{part}-v0.9.[01].stl"
- PLA
- 0.4mm nozzle
- 0.2 mm layer height
- 0.45 mm shell thickness
- Classic perimeter generator (i.e. not Arachne)
- fill gaps off
- detect thin walls off
- one perimeter will do
- 10% gyroid infill
- four solid layers top and bottom
- check slicer output for sane bridging angles where crossing over voids
- bridges should cross short dimension of long narrow voids -- not lengthwise
- bridges should span from something to something of the layer below
- fix fails e.g. by setting "bridging angle" in a heightrange modifier
- check slicer output for sanity generally
Big parts
- XYbottom - "General" parameters
- XYmiddle - "General parameters
- XYtop - "General parameters, and:
- slice/print top upside down
- optional to make stiffer:
- on STL import: break into parts (not objects)
- inner part set perimeters=11 (whatever gets the slicer's attention) to generate internal structure
Small parts
- all probably Arachne-safe
- XYwireguide
- two perimeters
- XYtietoolshort, XYtietooldeep
- two tools; print one of each
- slice/print big end down
- fill gaps on
- 100% rectilinear infill
- XYbladj
- print two parts
- slice/print flat side flat
- Arachne perimeter generator maybe help
- 9 (i.e. all) perimeters
- tap for M3 thread
Less Briefly:
- PLA
Basic PLA. The cheap stuff.
You want stiff.
From limited knowledge:
PLA because PLA is the stiffest common material printable with a brass nozzle at ~230°C max temperatures typical of mundane printers.
Basic PLA because premium "PLA+"/"PLA Pro" variants trade away stiffness to gain toughness.
(I've seen some hints that "silk" PLA, while fragile, may be more stiff than vanilla. Maybe.)
Comparing all the properties of all the filaments is hard. Fellow HaDer @Emmanuel de Margerie put up the best effort I know of. (Wherein PET beats PLA in flexural stiffness, but PET != PETG and PETG data isn't given).
Please comment if you know of a stiffer material that anyone can print for <10x cost.
- 0.4mm nozzle
Indirectly required for the design shell thickness.
- 0.2 mm layer height
- 0.45 mm shell thickness
Those were the defaults I started with so they're baked into the model. Several features are modeled to slice predictably based on that shell thickness and layer height. I've made no attempt to assess how badly deviation breaks anything that matters.
- Classic perimeter generator (i.e. not Arachne)
- fill gaps off
- detect thin walls off
Also for predictable extrusion around certain details. Parts should print ready to use with little or no post-processing apart from inspection.
- one perimeter
- 10% gyroid infill
- four solid layers top and bottom
Looks like this:


You can use more plastic and time if you want to, and you'll get stiffer parts for it, but you shouldn't have to. Instead of printing lots of plastic to make parts strong, I started out printing as light as possible to expose weakness in hope of getting strength from shape first before resorting to pouring in more plastic. So far, I'm still printing light. I think that's a feature. Mainly because printing less prints faster. It helps that the whole mill-with-tiny-steppers game lives by very light cutting forces.
One perimeter is an obvious minimum.
Gyroid infill is one of the more-or-less isotropic options. And it's curvy. I've seen/read evidence that long straight infill extrusions -- especially wall-to-wall spans -- suck the perimeter walls in more forcefully as they cool and contract. So unstraight fills like gyroid should distort parts less than straight fills like cubic. Another thing I haven't actually tested and measured for these parts, so ?.
10% because 5% was too sparse for PrusaSlicer 2.5 to bridge over. Bridging over sparse fill has improved since then, so maybe even less fill would be enough. ?
Four top layers because three wasn't enough to build a solid surface over low-fraction infill in early trials. Four bottom layers ... for symmetry, I guess. I think the common nomenclature doesn't help here. "{n} top layers" is really {n-1} solid fill layers over a poorly fused bridge layer. And "four because three wasn't enough" really means three because two wasn't enough. In that light, I should try three bottom layers which might be more practically equivalent to "four" top layers. (I say "{n} top layers" should exclude the bridge layer and instead indicate a bridge layer plus {n} solid fill layers. Change.org!)
Top part: internal reinforcement
tl;dr: import XYtop STL as single object w/parts & cue slicer to distinguish internal structure
The thin XYbottom doesn't have to be super stiff because it gets screwed down to something else that is, presumably, much more stiff. The thicker XYmiddle isn't so thin. But the XYtop part is thin and has no help other than whatever stiffness your spoil board and workpiece may add. And it has a slice across the full breadth so thin it's practically a hinge. To be fair, early versions worked without any trouble attributed to the top bending. But the part was definitely disproportionately weak. Eventually it grew a reinforcing "arch" (near corner in this pic) to brace the hinge-like stripe of thinness with shape instead of density. That helps a lot, and if I'd done that first I might have called it good and stopped there. Of course I could have just dialed up more perimeters and infill, but that's what I was trying to not do. Before the "arch", and as alternative to simply printing more plastic into the part, I added some internal structure to add material specifically where it could do most good. That works too, for a little extra fussing with the slicer. If you convince your slicer that the internal structure is a distinct part with a perimeter, which also implies another perimeter around it in the main part, you'll get some internal reinforcement stringers.

For Prusa and Orca slicers, the easiest thing I've found is to bump the perimeter count for the internal part. The thin part doesn't actually get any more perimeters, but to give it any perimeter the slicer apparently needs to see a declared difference to recognize the discontinuity. Then, to the slicer, that becomes two objects (but not two objects because one object because something mumble foo) and their perimeters don't overlap. But that's not quite what we want. To get a single reinforced object, the reinforcing shape is modeled two overlaps thinner than a two-perimeter wall. When sliced with Classic perimeters and "thin wall detection" off, the slicer lays down two perimeters in there anyhow so the volume/density/adhesion of plastic in that space should be the same as in a four-perimeter wall. In theory. It at least does fuse vs. testing without calculated overlap which got adjacent walls in contact but not well fused.
Bridging
Lots of bridging. Over internal voids, mostly for zip ties and cable routing, and over all of the upside down features on the bottom of the middle part.

There are lots "upside down" features. The whole bottom surface of the middle piece is upside down and lots of internal features have upper surfaces. I can't use support in internal features or under surfaces that should be clean and "precise" (relatively for vanilla FDM). So, generally, I've tried to design for printing with no supports. That's been something of a learning curve. Fortunately, the parts that most need to be "precise" are V blocks to locate round things and upside down Vs are easy. In theory. Actually getting clean results has entailed lots of learning lots of ways to not succeed. And, initially, quite a lot of time sitting and staring at the printing printer to see what it was actually doing inside parts. This is where a lot of the modeling to layer and perimeter dimensions for predictable slicing comes from.
Slicing bridges
PrusaSlicer, at least, sometimes gets a bridge rwong. I don't know why. It seems quite arbitrary when it happens. A bad bridge might fix itself after seemingly unrelated changes. ?. So I've grown a habit of stepping up the layers in preview to look at every patch of bridge over empty space. Fortunately, the preview shows bridges in a contrasting color, which helps with flipping through a bunch of layers until a contrast patch catches the eye. About half-ish of those are bridge areas under voids as the first layer of a patch of "top layer" solid fill (or the actual top) -- a quick flip back confirms whether a bridge area spans open or filled space i.e. above or below a void. Assuming no goofs in the part design, bad bridges have been correctable by setting an explicit "bridging angle" for a height-range around the fault. So far I haven't hit a bad bridge in a layer where multiple bridges require different bridging angles -- that would probably require a volume modifier or some such escalating tedium. It can get frankly tedious to inspect all bridges and fix more than zero of them, but the effort has helped to avoid some disappointing prints.
About modeling for bridging...
...and "upside down" features generally ...and clean corners whether upside down or right side up ...in other words: clean details.
I started with some minimal test parts just to see if the V-block and zip-tie idea would work at all, and work when printed upside down. It seemed possible in principle because Vs -- 45º slopes and short bridges -- should be easy to print upside down. In practice...

Solving that is how I got into using the Classic perimeter engine instead of Arachne, turning off gap filling and thin wall detection, and modeling details around shell thickness, layer height, and overlap math in order to make geometry that would slice predictably where details get close to the dimensions of an extruded line of plastic. Also growing a better feel for geometry that doesn't work upside down and modeling details that are possible to bridge cleanly.
I've probably over-specified a lot of geometry just because I haven't tried to work out which details actually matter.
Alternatively, maybe I (you?) could learn more about what Arachne does and how to model Arachne-safe details, which would probably be more dimensionally flexible.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
Gyroid infill is probably wasting material. Grid infill can probably save material and weight, and might even let you get away with sparser infill.
Very little load is borne by infill anyway, tests have shown that number of perimeters and extrusion width matter a lot more.
Looking forward to seeing where this project goes!
Are you sure? yes | no
Hi Sandro,
My naive "research" turns up mixed information about grid vs. gyroid or other infills. It looks like most of it is people repeating what they've heard, and the few people who actually test stuff don't all arrive at the same simple answer. Do you have any favorite references comparing grid & gyroid? I think it would be great if you want to print and test some of these parts with different infills, different slicers, etc. I agree it does seem possible to use less fill -- I tried 5% briefly but slicer wasn't very smart about spanning large gaps when making patches of "top" solid fill.
I too am looking forward to seeing where this goes :)
Are you sure? yes | no
For gyroid vs. grid, I'm not talking about strength to be clear, just talking about their suitability for bridging, which seems to be your main concern. The geometry makes sense to me: gyriod at any given layer has a small X profile and a large Y profile (or vice versa), where grid or triangle has a more regular pattern with corners that bring the infill much closer together, which is good for bridging. You're right that you'd have to generate them and see whether it actually helps.
Come to think of it, lightning infill is probably the best bet if bridging is the only concern. It places supports exactly where you need them inside the part and nowhere else (typically grown from the walls), so that might get you to near 0% infill.
Gradual infill in Cura also puts more infill density near walls where you might have bridges and less in the internal structure, but I don't think that's available in Prusa slicer.
For strength, CNC Kitchen is run by an aerospace engineering that has done systematic testing on what parameters improve part strength, so he has a bunch of good data:
https://www.youtube.com/watch?v=AmEaNAwFSfI
https://www.youtube.com/watch?v=upELI0HmzHc
https://www.cnckitchen.com/blog/the-influence-of-layer-height-on-the-strength-of-fdm-3d-prints
https://www.cnckitchen.com/blog/the-effect-of-extrusion-width-on-strength-and-quality-of-3d-prints
https://www.cnckitchen.com/blog/gradient-infill-for-3d-prints
https://www.cnckitchen.com/blog/how-the-color-of-pla-filament-influences-3d-printed-part-strength
Hope that helps!
Since reducing the number of parts is a goal, have you considered just printing bushings? With a simple post-processing step I found you can get a smooth, tight fit:
https://www.thingiverse.com/thing:5324484
This is also a good one designed for easy mounting:
https://www.thingiverse.com/thing:1196801
Are you sure? yes | no
Oh - I missed your meaning about bridging. And I hadn't considered it at all. Thanks for mentioning that!
Yeah Stefan/CNC Kitchen does a great job of trying to actually measure a specific thing and present results.
(naked self-promotion: I met Stefan at MRRF last year and we talked at some length. From which came one of his post-MRRF vids: https://www.youtube.com/watch?v=eN3LsQfmXSo . He's really personable in person.)
Printed bushings - that's also a helpful comment! Yes, I had considered them - while working on the laser-cut machine. I didn't try at that time because I had a self-imposed limit of "one fancy machine" and that was a laser cutter for that project so no printed parts. Now that I'm printing parts ... I had completely forgotten about why I wasn't printing bushings! That would be great if it works. I will have to try! (Or anyone else who gets to it before I do -- I'm trying to push out documentation)
Thanks again for two really helpful prompts! That's part of how it's been so helpful to "go public" with this stuff -- including exposure of forgotten decisions that had petrified into unconscious assumptions. Like how the Z axis reboot came from going to MRRF last year: https://hackaday.io/project/174370-minamil-2dc-a-minimal-cnc-mill/log/207938-mrrfx-and-why-rethink-z
Are you sure? yes | no