CAM minimum segment length

jean.b
Participant
Participant

CAM minimum segment length

jean.b
Participant
Participant

My controller needs up to 5 ms to process a gcode line. I'd therefore like to limit any path travel to 0.2 mm minimum (segment or arc) so that I can achieve a decent feed rate.

 

I understand that I can play with the Tolerance parameter but if I increase it even to 1mm the accuracy becomes quite poor while I still have very small moves starving the controller buffer:

X22.852 Y32.925

X22.978 Y32.928

X23.102 Y32.932

 

Is there a way to define the minimum segment length instead?

 

Thanks.

0 Likes
Reply
Accepted solutions (1)
786 Views
4 Replies
Replies (4)

seth.madore
Community Manager
Community Manager

Before we edit the post processor, perhaps there is some G code that will help with smoothing out the motion?

What is the machine and controller?

Increasing the segment length may have adverse effects on your accuracy.

 

What toolpaths are you seeing this on, all of them, or just certain ones? Most of the toolpaths have a toggle (and employ) Smoothing. This has the effect of fitting arc motions into what would otherwise be a crap ton of linear moves. Have you tried that route first?

I find a tolerance of .0127mm and Smoothing of .0254mm does a really nice job of keeping things smooth.


Seth Madore
Customer Advocacy Manager - Manufacturing
1 Like

jean.b
Participant
Participant

The machine is a 3 axis CNC Shapeoko2 with a Synthetos TinyG controller (USB) updated with latest firmware (version 0.97 built 440.20).

 

There are several aspects which influence machine stuttering:

 

1) Reducing the feed rate below 1000 mm/mn improves the smoothness. This is unfortunately not a sustainable option. I need to achieve up to 3000 mm/mn or even more.

 

2) Milling strategy: For the time being I try to fix the issue on 2D contour but 3D clearing strategies are even more stressful for the machine

 

3) CAD Design: Small arcs, splines and sharp angles are creating more problems. I’ve therefore designed a stress test for repeatability purposes: https://a360.co/2Ip5y6x

 

4) Path smoothing option:

 

Without smoothing the code is indeed extremely heavy:

2019-02-20 09_54_23-Window.png

The execution is unsmooth (lot of Stops and Starts without acceleration / jerk management) and there are many warnings reported by the controller: Move is less than minimum time.

 

With smoothing (default setting to 0.01 mm) the large top spline has been dramatically improved. However I still have too many dot on the shortest splines (including the middle right one which is however an almost perfect arc: I would have expected a very nice smoothing here instead of this serie of tiny arcs and segments). This is the reason why I’m looking for a way to set a minimum segment length.

 

2019-02-20 09_55_06-Window.png

 

Your recommended smoothing settings are indeed better. The motion is almost smooth but I still have a few unacceptable stops around the regions where you can see plenty of dots:

2019-02-20 09_55_40-Window.png

 

BTW smoothing do not apply to lead-in and lead-out operations which create a considerable amount of segments. However reducing feed rate below 300 mm/mn for these operations is an acceptable workaround.

 

5) Gcode sender: I have tested several gcode senders (CNCjs, ChiliPeppr, Goko 0.3.5…). Some of them are activating the verbose mode on the controller, this is apparently not helping here but it can’t be changed.

 

6) FTDI Serial port set-up: It has to be set to maximum acceptable speed (115200 bauds) and proper flow control (RTS/CTS). I’ve also noticed that there is a latency set-up in the advanced options. By default it was set to 16ms. Reducing to 8ms has improved the smoothness. Going below doesn’t seem to improve further, but to be fair I’m not sure what could be the collateral impacts of decreasing this too much.

 

As a conclusion, I agree that the Smoothing option should be the right way to solve my issue, but it doesn't work as good as I would expect.

 

0 Likes

seth.madore
Community Manager
Community Manager
Accepted solution

2D toolpaths don't do a really good job out of the gate with splines. It's not a set radius or straight line. Thus, it fails at the "smoothing" bit. I think this could certainly be improved upon and I will try to have a conversation with the appropriate development team about this.

 

You are on a Shapeoko, so we can use this to our advantage, rather than edit the post processor. We could just use 3D Contour, which is a LOT more flexible for smoothing (which is why I think 2D could be improved). Take a look at this toolpath on your part:

2019-02-20_09h51_14.png

3D Contour doesn't support cutter comp, but neither does your machine, so it's a wash in that area


Seth Madore
Customer Advocacy Manager - Manufacturing
0 Likes

jean.b
Participant
Participant

Thank you! 3D contour works great. I still have one warning (Move less than minimum time) but the tool path is exactly what I expected.

0 Likes