Milling Curved Objects With A G-Code Ripper

HaD Mouse

Milling and routing flat surfaces is pretty much the point of a CNC router, but how about curved surfaces? Auto leveling of hobby CNC machines and 3D printers is becoming commonplace, but Scorch Works is doing just the opposite: using a probe touch probe on a CNC machine to transform a G-Code file into something that can be milled on a curved surface.

The technique is pretty much the complete opposite of Autoleveller, the tool of choice for milling and routing objects that aren’t completely flat or perpendicular to the bed with a MACH3 or LinuxCNC machine. In this case, a touch probe attached to the router scans a curved part, applies bilinear interpolation to a G-Code file, and then starts machining.

The probe can be used on just about anything – in the videos below, you can see a perfect engraving in a block of plastic that’s about 30 degrees off perpendicular to the bed, letters carved in a baseball bat, and a guaranteed way to get your project featured on Hackaday.

33 thoughts on “Milling Curved Objects With A G-Code Ripper

      1. …and so very wrong. Everyone who knows nothing about CNC thinks it’s easy, and the computer just does everything, as though you give it a drawing and it just spits out a finished part. It ignores the challenge of designing good tool paths that don’t destroy the tool, or ruin the finish. It ignores the challenges of fixturing, which is a pursuit of creativity and intelligence that never ends. Most importantly, it ignores the creativity and experience required to be able to design a part that is attractive while also being machinable, which is no trivial concern. Often, the machine itself is an exercise in DIY. For me, as much time is spent making parts, both mechanical and electrical, to upgrade the machine as is spent on unrelated projects. CNC machines aren’t destroying DIY, they are the ultimate exercise in DIY.

        1. Man i wish it was click n go, i’d have a lot more free time to work on other stuff. I have my mill up and moving around but now i have to sort out all that stuff hojo just said. I burned up so many bits on our pcb router til i figured out better ways of cutting, same for these guys.

          On the other hand soldering irons have killed DIY.

          1. I’ll share what I’ve learned about PCB routing:

            Only use carbide. Fiberglass eats HSS like crazy.

            You can get a big package of random tiny carbide drills at Harbor Freight for like 12 bucks. I bought 2 sets and so far they’ve been close enough to any size I need to drill, although I looked through quite a few packages to find two with a useful selection.

            45 degree engraving cutters last a whole lot longer than the sharper angled but much weaker ones, although they also make leveling and depth more critical. Once I figured this out, I bought a pack of 10 on ebay for like 15 bucks. I’m still on the first one.

            For larger boards, I use a piece of wood that I’ve milled flat to the proper depth to back up the board. This keeps the PCB from flexing while drilling which makes the holes come out in the right place.

            I program all my tool paths for 5 thousandths depth, which is too deep, then run them down .001 at a time until they’re through the copper and set that to -.005 on my z-axis.

            The best thing I’ve found so far for edge routing is 1/16 carbide roughing mills.

            There’s a lot I didn’t post about fixturing. I can if anyone is interested but it involves uploading some pictures, and I’m lazy.

  1. Could a non-contact probe be created using a laser line scanner or even just two dots (different colors) at different angles. One would be vertical while the other would be offset but aimed so that at z=0 the dots touch

    1. I think you’re not far off the mark really… Similar to how a 3d scanner works, you could use a line laser and a camera to create a point cloud representation of your surface. 3d scanners usually rotate the object but in this case you could sweep the laser across. You’d need to calibrate for a flat object first to deal with the deflection of the laser across the sweep arc, but I think this it totally doable!

  2. This is what I need. and I can make a buttload of money with it. Basically using one of these for the restoration of vintage motorcycle hand controls, the labels have all worn off, but engraving the new labels and wiping paint into the engraving.. Some of these guys will pay big bucks for that.

      1. The point is that the tool converts flat gcode to follow a curved surface, by probing. Your approach would imply that you modeled the surface and then applied some text to it, quite a different challenge. The tool also does some other very useful transformations such as splitting.

  3. Grbl .9g has probing support. What would it take to get that added to GCode Ripper? e.g. how does Mach3/LinuxCNC provide the probe output information to the Gcode? It is not clear in the otherwise excellent documentation for this program.

    1. You can get an htc one 3d model and make a wooden replica of it’s back using the cnc. Then you can use that replica as a prototype, so that you can be sure that when you use the real deal it will work.

    1. grizzy sieg x3 with a cncfusion conversion kit. i picked up my g0704 for $1200.

      mechanical parts of the conversion are just shy of 1k usually, you can find cheaper one or if you can get the mounts made yourself, most conversions of this size x3/bf20/etc usually end up about 3-4k for off the shelf.

  4. I tested this software today and it works great.

    Instead of building a touch probe, I bought a Mitutoyo Touch Signal Inspection Probe model 192-001 on eBay for $7. I cut off the original wire harness and soldered a wire to the circuit board that connects to the internal touch probe switch. The wire then connects to the mach3 probe input pin.

    Thanks Scorchworks!!!

  5. I downloaded the software and want to use it along LinuxCNC. I got struct when and where the bi-linear interpolation to a G-Code file is applied. Does the controller (in my case LinuxCNC) does that? or is there any manual step is need to apply for the interpolation?

    Thanks for the nice software, It is very useful in my case,

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.