From: Jan "Yenya" Kasprzak Date: Tue, 27 Feb 2024 15:07:32 +0000 (+0100) Subject: radiacni stit - prvni tisknuta verzze X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=91cdd8119ddc28fbf4a7fce22bb444a095f527e9;p=things.git radiacni stit - prvni tisknuta verzze --- diff --git a/radiacni-stit.scad b/radiacni-stit.scad new file mode 100644 index 0000000..9e20d74 --- /dev/null +++ b/radiacni-stit.scad @@ -0,0 +1,91 @@ +include + +$fn = 128; +infty = 500; +inner_d = 80; +outer_d = 95; +cone_h = 20; +wall = 1.5; +base_wall = 3; +cone_angle = atan((outer_d-inner_d)/(2*cone_h)); +shield_h = 80; +shield_twist = 30; +blade_wall = 2.5; +blades = 12; +blade_w = 4*inner_d/blades; +blade1_w = 4; +blade_rot = 16; +shield_r1 = inner_d/2 - blade_w/2*sin(blade_rot) - 1.5*wall; +shield_r2 = 1.1*shield_r1; + +beam_w = 10; +beam_h = 15; +beam_l = inner_d/2 + 60; +beam_end_l = 20; +beam_end_h = 0.35*beam_h; + +for (angle = [0:30:360]) Rz(angle) { + // main blades + linear_extrude(height = shield_h, twist = shield_twist, + center=false, scale=shield_r2/shield_r1) { + Ty(shield_r1) Rz(blade_rot) { + Sx(blade_w/blade_wall) circle(r=blade_wall/2); + Tx(-blade_w/3) Ty(blade_wall/2) Sx(0.5) circle(r=blade_wall/2); + } + } + // counter-direction struts + linear_extrude(height = shield_h, twist = -shield_twist, + center=false, scale=shield_r2/shield_r1) + Ty(shield_r1) + Sx(blade1_w/blade_wall) circle(r=blade_wall/2); +} + +// top cone +difference() { + union() { + cylinder(r1 = inner_d/2, r2 = outer_d/2, h = cone_h); + // beam + Tz(beam_w/3) Ry(90) Sx(3*beam_h/(2*beam_w)) + cylinder(r = beam_w/2, h = beam_l); + // beam_end + + } + Tz(-eps) cylinder(r1 = inner_d/2 - wall/cos(cone_angle), + r2 = outer_d/2 - wall/cos(cone_angle), + h = cone_h + 2*eps); + // z negative + translate([-infty/2, -infty/2, -infty]) cube(infty); + // beam end + translate([beam_l-beam_end_l, -beam_w/2, beam_end_h]) + cube([beam_end_l+eps, beam_w, beam_h]); + // beam screw hole + Tx(beam_l-beam_w/2) Tz(-eps) cylinder(r=2.5, h = beam_end_h + 2*eps); + +} + +// base plate +cylinder(r = inner_d/2, h = base_wall); + +clip_d = 50+0.25; +// clips +clip_r1 = 1.5; +clip_r2 = 8*clip_r1; +clip_end_r = 5; +clip_h = 3.25; +Tz(base_wall) +for (angle = [0:120:360]) Rz(angle) difference() { + hull() { + Tx(clip_d/2) Sy(clip_r2/clip_r1) + cylinder(r = clip_r1, h = clip_h + wall); + Tx(clip_d/2) Ty(clip_r2-clip_end_r) difference() { + cylinder(r = clip_end_r, h = clip_h + wall); + translate([0, -2*clip_end_r, -eps]) + cube([4*clip_end_r, 4*clip_end_r, clip_h + wall +2*eps]); + } + } + Tz(-eps) difference() { + cylinder(r = clip_d/2, h = clip_h+eps); + Ty(clip_r2-clip_end_r) Tz(-eps) + cube([clip_d, clip_d, clip_h+3*eps]); + } +}