From cddbd4dd27e31b88a27bf747a95a90b7f8c11f51 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Mon, 26 May 2014 09:12:48 +0000 Subject: [PATCH] add schematic wakeboard model --- wakeboard.scad | 144 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 wakeboard.scad diff --git a/wakeboard.scad b/wakeboard.scad new file mode 100644 index 0000000..9b4a5ce --- /dev/null +++ b/wakeboard.scad @@ -0,0 +1,144 @@ +use + +$fn=20; + +module roundcirc() +{ + hull() { + translate([0, -13]) circle(r=10); + translate([0, 13]) circle(r=10); + } +} + +module roundcyl() +{ + translate([0, 0, 0]) + linear_extrude(height=3*(1-cos(30)), scale=(10+3*sin(30))/10) roundcirc(); + translate([0, 0, 3*(1-cos(30))]) + linear_extrude(height=3*(cos(30)-cos(60)), scale=(10+3*sin(60))/(10+3*sin(30))) + scale((10+3*sin(30))/10) roundcirc(); + translate([0, 0, 3*(1-cos(60))]) + linear_extrude(height=3*cos(60), scale=(13)/(10+3*sin(60))) + scale((10+3*sin(60))/10) roundcirc(); +} + +module boot() +{ + $fn=20; + difference() { + union() { + linear_extrude(height=2) { + hull() { + translate([0, -17]) circle(r=10); + circle(r=17); + translate([0, 17]) circle(r=10); + } + } +/* translate([0, 0, 9.5]) + minkowski() { + hull() { + sphere($fn=10, r=3); + translate([0, 0, -5]) sphere($fn=10, r=3); + } + linear_extrude(height=1) + hull() { + translate([0, -17]) circle(r=10); + translate([0, 17]) circle(r=10); + } + }*/ + + translate([0, 0, 2]) roundcyl(); + translate([0, 0, 5]) linear_extrude(height=5) scale(1.3) roundcirc(); + translate([0, 0, 13]) rotate([0, 180, 0]) roundcyl(); + + hull() { + translate([0, -17, 9]) cylinder(r=13, h=22); + translate([0, -14, 9]) cylinder(r=13, h=11); + } + hull() { + translate([0, -14, 9]) cylinder(r=13, h=11); + translate([0, -10, 9]) cylinder(r=13, h=7); + } + hull() { + translate([0, -10, 9]) cylinder(r=13, h=7); + translate([0, 0, 9]) cylinder(r=13, h=3.8); + } + } + translate([0, -17, 3]) cylinder(r=10, h=40); + } +} + +module board() +{ + $fn=100; + rotate([-asin(90/500), 0, 0]) cylindric_bend(dimensions=[60, 180, 5], radius=500, nsteps=10) + { + translate([30, 90]) + linear_extrude(height=5) { + intersection() { + translate([270, 0]) circle(r=300); + translate([-270, 0]) circle(r=300); + hull() { + translate([0, 40]) circle(r=50); + translate([0, -40]) circle(r=50); + } + } + } + } +} + +boot(); + +/*union() { +board(); +translate([30, 90-500*sin(asin(90/500)*0.45), -6.6]) rotate([0, asin(90/500)*0.45, 90]) translate([0, 0, 5]) scale(0.7) boot(); +translate([30, 90+500*sin(asin(90/500)*0.45), -6.6]) rotate([0, -asin(90/500)*0.45, 90]) translate([0, 0, 5]) scale(0.7) boot(); +// support material +intersection() { + union() { + translate([5, 0, -500*(1-cos(asin(90/500)))]) cube(size=[0.8, 180, 15]); + translate([15, 0, -500*(1-cos(asin(90/500)))]) cube(size=[0.8, 180, 15]); + translate([25, 0, -500*(1-cos(asin(90/500)))]) cube(size=[0.8, 180, 15]); + translate([35, 0, -500*(1-cos(asin(90/500)))]) cube(size=[0.8, 180, 15]); + translate([45, 0, -500*(1-cos(asin(90/500)))]) cube(size=[0.8, 180, 15]); + translate([55, 0, -500*(1-cos(asin(90/500)))]) cube(size=[0.8, 180, 15]); + } + difference() { + hull() { + board(); + translate([0, 0, -20]) board(); + } + hull() { + translate([0, 0, 1]) board(); + translate([0, 0, 2]) board(); + } + } +} +}*/ + +/* // cr = ((arcwidth/2)^2 + size^2)/2/size +module curved(cr=300, size=10) { + difference() { + translate([cr, 0]) circle(r=cr); + translate([size, -cr]) square(size=[cr*2, cr*2]); + } +} +union() { + w = 20; + translate([w/2, -80]) square(size=[w, 160]); + curved((80*80+(w/2)*(w/2))/2/(w/2), (w/2)); + translate([40, 0]) rotate([0, 0, 180]) curved((80*80+10*10)/2/10, 10); + translate([10+w/2, 4+80]) rotate([0, 0, -90]) curved((10*10+4*4)/2/4, 4); + translate([10+w/2, -4-80]) rotate([0, 0, 90]) curved((10*10+4*4)/2/4, 4); +} + +/*difference() { + translate([-10, -10, 0]) cube(size=[20, 20, 5]); + translate([-2.5, -2.5, -0.1]) cube(size=[5, 5, 1.1]); + translate([-10, -10, -8]) rotate([0, -45, 45]) cube(size=[20, 20, 20]); +} + +/*difference() { + cylinder($fn=32, r=4, h=1.2); + translate([0, 0, -0.1]) cylinder($fn=32, r=2.5, h=1.1); +}*/