Streamlining The Toolchain

Sometimes I try to do something magical, and it works. Most of the time this happens because other people have done a good part of the work for me, and shared it. I just cobble a bunch of existing tools into a flow that fits my needs. But the sum of all the parts is often less than the whole, when too many of the steps involve human intervention. Tools made for people simply keep the people in the loop.

For instance, I wanted to take a drawing that my son made into a stamp, by way of a CNC machine and whatever scrap wood we have kicking around in the basement. It’s easy enough, really. Take the photo, maybe use a little tweaking in GIMP to get the levels right, export it into Inkscape for the line detection and maybe even make the GCode right there, or take it off to any convenient SVG-to-GCode tool.

While this works straight out of the box for me, it turns out that’s because I have experience with all of the sub-tools. First, it helps a lot if you get the exposure right in the first place, and that’s not trivial when your camera’s light meter is aiming for grey, but the drawing is on white paper. Knowing this, you could set it up to always overexpose, I guess.

Still, there’s some experience needed in post-processing. If you haven’t played around with both image processing and image editing software, you don’t know how they’re going to interact. And finally, there are more parameters to tweak to get the CNC milling done than a beginner should have to decide.

In short, I had a toolchain up and running in a jiffy, and that’s a success. But in terms of passing it on to my son, it was a failure because he would have to learn way too many sub-tools to make it work for him. Bummer. I’m left wondering if I can streamline all of the parts to work together well enough, or whether I’m simply needed in the loop.

13 thoughts on “Streamlining The Toolchain

  1. A streamlined automatic lineart to cnc engraving code shouldn’t be hard to create – call gimp scripting on the raw image and output the result right into the cnc code generation suite(s) of your choice. But I’m not sure entirely automatic is really the best method – as the end result is about human subjective values on what parts of the original art are most important etc.

    Seems to me the best you can do for a good result is dumb down gimp specifically for this task with a little saving script that calls the gcode generation steps – effectively just a reskin that takes away all the extra complexity and features that are not needed so you can change contrast, sharpen, blur and touch up the line art but nothing else. Not familiar enough with Inkscape but it might be possible to do it in inkscape rather than gimp too, either way once that bit is done the machines should be able to do the rest well enough for a one off cut without human intervention – you don’t need to worry about the maximum possible speed and efficiency of the cutting profile and the automatic order of operations is almost certainly adequate.

  2. Cant help feeling that Mr Williams is missing the point here. The main consideration is that a father and son are having a seemingly meaningful interaction with inspiration gained by the son, no doubt. A lot of dad’s would not be bothered with this, preferring to drink booze, watch TV or whatever. From the son’s perspective, he would no doubt be aware that a tool chain existed, but maybe not have a word for it. He probably already knows that he has a great deal to learn about the world and the complexities behind creating the milling product and be content that he could learn all this stuff at a later stage if he wanted to. I only know this because I remember promising myself to take the time to learn about the complexities of my parent’s irrational behaviour and apparent almost complete ineptitude at the whole thing called ‘Life’. Tool chains of a different sort. My own dad spent absolutely zero time showing me and my brother anything and took great glee in with-holding useful information in order make himself look clever. We soon learnt not to bother asking ask him for guidance, opinions or advice and it all became fairly normal to have a crappy dad.

  3. The problem with tool chains is that they break – mostly because of what other people do to the parts that you use to construct them. Software and hardware becomes obsolete, gets “upgraded” to lack the feature you depended on, parts are not manufactured any longer… That’s why it’s futile to try and build a toolchain for someone else who doesn’t comprehend how it works already. When the chain inevitably breaks, they will be completely unable to fix it and you’re left in the position of the cousin who answers the calls whenever someone in the extended family has their “internet broken”.

    In other words, if you supply a product, you must support it. Give a man a fish… etc.

    1. That’s how you get ‘leaned helplessness’.

      Don’t do it. They can figure it out or do without.
      At least make them wait then extract work from them in return.
      Moms have prepaid the work though.

  4. The toolchain you are looking for is Laserweb.
    You can try it without installing here:

    1. Select “Add document” with the photo.
    2. Click “Filters & Trace”
    3. Apply any contrast etc. filters needed.
    4. “Preview trace” and then “Create vector” when you are happy.
    5. Hide the bitmap and select the vector image
    6. Click “Create single” and “Mill cut outside”
    7. Generate and download G-code

    Still there is stuff to learn and parameters to set, but at least it is all in one program.

  5. How ever you look at it Al you are an important part of the tool chain – when you are no longer part of it is a sad day.

    Don’t rush the process, it will happen soon enough and you will be left wondering what happened.

  6. Don’t teach your kids a toolchain, teach them a generalized method and then help them develop tool chains as needed with an emphasis on flexibility – a “right tool(chain) for the job” rather than one rigid “it must be done this way with this tool(chain)”.

    Don’t give them a fish, teach them to fish.

  7. To echo others comments – some of this is potentially scriptable, my approach is also to document stuff like this (I have a personal / family DokuWiki but pick your own solution) so that those who might need or want to can replicate my process.

    In a lot of cases Gimp can be replaced with a simpler package such as Pinta / for minor image adjustments, or even scripted with Imagemagick if you want to be fancy.

    As an aside, does anyone have a nice reliable & easy-to-use solution for tracing bitmap images into sensible smooth vectors? Everything I’ve ever used seems to either produce way too many fragments or lumpy blobs and use a selection of unituitive variables to do so.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.