Glowforge SVG Processing

I’m writing a piece of software that generates SVG files for use with the glowforge. These files are made up of both cut and engrave portions. For the engrave portions, I am embedding the images into the SVG file.

Everything works great, except for one little issue - with 40-50 small images embedded, and cutting on non-proofgrade materials, the UI is extremely difficult to work with. Manually setting the engrave settings on each image is not really a viable workflow.

I’ve tried several different options within the SVG, but the GFUI doesnt seem to ever group these up -

  • setting stroke colors the same (on both the image itself and a parent group element)
  • setting fill colors the same (on both the image itself and a parent group element)
  • setting both colors the same (on both the image itself and a parent group element)
  • places all images into a single parent group
  • setting the element name attribute to be the same
  • setting the element id attribute to be the same

The cuts are all grouped up nicely in the GFUI, despite being in different parts of the SVG, which is great.

I could rasterize all of these images into one large image, but that means doing all of the layout/transform in code, instead of using SVG groups - its messy, and seems to defeat the purpose of using SVG, but its possible.

Are there any other suggestions/tricks on how to either auto-set the engrave settings (via SVG attributes, would be an excellent feature), or modification I can make to group these engrave steps up?


Don’t have the benefit of which software you are using, but in Inkscape - Edit>select same>color, then combine I think will allow you to do all together… IIRC… and f I understand your question. :thinking:

When you say images, I assume you are embedding 40-50 different raster images?

Each raster image is going to be recognized as an individual entity, regardless of whatever SVG < g > or deeper nesting is assigned. Your only official option for one-click assigning of settings, is going to be to rasterize the images as one larger image.

Unofficially, you could do a search for the material manager and set that up. It’s completely unsupported. I had some power problems with it when it was first developed and I haven’t tried it since. But, that will make it “act” like Proofgrade, in that the cuts will be auto-assigned, I believe.


Correct - 40-50 different raster images (png to be specific).

I’ll try to do a step of post processing in InkScape, and see if it combines the images (it may do the layout/transformation work for me). Combining the images has some other negative side effects, like the inability to easily to engraves of only small parts of the SVG for testing, etc.

I’m using a 1/16" acrylic, so none of the PG materials really match - if i change the focal length to 1/16", it resets all of the settings.

I’m starting to think that the easiest thing to do here might be write a small browser plugin that will just click all the buttons for me - seems a little nuts, but it will take less time to write the plugin than manually settings them all - its so many clicks in the current UI.

I’d love to see an advanced mode on GFUI that allows bulk operations and such.


If your images are packed fairly tight, you may see a speed increase by having one large raster vs individual items.

You can just leave one hidden. Or keep a test file. A minor inconvenience at the most, I would think.

In material height? Yes. And that will effect placement if you are trying to place things. If you set up your layout in the design and are just hitting print, you can change the PG setting to manual, which will keep the PG settings, and then change the job focal height. But then you’re back to a ton of clicks.

I’m not endorsing the program, but this will probably do what you want… you can define a material and settings for it.

1 Like

Thanks - I’ll give the chrome extension a try - it looks like it does what I need. Hopefully at some point, this type of functionality will be added to the base UI.

Thanks for the suggestion! I’ll make sure the team gets it.

I’ve moved this post to Beyond the Manual so the discussion can continue there.