Skip to content

5. 3D scanning and printing

3Dprint

Overview of week 5 assignment

  1. Group assignment
    1. test the design rules for your 3D printer(s)
  2. Individual assignment
    1. design and 3D print an object (small, few cm3, limited by printer time) that could not be made subtractively
    2. 3D scan an object (and optionally print it)

1. Group assignment

For more information, see the Week 05: Group assignment page.

2. Indiidual assignment

A. 3D print

a. Grasshopper modeling

As I am interested in creating woven patterns, which are difficult to create subtractively, I used Grasshopper to create a 3D model with a lattice structure woven into the surface. Thanks to the diagonal pattern, it can be printed without supports.

gh_weave

Below are the steps for the Grasshopper definition (the Grasshopper file is available at the bottom of this page).

  1. Create a base surface
  2. Generate a list of points on the surface using Evaluate Surface
  3. Shift the points to make it diagonal using Shift List
  4. Sort the points alternately and move the points in the normal (or negative normal) direction of the surface using Dispatch, Flip Matrix, Move etc.
  5. Create curves using Interpolate curve from the points
  6. Array the curves using Polar Array and Mirror
  7. Create pipe using Pipe (I used Polygon and Sweep1 to minimize mesh data size)
  8. Create mesh, cut and join it into single mesh using Mesh Brep, Mesh Split and Mesh Join

b. 3D printing

After exporting the mesh, I imported it into BumbuStudio and sliced ​​it. Since this model has a small contact area, I added a brim (Others > Bed adhesion > Brim type > Outer brim only) to improve adhesion. Still, I found one part fell down.
a1mini

basket I printed it with PETG and probably because of temparature settings, it became little stringy.

3Dprint


B. 3D scan

I tried 3D scanner Cerality Scan. This week, Kannai's classmates and our instructor scanned each other using 3D scanners.

a. Creality CR-Scan Ferret Pro

Creality CR-Scan Ferret Pro: A compact wireless 3D scanner with anti-shake tracking, 0.1mm accuracy, and 24-bit full-color scanning. Scans black/metal objects without spray and works outdoors (<30,000 lux). Fast, easy to use, and portable (105g). Supports objects 15cm–2m in size.

3Dscan

  1. I downloaded Creality Scan, connected the scanner via USB and the scanner was automatically recognized. Initially, I had to allow external camera access.
    CrealityScan
  2. Start the scan with "New Project" and set the configuration.
    Object > Face, Feature > Texture, Accuracy > Hi-Quality, Disable Flat Base > No
    scan

    Note

    The generated mesh was quite heavy, so setting the precision lower would be easier to handle for most applications. Before scanning, required accuracy should be carefully set!

  3. Start scanning by clicking the green button on the right, distance to object is displayed by color; green is optimal (closer than I expected).

  4. Sometimes scanner lost track of position and I had to go back to already scanned part and start over
  5. Click the red button on the right to finish the scan. At this point the result is a point cloud. scan_process
  6. Click on "One-click process" to create a mesh from the point cloud. I used the default settings.
  7. Color mapping is also available once the mesh is created. OBJ files can be downloaded.

b. Post-processing - Voxelization

The resulting mesh files are very heavy (150-400MB) and not clean enough to be used for applications such as printing. So, I post-processed the OBJ files using Rhinoceros and Grasshopper, since it has excellent capabilities for handling mesh data.

Inspired by the post Three simple methods to stylize 3D models, I tried to convert the scan data to voxel for print using Grasshopper following the steps below.

  1. Import OBJ file into Rhino
  2. Reduce mesh polygon to faster handle (Mesh > Edit tools > Reduce mesh): 90% reduction still worked fine. gh_voxel
  3. Convert the mesh data to voxels using Grasshopper (ref: YouTube tutorial) following the steps below. gh
    1. Create boundingbox for the mesh
    2. Create small boxes (voxel) inside the boundingbox
    3. Determine if the each box is collides with the mesh
    4. Keep the voxels that collide and delete the rest
    5. Join voxels as single mesh

Changing the voxel size

I also downloaded the mesh data of a mountain and placed voxelized data of all of three Kannai's students and our instructor Tamiya-san, as if we are curved in a mountain.

3. Files

Afterthoughts

  • Grasshopper and 3D printing... that's a combination.
  • I've been interested in how digital things became analog, but the reverse is also interesting. It will be interesting to scan natural or historical objects.