Assignment 5: 3D Scanning And Printing

Limits of 3d printer(Ultimaker2).

There are vast possibilities 3D printing offers which the subtractive manufacturing processes can not offer. Since the model is built layer by layer lot of interesting possibilities arise from the physics of building things layer by layer. such as the ability to build a complete 3d shape without blindspot as compared to 2.5D capability of conventional milling process, interlocking feaures, true hollow objects, nested objects etc. Different 3d prining techniques are able to offer different solutions and capability to create complex geometry. We have an Ultimaker 2 in our lab which works on FDM technique. Even though possibilities exists there are cotriants and boundaries this technique and machine offer us. We used the testfile stl downloaded from thingiverse.com from the link http://www.thingiverse.com/thing:1363023 and tried to print it on our printer with the following settings.

layer height 0.2
speed 50
no support
no platform adhesion methods

testfile

The author points out the following criteria and features to be tested. My conclusions follow.

01 Nut, Size M4 Nut should fit perfectly
 
02 Wave, rounded print.
The rounded print didnt come at high definition. The curves didnt come that well and look flattened.
![](curves.jpg)
03 Star, Sharp Edges.
Not that sharp.
04 Name, Complex Shapes
Struggled with sharpness again.
05 Holes, Size 3, 4, 5 mm
Came out nicely. Measured 2.8,3.74,4.7
06 minimal Distance: 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7 mm
07 Z height: 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1 mm
08 Wall Thickness: 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7 mm
This isnt actually measuring wall thickness, it is measuring the slot thickness. In order to see what the slots measure I decided to use a paper. The thickness of the paper was measure as 0.07 from vernier. I found it hard to slide into the 0.1 mm slot. This can happen due to imperfect formation of the slots as well. If you fold the sheet then you can get 0.14 mm. This did go smoothly into the slot of 0.2mm but from the top. The bottom area was deformed and didnt maintain consistent shape. The twice folded sheet giving paper thicknessx4 also slid into the 0.2 mm slot slightly.This might be because the paper is slightly compressible and the plastic pliable. It went with lesser friction in 0.3mm slot.  
09 Bridge Print: 2, 4, 8, 16 mm
The bukling is becomes prominent 8 mm onwards.
10 Sphere, Rounded Print 4.8mm height
Measured 3.7 mm from 3d printed plain and 6mm from ground. The height came out unreliable for the spherical part.
11 Sphere Mix, 7 mm height
Measures 7.08 from ground
12 Pyramide, 7 mm height
measured 6.9
13 Overhang: 25, 30, 35, 40, 45, 50, 55, 60, 65, 70°
The longer overhangs produced bad results in general and angles with lesser than 45 degrees overhang gave bad results even when in shorter category.
14 Warp, does it bend?
no warp experienced
15 3D Print Font, optimized for 3D printing
I'm guessing these are the lettering embossed to label the overhangs. They have either horizontal or vertical features only.
They have come out well.
16 Surface, Flatness
Surface is good and the height varies only by 0.02mm in different areas giving good flatness results.
17 Size, 100 x 100mm x 23.83 (10mm width)
This must be a mistake, It measures 91.56x91.3x23.4
18 Spike, minimum Layer Time, 21 mm height from Bottom (include Baseplate)
17.4, so spiky features shows some problem.
19 Hole in Wall, 4 mm diameter, check for proper print
3.9 horizontally and 3.7 vertically due to bulging overhang.
20 Raft Test, raft should be just under the model
No raft
21 Retract Travel, check retract settings for longer travel
works fine.

3d Scanning(Photogrametry and Contact probing)

3D scanning tools and creation and editing solutions are not new to me but its the first I am going to try to use them in a more serious fashion.

Visual SFM(VSFM)(Photogrametry)

I found this when I was searching for open-source alternative for autodesk catch. This does pretty much the same job as autodesk catch. Here is an interesting video with instructions on how to use it.
https://www.youtube.com/watch?v=D6eqW6yk50k
https://www.youtube.com/watch?v=V4iBb_j6k_g

I installed VSFM on windows based on the instructions given in http://ccwu.me/vsfm/install.html.
The basic idea is to get a lot of pictures each from a different of angle, run a image feature detection algorithm, match the features from different images and make relations, guess the angles of the camera and the distance of the objects and features from the camera from the pictures used and try to put together all of them in a point cloud that satisfies the constraints and guesses.

Fot this experiment I'm going to attampt to scan an electric kettel.


Tips - Shiny or transparent objects dont work well with this method. You own shadows can cause confusion for algorithm so taking it under bright lighting conditions is good(lighting directly shown to the object taking shadows away from the photographing space, the lesser difference in individual angles the better(in case you are taking a video, move slow), Symmetrical surfaces without any features to distinguish each area are not processed well for example a plain colored cylinder, in order to solve this try to keep markers around the object or draw something on the object itself, I drew some sketches on the plain faces of an electric kettle which I tried to scan using this method.

I found that the process of the getting the images is too laborious if you want to do it shot by shot angle by angle, it can be simplified if we took a video of the object circling around and focusing on it and try to go many circles around the object, try to cover all the angles. Now images can be extracted from the video at short intervals of time. There might be tools that directly use a video as input but they are below radar now.

I used KMPlayer in windows to extract the images every one second of the video I took. Right click on the video and select menu 'Capture', here choose 'Frame : extract', set relevant options(there multiple ways you can capture frame, I selected to capture one frame per second) and start the capture and play the video.

vsfm

I followed the steps given in (http://ccwu.me/vsfm/doc.html) under basic usage to generate a dense point cloud. This I imported the generated ply format point cloud to meshlab(http://meshlab.sourceforge.net/) cleaned up the mesh. -Deleted the unwanted points cloud. -Compute normal to point set(Filters->point set->compute normals for point set) -Use Poisson surface reconstruction algo(filters>point set->Surface reconstruction: Poisson) -Clean the mesh, delete unwanted faces and verticies. The mesh that came out was not of good quality. We might have to do some more editing on the mesh for it to give a meaningful output. I think it was because I used a shiny object.

Download Ply: poisson reconstruction, meshlab

Autodesk Catch(Photogrametry)

Autodesk catch gave a excellent mesh for the same data.
autodesk catch

I uploaded the pics, waited for processing(it does take a few minutes). Export the mesh as obj(Doesnt provide stl option) When opened it in meshlab to check the mesh this is how it looked.
meshab catch

Since the object was a shiny one the methods didnt a very accurate model but autodesk catch was the simplest to use and gave a watertight mesh right of the bat.

Usually a low res mesh is created from Catch. In order to get Higher res you select generate mesh and choose from the 3 options you get. During highres mesh generation the colors couldnt be created properly but the mesh looked better pic

Both werent able to capture the handle feature of the kettle correctly.

Download Autodesk catch 3dp file.

Download obj mesh

Contact probing using Roland Medela MDX-20

How contact probing works is the machine will have a mechanical probe that is attached to a mechanism (gantry of arm) though which accurate location of the tip of the probe can be accurately calculated. The probe is a switch that gets activated when it comes in contact with an object and gets pushed and at this trigger tip of the probe is calculated from sensors and registered.

probetiger
source(http://www.imsrv.com/deskcnc/probe.htm)

A Ruby tipped Probe for heavy duty applications
probe3source(http://www.imsrv.com/deskcnc/probe.htm)

Comparison

Unlike photogrametry contact probing is highly accurate, since its not based on guessing but actual measuements. Photogrametry tools use probabilistic theory in order to arrive at best approximation. photogrametry hence have very less use in engineering and more use in fast approximate capturing. But mechanical probing takes a lot of time and is limited by machine reach movements.

Roland Modela has a scanning attachment that is uses contact probe as its sensor.The Roland Modela probe looks more like a needle and is meant to handle smaller objects. This probe is sensitive to fewer grams of force than industrial probes.

rolandprobe

  1. To use this feature You need to remove the milling attachment from the machine and attach the probe.
    mount probe
  2. You should remove the black sheet metal covering before you start using the probe. Also The Roland software called Dr Picza(lookswise and feel wise of windows 98 era) doesnt recognise the machine unless you plug the scanning probe on the machine(I try to dry run without plugging the scanner in it doenst work). Also if the software doesnt recongnise the machine restart the machine and software.
  3. All these steps can also be found under help menu of the software also. Setting Com port. To do this go to the device manager (ctrl+r-> in the run window type and enter-> devmgmt.msc) and check the com port number that is being used by the machine(under usb or port devices). It doesnt specify the machine by name so you might have to unplug and plug it back to check which device appears when plugged in, it'll have the com port number used by the device in brackets. Set this in the preference of picza.
  4. Setting the model to be scanned. Problem: All the units used by the machine were in inch and I couldnt find options to change it to mm. We need to make sure that the object we scan doesnt deform when the probes applies pressure on it. Its a very tiny amount of force but clay might deform if not hard enough.You have to make sure the object doesnt move or roll too. I was scanning a key and I just secured it using double sided tape which worked fine.
  5. Set which area you want to scan by clicking on "Scan area". Set the location and area you want to scan which is the position and size envelope of the object you want to scan on the work table. Try to use features like Begin area test too. They are very helpful

    setsize.jpg
    Check "Z- Upper limit"

    Choose a location of the object where you think the object is of max height(approximat. If not checked and set the machine doesn't optimize the scanning process and the probe might retract to maximum height possible rather than hovering over minimal height required for scanning object.

Max size of the object you can scan.
maxsize
7.. select ect x-pitch min z and y pitch. Pitch is the distance at which the z coordinate meaurment is taken. 1mm pitch means every 1mm the probe takes measurement. Start scan. You might see the machine moving wildly from one extreme to other extreme. Dont worry the machine is trying to get a feel of the size and shape of object it is handling. Then the regular probing per pitch distance continues.The machine movement and probing algo is pretty robust.
startscan

Mesh using higher pitch distance (0.038 inch)(less detailed)
key_lowres.jpg

Mesh using lower pitch distance (0.010 inch)(higher detail)
key_highres.jpg
(Apologies for unequal zoom)

8.. After the scan completes mesh is generated form the pointcloud recorded. Try out different features Picza has to offer. There are some interesting features for model editing. You can mention custom dimensions here. and do some minor adjustments to the mesh.


Render option

render.jpg
9.. Save the mesh(stl, obj, iges etc options available).

3D printing.

I was inspired by Neil's mention of assemblers in the 3d printing and scanning lecture. So I tried to build a concept model in that line f thinking.

Idea: Zipform2D

The whole of the idea is having a chain whose individual blocks can be oriented and locked in positon in space wrt the previous block and a machine that makes a part or structure by locking chained blocks together.

After much ideation and consideration of time that I have to design and the material and techniques available in fablab I thought of an assembly using zip ties(the head of the zip tie and the rail separately) that can be oriented in space and locked in space.

Required materials and machines

You will need a zip tie that allows you to open it back with a tiny lever that is easily accessible, Knife and 3d printer.
I took the measurement of the zip tie head. This will be held in place tightly by snap fit like feature. The zip tie head was approximated to a cuboid of 7mmx8mmx5mm.

There are two parts of the assembly here, the car- holds the ziptie heads in place and the rail- the zip tape.
In normal circumstance the car is constrained and cant freely move through the rail.
When the lever of the correct zip tie head is pulled, the rail can move through. And when the lever is let free the structure remains in that configuration. So you can create a bend you like and it will remain in that configuration. You choose the distance between the cars to adjust the rigidity(or flexibility) of the structure. Essentially You can create bends and play around with rigidity of the structure.

Design process

I used Antimony to create my design. Antimony has an option called clearance which generated a thin offset cut from the surface of the rounded cube I created mimicking approximately the volume of the zip tie head.
I created the volume of shape of the zip tie head and created a volume covering it with some thickness I applied clearance CSG operation in between these two volumes and using difference CSG operation negated the zip tie volume from the resulting object. Then went on and created copies of this feature and located them where I required. And located and created the features that joins all of them together(intersecting them for now later when union is applied it merges all).
Using union I conjoined all the volumes together and using export node I output the resulting volume in stl. and printed in in Ultimaker2 with the following settings. I had to orient the model in a way that would give me the best output, minimum overhang.

Layer height- 0.2
Speed- 50
no support
no platform adhesion

Why Additive manufacturing.
You might not be able to see it clearly in the sketchfab preview but if you zoom in enough you will see that the small hollow holes have lip kind of feature. The idea is that the object that comes inside that will snap fit into place inside the hollow. The Additive manufacturing technique and especially 3d printing was the best alternative to create this because I needed a specific feature inside the volume. Here I have a hollow space but there are some functional feature inside the hollow space to enable snapfitting. The object is small and feature are also very tiny. the scale of the object and its 3d features makes it very difficult to be created in a subtractive manufacturing process.

sketch

The object was created in antimony. You can try to understand it and modify it to the size of zip tie you want to use.

Download stl

Assembly
assembled

  1. You have to have minimum of two of these parts printed and each require 4 zip tie head. Download the stl from The zip tie head of course is got from cutting it out from the zip tie. The tie is also necessary so keep them too.
    You have four hollows in which the zip tie heads need to go in specific orientation.
  2. In the horizontal row the zip head head should be placed in such a manner that the lever is accessible from outside (pulling action pointing out) and they should be pointing opposite directions. The zip tie rail should go in and the lever should be activated from above and out from the structure.
    For vertical row hollows the zip tie heads should be facing in the same direction.
    directions
  3. The zip tie head is hard to force in and this is intentionally designed. I use my teeth to push it completely in until I feel/hear a click. You can try to ease the process by carving out a little of the mouth using a blade.Be careful and do not carve it so much that you made a big chamfer.
  4. When you have both the cars populated try to push the tie through them, usually one or the orientation should work. Along the same rail the two zip tie should face opposite directions.
  5. When you have all the 4 rails installed and everything is good. In the horizontal row one will resist the rail to move in one direction and the other will resist its rail to move in opposite direction. Depending on the direction you want to car to move you have to pull the right lever and you can move along that horizontal track. The structure is arrested in that position when you leave it. If you want to make the both top and bottom track then you have to move the rail along the top track first then the bottom or vice versa- this will change the distance between the cars. When the rail is moved along wither top or bottom wrt to bottom or top it creates a bend.

Download Antimony .sb file