Skip to content

Week 5. 3D Scanning and Printing

Group Assignment:

Link to Group assignment: 3D Group Assignment

Takeaways:

  1. Stringing can occur and this can typically be controlled by reducing the speed or temperature.
  2. The Prusa’s self levelling capabilities makes it so much more user friendly than the Creality Ender-3 pro

Individual Assignments:

3D printing:

Hero Shot:

Alt text

For the Design aspect for this week, I wanted to learn a new software so I went ahead and downloaded Rhino. Since it is Rhino 7, Grasshopper came in-built. I decided to install some important plugin packages. To do this, I went into tools -> package manager -> under online -> Searched what I wanted and installed them.

Alt text

The additional plugins I installed were: WeaverBird and LunchBox.

Alt text

I went through the tutorials provided in Rhino and then began brainstorming what I wanted.

To begin with, I wanted to learn Rhino and grasshopper because I was intrigued by generating lattice and nested structures (typically seen in architecture). This gave me an idea and for this week I wanted to 3D print a nested 3D contour map. With the nesting making the model impossible to make subtractively.

Design, Modelling and Printing

This was the tutorial that gave me the inspiration and help for the structure: parameterized lattice

First I made the three curves (with interpCrv) and used the ctrl button to edit the points to make the curves 3 dimensional in nature.

Alt text

Then I used the loft (typed loft in command line) function to create a surface from the three curves. After this is where the Grasshopper built-in extension comes into play. To activate grasshopper, I typed grasshopper in the command line.

Grasshopper Steps

In Grasshopper, I went through the following steps:

  1. I double clicked in grasshopper and added a surface parameter.
  2. Right clicked the added surface parameter, selected set one surface and selected my surface in Rhino
  3. From the Lunchbox tab, I selected a Space Truss Structure and connected the surface to it.
  4. right clicked in grasshopoer Added numbers to the u and v divisions of the trusses and to the depth of the truss
  5. right clicked and added a curve parameter as an outlet for the new truss structure. Connected the two primary lines and web lines to the curve.
  6. from the subD tool bar, I added the multi-pipe to the schematic. This function creates pipes as the name suggests.
  7. I connected the curve parameter to the new multi-pipe, and added number sliders to control the node size a strut size of the multi pipe.
  8. right clicked and added a custom preview, connected the multi pipe to the geometry to view the model.
  9. to create mesh out of the structure, from the subD toolbar, I selected mesh from subD and connected the multi pipe to this.
  10. To further smoothen the structure, from the WeaverBird plugin, I added the Catmull-clark sub division parameter from under the subD section of WeaverBird.
  11. I connected the mesh to this para meter and added a number slider to control the level.

    This is where I struggled. as a new user of Rhino and Grasshopper I wasn’t aware that I had to bake my grasshopper model for it to form in Rhino (to export as STL). I kept trying to export as STL but I kept getting a smooth surface. Finally after much research, I realized I had to bake my mode after which it all worked out well.

  12. I right clicked my last parameter in Grasshopper and baked it.

  13. Once the model was successfully baked into Rhino, I saved the model as an STL.

Alt text

3D Printing (PrusaSlicer)

Now that I had my STL file, I needed a slicer to convert my STL (stereolithography) file into gcode for the 3D printer to understand. Since we have the Prusa I3 mk3s+ 3d printer in the lab, I downloaded the Prusa Slicer as my slicer of choice.

Steps I used in the slicer:

  1. Import the STL file
  2. Rescale the model according ensuring the lock button was on to maintain aspect ratio
  3. Selected PLA as my material
  4. Selected the Prusa i3 mk3s+ as the printer so the slicer communicates the right settings (nozzle temp, bed temp etc) to the printer.
  5. I selected an infill of 10% since I didn’t need the model to have high strength
  6. I chose the 0.10 mm DETAIL option for the print settings layer height however, since my model was intricate and I wanted it to come out well.
  7. Hit Slice in the bottom right.
  8. You will be able to see the print time and how much time is taken by the different parts (support etc)
  9. Initially, I tried printing in the orientation shown in th picture below without support. But it failed. So I flipped the model, and added supports to the base plate.

    Alt text

    Alt text

  10. Once I was happy with the slice, I hit export G-code on the bottom right, saved the g-code on an SD card and inserted it into the 3D printer.

  11. As soon as you enter the SD card, its contents come up and you can begin the print by going to the gcode (typically most recent will be the first) and hitting the knob on the printer.

    Alt text

    Alt text

Done print: Alt text

A mistake I made was that the support material was over whelming and was quite hard to remove so I spent almost an hour removing it. A lesson learnt the hard way.

Alt text

Alt text

I was happy with the result though and although the resolution of the pictures are bad, I think you can see the nesting which came out very well!

Alt text


(additional) Second design and print Rhino

After completing the design and print for my individual assignment, I wanted to mess around with rhino + grasshopper some more so I design and printed the following multi-pipe cylinder:

Alt text

This time I didn’t use supports and just added a brim to the design.

Alt text

Final Look:

Alt text

Bit of stringing issues, but since I did the print over night I wasn’t there to observe the print.


Scanning

We have an Artec EVA scanner in the lab, and have used it before however, the computer with a GPU powerful enough to connect to it has malfunctioned so when we try using the scanner on other pcs without gpus, it is near impossible to use (can’t delete unwanted/extra elements/background).

Due to this, I went ahead and used the Kiri Engine 3D Scanner, which is a phone cloud-based 3D scanner that works with inputting photographs.

How to use:

  1. Download the app from the app store
  2. Hit the + Sign in the app and select take photos Alt text Alt text
  3. Take as many photos of your subject as you can (max 70), trying to capture as many angles as possible.
  4. Try and have a white background/backdrop (I didn’t follow this for my first scan. A mistake)
  5. Upload the photos, the app will then create a render with the provided photos. This step takes a while.
  6. Once the render is complete, you can check your scan, you can crop the scan and even add more pictures if you see any deficiencies in your render. (this is very useful)
  7. You can export the render as an STL and edit it on another software of your choice.

Initial Try

I went ahead and scanned a shoe (apologies for the dirty shoe haha) but it was just to try out the app. The scan worked:

Alt text Alt text

Final Model

After playing around with Kiri after my first try, I then scanned a model that I was actually interested in.

The model: Alt text

This time, I made sure to have a clear white background for ease of post processing since Kiri scans the background as well.

After the scan:

Alt text

This was the model before cropping. I hit the crop icon on the top right and then the following crop interface shows up where I cropped the background.

Alt text

After Cropping I hit apply and I go the final model which I was happy with.

Alt text

Then I exported the model as n obj file, since I was going to import it into GrabCAD for printing in the Stratasys J55. Since we still cannot use the printer due to expired material I will not be printing it this time. But wanted to set up the model in GrabCAD.

Alt text

I ensured to select the Stratasys J55 prime for the template after which the bed changes to the circular shape of the J55. Then I scaled my object and made sure it fit in the bounds of the work bed.


Design Files:

Rhino 1