"Depth first" carving for nested shapes

This is Ruwan from the Inventables software development team. I’m really excited to share with you some new toolpath optimizations we’ve just released for Easel!

  1. Object by object carving - this is an extension of an optimisation we did some time ago (link). After that earlier optimization, Easel carved inner shapes of a larger shape in a “layer by layer” approach, moving from one shape to the next until all inner shapes at a given depth were carved completely. After this optimization, inner shapes also follow object by object approach.
    As shown in left side of the following animation, earlier inner 3 circles were done layer by layer. Furthermore, letters are also carved using layer by layer approach. In right hand side, as you would notice carving of a circle followed by its letters are completed before moving to other circles.

  2. Outlines that goes all the way through (i.e. cut-out outlines) are carved only after completing all inner shapes. This also means, outer cut-out outlines are carved only after finishing inner cut-out outlines (see the animation below).

    This order of carving is maintained even when these cut-out circular outlines are located inside a larger ‘fill’ square shape (see the project image and animation below)

We’d love to hear what you think about these changes.


Ruwan and the rest of the Easel team


Much better! I can’t wait to try it out.

1 Like

YAAAAS! This is working wonderfully. It saves so much time and is a much-needed improvement. Thanks again!

This looks great! Out of curiosity, what do you use to do your simulations?

Great to hear it worked well for you @Mike.
@Rcannon95, First, I exported gcode from Easel. Then I loaded the gcode file in OpenSCAM (now known as CAMotics) [1]. Next I ran the gcode simulation in OpenSCAM. Finally, I used a screen capturing tool called LICEcap[2] to record the simulation in gif format.
[1] http://camotics.org/
[2] http://www.cockos.com/licecap/

Camotics is my go-to gcode visualizer. It’s great for double-checking code when I’m not sure about something. It’s also great for checking code from other programs like F Engrave.

1 Like

This looks really outstanding! Thanks for the continued improvements. I look forward to trying this out!

1 Like


Holy crap!!! Lol

Very nice!! I have been waiting for this for awhile I love the more efficient tool paths my macaroni bowled over because I was trying to hold a piece from flying out!!

No great changes I will test out and send feedback

Has the release already happened as of 0200 1/26/16?

1 Like

@ontheEDGE, thank you :slight_smile: This change was made about 18 hours ago.

@SpencerShepard, some time ago you asked about this update. Please have a look and if possible provide us some feedback.

I’ve noticed that it will still do the “old” way if your artwork is a compound path rather than just nested shapes.

For example, when I drew a shape in Illustrator, as a force of habit I made the shape compound in order to see it on the artboard. When I imported the .svg into Easel, everything looked ok. I went to carve the shape and noticed that it was going layer by layer again.

Dismayed, I decided to try changing the order, or perhaps making the inner shapes pockets instead of profiles. I discovered that I couldn’t select the inner shapes because the compound path was just 1 object.
So back to Illustrator, released the compound paths and re-saved. In Easel, I exported the gcode and ran it in Camotics to test it (since the X Carve was running already). Worked like a charm.

For a point of reference, I’ve run a few projects under the new toolpath strategy that I had already run under the old one.
One project, a pocketed tray with sub-pocketed round insets, previously took 2.5 hours to complete one. With the new strategy it took 3.5 hours to cut two. The project I was working on above was 4 parts in a piece of material. Under the “layer by layer” method it took over an hour to cut 1 part. Under the new method it cut all 4 parts in about 45 minutes.

HUGE timesaver. I can’t thank you enough. Keep those optimizations coming!

Edit: Here’s a version of the file I was working on so you can see what I’m talking about. The top 2 parts are compound paths, the bottom two are not.

@Mike, I’m glad that this change had helped you to minimise job time. Thanks for the detailed post about the issue. I will have a look at those files provided.

@Ruwan Thanks for this! Perfect timing for a job I’ve been running. The reduction in runtime for my repetitive patterns (used to have a ton of time spent up/down on the z-axis for each pass) has been immense.

1 Like

This seems to work so much better for my setup!!! @Ruwan Thanks for implementing this feature!

1 Like