6. 3D Scanning and printing¶
This week I worked on 3D printing on my 3D printer as well as understand basic concepts of 3D scanning
- Understand what are characteristics of 3D printer
- 3D print some designs and document the design process
- Understand 3D scanning
3D printing¶
I am no stranger to a 3D printer. I have personally used a 3D printer until all its parts have literally been replaced and decommissioned. However, that also made me think whether I was properly using the printer. See, I am an international student living in a hostel, and I move quite frequently, maybe once or twice every year. Every time after I move I notice minor wears and tears in the printer. Regardless, my main focus on printers are to print things, and whenever things don’t print well, I get extrememly frustrated.
This is why I was extremely thankful for this week’s lesson on 3D printing. Although I was pretty frustrated in the past to work with printers, I felt a passion rekindle in me.
Characterizing printer¶
I wanted to try out a lot of printers in the Fab Lab, but as my friend Jonathan was recently hit with COVID, I was subsequently issued a health risk warning. Although I do quite a bit of ART tests due to living in the hostel at NUS, I was still worried I might carry the virus and affect other people, and as such decided to lay low for this week. I am free to go out this week, so I might consider going to the Fablab as soon as possible. I have some midterms now, so I decided that chracterize my own printer for now
The printer I have is a Monoprice Mini Select v2. I picked this printer up for around 60usd as it was not in working condition. After using some spare steppers and PTFE tube holder, I managed to fix it.
As a start I use a test print by ctrlV and followed a default print profile.
These are some important results
Test | Expected | Result |
---|---|---|
Z height test | 0.1mm - 1.1mm | 0.4mm, 0.6mm, 0.7mm, 0.9mm, 1.1mm |
bridging test | 16mm | 16mm |
overhang test | 0 - 70 degree | 0 - 70 degree |
Based on purely looking at this test, it seems to be working fine for a personal printer. Therefore I went ahead and printed a benchy.
There are some problems, notably
- There seems to be some problems with the Z-axis of the print
- The overhang distance seems to be a bit too much for the printer to handle.
Other than those 2 problems, the benchy seems to print out just fine.
3D Design ideation process¶
I was curious of what kind of 3D parts are difficult to manufacture. I remember seeing videos like this where people carve pencil leads into beautiful art. The one that looked like 2 hearts caught my attention, as it is hard to image the two hearts actually come from the same pencil lead!
I wanted to borrow this concept, and try to merge some extrusions of the same type to have a similar concept. I did some research and came across this article, where they mention 3D printing structures that can “flow” and “stiffen” when needed. As a proof of concept, I decided to 3D print something along those lines.
First Design: Chainmail¶
I started by imagining a bunch of chains interlinked together, much like a chainmail. To make it a bit simpler, I decided they can be 2D squares. All I need to do is to place them in 90 degrees and…well, what do I do with the floating part? oops haha
The solution was simple, we rotate the model by 45 degrees in the slicer, and we should be able to print it!
It then occurred to me that if we want to make a chainmail, we can rotate it in the design file and then link multiple of these chain objects side by side and I should be able to print it. To make the edge flat, I applied a small amount of chamfer. The print then printed without support!
This design is super flexible! But, I find that it doesn’t look “appealing”, in that this chainmail would only look this way based on this design.
Second Design: Flat surfaces¶
I noticed that in that design, there isn’t any texture/flat surfaces that can apply text onto. As such, I wanted to try and have flat surfaces, and interlock them together
Again as a concept, I decided to leave the surface blank. It seems pretty ok, but there are problems with it as well. Firstly, These are 2 parts, and they are not as comfortable at the back compared to the front. Perhaps in the future, I can explore something that is smooth on both surfaces, so that it is also comfortable to the touch.
Third Design: HI :)¶
Lastly, I recalled seeing this design somewhere from my memory, basically people use vertical H and H rotated 90 degrees, mashed them together to create this perculiar shape. The benefit of this shape is that it does not intefere with other pieces when stacked side by side. To test, I printed a larger three piece to see if it would work, then proceed to duplicate the object several times and export the entire “fabric” as one STL file
My print bed was a bit too small, and I felt the CAD pieces were too big as well, as such, I shrank the STL to roughly 12 * 12 mm per piece (roughly 60%).
This is where a lot of my problems occured. As this is my personal printer, My print bed is not completely levelled, causing some pieces to not stick on the bed properly. For example, this first print actually has 3 pieces that came off together. I was lucky that it was still able to print on top of the 3 pieces!
When I wanted to further tune the design, I decided to print a raft, as adhesion between PLA is stronger than PLA and the print bed (as stated by our instructor Steven :)). Indeed, that solved all of my issues!
3D scanning¶
For this assignment, I want to try photogrammetry with my phone. During the lecture I kept in mind AliceVision Meshroom. I followed this website on sketchfab on how to z`use meshroom.
First, I took some pictures of my model. I chose this fortune cat that I bought from Japan a few years ago.
Next, I took a series of images and imported them into meshroom. I did that by dragging the png files and dropping them into the workspace on the left. I read that ALiceVision could utilize CUDA, but when I checked my GPU usage it was practically zero.
Hence, I searched online and found this thread on github, it appears that forceCPUExtraction is set to True because this feature can cause Out Of Memory (OOM) errors, therefore is hidden from the casual user. I have set this to False in order to utilize my GPU.
Meshroom will run its pipeline of reconstruction. A side note is that I am very impressed that this technology actually exist. I am currently taking a course on 3D computer vision, the idea is to reconstruct 3D images from 2D, and we are currently learning single view metrology. Reading this article has been a treat to me :)
That being said, for my first attempt, I took 50 images from different angles, but ended up with not so great results. The model doesn’t not represent the fortune cat at all!
I decided to give it another try to ensure that it was a problem with not enough images, or maybe the image was too far away from the model. I took closer images in higher quantity of the model. Somehow, it was worse…
After consulting Mr Yeo and Steven, there are parameters to tune. Tuning this will be a process, and I’ll update this once I have the time to complete a scan.
Trying out other softwares¶
As I was using an iPhone 12 Pro, according to its specs the device should have very sophisticated cameras with LiDar, hence I think that it might be possible to get a good scan given a proper software.
I decided that perhaps one of the reason the previous scans failed was because of the reflective surface on the model. As such, I decided to try using something that does not have any reflective surface, like this plushie I got from a workshop.
I’ve tried a few different softwares, of which Trnio Plus yielded one of the best results.
To use it, simply click start scan, I chose AR Scan. Although the scan itself is free, but the .obj
file is behind a paywall. However, it costs only $6 per month and you can get 50 models for free, which in my opinion is a pretty good deal given the scan quality.
The scanning process is pretty straightforward. Click the center button to start the scan, and a gauge will start around the button. For small models, Trnio suggests around 25%-50% of the bar filled. The image below shows a heatmap of data gathered, red corresponds to much data collect, green is medium, and blue is zero to no data collected.
Below shows the results of the scan. We can even use the app to do simple editing of the texture etc. The model is subsequently exported.
However, it is not immediately ready to be 3D printed. When I imported it into Cura, it showed this error message
To remedy this, I used meshlab to fix the object file following this youtube tutorial
I cleaned parts of the model by removing vertices highlighted in red, and clicking the “remove selected vertices” button.
Import it back into Cura and…
…there is no more error! 3D scanning is successful!
Conclusion¶
3D objects in the real world is so fascinating. We can use sophisticated devices which are at our fingertips to achieve very good results! This has truly been a delightful experience.
Design files¶
- chainmail: fusion design file
- smooth surface: fusion design file
- HI: fusion design file
- final 3D scan stl