Week 5 - 3D Scanning And Printing

Assignment

Individual assignment

design and 3D print an object (small, few cm) that could not be made subtractively

3D scan an object (and optionally print it)

Group assignment

  • test the design rules for your 3D printer(s)

Link to group page

Process

Preparing a 3D model

After some not so satisfying results in the printing of a test model for the group assignment, I decided to prepare a simple shape that could however show the proprieties of the 3D printer at our disposal, an Ultimaker 2.

To do so, I sketched on Onshape the parametric design of a typical funnel. This shape, although simple, presents few peculiarities that make it particurarly interesting for 3D printing tests:

  • It features wide inner areas that couldn’t be milled subractively with a simple 3-axis CNC machine.
  • It has a lot of overhang surface
  • It is made mostly of round shapes of variable diameters
  • It has a steep shape in heigth.
  • It has thin walls

I’ve set up all of its measures as variables, since I wanted to make different models to eventually print them and see their differences.

I’ve explained the process of making a 3D model on Onshape during a previous assignment, in addition to those techniques I used a function called Revolve that allows to rotate a sketch on an axis and make a 3D rounded shape out of it.

Onshape Revolve

Once the model was finished, I prompted indicative measures that I considered appropriate for the printer. To begin I wanted to create a larger cone that was not too wide, hence giving too much overhanging surface to print on, and a material thickness that could fit with the specifications of the printer. In the end, this first model would result 7.7 cm wide, 5.5 cm tall and 0.1 cm thick.

First Funnel Onshape

After that I created another model, but with slightly different proportions.

This time, I’ve given an higher degree of overhang by making the larger cone more wide and short and I wanted to try to a thinner thickness, to see if the printer could manage a smaller scale with oblique surfaces. This second model ended up being 8.1 cm wide, 5.8 cm tall and thick 0.8 mm thick.

Second Funnel Onshape

From STL model to 3D printer format

From Onshape I downloaded both models as STL files, the most common extension for 3D designs.

Then, I proceeded to upload them into Ultimaker Cura, which is a very powerful and complete tool to create printing files that are suitable for almost every 3D printer on the market.

What this software does is essentially to transform the given 3D shape into a stack of layers and coordinates that are followed by the 3D printer along with several other parameters that handle the many complexities of 3D printing, such as the speed of the noozle, the heat of the extruder, the height of the layers, the infill proprieties, etc.

Since I’m a true beginner in this field, I didn’t venture myself too much in the confusing world of all this variables, and I just set up those that I considered optimal for a most efficient printing of my funnels.

After choosing the environmnent related to our printer, I’ve chosen a Fine printing profile, which already sets up for you most of variables (most importantly Layer Height to 0.1 mm, Print Speed at 60 mm/s), then I personally set a brim of 4 mm in the Build Plate Adhesion section (I noticed in other prints that this parameter is a bit of overrated and actually not even having it can be just fine in many regular prints) and set the Infill value to 100%. I made this former decision because my models are so thin that a grid for an infill would be in the best case useless (perhaps even more time-consuming), in the worst case it could deform the shape and ruin the print.

first funnel cura

second funnel cura

After setting up these values, by pushing the Save to File button, I exported the files with a gcode extension, making them ready for the printer.

Printing

The printing process at first involved cleansing the building plate, calibrating it and ensuring that the extruder was working fine, as done in the [group assignment](). After this preparation, I just uploaded the gcode file in a SD card and loaded it in the Ultimaker 2 printer at our disposal.

printer start

funnel print 1

funnel print 2

The printing process required almost 1 hour and a half for each model, which I regarded as acceptable for prints of those size and resolutions.

Scanning

For the scanning of a 3D object, I’ve opted to use Photoscan installed in our lab workstation, since my macbook is a bit outdated and low on requirements for these tasks.

The workflow of this software is quite simple and straightforward, essentially you just have to approve a process after another and if you prompt a good set of pictures in the first place it’s really easy to obtain an acceptable model. However, every step can have its peculiarities that might be important to handle, especially if you get not optimal result in any stage, and I found many difficulties that made me fail many times.

To begin, you have to take several pictures of your model of choice, all from different angles ideally making a circle around it. In the end, I wanted to try something very peculiar to see if the software was powerful enough, so I’ve chosen a piece of wood I found in a beach in Calabria which has a fun shape and is full of holes and crevices.

piece of wood

Not having the most little knowledge of photography, this step required me a lot of effort, and I’ve noticed that most of the job to make a proper scanning is in this task. In the lab, we have a Nikon D7200 camera which I fully automated settings, and the few tricks I’ve used were to find an open-air spot with plenty of diffuse light and be sure that the piece of wood was not too shadowy from every angle.

After making few rounds of pictures around it, I uploaded the batch of jpg files inside the pc and deleted those that were out of focus, out of frame or too dark, resulting a total of 44 pictures.

Then I turned on Photoscan and uploaded the whole folder of pictures.

Once the pictures were uploaded I proceeded to start the Align photos... command from the Chunk element in the left column, which automatically generates a 3D environment positioning all the pictures it understands in their proper location. All the following commands will be initiated from this chunk, which is the way Photoscan identifies its environments.

align photos

This task is quite hectic for the CPU and it can take a long time (especially if you require the software to make some special assumptions, like an high point count).

tie points

After that, I obtained my tie point set in which I could already see the general vision of the 3D environment. It is easy for the program to render also objects and surfaces that are not really intended in your ideas, becasue it might be able to obtain also background elements. This is not a problem, actually it’s a sign that the software worked well and taking pictures in a too blank background might result in worse models, since the software isn’t able to identify points of reference.

In any case, it is possible to remove many of the useless points by simply selecting and erasing them.

removing points

Another useful technique is to reduce the rendering box around the model so that future processes don’t take in consideration useless on empty areas.

box

This operations can be done even during other stages of the photogrammetry process, but the earlier you polish your environment the less it takes for the other processes to complete and the result can also improve.

The next step was to identify the dense cloud of the tie points, so to interpolate the space in between the various pictures.

build cloud

After this process I had a more detailed and reliable 3D model of the scan, that helped me understand the workflow was going well.

dense cloud

The next and final step would be the creation of the mesh, which is the proper 3D model of our scan, but before that I wanted to polish even more the environment by removing all the unwanted and unnecessary points, like the box surface below the wood and some flawed points floating around the model. I did this once again by selecting and erasing the unwanted points and reducing the box.

reducing points

reducing box

It was then moment to generate the mesh, always through the commands in the chunk menu.

build mesh

Failures

Although in the last paragraph I’ve exposed a linear and succesful workflow, in fact I failed maaaaany times before obtaining a proper result. Most of the time the problem was in the pictures I shot, which were either too dark or totally inappropriate for a photogrammetry process (even more, at first I used the camera on my phone which is of really scarce quality). The following are few snapshots of these failures.

polished face

In this case, the pictures I took were too dark, and actually I didn’t took all the necessary angles, resulting in many unclosed areas and out of references pcitures.

markers on notebook

failed notebook

In this other case, after seeing that the results were poor, I adopted the technique of placing marker, meaning few identical points selected among several pictures to help the software in the align process. Even though it helped a little, the result was still quite horrible, probably still because of the poor pictures.

failed mesh

The following snapshot is about an adhesive tape which was almost good, but I took the pictures almost at dusk, hence the surface were very badly rendered.

tape

Perhaps using a mesh modeling software could have helped in obtaining a proper model.

Result

Of the two models printed one resulted very well, instead the other had some flaws. This is the good one, whose making process I described first, with the Onshape link and STL file following.

first funnel 1

first funnel 2

Funnel 1 STL file

Except for some minor printing flaws that I easily removed with a cutter, along with the small brim, the whole surface of the model is smooth and regular and it feels robust in hand.

These are pictures of the second model, the one with less thickness and more overhang surface.

second funnel 1

second funnel 2

second funnel 3

Funnel 2 STL file

Especially when on backlight, it’s easy to see tiny printing holes in the surface of the cones which basically ruin the whole purpose of a funnel. This model is also not so robust and feels a bit fragile and unsteady if manipulated. This flawed model probably resulted like this not because of lack of printing resolution from the machine (although it was my scope to find if a model would be less successful that the other), but because of erroneous printing setup from Cura. Perhaps, a finer layer height and slower noozle speed could have resulted in a better print, as well as a different material (the thread used was old and often prone to error in other prints).

The following is the link to the parametric model of the funnel on Onshape:

Funnel Onshape link

Regarding the scanning, the mesh generation process resulted in a very pretty result both from the mesh and the texture point of views.

mesh

textured mesh

The only flaw is some open spaces left in the bottom of the mesh, that can be easily fixed with a mesh modeling software.

The following are the links to the resulted STL file and the Photoscan project files.

Wood STL file

Wood Photoscan project files

Gist & Further development

Although the results of my 3d printed funnel weren’t really useful (it’s much easier, cheaper and more reliable to just go and buy a funnel in a store) the whole process was apt to learn how to use new and old tools.

Specifically, Cura was a nice discover since, aside from 3D printing setup, it is a very versatile 3D viewer and offers many useful informations about models and their composition. Furthermore, making up my own 3D model was a good way to train myself on Onshape and parametric modeling in general. Surely, I’m going to need to print several parts for my final projects, hence I better understand more what most of the underlying technologies means and how I can manipulate it to better obtain what I expect from my prints.

Scanning with the photogrammetry technique was not an easy task, not that much for the softwares involved, but for creating the perfect environment of where to take pictures of the subject to be scanned. However, even thouhg it might not be that useful for my final project, this is a topic that I really want to delve more into, because I believe it can be very useful in many applications, like making 3D models for any kind of environment (graphic design, 3D navigation, VR, AR, MR).

Tools and software used