Well, you know it’s been a busy few years when I’ve had a 3D printer for over a year and I am finally getting to printing a real live thing from OpenDroneMap. I have taken other people’s 3D models, spun them around in a browser and printed the results (gorilla skulls, rat skulls and the like). But today, I want to focus on a real object.
We’ve had folx show up on this forum now and then interested in printing their models. I am no expert at this process, but I have worked through the minimum steps for getting it done.
(Also, trigger warning for software purists, there is free but closed source software in the workflow. More on that later…)
Now that I’m working at Oberlin College and Conservatory, I’ve been taken by the beauty of campus, especially the older classic buildings. The Conservatory is in some of the newer buildings on campus, but has this cool facade (from an older building maybe?) that is at ground level, that includes this face:
I decided to experiment with creating a 3D model of this which turned out nicely derived from a couple dozen pictures in converging and diverging formation:
(Thanks to some floating point issues, we see some discretization of the point cloud, but this isn’t a problem for us today).
The mesh looks even nicer:
I really appreciate when the model almost looks more real the original object. But, unfortunately, this isn’t printable in its current form. For one thing, it’s not solid! Fortunately we get a water tight model earlier in the process, and today, we don’t care about the texturing.
If we have WebODM set up via docker with a mount drive like I describe here: Combining Drone and 360° Photos with WebODM - #5 by smathermather, then we can access the mesh we need from earlier in the process. Inside our project directory, inside odm_meshing, there is a file called odm_mesh.ply. This will do the trick for us! Looking at this in meshlab, it’s close to what we need:
Well, that looks like a somewhat solid piece! We can simplify it a bit using “Quadratic Edge Collapse Decimation”. Here are my settings:
Enter the evil free but closed source software.
Quick aside here: I really resent software like this: it creates a false sense of commons that the software producer at any time can take away from the community (nobless oblige or something? I don’t know), and in the meantime gives the FOSS community less incentive to build in a truly community way. Sigh. End rant
We’ll use Meshmixer for the next step to help us clean up the model quickly. Let’s “Export Mesh as” from meshlab, and import the mesh into meshmixer.
We’ll do a single operation in Meshmixer: we’ll use Analysis:Inspector, and choose “Auto Repair All” with defaults to get a (moderately) clean mesh:
I ended up with one remaining error in my mesh, but my 3D printing software is forgiving, so I didn’t worry about it. File:Export and send it on it’s way as an STL, and it’s (nearly) ready for printing!
I use Ultimaker Cura for my print generation. So I imported the STL, scaled it to the size I wanted it, added supports as I was so lazy about the shape of this thing, and 6 hours later… . Well. I’ll show you tomorrow.
I’m doing this little thing in copper filled PLA, so this is going to be a little extra fun print.
Since I run linux, I had to install Wine to use meshmixer: