Press-Fit Triangle Geometries

by TSI8 in Craft > Art

224 Views, 0 Favorites, 0 Comments

Press-Fit Triangle Geometries

IMG_2682.jpg

A press-fit kit consisting of all triangles that allows joint at multiple angles to create different geometries using the triangles as faces.

Supplies

  • Rhino
  • Grasshopper
  • Ultimaker Cura
  • Ender Pro 3
  • Filament
  • Sandpaper

Generating Test Connectors

22-04-30_2.PNG
22-04-30_1.PNG

First, start by generating slots that start at a minimum tolerance of 0.066 mm and increasing the tolerance by 0.065 mm for every additional slot. The shafts are rounded with BlendEdge at varying radius in order to test the connections. Since I want the connection to add more like a hinge where the connection can happen at different angles, I figured that rounded edges on both the shafts and the slots will help make more degrees of rotation possible.

Testing Connectors

IMG_2661.jpeg
IMG_2658.jpeg
IMG_2659.jpeg
IMG_2660.jpeg

After finding out which slot fits the shaft better, I printed a slightly larger version of the shaft realizing that the original dimensions are too small to have the details I needed (e.g. the nice, rounded edges).

I printed a few more slots with minor adjustments around the tolerance from the slot with a better fit to try to narrow down a good tolerance to use.

Note that the thickness of the pieces should be roughly equal to the width of the slot so that a 90 degree joint doesn't overly protrude.

Creating Press-fit Triangle Pieces

22-04-30_3.PNG
22-04-30_4.PNG
22-04-30_5.PNG
22-05-01_1.PNG

It is important to note that Python trigonometric functions take in angle parameters in the unit of radians. I had some trouble trying to get the third point of the surface to form an equilateral triangle because I assumed radians. My bad.

Once we have the triangle, we can find where the surfaces for the shafts and slots are supposed to overlap the triangle by using the property of similar triangles to shift the 2 points of each surface along the edge of the triangle.

Make the shaft surfaces and slot surfaces different output from the Python Grasshopper component so we can conveniently BooleanUnion the shafts and BooleanDifference the slots.

Refining Triangle Pieces

22-05-01_2.PNG
22-05-01_3.PNG

Once we bake a triangle piece from Grasshopper into Rhino, it is important to BooleanUnion the entire geometry in Rhino again. For some reason, the shafts were detached from the triangle from the bake.

Now, we will use BlendEdge to created rounded edges in order for the triangular faces to rotate against each other. My pieces have a thickness of 5mm so I used a radius of 2.3mm for BlendEdge

Testing Edge Connections

IMG_2662.jpeg
IMG_2663.jpeg
IMG_2664.jpeg

To further ensure that we are using a proper amount of tolerance, I printed the edge of the triangle specifically. The first print wasn't particularly successful as the tolerance was not high enough. Subsequent prints showed that not only do the edges fit together, but they are also able to form joints at different angles.

Testing Triangle Connections

IMG_2665.jpeg
IMG_2666.jpeg

Now we can print the 2 whole triangles. They fit together as intended.

Assembling Geometries From Triangles

IMG_2677.jpeg
IMG_2672.jpeg
IMG_2674.jpeg
IMG_2676.jpeg

With multiples of these triangular faces, I was able to assemble a hexagon, a tetrahedron, a hexahedron, and an octahedron

Changing Up Triangle Angles for Different Geometry

IMG_2678.jpeg
IMG_2679.jpeg

By manipulating the angles passed in as parameters into the Python Grasshopper component, we can generate equilateral triangles as well as 45-45-90 triangles. 45-45-90 triangles enable us to form square surfaces.

By combing a square surface with equilateral triangle surfaces, we get a pyramid.

Refining Geometry Connections

Sometimes I would get a triangle print that has good tolerance on 2 out of 3 edges but not enough tolerance on the last one. An incredibly manual solution is to use sandpaper to slightly sand down the slot or shaft.