Notifications
Clear all

Printing a large surfboard fin  

Page 4 / 4
  RSS
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Re: Printing a large surfboard fin

How did they "FEEL"?
I did not have a good surf session, but that had nothing to do with the fin.
I stuffed up (like I often do) quite independently of the fin.

Not many turns is typical for my surfing, top speed was also very similar to similar sessions with other fins.

😀

But even if I wiped out most of the time, the forces that the fin was exposed to were significant and it suffered no damage. That's what counts for now, I can always design a different shape of foil for the fin, now that I have a fairly reliable way of making a fin.

I need to get better surfers to give the fins a try. Cannot do that before i know they are not just going to snap off of fall out of the fin box!

Posted : 12/04/2017 11:00 am
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Re: Printing a large surfboard fin

Many small modifications later, and already outdated again.

Each print takes about 12hrs, during which I have another idea to make it better. Or so I hope... 😀

Main changes are optimised supports and many annotations in the OpenScad code to make it more understandable. Multiple options and instructions on how to activate them are contained in the code. Should be easy to understand if you know a bit about OpenScad.

$fn=75;

// WF2BLEF2163HRx30x1.3mm_UTFB-3-0-1-7.scad

rotate([0,0,78.75]) // Rotate for alternative diagonal position on print bed
rotate([0,0,-39.5]) // Rotate union of it all so it fits on print table diagonally in Slic3r

union(){ // union of it all

union(){ // union of X-beams and base plates

translate([-153,0,0])
union(){ // 13th topmost x-beam support
translate([0,0,1])
cube([10,0.8,2],center=true);
translate([0,0,0.1])
cube([0.8,10,0.2],center=true);
union(){//pad for 13th x-beam
linear_extrude(height=0.4){
scale([0.9,1.5,0])
circle(7.5);}
linear_extrude(height=0.2){
scale([0.9,1.5,0])
circle(10);}}}
//
translate([-126,0,0])
union(){ // 12th x-beam support
difference(){// differencing hollowed x-beam from original x-beam
union(){//original x-beam union
translate([0,0,12.5])// reduce z to move longitudinal part down
cube([10,0.8,25],center=true);// make 7mm longer than transverse cube z-value;reduce z to make longitudinal part shorter; must be double of above translate z value
translate([0,0,9])// reduce z to move transverse part down
cube([0.8,10,18],center=true); // reduce z to make transverse part shorter; must be double of above translate z value
}
//End original x-beam union
// translate([0,-40,0]) //to see it better when editing
color("red"){
union(){//hollowed-out x-beam
difference(){//making 'hollow' x-beam
union(){ // old big x-beam
translate([0,0,8])// set to about 60% of longitudinal translate z-value; reduce z to move longitudinal thinner part down
cube([10,0.8,11],center=true);// set to about 60% of longitudinal cube z-value; reduce z to make longitudinal thin part narrower
translate([0,0,12])//set to transverse part z-translate value +3mm; reduce z to move transverse thinner part down
cube([0.8,10,18],center=true); //set to same height as transverse cube z-value; reduce z to make transverse thin part narrower
}
//end union old big x-beam
union(){ // new slim x-beam
translate([0,0,34])
cube([5,0.8,68],center=true);
translate([0,0,31.5])
cube([0.8,5,63],center=true);
}
//end union new slim x-beam
}
// End making 'hollow' x-beam
}
}//End color red
//end union hollowed out x-beam
}
//end differencing hollowed x-beam from original x-beam
union(){// Double base plate
linear_extrude(height=0.4){
scale([0.9,1.5,0])
circle(7.5);}
linear_extrude(height=0.2){
scale([0.9,1.5,0])
circle(10);}}
}
// End union 12th x-beam support
translate([-98,0,0])
union(){ // 11th x-beam support
difference(){// differencing hollowed x-beam from original x-beam
union(){//original x-beam union
translate([0,0,25])// reduce z to move longitudinal part down
cube([10,0.8,50],center=true);// make 7mm longer than transverse cube z-value;reduce z to make longitudinal part shorter; must be double of above translate z value
translate([0,0,21.5])// reduce z to move transverse part down
cube([0.8,10,43],center=true); // reduce z to make transverse part shorter; must be double of above translate z value
}
//End original x-beam union
// translate([0,-40,0]) //to see it better when editing
color("red"){
union(){//hollowed-out x-beam
difference(){//making 'hollow' x-beam
union(){ // old big x-beam
translate([0,0,21])//reduce z to move longitudinal thinner part down
cube([10,0.8,36],center=true);//reduce z to make longitudinal thin part narrower
translate([0,0,24.5])//set to transverse part z-translate value +3mm; reduce z to move transverse thinner part down
cube([0.8,10,43],center=true); //set to same height as transverse cube z-value; reduce z to make transverse thin part narrower
}
//end union old big x-beam
union(){ // new slim x-beam
translate([0,0,34])
cube([5,0.8,68],center=true);
translate([0,0,31.5])
cube([0.8,5,63],center=true);
}
//end union new slim x-beam
}
// End making 'hollow' x-beam
}
}//End color red
//end union hollowed out x-beam
}
//end differencing hollowed x-beam from original x-beam
union(){// Double base plate
linear_extrude(height=0.4){
scale([0.9,1.5,0])
circle(7.5);}
linear_extrude(height=0.2){
scale([0.9,1.5,0])
circle(10);}}
}
// End union 11th x-beam support
//
translate([-72,0,0])
union(){ // 10th x-beam support
difference(){// differencing hollowed x-beam from original x-beam
union(){//original x-beam union
translate([0,0,36])// reduce z to move longitudinal part down
cube([10,0.8,72],center=true);// make 7mm longer than transverse cube z-value;reduce z to make longitudinal part shorter; must be double of above translate z value
translate([0,0,33])// reduce z to move transverse part down
cube([0.8,10,66],center=true); // reduce z to make transverse part shorter; must be double of above translate z value
}
//End original x-beam union
// translate([0,-40,0]) //to see it better when editing
color("red"){
union(){//hollowed-out x-beam
difference(){//making 'hollow' x-beam
union(){ // old big x-beam
translate([0,0,32])// set to about 60% of longitudinal translate z-value; reduce z to move longitudinal thinner part down
cube([10,0.8,59],center=true);// set to about 60% of longitudinal cube z-value; reduce z to make longitudinal thin part narrower
translate([0,0,36])//set to transverse part z-translate value +3mm; reduce z to move transverse thinner part down
cube([0.8,10,66],center=true); //set to same height as transverse cube z-value; reduce z to make transverse thin part narrower
}
//end union old big x-beam
union(){ // new slim x-beam
translate([0,0,36]) // set same value as original x-beam
cube([5,0.8,72],center=true);// set same value as original x-beam
translate([0,0,36])// set same value as translate z transverse value
cube([0.8,5,66],center=true); // set same value as cube z transverse value
}
//end union new slim x-beam
}
// End making 'hollow' x-beam
}
}//End color red
//end union hollowed out x-beam
}
//end differencing hollowed x-beam from original x-beam
union(){// Double base plate
linear_extrude(height=0.4){
scale([0.9,1.5,0])
circle(7.5);}
linear_extrude(height=0.2){
scale([0.9,1.5,0])
circle(10);}}
}
// End union 10th x-beam support
//
translate([-50,0,0])
union(){ // 9th x-beam support
difference(){// differencing hollowed x-beam from original x-beam
union(){//original x-beam union
translate([0,0,43])// reduce z to move longitudinal part down
cube([10,0.8,86],center=true);// make 7mm longer than transverse cube z-value;reduce z to make longitudinal part shorter; must be double of above translate z value
translate([0,0,39.7])// reduce z to move transverse part down
cube([0.8,10,79.4],center=true); // reduce z to make transverse part shorter; must be double of above translate z value
}
//End original x-beam union
// translate([0,-40,0]) //to see it better when editing
color("red"){
union(){//hollowed-out x-beam
difference(){//making 'hollow' x-beam
union(){ // old big x-beam
translate([0,0,40])// set to about 80% of longitudinal translate z-value; reduce z to move longitudinal thinner part down
cube([10,0.8,74],center=true);// set to about 80% of longitudinal cube z-value; reduce z to make longitudinal thin part narrower
translate([0,0,42.7])//set to transverse part z-translate value +3mm; reduce z to move transverse thinner part down
cube([0.8,10,79.4],center=true); //set to same height as transverse cube z-value; reduce z to make transverse thin part narrower
}
//end union old big x-beam
union(){ // new slim x-beam
translate([0,0,43]) // set same value as original x-beam
cube([5,0.8,86],center=true);// set same value as original x-beam
translate([0,0,39.7])// set same value as translate z transverse value
cube([0.8,5,79.4],center=true); // set same value as cube z transverse value
}
//end union new slim x-beam
}
// End making 'hollow' x-beam
}
}//End color red
//end union hollowed out x-beam
}
//end differencing hollowed x-beam from original x-beam
union(){// Double base plate
linear_extrude(height=0.4){
scale([0.9,1.5,0])
circle(7.5);}
linear_extrude(height=0.2){
scale([0.9,1.5,0])
circle(10);}}
}
// End union 9th x-beam support
//
translate([-42,0,0])
union(){ // 8th x-beam support
difference(){// differencing hollowed x-beam from original x-beam
union(){//original x-beam union
translate([0,0,43])// reduce z to move longitudinal part down
cube([10,0.8,86],center=true);// make 7mm longer than transverse cube z-value;reduce z to make longitudinal part shorter; must be double of above translate z value
translate([0,0,39.7])// reduce z to move transverse part down
cube([0.8,10,79.4],center=true); // reduce z to make transverse part shorter; must be double of above translate z value
}
//End original x-beam union
// translate([0,-40,0]) //to see it better when editing
color("red"){
union(){//hollowed-out x-beam
difference(){//making 'hollow' x-beam
union(){ // old big x-beam
translate([0,0,40])// set to about 80% of longitudinal translate z-value; reduce z to move longitudinal thinner part down
cube([10,0.8,74],center=true);// set to about 80% of longitudinal cube z-value; reduce z to make longitudinal thin part narrower
translate([0,0,42.7])//set to transverse part z-translate value +3mm; reduce z to move transverse thinner part down
cube([0.8,10,79.4],center=true); //set to same height as transverse cube z-value; reduce z to make transverse thin part narrower
}
//end union old big x-beam
union(){ // new slim x-beam
translate([0,0,43]) // set same value as original x-beam
cube([5,0.8,86],center=true);// set same value as original x-beam
translate([0,0,39.7])// set same value as translate z transverse value
cube([0.8,5,79.4],center=true); // set same value as cube z transverse value
}
//end union new slim x-beam
}
// End making 'hollow' x-beam
}
}//End color red
//end union hollowed out x-beam
}
//end differencing hollowed x-beam from original x-beam
union(){// Double base plate
linear_extrude(height=0.4){
scale([0.9,1.5,0])
circle(7.5);}
linear_extrude(height=0.2){
scale([0.9,1.5,0])
circle(10);}}
}
// End union 8th x-beam support
//
translate([-17,0,0])
union(){ // 7th x-beam support
difference(){// differencing hollowed x-beam from original x-beam
union(){//original x-beam union
translate([0,0,36])// reduce z to move longitudinal part down
cube([10,0.8,72],center=true);// make 7mm longer than transverse cube z-value;reduce z to make longitudinal part shorter; must be double of above translate z value
translate([0,0,33])// reduce z to move transverse part down
cube([0.8,10,66],center=true); // reduce z to make transverse part shorter; must be double of above translate z value
}
//End original x-beam union
// translate([0,-40,0]) //to see it better when editing
color("red"){
union(){//hollowed-out x-beam
difference(){//making 'hollow' x-beam
union(){ // old big x-beam
translate([0,0,32])// set to about 60% of longitudinal translate z-value; reduce z to move longitudinal thinner part down
cube([10,0.8,59],center=true);// set to about 60% of longitudinal cube z-value; reduce z to make longitudinal thin part narrower
translate([0,0,36])//set to transverse part z-translate value +3mm; reduce z to move transverse thinner part down
cube([0.8,10,66],center=true); //set to same height as transverse cube z-value; reduce z to make transverse thin part narrower
}
//end union old big x-beam
union(){ // new slim x-beam
translate([0,0,36]) // set same value as original x-beam
cube([5,0.8,72],center=true);// set same value as original x-beam
translate([0,0,36])// set same value as translate z transverse value
cube([0.8,5,66],center=true); // set same value as cube z transverse value
}
//end union new slim x-beam
}
// End making 'hollow' x-beam
}
}//End color red
//end union hollowed out x-beam
}
//end differencing hollowed x-beam from original x-beam
union(){// Double base plate
linear_extrude(height=0.4){
scale([0.9,1.5,0])
circle(7.5);}
linear_extrude(height=0.2){
scale([0.9,1.5,0])
circle(10);}}
}
// End union 7th x-beam support
//
translate([12,0,0])
union(){ // 6th x-beam support
difference(){// differencing hollowed x-beam from original x-beam
union(){//original x-beam union
translate([0,0,25])// reduce z to move longitudinal part down
cube([10,0.8,50],center=true);// make 7mm longer than transverse cube z-value;reduce z to make longitudinal part shorter; must be double of above translate z value
translate([0,0,21.5])// reduce z to move transverse part down
cube([0.8,10,43],center=true); // reduce z to make transverse part shorter; must be double of above translate z value
}
//End original x-beam union
// translate([0,-40,0]) //to see it better when editing
color("red"){
union(){//hollowed-out x-beam
difference(){//making 'hollow' x-beam
union(){ // old big x-beam
translate([0,0,21])//reduce z to move longitudinal thinner part down
cube([10,0.8,36],center=true);//reduce z to make longitudinal thin part narrower
translate([0,0,24.5])//set to transverse part z-translate value +3mm; reduce z to move transverse thinner part down
cube([0.8,10,43],center=true); //set to same height as transverse cube z-value; reduce z to make transverse thin part narrower
}
//end union old big x-beam
union(){ // new slim x-beam
translate([0,0,34])
cube([5,0.8,68],center=true);
translate([0,0,31.5])
cube([0.8,5,63],center=true);
}
//end union new slim x-beam
}
// End making 'hollow' x-beam
}
}//End color red
//end union hollowed out x-beam
}
//end differencing hollowed x-beam from original x-beam
union(){// Double base plate
linear_extrude(height=0.4){
scale([0.9,1.5,0])
circle(7.5);}
linear_extrude(height=0.2){
scale([0.9,1.5,0])
circle(10);}}
}
// End union 6th x-beam support
//
translate([33,0,0])
union(){ // 5th x-beam support
difference(){// differencing hollowed x-beam from original x-beam
union(){//original x-beam union
translate([0,0,16.75])// reduce z to move longitudinal part down
cube([10,0.8,33.5],center=true);// make 7mm longer than transverse cube z-value;reduce z to make longitudinal part shorter; must be double of above translate z value
translate([0,0,13.25])// reduce z to move transverse part down
cube([0.8,10,26.5],center=true); // reduce z to make transverse part shorter; must be double of above translate z value
}
//End original x-beam union
// translate([0,-40,0]) //to see it better when editing
color("red"){
union(){//hollowed-out x-beam
difference(){//making 'hollow' x-beam
union(){ // old big x-beam
translate([0,0,13])// set to about 80% of longitudinal translate z-value; reduce z to move longitudinal thinner part down
cube([10,0.8,20],center=true);// set to about 80% of longitudinal cube z-value; reduce z to make longitudinal thin part narrower
translate([0,0,16.25])//set to transverse part z-translate value +3mm; reduce z to move transverse thinner part down
cube([0.8,10,26.5],center=true); //set to same height as transverse cube z-value; reduce z to make transverse thin part narrower
}
//end union old big x-beam
union(){ // new slim x-beam
translate([0,0,16.75]) // set same value as original x-beam
cube([5,0.8,33.5],center=true);// set same value as original x-beam
translate([0,0,13.25])// set same value as translate z transverse value
cube([0.8,5,26.5],center=true); // set same value as cube z transverse value
}
//end union new slim x-beam
}
// End making 'hollow' x-beam
}
}//End color red
//end union hollowed out x-beam
}
//end differencing hollowed x-beam from original x-beam
union(){// Double base plate
linear_extrude(height=0.4){
scale([0.9,1.5,0])
circle(7.5);}
linear_extrude(height=0.2){
scale([0.9,1.5,0])
circle(10);}}
}
// End union 5th x-beam support

//
translate([52,0,0])
union(){ // 4th x-beam support
difference(){// differencing hollowed x-beam from original x-beam
union(){//original x-beam union
translate([0,0,10.5])// reduce z to move longitudinal part down
cube([10,0.8,21],center=true);// make 7mm longer than transverse cube z-value;reduce z to make longitudinal part shorter; must be double of above translate z value
translate([0,0,7])// reduce z to move transverse part down
cube([0.8,10,14],center=true); // reduce z to make transverse part shorter; must be double of above translate z value
}
//End original x-beam union
// translate([0,-40,0]) //to see it better when editing
color("red"){
union(){//hollowed-out x-beam
difference(){//making 'hollow' x-beam
union(){ // old big x-beam
translate([0,0,7])// set to about 80% of longitudinal translate z-value; reduce z to move longitudinal thinner part down
cube([10,0.8,9],center=true);// set to about 80% of longitudinal cube z-value; reduce z to make longitudinal thin part narrower
translate([0,0,10])//set to transverse part z-translate value +3mm; reduce z to move transverse thinner part down
cube([0.8,10,14],center=true); //set to same height as transverse cube z-value; reduce z to make transverse thin part narrower
}
//end union old big x-beam
union(){ // new slim x-beam
translate([0,0,10.5]) // set same value as original x-beam
cube([5,0.8,21],center=true);// set same value as original x-beam
translate([0,0,7])// set same value as translate z transverse value
cube([0.8,5,14],center=true); // set same value as cube z transverse value
}
//end union new slim x-beam
}
// End making 'hollow' x-beam
}
}//End color red
//end union hollowed out x-beam
}
//end differencing hollowed x-beam from original x-beam
union(){// Double base plate
linear_extrude(height=0.4){
scale([0.9,1.5,0])
circle(7.5);}
linear_extrude(height=0.2){
scale([0.9,1.5,0])
circle(10);}}
}
// End union 4th x-beam support
//
translate([68,0,0])
union(){ // 3rd x-beam support
difference(){// differencing hollowed x-beam from original x-beam
union(){//original x-beam union
translate([0,0,6.75])// reduce z to move longitudinal part down
cube([10,0.8,13.5],center=true);// make 7mm longer than transverse cube z-value;reduce z to make longitudinal part shorter; must be double of above translate z value
translate([0,0,3.25])// reduce z to move transverse part down
cube([0.8,10,6.5],center=true); // reduce z to make transverse part shorter; must be double of above translate z value
}
//End original x-beam union
// translate([0,-40,0]) //to see it better when editing
color("red"){
union(){//hollowed-out x-beam
difference(){//making 'hollow' x-beam
union(){ // old big x-beam
translate([0,0,3.5])// set to about 80% of longitudinal translate z-value; reduce z to move longitudinal thinner part down
cube([10,0.8,2.5],center=true);// set to about 80% of longitudinal cube z-value; reduce z to make longitudinal thin part narrower
translate([0,0,6.5])//set to transverse part z-translate value +3mm; reduce z to move transverse thinner part down
cube([0.8,10,7],center=true); //set to same height as transverse cube z-value; reduce z to make transverse thin part narrower
}
//end union old big x-beam
union(){ // new slim x-beam
translate([0,0,7]) // set same value as original x-beam
cube([5,0.8,14],center=true);// set same value as original x-beam
translate([0,0,3.5])// set same value as translate z transverse value
cube([0.8,5,7],center=true); // set same value as cube z transverse value
}
//end union new slim x-beam
}
// End making 'hollow' x-beam
}
}//End color red
//end union hollowed out x-beam
}
//end differencing hollowed x-beam from original x-beam
union(){// Double base plate
linear_extrude(height=0.4){
scale([0.9,1.5,0])
circle(7.5);}
linear_extrude(height=0.2){
scale([0.9,1.5,0])
circle(10);}}
}
// End union 3rd x-beam support
//
translate([83.75,0,0])
union(){ // 2nd triple support under base
translate([0,0,3.5])
cube([10,0.8,7],center=true);
translate([0,3,3.5])
cube([10,0.8,7],center=true);
translate([0,-3,3.5])
cube([10,0.8,7],center=true);
translate([-4.5,0,2.9])
cube([0.8,10,5.8],center=true);
union(){// Double base plate
linear_extrude(height=0.4){
scale([0.9,1.5,0])
circle(7.5);}
linear_extrude(height=0.2){
scale([0.9,1.5,0])
circle(10);}}}
//
translate([95.5,0,0])
union(){ // 1st triple support under base
translate([0,0,1.9])
cube([10,0.8,3.8],center=true);
translate([0,3,1.9])
cube([10,0.8,3.8],center=true);
translate([0,-3,1.9])
cube([10,0.8,3.8],center=true);
translate([-4.5,0,1.25])
cube([0.8,10,2.5],center=true);
union(){// Double base plate
linear_extrude(height=0.4){
scale([0.9,1.5,0])
circle(7.5);}
linear_extrude(height=0.2){
scale([0.9,1.5,0])
circle(10);}}}

//
translate([105,0,0])
union(){ // mouse ear without support-x-beam
linear_extrude(height=0.4){
scale([0.9,1.5,0])
circle(7.5);}
linear_extrude(height=0.2){
scale([0.9,1.5,0])
circle(10);}}}
//
union(){ // currently unused union of sacrificial first tounge for reusable enclosure to be printed with the fin:
//difference(){ // Making the sacrificial tounge.
//scale([159,34,0.3]) // scale([159,34,0.05]) for 5mm high tounge
//linear_extrude([0,0,0.5])
//circle(1);
//scale([157,32,0.3]) // scale([159,34,0.05]) for 5mm high tounge
//linear_extrude([0,0,0.5])
//circle(1);}}
//difference(){ // Closed bottom plate same size as tounge. Differencing outer diameter of tounge from itself with 0.2mm z difference:
//scale([159,34,0.05])
//linear_extrude([0,0,0.5])
//circle(1);
//translate([0,0,0.2]) // lift otherwise identical scaled circle by 0.2mm to make thin base
//scale([159,34,0.05])
//linear_extrude([0,0,0.5])
//circle(1);
//scale([139,14,0.05]) // smaller inner scaled circle
//linear_extrude([0,0,0.5])
//circle(1);// Removing centre of closed bottom to convert it into a "inverted brim"
} // End of differencing bottom plate.
//End of differencing bottom plate.
//
translate([98.3,0,124.3]) // move fin and UTFB into position on supports to work with rotate([0,-80.5,0]) // rotate fin and UTFB so trailing edge extreme points are level.
//translate([112,0,124.7]) // move fin and UTFB into position on supports; works with rotate([0,-73.85,0]) // Rotate so that print volume height is 199.85mm
rotate([0,-80.496,0]) // rotate fin and UTFB so trailing edge extreme points are level for most fins. Adjust Y value to change rotation angle and Z-height of print
//rotate([0,-73.85,0]) // Rotate so that print volume height is 199.85mm
// End of code used for positioning of fin on supports
//
rotate([90,0,0]) // rotate fin and UTFB

difference(){ // Differencing threaded rods from fin and UTFB. Includes entire rest of code.
union(){ // Union of fin and plug and UTFB to allow differencing of threaded rod holes. Goes to end of UTFB and includes differencing of BSP and pin holes.

//resize([0,240,0], auto=true) // resizes Finfoil fin file to 240mm height.

resize([0,238.9,0],auto=true) // use this for unchanged dimensions of Wanderfalke fins. Changed from 0,240,0 on 2017-04-14

//import("/media/p/Data/3D_printing_stuff/finFoils/WF2-blef-1-40mm-LR.stl"); // Low-res BLEF 40mm thick

//import("/media/p/Data/3D_printing_stuff/finFoils/WF2-smooth-1-40mm-LR.stl"); // Low resolution SLEF 40mm wide

//import("/media/p/Data/3D_printing_stuff/finFoils/Wanderfalke_2-2-2-7-E168.stl"); // Low resolution with Eppler 168 foil profile; 20mm/1.3mm

//import("/media/p/Data/3D_printing_stuff/finFoils/Wanderfalke_2-2-2-7.stl"); // Low-resolution with my profile to compare to Eppler 168. 20mm/1.3mm

//import("/media/p/Data/3D_printing_stuff/finFoils/Wanderfalke_2_1_4_5_v1.1.1-highres.stl"); // High resolution BLEF, old version

//import("/media/p/Data/3D_printing_stuff/finFoils/Wanderfalke_2_1_v1.1.1-highres.stl"); // High resolution SLEF, old version.

//resize([196.065,238.9,30]) // for Wanderfalke_2_2_2_6and7_HR.stl. Use this for changing thickness without changing outline.
//import("/media/p/Data/3D_printing_stuff/finFoils/Wanderfalke_2_2_2_6_HR.stl"); // High resolution SLEF 20mm/0.8mm thickness

//import("/media/p/Data/3D_printing_stuff/finFoils/Wanderfalke_2_2_2_7_HR.stl"); // High resolution SLEF 20mm/1.3mm thickness

resize([199.2545,238.9,30]) // for Wanderfalke_2_1_6_5_HR.stl and 2-1-6-3HR.stl. Use this for changing thickness without changing outline.
//import("/media/p/Data/3D_printing_stuff/finFoils/Wanderfalke_2_1_6_5_HR.stl"); // High resolution BLEF 20mm/0.8mm thickness.

import("/media/p/Data/3D_printing_stuff/finFoils/Wanderfalke_2_1_6_3_HR.stl"); // High resolution BLEF 20mm/1.3mm thickness

//import("/media/p/Data/3D_printing_stuff/finFoils/INSERTNAMEHERE.stl"); // spare slot for later

//import("/media/p/Data/3D_printing_stuff/finFoils/INSERTNAMEHERE.stl"); // spare slot for later

//import("/media/p/Data/3D_printing_stuff/finFoils/INSERTNAMEHERE.stl"); // spare slot for later

//import("/media/p/Data/3D_printing_stuff/finFoils/INSERTNAMEHERE.stl"); // spare slot for later

color("blue") // makes base plate blue in preview
// translate([-41.25,-2,0]) // translates base plate for 20mm wide fins
translate([-47.25,-2,0]) // translates base plate for 40mm wide fins
//cube([77,4,9.2], center=true); // Base plate size for 20mm wide Wanderfalke fins. Disable this base plate when printing fin without UTFB. The base plate purpose is to get rid of gaps between rounded UTFB tab edges and bottom of plug.
cube([90,4,9.2], center=true); // Base plate size for 40mm wide Wanderfalke fins. Disable this base plate when printing fin without UTFB. The base plate purpose is to get rid of gaps between rounded UTFB tab edges and bottom of plug.
translate([-121,-22, -4.5]) // Moves the UTFB. Change translate values to move it in place for different fin base lengths. For Wanderfalke_1-9 use translate([-116.385,-22, -4.5])

rotate([0,0,90]) // rotates the UTFB

union(){ // Union of UTFB to allow importing the entire UTFB-tab into another OpenScad file

difference(){ // To remove the BSP holes by 'differencing' the UTFB-Mould from it:

rotate([90,0,0]){ // To rotate the UTFB; It was required to allow 2D printing of outline in an earlier development step:

union(){ // union of UTFB to allow rotating

color("green",0.5){ // This makes the fin base green in Preview:

minkowski(){ // Minkowski sum three times to round the base edges:
minkowski(){
minkowski(){

linear_extrude (height = 128, centre = false, twist = 0)
// linear_extrude (height = 152.9, centre = false, twist = 0) // Linear Extrude length of the fin base is reduced to compensate for elongation due to Minkowski sum. Actual length after Minkowski was 150mm in initial UTFB versions (height=146); reduced to 135mm (height = 131) in Wanderfalke_1-9-cored_UTFB_2-3.scad. For Wanderfalke_2-1 use height = 148 (first versions had 146 but that makes front of base float above print bed)

polygon(points=[[0,3.1],[0,6.9],[1.5,7.1],[19,7.1],[19,2.9],[1.5,2.9]]); // Polygon points brought closer together to compensate for enlargement due to Minkowski sum. Without Minkowski sum use the actual intended size. // 9.2mm wide fin base with small taper at bottom to ease entry into the fin box. // Use these dimensions instead for 9.2mm fin base without taper: polygon(points=[[0,2.9],[0,7.1],[19,7.1],[19,2.9]]);

cylinder(r=1,h=1); } // 3 cylinders, each rotated differently, to round off the fin base edges with the Minkowski Sum function:

rotate([0,90,0])
cylinder(r=1,h=1); }

rotate([90,0,0])
cylinder(r=1,h=1); }

} // defines end of GREEN color for base:
} // end of union to be rotated
} // end of rotate base

color("red"){// Front screw hole red
rotate ([0,90,0])
translate([-4.5,-125,-20])
cylinder (r=2.1,h=45);}// Front screw hole

// Cylinders for ball spring plungers etc to be differenced:
translate([7,-4,9.1])// move aft pin location
cylinder(h = 20, r = 2.5, center = true); // Hole for aft pin
// End aft pin

translate([6.5,-13,9.1]) // Move cylinder cutout for aft BSP
union(){// Aft BSP hole and wider parts together
cylinder(h = 20, r = 4.1, center = true); // Aft BSP:
translate([0,0,-9.1]) // Move wide part to other side
cylinder(h = 1.25, r = 4.35, center = true);
cylinder(h = 1.25, r = 4.35, center = true);} // BSP outer wide part.
// End aft BSP hole

translate([6.5,-23.5,9.1])// Move 2nd from aft BSP hole. X-value for new single line BSP version. Move cylinder cutout for BSP; change Y-axis to move aft or forward; X-axis for up and down.
//translate([9,-27,9.1])// X-value for older staggered BSP version. Move cylinder cutout for BSP; change Y-axis to move aft or forward
union(){//to move BSP hole and wide parts of hole together
cylinder(h = 20, r = 4.1, center = true); // 2nd BSP from aft:
translate([0,0,-9.1])// Move cylinder cutout for BSP
cylinder(h = 1.25, r = 4.35, center = true);// 2nd BSP outer wide part
cylinder(h = 1.25, r = 4.35, center = true);} // wide part other side
// End 2nd from aft BSP hole

translate([6.5,-34,9.1])// Move 3rd from aft BSP hole; change Y-axis to move aft or forward
union(){//to move BSP and outer wide parts together
cylinder(h = 20, r = 4.1, center = true);// 3rd
translate([0,0,-9.1])// Move cylinder cutout for BSP
cylinder(h = 1.25, r = 4.35, center = true);// 3rd wide part
cylinder(h = 1.25, r = 4.35, center = true);}// wide part other side
// End 3rd from aft BSP hole

//translate([13,-66,9.1])// Move unused middle BSP.
//cylinder(h = 20, r = 4.1, center = true);// Unused 4th BSP hole

//translate([13,-83,9.1])// Move unused 5th BSP hole
//cylinder(h = 20, r = 4.1, center = true);// Unused 5th BSP hole

translate([6.5,-92,9.1])// Move 6th (3rd from fore) BSP hole
union(){// move BSP and wide part together
cylinder(h = 20, r = 4.1, center = true);// 6th
translate([11,-90,0])// Move cylinder cutout for BSP
cylinder(h = 1.25, r = 4.35, center = true);// 6th wide part
translate([0,0,-9.1])
cylinder(h = 1.25, r = 4.35, center = true);}// 6th wide part
// End 6th (third from fore) BSP hole

translate([6.5,-106,9.1])// Move 7th (2nd from fore) BSP hole
union(){ // BSP hole and outer wide part moving together
//translate([9,-110,9.1])// Move cylinder cutout for BSP
cylinder(h = 20, r = 4.1, center = true);// 7th
//translate([9,-110,9.1])// Move cylinder cutout for BSP
cylinder(h = 1.25, r = 4.35, center = true);// 7th wide part
translate([0,0,-9.1])
cylinder(h = 1.25, r = 4.35, center = true);}// 7th wide part
// End 7th (2nd from fore) BSP hole

translate([6.5,-116,9.1])// Move 8th (fore) BSP hole
union(){ // BSP hole and wider part moving together
//translate([7,-130,9.1])// Move cylinder cutout for BSP
cylinder(h = 20, r = 4.1, center = true);// 8th
translate([0,0,-9.1])
cylinder(h = 1.25, r = 4.35, center = true);// 8th wide part
cylinder(h = 1.25, r = 4.35, center = true);}// 8th wide part

translate([7,-125,9.1])
cylinder(h = 20, r = 2.5, center = true);// Front pin hole.

union(){ // to be differenced so bottom corners round off
rotate([0,0,-90])
translate([113,15,-2])
linear_extrude (height = 12, centre = true, twist = 0)
difference(){
translate([0,-20,0])
square(20);
circle(r=20);}

translate([0,0,0])
rotate([0,0,-180])
translate([-16,15,-2])
linear_extrude (height = 12, centre = true, twist = 0)
difference(){
translate([0,-20,0])
square(20);
circle(r=20);}
}// End union for bottom corner rounding

} // End of differencing BSP holes from the UTFB.
} // End of union of UTFB to allow importing the entire UTFB-tab into another OpenScad file
// End of union of fin and plug and UTFB to allow differencing of threaded rod holes. Goes to end of UTFB and includes differencing of BSP and pin holes.
}
union(){ // Threaded rods holes and internal stabilisers
// Using high tensile steel screws M5 various lengths, with heads 8.4mm diam x 5mm deep
// Available lengths (including 5mm head, then add 3mm to each to make head disappear): 135mm (5); 105mm (3 only); 95mm (7); 85mm (5); 75mm (1); 65mm (4); 45mm (5); 35mm (5); 25mm (5)
// Using stainless steel rods of 5mm or 6mm diameter, any length.

color ("red"){ // making bolt holes and stabiliser holes red in preview for easier editing
translate([0,0,0.0]) // Moves the union of threaded rod holes. Change the Z value to "4" or "6" to temporarily move rod holes out of fin for editing; set to 0.9 to 1.6 to check if sufficient thickness is left between wall and rod hole. Nothing red should show at 0.9
union(){ // Bolt hole cylinders

//translate([-21,-25,0])
//rotate([-90,0,0])
//union(){ // Union of bolt hole 1 (forward):
//cylinder(h =48, r1 = 2.45, r2 = 2.45, center = true/false);
//cylinder(h = 8, r1 = 3.9, r = 4.2, center = true/false);}

translate([-41.3,-25,0])
rotate([0,0,-17])
rotate([-90,0,0])
//cylinder(h =27.1, r1 = 3.75, r2 = 3.75, center = true/false); // Bolt hole 1 for 7.3mm carbon arrow tubes short sleeve.
//cylinder(h =191, r1 = 3.75, r2 = 3.75, center = true/false); // Bolt hole 1 for 7.3mm carbon arrow tubes long sleeve.
cylinder(h =27.1, r1 = 3.85, r2 = 3.85, center = true/false); // USE THIS FOR PRINTING. Bolt hole 1 for 7.5mm carbon arrow tubes short sleeve.
//cylinder(h =188, r1 = 3.85, r2 = 3.85, center = true/false); // Bolt hole 1 for 7.5mm carbon arrow tubes long sleeve.
//cylinder(h =188, r1 = 3.85, r2 = 3.85, center = true/false); // Bolt hole 1 for 7.5mm carbon arrow tubes extra long sleeve.
//
translate([-49.2,-25,0])
rotate([0,0,-17])
rotate([-90,0,0])
//union(){// Bolt hole 2 for 5mm HTS bolt with head:
//cylinder(h =138, r1 = 2.45, r2 = 2.45, center = true/false);
//cylinder(h = 8, r1 = 3.9, r = 4.2, center = true/false);}

//cylinder(h =190, r1 = 2.95, r2 = 2.95, center = true/false); // Bolt hole 2 for 6mm SS threaded rod:
//cylinder(h =27.1, r1 = 2.95, r2 = 2.95, center = true/false); // Bolt hole 2 for 6mm SS threaded rod short sleeve
//cylinder(h =27.1, r1 = 3.75, r2 = 3.75, center = true/false); // Bolt hole 2 for 7.3mm carbon arrow tubes short sleeve.
//cylinder(h =200, r1 = 3.75, r2 = 3.75, center = true/false); // Bolt hole 2 for 7.3mm carbon arrow tubes long sleeve.
cylinder(h =27.1, r1 = 3.85, r2 = 3.85, center = true/false); // USE THIS FOR PRINTING. Bolt hole 2 for 7.5mm carbon arrow tubes short sleeve.
//cylinder(h =149, r1 = 3.85, r2 = 3.85, center = true/false); // Bolt hole 2 for 7.5mm carbon arrow tubes long sleeve.
//cylinder(h =175, r1 = 3.85, r2 = 3.85, center = true/false); // Bolt hole 2 for 7.5mm carbon arrow tubes extra long sleeve.
//
translate([-57.1,-25,0])
rotate([0,0,-17])
rotate([-90,0,0])
//union(){// Bolt hole 3 for 5mm HTS bolt with head
//cylinder(h = 138, r1 = 2.45, r2 = 2.45, center = true/false);
//cylinder(h = 8, r1 = 3.9, r = 4.2, center = true/false);}
//cylinder(h = 200, r1 = 2.95, r2 = 2.95, center = true/false); // Bolt hole 3 for 6mm SS threaded rod:
//cylinder(h = 27.1, r1 = 2.95, r2 = 2.95, center = true/false); // Bolt hole 3 for 6mm SS threaded rod short sleeve:
//cylinder(h =27.1, r1 = 3.75, r2 = 3.75, center = true/false); // Bolt hole 3 for 7.3mm carbon arrow tubes short sleeve.
//cylinder(h =125, r1 = 3.75, r2 = 3.75, center = true/false); // Bolt hole 3 for 7.3mm carbon arrow tubes long sleeve.
cylinder(h =27.1, r1 = 3.85, r2 = 3.85, center = true/false); // USE THIS FOR PRINTING. Bolt hole 3 for 7.5mm carbon arrow tubes short sleeve.
//cylinder(h =99, r1 = 3.85, r2 = 3.85, center = true/false); // Bolt hole 3 for 7.5mm carbon arrow tubes long sleeve.
//cylinder(h =161, r1 = 3.85, r2 = 3.85, center = true/false); // Bolt hole 3 for 7.5mm carbon arrow tubes extra long sleeve.
//
translate([-65,-25,0])
rotate([0,0,-17])
rotate([-90,0,0])
//union(){// Bolt hole 4 for HTS bolt with head
//cylinder(h = 138, r1 = 2.45, r = 2.45, center = true/false);
//cylinder(h = 8, r1 = 3.9, r = 4.2, center = true/false);
//cylinder(h = 140, r1 = 2.45, r = 2.45, center = true/false); // Bolt hole 4 for 5mm SS threaded rod
//cylinder(h = 27.1, r1 = 2.45, r = 2.45, center = true/false);// Bolt hole 4 for 5mm SS threaded rod short sleeve
//cylinder(h =27.1, r1 = 3.75, r2 = 3.75, center = true/false); // Bolt hole 4 for 7.3mm carbon arrow tubes short sleeve.
//cylinder(h =90, r1 = 3.75, r2 = 3.75, center = true/false); // Bolt hole 4 for 7.5mm carbon arrow tubes long.
cylinder(h =27.1, r1 = 3.85, r2 = 3.85, center = true/false); // USE THIS FOR PRINTING. Bolt hole 4 for 7.5mm carbon arrow tubes short sleeve.
//cylinder(h =76, r1 = 3.85, r2 = 3.85, center = true/false); // Bolt hole 4 for 7.5mm carbon arrow tubes long.
//cylinder(h =143, r1 = 3.85, r2 = 3.85, center = true/false); // Bolt hole 4 for 7.5mm carbon arrow tubes extra long.
//
translate([-72.9,-25,0])
rotate([0,0,-17])
rotate([-90,0,0])
//union(){// Bolt hole 5 (aft) for HTS bolt with head:
//cylinder(h = 68, r1 = 2.45, r = 2.45, center = true/false);
//cylinder(h = 8, r1 = 3.9, r = 4.2, center = true/false);
//cylinder(h = 70, r1 = 2.45, r = 2.45, center = true/false); // Bolt hole 5 (aft) for 5mm SS threaded rod :
//cylinder(h = 27.1, r1 = 2.45, r = 2.45, center = true/false); // Bolt hole 5 (aft) for 5mm SS threaded rod short sleeve:
//cylinder(h =27.1, r1 = 3.75, r2 = 3.75, center = true/false); // Bolt hole 5 for 7.3mm carbon arrow tubes short sleeve.
//cylinder(h =63, r1 = 3.75, r2 = 3.75, center = true/false); // Bolt hole 5 for 7.3mm carbon arrow tubes long.
cylinder(h =27.1, r1 = 3.85, r2 = 3.85, center = true/false); // USE THIS FOR PRINTING. Bolt hole 5 for 7.5mm carbon arrow tubes short sleeve.
//cylinder(h =51, r1 = 3.85, r2 = 3.85, center = true/false); // Bolt hole 5 for 7.5mm carbon arrow tubes long.
//cylinder(h =119, r1 = 3.85, r2 = 3.85, center = true/false); // Bolt hole 5 for 7.5mm carbon arrow tubes extra long.
//
translate([-80.8,-25,0])
rotate([0,0,-17])
rotate([-90,0,0])
//cylinder(h =27.1, r1 = 3.75, r2 = 3.75, center = true/false); // Bolt hole 6 for 7.3mm carbon arrow tubes short.
//cylinder(h =36, r1 = 3.75, r2 = 3.75, center = true/false); // Bolt hole 6 for 7.3mm carbon arrow tubes long.
cylinder(h =27.1, r1 = 3.85, r2 = 3.85, center = true/false); // USE THIS FOR PRINTING. DO NOT PRINT FOR 20mm WIDE FINS. Bolt hole 6 for 7.5mm carbon arrow tubes short.
//cylinder(h =87, r1 = 3.85, r2 = 3.85, center = true/false); // . Bolt hole 6 for 7.5mm carbon arrow tubes long.
//
//translate([-84.6,-25,0])
//rotate([0,0,-17])
//rotate([-90,0,0])
//cylinder(h =27, r1 = 3.75, r2 = 3.75, center = true/false); // Bolt hole 7 for 7.5mm carbon arrow tubes long.

}
// End of bolt cylinders

union(){// Internal stabilisers to stop fin walls without infill from warping

translate([-105,220,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // distal 7thA internal stabiliser

translate([-125,220,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // distal 7thB internal stabiliser

translate([-100,200,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // distal 7thC internal stabiliser

translate([-80,182,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); //distal 7thD internal stabiliser

translate([-85,213,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // distal 7thE internal stabiliser

translate([-69,195,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 6thA internal stabiliser

translate([-65,215,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 6thB internal stabiliser

translate([-58,160,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 6thC internal stabiliser

translate([-55,180,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 6thD internal stabiliser

translate([-45,205,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 6thE internal stabiliser

translate([-20,190,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 6thF internal stabiliser

translate([-35,183,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 5thA interal stabiliser

translate([-0,180,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 5thB interal stabiliser

translate([-5,160,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 5thC interal stabiliser

translate([17,165,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 5thD interal stabiliser

translate([-25,158,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 4thA interal stabiliser

translate([-13,135,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 4thB interal stabiliser

translate([-19,115,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 4thC interal stabiliser

translate([-17,174,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 4thD interal stabiliser

translate([-28,132,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 3rdA additional internal stabilisers for use with short bolt cylinders

translate([11,119,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 3rdB additional internal stabilisers for use with short bolt cylinders

translate([18,140,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 3rdC additional internal stabilisers for use with short bolt cylinders

translate([-45,134,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 3rdD additional internal stabilisers for use with short bolt cylinders

translate([-38,150,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 3rdE additional internal stabilisers for use with short bolt cylinders

translate([-32,105,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 3rdF additional internal stabilisers for use with short bolt cylinders

translate([-50,105,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 3rdG additional internal stabilisers for use with short bolt cylinders

translate([5,100,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 3rdH additional internal stabilisers for use with short bolt cylinders

translate([-37,80,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 2ndA additional internal stabilisers for use with short bolt cylinders

translate([-1,80,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 2ndB additional internal stabilisers for use with short bolt cylinders

translate([-62,80,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 2ndC additional internal stabilisers for use with short bolt cylinders

//translate([-8,57,0])
//cylinder(h=20, r1=0.055, r2=0.055, center=true); // 2ndD additional internal stabilisers for use with short bolt cylinders

translate([-75,57,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 2ndE additional internal stabilisers for use with short bolt cylinders

translate([-45,57,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 2ndF additional internal stabilisers for use with short bolt cylinders

//translate([-17,33,0])
//cylinder(h=20, r1=0.055, r2=0.055, center=true); // 2ndG additional internal stabilisers for use with short bolt cylinders

translate([-50,82,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 2ndH additional internal stabilisers for use with short bolt cylinders

translate([-50,40,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 1stA proximal additional internal stabilisers for use with short bolt cylinders

translate([-21,10,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 1stB proximal additional internal stabilisers for use with short bolt cylinders

//translate([-56,17,0])
//cylinder(h=20, r1=0.055, r2=0.055, center=true); // 1stC proximal additional internal stabilisers for use with short bolt cylinders

translate([-96,17,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 1stD proximal additional internal stabilisers for use with short bolt cylinders

translate([-88,37,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 1stE proximal additional internal stabilisers for use with short bolt cylinders

translate([-57,62,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 1stF proximal additional internal stabilisers for use with short bolt cylinders

translate([-75,17,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 1stG proximal additional internal stabilisers for use with short bolt cylinders

translate([-68,37,0])
cylinder(h=20, r1=0.055, r2=0.055, center=true); // 1stH proximal additional internal stabilisers for use with short bolt cylinders

}
// End internal stabilisers instead of infill

}
// End red color
}
// End of union of threaded rods holes and internal stabilisers
}
// End of differencing threaded rods from fin and UTFB
}
// End union of it all

Posted : 17/04/2017 5:03 am
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Re: Printing a large surfboard fin

Meanwhile, I have succeeded printing a PLA fin with 20% infill and surf it without it snapping off.

Carbon-arrow-shafts make it possible. I had a few broken leftovers lying around and eventually got the idea to use them in the fins. They have an excellent strength to weight ratio.

I have also printed a fin from PLA that has only 5% infill, but still feels strong enough (with the 6 arrow shafts) for surfing. But it's so far untested.
.

The main issue that has transpired from the surf tests is this: The fins let in water if they are printed with hollow spaces and not filled with resin thereafter.

The problem is that the air temperature, and more so the fin temperature if the sun shines on it, is much higher than the water temperature.

As the fin heats up, it vents air through micro-holes in the print, and then when it hits the colder water, it cools and the air in the fin contracts, creating suction. So it sucks in sea water. Not good.

I've decided to go back to printing hollow fins, and then fill them with epoxy + q-cel mix. No empty spaces, no water ingress.

Posted : 30/04/2017 12:39 pm
david.b14
(@david-b14)
Honorable Member
Re: Printing a large surfboard fin

Regarding PLA that will be waterproof, have your tried the wood PLA? I have notice that my wood pla prints are water tight, maybe due to the wood particles. You may enjoy this video of a guy who printed a boat propeller using wood PLA:

Posted : 30/04/2017 1:11 pm
erick.v
(@erick-v)
Estimable Member
Re: Printing a large surfboard fin

Regarding PLA that will be waterproof, have your tried the wood PLA? I have notice that my wood pla prints are water tight, maybe due to the wood particles. You may enjoy this video of a guy who printed a boat propeller using wood PLA:

That wood propeller failed miserably and the only reason it lasted past the initial test is because he varnished it. It may not matter in the case of this since is going to be filled with resin.

Posted : 02/05/2017 1:28 am
Maxim
(@maxim)
Eminent Member
Re: Printing a large surfboard fin



The main issue that has transpired from the surf tests is this: The fins let in water if they are printed with hollow spaces and not filled with resin thereafter.

The problem is that the air temperature, and more so the fin temperature if the sun shines on it, is much higher than the water temperature.

As the fin heats up, it vents air through micro-holes in the print, and then when it hits the colder water, it cools and the air in the fin contracts, creating suction. So it sucks in sea water. Not good.

Have you considered trying an epoxy coating (inside or outside) to seal the pores?

I have used a product named ETC-3D to coat some printed parts.
https://www.smooth-on.com/product-line/xtc-3d/

It is very thick when mixed straight, but can be thinned with acetone (fingernail polish remover). Part of the idea is the thinned XTC-3D penetrates the wall to make it stronger.
You'd probably want to try it on a scrap piece to see how much you want to thin it down. Obviously if you apply it to the exterior it would increase the size of the part a little, but if you poured some thinned XTC-3D inside you could rotate it like rotomolding (rotational molding) to coat the inside and perhaps it would be water-tight.

I have found it cures much faster in a heated enclosure.

Maxim

Posted : 03/05/2017 5:56 pm
vitor.j
(@vitor-j)
Trusted Member
Re: Printing a large surfboard fin

Hi.

Any progress on this project?
I want to test 3D printing some kitesurf fins. I'm thinking nylon could be a good candidate, but don't know if its flexibility could be a problem.

Posted : 16/05/2017 1:06 pm
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Re: Printing a large surfboard fin

Hi.

Any progress on this project?
I want to test 3D printing some kitesurf fins. I'm thinking nylon could be a good candidate, but don't know if its flexibility could be a problem.

I found nylon to be a pain due to the warping and it's hygroscopic properties.

It's non-stick properties when used as a mold were far inferior to silicone molds.

So in my experience, nylon is a poor choice for fin printing.

See http://www.swaylocks.com/comment/529567#comment-529567

Posted : 16/05/2017 1:45 pm
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Printing a large surfboard fin from PLA

I have finally succeeded to print several fins with good results.
.
Longer term use will show if they snap off after repeated use, but for now, they work, and they work very well. I'm getting good feedback from surfers whom I've sent fins to test out.
.
Complex shapes can now be tested with short lead time to find what works best.
.
So here it is in a nutshell: The easy way to make a fin....
.
Funny how after a lot of effort and learning the solution turns out to be easy!
.
I started my attempts to make a fin about 13 months ago.
.
I bought the 3D printer 10 months ago and started to learn a bit of OpenScad designing and to learn how the printer works.
.
1) Use the easiest print material: PLA. Use transparent varieties to allow non-destructive evaluation of the prints.
2) Select all the 'Quality (slower slicing)' options in Slic3r, namely: Extra perimeters if needed; Ensure vertical shell thickness; Avoid crossing perimeters; Detect thin walls; Detect bridging parameters.
3) Print external perimeters first. Seam position depends on the exact fin shape.
4) Print with 100% rectilinear infill, aligned at 0deg and 90deg to the longitudinal axis of the fin.
5) Design a support system to allow to print the fin with trailing edge up or down, to increase strength (inter-layer adhesion is the weakest link in FFD printing).
6) Print in an enclosure and keep it closed for the entire print. Even small temperature changes cause minute layer shifts that are very obvious on a fin.
7) Use a silicone sock for the hotend. Otherwise, fine PLA debris will accumulate in molten form on the hotend, until it drips off and ruins your print.
8) Change the Start-G-code and the End-G-code so that the extruder gets parked at z 200 before and after each print. This results in very consistent temperature of the PINDA probe during the pre-print calibration process, and the first layer turns out perfect every time. Poor first layer will ruin your fin print potentially after much plastic has been wasted.
.
Printing with a solid base and infill in the tip works, too. See photo attached. But for now I'll just print solidly. Once I have a perfected fin shape, I might return to the more labour-intensive carbon-rod insert versions to minimise weight while keeping or improving stiffness and mechanical strength.
.
Much thanks to Hans, the developer of finFoil. https://www.google.com.au/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwiJoo_HsMHVAhXBnpQKHSCwCn4QFggoMAA&url=http%3A%2F%2Fwww.finfoil.io%2F&usg=AFQjCNEBYgyZEaNftNA04hFCvczuomlkOg
Without finFoil, this would not have worked; and to the Swaylocks members and Prusa printer forum members for all the help and support. And thanks to all the busy beavers contributing to all the Open Source stuff that is required to pull this off: OpenScad, Linux / Ubuntu, RepRap printer developers and so on.

Posted : 06/08/2017 2:48 am
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Links to some reviews

http://www.swaylocks.com/comment/539891#comment-539891

http://www.swaylocks.com/comment/539523#comment-539523

Posted : 06/08/2017 3:08 am
Page 4 / 4
Share: