Notifications
Clear all

Printing a large surfboard fin  

Page 1 / 4
  RSS
MrMik
(@mrmik)
Honorable Member
Printing a large surfboard fin

I'm trying to print a large surfboard fin, using the full size of the i3 MK2 printer's print volume.

It's a very difficult object to print, because it is thin, but long and tall, and must have great mechanical strength.

I keep getting failed prints, but there is some progress, many lessons have been learned and there are undoubtedly many more to come.

Any ideas and suggestions to improve the situation will be most welcome! 🙂


Background:

So far, fins of this size have been printed on very expensive industrial printers with heated chambers, from polycarbonate, but their strength was not quite sufficient, eventually they snap off just above the fin box.

Roy Stewart designed and sold a few fins to me, but he does no longer sell the large fins that I call Gull-Whale fin, because they snap off. See: https://www.facebook.com/RoyBoards/?fref=nf

The fin is based on the Geoff McCoy Gullwing fin template. See: http://www.mccoysurfboards.com/mccoy-fins

I designed a Gullwing and a Gull-whale fin using a fabulous program named finFoil.
See: http://hrobeers.github.io/finFoil/ http://www.finfoil.io/
The developer of finFoil was so kind to render high resolution STL files for me, you can see them here:
http://finfoil.io/s/3D/zfproos46yd6czjqrai1at9dnty1s6pc
http://finfoil.io/s/3D/xdhx5mc7ebdz71uw4h77yaz3ritfhheh

I designed the fin tab using OpenScad. I call it the 'Universal Tough Fin Base' (UTFB) and I hope it will allow the fin to be inserted and removed without tool use or screws. That will allow swapping of fins in the water, for blind testing of different fin designs, and increase safety because the fin will come out if it hits an obstacle, like a rock or another surfer. The fin needs to float so there is a chance to get it back when it comes out of the box while surfing.

Posted : 22/12/2016 11:57 pm
david.b14
(@david-b14)
Honorable Member
Re: Printing a large surfboard fin

Are you printing the object to make a mold or trying print the product that will go on the surfboard? If printing for a mold could you slice the object into small parts because the failure rate goes high as the objects get bigger. Then you would just glue the parts together to make the mold.

Posted : 23/12/2016 12:07 am
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Re: Printing a large surfboard fin

Here is the OpenScad file for the current iteration of the fin I call 'Wanderfalke' (Peregrine falcon).

You can download the STL file for the fin from the link in the first post and insert the correct links in the code, so that OpenScad finds the file on your computer.

The attached screenshots show what it looks like in OpenScad preview and rendered.

// Wanderfalke-2-1_UTFB_V1-4-x includes lengthening of the UTFB to be flush with the forward knuckle and "Mouse Ears" against falling over on the print bed.
// Wanderfalke-2-1_UTFB_1-5-0 has mini-cylinders of 0.1mm radius to make the fin base solid for mechanical strength.
// v 1-5-0-refines design to be printed front side down.
// V 1-5-0-4-x is intended to have a thin continuous base to prevent moves between parts and sagging of overhangs
// V1-5-1-x uses the high resolution STL fin file.

$fn=8;
// Rectangular bottom plate joining the rounded pads
translate([29,0,-10])
cube ([1,220,20]);

// Blue side stabilisers
color("blue"){
//Union stabiliser 1
union(){translate([30,45,0])
rotate([0,90,0])
rotate([180,0,0])
rotate([0,0,-90])
union(){
intersection(){
cylinder(h = 38, r1 = 30, r2 = 1, center = true/false);
rotate([0,-90,0])
cube([80,80,0.8], center=true);}}}

// Union stabiliser 2
union(){
translate([30,80,0])
rotate([0,90,0])
rotate([180,0,0])
rotate([0,0,-90])
union(){
intersection(){
cylinder(h = 21, r1 = 30, r2 = 1, center = true/false);
rotate([0,-90,0])
cube([80,80,0.8], center=true);}}}

// Union stabiliser 3
union(){
translate([30,205,0])
rotate([0,90,0])
rotate([180,0,0])
rotate([0,0,-90])
union(){
intersection(){
cylinder(h = 38.5, r1 = 30, r2 = 1, center = true/false);
rotate([0,-90,0])
cube([100,80,0.8], center=true);}}}}

// Turqoise for front wall
color("turquoise"){

// Removing the fin area from the thin wall so it does not interfere with the internal structure of the fin and base
difference(){

translate([-50,0,-0.4])
// The thin continuous wall at the leading edge will need to be removed after printing.

cube ([80,220,0.8]);

// Thin vertical slices to prevent warping forces building up along the length of the wall, turning it into a lattice:
translate([-40,5,-0.4])
cube([70,0.5,0.8]);
translate([-40,10,-0.4])
cube([70,0.5,0.8]);
translate([-40,15,-0.4])
cube([70,0.5,0.8]);
translate([-40,20,-0.4])
cube([70,0.5,0.8]);
translate([-40,25,-0.4])
cube([70,0.5,0.8]);
translate([-40,30,-0.4])
cube([70,0.5,0.8]);
translate([-40,35,-0.4])
cube([70,0.5,0.8]);
translate([-40,40,-0.4])
cube([70,0.5,0.8]);
translate([-40,50,-0.4])
cube([70,0.5,0.8]);
translate([-40,55,-0.4])
cube([70,0.5,0.8]);
translate([-40,60,-0.4])
cube([70,0.5,0.8]);

translate([-40,65,-0.4])
cube([70,0.5,0.8]);
translate([-40,70,-0.4])
cube([70,0.5,0.8]);
translate([-40,75,-0.4])
cube([70,0.5,0.8]);

translate([-40,85,-0.4])
cube([70,0.5,0.8]);
translate([-40,90,-0.4])
cube([70,0.5,0.8]);
translate([-40,95,-0.4])
cube([70,0.5,0.8]);
translate([-40,100,-0.4])
cube([70,0.5,0.8]);
translate([-40,105,-0.4])
cube([70,0.5,0.8]);
translate([-40,110,-0.4])
cube([70,0.5,0.8]);

translate([-40,115,-0.4])
cube([70,0.5,0.8]);
translate([-40,120,-0.4])
cube([70,0.5,0.8]);
translate([-40,125,-0.4])
cube([70,0.5,0.8]);
translate([-40,130,-0.4])
cube([70,0.5,0.8]);
translate([-40,135,-0.4])
cube([70,0.5,0.8]);
translate([-40,140,-0.4])
cube([70,0.5,0.8]);

translate([-40,145,-0.4])
cube([70,0.5,0.8]);
translate([-40,150,-0.4])
cube([70,0.5,0.8]);
translate([-40,155,-0.4])
cube([70,0.5,0.8]);
translate([-40,160,-0.4])
cube([70,0.5,0.8]);
translate([-40,165,-0.4])
cube([70,0.5,0.8]);
translate([-40,170,-0.4])
cube([70,0.5,0.8]);

translate([-40,175,-0.4])
cube([70,0.5,0.8]);
translate([-40,180,-0.4])
cube([70,0.5,0.8]);
translate([-40,185,-0.4])
cube([70,0.5,0.8]);
translate([-40,190,-0.4])
cube([70,0.5,0.8]);
translate([-40,195,-0.4])
cube([70,0.5,0.8]);
translate([-40,200,-0.4])
cube([70,0.5,0.8]);

translate([-40,210,-0.4])
cube([70,0.5,0.8]);
translate([-40,215,-0.4])
cube([70,0.5,0.8]);

resize([0,240,0], auto=true)
import("/media/p/Shared_NTFS_2/3D_printing_stuff/finFoils/Wanderfalke_2_1_v1.1.1-highres.stl");}
}

// Proximal mouse ear for base
//rotate([90,0,0])
translate([28,-12,0])
rotate([0,90,0])
//difference(){
cylinder (r1=15, r2=30, h=2);
//translate([-30,17,0])
//cube(size = 60);}

// Mouse ear for stabilisers 1 and 2:
translate([28,62,0])
rotate([0,90,0])
//difference(){
cylinder (r1=15, r2=38, h=2);

// Mouse ear for knuckle
translate([28,148,0])
rotate([0,90,0])
//difference(){
cylinder (r1=15, r2=25, h=2);
//translate([-30,-60,0])
//cube(size = 60);}

// Mouse ear for distal end:
translate([28,205,0])
resize([2,50,64])
rotate([0,90,0])
//difference(){
cylinder (r1=15, r2=32, h=2);

// H-shaped plate
//color ("red")
//translate([29.15,140,50])
//rotate([0,90,0])
//linear_extrude (height = 0.8, centre = false, twist = 0)
//polygon([[60,40],[55,17],[45,17],[40,40],[20,40],[20,-30],[40,-30],[45,0],[55,0],[60,-30],[80,-30],[80,40]]);

difference(){
// Union to difference cylinders from fin and UTFB
union(){
// Disable the 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
color("blue")
translate([-41.25,-2,0])
cube([77,4,9.1], center=true);

// Insert UTFB here when needed for UTFB printing. Move it to the position marked below when making a fin-only file.

// Union of UTFB to allow importing the entire UTFB-tab into another OpenScad file
// Change translate values to move it in place for different fin base lengths
// Fow Wanderfalke_1-9 use translate([-116.385,-22, -4.5])
translate([-121,-22, -4.5])
rotate([0,0,90])
union(){

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

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

union(){

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

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

// 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)
linear_extrude (height = 148, centre = false, twist = 0)

// 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]]);

polygon(points=[[0,3.1],[0,6.9],[1.5,7.1],[19,7.1],[19,2.9],[1.5,2.9]]);

// 3 cylinders, each rotated differently, to round off the fin base edges with the Minkowski Sum function:

cylinder(r=1,h=1); }

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:
}
}
}

// Hole for aft pin
translate([7,-6,9.1])
cylinder(h = 20, r = 2.5, center = true);

// Cutting out cylinders for ball spring plungers:

// First forward BSP:
// Move cylinder cutout for BSP
translate([7,-17,9.1])
// cylinder for BSP
cylinder(h = 20, r = 4.1, center = true);

// First forward BSP outer wide part:
// Move cylinder cutout for BSP
translate([7,-17,9.1])
// cylinder for BSP
cylinder(h = 1.25, r = 4.35, center = true);

// 2nd BSP:
// Move cylinder cutout for BSP
translate([9,-37,9.1])
// cylinder for BSP
cylinder(h = 20, r = 4.1, center = true);

// 2nd BSP outer wide part:
// Move cylinder cutout for BSP
translate([9,-37,0])
// cylinder for BSP
cylinder(h = 1.25, r = 4.35, center = true);

// 3rd
// Move cylinder cutout for BSP
translate([11,-57,9.1])
// cylinder for BSP
cylinder(h = 20, r = 4.1, center = true);

// 3rd wide part
// Move cylinder cutout for BSP
translate([11,-57,9.1])
// cylinder for BSP
cylinder(h = 1.25, r = 4.35, center = true);

// 4th
// Move cylinder cutout for BSP
//translate([13,-66,9.1])
// cylinder for BSP
//cylinder(h = 20, r = 4.1, center = true);

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

// 6th
// Move cylinder cutout for BSP
translate([11,-90,9.1])
// cylinder for BSP
cylinder(h = 20, r = 4.1, center = true);

// 6th wide part
// Move cylinder cutout for BSP
translate([11,-90,0])
// cylinder for BSP
cylinder(h = 1.25, r = 4.35, center = true);

// 7th
// Move cylinder cutout for BSP
translate([9,-110,9.1])
// cylinder for BSP
cylinder(h = 20, r = 4.1, center = true);

// 7th wide part
// Move cylinder cutout for BSP
translate([9,-110,9.1])
// cylinder for BSP
cylinder(h = 1.25, r = 4.35, center = true);

// 8th
// Move cylinder cutout for BSP
translate([7,-130,9.1])
// cylinder for BSP
cylinder(h = 20, r = 4.1, center = true);

// 8th wide part
// Move cylinder cutout for BSP
translate([7,-130,0])
// cylinder for BSP
cylinder(h = 1.25, r = 4.35, center = true);

// Front pin hole disabled - it causes a weak spot for layer separation due to warping. Consider re-introducing it later with very small radius as guide for drilling:
//translate([7,-143,9.1])
// cylinder for BSP
//cylinder(h = 20, r = 2.5, center = true);
}
}
// End of UTFB tab

// Making the fin hollow:
//difference(){
//Importing the Wanderfalke_2-1 fin file
// Disable next 2 lines to make a file for the plug without the fin (must also move Union of UTFB to right location).

resize([0,240,0], auto=true)
import("/media/p/Shared_NTFS_2/3D_printing_stuff/finFoils/Wanderfalke_2_1_v1.1.1-highres.stl");

}

// Making the Slic3r print the base solid by differencing thin cylinders from lower 1/3 of fin:

color("red")
rotate ([270,0,0])
translate ([-20,-0,-20])
union(){

// Front screw hole
translate([36.5,0,-5])
cylinder (r=2.1,h=45);

translate([0,0,0])
union(){

// Group of 17 short cylinders aft
translate([-127.5,0,0])
union(){

translate([37.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=16);
translate([-6,0,0]) cylinder (r=0.1,h=16);
translate([-7.5,0,0]) cylinder (r=0.1,h=16);
translate([-9,0,0]) cylinder (r=0.1,h=16);
translate([-10.5,0,0]) cylinder (r=0.1,h=16);
}
translate([45,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=16);
translate([-6,0,0]) cylinder (r=0.1,h=16);
translate([-7.5,0,0]) cylinder (r=0.1,h=16);
}
translate([52.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=16);
translate([-6,0,0]) cylinder (r=0.1,h=16);
translate([-7.5,0,0]) cylinder (r=0.1,h=16);}
}

translate([-67.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=45);
translate([-3,0,0]) cylinder (r=0.1,h=40);
translate([-4.5,0,0]) cylinder (r=0.1,h=35);
translate([-6,0,0]) cylinder (r=0.1,h=30);
translate([-7.5,0,0]) cylinder (r=0.1,h=25);}

translate([-60,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=53);
translate([-3,0,0]) cylinder (r=0.1,h=52);
translate([-4.5,0,0]) cylinder (r=0.1,h=51);
translate([-6,0,0]) cylinder (r=0.1,h=50);
translate([-7.5,0,0]) cylinder (r=0.1,h=49);}

translate([-52.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=58);
translate([-3,0,0]) cylinder (r=0.1,h=57);
translate([-4.5,0,0]) cylinder (r=0.1,h=56);
translate([-6,0,0]) cylinder (r=0.1,h=55);
translate([-7.5,0,0]) cylinder (r=0.1,h=54);}

translate([-45,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=62);
translate([-3,0,0]) cylinder (r=0.1,h=61);
translate([-4.5,0,0]) cylinder (r=0.1,h=60);
translate([-6,0,0]) cylinder (r=0.1,h=60);
translate([-7.5,0,0]) cylinder (r=0.1,h=59);}

translate([-37.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=69);
translate([-3,0,0]) cylinder (r=0.1,h=68);
translate([-4.5,0,0]) cylinder (r=0.1,h=66);
translate([-6,0,0]) cylinder (r=0.1,h=64);
translate([-7.5,0,0]) cylinder (r=0.1,h=62);}

translate([-30,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=74);
translate([-3,0,0]) cylinder (r=0.1,h=73);
translate([-4.5,0,0]) cylinder (r=0.1,h=72);
translate([-6,0,0]) cylinder (r=0.1,h=71);
translate([-7.5,0,0]) cylinder (r=0.1,h=70);}

translate([-22.5,0,])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=85);
translate([-3,0,0]) cylinder (r=0.1,h=82);
translate([-4.5,0,0]) cylinder (r=0.1,h=78);
translate([-6,0,0]) cylinder (r=0.1,h=76);
translate([-7.5,0,0]) cylinder (r=0.1,h=75);}

translate([-15,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=101);
translate([-3,0,0]) cylinder (r=0.1,h=97);
translate([-4.5,0,0]) cylinder (r=0.1,h=93);
translate([-6,0,0]) cylinder (r=0.1,h=89);
translate([-7.5,0,0]) cylinder (r=0.1,h=85);}

translate([-7.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=125);
translate([-3,0,0]) cylinder (r=0.1,h=120);
translate([-4.5,0,0]) cylinder (r=0.1,h=115);
translate([-6,0,0]) cylinder (r=0.1,h=110);
translate([-7.5,0,0]) cylinder (r=0.1,h=105);}

// Longest set just aft of notch
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=150);
translate([-3,0,0]) cylinder (r=0.1,h=145);
translate([-4.5,0,0]) cylinder (r=0.1,h=140);
translate([-6,0,0]) cylinder (r=0.1,h=135);
translate([-7.5,0,0]) cylinder (r=0.1,h=130);}

// elevated group of cylinders front
translate([7.5,0,50])
union(){
translate([-1.5,0,7]) cylinder (r=0.1,h=19);
translate([-3,0,4]) cylinder (r=0.1,h=30);
translate([-4.5,0,1]) cylinder (r=0.1,h=41);
translate([-6,0,0]) cylinder (r=0.1,h=62);
translate([-7.5,0,0]) cylinder (r=0.1,h=83);}

translate([7.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=19);
translate([-3,0,0]) cylinder (r=0.1,h=20);
translate([-4.5,0,0]) cylinder (r=0.1,h=21);
translate([-6,0,0]) cylinder (r=0.1,h=22);
translate([-7.5,0,0]) cylinder (r=0.1,h=23);}

translate([15,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=17);
translate([-6,0,0]) cylinder (r=0.1,h=17);
translate([-7.5,0,0]) cylinder (r=0.1,h=18);
}
translate([22.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=16);
translate([-6,0,0]) cylinder (r=0.1,h=16);
translate([-7.5,0,0]) cylinder (r=0.1,h=16);
}
translate([30,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=16);
translate([-6,0,0]) cylinder (r=0.1,h=16);
translate([-7.5,0,0]) cylinder (r=0.1,h=16);
}
translate([37.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=16);
translate([-6,0,0]) cylinder (r=0.1,h=16);
translate([-7.5,0,0]) cylinder (r=0.1,h=16);
}
translate([45,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=16);
translate([-6,0,0]) cylinder (r=0.1,h=16);
translate([-7.5,0,0]) cylinder (r=0.1,h=16);
}
translate([52.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=16);
translate([-6,0,0]) cylinder (r=0.1,h=16);
translate([-7.5,0,0]) cylinder (r=0.1,h=16);}

}
}
}
//}

// Insert UTFB here to keep the code in the file when not needed. Move it up to the marked location when making files including the UTFB.

// Add modified sphere to round the forward tip of the plug
// For plug use: translate([-40,-32,0])
// For core use: translate([-40,-31,0])
// To make a fin to be filled with liquid resin: disable the modified sphere intersection.
//intersection(){
//rotate([0,0,-20])
//translate([-40,-32,0])
//translate([-40,-31,0])
//resize(newsize=[100,250,20])
//sphere(r=1);

//union(){

//intersection(){
// Moving smaller fin back inside of larger fin
//translate([-17,0,0])
// Importing file to hollow out the core
// Use scale([900,950,1000]) for the size of hollowed area in fin.
// Use scale([877.5,950,750]) for the size of the plug on the UTFB
//scale([900,950,1000])
//scale([877.5,950,750])
//import("G:\\3D_printing_stuff\\finFoils\\Wanderfalke_1-9-UTFB-1-0-6-3-9.stl");

// Cube to limit width to 9.1mm for fin core plug
//color ("red")
//translate([-120,0,-4.55])
//cube([200,300,9.1]);}}

// Cube to limit width to 9.2mm for hollow fin core
//color ("red")
//translate([-120,0,-4.6])
//cube([200,300,9.2]);}}

//}
//}
// }

Posted : 23/12/2016 12:19 am
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Re: Printing a large surfboard fin

On the print bed it looks like this:

It is the latest attempt to print it in progress, using Polymaker PC-Max.

Posted : 23/12/2016 12:24 am
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Re: Printing a large surfboard fin

Modifications to the i3 MK2 printer include:

Enclosure made from a big plastic box. Power supply is in the box, with 70mm Noctua fan attached to keep it cooler and use the heat in the chamber.
Filament is kept in a sealed plastic food container with a lot of silica gel bags, pulled towards the extruder by the stock hobbed pulley, but through a PTFE tube. All to keep it dry during very long printing times.
LCD control unit is outside of the enclosure, via shielded cable extensions by wrapping aluminium foil around it.
A HEPA + carbon filter is inside the enclosure, recirculating air.
The air temperature in the enclosure is typically about 35C while printing, with relative humidity around 30%.
Powered from the grid through an isolation transformer and a UPS (frequent severe thunderstorms with brief power outages where I live).

I managed to complete one print in Polymaker PC-Max, but ruined it by melting it while trying to anneal it in the kitchen oven. The print time was about 30hrs.

Posted : 23/12/2016 1:01 am
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Re: Printing a large surfboard fin

Are you printing the object to make a mold or trying print the product that will go on the surfboard? If printing for a mold could you slice the object into small parts because the failure rate goes high as the objects get bigger. Then you would just glue the parts together to make the mold.

I did print a mould-mould earlier on, and will return to that technique if I can not print a fin directly.

For now, I want to print the fin and stick it in the surfboard, after annealing and cutting and sanding off base plates and supports.

Posted : 23/12/2016 1:05 am
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Re: Printing a large surfboard fin

The current print attempt is progressing well, now at z48.05 of 200.

It did look scary at times how much the thin lattices move when a layer is added to them, but now at z48.2, they are being joined and none have fallen over.

It's the first time I try to print this with the support wall split into 5mm segments. I hope it will reduce the warping forces added by the support wall, while still allowing to print without support material even for the horizontal overhang part.

I tried to print this fin with support material and rafts before, but it caused several complete failures.
The ends of the forward (down while printing) knuckle of the fin warp away from the support material and loose all contact with it, causing poor leading edge quality due to sagging overhangs, and failed prints because the knuckle starts to see-saw on its point. It has only one point of contact with the bed. Before the knuckle part joins the fin-tab part, the knuckle gets knocked over because it's ends become higher with each layer added.
The failure mechanism is this: Nozzle pushes down the thin, long overhanging part instead of squishing the extruded PC as flat a it should be. As the nozzle moves on, the knuckle see-saws back up, and now it is a fraction higher than it should be. Each layer makes it worse, until the nozzle knocks it over, or the nozzle is stopped by the part and looses stepper motor steps, after which it continues to print with a layer shift.

Posted : 23/12/2016 2:49 am
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Re: Printing a large surfboard fin

Setting changes implemented in the current print attempt are:
(Using Prusa Slic3r)

1) Perimeters reduced from 5 to 3. Aim: Less warping, less weight, more buoyancy, Downside: less strength.

2) Infill reduced from 15% to 10%.

3) Print speed reduced to 50% by manually tuning it during the first layer. That way, I have the option to crank it back up later. Looking at a 60hr print time if I leave it at 50%.

4) Filament cooling fan disabled but 'Enable Auto Cooling' is selected. This is done by setting the minimum and maximum fan speed to zero. This way, the option to 'Slow down if layer time is below': remains available. I have set it to 25s, with a minimum print speed of 1mm/s. This is needed because the print finishes in a point, with progressively shorter layer times. When I managed the one successful print, it manually 'Tuned' the speed down to 10% for the last few hours, so I did not have to watch and reduce it at the right moment. That adds hours of printing time. With the setting as mentioned above, it should do it automatically, unsupervised, and without wasting time by printing large portions at slow speed.

5) I changed filament back to Polymaker PC-Max. Last attempt was using Polymaker PC-Plus and it failed because the distal pad (the oval one) lifted off the bed, due to warping. I'm not sure if PC-Plus warps more than PC-Max, but for now I plan to continue using PC-Max until I get some repeatable success. I have also tried 2 colours of polycarbonate, spectacular failures, more about that later. I learned a lot in the process. I have some carbon-fibre filaments lying around for later trials (and a hardened nozzle installed), but I do not like prototyping with it because the black colour makes it very hard to see what is happening. The Polymaker PC-Plus would be ideal for prototyping (if it has/had the same properties as PC-Max), because it is available in transparent.

6) Bed temperature changed from 110C constant to 110C first layer, 80C other layers. I hope this will reduce damage to the PEI sheet, it forms bubbles and even gets pulled off the bed by warping forces when the first layer remains attached very well.

Settings + techniques :

Acetone clean of bed (IPA is in my experience nowhere near as good. I only have 70% IPA).

SLIC3R_Settings

Print settings:
0.15mm_Peregrine-PC _2016-12-22
0.15mm layers
0.2mm first layer
Perimeters 3 (reduced from 5)
Solid layers: Top 9, bottom 11 (increased from bottom 5)
Extra perimeters if needed
Avoid crossing perimeters
Detect bridging perimeters
Seam position: Aligned
NOT: External perimeters first
Infill 10% cubic
Infill before perimeters (an attempt to stop proximal edge of knuckle warping up due to incremental ooze deposition. This way, the ooze blob gets dropped in the infill part, not at the perimeter's tip)
No skirt
Brim 10mm (reduced from 12mm because it needs to fit on the build plate)
NOT ticked: Generate support material
Speed: Left unchanged from PRUSA settings.

Filament settings:
Polymaker-PC-Plus_EM1.053_270-110-80_NoFan_2016-12-21
Nozzle 270C
Bed 110C first layer, 80C other layers
Autocool
Min 0%
Max 0%
Bridges 0%
Disable fan first 1000 layers
Cooling thresholds
fan below layer time below 20sec
slow down when layer time below 25sec
Minimum print speed 1mm/s

Printer settings:

Original_Prusa_i3_MK2_with_ZHop_X100-Y200-Z200
G1 X100 Y200 Z200; move X axis off centre and lift extruder for cleaning
Start_time: 2016-12-22,2050HRS
Progress:
live-adjust-z: Start value: -0.400; left unchanged, looks good
Tuning
z0.2 a little after brim finished: speed to 75%
z0.65 towards end (external perimeters) speed reduced to 50%

Posted : 23/12/2016 3:20 am
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Fin file design features

In order to increase the strength of the fin and prevent it from snapping off when pulling into a barrel, I am hopeful that this design will be stronger than the industrially printed polycarbonate fins I bought.

A) The fin is being printed in an orientation that aligns the layers with the maximum bending forces that the fin will experience when in use.
3D printed objects are usually weakest along the layer boundaries and fail by layer separation. Printed in the orientation shown, the polycarbonate needs to be torn apart rather than just layers separated for the fin to snap off. And it is the only orientation in which the fin fits into the i3 MK2 printable space.

B) I found a way to force Slic3r to print the relevant parts of the fin solidly, while still allowing low infill for the less mechanically stressed parts of the fin (I want it to float). This is done by placing over 100 very thin hollow cylinders in the fin base, and increasing the number of top and bottom 'Solid layers' in 'Horizontal shells' until the space between the cylinders is filled solidly. The cylinders are not really hollow, their radius is 0.1mm, but Slic3r will surround them with solid layers. I adjusted the length and position of the cylinders so that the fin has a solid core. I'm certain I can improve the shape of this cylinder group, to increase strength and minimise weight, but for now I have bigger problems. It will be fine-tuned once I can reliably print these fins.

The print has progressed to z51.05 and is still looking good.

Posted : 23/12/2016 3:48 am
PJR
 PJR
(@pjr)
Antient Member Moderator
Re: Printing a large surfboard fin

MkMik

In order to get maximum strength, you need to increase layer height and extrusion width.

Try printing with 0.25mm layer height and 0.5mm width. But print slower (max 60mm/s) due to the larger melt volume. The only downside with be the slightly rougher finish of the taller layers. If you can live with that, your fin should be stronger.

Peter

Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…

Posted : 23/12/2016 8:55 am
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Re: Printing a large surfboard fin

MkMik

In order to get maximum strength, you need to increase layer height and extrusion width.

Try printing with 0.25mm layer height and 0.5mm width. But print slower (max 60mm/s) due to the larger melt volume. The only downside with be the slightly rougher finish of the taller layers. If you can live with that, your fin should be stronger.

Peter

Thank you very much!

I was actually considering to increase the layer height, but not because of better strength, but to save time. I was watching some more videos and reading about Polymaker PC-Max (and PC-Plus) today, and one of the endearing qualities is that they can be sanded nicely. So, surface finish is of minor importance, and if it increases strength and prints faster at the same time, then extreme layer height and extrusion width it shall be!

I have a set of nozzles lying around, I thought I'd want them in a hurry one day, all sizes I could find in hardened steel. Among them is a 0.5mm and a 0.8mm nozzle.

Do you think I should use a bigger nozzle and maximise extrusion width and height?

Now that you mention it, it seems obvious, particularly considering that I pointed out above that the failure mode of 3D printed objects is usually inter-layer separation. It's the weak point, so fatter layers mean less layer boundaries to potentially separate. In other words, increased strength. 😀

Posted : 23/12/2016 9:51 am
PJR
 PJR
(@pjr)
Antient Member Moderator
Re: Printing a large surfboard fin

No, you need to print 25% wider than the nozzle width to give better "squish" and layer adhesion. Unfortunately if you increase the nozzle diameter then you will have to print slower unless you upgrade the hot end. You could maybe consider the E3D volcano for use with larger nozzles.

You could over-extrude by 5% to get even better layer adhesion, but the finish may be very poor.

The V6 will melt about 10^mm of filament per second which at 0.25/0.5 equates to about 80mm/s; I suggested 60 to allow a bit of overhead. If the filament doesn't get hot enough it won't bond properly, so I would aim for about 7.5mm^3/s with the V6 where strength is important.

Peter

Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…

Posted : 23/12/2016 10:04 am
PJR
 PJR
(@pjr)
Antient Member Moderator
Re: Printing a large surfboard fin

Probably no-one reading any longer anyway..... 😀

Wrong. I read all the posts in the English section... OK, occasionally, I just skip through a few. 😉

Peter

EDIT: I also deleted your double-posts...

Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…

Posted : 23/12/2016 10:06 am
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Another spectacular failure

And this time I might have broken the printer.....

The good news: I was correct about reducing the bed temperature to 80C to stop the PEI sheet from collecting liquefied glue and bubbles in the areas where the warping forces create 'lift'.

What I did not expect it that it would then in turn warp the entire print bed, but it did!

It's becoming ever clearer to me that the warping forces are too strong to be prevented. I think I need to find ways to let the warping occur, but without it ruining the print.

The previous print with transparent PC-Plus ended with a layer shift failure, presumably after the distal pad had come off the print bed. It was elevated by several mm, so I figured that's what caused it.

So when I found the layer shift in the PC-Max print, I was surprised that there was not the slightest sign of any loss of contact between print and print bed. Beautifully stuck, but print stuffed up.

It became clear when I put a straight edge on the print bed: The bed has been bent into a concave shape, because the print did not come off the bed, but was warping with great force anyway.

Posted : 23/12/2016 11:37 am
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Re: Printing a large surfboard fin

Pictures of the earlier Polymaker PC-Plus layer-shift failure, showing where the distal pad had come off the print bed.

Posted : 23/12/2016 11:39 am
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Re: Printing a large surfboard fin

And more pics off the Polymaker PC-Max layer shift from today, the print which had no issues sticking to the bed, but warped the bed:

Posted : 23/12/2016 11:42 am
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Re: Printing a large surfboard fin

No, you need to print 25% wider than the nozzle width to give better "squish" and layer adhesion. Unfortunately if you increase the nozzle diameter then you will have to print slower unless you upgrade the hot end. You could maybe consider the E3D volcano for use with larger nozzles.

You could over-extrude by 5% to get even better layer adhesion, but the finish may be very poor.

The V6 will melt about 10^mm of filament per second which at 0.25/0.5 equates to about 80mm/s; I suggested 60 to allow a bit of overhead. If the filament doesn't get hot enough it won't bond properly, so I would aim for about 7.5mm^3/s with the V6 where strength is important.

Peter

What is the effect of layer thickness and extrusion width on warping forces? Is there a way to adjust layer thickness or nozzle size to reduce warping forces?

Or is it a case of "more strength = more warp force"?

Posted : 23/12/2016 11:51 am
david.b14
(@david-b14)
Honorable Member
Re: Printing a large surfboard fin

At the layer that the warping can be seen reduce the print rate to 35%, and increase the flow rate to the max.

Posted : 23/12/2016 2:28 pm
MrMik
(@mrmik)
Honorable Member
Topic starter answered:
Re: Printing a large surfboard fin

At the layer that the warping can be seen reduce the print rate to 35%, and increase the flow rate to the max.

I'm not sure how to do that.

The problem is that the prints look just fine before suddenly there is the layer shift. I would not be surprised if the bed buckled with an audible 'pop', I had left the printer to sit down for dinner.

Using the LCD panel Tune> Flow is something I have not done much, yet.

Are you saying that extruding too much material will counter-act the warping? I'm not sure, it could also make it worse, but I have not tried it.

If increasing the Flow rate to the max (I don't know what the max is) works, then I should probably increase it before the warping happens.

Anyway, I'm switching to Colorfabb XT-CF20 for now, dialling it in by printing a reduced size dragon (Aria the singing serpents child). Without fan, the wing tips and overhangs are a bit messy. The bed adhesion is strong after using IPA 70% wipes to clean the bed. The brim can be torn perpendicular to the concentric rings, nowhere near as strong as PC-Max, but the part feels like it might be strong enough for a fin. Probably not though, but it has to be tried to be certain.

I'm printing the Gull-Whale fin this time (bumpy front edge). The supports and internal structure needed quite a few changes to the OpenScad file. Somehow, the z height ended up being 200.25mm - is that going to be a problem? I'll be happy if it gets that far for me to find out! 😀

Slicer and other settings: ( I just realised I forgot to adjust the extrusion width, and the print is already under way. Extrusion width is 0.45mm (0.42mm first layer), not 0.5mm as suggested by Peter. I'll try to remember it next time!)
Wanderfalke-2-1-Whale_UTFB_1-5-1-3-3-3_XT-CF_0p25mm.gcode
Colorfabb XT-CF20 first fin print attempt.
Bed clean with IPA 70% wipes
SLIC3R_Settings
0.25mm_Peregrine-XT-CF _2016-12-23
0.25mm layers
0.25mm first layer
Perimeters 3
Solid layers: Top 9, bottom 25
Extra perimeters if needed
Avoid crossing perimeters
Detect bridging perimeters
Seam position: Aligned
NOT: External perimeters first
Infill 10% cubic
Infill before perimeters (attempt to stop proximal edge of knuckle warping up)
No skirt
Brim 10mm
NOT Generate support material
Speed: Left unchanged from PRUSA settings. (Max speed 60mm/s for infill)

Colorfabb_XT-CF20_EM1.053_260-110-80_NoFan_2016-12-23 (Not calibrated, but so far all filaments have needed around EM 1.05)
Nozzle 260C
Bed 110C first layer, 80C other layers
Autocool
Min 0%
Max 0%
Bridges 0%
Disable fan first 1000 layers
Cooling thresholds
fan below layer time below 20sec
slow down when layer time below 25sec
Minimum print speed 1mm/s

Original_Prusa_i3_MK2_with_ZHop_X100-Y200-Z200
G1 X100 Y200 Z200; move X axis off centre and lift extruder for cleaning
Start_time:
2016-12-24, 0855hrs
Progress:
live-adjust-z: Start value: -0.400 left unchanged

The Gull-whale OpenScad code:
Wanderfalke-2-1-Whale_UTFB_1-5-1-3-3-3-highres.scad
// Wanderfalke-2-1_UTFB_V1-4-x includes lengthening of the UTFB to be flush with the forward knuckle and "Mouse Ears" against falling over on the print bed.
// Wanderfalke-2-1_UTFB_1-5-0 has mini-cylinders of 0.1mm radius to make the fin base solid for mechanical strength.
// v 1-5-0-refines design to be printed front side down.
// V 1-5-0-4-x is intended to have a thin continuous base to prevent moves between parts and sagging of overhangs
// V1-5-1-x uses the high resolution STL fin file.

$fn=80;
// Rectangular bottom plate joining the rounded pads
translate([33.9,0,-10])
cube ([1,220,20]);

// Blue side stabilisers
// moving them for BLEF fin by 4.9mm
translate([4.9,0,0])
union(){
color("blue"){
//Union stabiliser 1
union(){
translate([30,45,0])
rotate([0,90,0])
rotate([180,0,0])
rotate([0,0,-90])
union(){
intersection(){
cylinder(h = 44, r1 = 30, r2 = 1, center = true/false);
rotate([0,-90,0])
cube([90,80,0.8], center=true);}}}

// Union stabiliser 2
union(){
translate([30,80,0])
rotate([0,90,0])
rotate([180,0,0])
rotate([0,0,-90])
union(){
intersection(){
cylinder(h = 25, r1 = 30, r2 = 1, center = true/false);
rotate([0,-90,0])
cube([80,80,0.8], center=true);}}}

// Union stabiliser 3
union(){
translate([30,205,0])
rotate([0,90,0])
rotate([180,0,0])
rotate([0,0,-90])
union(){
intersection(){
cylinder(h = 45, r1 = 30, r2 = 1, center = true/false);
rotate([0,-90,0])
cube([100,80,0.8], center=true);}}}}}

// Turqoise for front wall
color("turquoise"){

// Removing the fin area from the thin wall so it does not interfere with the internal structure of the fin and base
difference(){

translate([-45.1,0,-0.4])
// The thin continuous wall at the leading edge will need to be removed after printing.

cube ([80,220,0.8]);

// Thin vertical slices to prevent warping forces building up along the length of the wall, turning it into a lattice:
// Moving them all by 3.9mm for BLEF fin

translate([3.9,0,0])
union(){
translate([-40,5,-0.4])
cube([70,0.5,0.8]);
translate([-40,10,-0.4])
cube([70,0.5,0.8]);
translate([-40,15,-0.4])
cube([70,0.5,0.8]);
translate([-40,20,-0.4])
cube([70,0.5,0.8]);
translate([-40,25,-0.4])
cube([70,0.5,0.8]);
translate([-40,30,-0.4])
cube([70,0.5,0.8]);
translate([-40,35,-0.4])
cube([70,0.5,0.8]);
translate([-40,40,-0.4])
cube([70,0.5,0.8]);
translate([-40,50,-0.4])
cube([70,0.5,0.8]);
translate([-40,55,-0.4])
cube([70,0.5,0.8]);
translate([-40,60,-0.4])
cube([70,0.5,0.8]);

translate([-40,65,-0.4])
cube([70,0.5,0.8]);
translate([-40,70,-0.4])
cube([70,0.5,0.8]);
translate([-40,75,-0.4])
cube([70,0.5,0.8]);

translate([-40,85,-0.4])
cube([70,0.5,0.8]);
translate([-40,90,-0.4])
cube([70,0.5,0.8]);
translate([-40,95,-0.4])
cube([70,0.5,0.8]);
translate([-40,100,-0.4])
cube([70,0.5,0.8]);
translate([-40,105,-0.4])
cube([70,0.5,0.8]);
translate([-40,110,-0.4])
cube([70,0.5,0.8]);

translate([-40,115,-0.4])
cube([70,0.5,0.8]);
translate([-40,120,-0.4])
cube([70,0.5,0.8]);
translate([-40,125,-0.4])
cube([70,0.5,0.8]);
translate([-40,130,-0.4])
cube([70,0.5,0.8]);
translate([-40,135,-0.4])
cube([70,0.5,0.8]);
translate([-40,140,-0.4])
cube([70,0.5,0.8]);

translate([-40,145,-0.4])
cube([70,0.5,0.8]);
translate([-40,150,-0.4])
cube([70,0.5,0.8]);
translate([-40,155,-0.4])
cube([70,0.5,0.8]);
translate([-40,160,-0.4])
cube([70,0.5,0.8]);
translate([-40,165,-0.4])
cube([70,0.5,0.8]);
translate([-40,170,-0.4])
cube([70,0.5,0.8]);

translate([-40,175,-0.4])
cube([70,0.5,0.8]);
translate([-40,180,-0.4])
cube([70,0.5,0.8]);
translate([-40,185,-0.4])
cube([70,0.5,0.8]);
translate([-40,190,-0.4])
cube([70,0.5,0.8]);
translate([-40,195,-0.4])
cube([70,0.5,0.8]);
translate([-40,200,-0.4])
cube([70,0.5,0.8]);

translate([-40,210,-0.4])
cube([70,0.5,0.8]);
translate([-40,215,-0.4])
cube([70,0.5,0.8]);
}

resize([0,240,0], auto=true)
import("/media/p/Shared_NTFS_2/3D_printing_stuff/finFoils/Wanderfalke_2_1_4_5_v1.1.1-highres.stl");}
}

// Proximal mouse ear for base
//rotate([90,0,0])
translate([32.9,-12,0])
rotate([0,90,0])
//difference(){
cylinder (r1=15, r2=30, h=2);
//translate([-30,17,0])
//cube(size = 60);}

// Mouse ear for stabilisers 1 and 2:
translate([32.9,62,0])
rotate([0,90,0])
//difference(){
cylinder (r1=15, r2=38, h=2);

// Mouse ear for knuckle
translate([30,149,0])
rotate([0,90,0])
resize(newsize=[25,50,4.9])
cylinder (r1=17, r2=55, h=6.9);

// Mouse ear for distal end:
translate([32.9,205,0])
resize([2,50,64])
rotate([0,90,0])
//difference(){
cylinder (r1=15, r2=32, h=2);

// H-shaped plate
//color ("red")
//translate([29.15,140,50])
//rotate([0,90,0])
//linear_extrude (height = 0.8, centre = false, twist = 0)
//polygon([[60,40],[55,17],[45,17],[40,40],[20,40],[20,-30],[40,-30],[45,0],[55,0],[60,-30],[80,-30],[80,40]]);

difference(){
// Union to difference cylinders from fin and UTFB
union(){
// Disable the 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
color("blue")
translate([-41.25,-2,0])
cube([77,4,9.1], center=true);

// Insert UTFB here when needed for UTFB printing. Move it to the position marked below when making a fin-only file.

// Union of UTFB to allow importing the entire UTFB-tab into another OpenScad file
// Change translate values to move it in place for different fin base lengths
// Fow Wanderfalke_1-9 use translate([-116.385,-22, -4.5])
translate([-121,-22, -4.5])
rotate([0,0,90])
union(){

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

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

union(){

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

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

// 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)
linear_extrude (height = 152.9, centre = false, twist = 0)

// 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]]);

polygon(points=[[0,3.1],[0,6.9],[1.5,7.1],[19,7.1],[19,2.9],[1.5,2.9]]);

// 3 cylinders, each rotated differently, to round off the fin base edges with the Minkowski Sum function:

cylinder(r=1,h=1); }

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:
}
}
}

// Hole for aft pin
translate([7,-6,9.1])
cylinder(h = 20, r = 2.5, center = true);

// Cutting out cylinders for ball spring plungers:

// First forward BSP:
// Move cylinder cutout for BSP
translate([7,-17,9.1])
// cylinder for BSP
cylinder(h = 20, r = 4.1, center = true);

// First forward BSP outer wide part:
// Move cylinder cutout for BSP
translate([7,-17,9.1])
// cylinder for BSP
cylinder(h = 1.25, r = 4.35, center = true);

// 2nd BSP:
// Move cylinder cutout for BSP
translate([9,-37,9.1])
// cylinder for BSP
cylinder(h = 20, r = 4.1, center = true);

// 2nd BSP outer wide part:
// Move cylinder cutout for BSP
translate([9,-37,0])
// cylinder for BSP
cylinder(h = 1.25, r = 4.35, center = true);

// 3rd
// Move cylinder cutout for BSP
translate([11,-57,9.1])
// cylinder for BSP
cylinder(h = 20, r = 4.1, center = true);

// 3rd wide part
// Move cylinder cutout for BSP
translate([11,-57,9.1])
// cylinder for BSP
cylinder(h = 1.25, r = 4.35, center = true);

// 4th
// Move cylinder cutout for BSP
//translate([13,-66,9.1])
// cylinder for BSP
//cylinder(h = 20, r = 4.1, center = true);

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

// 6th
// Move cylinder cutout for BSP
translate([11,-90,9.1])
// cylinder for BSP
cylinder(h = 20, r = 4.1, center = true);

// 6th wide part
// Move cylinder cutout for BSP
translate([11,-90,0])
// cylinder for BSP
cylinder(h = 1.25, r = 4.35, center = true);

// 7th
// Move cylinder cutout for BSP
translate([9,-110,9.1])
// cylinder for BSP
cylinder(h = 20, r = 4.1, center = true);

// 7th wide part
// Move cylinder cutout for BSP
translate([9,-110,9.1])
// cylinder for BSP
cylinder(h = 1.25, r = 4.35, center = true);

// 8th
// Move cylinder cutout for BSP
translate([7,-130,9.1])
// cylinder for BSP
cylinder(h = 20, r = 4.1, center = true);

// 8th wide part
// Move cylinder cutout for BSP
translate([7,-130,0])
// cylinder for BSP
cylinder(h = 1.25, r = 4.35, center = true);

// Front pin hole.
translate([7,-143,9.1])
// cylinder for BSP
cylinder(h = 20, r = 2.5, center = true);
}
}
// End of UTFB tab

// Making the fin hollow:
//difference(){
//Importing the Wanderfalke_2-1 fin file
// Disable next 2 lines to make a file for the plug without the fin (must also move Union of UTFB to right location).

resize([0,240,0], auto=true)
import("/media/p/Shared_NTFS_2/3D_printing_stuff/finFoils/Wanderfalke_2_1_4_5_v1.1.1-highres.stl");

}

// Making the Slic3r print the base solid by differencing thin cylinders from lower 1/3 of fin:

color("red")
rotate ([270,0,0])
translate ([-20,-0,-20])
union(){

// Front screw hole disabled - it causes a weak spot for layer separation due to warping. Consider re-introducing it later with very small radius as guide for drilling:
//translate([36.5,0,-5])
//cylinder (r=2.1,h=45);

translate([0,0,0])
union(){

// Forward Bump solidifier cylinders
translate([57.5,0,160])
//rotate ([270,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=16);
translate([-6,0,0]) cylinder (r=0.1,h=16);
translate([-7.5,0,0]) cylinder (r=0.1,h=16);
translate([-9,0,0]) cylinder (r=0.1,h=16);
translate([-10.5,0,0]) cylinder (r=0.1,h=16);
}

// Group of 17 short cylinders aft
translate([-127.5,0,0])
union(){

translate([37.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=16);
translate([-6,0,0]) cylinder (r=0.1,h=16);
translate([-7.5,0,0]) cylinder (r=0.1,h=16);
translate([-9,0,0]) cylinder (r=0.1,h=16);
translate([-10.5,0,0]) cylinder (r=0.1,h=16);
}
translate([45,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=16);
translate([-6,0,0]) cylinder (r=0.1,h=16);
translate([-7.5,0,0]) cylinder (r=0.1,h=16);
}
translate([52.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=16);
translate([-6,0,0]) cylinder (r=0.1,h=16);
translate([-7.5,0,0]) cylinder (r=0.1,h=16);}
}

translate([-67.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=45);
translate([-3,0,0]) cylinder (r=0.1,h=40);
translate([-4.5,0,0]) cylinder (r=0.1,h=35);
translate([-6,0,0]) cylinder (r=0.1,h=30);
translate([-7.5,0,0]) cylinder (r=0.1,h=25);}

translate([-60,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=53);
translate([-3,0,0]) cylinder (r=0.1,h=52);
translate([-4.5,0,0]) cylinder (r=0.1,h=51);
translate([-6,0,0]) cylinder (r=0.1,h=50);
translate([-7.5,0,0]) cylinder (r=0.1,h=49);}

translate([-52.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=58);
translate([-3,0,0]) cylinder (r=0.1,h=57);
translate([-4.5,0,0]) cylinder (r=0.1,h=56);
translate([-6,0,0]) cylinder (r=0.1,h=55);
translate([-7.5,0,0]) cylinder (r=0.1,h=54);}

translate([-45,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=62);
translate([-3,0,0]) cylinder (r=0.1,h=61);
translate([-4.5,0,0]) cylinder (r=0.1,h=60);
translate([-6,0,0]) cylinder (r=0.1,h=60);
translate([-7.5,0,0]) cylinder (r=0.1,h=59);}

translate([-37.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=69);
translate([-3,0,0]) cylinder (r=0.1,h=68);
translate([-4.5,0,0]) cylinder (r=0.1,h=66);
translate([-6,0,0]) cylinder (r=0.1,h=64);
translate([-7.5,0,0]) cylinder (r=0.1,h=62);}

translate([-30,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=74);
translate([-3,0,0]) cylinder (r=0.1,h=73);
translate([-4.5,0,0]) cylinder (r=0.1,h=72);
translate([-6,0,0]) cylinder (r=0.1,h=71);
translate([-7.5,0,0]) cylinder (r=0.1,h=70);}

translate([-22.5,0,])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=85);
translate([-3,0,0]) cylinder (r=0.1,h=82);
translate([-4.5,0,0]) cylinder (r=0.1,h=78);
translate([-6,0,0]) cylinder (r=0.1,h=76);
translate([-7.5,0,0]) cylinder (r=0.1,h=75);}

translate([-15,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=101);
translate([-3,0,0]) cylinder (r=0.1,h=97);
translate([-4.5,0,0]) cylinder (r=0.1,h=93);
translate([-6,0,0]) cylinder (r=0.1,h=89);
translate([-7.5,0,0]) cylinder (r=0.1,h=85);}

translate([-7.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=125);
translate([-3,0,0]) cylinder (r=0.1,h=120);
translate([-4.5,0,0]) cylinder (r=0.1,h=115);
translate([-6,0,0]) cylinder (r=0.1,h=110);
translate([-7.5,0,0]) cylinder (r=0.1,h=105);}

// Longest set just aft of notch
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=150);
translate([-3,0,0]) cylinder (r=0.1,h=145);
translate([-4.5,0,0]) cylinder (r=0.1,h=140);
translate([-6,0,0]) cylinder (r=0.1,h=135);
translate([-7.5,0,0]) cylinder (r=0.1,h=130);}

// elevated group of cylinders front
translate([7.5,0,50])
union(){
translate([-1.5,0,7]) cylinder (r=0.1,h=19);
translate([-3,0,4]) cylinder (r=0.1,h=30);
translate([-4.5,0,1]) cylinder (r=0.1,h=41);
translate([-6,0,0]) cylinder (r=0.1,h=62);
translate([-7.5,0,0]) cylinder (r=0.1,h=83);}

translate([7.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=19);
translate([-3,0,0]) cylinder (r=0.1,h=20);
translate([-4.5,0,0]) cylinder (r=0.1,h=21);
translate([-6,0,0]) cylinder (r=0.1,h=22);
translate([-7.5,0,0]) cylinder (r=0.1,h=23);}

translate([15,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=17);
translate([-6,0,0]) cylinder (r=0.1,h=17);
translate([-7.5,0,0]) cylinder (r=0.1,h=18);
}
translate([22.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=16);
translate([-6,0,0]) cylinder (r=0.1,h=16);
translate([-7.5,0,0]) cylinder (r=0.1,h=16);
}
translate([30,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=16);
translate([-6,0,0]) cylinder (r=0.1,h=16);
translate([-7.5,0,0]) cylinder (r=0.1,h=16);
}
translate([37.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=16);
translate([-6,0,0]) cylinder (r=0.1,h=16);
translate([-7.5,0,0]) cylinder (r=0.1,h=16);
}
translate([45,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=16);
translate([-6,0,0]) cylinder (r=0.1,h=16);
translate([-7.5,0,0]) cylinder (r=0.1,h=16);
}
translate([52.5,0,0])
union(){
translate([-1.5,0,0]) cylinder (r=0.1,h=16);
translate([-3,0,0]) cylinder (r=0.1,h=16);
translate([-4.5,0,0]) cylinder (r=0.1,h=16);
translate([-6,0,0]) cylinder (r=0.1,h=16);
translate([-7.5,0,0]) cylinder (r=0.1,h=16);}

}
}
}
//}

// Insert UTFB here to keep the code in the file when not needed. Move it up to the marked location when making files including the UTFB.

// Add modified sphere to round the forward tip of the plug
// For plug use: translate([-40,-32,0])
// For core use: translate([-40,-31,0])
// To make a fin to be filled with liquid resin: disable the modified sphere intersection.
//intersection(){
//rotate([0,0,-20])
//translate([-40,-32,0])
//translate([-40,-31,0])
//resize(newsize=[100,250,20])
//sphere(r=1);

//union(){

//intersection(){
// Moving smaller fin back inside of larger fin
//translate([-17,0,0])
// Importing file to hollow out the core
// Use scale([900,950,1000]) for the size of hollowed area in fin.
// Use scale([877.5,950,750]) for the size of the plug on the UTFB
//scale([900,950,1000])
//scale([877.5,950,750])
//import("G:\\3D_printing_stuff\\finFoils\\Wanderfalke_1-9-UTFB-1-0-6-3-9.stl");

// Cube to limit width to 9.1mm for fin core plug
//color ("red")
//translate([-120,0,-4.55])
//cube([200,300,9.1]);}}

// Cube to limit width to 9.2mm for hollow fin core
//color ("red")
//translate([-120,0,-4.6])
//cube([200,300,9.2]);}}

//}
//}
// }

Posted : 24/12/2016 12:43 am
david.b14
(@david-b14)
Honorable Member
Re: Printing a large surfboard fin

I'm using OctoPrint and the speed and flow (how fast the filament comes out) are slider controls. OctoPrint will let you increase the flow up to 125%. I was thinking that once warping can be seen, there is more distance (curve vs. straight light), so the need for extra flow.

Posted : 24/12/2016 2:18 am
Page 1 / 4
Share: