05 - 3d printing and scanning

This week focusses on 3d scanning and 3d printing.


The assignments for this week are two-fold:

  • Group assignment

    • Test the design rules for your printer(s)
    • Document your work and explain what are the limits of your printer(s) (in a group or individually)
  • Individual assignment:

    • Design and 3D print an object (small, few cm3, limited by printer time) that could not be easily made subtractively
    • 3D scan an object, try to prepare it for printing (and optionally print it)


What I think I already know

  • I have a Prusa i3 Mk3s at home for “day-to-day” printing. I also have a wooden Ultimaker 1 from 2011.

What I want to learn

  • Since the node has an Ultimaker 2+, I am curious to see the improvements between the 1 (kit version) and the 2+ (pre-assembled version).

What I learned

  • The Prusa is a great, almost fire-and-forget printer.
  • 3d scanning is not the point-and-click most manufacturers would like you to believe it is.

Project - 3d printing

3d printing is an additive technology. That means that material is added to create a model. Compared to for example CNC milling, where material is removed to create a model.
There are a number of different techniques in 3d printing. Most accessible are Fused Deposition Modelling (FDM) and Stereolithography (SLA) desktop printers.

The group project will get us up to speed with the operation of the FDM 3d printer. Since the node has two types, it will also provide a nice comparison between them.
3d printers

Machine - Prusa i3 Mk3s

Prusa is a Czech 3d printer company founded by Josef Prusa. It has its roots in the RepRap printer models. Prusa actively develops and improves on his models and shares his designs as open hardware and open software. His printer-farm actually produce the parts for the printers he sells, so coming close to Adrian Bowyer’s idea of self-replicating machines.
The i3 Mk3s is Prusa’s latest iteration.

Machine - Ultimaker 2+

Ultimaker is a Dutch 3d printer company that has its roots it the ProtoSpace hackerspace in Utrecht \o/. THey started by selling wooden kits that have to be assembled. This is the best way of learning the functioning, limits and extendibility of your printer.
The Ultimaker 2 was their first pre-assembled machine, but still using the design of the original version. I will focus mostly on this printer for the group assignment.


Prusa i3 Mk3s Ultimaker 2+
Build year 2019 2013
Head movement X and Z X and Y
Gantry movement Y Z
Filament feed direct feed bowden feed
Filament diameter 1.75 mm 2.85 mm
Default nozzle size 0.4 mm 0.4 mm
Build type Kit Pre-assembled

Because the Ultimaker uses a Bowden tube for feeding the filament, the head can be very light. It only needs to contain the heater and fans. This allows it to be fast and precise. I would like to find out if this is reflected in print-speed and accuracy.
Ultimaker X-Y frame
Contrary to the RepRap-lineage, the Ultimaker moves the head in an X/Y plane and the printbed will be lowered for the Z axis.
Ultimaker head

Operating the Ultimaker

Bed leveling

First layer heightA gppd first layer of filament is crucial for a proper print. If the first layer is not right, it can lead to problems like parts detaching from the bed before the print is done. The printer will then print in the air and a nice mess of filament-spaghetti is the result.
The printbed is attached to the printer using three screws (and three points define a plane). The printer can print a reference layer that you can use to level the bed. A proper first layer should have slightly squashed lines of filament. If they are too round, they will not stick to the printbed. If they are too flat, they will bee too thick on the sides.

Feeding the filament

bowden engine The Ultimaker uses a bowden tube. This means that the filament is pushed from the frame through a tube (the bowden tube) into the printhead. This is similar to the functioning of the cables in the brake of a bike or parking brake of a car.
The filament is fed through two wheels that grab it and push it into the tube. To insert the filament, you briefly lift the round lever to move the two wheels apart, so they will not block the path.
The round button on the front of the printer will let you select the various options in the printer’s menu.

After inserting the filament, it has to be loaded in the printerhead. This is done by selecting the Material > Load option. You have to specify the material type, as this will determine how hot the printerhead should be when receiving the material. A too cold or too hot printerhead can damage the head and/or the filament, resulting in failed prints.
Ultimaker operation

Loading the design

The designs are prepared with Ultimaker’s Cura software. This takes a 3d model and slices it into layers that can be printed on top of each other by the printer. This software is therefor typically called a “slicer”.
In the slicer, you can specify the layer height (for the balance between resolution and printing time), the material (for the correct heating of the printerhead and printbed) and a number of other parameters.
The generated slices are then put on an SD card and loaded into the printer.
Ultimaker initial time estimate
The printer will display the estimated print time.


During printing, the printer will estimate the time remaining. Luckily it does a horrible job at this, so the print finished in the predicted 3 hours.
Ultimaker time estimate


Measuring side by side
Measuring PrusaMeasuring Ultimaker
Both printers are pretty accurate. The Ultimaker has a bit more problems with overhang. The Prusa only struggles with the final 80% overhang. Because FDM printing relies on the lower layers to provide support for the upper layers, the printer cannot start printing in empty air. When printing too large overhangs, the filament is not supported by lower layers of filament, so it will start to droop.

The Ultimaker had an additional issue that not-supported layers (layers not well attached to lower layers), will start to curl up. This did not affect the print much, as these were the final layers of the model. If this would have happened at the start, inaccuracies can propagate throughout the model.

The Ultimaker prints slightly thicker lines. Both nozzles are stated as 0.4 mm, but the details in the bridging test on the Ultimaker are clearly thicker.


The individual assignment is to design a model that cannot be created with substractive methods.
I decided to create an enclosed movable object that has to be created in one go. It is printed on my Prusa i3 Mk3s at home. The five holes in the inner and outer parts are purely decorative.
The inner part is curved and fits into the inverted curve of the outer part. This makes it printable as the parts are not touching, a more steady platform and a more stable stream of scansbut no CNC mill can create this curved slot between the parts. QED.
FreeCAD FDM FTW inner objectFreeCAD FDM FTW outer object
In the picture on the left, you see the inner body with its curved outer edge. You can also see the sketch that is used to create the outer body. In the picture on the right, you see the revolution of the sketch, forming the outer body.

< tada.wav >

Project files

The FreeCAD FDM-FTW project file can be found here

Project - 3d scanning

The Waag node has a Sense 3d scanner. This is a handheld scanner that is connected to a computer. The scanner takes pictures and measures distances to objects. By moving the scanner around the object and collecting pictures and measurements from different angles, software can combine these in a 3d model of the object.

Scanning...Scanning result

The scanner can be quite finnicky in keeping track what parts of the objects have been scanned and if every surface has been covered. This depends on the surface of the object, the time spend and the amount of coffee the person holding the scanner has had. #CafeineShakes

I tried scanning my hand, but using your other hand to move the scanner around your hand is tricky.
Therefor I used my leg.

Moving the scanner slowly around your leg when you are sitting down is much easier and you can keep a greater distance with the scanner. This helps the scanner to better sense the shift in position when moving it.
The pictures below show the surfaces as recognized by the scanner and the constructed 3d model.
3d scanned parts3d scanned result
The colors of the surfaces on the left picture are used to add color to the 3d model on the right picture, since most (older) 3d object file formats have no place for color information.

I took this 3d model and printed it. 3d scan printed

The scanner creates an .stl file that can be imported in a 3d printer’s slicer. I used PrusaSlicer for this.
As you can see in the top-right picture of my leg, the scan software created a triangle shape where the floor is. I think it will do this to make the floor (of which it scanned only the top surface) into a solid body that can be exported. Surfaces without a solid body cannot exist in an .stl file.
In PrusaSlicer I rotated the leg and lowered it on the build plate, so the triangular floor part was below the printbed. The slicer then removed this part and the printer went on its merry way.

Project files

The 3d scan file can be found here here (zipped).


What went right

  • The scanning was really fun, but a lot of work. The group also exchanged experiences with scanning apps on smartphones. Current smartphones are extremely powerful and have very accurate sensors inside. An app like Qlone can result in very detailed scans.

What went wrong and how did I fix it

  • When the Ultimaker is finished printing, the printbed is still very warm and the PLA still somewhat soft. Using a spatula to remove the model has to be done carefully, or you might warp the model.

What would I do differently next time

  • I would try to rotate the 3d object on a table instead of moving the scanner around it. This will result in more steady scans for the software to work with.