Automatic CNC dust shoe
-
I would like to add an automatic dust shoe to my CNC router, since the constant fiddling with my current setup takes far too much time, especially for jobs with many tool changes. I found this automatic dust shoe project by Marius Hornberger.
The setup is straight forward: Mount the dust shoe on a slide so it can move up and down independent of the spindle and add a linear stepper to set the dust shoe height via software.In order to adjust the height of the dust shoe to stay at the top plane of my workpiece, I wrote a macro that will take the workpiece offset and current tool position from the object model and adjust the dust shoe height once a second. The problem of course is that this would be interfering with the movement queue of the CNC-job. So here is my question: Can the second movement queue be used to control the dust shoe height without interfering with the first movement queue?
-
@MaxGyver You can use the daemon.g for it. Just make it run in a 1 second loop:
; pseudo code while(true) ; check height and adjust dust cover ... ... G4 S1 ; wait a second before looping
-
@MaxGyver The independent motion system is designed to be for motion that does not need to synchronised with the primary motion system, or not synchronised other than at specific synchronisation points.
How closely does this "second Z axis" need to follow the machine Z axis height? Looking at the video you shared briefly it only shows it moving up and down during tool changes. In that case you could automate it within your tool change macros, potentially with some conditional gcode based on results form the tool setter if needed to adjust how high it sat relative to the tool Z offset.
If it needs to move based on other factors such as the part geometry under the dust shoe then its a more complex problem.
-
Okay, I am still struggling to understand how the secondary movement queue works...
My original plan was to have a demon.g running in the background checking the z height and updating the Dust shoe axis position in regular intervals.
In order to not interfere with the primary movement queue I was planning on using the secondary movement queue. The movements would not need to be totally in sync. -
@MaxGyver that may well.work, but my point was it might not be the right solution. When do you need height following? At tool changes and similar points? Or all the time during a job?
-
@T3P3Tony
good question!From a mechanical perspective, it would be much easier to mount the height adjustable dust shoe directly to the z axis. This would mean that the height of the dust shoe would have to be constantly adjusted so that the dust shoe stays at the same height relative to the workpiece while the Z-Axis moves up and down during milling. The dust shoe can still have a flexible skirt that would add some tolerance to the system if the motion is only synchronized in intervals and not constantly adjusted.
Dust Shoe assembly mounted to the Z-Axis: (Please note that the motor that controls the height of the dust shoe is not visible in the screenshots)
The second option would be to fix the dust shoe system to the X-Axis plate, like it can be seen in the video I posted earlier. This would make the mechanical assembly of the dust shoe independent of the Z-Axis movement. By doing so, the height of the dust shoe can be set at the start of the program and is only lifted for tool changes or at the end of the program.
Automatic dust shoe assembly mounted to the X-Axis:
-
@MaxGyver how is it attached currently/normally without additional motor to automate lifting/lowering it?
Naively I would assume it makes more sense for it to be on the Z axis (or slaved to the Z axis) to in normal operation it would be the correct height relative to the surface being cut. Then it would be moved up and down for tool changes. I guess its a mechanical integration question if its actually mounted on the Z axis with two positions (down/up) or if its a second Z axis, mounted on the X axis, with a variable position (current Z/Current Z + Up amount amount).
In either I don't think multiple motion systems or daemon.g is needed. if its mounted on the Z then the tool change macros would lift it and lower it (and it can be names anting that does not conflict (e.g W,V or U). If its mounted on X then it would be defined as the second Z axis normally and the tool change macros would redefine it as independent, move it up, then move it back and recombine it. I have not tested this second method but I can't see why it would not work.
-
Defining the dust shoe axis as an "inverted Z-Axis" was my first idea as well.
The question is how do I recombine both axis on Z0 without changing the G-Code/Postprocessor ?I found another video that is showcasing what I am trying to do a little bit better.
EDIT:
This is my current dust shoe setup. It is just a pipe clamped to the Z-Axis. I set the height of the dust shoe manually to the cutter length. It works but the skirt is often squisched and damaged by the cutter when milling deep pockets. Furthermore it is really cumbersome to move the shoe out of the way for toolchanges. -
@MaxGyver Would it be an inverted Z or a normal Z (during normal machine movement)? I assumed normal Z, as Z moved close to the workpiece, so would the dust shoe, as it picks up for a travel move, so would the dust shoe.
Presumably for deep pockets there would need to be some lower Z limit for the dust shoe which complicates things. Axis limits apply to the whole axes not to individual motors so possibly having this always as its own axis and then having a post processor that coped the Z movement to a (say) W movement, where W was limited to a safe range?
For dynamic adjustment that is not just keeping the same relative position to the spindle tip - that's a different question. It would be an independent axis and I am not sure the best way to handle this. For the original requirement of having Z movement relative ti the tool automated for tool changes though, that feels unnecessary.
-
@T3P3Tony said in Automatic CNC dust shoe:
I assumed normal Z, as Z moved close to the workpiece, so would the dust shoe, as it picks up for a travel move, so would the dust shoe.
You know what, I think this is the way I will go for now.
I realised that In order to get a "height following mode" for the dust shoe working would definetly require some work on the post processor side that I am not capable of doing.
I will keep it simple and have a the seperate A-Axis automatically set the hight of the dust shoe according to the length of the current tool after a toolchange, as well as lifting the dust shoe out of the way for toolchanges, tool probing and at the end of a programm. This would already ne a huge improvement for me.
-
@MaxGyver so you are going for the option to mount the dust shoe mechanically on the Z axis so you only need to send the offset?
-
Indeed, I wrote a simple macro that sets the height of the dust shoe to the height of the spindle collet+ the current tool length. This macro is called after a toolchange or if one of the macros for mist cooling or dust extraction is called. Maybe I will add a demon later that updates the height of the dust shoe regularly during a job. But for now this will do.
I made a short video while running a tool change. Not having to fiddle with the dust shoe during toolchanges is already so much more convenient.
-