// 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;
clip_spring_depth = 20;
rod_diam = 4;
+rubber_beam_height = 3;
eps = 0.01;
infty = 1000;
// 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])
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])
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,
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]);
};
};
// 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])
rotate([0, 0, 240])
translate([motor_diam + thick_wall, 0, 0])
front_cone();
-