96 lines
1.8 KiB
OpenSCAD
96 lines
1.8 KiB
OpenSCAD
include <../helper/screws.scad>
|
|
include <../helper/magnet.scad>
|
|
include <../helper/dowel.scad>
|
|
|
|
$vpr=[85,0,25];
|
|
//$vpd=40;
|
|
$vpd=30;
|
|
//$vpd=25;
|
|
$vpf=20;
|
|
|
|
|
|
glue(tilt=15,r=360*$t);
|
|
//m3FHCS(length=8,tilt=45,r=360*$t);
|
|
// magnet(tilt=90, r=360*$t);
|
|
// hingeDowel(tilt=90,r=360*$t);
|
|
// m3Hex(tilt=90,r=360*$t);
|
|
|
|
metalColor = [0.8,0.8,0.8];
|
|
|
|
module m3FHCS(length, tilt, r) {
|
|
rotate(a=[0,0,r])
|
|
rotate(a=[tilt,0,0])
|
|
translate(v=[0,0,length/2])
|
|
color(metalColor) {
|
|
difference() {
|
|
counterSunkHead_N("m3", screwExtension = length-m3CounterSunkHeadLength, headExtension = 0.5);
|
|
cylinder($fn = 6, r = 1.2);
|
|
}
|
|
}
|
|
}
|
|
|
|
module m3Hex(tilt, r) {
|
|
|
|
rotate(a=[0,0,r])
|
|
rotate(a=[tilt,0,0])
|
|
color(metalColor)
|
|
hexNut("m3");
|
|
}
|
|
|
|
module hingeDowel(tilt, r) {
|
|
rotate(a=[0,0,r])
|
|
rotate(a=[tilt,0,0])
|
|
translate(v=[0,0,-dowelPinH/2])
|
|
color(metalColor)
|
|
cylinder(h = dowelPinH, r = dowelPinR);
|
|
}
|
|
|
|
|
|
module magnet(tilt, r) {
|
|
rotate(a=[0,0,r])
|
|
rotate(a=[tilt,0,0])
|
|
translate(v=[0,0,-magnetH/2])
|
|
color(metalColor)
|
|
cylinder(r = magnetR, h = magnetH);
|
|
}
|
|
|
|
module glue(tilt,r) {
|
|
|
|
rotate(a=[0,0,r])
|
|
rotate(a=[0,tilt,0])
|
|
|
|
union() {
|
|
// cap
|
|
color([0.3,0.3,1])
|
|
translate(v = [0, 0, 4])
|
|
union() {
|
|
cylinder(r1 = 0.8, r2 = 0.6, h = 2);
|
|
|
|
gills = 8;
|
|
for (i = [0:gills]) {
|
|
translate(v = [0, 0, -0.1])
|
|
rotate(a = [0, 0, 360/gills*i])
|
|
rotate(a = [0, -6.5, 0])
|
|
cube(size = [0.9, 0.1, 2]);
|
|
}
|
|
}
|
|
|
|
// body
|
|
color([0.9,0.5,0.1])
|
|
hull() {
|
|
translate(v = [0, 0, 4])
|
|
cylinder(r = 0.4, h = 0.1);
|
|
|
|
translate(v = [0, 0, 3])
|
|
scale(v = [1.2, 1, 1])
|
|
cylinder(r = 1, h = 0.1);
|
|
|
|
scale(v = [1.5, 1, 1])
|
|
cylinder(r = 1, h = 0.1);
|
|
translate(v = [0, 0, -3])
|
|
cube(size = [4, 0.2, 0.1], center = true);
|
|
}
|
|
}
|
|
}
|
|
|