What you need
- Buy a 3D printer
- Buy 3D printer filament
- Slicer Software
- Inkscape (or suitable vector graphic program that can produce .SVG files)
- FreeCad
Step 1: Create a Cube in FreeCad
So first things first open Freecad and create a new file. The first thing that you will need to get to grips with is Freecads use of Work Benches Different work benches have different tools and these different tools can operate on different sets of object types. The first thing you will need to do is select the Parts workbench. From here select the cube.
You can change the size of the cube by clicking on the cube in the Labels and Attributes panel and then the Data tab on the Property View. Change the Length, Width and Height to 20mm.
You could export your 20mm calibration cube now as a .STL file ( File > Export…. ) but we thought that adding some text to your freecad model, specifying the axis is a good idea, it allows you to know which way the cube was printed so you can trouble shoot problems with specific axes.
Step 2: Create Text in Inkscape
Create a new file in Inkscape. Simply write out X, Y and Z in Inkscape. Make sure they are of a reasonable size. We found that the ability of FreeCad to use imported SVG fonts was dependent upon the font, the size of the font and also the letter. Some letters would not produce a usable solid as the wireframe the object creates is not complete or it has self intersecting lines. But leaving this aside select your text objects and the convert to Paths.
Once done save your file.
Step 3: Import Text in FreeCad
Next, return to freecad and select the Draft workbench. Now we are going to import our text into freecad to label the different axes of our 3D printer calibration cube.
Go to File > Import… and select our .SVG file we created earlier. You will be prompted to select either Drawing or SVG geometry, select SVG Geometry. The characters will then be imported as paths.
Step 5: Extrude Text in FreeCad
Next we need to create faces from the paths. to do this we select are character (is highlighted in green) and the select the Upgrade function.A good thing to do once this is done is to then select the Part workbench again, select you new faces and the click the Analyse Geometry for Errors icon.
If we do this with the characters we imported we get an error for one character which turns out to be X.
Now we haven’t as of yet found a way to fix this in our process, so advice is always welcome. The only way we found to deal with this was to go back to the Draft workbench and draw out the wire by hand using the Draft wire tool and the X as a stencil. We then deleted the original X. Because it’s an X this was relatively easy but we can easily see that for more complex and rounded shapes this could be harder.

It will bring up a window where you can increase the texts height and make the characters into a solid that can be cut out of our calibration cube.
Step 6: Positioning Text in FreeCad
So nearly there, we need to now position the text on the cube. We found that the key to this was being able to flip between planes (XY, XZ, YZ) it makes rotating the solids easier. You can find this by right clicking on the solids which brings upo the contextual menu.
So select the plane that you would like to move the solid in and then go back to the Draft workbench and use the rotate button. You will need to click on the rotate button, then click on a face of the object you wish to move and then click away from the object. The second click almost produces a handle by which you can rotate the object in the desired plane . Altering you perspective view so that you can see in only the plane you wish to move it in is a good idea, otherwise you will not rotate accurately. Both X & Y will need to be rotated, The X in the YZ plane and the Y in the YZ and the XY plane
Now to move it we have found the easiest way is to open the positional information for a particular object (on the data tab of the Combo view, left hand side), place the cursor in the entry for a particular axis and then use the mouses middle roller button to move it about in a particular plane, you may then want to enter in manually for fine tuning, or better still calculate what it should be.
We have done this quick and dirty, but you should really calculate you positions, we would certainly like to control our positioning and rotation of objects better so we will be looking into this further. But essentially after moving them around you should end up with a cube with the X, Y and Z positioned on the correct axis. The letters should just break the surface of the cube as you want to cut them out/engrave them..
Step 7: Engrave Text in Calibration Cube
The next step is quite straight forward as long as your solids have no errors. Go back to the Part workbench. Select the Cube and one of the the extruded faces. the click the Cut button. If all is fine you should then see an engraved letter on your cube.
When Freecad makes the cut it will create a new Cut object, for the next engraving you will need to select this new object and the next letter you want to cut out. If all goes according to plan you now have an Cube with X, Y and Z cut out of its respective axes
Step 8: Export .STL file from FreeCad
Lastly, go to File > Export and save as a .STL file. Thats it jobs done. Now you can open you file in your slicer software ready for 3D printing. In case you don’t want to go through the process yourself you can get the calibration cube model from our website. next you need to load it up into your Slicer software, we are using Slic3r via Repetier Host. We are going to print it at layer resolution of 0.1mm, with 30% infill using the Honeycomb infill. We are printing it with Sky Blue Ingeo PLA at 210°C hotend temperature with a 60°C print bed temperature on our Prusa i3 rework.
Step 8: 3D Print your calibration file
Press Run!
Step 9: calibrating your X, Y and Z steps per mm
To further calibrate your 3D printer print measure your printed cubes dimensions against the expected dimensions.
Once this is done you are able, if your 3D printer allows it, to adjust your Steps per mm in your printers firmware.
if:
e= expected dimension
o = observed dimension
s = current number of steps per mm
then:
(e/o) x s = your new number of steps per mm
If anybody has any tips or tricks to add to make this process a bit easier by all means get in touch or why not create an account and comment on our how to guide.