Nonlinear Z axis possible?
-
Hi folks
Is it possible to configure RRF for nonlinear Z movement? Driving Z through a scissor lift type mechanism is the example I have in mind, so a little trig required to calculate the true steps/mm for any given height. I'm not much past the idle curiosity stage with the idea and there are certainly some challenges, but it's one that's proving interesting.
Many thanks!
-
@lo-fi AFAIK this would require a new kinematics.
-
@t3p3tony Thanks Tony, I had a feeling that might be the answer. To be fair, it may not be the smartest way to go about it anyway, but if you don't ask you don't know!
-
Requiring new kinematics has never stopped us before
-
@phaedrux that's dangerous talk around compulsive tinkerers.... Hehe. I'll have a poke about in the code, I suspect I can find something from the scara source I can use.
-
@lo-fi I have a fork of the Reprap firmware that does what you're asking for. It lets you define a lookup table for wanted Z <-> actual Z.
-
Can this be achieved with a post-processing of the gcode file? At least for the exploration phase?
-
@markz thank you so much! I'll have a quick play with that, it sounds perfect.
@zapta I pondered this myself. Doing similarly, you'd need a lookup table to convert the linear layer heights into what you actually need.
Whether either is approach is workable mechanically in this use case, I'm not sure! The nonlinearity is quite severe at low layer heights. I need to do some more cad simulation. Nothing to lose but time and guaranteed to learn something
-
@lo-fi why lookup table and not a formula? If you write a program to post process the gcode it can use a formula to transform the z values.
-
@zapta @lo-fi I use a lookup table because my application needed a piecewise linear approximation and a lookup table.
If you try to use a gcode postprocessor there are all sorts of issues to deal with - like what is your workspace transformation? Change the workspace zero and the gcode doesn't change but the transformation code needs a different origin... for example. Also, how to deal with things like arcs in the Z axis?
If you want to go the route of an algorithmic solution I'd strongly recommend looking at the lookup table and then using code in the same chunk of the firmware.
-
At this stage I wouldn't rule anything out. I'd have some reservations about assuming that the relationship is a straight up trig function as you're relying on the leadscrew to be quite linear itself. There's also considerable force on it. At low Z heights, any small deviation would be amplified, so the table would be better assuming it's based on measured heights not calculated. Experimentation needed for both methods