165 lines
4.2 KiB
OpenSCAD
165 lines
4.2 KiB
OpenSCAD
use <BOSL/metric_screws.scad>;
|
|
use <tht-leds/tht-leds.scad>;
|
|
$fn=50;
|
|
|
|
gap = 0.24;
|
|
screw_dia = 3;
|
|
screw_gap = 0.6;
|
|
screwhead_dia = 6;
|
|
screwhead_hei = 3;
|
|
screwhold_hei = 3.5;
|
|
nutholder_dia = 5;
|
|
nutholder_hei = 5;
|
|
screwpos = 2;
|
|
thickness = 1.2;
|
|
sdiameter = 40;
|
|
front = 4;
|
|
devscrewhead_dia = 6;
|
|
devscrew_dia = 4;
|
|
|
|
module threaded_insert( s = undef, d = undef, l = undef) {
|
|
if( 3==s) threaded_insert( d = 4.6 , l = 4.6);
|
|
else if( 4==s) threaded_insert( d = 6.3 , l = 6.35);
|
|
else if( 5==s) threaded_insert( d = 7.1 , l = 9.5);
|
|
else if( 6==s) threaded_insert( d = 8.7 , l = 12.7);
|
|
else if( 8==s) threaded_insert( d = 10.24, l = 12.7);
|
|
else {
|
|
assert( is_undef(s), "Unknown size (expected 3 for M3, ...) or manual (d,l).");
|
|
assert( is_num(d), "Diameter d (numeric) or size expected.");
|
|
assert( is_num(l), "Length l (numeric) or size expected.");
|
|
cylinder( d = d, h = l);
|
|
}
|
|
}
|
|
|
|
module ledz( d=5, h=5) {
|
|
/*
|
|
tht_led_5mm();
|
|
translate([0,0,-screwhold_hei])
|
|
cylinder( d=6, h=screwhold_hei);*/
|
|
translate([0,0,-0.1])
|
|
cylinder( d=d+gap, h=h+0.1);
|
|
translate([0,0,-h])
|
|
cylinder( d=d+gap+1, h=h);
|
|
}
|
|
|
|
rotate( [0, 0, 180])
|
|
translate( [0, 0, -2*thickness])
|
|
difference() {
|
|
union() {
|
|
intersection() {
|
|
cylinder( d=sdiameter, h=2*thickness);
|
|
translate( [0,-sdiameter/2,0])
|
|
cube( [sdiameter/2, sdiameter, 2*thickness]);
|
|
}
|
|
|
|
translate( [0,0,-screwhold_hei])
|
|
intersection() {
|
|
cylinder( d=sdiameter, h=2*thickness+screwhold_hei);
|
|
translate( [-thickness-gap,-sdiameter/2,0])
|
|
cube( [sdiameter/2+thickness+gap, sdiameter, 2*thickness+screwhold_hei]);
|
|
hull() {
|
|
translate( [screwpos, 0, 0])
|
|
cylinder( d=8, h=2*thickness+screwhold_hei);
|
|
translate( [-thickness-gap, -8/2])
|
|
cube( [2+gap, 8, 2*thickness+screwhold_hei]);
|
|
}
|
|
}
|
|
}
|
|
// Platz hinter den Leds müssen hinten frei bleiben
|
|
|
|
translate( [1, 0, 0])
|
|
union() {
|
|
for( i = [-14 : 7 : 14])
|
|
if( 0 != i)
|
|
translate( [3, i, 0]) {
|
|
//tht_led_5mm();
|
|
/*translate([0,0,-0.1])
|
|
cylinder( d=5+gap, h=screwhold_hei+0.1);
|
|
translate([0,0,-screwhold_hei])
|
|
cylinder( d=6, h=screwhold_hei);*/
|
|
ledz();
|
|
}
|
|
for( i = [-10.5 : 7 : 10.5])
|
|
translate( [3+5.3, i, -1])
|
|
ledz();
|
|
for( i = [-6.5 : 6.5 : 6.5])
|
|
translate( [3+5.3+5.3, i, -1])
|
|
ledz();
|
|
}
|
|
|
|
// screwhole
|
|
mirror( [0, 0, 1])
|
|
translate( [screwpos, 0, -2*thickness]) {
|
|
translate( [0, 0, -0.1])
|
|
cylinder( d=screw_dia+screw_gap, h=screwhold_hei+2*thickness+0.2);
|
|
translate( [0, 0, -0.1])
|
|
cylinder( d=screwhead_dia+screw_gap, h=screwhead_hei+0.1);
|
|
}
|
|
}
|
|
|
|
rotate( [0,-90,0])
|
|
translate( [0, 0, 0]) {
|
|
h = 2*thickness + screwhold_hei + front + gap;
|
|
translate( [0, 0, -h+front+gap]) {
|
|
difference() {
|
|
translate( [0,0,-gap]) intersection() {
|
|
d = sdiameter+2*gap+2*thickness;
|
|
cylinder( d=d, h=h+gap);
|
|
translate( [-gap-thickness,-d/2,0])
|
|
cube( [d/2+gap+thickness, d, h+gap]);
|
|
}
|
|
translate( [0, 0, -0.1-gap])
|
|
intersection() {
|
|
d = sdiameter+2*gap;
|
|
cylinder( d=d, h=h+gap+0.2);
|
|
translate( [-gap,-d/2,0])
|
|
cube( [d/2+gap, d, h+gap+0.2]);
|
|
}
|
|
d = thickness+gap;
|
|
translate( [-d-0.1, -4-gap, -gap-0.1])
|
|
cube( [d+0.2, 8+2*gap, h+gap+0.2]);
|
|
|
|
translate( [screwpos,0,0])
|
|
mirror([0,0,1])
|
|
threaded_insert(3);
|
|
}
|
|
|
|
difference() {
|
|
translate( [-gap-thickness, 0, -thickness])
|
|
for( i = [0 : 1 : 90])
|
|
rotate( [0,i,0])
|
|
linear_extrude( 1)
|
|
intersection() {
|
|
d = sdiameter+2*gap+2*thickness;
|
|
translate( [thickness+gap, 0])
|
|
circle( d=d);
|
|
translate( [0, -d/2])
|
|
square( [d/2+gap+thickness, d]);
|
|
}
|
|
|
|
translate( [0, 0, -10])
|
|
rotate( [0, 90, 0]) {
|
|
translate( [0,0,-thickness])
|
|
cylinder( d=devscrew_dia, h = 3*thickness, center = true);
|
|
linear_extrude( 30)
|
|
hull() {
|
|
circle( d = devscrewhead_dia);
|
|
translate( [30,0])
|
|
square( [1, devscrewhead_dia], center=true);
|
|
}
|
|
}
|
|
translate( [screwpos,0,0])
|
|
mirror([0,0,1])
|
|
threaded_insert(3);
|
|
}
|
|
}
|
|
|
|
translate( [0, 0, -2*thickness - gap - screwhold_hei]) {
|
|
translate( [sdiameter/2-0.8, -6, 0])
|
|
cube( [1, 12, screwhold_hei]);
|
|
for( i = [0, 1])
|
|
mirror( [0, i, 0])
|
|
translate( [-1, sdiameter/2 - 0.75, 0])
|
|
cube( [8, 1, screwhold_hei]);
|
|
}
|
|
} |