module spring_hole() {
- assign(d_in = 7, d_out = 12, d_w = 1) {
+ assign(d_in = 8, d_out = 13, d_w = 1, h = 9, h_c = 7) {
difference() {
- cylinder(r = d_out/2, h = 7*b + eps);
+ cylinder(r = d_out/2, h = h + eps);
+ translate([d_in/2, -infty/2, -infty/2])
+ cube(infty);
difference() {
- cylinder(r = d_in/2 + d_w, h = 6*b - d_w);
+ cylinder(r = d_in/2 + d_w, h = h_c);
translate([0, 0, -eps])
- cylinder(r = d_in/2, h = 6*b - d_w + 2*eps);
+ cylinder(r = d_in/2, h = h_c + 2*eps);
rotate([0, 0, 135]) translate([0, 0, -eps])
cube(infty);
};
+/*
for (a = [-25, 25]) rotate([0, 0, -90+a])
translate([-d_w/2, d_in/2, 0])
cube([d_w, d_out, 6*b - d_w + eps]);
+*/
/*
for (a = [0:120:360])
translate([-2*b,0,12*b]) head2();
}
+module rocket_body() {
+ cylinder(r = 8, h = 9.5, $fn = 18);
+ translate([0, 0, 9.5-eps]) cylinder(r1 = 8, r2 = 7.5, h = 4+eps, $fn = 18);
+ translate([0, 0, 13.5-eps]) cylinder(r1 = 7.5, r2 = 6.5, h = 4+eps, $fn = 18);
+ translate([0, 0, 17.5-eps]) cylinder(r1 = 6.5, r2 = 5.0, h = 4+eps, $fn = 18);
+ translate([0, 0, 21.5-eps]) cylinder(r1 = 5.0, r2 = 3.0, h = 4+eps, $fn = 18);
+ translate([0, 0, 23.8-eps]) sphere(r = 3.5, $fn = 18);
+ // translate([0, 0, 25.5-eps]) cylinder(r1 = 3.0, r2 = 1.0, h = 4+eps, $fn = 18);
+ for (a = [0, 120, 240]) rotate([0, 0, a]) hull() {
+ translate([7, -2, 0])
+ cube([eps, 4, 12]);
+ translate([12, -1, 0])
+ cube([eps, 2, 2]);
+ }
+}
+
+module rocket() {
+ difference() {
+ rocket_body();
+ translate([0, 0, -eps]) spring_hole();
+ }
+}
+
+module rocket_tail_body() {
+ cylinder(r = 8, h = 12, $fn = 18);
+ for (a = [0, 120, 240]) rotate([0, 0, a]) hull() {
+ translate([7, -3, 0])
+ cube([eps, 6, 12]);
+ translate([14, -1, 12])
+ cube([eps, 2, 2]);
+ }
+}
+
+module rocket_tail() {
+ difference() {
+ rocket_tail_body();
+ translate([0, 0, -eps]) spring_hole();
+ }
+}
+
+module heart_body() {
+ for (i = [-1, 1]) hull() {
+ // translate([4.5*i, -3, 12]) rotate([-90, 0, 0]) cylinder(r=5, h = 6, $fn = 32);
+ // translate([4.5*i, -7, 12]) rotate([-90, 0, 0]) cylinder(r=4.5, h = 14, $fn = 32);
+ translate([4.5*i, -6, 12]) rotate([-90, 0, 0]) cylinder(r=5.5, h = 12, $fn = 32);
+ translate([4.5*i, -8, 12]) rotate([-90, 0, 0]) cylinder(r=4.5, h = 16, $fn = 32);
+ // translate([4.5*i, 0, 12]) sphere(9);
+ cylinder(r = 8, h = eps);
+ }
+}
+
+module heart() {
+ difference() {
+ heart_body();
+ translate([0, 0, -eps]) spring_hole();
+ }
+}
+
//body();
//tummy();
-head2();
+// head2();
+// rocket_tail();
+// heart();
+
+translate([4, 4, 0]) head2();
+translate([-12, 12, 0]) heart();
+// translate([-12, -12, 0]) rocket();
+// translate([12, -12, 0]) rocket_tail();
+translate([0, -8, 0]) rotate([0, 0, 30]) rocket_tail();
+
//body2();
//creeper();