From: Jan "Yenya" Kasprzak Date: Mon, 20 Oct 2014 15:21:02 +0000 (+0200) Subject: rocket.scad: further tuning: X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=a6d04987a7075f54a3de01817f52114abb1cfa51;p=things.git rocket.scad: further tuning: - 0.9 mm wall is too thin - wider and thicker rubber band holders - front cone rubber band holder moved down - sharper front cone - two motor clips instead of one, a bit thicker and lower positioned - higher middle cylinder --- diff --git a/rocket.scad b/rocket.scad index d5b22b6..3acc358 100644 --- a/rocket.scad +++ b/rocket.scad @@ -14,22 +14,24 @@ tight_fit_diam_diff = 0.25; // cylinder with outer diameter d1 // will fit tightly into the hole with inner diameter // d1 + tight_fit_diam_diff -thin_wall = 0.9; // depends on the print width +thin_wall = 1.0; // depends on the print width thick_wall = 2*thin_wall + loose_fit_diam_diff/2; // motor_diam + 2*thick_wall is the outer diameter of the rocket motor_wall = thick_wall; // above the motor clip_height = 3.5; -clip_clearance = segment_overlap/4; +clip_width = 1.2; +clip_clearance = 1.0; clip_inner_space = motor_diam/2 - 1.5; rod_diam = 3.4 + 1; rubber_beam_height = 3; +rubber_beam_width = 1.5; fin_thickness = 1; eps = 0.01; -infty = 1000; +infty = 250; //----------------- MOTOR MODULE ----------------------------- @@ -112,10 +114,10 @@ module motor_module_solid() }; // motor clip - rotate([0, 0, 120]) intersection() { + for (angle = [120, -120]) rotate([0, 0, angle]) intersection() { translate([clip_inner_space, -infty/2, motor_len + motor_wall + clip_clearance]) - cube([thin_wall, infty, clip_height]); + cube([clip_width, infty, clip_height]); rotate([0, 0, -60]) translate([-infty/2, 0, 0]) cube(infty); rotate([0, 0, -120]) @@ -157,11 +159,12 @@ module motor_module() { // -------------------- CENTRAL TUBE --------------------- -central_tube_h = 85; +central_tube_h = 97; central_clip_r = 12; central_clip_w = 4; -central_clip_clearance = 1.5; +central_clip_wall = 1.5; +central_clip_clearance = 2.5; module central_tube_solid() { cylinder(r = motor_diam/2 + thick_wall, h = central_tube_h); @@ -187,7 +190,7 @@ module central_tube() { central_tube_h/3]) rotate([0, 90, 0]) difference() { cylinder(r = central_clip_r, h = central_clip_w); translate([0, 0, -eps]) - cylinder(r = central_clip_r - thin_wall, h = central_clip_w + 2*eps); + cylinder(r = central_clip_r - central_clip_wall, h = central_clip_w + 2*eps); } }; }; @@ -217,7 +220,7 @@ module front_cone_body() { translate([0, 0, segment_overlap]) bezier_cone([ [ 0, motor_diam/2 + thick_wall ], // start - [ cone_h/2, motor_diam/2 + thick_wall ], // cp 1 + [ cone_h/4, motor_diam/2 + thick_wall ], // cp 1 [ cone_h - motor_diam/2 - thick_wall, motor_diam/2 + thick_wall ], // cp 2 [ cone_h, 0 ], ], 40); @@ -237,7 +240,7 @@ module front_cone() { 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/4-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); @@ -257,36 +260,27 @@ module front_cone() { intersection() { cylinder(r = motor_diam/2 + thin_wall/2, h = segment_overlap); translate([motor_diam/3-thin_wall/2, -infty/2, - segment_overlap - rubber_beam_height/2 - eps]) - cube([thin_wall, infty, rubber_beam_height]); + segment_overlap - thick_wall - rubber_beam_height - eps]) + cube([rubber_beam_width, infty, rubber_beam_height]); }; }; -module thread_holder() { - rotate([0, 90, 0]) { - translate([0, 0, -1.5]) difference() { - cylinder(r = 10, h = 3); - translate([0, 0, -eps]) - cylinder(r = 8, h = 3 + 2*eps); - }; - }; -} - -// thread_holder(); +debug = 0; -/* +if (debug == 1) { // debug -difference() { - // front_cone(); +difference($fn = 16) { + front_cone(); // central_tube(); - motor_module(); + // motor_module(); - translate([0, 0, -eps]) cube(infty); + translate([0, 0, -infty/2]) cube(infty); }; -*/ + +} else { // production -$fn = 128; +assign($fn = 128) { translate([motor_diam + thick_wall, 0, 0]) motor_module(); @@ -298,3 +292,6 @@ translate([motor_diam + thick_wall, 0, 0]) rotate([0, 0, 240]) translate([motor_diam + thick_wall, 0, 0]) front_cone(); + +} +}