First cut success - with questions!
-
So you both have a point....
I wasn't really concentrating on where the spindle was in relation to the project when testing it today, but when I moved it closer to the front, left of the working area, the file ran an air cut successfully.
I'm not sure if this is legacy Duet, but with my S3 CNC machine I could pretty much put the stock anywhere on the spoil board and, as long as I set the work zero properly, it would cut fine. I would have thought the same would be true for a Duet-controlled CNC machine. Perhaps I'm wrong.
From this experience, I will definitely have to experiment some more, just to see what the machine vs software limits are, then I won't make an idiot of myself - again!
Thank you, guys
-
@nightowl999 well it is the same, but you need to make sure that whatever you're cutting is within the limits of the machine. If it goes outside your maximum limits it won't run
-
That's actually a good safety feature, @jay_s_uk. One of the reasons I got rid of the S3 was because it would do random and inexplicable things, resulting in deeper than expected holes in the stock!
The file I tried to run was to check the calibration of the machine, i.e. a 3" diameter circle and a 3" square in a horizontal line on a 10" piece of stock, so I have to assume it was setup too far over, but it didn't seem to be.
Time for some experimentation...
Thanks again.
-
@nightowl999 said in First cut success - with questions!:
I am. I've jogged the cutter to the stock zero and set that as work zero.
What does that mean? How is it done?
In the 3D printer world the slicer program knows the limits of the printer.
If you tried to slice an object that was too big the program would issue a warning.
If you tried to slice an object that was not too big but you positioned it in the slicers "virtual printer" so that some part of it was outside the printer limits the program would also issue a warning.
If you successfully sliced an object but forced the printer X=0 Y=0 point to some other location (using a G92 command - something you normally would never do) then you could encounter a problem if that resulted in some part of the object being outside the printer limits.
Does you program work anything like that?
Frederick
-
@fcwilt CNC uses physical endstops to know where the machine home is, however you don't have to place the stock you want to cut at 0,0. you can set it anywhere on the spoilboard (bed in the 3d printer world) and then tell RRF where that stock is by setting its 0,0 point as a workplace offset.
-
@jay_s_uk said in First cut success - with questions!:
@fcwilt CNC uses physical endstops to know where the machine home is, however you don't have to place the stock you want to cut at 0,0. you can set it anywhere on the spoilboard (bed in the 3d printer world) and then tell RRF where that stock is by setting its 0,0 point as a workplace offset.
I don't use workplace offsets but I was under the impression they worked as you have used them.
I will need to do some testing.
Frederick
-
@fcwilt
In programs like Vectric Cut2D, I would design a project to be cut out of a piece of material, usually wood ('real' wood, plywood or MDF). Some people would use the limits of the stock, e.g. use a 6x4x4" block of wood to cut a hole in the middle and call it a box, but I prefer to cut the box out of a larger block, so square edges and a flat top of the block aren't too important, although a flat base is.The Z zero is (for me) on the top of the block and X and Y zero are to the front left of the block. Others may do things differently, e.g. using the middle of the block as X and Y zero, or the baseboard as their Z zero.
In my case, the tip of the cutter is set on the top of the material at the X and Y start point and click Go, then the machine cuts and leaves a nice shiny box! The Vectric software I use has a size limit (24" x 24") so I can't cut anything larger than that, unless I tile it - but I'm only just starting out and that strategy is a bit advanced for me.
-
I'm not getting this, but I'm tired and increasingly frustrated, so I'm going to leave it for now, but here are a couple of photos to show what my issues are (or at least the issues I'm struggling to understand).
This is the maximum work area, although there's quite a bit of dead space at the rear (as the spindle is mounted on the front of the X gantry) and about 20mm inside the Y rails...
This is the workpiece at the front, with a tape measure to show how big the project area is (10x10") from the work zero (where the spindle is)...
But I'm still getting the "Error: G0/G1: target position outside machine limits", which doesn't make sense.
I'll write a smaller project in Cut2D and see if that makes a difference.
Time for a beer with my dinner, I think!
-
@nightowl999
We've got company right now and will for several hours yet.
It it weren't for that I would run some tests here and determine what is going on.
Sorry I cannot help you this minute.
Frederick
-
That's very kind @fcwilt, but please don't let this spoil your evening.
I've given up for the evening, anyway
-
@Nightowl999 said in First cut success - with questions!:
userPosition is already higher than (max-5)? Would it try to move +5 anyways and hit the upper limit or stop automatically at max?
getting the "Error: G0/G1: target position outside machine limits", which
The firmware is strict for laser/CNC mode to stop with the error if the target is not reachable. This is different to 3D printer mode, where it prints the adjusted range.*)
If your X and Y ranges are ok, then maybe the program wants to lift Z more than the M208 upper limit of 100. To analyse, the line which produces the error should be identified and the current position from M114 Count value and M92 setting.
*) for someone who is interested in the code: GCodes.cpp
case LimitPositionResult::adjusted: case LimitPositionResult::adjustedAndIntermediateUnreachable: if (machineType != MachineType::fff) { err = "G0/G1: target position outside machine limits"; // it's a laser or CNC so this is a definite error return true; } ToolOffsetInverseTransform(moveState.coords, moveState.currentUserPosition); // make sure the limits are reflected in the user position if (lp == LimitPositionResult::adjusted) { break; // we can reach the intermediate positions, so nothing more to do } // no break
adjusted stops for laser/CNC, but is accepted for 3D printers.
-
I wouldn't know the first thing about code, @joergs5, but I'll take a look at the Z height.
If it's relevant, the Z axis configuration sets the physical drive for Z as 'backwards'...
M569 P0.3 S0 ; physical drive 0.3 goes backwards - Z axis
...with the Z minima/maxima set at 0/100.
I'm not sure I fully understand what you're suggesting, but I'd be happy to run the code, if you could tell me exactly how!
Vielen dank.
-
@nightowl999 the first thing would be to find the line which produces the first error message and then proceeding the lines before and then
- run M114 and notify the Count values (the first being X position, second y, third Z)
- then tell me the count value and M92 and the G0/G1 command which fails. I'll tell you how to calculate and hope to give you an answer for the error
- if you want to verify homing, please home and after homing, run M114 and notify count values as well
To avoid ruining your workpieces, there is a simulation mode which should be possible to use. I didn't use it before, so just an idea. M37, but I don't know it, but maybe valuable to find the error line.
-
@JoergS5 Thank you.
Before homing, M114 reports the following:
X:0.000 Y:0.000 Z:0.000 E:0.000 Count 0 0 0 Machine 0.000 0.000 0.000 Bed comp 0.000Just a moment, and I'll home it...
-
@JoergS5
After homing, it's:
X:547.000 Y:784.000 Z:97.000 E:0.000 Count 218800 313600 38800 Machine 547.000 784.000 97.000 Bed comp 0.000 -
@nightowl999 said in First cut success - with questions!:
@JoergS5
After homing, it's:
X:547.000 Y:784.000 Z:97.000 E:0.000 Count 218800 313600 38800 Machine 547.000 784.000 97.000 Bed comp 0.000The 218800 is a value from your M92 setting and the homing position. What is your M92 setting, please?
-
@joergs5 All axes are set at 400 steps per mm
-
@joergs5 ok, I think it's 218800/547 = 400.
This means, for every mm your router moves, the Count value for X will be incremented by 400. So you can always see where the firmware thinks that your router is.
Now before you start the error G0/G1 move, you can make a M114 and know where the router is. (of course the G1 before will be this position also in most cases, but to be sure...).
NB the values being all 0 at the beginning is, because firmware doesn't know where your steppers are at the beginning. This is what homing is meant for: telling the firmware where the stepper's positions are. The only reason why the firmware Count values and true stepper position may vary is if there are lost steps (M122 hiccups hight numbers will tell you).
-
@nightowl999
X:547.000 Y:784.000 Z:97.000 E:0.000 Count 218800 313600 38800
547 * 400 = 218800
784 * 400 = 313600
97 * 400 = 38800or other round, from the Count value divide by your M92 (400) and you'll get the current mm position.
-
@JoergS5
Should I move the axes to the Work XYZ first, set Work XYZ, then run M114?