Making A 3d Logo

I've gotten several requests to create a 3d version of someones logo using my makerbot. I'm not an expert 3d designer, but here is a process that I've found works (to some extent)….

The finished files are on thingiverse. The basic form I use for 3d logos is a base platform plus the raised logo.

First you need a bitmap representation of the logo. For this demo I'm using the logo for Epic Fu. I was given it in several forms including a simplified EPS that didnt have all the fancy shading, etc of the one that appears on their website. I used the OS-X Preview tool to view it and save as a PNG bitmap. Then I opened that file in Gimp and did some cleanup of extraneous lines.

Then I used Gimp to create two separate png files, one for the base (rectangles) and one for the letters. Basically I saved the original as EpicFU_rect, then filled in all the letter spaces. This required both the paint bucket and some tweaking to get rid of edge lines. I used the color threshold tool to reduce it to black and white. I did the same with the letters, filling the original spaces with Red, then painting out the rectangle, and thresholding again.

Tracing over a bitmap to create paths/objects is one approach people when making 3d logos. A bit of googling found me a nice tutorial on using Inkscape to auto-trace. Basically, you load the image in Inkscape, select Path->trace Bitmap Image, and play with the settings. Sometimes the defaults work fine, other times you need to work it. Its not easy to tell, until you bring it into Blender. I had to iterate quite a few times to get it right - climbing the learning cliff. I found it helpful to use inkscape's Path->break apart, especially on the letters. Letters with holes, like O and P, required breaking apart, then selecting the inner and outer paths and re-combining them (intersection i think).

Save the inkscape files as svg - one for base, one for raised logo. I had a whole bunch of base#.svg and letter#.svg files where # was a test version number.

Importing the svg into blender was easy but had some tricks. First open blender, then use x to delete the current (default) object. Then select File->import->Paths (.svg …). This opens small dialog where you select the type of path file (Inkscape svg in this case), Then a file selector opens where you navigate to the file you want. When you have selected the correct file, click Import SVG, which opens another dialog of import options. The defaults worked fine so I clicked OK.

The original object is pretty small so I followed Bre's tip and used N to bring up the Transform Properties dialog. Click "Link Scale", and adjust one of the scales so the object size (units = mm) is appropriate. What is "appropriate"? Depends on the logo and your bot and other things. I dont have a heated raft so I try to keep em under 2 inches. For the Epic Fu logo, I used a scale of 35. This changed the dimensions from 1.4x0.85mm to 49.5x29.2mm. Use View->view all (home) to reset the viewport to display the now much bigger object.

Use the Location X/Y to move the object up to center. REMEMBER THE VALUES YOU USE. you will need them when you do the other part. I started with the base/rect and moved it to -30x, 14y.

In the object panels below, change the value for Extrude. Remember these are scaled by the Transform Parameters. I used an extrude of 0.1 to get a z dimension of 7mm. Switch the view to side or front and you will see that 1/2 the object is below the zero plane. Enter 1/2 the Z dimension parameter into the Z loc parameter. This moves the bottom up to 0.

Remember the z dimension of the base. You need it for the top.
Now you need to convert the extruded object to a Mesh. Click Object menu button ("View Select Object" below viewport are menu buttons), and select Convert Object Type. Your only choice is Mesh, so click on it.

Save the base as a blender file. I saved the extruded and mesh objects separately, so I could go back easily.

Now exit and restart Blender. This is a cumbersome step, but I found that when I simply created a new file and tried to import the letters svg file, I often got both the letters AND base as objects. Weird but I'm not chasing Blender bugs today.

Repeat the import process with the Letters. When you get to setting the z loc parameter, set it to be the height of base (7mm in my case). I did have to go back and use some slightly different x/y loc parameters to get the letters to properly line up with the base. Convert the letters to mesh and save the file.

Exit and restart Blender.
Open the base mesh file and save it as the your_logo.blend file. Then use File->Append or Link to locate the letters mesh file. WHen it opens that blend file, select Object, and then the object you want (not camera or lamp for simple file). Then click Load Library.

Check the positioning in several views. If necessary, go back and reposition the Letters object in its own editor. I suppose there is some way to do this in this file, but I didnt find it yet. (ADD YOUR COMMENT OR EDIT THIS PAGE if you know how!)

Now use the A key to select all objects (both base and rect). Then use the w command to bring up boolean operations and select Union. Go for a hike, have dinner or something. It will take a while. When it finishes, save the file.

Lastly use Blender's File->Export->STL to create the STL file.

You should now have a proper STL ready for the next steps. Check the object using MeshLab, Pleasant 3D or other STL viewer. Then use skeinfox/forge or other tool to create gcode.

Hope that helps. If you know a better way, please update this page!!

Unless otherwise stated, the content of this page is licensed under GNU Free Documentation License.