Cnc, drag knife, zprobe. - help

edited September 2018 in Questions & Answers
hi, I have a cnc, "drag knife", and I have added an endstop min.

works well, I make a home z, it descends and stays in the desired position.
The problem is like going down to negative values. he does not accept me
that is to say, I put a piece to cut, I make home in z, on the piece and it is ready to be sent to cut, but do not give me negative values.

how can I make a home z and then start to descend to cut the piece ???

españolI have seen in other forums that some make a home z min without the piece. then they go up a higher distance than the piece to be cut, then they place the piece and begin to deduce until the piece to be cut. there they tell the machine that this point is zero z, with g92 z0. and there it leaves you decender. but .... what is the use of the zmin if I have to do these steps?
It would be better to make a home z min on the piece and start to deseder to cut.
* Another way that I see would be to make a home z-min without the piece to be cut in an area ready for that and do a z-probe to find the grozor of the piece and make it there tell the machine what my z0 would be, bone with g92 z0, but how can I capture the z-probe value of the grozor? , if I do g30, this throws me the grozor, but does not stay there, this rises a distance, with respect to the piece to be cut, because if there would be left the blade on the piece, I would tell the machine this is your z0.
then how do I make it stand still, or how to hagi to capture this value of grozor, to automate this ????


  • The problem is that the position check prevents negative values - it doe snot know about this special case where it makes sense. Your solution would be to disable position check, so negative values are possible: G1 S1 should disable position check.
  • Thanks, it works very well.
    the, extra motor driver with endstop, can I also enable negative values?
  • No you normally cant. See Drivers.cpp line 138

    void gotoPosition(float newPos)


    bool up = true;

    if(newPos < 0)

    newPos = 0;

    if(newPos > maxDistance)

    newPos = maxDistance;

    here you see the tests. Going beyond end stop would break end stop normally. You can of course remove the target test then it would go where ever you want.
Sign In or Register to comment.