]> www.fi.muni.cz Git - things.git/commitdiff
rocked.scad: first printed version
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Sun, 18 May 2014 14:26:35 +0000 (16:26 +0200)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Sun, 18 May 2014 14:26:35 +0000 (16:26 +0200)
rocket.scad

index 12d0378c026489dca9ab3d28847b19b78103b294..b0bf08834139e63eedfeab843734fba84e1df8af 100644 (file)
@@ -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();
-