Hand Editing G-code for Better Machining

One of the issues I’m having with with my cutting the pentaflake pattern for my Backyard Tabletop project is that the router bit stops in one of the corners of each pentagon shape before moving up. This causes the bit to rub against the side of the cut as it raises, burning the wood, heating and dulling the bit. The problem gets worse as the job progresses, as you can see in this picture:

Side view of the pentaflake pattern showing burn marks getting worse across the piece.

Side view of the pentaflake pattern showing burn marks getting worse across the piece.

What I found out on the Maslow forums is that this is a common machining problem for which there is a common machining solution: something called ‘lead-out’, where the bit moves away from the edge of the cut before performing the z-axis move. Unfortunately, the software I’m using, Easel easel.inventables.com, does not support that function. The other common software used in the Maslow community, MakerCAM MakerCAM, doesn’t even seem to be working, it’s an online tool (as is Easel) and I can’t connect to the site. I looked at some videos on how to use Fusion360, which I have some experience with for 3D printing, but it seemed quite complicated in comparison to Easel or MakerCAM.

I decided to try Fusion360 anyway, first bringing in the .svg file I made in Inkscape, but that bogged down my computer, and brought out the pinwheel of death. I then tried generating the pattern in Fusion, but after the pattern got over 30 elements or so, it bogged down my computer again. Don’t know if it’s Fusion or my computer (an older MacBook Pro), but I gave up on it at that point.

I’ve modified g-code files before for 3D printing. G-code is human readable, and actually pretty easy to understand. I knew that the best way to modify the file would be to use regex, though I hadn’t used regular expressions in a while. Fortunately, there are a lot of online resources for learning regex, and the RegexOne interactive tutorial got me up and running pretty quickly.

I brought the .nc file into the Atom editor, https://atom.io, and wrote a regex to find the entry point for each pentagon shape in the g-code. I added a g-code command to move to that point before each z-axis up move, essentially creating a lead-out.

Editing G-code in Atom using regex.

Editing G-code in Atom using regex.

I loaded the .nc file into Ground Control (the software for controlling the Maslow), and it looks good, but I won’t know for sure until I run it. I reattached the bushing (see previous post) using 2 part epoxy, and I’m waiting for it to cure overnight before testing again.

Maslow CNC Pt. 1

I built a Maslow CNC. This video is part one of the build process—the electronics and assembling the frame. The Maslow is a relatively inexpensive, open source CNC kit. The kit comes with the electronics and specialty hardware, and you provide the lumber, router, and a computer (and a dust control system is a good idea, too). It’s a hanging router, much like a hanging plotter, and is capable of cutting an entire sheet of 4X8 plywood (with some margins). It can also cut thin aluminum, pretty much any material that the router you equip it with is able to cut. I’m very excited about the creative possibilities that this machine will open up for me.

Möbius Roller Update

Part One Here


Finally realized that trying to cut or zip the channels open is just overly complicated, and that (although it seems a little less magical) I should just print in two pieces and glue together. There are multiple benefits:

  1. It looks better. Being able to control the edges of channel where it intersects the outside of the of the cube gives a very clean look, probably better than I’ll ever get trying to open it with mechanical means.
  2. Channel walls come out very smooth. This is mostly the result of the way the slicer processes the model when it’s when it’s a monolithic piece.
  3. Easier to model. There are a lot more considerations when trying to make internal structures in an enclosed piece.
  4. Easier to paint, especially on the inside curves. Although, I do have to take a different approach than primer/sand/spray, which was giving some really nice results.

It’s not done yet, though. As you can see in the picture of it being printed, I did not use supports, and that caused the channels on the top of the arcs to be distorted just enough that the bearings fall out. Reprinting with supports now, and that should add dimensional stability (along with my emotional stability). 🙂

Seeking the Perfect Möbius Roller

I’ve been trying to perfect the process of making these things that I call “Möbius Rollers”.

Issue #1—Painting:

On the top one I used multiple coats of filler primer, sanded it with 100 then 220 grit sandpaper, painted it blue, taped it, painted it green and removed the tape. The paint job came out looking great.

The second one, I used wood filler on the rough areas, which saved me a couple of coats of filler primer. Painted it green, then taped it. But, the tape strips were too small, and didn’t stick well in some areas, so some of the blue paint got under.

Issue #2—Cutting:

There is a channel with ball bearings that ride around inside. In order to get this to print, I have to make the channel just below the surface. Then, I just cut the top of the channel open, so you can see the balls roll around inside.

On the top one I tried different bits on my rotary tool, and when I tried the router bit, I thought it was working at first, but then it skipped all over, and tore the whole thing up.

The second one I tried a grinding wheel bit on a slow speed, and I got a cleaner cut, but it took a long time. Then, after it was open, I tried sanding the channel so the balls would roll smoothly, but I discovered that the channel is pinched in one area, and even a lot of sanding would not open it up. And, even still, I did not like the way the cut came out.

Issue #3—Model:

On my old printer the channels came out wide enough, I don’t know if it’s the slicer, or the printer, but I need to either figure out different print settings, or maybe modify the the model to make the channels bigger. Also, I want to find a way to make the plastic thin enough along the outside of the channel, so that I can pull it open like a zipper.

3D Printed Halftone

I had an idea to 3D print a halftone image by making a grid of holes where the larger holes would be brighter halftone pixels, and the smaller holes would be darker ones, and then I’d light it from behind. I tried several approaches, including one performed after I made this video, and they all failed. Blender 3D was not up to the task of doing a giant boolean operation, and the P5.js SVG library was not up to the task of drawing all the outline squares that I needed. So, I resorted to printing a background (just a large, white rectangular slab) and switching filaments to print the halftone pixels on top in a different color (black squares).

I have a lot of ideas for variations, like a non-solid background, and slicing a larger image and printing it out in pieces. Ultimately, I still want to try my original plan, so maybe Inkscape, or learn some Fusion 360 to see if it can do it, and then maybe openSCAD if that fails.

Here are the software tools I used:

Here’s the Javascript program, if you want to give it a try yourself: http://hipnerd.com/wp-content/uploads/2018/05/3D-Half-Tone.zip

Amazon Associate Link: Made with Hatchbox PLA

Golden Rectangle Icosahedron in Blender 3D for 3D Printing

 

I found this Golden Rectangle Icosahedron while reading about Icosahedrons on Wikipedia: Regular Icosahedron and wanted to make a 3D print of it. I realized that I could print it with a minimum of supports if I printed it standing on three corners.

Constructing the figure is super easy by making a golden rectangle, duplicating and rotating it two times. The problem that I encountered next was getting three corners resting on the XY plane. You’d think there’d be an easy to use tool or two, or maybe a plug-in, to do this in Blender, but haha–no. After a bunch of googling and wasting time trying to figure out how to do this with Blender tools, I landed on the idea of using duh-duh-duh MATH!

The process is simple, and can be generalized to any object. It requires only simple and familiar Blender tools: moving the origin of an object, translating the object, and rotating the object.

The basic steps are:

  • Move the origin of the object to one of the vertices
  • Move the object to 0,0,0
  • Get the coordinates of the next vertex and find the angle to rotate around the Z axis align it on one of the major axes
  • Get the coordinates of the vertex again and calculate the angle to rotate to the XY plane
  • Get the coordinates of the last vertex and find the angle to rotate around the axis in step three to the XY plane

I had a lot of trouble getting this to print on my new Prusa I3 MK3. Here’s some troubles I ran into, and how I resolved them:

  • After a week of printing fine, I started to notice that first layers were sometimes failing. The solution was to preheat the bed for just a couple of minutes before starting the print.
  • I never really had the Z-axis set correctly because the Prusa’s built-in first layer calibration routine is not good, and makes you guess too much. I used the instructions in this thread: life adjust Z – my way (sic), and everything was so much clearer and easier.

Once I had the printer dialed in, I had to experiment a lot with Slic3r settings. I think the most important three settings in getting this to work were enforcing support for the first 40 layers, setting the XY separation to 5%, and setting the infill speed to 375 mm/s².

Model on Thingiverse: https://www.thingiverse.com/thing:2822976

As far as the video itself goes: The Blender session was complete garbage, and I discovered that it’s really hard to edit that type of video. Also, voice overs are hard. Also, the painting was long and unnecessary (and badly done to boot!).

My New 3D Printer

Just got a Prusa I3 MK3 printer. I ordered the MK2 in June 2017, switched my order to the MK3 in October, which added a few months on to my delivery time. Finally arrived, February 2018. I’m super happy with it so far. Leagues beyond my Tronxy, but I’m keeping it and will still use it.

Here’s a time-lapse video of me assembling it: