X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=paul-trap-holder.scad;fp=paul-trap-holder.scad;h=5d513cb113b541b75fbc3d32e700d377f74b0a38;hb=21b98736d912d551c2d6150d7fb0b9b6a10966c5;hp=d951208c1ba9f937fa0334574fbda1e0c8614ce0;hpb=617c39b716aa7f367f1c47c8c00c81aa59a42dfe;p=things.git diff --git a/paul-trap-holder.scad b/paul-trap-holder.scad index d951208..5d513cb 100644 --- a/paul-trap-holder.scad +++ b/paul-trap-holder.scad @@ -1,36 +1,52 @@ include -base_wall = 3; -rod_d = 5 + 0.5; -d_max = 40; -d_min = 15; +base_wall = 4; +wall = 1.5; +rod_d = 5 + 1; +d_max = 45; +d_min = 20; steps = 3; -difference() { - cylinder(r = d_max/2+base_wall + rod_d/2, h = base_wall, $fn = 6); - for (i = [0:1:steps]) { - Rz((steps-i)*85/steps) - for (angle = [0:60:360]) Rz(angle) Tx(d_min/2+i*(d_max-d_min)/(2*(steps))) Tz(-eps) - cylinder(r = rod_d/2, h = base_wall + 2*eps, $fn = 6); - } -} - -// strut strut_w = 15; strut_l = 80; +strut_side_inner_l = 8; + +center_hole_d = d_min-wall-rod_d; + +module base() { + difference() { + cylinder(r = d_max/2+2*wall + rod_d/2, h = base_wall, $fn = 6); + Tz(wall) cylinder(r = d_max/2 + rod_d/2+wall, h = base_wall, $fn = 6); + } +} -Ty((d_max/2+base_wall+rod_d/2)*cos(30)) { +module strut() { +Ty((d_max/2+wall+rod_d/2)*cos(30)) { Tx(-strut_w/2) { - cube([strut_w, strut_l, base_wall]); - Ty(strut_l-base_wall) difference() { - cube([strut_w, base_wall, strut_w]); - Tx(strut_w/2) Tz(strut_w/2) Rx(-90) Tz(-eps) cylinder(r = 2.5, h = base_wall+2*eps, $fn = 6); + cube([strut_w, strut_l, wall]); + Ty(strut_l-wall) difference() { + cube([strut_w, wall, strut_w]); + Tx(strut_w/2) Tz(strut_w/2) Rx(-90) Tz(-eps) cylinder(r = 2.5, h = wall+2*eps, $fn = 6); } } Mx() hull() { - Tx(strut_w/2-base_wall) { - Ty(-base_wall) cube([base_wall, eps, base_wall]); - Ty(strut_l-base_wall) cube([base_wall, base_wall, strut_w]); + Tx(strut_w/2-wall) { + Ty(-strut_side_inner_l) cube([wall, eps, base_wall]); + Ty(strut_l-wall) cube([wall, wall, strut_w]); } } } +} +difference() { + union() { + base(); + strut(); + } + for (i = [0:1:steps]) { + Rz((steps-i)*85/steps) + for (angle = [0:60:360]) Rz(angle) Tx(d_min/2+i*(d_max-d_min)/(2*(steps))) Tz(-eps) + cylinder(r = rod_d/2, h = wall + 2*eps, $fn = 6); + } + Tz(-eps) cylinder(r = center_hole_d/2, h = infty); +} +