Cutting forces with Carbide Create -- and how I got derailed a bit

When I first got my 3XL almost a year ago… the first few months I lost several pieces that came loose (and thus also had to rebuild the Z carriage several times) due to the following pattern that Carbide Create uses for its toolpaths:

cc-square-cut
The little paths where the cutter goes from one inner path to the next one is done at full speed, but unlike the normal part of the path where there is 50% stepover, these have full cutter engagement, and in addition, at the edge of the work piece the forces get multiplied due to the long distance from the center of the work (basic mechanics with an arm)

Over time I learned to reduce my F&S just to avoid this, but it has been bugging me ever since.
In this forum several times it has come up that you can estimate cutting forces by measuring the current to the router, so I got a cheap bluetooth enabled current clamp from Amazon, and made a simple design to see if I could measure these little lines, and then take it from there.
Plan was: Create a computer program that reads an SVG from Carbide Create, calculate toolpaths that match what Carbide Create generates, write gcode where those little “cross path” lines run at a reduced F&S and measure the current again.

This is where I got a bit derailed, since I’m still fighting how to get the CSV file from the clamp off my ipad without getting heaps of malware on my PC.

Anyway I made a simple Carbide 3D like logo in Carbide Create (filesnf-carbide-test.c2d (24.4 KB) ) to be cut with a 1/8" bit on a few 4"x4" scraps of oak that I have sitting around.

The toolpath for the design looks like this:


And I noticed something that I had hit before, where there seems to be a pretty large gap between toolpaths in part of the design… effectively there’s a double full cutter engagement happening there. In the past when I had this, I either ended up with “fuzz” on the wood, or even a small ridge left standing.

When I cut the gcode from Carbide Create (file:snf-carbide-test-cc.nc (39.3 KB) ) I indeed got my surprise:
cc-ridge
and of course there where the usual tool marks:

I used the F&S from @wmoy’s video (https://www.youtube.com/watch?v=cjoNGACBkks ): 0.045" depth of cut, feedrate of 50ipm (figured that oak was somewhere between soft and hard), but ran Carbide Motion at 120% for all experiments here.

When I filed a ticket with the support folks earlier this year about the little ridges, @robgrz came back saying that they knew about these but that it is a very hard problem to resolve… triggering a personal character weakness in me: I wondered “How hard can it be”… the 5 most dangerous words in computer science.

Well, since I was fighting my Ipad to let the current measurements leave the device, I went to plan B: Create a computer program that read the SVG output of Carbide Create, make toolpaths and see how hard it really is to fix these issues.

So the basic toolpaths my program creates are eerily similar to those of CC:
basic-toolpath
which was good news for me. (the red paths get cut in the opposite cut direction, just like CC does)
Even the “void where the ridge happens” ended up being replicated.

Next step: fix the ridges.
Turns out this was actually surprisingly simple. The process you use to create these toolpaths ends up with a “center line” (‘interior skeleton’ in math terms) and that center line is exactly all the places where I would normally get ridges or fuzz in my designs. The tool now also adds a specific toolpath just for this, and will cut this toolpath first (at a reduced speed since it’ll be 100% with full cutter engagement).
Basically this operation adds the pink colored path in the paths below:
toolpath-with-interior-slot

I then turned this into gcode (file: carbide-with-slotpass.nc (41.4 KB) and cut this out of another piece of oak:
newtool-basic

and as you can see, the ridges and any fuzz are gone, but the toolmarks are still visible.

I always wanted a finishing pass option in Carbide Create, so I figured I should build one of those as well given that I had gotten this far already.
In the finishing pass, the deepest cut layer is only 0.2mm thick and a programmed in a reduced stepover. In addition, all layers above this layer have a small inset on the edges so that the final finishing pass takes away a little bit of material at the edges.
The resulting gcode file is here carbide-with-finishing.nc (69.7 KB)
and it looks great, the toolmarks are basically gone:

What’s next:

  • Trying to convince the Carbide 3D folks that this would be great to have in Carbide Create (I’m happy to provide implementation details if the C3D folks are interested)
  • Consult the F&S experts on this forum what the best strategy is for slotting paths: Go half speed at full depth or go full speed at half depth (so far the easiest thing was half speed at full depth)
  • Clean the code up a bit and put it on my github
  • Try a few more complicated designs to see how the algorithms behave
  • Figure out how to liberate the current measurement data from my ipad and analyze the actual reduction in force
7 Likes

Interesting. I put into Aspire and it doesn’t leave a ridge. (didn’t try and cut) At least nothing that I can see from the preview. I used both less than half and greater than half stepover. All had a cut where the CC gap is. Now the interior C has slight gap… And Aspire looks close to the original you posted.

in the CC preview there is also no ridge…
(and the little ridge is thin but still)

@gmack is going to love this.Can you please share a link to that current measurement thing ?

Thumbs up for the enthusiasm in diving into this and finding a geeky solution (these are the best!). Now, if only CC were open source, your hard work would benefit everyone immediately (wait, I said I would only rant about CC being closed source once a year, and I already had my go at it earlier in 2019…ignore that last sentence :slight_smile: )

3 Likes

Great work unfortunately, it cannot be implemented until Carbide decides that it should be implemented. There would also be a need for adaptive clearing toolpath strategies in CC and in Vectric (VCarve Aspire) products. In Vectric’s case, I guess one could write a gadget to create new toolpaths, the same goes for Easel where one can write apps to supplement the software but unfortunately, this is not available in Carbide’s products.

Currently neither CC or Vcarve support pocketing from the outside in (does Aspire?) - that’s unfortunate. Starting with multiple low power (shallow) passes to create a perimeter slot at the desired depth would enable more aggressive stepover (deep) cuts (similar to “adaptive clearing”). Using straight bits for those inbound pocketing passes would probably provide the best results.

The forces on the workpiece are caused by the cutter, so they’re independent of location.

1 Like

I am trying to use one of these https://smile.amazon.com/gp/product/B07CFWL3SY combined with one of these https://smile.amazon.com/gp/product/B001DPR0FE

they’re by no means high end solutions, the current meter can do at most 2 samples per second for example. but they’re also not 500 bucks.

I am giving up on using iOS (ipad), it seems the app is craptastic and to get the data off the device you need to basically jailbreak it. I just managed to get some data off an android device without heroics, so I’m going to do a new set of cuts and measure in this setup.

2 Likes

As explained in this video, measuring router input current isn’t a good way to measure power.

There are two approaches for pocketing in VCarve: Offset and Raster. I find that the best approach for pocketing in VCarve is to use the offset toolpath. It starts from the middle with a ramp-down hole then moves in a pattern that expands following the external contour so the engagement of the endmill is only at the stepover rate. In the raster approach, the endmill will make its way from one side of the pocket to the other starting with a full WOC engagement.

1 Like

interesting; I’m surprised the current software does not do this, since it’s actually easier to implement than the “inside out” path. The inside out path you actually create by doing the outside in “rings” until there’s no more rings left, and then play it back in reverse to create the inside-out gcode…
wonder why this is

What if it’s a rectangular or oblong pocket?

yeah RMS and all that…I’m an electrical engineer by training so at least I’m familiar with the theory of that part of things.

I did manage to measure both types of toolpaths, and subjectively there is more spikes in the carbide create one but I had in my toolpath creation the speed for the paths where the cutter has full engagement set to 66% and based on the measurements that was too high.
Still pondering if I should change it to a “half depth of cut” at normal speed instead of reduced speed at full DOC

You might find this calculator useful for such tradeoffs. I’d suggest maximizing router speed (RPM) to reduce forces and not worrying too much about chiploads. @Julien and others would probably disagree.

Here is a picture of toolpaths for oblong and rectangle, the top being offset the bottom raster.

interesting that your rectangle in offset mode shows the potential of having the same issue CC had and leaving a little ridge, or at least fuzz…

Not anymore, I’m on the @gmack train now, maxing out those RPMs and increasing FR accordingly :slight_smile:
But to be honest, I only moved away from using slower RPMs after I upgraded to a water-cooled spindle, which is very quiet compared to a trim router screaming at 30.000RPM and annoying the neighbors. That sound was unbearable to me…

And about using ‘low DOC, high FR’ versus ‘higher DOC, lower FR’, I now choose…higher DOC and higher FR, using adaptive toolpaths, whenever pocketing. For pure slotting/profile cuts I will tend to go shallow and fast, if only for peace of mind, and the satisfaction of seeing the machine move fast.

4 Likes

Code is now on github:


still a lot of cleanup needed but in case folks are interested.

it’s more a toolkit to play with toolpath generation than it is a production tool of course

2 Likes

I guess we’re missing something! Seems like an obvious (and easy?) way to achieve some HEM advantages to me. But, unlike you, I’m not a software guy. :thinking:

Ok so having played with this a lot more, turns out there’s an even simpler solution to the problem, something simple and low risk enough hopefully the Carbide 3D folks will consider it.

So problem again looks like this:
newalgo1
where the toolpath generator makes increasingly small “insets” and at some point hits a place where it cannot do another “stepover” sized inset and concludes it is done. At the limit of this you can have a whole tool diameter gap and you can imagine the cutter just barely missing, or at least leaving fuzz.

The interior skeleton approach, while hitting all problem paths, has complications, it’s tricky to compute and there are many paths it follows that are not actual problems.

So the more easy solution is this: Once the generator, while generating those insets at stepover, hits a point where there is no next inset anymore, instead of giving up, it tries a half stepover inset. If the original insets were close enough together (e.g. within normal stepover) this leads to no new toolpath, but if there is a larger gap, it gives a very nice simple fix:
newalgo2
In the limit, the distance between the two lines above now is exactly one stepover distance, which is more or less the desired outcome in terms of finish quality…
and as I described it, this is really simple to implement, instead of stopping, just one more try at half distance.

Now this will miss some cases, for example it will miss the area pointed at by the arrow below
newalgo3
which has the same effect occuring just not at the final round of making the insets.

with a slight tweak to the algorithm I described those can also just be dealt with:


but even if this fancy version is too complicated for the Carbide Create folks, I’m hoping they are willing to consider the more simple version since that takes care of many of the issues at very low complexity

3 Likes

Why not just overshoot (air cut) the innermost cut?