Measure dynamic layer height issue


Im currently working on 3D-Printing structures with compressed and stretched layers in order to “bend” the workpiece.

By doing that i have to increase the Speed at compressed parts of the object to get a continuos material thickness n the whole print.

I tried measurin the closest point from every subdivision point on the layer to the curve of the next layer. But of course the last point of every layer has 0 distance to the start point of the next layer as i am not really printing layers, but rather helix (spiralvase) layers.

can someone point me in to the right direction on how to measure the distance of every point to the line on the next layer.

I would really apprechiate that.

various layer (17.6 KB)
various layer heigth.3dm (878.4 KB)

Not sure if this is what you want… Have a look…

various layer (25.0 KB)

Hi HS_Kim

Thanks for your effort, but i failed to explain that this has to work with curves with different numbers of control points

This is a simplyfied test object. The goal is to print a more comlicated structure with this process on a 6-Axis Machine. With this comes the necessity that the layers will not have the same number of control points, to reduce the file sizes. A simple twist or different number of controll points wil make the system not work

Then, does this work for you this time? I didn’t test it for different branch items, but it should work I hope…

various layer (26.2 KB)

A 6-axis 3D printer would make all sorts of things that are difficult or impossible with current horizontal layer printers possible. A major breakthrough indeed. But I wonder if you should be looking at the software that generate the printer’s toolpath instead. Shouldn’t that have the logic to determine the proper amount of filament to extrude along each loop?

In the part you’ve shown the part diameter is constant, yes? That suggests there should be the same number of tool path GoTo points for each printed circle. What’s needed is a variable thickness for each printed loop. And that has to come from the tool path generator software by increasing/decreasing the amount of filament that gets extruded along the path.

Is there any chance you can post a video of your printer printing? That would be quite something special for sure.

Check this as well…

various layer (27.1 KB)

HS_Kim you are awesome,

That was exactly what i was aiming for. Testing it with the pull and curve plane intersection works perfectly.

and sorry for my late reply, but my daytime job came in the way of research!

Hi Birk,

Thanks for your input, yes indeed working with the 6 axis machine will hopefully be a great improvement on horizotaly bound printing. We are developing the nozzle and the software for the printer ourself her at the university in Innsbruck or in cooperation with robotics specialists from Vienna. And teh slicing software generaly used for 3D-Printing only compensates the material output regarding the distance from Point to Point. As the layer heigths are continous in “conventional” 3D-Printing there is no need for the software to compensate stretch and compression of the layers. So we are trying to greate that code ourselfs.

Indeed in this test “dummy” the diameter of the pipe is fairly consistant. in further developement our goal is to print a full sized chair (if possible in one piece) so the diameter will vary greatly and even translate from a closed curve into a linear structure.

this is a SLA-Printed model example of what we are trying to do (even if it will change a lot with implementation of the print technology)

I will film a short strip of my next print after implementing HS_Kim’s code.
If you are interrested i will keep you updated.


@Birk_Binnard and @f.volderauer

Would it not be the diameter of the extruding nozzle needs to have a variable diameter as well not just the amount of filament being pushed through the extruder.

With regards to the code, it may be an idea to add a maximum height and or error checker from the output of these dimensions highlighting anyone larger than buildable diameter so the diameter of the extruder or the variable change is radius between levels is not exceeded.

Ps. Shout if you need any help with the GH anytime I am based in Innsbruck too, though my German is not good.

I don’t mean to hijack this thread and refocus it on 3D printer technology - but I do have a couple of thoughts to share about a printer with 6-axis capability.

Changing the nozzle diameter would be a very tricky mechanical problem to implement. Plus doing that would greatly affect and complicate the calculation of how much filament to extrude at any given point. Because of this my sense is that keeping the nozzle diameter fixed and varying the extrusion amount would be a much better and simpler approach.

Varying the amount of filament that is extruded is done today by a couple of slicer programs, but they do it via the trick of variable layer height. Here’s my blog page about that if you are not aware of the method: Variable Layer Height. The technique does work well for parts having the proper type of design, but in general the variable layer height technique could never compete with a 6-axis printer with appropriate code controlling the amount of filament extrusion.

If you were going to use a 5-axis milling machine with a ballnose cutter to mill the constant diameter elbow pipe shown in your first post out of solid material your toolpath generator would have to space cuts much closer together on the outside/large curve than on the inside/small curve. This is independent of how the actual geometry of the part is defined, and that suggests to me that the 6-axis printer should have either the ability to change layer “height” as it makes loops around the curve, or that it needs to be able to change the amount of filament it extrudes as it prints. Or maybe both.


Hi Matt,
Yes you recognized it, of course compressing or stetching the layer heigth is only possible in a certain small scale factor. we are currently working with variable layerheigth from 0.16 to .28mm with the optimum beeing .20mm.
this is for now later with the 6-axis we can orient the printlayer exactly perpendicular to the previous layer. That way we can add a bit more material by "pressing it onto the object.

An error checker is already implemented!

Thanks for the offer, i will come back to that should there be more trouble.


Hey Birk,

I agree, changing the nozzle diameter sounds quite complicated to me! Also changing the feedrate of the PLA-filament only works within a certain range bacause ramping up the Fees speed will also cause the nozzle to cool down. Until the termisor measures the temp and the heater block turns up the heat the temp already decreases up to a point were the nozzle starts oozing.
Thats why our aproach will be to change the speed rather than the filment feedrate.

I didn’t know that variable layer haigths are already implemented in slicing. I am currently using Slic3r 1-2-9a ant i guess its not possible there.
But still our problem is a bit more complex as we are not planing to change the heigth of one layer but rather want to change the extrusion width (resulting in a higher layer) within the path in order to "bend the structure.
A necessary next step in my opinion if we have the possiblity to add aditional degrees of freedom.

OT on the variable nozzle, why not have a tapered needle, as in a suspension damper/cartridge adjuster, that moves in/out of the nozzle throat? When out of the nozzle you get full flow of plastic. Move the needle into the nozzle and the flow diminishes. You might have the filament come in to a nozzle assy parallel to the needle or maybe at an angle up to 90 degrees would work better, beats me.

This way your nozzle stays the same standard part whether being used for variable printing or not. The tapered needle shaft (cylindrical) could be long enough outside the nozzle assy to make it easy to attach to a small stepper/servo motor while keeping all those parts well away from the molten plastic. With the needle shaft in a tight fitting hole it should scrape itself clean and not need a seal.

Caveat: I’ve never done any 3d printing, but I I’m somewhat familiar with CNC and motorcycle suspension.