Request SVG import bring along layer information

TLDR: It would be helpful if SVG import kept the information about which objects are in which layers.

I use InkScape and OmniGraffle (Mac only) for drawing projects. They create SVG files that can be imported cleanly into Carbide Create.

Both InkScape and OmniGraffle allow you to define layers and assign objects to specific layers. Those then show up as nested “g” grouping elements in the SVG file’s XML contents.

I use that capability to group elements together onto layers in CC, which makes selecting objects for tool path creation much easier. E.g. have a layer in the SVG file for cutting lines with a 1/8" end mill, and another layer for letters that will be VCarved.

Ideally, a layer in the SVG file would automatically become a layer of the same name in the CC project during SVG import.

I’ve attached a .svg file that includes layers as an example.

The workaround is to export the individual layers as separate SVG files, then import them one by one into CC. This works, but it’s tedious and error-prone: Getting the inter-layer alignment right is tricky.

Thank you for considering this!

6x3 test coupon

2 Likes

Alignment is easy/automatic if you always include an element at the lower left origin/along the bottom (since left–right origin is preserved, and it is only vertical placement which is not (in current versions)).

I agree with your request, but I found that “Layers” in Inkscape are just Groups with a known name. So the interpretation by CC of an Inkscape SVG would have to be application source specific in order to get CC Layers to be equivalent to Inkscape “Layers”.

CC will scan the SVG and use the found boundaries as the new origin and extents.
As Will says, put a “fake” piece of geometry in the lower left corner to allow easy ( auto magic ) alignment.

Thank you both!

The “fake geometry” approach helps with aligning the lower corner.

Another alignment problem is that the SVG file doesn’t seem to be imported at the original size. For example, that sample file was originally 6" x 3".

viewBox=“0 0 432 216” width=“432” height=“216”

When imported to CC, it comes in as 4.5" x 2.25". (When I use separate files for layers, they sometimes come in as different sizes)

I use the Scale tool to expand it back to the original size. Sometimes objects in the upper-right end up off by a few thousandths. Maybe not a big deal for wood, but I’m thinking it maybe will be an issue for engraving small letters. I’m going to be trying that next.

Is that expected behavior?

Thanks again

If the scale is effected, then try some more fake geometry in the upper right.
In Inkscape why not just make a known size box in each layer with a known LL origin.

That should force the limits calculation to be correct.

In Inkscape do you change the unit of measure for the Document ?

My default Inkscape document units.

Change to imperial units.

I do set the Page Size to be equal to the Stock size in CC.

Note that dimensions in a drawing program may include stroke width.

Carbide Create expects SVGs to be set at 96 ppi.

If you’ll let us know the specific application you are using we can provide specific instructions.

I think the “fake” geometry should be a box that represents the intended stock size with your features properly located within the stock.

My previous suggestion would have had you move each “Layer” back into position in CC.

Thank you both for your help with this!

The keys to being able to import layers as separate SVG files were:

  1. Put a bounding box of the same size around all of the layers - this lets me re-center the layers using the alignment tool. After step 2 below, that recentering is precise.

  2. Resize the imported files by exactly 1.333333; always the same number of 3’s! This is to adapt the incoming 72-ppi-based size to the expected 96-ppi.

Thanks again!

1 Like