]> www.fi.muni.cz Git - things.git/commitdiff
Prototype parts of a disposable model rocket.
authorJan "Yenya" Kasprzak <kas@fi.muni.cz>
Fri, 2 May 2014 21:32:14 +0000 (23:32 +0200)
committerJan "Yenya" Kasprzak <kas@fi.muni.cz>
Fri, 2 May 2014 21:32:52 +0000 (23:32 +0200)
disposable-rocket-cone.scad [new file with mode: 0644]
disposable-rocket-fins.scad [new file with mode: 0644]

diff --git a/disposable-rocket-cone.scad b/disposable-rocket-cone.scad
new file mode 100644 (file)
index 0000000..6000ad0
--- /dev/null
@@ -0,0 +1,64 @@
+
+// motor prumer 17.7, delka 69.5
+// tycka prumer 3.4 mm
+
+eps = 0.01;
+
+r_vect = [
+  25, 25, 25, 24.95, 24.8, 24.7,
+  24.55, 24.3, 24.0, 23.75, 23.4, 22.9,
+  22.4, 21.8, 21.0, 20.3, 19.4, 18.3,
+  17.0, 15.7, 14.1, 12.3, 10.2, 7.5,
+  4.3, 0 ];
+
+h_step = 5;
+
+$fn = 128;
+
+sc = 18.5/50;
+
+module cone() {
+       difference() {
+               for (x=[0 : len(r_vect)-2]) {
+                       translate([0, 0, x*h_step*sc])
+                               cylinder(r1 = sc*r_vect[x]+1.5, r2 = sc*r_vect[x+1]+1.5, h = sc*h_step+eps);
+               };
+               for (x=[0 : len(r_vect)-2]) {
+                       translate([0, 0, (x-1)*h_step*sc])
+                               cylinder(r1 = sc*r_vect[x], r2 = sc*r_vect[x+1], h = sc*h_step+eps);
+               };
+       };
+/*
+       translate([0, 0, -1.6])
+               cylinder(r1 = r_vect[0] - 0.8, r2 = r_vect[0], h = 1.6+eps);
+       translate([0, 0, -20])
+               cylinder(r = r_vect[0]-0.8, h = 20+eps);
+*/
+};
+
+cone();
+/*
+render() difference() {
+       minkowski() {
+               render() cone();
+               sphere(r = wall);
+       };
+       cone();
+};
+*/
+               
+
+motor_diam = 18.5;
+wall = 1.5;
+infty = 1000;
+
+       translate([motor_diam/2 + wall + 3, 0, 0])
+               difference() {
+                       union() {
+                               cylinder(r = 3 + wall, h = 5);
+                               translate([-3 -wall, -3 -wall, 0])
+                                       cube([3 + wall, 6 + 2*wall, 5]);
+                       };
+                       translate([0, 0, -infty/2])
+                               cylinder(r = 3, h = infty);
+               };
diff --git a/disposable-rocket-fins.scad b/disposable-rocket-fins.scad
new file mode 100644 (file)
index 0000000..758f719
--- /dev/null
@@ -0,0 +1,50 @@
+eps = 0.01;
+infty = 1000;
+
+motor_diam = 18;
+wall = 1.5;
+
+cyl_h = 30;
+clip_angle = 40;
+
+module fin() {
+       assign(h1 = cyl_h, h2 = 20, h_off = 50, w = 30, fin_w = 1.0)
+       translate([0, -fin_w/2, 0])
+       hull() { 
+               cube([eps, fin_w, h1]);
+               translate([w, 0, h_off])
+                       cube([eps, fin_w, h2]);
+       };
+};
+
+module body() {
+       difference() {
+               cylinder(r = motor_diam/2 + wall, h = cyl_h);
+               translate([0, 0, -infty/2])
+                       cylinder(r = motor_diam/2, h = infty);
+               for (a = [-clip_angle/2, clip_angle/2])
+                       rotate([0, 0, a])
+                       translate([0, -wall/2, cyl_h/2])
+                               cube([infty, wall, infty]);
+       };
+
+       for (a = [60, 180, 300]) {
+               rotate([0, 0, a])
+               translate([motor_diam/2 + wall/2, 0, 0])
+                       fin();
+       };
+
+       translate([motor_diam/2 + wall + 3, 0, 0])
+               difference() {
+                       union() {
+                               cylinder(r = 3 + wall, h = 5);
+                               translate([-3 -wall, -3 -wall, 0])
+                                       cube([3 + wall, 6 + 2*wall, 5]);
+                       };
+                       translate([0, 0, -infty/2])
+                               cylinder(r = 3, h = infty);
+               };
+};
+
+body();
+