From: Jan "Yenya" Kasprzak Date: Sun, 18 May 2014 14:26:35 +0000 (+0200) Subject: rocked.scad: first printed version X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=538652f820660c5cedd6a843fc421e572e4536b2;p=things.git rocked.scad: first printed version --- diff --git a/rocket.scad b/rocket.scad index 12d0378..b0bf088 100644 --- a/rocket.scad +++ b/rocket.scad @@ -2,7 +2,7 @@ // The Estes A8-3 and C6-7 motors have diameter of 17.7 mm, // length 69.5 mm. The Estes Alpha launch pad has rod diameter 3.4 mm. -motor_diam = 17.7 + 0.5; // add some tolerance +motor_diam = 17.7 + 0.7; // add some tolerance motor_len = 69.5 + 0.5; motor_wall = 2; @@ -15,6 +15,7 @@ clip_spring_angle = 45; clip_spring_depth = 20; rod_diam = 4; +rubber_beam_height = 3; eps = 0.01; infty = 1000; @@ -38,8 +39,8 @@ module fin() { // alternative fin layout module fin2() { assign(h1 = motor_len/2, // near end height - w2 = 18, // bottom/far end width - h_off = 50, // height offset of the far height + w2 = 23, // bottom/far end width + h_off = 60, // height offset of the far height w = 30, // distance of the far height fin_w = thin_wall) translate([0, -fin_w/2, -h1]) @@ -183,11 +184,19 @@ module central_tube() { cylinder(r = motor_diam/2 + thick_wall - thin_wall, h = infty); }; + // rubber band holder + intersection() { + cylinder(r = motor_diam/2 + thick_wall - eps, h = central_tube_h); + translate([motor_diam/2-thin_wall, -infty/2, + segment_overlap + thick_wall]) + cube([thin_wall, infty, rubber_beam_height]); + }; }; //------------------------- FRONT CONE ----------------------- cone_h = 45; cone_resolution = 40; +cone_solid_h = 10; function bez_i4(t, ctls) = (pow(1-t, 3) * ctls[0]) @@ -225,13 +234,17 @@ module front_cone_body() { module front_cone() { difference() { front_cone_body(); - translate([0, 0, segment_overlap]) - bezier_cone([ - [ 0.7*thin_wall, motor_diam/2 + thick_wall - thin_wall ], // start - [ cone_h/2-0.7*thin_wall, motor_diam/2 + thick_wall - thin_wall], // cp 1 - [ cone_h - motor_diam/2 - thick_wall + thin_wall - 1.4*thin_wall, motor_diam/2 + thick_wall - thin_wall ], // cp 2 - [ cone_h - 1.4*thin_wall, 0 ], - ], 40); + intersection() { + translate([0, 0, segment_overlap]) + bezier_cone([ + [ 0.7*thin_wall, motor_diam/2 + thick_wall - thin_wall ], // start + [ cone_h/2-0.7*thin_wall, motor_diam/2 + thick_wall - thin_wall], // cp 1 + [ cone_h - motor_diam/2 - thick_wall + thin_wall - 1.4*thin_wall, motor_diam/2 + thick_wall - thin_wall ], // cp 2 + [ cone_h - 1.4*thin_wall, 0 ], + ], 40); + cylinder(r = motor_diam/2 + thick_wall + eps, + h = cone_h + segment_overlap - cone_solid_h); + }; translate([0, 0, segment_overlap-thick_wall+1.7*thin_wall]) cylinder(r1 = motor_diam/2, @@ -240,9 +253,13 @@ module front_cone() { translate([0, 0, -eps]) cylinder(r = motor_diam/2, h = segment_overlap + 2*eps); - - // debug - // translate([0, 0, -eps]) cube(infty); + }; + // rubber band holder + intersection() { + cylinder(r = motor_diam/2 + thin_wall/2, h = segment_overlap); + translate([motor_diam/3-thin_wall/2, -infty/2, + segment_overlap/2 - rubber_beam_height/2]) + cube([thin_wall, infty, rubber_beam_height]); }; }; @@ -258,6 +275,16 @@ module thread_holder() { // thread_holder(); +// debug +difference() { + // front_cone(); + // central_tube(); + // motor_module(); + + // translate([0, 0, -eps]) cube(infty); +}; + +// production $fn = 128; translate([motor_diam + thick_wall, 0, 0]) @@ -270,4 +297,3 @@ translate([motor_diam + thick_wall, 0, 0]) rotate([0, 0, 240]) translate([motor_diam + thick_wall, 0, 0]) front_cone(); -