First cut success - with questions!
-
@Nightowl999
There's a closing brace for the max() function missing on this line
G1 Z{max(move.axes[2].userPosition+5,move.axes[2].max-5}
should beG1 Z{max(move.axes[2].userPosition+5,move.axes[2].max-5)}
-
You guys are pretty damn good at this!
Thank you @dc42, @OwenD and @engikeneer. I'll make the changes/updates tomorrow and let you know how I get on, as this might be of use to others!
Thanks again
Edit: Am I correct in thinking the M5 and M3 commands are where you've put them (i.e. last and first, so the cutter in the spindle will cut the material rather than snap, as a safety precaution? Obviously it would be better not to hit anything at all, but just in case...!
Also, is indenting of line of code important?
It's late, but this is how I've interpreted your suggestions (without the description text but including the original, obsolete lines REM's out):
; pause.g
; M5
; G91
; G1 Z5 F360
; G90
G1 Z{max(move.axes[2].userPosition+5,move.axes[2].max-5)}
; G1 X0 Y0 F2400
if currentTool >= 0 & tools[state.currentTool].spindle >= 0
set global.savedSpindleSpeed = tools[state.currentTool].spindleRpm
M5; resume.g
; G1 R1 X0 Y0 Z5 F2400
if currentTool >= 0 & tools[state.currentTool].spindle >= 0
M3 S{global.savedSpindleSpeed}
G4 S1
G1 R1 X0 Y0 F2400
; G1 R1 X0 Y0 Z0
; M3 -
@nightowl999 said in First cut success - with questions!:
G1 Z{max(move.axes[2].userPosition+5,move.axes[2].max-5)}
To me it looks like there is a little problem with this line...what if the userPosition is already higher than (max-5)? Would it try to move +5 anyways and hit the upper limit or stop automatically at max?
Either way, it would be best to test this scenario to see if it returns to the right hight after resume//sidenote: for further reference it would be best to move this thread to either Meta commands or CNC section (IMHO)
-
That's a bit worrying, @o_lampe, but I'm no code writer.
@o_lampe said in First cut success - with questions!:
To me it looks like there is a little problem with this line...what if the userPosition is already higher than (max-5)? Would it try to move +5 anyways and hit the upper limit or stop automatically at max?
My logical mind makes me think that line moves the Z axis up 5mm from it's current position, then moves to the maximum Z height less 5mm. I'm assuming the [2] refers to the "3rd" axis (e.g. X would be [0], Y [1] and Z [2])?
If that is the case, would only the following be needed to move the Z axis 5mm below the Z max:
G1 Z{max(move.axes[2].max-5)}
Could I enter that as a command line to test it?
Thank you
-
@o_lampe said in First cut success - with questions!:
To me it looks like there is a little problem with this line...what if the userPosition is already higher than (max-5)? Would it try to move +5 anyways and hit the upper limit or stop automatically at max?
The move would be limited to max Z.
-
I guess you've answered my question, thank you @dc42!
-
Implementing those changes has caused a different problem, I can't run any g-code files.
The console is reporting the following error:
M32 "0:/gcodes/Initial Test Cut.nc"
File 0:/gcodes/Initial Test Cut.nc selected for printing
Cancelled printing file 0:/gcodes/Initial Test Cut.nc, print time was 0h 0m
Error: G0/G1: target position outside machine limitsI've REM'd out the global variable in config.g, but that didn't make any difference. Does it matter where this is located within the config.g file? I've put it after General Preferences.
I can't get far enough to test the pause.g or resume.g files.
-
@nightowl999 which firmware version are you using? If you are using recent firmware that supports the 'global' command then I think you must have made another change at the same time. The position of that command in config.g is not critical, but I suggest near the end.
-
This has become rather perplexing...
Yesterday I could run a couple of test cuts without any problem. In fact, I was really pleased!
After implementing the changes above (although I didn't check the machine before I made those changes today!) the files won't run, reporting the error:
M32 "0:/gcodes/Initial Test Cut.nc"
File 0:/gcodes/Initial Test Cut.nc selected for printing
Cancelled printing file 0:/gcodes/Initial Test Cut.nc, print time was 0h 0m
Error: G0/G1: target position outside machine limitsSo I reverted to the original pause.g and resume.g files and REM'd out the global command, but I still get the same issue.
I have had the outside machine limits error before, when trying to sort the axes and limit switches out, but that got resolved.
-
Board: Duet 3 MB6HC (MB6HC)
Firmware: RepRapFirmware for Duet 3 MB6HC 3.3 (2021-06-15)Which is a bit weird, because I keep copies of the version upgrades (in case I need to go back) and the version I have in storage is 3.4
-
Just updated the firmware, but there's no difference.
I guess I'll start from scratch and go through the RRF config tool again.
Ho hum
-
@nightowl999 why? its obvious whats going on. you're trying to run a job outside the axis limits. redoing the config won't change that
-
@nightowl999 said in First cut success - with questions!:
I guess I'll start from scratch and go through the RRF config tool again.
IMHO the RRF config tool is a barrier to learning the g-code that controls your machine.
The issue of trying to move past the axis limits is simple. However you generated the code it was using axis limits that did not match your machine.
How do you generate code for a CNC machine?
Thanks.
Frederick
-
@jay_s_uk said in First cut success - with questions!:
@nightowl999 why? its obvious whats going on. you're trying to run a job outside the axis limits. redoing the config won't change that
I guess I must be, but redoing the config (or at least looking at my original config to compare with the existing one) was the only place I felt I could reliably start from, but there is little difference between the two files.
-
@nightowl999 exactly, little difference so is a pointless task.
What are your M208 limits?
Are you using workplace offsets?
How big is the part?
What coordinates is the part at in the CAM software?
Are you working with 0 as the top of the stock or the top of the spoil board? -
@fcwilt said in First cut success - with questions!:
The issue of trying to move past the axis limits is simple. However you generated the code it was using axis limits that did not match your machine.
How do you generate code for a CNC machine?Yesterday I was using Vectric Cut2D Trial version to cut their 'Avalon' sample file and ran it successfully, but this was before I made any of the changes shown above.
I made the file changes today and then used Vectric Cut2D Desktop version (I've just bought the license) to run a small test file, and get the error.
I've homed the machine after turning it on, moved the gantry to - and set - the work zero and loaded the file, then I got the error. IO am able to jog the machine in any of the 6 directions away from the work zero, and the machine goes back to that spot when I click Home All, but again the file won't run.
What have I missed?
-
M208 limits:
X0 Y0 Z0 S1
X550 Y787 Z100 S0Am I using workplace offsets?
I am. I've jogged the cutter to the stock zero and set that as work zero.How big is the part?
10" x 10" x 0.5"What coordinates is the part at in the CAM software?
OMG. Give me a minute...Am I working with 0 as the top of the stock or the top of the spoil board?
Top of the stockUpdate:
Tool position is shown as 0, 0, 0
Machine position is shown as 47, 234, 92 -
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.