67 lines
1.4 KiB
OpenSCAD
67 lines
1.4 KiB
OpenSCAD
//OpenSCAD PuzzleCut Library Demo - by Rich Olson
|
|
//http://www.nothinglabs.com
|
|
//Tested on build 2012.08.22
|
|
//License: http://creativecommons.org/licenses/by/3.0/
|
|
|
|
|
|
module xMaleCut(offset = 0, cut = xCut1)
|
|
{
|
|
difference()
|
|
{
|
|
child(0);
|
|
translate([0,offset,0]) makePuzzleStamp(cutLocations = cut);
|
|
}
|
|
}
|
|
|
|
|
|
module xFemaleCut(offset = 0, cut = xCut1)
|
|
{
|
|
intersection()
|
|
{
|
|
child(0);
|
|
translate([0,offset,0]) makePuzzleStamp(cutLocations = cut,
|
|
kerf = kerf); //only set kerf on female side
|
|
}
|
|
}
|
|
|
|
|
|
module yMaleCut(offset = 0, cut = yCut1)
|
|
{
|
|
difference()
|
|
{
|
|
child(0);
|
|
rotate ([0,0,90]) translate([0,offset,0]) makePuzzleStamp(cutLocations = cut);
|
|
}
|
|
}
|
|
|
|
|
|
module yFemaleCut(offset = 0, cut = yCut1)
|
|
{
|
|
intersection()
|
|
{
|
|
child(0);
|
|
rotate ([0,0,90]) translate([0,offset,0]) makePuzzleStamp(cutLocations = cut,
|
|
kerf = kerf); //only set kerf on female side
|
|
}
|
|
}
|
|
|
|
|
|
|
|
module makePuzzleStamp(kerf = 0)
|
|
{
|
|
difference()
|
|
{
|
|
//make the cube
|
|
translate ([0,stampSize[0] / 2 - kerf,0])
|
|
cube (stampSize, center = true);
|
|
|
|
//make the cuts
|
|
for ( i = cutLocations )
|
|
{
|
|
translate([i,0,0])
|
|
cube ([(cutSize / 2) - kerf * 2, cutSize - kerf * 2,stampSize[2]], center = true);
|
|
translate([i,cutSize / 2,0])
|
|
cube ([cutSize - kerf * 2,(cutSize / 2) - kerf * 2, stampSize[2]], center = true);
|
|
}
|
|
}
|
|
}
|