Sunday, March 12, 2017

How to Remix an STL or object in Blender

Premise:
I need to modify a poop bag holder that will hang off the dog's leash.

Goal:
Original STL is set for 70mm-tall cylinder for its bags, I'm going to adjust this to a 63mm-tall cylinder.

What you'll need:
Blender (MeasureIt plug-in hugely recommended, File>User Preferences>Add-ons>3D View: MeasureIt)
STL to be modified (I chose www.thingiverse.com/thing:1369224)

Importing the Robot into Blender:
File > Import > Poop_bag_robot_body.stl (from wherever you've stored it)

Moving the camera view:
NumPad-9 flips the orientation, NumPad-2 & -8 raise and lower your view, NumPad-4 & -6 change side-to-side. I changed the view to look from the robot's bottom, so I could look at the top and spike that I will be pulling down.

Prep Work
You're in Object Mode - it'll show this at the bottom of the primary window. You can mouse it to Edit mode, or just hit <tab>. Everything now shows up as orange lines, because this was imported from an STL. This is doable, you'd just have to make sure you select everything you want to move correctly.


Instead, we're going to lightly cheat. Mesh > Clean Up > Limited Dissolve. Clean! There is a risk that you could dissolve details, but it would take multiple applications of that, as well as changing the constraints.

Click "a" on the main screen to deselect everything.

MeasureIt
You're in Edit mode, nothing is selected. There are three boxes on the bottom of your screen — Vertex, Edge, and Plane selection tool. If you choose one, the others will turn off.  Choose the Edge selection box in the center, then click on any line runs the length of the cylinder.

Click on the MeasureIt tab on the far left, click Show, then <-> Segment. You can now see a blue line with a ".07m" measurement attached to it, running along that edge/line you selected. This measurement will change if either vertex moves — useful later on, when we start moving things.

On the right hand side of your primary window, there's a tab for MeasureIt. Any line that you measure will show up in that tab...you can hide them, change their colors, but I'm concerned about .07m being rounded up. Change the number of decimal precision to 3 - it now shows the line length as .069m!



The modification:
Next, we'll hit "a" again to deselect everything. Choose Plane selection, hit "c" for an area selection tool, then left-click your mouse over the spike. This should select the spike as well as the top of the cylinder.



With those highlighted, hit "g" for grab, "x" to only move it on the X-axis, then move your mouse so that the .069m becomes a .063m.

Conclusion:
That's all! It wasn't a huge amount of work, but you can save the Blender file (File>Save), or just export the STL (File>Export). There are more complex things you could try — if you wanted more room for bags, use MeasureIt to find the width of the cylinder, select the whole object in Edit mode ("a" will select/deselect all), "s" for scale, "shift-x" means you scale everything BUT the x-axis...then use your mouse to scale. (You might want to deselect the spike on the inside before scaling, unless you want that to become bigger as well.)

Personal Preference:
I felt the spike at the top of the cylinder wouldn't print without supports (the 45 degree overhang angle rule). In Vertex selection, scrolled my mouse wheel to view it closely (you can also use the "." on the number pad). I grabbed "g" the tip, hit "x" to only move on the x-axis, then moved it towards the top of the sideways cylinder.