# Day 113 – Poly-Snaps Truncated Tetrahedron

## Day 113 – Poly-Snaps Truncated Tetrahedron

Day 113 – Poly-Snaps Truncated Tetrahedron 640 480 mathgrrl

Over the next six days we’ll be posting polyhedra that we assembled using our new Poly-Snaps on Thingiverse. Our previous polyhedral models were made from Snap Tiles which had either two or three snaps on each side. This new type of modular polyhedra-builder has the same number of snaps on each side and is customizable in Thingiverse Customizer. Today’s print is a Truncated Tetrahedron composed of four triangles and four hexagons:

Settings: MakerWare .3mm/low in two batches (to get the two colors).

Technical notes: We used the following settings in the Thingiverse Customizer, which makes a sturdy, compact model that can be difficult to put together but stays together well even when tossed around.

```Sides = 3 and 6
Snaps = 3
Side Length = 25
Thickness = 3.5
Border = 3.5
Clearance = .17
Lengthen = .3```

Technical notes, OpenSCAD flavor: This is one of my first OpenSCAD designs so it is kind of a hack, but here is the code I wrote to make the Poly-Snap tiles:

```// mathgrrl polysnap tiles

////////////////////////////////////////////////////////////////
// PARAMETERS //////////////////////////////////////////////////

/* [Shape] */

// Choose the number of sides for the tile
sides = 5; // [3,4,5,6,7,8,9,10,11,12]

// Choose the number of snaps on each side
snaps = 3; // [2,3,4,5,6,7,8]

/* [Size] */

// Set the length of each side, in mm
side_length = 25;

// Set the thickness of the tile, in mm
thickness = 3.5;

// Set the border thickness, in mm
border = 3.5;

// Add extra space between snaps, in mm
clearance = .17;

// Add extra length to the snaps, in mm
lengthen = .3;

//inside radius depends on the border thickness

//width of each snap depends on number of snaps

////////////////////////////////////////////////////////////////
// RENDERS /////////////////////////////////////////////////////

union(){
//make the polygon base
poly_maker();

//make the snaps
snap_maker();
}

////////////////////////////////////////////////////////////////
// MODULES /////////////////////////////////////////////////////

//build the polygon shape of the tile
//shape is made up of n=sides wedges that are rotated around
module poly_maker(){

//subtract the smaller polygon from the larger polygon
difference(){

//extrude to thicken the polygon
linear_extrude(height=thickness,center=true){

//rotate the wedge n=sides times at angle of 360/n each time
for(i=[0:sides]){

//rotation is around the z-axis [0,0,1]
rotate(i*360/sides,[0,0,1])

//make triangular wedge with angle based on number of sides
polygon(

//the three vertices of the triangle
points = [[0-.1,0-.1], //tweaks fix CGAL errors

//the order to connect the three vertices above
paths = [[0,1,2]]
);
}
}
//extrude to thicken the center polygon that will be the hole
linear_extrude(height=thickness+2,center=true){

//rotate the wedge n=sides times at angle of 360/n each time
for(i=[0:sides]){

//rotation is around the z-axis [0,0,1]
rotate(i*360/sides,[0,0,1])

//make triangular wedge with angle based on number of sides
polygon(

//the three vertices of the triangle
points = [[0-.2,0-.2], //tweaks fix CGAL errors
[inside,0-.01],
[inside*cos(360/sides)-.01,inside*sin(360/sides)+.01]],

//the order to connect the three vertices above
paths = [[0,1,2]]
);
}
}
}
}

//build the snaps around the tile
//try the commands alone with i=1 and i=2 to see how this works
//remember to read from the bottom to the top to make sense of this
module snap_maker(){

//rotate the side of snaps n=sides times at angle of 360/n each time
for(i=[0:sides]){

//rotation is around the z-axis [0,0,1]
rotate(i*360/sides,[0,0,1])

//build snaps for first side at the origin and move into positions
for(i=[0:snaps-1]){

//read the rest of the commands from bottom to top
//translate the snap to the first side

//rotate the snap to correct angle for first side
rotate(180/sides)

//for i^th snap translate 2*i snapwidths over from origin
translate([0,2*i*snapwidth,0])

//rounded box for snap made from a box and cylinder
union(){

//cube part of snap shape at the origin
cube([thickness/2+lengthen,snapwidth-clearance,thickness]);

//post at back of snap to avoid loose teeth
//shifted a bit right to avoid overhangs when sides=3
translate([-.5,.5,0])
cube([thickness/2,snapwidth-clearance-.5,thickness]);

//round part of snap shape at the origin
//move cylinder to the end of the box
translate([thickness/2+lengthen,
snapwidth-clearance,
thickness/2])
//rotate cylinder to match box orientation
rotate(90,[0,1,0])
rotate(90,[1,0,0])

//cylinder of the correct size to match box
cylinder(
r=thickness/2,
h=snapwidth-clearance,
\$fn=16  //number of sides
);
}
}
}
}

Update: These Poly-Snap triangle tiles were used by owens on Thingiverse to make a beautiful model of a toroidal polyhedron. So cool!```

——————

As an Amazon Associate we earn from qualifying purchases, so if you’ve got something you need to pick up anyway, going to Amazon through this link will help us keep Hacktastic running. Thanks! :)

Share