Skip to content

3D scanning and printing

3D print

3D scan sphaeroptica

Summary

This week, we visit the imagery lab of a museum, I designed a fidget toy and I scanned a chair.

IRSN imaging lab visit

Thanks to Nicolas, we had the chance to visit the Natural Sciences Royal institute (IRSN).
It has a department dedicated to 2D and 3D imaging. Their mission is to scan the institute's collections: insects, fossils, archeological artifacts...

Research uses

Researchers can use the models:

  • to access specimens from all over the world.
  • to take precise measurements on objects with complicated shapes (e.g. bones), small specimens (insects) or fragile objects (fossils).
  • to compare objects geometry. Fro example, biologists make morphometric analysis
  • to virtually reconstruct objects, such as potteries, based on fragments. A 3D model of the fragments can be useful both to "solve the puzzle" and to recreate the missing parts.

Other uses

3D models are also useful to give access to the specimens to a wider audience through virtual museums.
Obviously, they can be 3D-printed to be exposed in museums or to replace specimens that are used for destructive analysis, such as Radiocarbon dating.

Furthermore, they are digital back-ups of unique specimens.

3D scanners

They have several commercial 3D scanners, covering different needs:

  • Scanners on tripods for medium size objects, using structured light
  • Hand-held scanners for bigger objects and scans during study trips
  • Resolution needed, from 100µm down to 10µm

Artec spider

Digital microscopy

Archeologists makes Use-wear analysis (or traceology analysis) to understands how prehistorical tools were made and/or how they were used.
This consists in the study of the wear traces left on these tools. These traces can be microscopic.

The IRSN developed a method to scan 3D object with a digital microscope (Keyence) designed for surface study of planar objects.
They uses a home-made post-processing to reconstruct a 3D object from several 2D scan, with a 5µm resolution.

Photogrammetry

They have several home-made photogrammetry set-ups, using high-quality cameras, diffused light to have a good illumination without bright reflection.

Multispectral setup

Here is a setup for medium size object:

photogrammetry setup 1 photogrammetry setup 2

It can use different light sources to have multispectral scans. That can be useful to highlight details using the right color, or details that can only be seen with infrared or ultraviolet light.
They also use polarized light as another way to highlight details

SCANT setup

The SCANT was developed to scan insects, using a technique called focus stacking.

3D scan gives bad results gives poor results on insects: they have too many small details (like hairs), shinny surfaces and transparent parts. The SCANT is an alternative: it takes series of images, from different point of views (as in photogrammetry) and a viewer (more on that below) allows to visualize the subject in a 3D environment, as if it was under a microscope.

For this application, the camera must have a high magnification, to be able to see the finer details of the specimen.
Hence, it also have a short depth of field, meaning that only a small portion of the image will be in focus.

Focus stacking consists in taking a series of images of the same object at different focus distances.
each image has a different in-focus region. They are combined to create an image were the entire specimen is in focus.

scant1

The camera mounted on a rail, allowing it move back and forth.
The focus distance is determined by the camera position on the rail.
The sphere contains the light sources.
The specimen is placed at the center of the sphere, on an rotating axis.
At rest, the axis is vertical. It can be inclined by the circular mount that can be seen around the sphere.
Thanks to this mechanism, the specimen can rotate around the vertical axis and the horizontal axis perpendicular to the camera rail.
This setup is able to take a series of 100 images in 3 seconds, resulting in an image with a sub-micron resolution.

scant2

Viewers

The institute developed viewers used by researchers to work on the scans.

Examples can be seen on the Orthanc website:

This viewer was developed to use the SCANT scans On the left, there is the main view, where you can zoom in and out.
On the right, there is

  • the camera viewer, that allows the user to move the point of view
  • shortcuts to predefined views
  • a list of landmarks that can be manually added by the user. They can be used to measure distances on the specimen.

Other viewers examples can be accessed with the Multimedia and Viewers menu:

3D printing

I already have experience in 3D printing, as I have a Prusa Mini at home.
It has a 0.4mm extruder.
I used PrusaSlicer to generate the gcode files, as it is designed to be used with the Prusa printers.
Its printing volume is 180 x 180 x 180 mm
It can print layer from 0,05 mm to 0,25 mm
There is an automatic bed leveling and end of filament detection

Prusa Mini

Performance test

I started this week assignment by printing a test piece, found on Thingiverse.
I used the nominal parameters for a 0.2mm layer print:

test piece

As shown on the screenshot, PrusaSlicer gave me a warning message about the stability of the print. As the goal is to test the printer performances, I ignored this message.
The result was quite good: the only problematic part that doesn't print well are the "towers" et the bottom left of the photo: there is some "stringing" between them and the tallest one has some "bumps" at its top.

Printed test piece

Twisty fidget toy

I decided to design a fidget toy, inspired by this example I found on Thingiverse.
It has an intricate shape, that is difficult to achieve by subtractive manufacturing and is an opportunity for me to try Openscad.

twisty-fidget.scad
$fn=50;     // controls smoothness of curves
tol = 0.5;  // tolerance between the 2 pieces
// pyramid parameters
radius = 15;
height = 60;

// helix parameters
spiralNb = 6;             // Nb of spirals
spiralWidth = radius/10;  // Spiral radius

// uncomment this line to separate the 2 pieces
// translate([radius, radius, 0]) 
screw(height, radius, spiralWidth/2, tol);  // generate the "screw" part
base(height, radius, spiralWidth/2, tol);   // generate the "base" part


module pyramid(height, baseRadius, topRadius) {
    cylinder(height, radius, topRadius, $fn=12);
}


module helix(height, radius, tol) {
    linear_extrude(height, center=false, convexity=10, twist=180)
    offset(tol)
    union() {
    for (i =[1:spiralNb]) {
        // create evenly distributed circles around the origin
        rotate(a=i*(360/spiralNb))
        translate([radius/2, 0, 0])
        circle(r = spiralWidth);
        // create beams to connect the circles to the origin
        rotate(a=i*(360/spiralNb))
        translate([radius/4, 0, 0])
        square([radius/2, 2*spiralWidth], true);
    };
    // create a circle at the origin to be sure that all beams are well connected
    circle(r = spiralWidth);
    }
}


module base(height, baseRadius, topRadius, tol) {
    color("blue")
    intersection() {
    difference() {
        pyramid(height, baseRadius, topRadius);
        helix(height, baseRadius, tol/2);
    };
    translate([-radius, -radius, 0]) cube([2*radius, 2*radius, 0.7*height]);
    }
}


module screw(height, baseRadius, topRadius, tol) {
    color("green")
    intersection() {
    pyramid(height, baseRadius, topRadius);
    helix(height, baseRadius, -tol/2);
    }
}  

The openscad code first creates an "asterisk" 2D shape.
This shape is extruded with a twist, to create an "helix".
The cylinder function allows to create a pyramid with a given number of faces.
The screw part of the fidget is the intersection of the helix and the pyramid.
The base part of the fidget is the difference between the pyramid and the helix.
The screw fits inside the base and the fidget should be printable in this configuration.

asterisk

helix

pyramid

screw

pyramid

fidget

I printed it on the Prusa Mini.
After slicing, PrusaSlicer warns me that bed adhesion was too small. The screw base has indeed a small area, compared to its height.
I added a brim that solved this problem.

adhesion warning

fidget-slicer

I printed two fidgets in different colors. Both prints went well.
The two pieces sticked together at first, but a gentle pull easily separated them.

sticked separated

3D scan

Our fab lab has a Creality Ferret scanner.
It is a cheap portable scanner, which means you have to move around the object to scan the different angles and send the data to a computer. The associated application is CrealityScan. It can be downloaded freely on Creality's website.
The Ferret scanner can be connected to a PC using USB or its own WiFi network.
I used the last option as it gives more freedom to move the scanner around the object to scan.

Ferret scanner

I used it to scan a 3D printed chair I found in the fab lab:

scanned chair

During my first try, I moved the scanner too quickly around the chair. The result was a "misalignment" in the scanning process:

first fail

I started a new scan, moving slowly:

raw scan

I had to manually remove faulty points (as the ones at the right of the chair on the image aboVe).
Crealityscan has an automated tool to post-process the scan ad produce a mesh:

mesh

We can see that there are holes in the resulting surface: blue is the external face and yellow is the internal face.
If the scan was perfect, we shouldn't see any yellow.

The last step was to add texture to the surface:

textured scan

We can see that something went wrong: the texture on the back of the chair is an image of the buildings across the street.