]> www.fi.muni.cz Git - things.git/commitdiff
rocket.scad: further tuning:
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Mon, 20 Oct 2014 15:21:02 +0000 (17:21 +0200)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Mon, 20 Oct 2014 15:21:02 +0000 (17:21 +0200)
- 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

rocket.scad

index d5b22b671fcca54e52578c05b78b79ff811858a7..3acc35858ee6861f115bed4706d0742426982cdb 100644 (file)
@@ -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();
+
+}
+}