×
site logo representing a link to the homepage

Ceres Miller / Product Designer

Bouldering Hold Pins

Miniature 3D printed bouldering holds, as pins, earring studs, and merch
Ceres Miller, 2024

For T-Climbing's Winter Fundraiser Party they wanted 3D printed bouldering hold pins as merch to sell, so I volunteered to model them. I had used a method of making Blender sculpts into 3D printable objects before making a duck-shaped lamp, so I said I could make these bouldering holds.

The models are available to download here.


How to turn Blender sculpted meshes into 3D printable objects using Rhino

Turn undimensioned meshes into real objects that fit together
Ceres Miller, 2024

This method needs some perfecting but is fine for most sculpted objects. Rhino 8 added quad remeshing as a built-in feature, previously I was using Millipede (a plugin for Grasshopper) so now this method can now be done with Rhino 8 alone. Quad remeshing was necessary for simplifying geometry substantially without losing important detail, because Rhino would often fail to resolve certain operations without it, and also because some slicers would generate printer G-code using the vertex mesh which resulted in bizarrely long print times. Quad meshes also open the possibility of using subdivision meshes rather than vertex meshes, (the normal kind of mesh used by Blender) which use a network of splines to depict an object rather than a point cloud, so curves are more accurate and don't look "low poly".

  1. Open Blender and Create a New File with The Sculpting Preset

    You'll want to follow a Blender sculpting tutorial if you don't know how to do this. Other sculpting programs work fine too, like ZBrush, Maya, and Cinema 4D.


  2. Sculpt a Mesh

    It's useful at this point to add another object, a plane, at the origin to use as a reference for the printbed of the 3D printer.

    For those who are too impatient to follow a Blender sculpting tutorial, the gist is that when you sculpt into the sphere with your mouse and the mesh starts to stretch, press ctrl + r and Blender will remesh what you've made to remove the stretching. Leftmouse adds material, ctrl + leftmouse removes material. shift + leftmouse smoothes.


  3. Switch to Orthographic View and Use Box-Clip to Cut Off The Part You Don't Need

    Where you put your plane, if you did, to use as a printbed reference, use the box-clip tool to cut off everything below the plane.

    You will want to save your file before you do this and not after, if you need to edit your sculpt later.

    To enter orthographic mode, you can click an axis on the gimbal at the top-right of the screen.

    Aside: When 3D printing, especially lots of items, it's best to avoid needing to use build supports. Build supports take time and cost material, and the best build supports are ones you design yourself to break off without causing a mess. Most printers can print a 45° negative (overhang) before they need build supports, but depending on the part and the printer you can get a little more than that reliably and neatly. With a decent amount of the piece contacting the build plate on a flat side, you can also get rid of skirts and brims.


  4. Switch to Edit Mode and Delete The Flat Faces Box-Clip Added

    If you leave the flat face on the bottom, remeshing in Rhino will round off this sharp edge that you want. (Unless you add a crease around the edge, but this will still add unnecessary geometry to the underside)

    This will open the mesh. We will seal it up again later in Rhino.


  5. Export from Blender as .glb

    .glb is a modern and good file format for vertex meshes. It includes both scene information, textures, animations, and other data. (all optional in the export settings, but you shouldn't have any of these except scene data like the camera and light) Unlike .obj and .stl, .glb results in smaller file sizes, and contains the exact mesh you sculpted. (unlike .stl which will lose things like quad data) .fbx is also fine, but .glb is still smaller (and is also a non-propietary filetype, meaning you can open .glb files in Windows' 3D objects viewer)


  6. Open Rhino, Select MM Units, Import Your Mesh, and Scale It to The Size You Want

    Rhino is a CAD modelling software used mostly by jewellers, architects, designers, and dentists. It's similar to Alias, in that Rhino is a NURBS surface modeler, but it can "fake" solids using multiple surfaces to create an enclosed space, called a polysurface. This makes it useful as a combination engineering and design multitool.

    We want to use it to turn a complicated mesh into a surface, and then a solid, which we are going to put dimensioned holes into.

    One of the most useful features about Rhino is that you can type in the command you want in a box at the top of the screen, so you don't have to search through menus for the tools you need.

    Go to File > Import, and select your .glb mesh.

    Move the mesh's autogenerated origin to the scene origin. This isn't necessary, but it helps. Align the bottom of the mesh to the X/Z axis plane. It doesn't have to match exactly.

    If the mesh is the wrong size, type scale in the Command: box at the top of the screen and press enter. Put the base point at the scene origin, the scale factor somewhere at the edge of the mesh, and scale the mesh down by moving the mouse. The grid behind the orthographic windows is in millimetres, so you can scale the mesh to the rough size you want.

    Note: If you want to scale to an exact size, before you scale, draw a line from the origin to the size you want, and then when you scale the mesh, go to the OSnap tab at the bottom left and check end. This will snap the scale factor point you set when you started scaling to the end of the line you drew.


  7. QuadRemesh to Make The Mesh Easier to Work With

    This again isn't strictly necessary, it just depends. If your PC is lagging, or Rhino can't resolve the edits you're making, or if your printer is taking forever for some reason, or your mesh is just really ugly, QuadRemesh helps.

    Play with the settings until you get a result you like. Remeshing takes a while, so leave it to work for a minute or so when you click OK.

    The documentation for QuadRemesh outlines what the options for the tool mean. Usually, set Adaptive Size % to 100 and Target Quad Count to some number in the thousands.

    When QuadRemesh is finished, delete the old mesh, and you should be left with something that looks regular and organised, like this:


  8. On the Open Edges of The Mesh, Select The Edge Loops

    You will make a new surface to close up the bottom of the mesh. To do this, you need to select the edges around the hole you want to fill.

    To do this, zoom in to an edge, hold shift + ctrl, and double-click on the edge. This should select the edge loop. Do this for both edge loops if your mesh is doughnut shaped, like this example.

    To make the edge easier to see, in the Perspective viewport, at the top-left, you can select shaded instead of wireframe.

    Note: This method relies on this new surface being flat. If the hole is uneven, you'll need to use another method. You can, for example, split the hole up into flat (that will touch the build plate) and uneven (that won't touch the build plate) segments in your Blender sculpt. You can also use tools like Mesh patch in Rhino, but good luck.

    Note 2: You don't technically need to seal this hole to make the mesh a solid. If you wanted to print this shape hollow on the inside, you can add a thickness to the hollow mesh instead. 0.5mm white PLA is slightly translucent and will allow LED lights to diffuse through. This is what I used Millipede and Grasshopper for when I made the duck lamp.


  9. Use the Planar Surface Tool to Seal The Bottom With A Surface

    The command is _PlanarSrf, from the Surfaces Tools tab.

    When we used box clip in Blender to cut off geometry we don't care about and get a flat side for printing, it sliced straight through triangles in the way and damaged the mesh's topology, which made it harder to work with. (It's also important if you want to render the mesh, for whatever reason you wish, because the mesh topology is used by shaders to make surfaces look how they should in real life) When we used QuadRemesh, it fixed this problem, but how well that works depends on Rhino knowing what edges we think are important and want the new topology to respect, like the edge between the sculpted mesh and the flat bottom. By adding a new surface at this point instead of earlier, it just makes the project a little neater and easier to manage, especially if something goes wrong later. (Like during mesh boolean operations)


  10. Convert the Planar Surface You Created To A Mesh, So You Can Join It to The Sculpted Mesh

    The command is _Mesh, in the Mesh Tools tab.

    NURBS surfaces can't be joined to meshes in Rhino, they need to both be the same type of surface. Helpfully, Rhino can make meshes from NURBS surfaces and automatically generate the geometry.

    You can use _MeshBooleanUnion to join the two pieces together. If it worked, on the right side of the screen in the properties tree, when you click the shape you've made, it should say under Object, "closed mesh".

    Note: NURBS means Non-Uniform Rational B-Splines. A spline is a curved line that can be represented mathematically with polynomials. B-Spline, basis spline, means one piece of a list of connected splines that make a complicated curve, rational (as in ratio) means that the curve's shape is worked out by each segment having an effect on the ones around it, and non-uniform means that NURBS can represent lots of shapes rather than relying on parametric primitives. NURBS surface means a 3D shape represented by a network of lots of curves, kind of like the warp yarns and weft yarns in weaving. You can imagine that the warp might be called X and the weft might be called Y, but in 3D graphics, they are named U and V instead.


  11. Create The Shapes You Want To Add/Remove, And Use _MeshBooleanUnion or _MeshBooleanDifference To Join/Cut

    Surfaces and polysurfaces in Rhino can't be added directly to a mesh or SubD, but they can be used to boolean difference, which is to gouge out a piece of the mesh that's the shape of the surface or polysurface. To boolean union, the piece you want to add has to be converted to a mesh as above.

    This will add/remove mesh faces as needed, which can get very messy. I hate this part and I'm sure there's a better way, but I'm not sure what it is yet. I'm still looking, but this does work most of the time, so long as what you're trying to do isn't too complicated. (which can be difficult to know) If something isn't working, you'll need to move some pieces around. Boolean unions seem to work best using primitive shapes at the point of the union, like cylinders, flat surfaces or cubes.

    Here I'm cutting two holes using cylinders. You can see how they're intersecting completely, with a little bit of excess.


  12. When You're Finished, Export As .3mf

    Go to File > Export Selected, click Save as type and select 3MF (*.3mf).

    .3mf, like .glb, contains scene data, colours, textures, and other data like copyright information, but most importantly it can represent NURBS surfaces, unlike .stl. In CAD softwares, like Rhino, Solidworks, and others, this means that lofts and fillets can be accurately represented in 3D printing slicers and other manufacturing systems, and also helpfully that 3D objects made in one CAD software are portable to other CAD softwares. (although history trees like the FeatureManager tree from Solidworks are not preserved)


  13. Import The .3mf Into A 3D Printing Slicer

    Which slicer you choose will most likely be up to what 3D printer you are going to use. The most popular so far, at least to my impression, are Ultimaker Cura and Bambu Studio. If you're not the person who is going to prepare the model for 3D printing, you don't need to do this part.

    You can see in the slicer that in this case the mesh is shaded showing all the diamond-shaped vertices from the mesh. In a large enough resolution, these would be visible in the print. Rhino can convert meshes to a kind of surface called SubD, subdivison surface. You can do this before you export the shape if you'd like. It turns the quad mesh you generated with QuadRemesh into a set of splines that use the vertices from the mesh as control points, making the mesh smooth.

    At this resolution though, the vertices can't be seen in the preview of the print, but that might not always be the case with every mesh.

    If you make the mesh into a SubD in Rhino before you export it, with some tweaking and adding of creases in the right places, you can get a shape that's much smoother, useful for high definition rendering, or very large prints.

    Note: Slicers generate a text file, a list of coordinates and times called G-code. You can hand write these if you want. Machinists for metalworking are expected to write and edit their G-code themselves, and doing the same thing for 3D printing (usually not by hand, you may give yourself an RSI, you may use a script or some other tool) can create some intresting effects. 3D printed ceramics often make use of the sloughing of clay slip to make complicated and precise petal shapes, ridges, loops and textured patterns.

    With Rhino you can use Grasshopper to write G-code.


  14. Print, Wait, Finished

    Slicing models for printing is a lot of trial and error until you find settings that work the quickest and produce the neatest results. Sometimes you can find settings files online for your printer that make it faster to get started. Sometimes there are modifications and additions you can make to your printer to make it more reliable, like bowden tubes and cable tidy trains, and sometimes it's temperature, humidity and dust management depending on your region.

    This is by far not the only method for achieving the same result as I have. There are probably better ways. However, in terms of time and the skills and softwares I already know, this is the way that works for me. I hope if you attempt a similar process you can get what you imagined. I'm also always open to talk about this kind of work, so if you'd like to, you can send me an email.


About These Bouldering Holds

Details for anyone interested
Ceres Miller, 2024

© Ceres Miller 2024 - All works on this website, unless otherwise noted, are licensed under the CC BY-SA 4.0 license.
Hire Me
Contact:
copied!