Effect of First Layer Height on Holes

This polyholes test piece started with the nozzle 0.45 to 0.50 mm above the build plate. The threads around the holes didn’t bond well to the plate, dragged slightly inward of their intended position, and didn’t join to their neighbors or the infill.

Polyholes 0.33 mm layer - 0.5 mm starting height
Polyholes 0.33 mm layer - 0.5 mm starting height

Adjusting the nozzle downward to start at 0.28 to 0.39 above the plate produced this result:

Polyholes 0.33 mm layer - 0.3 mm starting height
Polyholes 0.33 mm layer - 0.3 mm starting height

So, in round numbers, changing the nozzle’s height by 0.2 mm makes all the difference for an object printed with 0.33 mm layer thickness. That’s why I’ve been so focused on getting a flat, level build platform: a mere 0.2 mm is 60% of the layer thickness!

The perimeter and additional threads around the holes are now where they should be, plus they’re all bonded to each other and the infill.

I think Skeinforge positions the center of the perimeter thread at the very outside edge of the object, which means objects are one thread width larger than they should be and holes are one thread width smaller. The HoleWindage parameter I added to nophead’s code compensates for that, although you must manually add it to / subtract it from the critical dimensions.

[Update: SF does the right thing. See the comments.]

The larger holes in the second test piece (printed with the correct starting height) came out just about spot on, the mid-size holes are 0.25 mm too large, and the smaller holes are pretty close in absolute terms (and awful in relative terms). There’s no way to get perfect holes, but these are certainly good enough for most purposes and repeatable enough to not require much in the way of tweakage.

The polyholes sheet is three layers thick. It presents quite an infill challenge, because there’s not much room around the holes (witness the open areas where the available space drops below one thread width) and the Fill plugin doesn’t lay the infill down from one end to the other. The myriad stops, starts, and movements presents many opportunities for blobs, of which you’ll see quite a few.

Feed 40 mm/s, flow 2 rpm, 210 °C / 120 °C. First layer at 25% feed & flow. Reversal set for 20 rpm, 90 ms in & out, and no early action.

I measured the thickness of the Outline thread around the actual objects, as described there, to get the first layer thickness. The starting heights for the first piece are the middle array there. These are the heights for the second piece, in units of 0.01 mm:

33 28 29
31 28
31 31
32 39
28 32 37

The OpenSCAD source, which is pretty much directly from nophead:

// nophead polyholes
// Modified to use parameters and add diameter Finagle Constant

HoleWindage = 0.6;

NumHoles = 9;

PlateZ = 1.0;
Protrusion = 0.1;
HoleZ = PlateZ + 2*Protrusion;

module polyhole(h, d) {
    n = max(round(2 * d),3);
        cylinder(h = h, r = (d / 2) / cos (180 / n), $fn = n);

difference() {
	cube(size = [NumHoles*10,27,PlateZ]);
    union() {
    	for(i = [1:NumHoles]) {
            translate([(i * i + i)/2 + 3 * i , 8,-Protrusion])
                polyhole(h = HoleZ, d = (i + HoleWindage));

            assign(d = i + 0.5)
                translate([(d * d + d)/2 + 3 * d, 19,-Protrusion])
                    polyhole(h = HoleZ, d = (d + HoleWindage));