add schematic wakeboard model

master
Vitaliy Filippov 2014-05-26 09:12:48 +00:00
parent fbe826138d
commit cddbd4dd27
1 changed files with 144 additions and 0 deletions

144
wakeboard.scad Normal file
View File

@ -0,0 +1,144 @@
use <bend.scad>
$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);
}*/