diff --git a/Stomp Rockets/Saturn V v1.scad b/Stomp Rockets/Saturn V v1.scad new file mode 100644 index 0000000..39da55e --- /dev/null +++ b/Stomp Rockets/Saturn V v1.scad @@ -0,0 +1,68 @@ +// A fixed fin stomp rocket version +// Units mm g s + +use +$fa = 1; +$fs = 0.5; + +inner_radius = 17.5/2; +body_length = 150; +wall_thickness = 1.8; +outer_diameter = inner_radius + wall_thickness; + +module inner_taper(taper_height=5) { + difference() { + cylinder(r=inner_radius, h=taper_height); + cylinder(r1=inner_radius, r2=1, h=taper_height-0.1); + } +} + +module fairing(inner_radius=inner_radius, wall_thickness=wall_thickness) { + union() { + translate([0,0,50]) + sphere(r=outer_diameter*1.5); + translate([0,0,10]) + cylinder(r=outer_diameter*1.5,h=40); + cylinder(r2=outer_diameter*1.5,r1=outer_diameter,h=10); + } + +} + +module booster(width=20, height=75, thickness=3) { + union() { + translate([(width)/2+1,0,0]) + cylinder(d=width, h=height); + translate([(width)/2+1,0,height]) + cylinder(d1=width, d2=0, h=10); + translate([(width)/2+1,0,0]) + cylinder(d1=width*1.15, d2=width, h=10); + for (i=[0.25*height, 0.75*height]) { + translate([(width)/2+1,0,i]) + cylinder(d=1.15*width, h=5); + } + } + +} + + +union() { + difference() { + union() { + translate([0,0,body_length]) + rotate([0,180,0]) + color("gray") rocket_body(inner_radius = inner_radius, wall_thickness=wall_thickness); + translate([0,0,body_length-20]) color("red") fairing(); + } + translate([0,0,5]) + cylinder(r=inner_radius+0.4, h=body_length-10); + } + + translate([0,0,body_length-10]) color("blue") inner_taper(taper_height=5); + + for (i=[0,90,180,270]) { + rotate(i) + translate([outer_diameter-0.1, 0, 0]) + booster(); + } + +} diff --git a/Stomp Rockets/Spiral Fins v1.scad b/Stomp Rockets/Spiral Fins v1.scad new file mode 100644 index 0000000..7d96818 --- /dev/null +++ b/Stomp Rockets/Spiral Fins v1.scad @@ -0,0 +1,71 @@ +// A fixed fin stomp rocket version +// Units mm g s + +use +$fa = 1; +$fs = 0.5; + +inner_radius = 17.5/2; +body_length = 150; +wall_thickness = 1.8; +outer_diameter = inner_radius + wall_thickness; + +module inner_taper(taper_height=5) { + difference() { + cylinder(r=inner_radius, h=taper_height); + cylinder(r1=inner_radius, r2=1, h=taper_height-0.1); + } +} + +module nose_cone(inner_radius=inner_radius, wall_thickness=wall_thickness) { + radius = inner_radius+wall_thickness; + difference() { + sphere(r=radius); + translate([0,0,-1.75*radius]) + cylinder(h=radius, r=radius); + } +} + +module fin(width=25, height=115, thickness=3) { + rotate([80,0,0]) + translate([-7,-4,11]) + linear_extrude(height=thickness, center=true) + polygon(points=[ + [0,0], + [width,0], + [width,height/2], + [0,height], + ]); +} + +difference() { +// clear everything below the build plate + difference() { + // clear center of rocket body + union() { + //assemble the rocket + translate([0,0,body_length]) + rotate([0,180,0]) + color("gray") rocket_body(inner_radius = inner_radius, wall_thickness=wall_thickness); + + + translate([0,0,body_length-5]) color("red") inner_taper(taper_height=5); + + translate([0,0,body_length+10]) color("blue") nose_cone(inner_radius=inner_radius*1.5); + + for (i=[0,90,180,270]) { + rotate(i) + translate([outer_diameter-0.1, 0, 0]) + fin(); + } + } + translate([0,0,5]) + cylinder(r=inner_radius+0.4, h=body_length-10); + + } + // build plate + translate([-100,-100,-200]) + cube([200,200,200]); +} + +