- edited description
Multiple passes when doing cuts
In the particular case that we want to cut into a metal (e.g 1.5 mm thickness aluminium plate) it will be good to be able to do it in multiple passes (many reasons: save tool life, limited power on the motors etc).
When milling it will be nice to have settings to set the desired depth of cut (what we currently have) but to be able to define tools (that get grouped into a tool list). Each tool should have a custom setting, "tool depth of cut", and if the software sees that the depth of cut is bigger than the "tool depth of cut" it will calculate how many passes will be needed to cut the piece at the desired depth of cut.
As an example let say that we want to cut a 1.5 mm thickness aluminium sheet with an end mill with diameter of 1.5 mm. Since it is recommended not to cut at a depth more than half of the diameter of the tool and since we are dealing with a metal, we choose the "tool depth of cut" of about 0.4 mm. In this case, to be able to cut at 1.5 mm depth we need 4 passes * 0.4 (tool depth of cut) = 1.6 mm (a little over the desired depth of cut of 1.5 mm).
1.6 mm is 0.1 mm over our thickness of the material so a warning should be issued that a sacrificial bed it's required otherwise the tool will hit the router table.
Of course the job can be done as it is right now in multiple steps, each time setting a different depth but since the software potentially can do it, we could focus on something else while the CNC is doing the work.
This could be very useful when doing front panels or maybe when cutting into metal core PCB's (MCPCB's). This feature should be added for the CNC job.
Comments (19)
-
reporter -
reporter - edited description
-
Currently you can manually generate cut passes at multiple depths to get the job done.
... but that's not so great when you use the Mill Holes option for Excellon files.
I'm milling holes in a board that's .061" with a .03125" diameter end mill and a .006" z-step for each pass. If I generate 10 depth files, it's going to cut every hole on the board at the current depth and then cut every hole on the board at the next depth and so forth.
If this was automated, it would stay in the same hole doing multiple passes until it had cut the full depth.
This multi-depth cut is just as useful for board outlines and slot cutting.
-
repo owner I agree. For milling slots this would require a different strategy.
-
repo owner So, does anyone have ideas on how to go about this? There seem to be many ways to do it, some not very convenient as @eliotphillips points out.
Maybe it is as simple as:
for path in geometry: while (not_full_depth): cut_path() increase_depth()
Iterating first over paths and then iterating over depths seems do do the trick. Feedback please!
-
repo owner - marked as major
Increasing priority due to high interest from users.
-
repo owner Alright people! It's now implemented. Please play around with it (carefully) and tell me how it goes. I'm not closing this issue yet because the feature is very experimental at this time.
-
Thanks for this! I created a board cutout job, set the "Cut Z" to -1.7 and "Depth/pass" to 0.6. After generating the job, I noticed that the end depth was -1.8 (3*0.6) instead of the expected -1.7. In other words, I think you should limit the step-down so that it doesn't go deeper than the desired final depth.
-
repo owner Yes, I agree.
-
repo owner - changed status to resolved
Solved in 05e89b0
-
reporter Hi, I did not want so say anything until I checked a little bit more, but there might be some small bugs with this. In certain cases, when using multi depth cut, the last cut is duplicated in G-code. I will investigate and let you know.
Thank you for implementing this!
-
repo owner - changed status to open
Can you please post instructions on how to reproduce?
-
reporter Hi JP!
I detected this issue when I first set a drilling depth of -2.1mm in 3 steps (each step 0.7mm). I will download the last dev version in case it is solved, try again and post the results here. Thanks! Marius
LE: I confirm the above. Please see the attached files. https://www.dropbox.com/s/j69k5dof92ngxma/a.txt?dl=0
Having a "last pass" might be useful as a finishing pass but it should be an option.
-
repo owner This is the problem:
>>> -0.7*3 -2.0999999999999996
Therefore, it needs to do another pass at -2.1 to complete the required depth. When it's converted to G-code, the precision is limited to 4 decimal places, so it's rounded to -2.1.
Will work on it.
-
repo owner There's this nice module:
>>> x=Decimal('-0.7') >>> x*3 Decimal('-2.1')
Seem's perfect for problems like this, but I can't just be making everything a
Decimal
instead of afloat
. Anybody wants to help figure out a criteria for this? If there are lots more cases like this, perhaps this calls for a major overhaul. -
repo owner - changed status to resolved
Use Decimal for depth calculation. Fixes
#130.→ <<cset ea2774869702>>
-
repo owner Issue
#127was marked as a duplicate of this issue. -
Is that patch available in the latest windows installer version (8.4)?
I'm using it (8.4, not development) and I cannot find the multiple pass checkbox. Thanx Dev
-
repo owner 8.4 is from 10/2015, and this was fixed in 12/2015.
- Log in to comment