Fix top mold skirt problem on us box
This commit is contained in:
parent
51a60d4018
commit
8e4f99cd44
BIN
.Readme.md.swp
Normal file
BIN
.Readme.md.swp
Normal file
Binary file not shown.
42
Readme.md
42
Readme.md
@ -20,7 +20,7 @@ The box is designed using library [Fin Base](https://github.com/hrobeers/finbase
|
||||
[Understanding Kitesruf fins](https://24-7boardsports.com/understanding-kitesurf-twintip-board-fins/)
|
||||
|
||||
|
||||
## Measure models
|
||||
### Measure models
|
||||
|
||||
Open web app [at](https://0x00019913.github.io/meshy/) and import it to get the volume.
|
||||
|
||||
@ -31,6 +31,46 @@ To convert 21037 cubic millimeters (mm³) to deciliters (dl), you can use the co
|
||||
Therefore, 21037 cubic millimeters is equivalent to 0.21dl.
|
||||
|
||||
|
||||
### Materials
|
||||
|
||||
|
||||
| Volume | Weight | Fiber Load | Résine |
|
||||
| ------ | ------ | ---------- | ------- |
|
||||
| 100% | x1.4 | 60% | 40% |
|
||||
| 21 cm3 | 29.4g | 17.64 g | 11.76 g |
|
||||
|
||||
|
||||
## Surf fin 10 inch
|
||||
|
||||
|
||||
| Volume | Weight | Fiber Load | Résine |
|
||||
| ------ | ------ | ---------- | ------- |
|
||||
| 100% | x1.4 | 60% | 40% |
|
||||
| 207 cm3 | 290g | 174 g | 116 g |
|
||||
|
||||
#### Pin
|
||||
|
||||
The pin slides into a groove in the US Box fin slot, allowing the fin to move forward or backward to adjust the fin's position for different conditions or board feel.
|
||||
|
||||
US Box require a pin of diameter 4.76mm (3/16 inch) per L 14.28 mm (9/16inch)
|
||||
|
||||
### Screw
|
||||
|
||||
The screw for securing single fins is often 10-32 x ¾” (or 5mm x 19mm).
|
||||
It's usually a slotted screw designed to go through the fin and into the square plate.
|
||||
|
||||
|
||||
- Stainless Steel Longboard Fin Screw & Plate
|
||||
- [3/6Pcs Stainless Steel Surfboard Fin Screw M4 Surf](https://www.aliexpress.com/item/1005005128486923.html) R$30.39
|
||||
- [Copper Pin for 6.5/8/9/9.5/10/12 Inch Surf Fin SUP Fin Water Sports](https://www.aliexpress.com/item/1005003301708931.html) R$ 19.22 + 25.73
|
||||
|
||||
|
||||
### Square Washer (Plate)
|
||||
|
||||
Dimensions: Commonly about ½” x ½” (or 14mm x 14mm), with a thickness of about 0.15" (4mm).
|
||||
This plate spreads the load of the screw over a larger area, ensuring a secure hold.
|
||||
|
||||
|
||||
## Required Material
|
||||
|
||||
- Durcisseur : Correspondant à la résine choisie.
|
||||
|
@ -179,16 +179,16 @@
|
||||
"mirror_vec": "[1, 1, 0]",
|
||||
"mold_base_height": "10",
|
||||
"mold_extra_width": "15",
|
||||
"mold_part": "bottom",
|
||||
"mold_part": "top",
|
||||
"mold_piston_height": "10",
|
||||
"mold_top_height": "5",
|
||||
"partition": "none",
|
||||
"partition": "high",
|
||||
"parts": "all",
|
||||
"pin_back": "9",
|
||||
"pin_depth": "16.399999999999999",
|
||||
"pin_dia": "3",
|
||||
"piston_depth": "5",
|
||||
"printable": "false",
|
||||
"printable": "true",
|
||||
"resin_escape_diameter": "4",
|
||||
"scale_factor": "1",
|
||||
"screw_dia": "4.5",
|
||||
@ -200,6 +200,119 @@
|
||||
"tab_height": "13",
|
||||
"thick": "9.1999999999999993",
|
||||
"thick_cut": "1"
|
||||
},
|
||||
"New set 5": {
|
||||
"$fn": "64",
|
||||
"base_extra_thickness": "20",
|
||||
"base_tickness": "8",
|
||||
"box_thickness": "9.5999999999999996",
|
||||
"build_box": "false",
|
||||
"build_fin": "true",
|
||||
"build_mold": "false",
|
||||
"draw_profile": "false",
|
||||
"fin_back_angle": "20",
|
||||
"fin_back_height": "30",
|
||||
"fin_back_strength": "30",
|
||||
"fin_back_widthdraw": "20",
|
||||
"fin_base": "130",
|
||||
"fin_counter_angle": "30",
|
||||
"fin_counter_strength": "10",
|
||||
"fin_edge_angle": "30",
|
||||
"fin_edge_strength": "30",
|
||||
"fin_edge_withdraw": "20",
|
||||
"fin_end_angle": "110",
|
||||
"fin_end_strength": "30",
|
||||
"fin_height": "254",
|
||||
"fin_start_angle": "70",
|
||||
"fin_sweep": "25",
|
||||
"fin_thickness": "9",
|
||||
"fin_top_withdraw": "35",
|
||||
"fin_width": "270",
|
||||
"fin_width_tip": "5",
|
||||
"height": "25",
|
||||
"merge_holes_diameter": "6",
|
||||
"mirror_vec": "[1, 1, 0]",
|
||||
"mold_base_height": "10",
|
||||
"mold_extra_width": "15",
|
||||
"mold_part": "all",
|
||||
"mold_piston_height": "10",
|
||||
"mold_top_height": "5",
|
||||
"partition": "none",
|
||||
"parts": "all",
|
||||
"pin_back": "9",
|
||||
"pin_depth": "16.399999999999999",
|
||||
"pin_dia": "3",
|
||||
"piston_depth": "5",
|
||||
"printable": "true",
|
||||
"resin_escape_diameter": "4",
|
||||
"scale_factor": "1",
|
||||
"screw_dia": "4.5",
|
||||
"screw_pos": "9.5999999999999996",
|
||||
"show_curve_points": "false",
|
||||
"show_debug_layers": "false",
|
||||
"skirt_angle": "80",
|
||||
"start": "[0, 0]",
|
||||
"tab_height": "13",
|
||||
"thick": "9.1999999999999993",
|
||||
"thick_cut": "1",
|
||||
"version": "0.9b"
|
||||
},
|
||||
"New set 6": {
|
||||
"$fn": "64",
|
||||
"base_extra_thickness": "20",
|
||||
"base_tickness": "8",
|
||||
"box_offset": "80",
|
||||
"box_thickness": "9.5999999999999996",
|
||||
"build_box": "false",
|
||||
"build_fin": "false",
|
||||
"build_mold": "true",
|
||||
"draw_profile": "false",
|
||||
"fin_back_angle": "20",
|
||||
"fin_back_height": "30",
|
||||
"fin_back_strength": "30",
|
||||
"fin_back_widthdraw": "20",
|
||||
"fin_base": "130",
|
||||
"fin_counter_angle": "30",
|
||||
"fin_counter_strength": "10",
|
||||
"fin_edge_angle": "30",
|
||||
"fin_edge_strength": "30",
|
||||
"fin_edge_withdraw": "20",
|
||||
"fin_end_angle": "110",
|
||||
"fin_end_strength": "30",
|
||||
"fin_height": "254",
|
||||
"fin_start_angle": "70",
|
||||
"fin_sweep": "25",
|
||||
"fin_thickness": "9",
|
||||
"fin_top_withdraw": "35",
|
||||
"fin_width": "270",
|
||||
"fin_width_tip": "5",
|
||||
"height": "25",
|
||||
"merge_holes_diameter": "6",
|
||||
"mirror_vec": "[1, 1, 0]",
|
||||
"mold_base_height": "10",
|
||||
"mold_extra_width": "15",
|
||||
"mold_part": "top",
|
||||
"mold_piston_height": "10",
|
||||
"mold_top_height": "5",
|
||||
"partition": "none",
|
||||
"parts": "all",
|
||||
"pin_back": "9",
|
||||
"pin_depth": "16.399999999999999",
|
||||
"pin_dia": "3",
|
||||
"piston_depth": "5",
|
||||
"printable": "true",
|
||||
"resin_escape_diameter": "4",
|
||||
"scale_factor": "1",
|
||||
"screw_dia": "4.5",
|
||||
"screw_pos": "9.5999999999999996",
|
||||
"show_curve_points": "false",
|
||||
"show_debug_layers": "false",
|
||||
"skirt_angle": "80",
|
||||
"start": "[0, 0]",
|
||||
"tab_height": "13",
|
||||
"thick": "9.1999999999999993",
|
||||
"thick_cut": "1",
|
||||
"version": "0.9b"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -134,6 +134,10 @@ pin_back = 9;
|
||||
//thick_cut = 0.001*1000;
|
||||
thick_cut = 1;
|
||||
|
||||
// Offset the box to fit the fin
|
||||
box_offset = 80;
|
||||
|
||||
|
||||
// ---------------------*/
|
||||
/* [Debugging] */
|
||||
// ---------------------*/
|
||||
@ -153,13 +157,16 @@ draw_profile = false;
|
||||
// Rendering parts
|
||||
build_fin = false;
|
||||
build_box = false;
|
||||
build_mold = true;
|
||||
build_mold = true;
|
||||
partition = "none"; // [none, low, high]
|
||||
|
||||
parts = "all"; // [all, top, bottom]
|
||||
|
||||
|
||||
mold_part = "all"; // [all, top, bottom]
|
||||
|
||||
version ="0.9b";
|
||||
|
||||
// Scaling
|
||||
scale_factor = 1.0; // [0.1:0.1:2]
|
||||
|
||||
@ -231,66 +238,25 @@ points = flatten([
|
||||
profile_curve_with_base = translate_path( addBase(asCurve(points,32)),-fin_base/2,0 );
|
||||
profile = translate_path( asCurve(points,32),-fin_base/2,0 );
|
||||
|
||||
//profile_curve_with_base = translate_path( asCurve(points,32),-fin_base/2,0 );
|
||||
//profile_curve_with_base = resample_path(translate_path( asCurve(points,32),-fin_base/2,0 ),64);
|
||||
|
||||
assert(is_path_simple(profile_curve_with_base));
|
||||
|
||||
|
||||
if (show_curve_points)
|
||||
color("Blue")move_copies(profile_curve_with_base) circle($fn=16);
|
||||
|
||||
|
||||
// Draw fin profile
|
||||
if (draw_profile) {
|
||||
//left(425) drawProfile( points, true );
|
||||
|
||||
|
||||
layer0 = expandPath(profile_curve_with_base,-2);
|
||||
layer1 = expandPath(profile_curve_with_base,-8);
|
||||
layer2 = expandPath(profile_curve_with_base,-15);
|
||||
layer3 = expandPath(profile_curve_with_base,-30);
|
||||
layer4 = expandPath(profile_curve_with_base,-40);
|
||||
|
||||
back(10) showDebugPath(layer0);
|
||||
|
||||
|
||||
left(500) {
|
||||
color("Red") polygon(profile_curve_with_base);
|
||||
up(10) polygon(layer0);
|
||||
up(20) color("Yellow") polygon(layer1);
|
||||
up(30) color("Brown") polygon(layer2);
|
||||
}
|
||||
|
||||
layers = [profile_curve_with_base,layer0,layer1,layer2,layer3,layer4];
|
||||
|
||||
left (800) color ("Green") polygon(profile_curve_with_base);
|
||||
|
||||
left (1000) color ("Green") shell(10) polygon(profile_curve_with_base);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// *****************
|
||||
// * Fin Drawing *
|
||||
// *****************
|
||||
if ( build_fin )
|
||||
scale([scale_factor, scale_factor, scale_factor])
|
||||
buildFin( fin_thickness );
|
||||
|
||||
if ( build_box ) {
|
||||
buildBox();
|
||||
}
|
||||
scale([scale_factor, scale_factor, scale_factor]) {
|
||||
union() {
|
||||
buildCompletFin();
|
||||
left(box_offset) usBox(fin_base+30);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Render Mold
|
||||
*/
|
||||
if ( build_mold ) //buildMold();
|
||||
{
|
||||
|
||||
if ( build_mold )
|
||||
difference(){
|
||||
buildMold();
|
||||
//cube([100,200,30]);
|
||||
if (partition=="low")
|
||||
partitionMask(false);
|
||||
if (partition=="high")
|
||||
@ -298,16 +264,13 @@ if ( build_mold ) //buildMold();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Build complete fin
|
||||
*/
|
||||
module buildCompletFin() {
|
||||
difference(){
|
||||
buildFin( fin_thickness );
|
||||
//buildBox();
|
||||
// Remove extra base
|
||||
baseMask();
|
||||
buildFin( fin_thickness ); // Fin
|
||||
baseMask(); // Remove extra base
|
||||
}
|
||||
}
|
||||
|
||||
@ -317,7 +280,9 @@ module baseMask() {
|
||||
|
||||
|
||||
module usBoxMask() {
|
||||
left(80) color("Blue") usBox(fin_base+30,thickness = box_thickness+2*OFFSET,drill=false);
|
||||
left(box_offset)
|
||||
color("Blue")
|
||||
usBox(fin_base+30,thickness = box_thickness+2*OFFSET,drill=false);
|
||||
}
|
||||
|
||||
|
||||
@ -327,7 +292,7 @@ module usBoxMask() {
|
||||
*/
|
||||
module buildMold() {
|
||||
// Bottom Mold
|
||||
if (mold_part != "top") right( printable ? 120 : 0 ) {
|
||||
if (mold_part != "top") right( printable ? 120 : 0 ) union() {
|
||||
// Fin mold
|
||||
difference() {
|
||||
support(part="bottom");
|
||||
@ -336,7 +301,8 @@ module buildMold() {
|
||||
}
|
||||
// Box mold
|
||||
difference() {
|
||||
left(80) finBoxMold( fin_base+30,part="bottom",skirt=false );
|
||||
left(box_offset)
|
||||
finBoxMold( fin_base+30,part="bottom",skirt=false );
|
||||
// Remove fin
|
||||
buildCompletFin();
|
||||
}
|
||||
@ -344,7 +310,7 @@ module buildMold() {
|
||||
moldSkirt( part="bottom" );
|
||||
}
|
||||
// Top
|
||||
if (mold_part != "bottom") /*up(1* 150)*/ left( printable ? 120 : 0 ) yrot(printable ? 180 : 0 ) {
|
||||
if (mold_part != "bottom") /*up(1* 150)*/ left( printable ? 120 : 0 ) yrot(printable ? 180 : 0 ) union() {
|
||||
difference(){
|
||||
support(part="top");
|
||||
usBoxMask();
|
||||
@ -353,12 +319,19 @@ module buildMold() {
|
||||
}
|
||||
// Box mold
|
||||
difference() {
|
||||
left(80) finBoxMold( fin_base+30,part="top",skirt=false );
|
||||
left(box_offset)
|
||||
finBoxMold( fin_base+30,part="top",skirt=false );
|
||||
// Remove fin
|
||||
buildCompletFin();
|
||||
}
|
||||
// Mold skirt
|
||||
down( fin_thickness * 3 ) moldSkirt( part="top" );
|
||||
difference()
|
||||
{
|
||||
down( fin_thickness * 3 ) moldSkirt( part="top" ); // Inclinded Skirt
|
||||
back(0.65)
|
||||
cube([250,40,9.6],anchor=BACK); // Remove skirt on us box side
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -387,35 +360,18 @@ module moldSkirt( part ){
|
||||
|
||||
box_profile = move([-80,0],profileUS (fin_base+30));
|
||||
finAndBoxProfile = path_merge_collinear(union([box_profile,profile]));
|
||||
|
||||
//if (part == "bottom") {
|
||||
|
||||
moldHeight = fin_thickness * 3;
|
||||
moldHeight = fin_thickness * 3;
|
||||
|
||||
up (part=="top" ? moldHeight : 0 )
|
||||
skirt( finAndBoxProfile, side = part ,moldThickness = 3 , angle = skirt_angle, moldDeep = fin_thickness );
|
||||
//} else if (part == "top") {
|
||||
|
||||
|
||||
//}
|
||||
|
||||
skirt( finAndBoxProfile, side = part ,moldThickness = 3 , angle = skirt_angle, moldDeep = fin_thickness );
|
||||
}
|
||||
|
||||
//moldSkirt(part="top");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
module moldJunctionMask(moldThickness = 3,height,angle){
|
||||
|
||||
deviation = opp_ang_to_adj (height,angle);
|
||||
right(moldThickness)
|
||||
left(moldThickness/2)
|
||||
down(OFFSET)
|
||||
//fwd(60)
|
||||
//back(moldThickness*2-0.5)
|
||||
back(moldThickness*1.2-OFFSET )
|
||||
down( OFFSET ) back( moldThickness*1.2 - OFFSET )
|
||||
color("Red")
|
||||
prismoid(
|
||||
size1=[fin_width/2-1.5*moldThickness, moldThickness*3+2*OFFSET],
|
||||
@ -513,10 +469,10 @@ module partitionMask(inverse = false) {
|
||||
up(10)
|
||||
partition_mask(
|
||||
w=fin_height/2*1.5,
|
||||
h=60, // height
|
||||
h=80, // height
|
||||
l=fin_width*3,
|
||||
cutpath="comb",
|
||||
spread=3,
|
||||
cutpath="sinewave",
|
||||
//spread=0.1,
|
||||
inverse=inverse,
|
||||
anchor=FRONT
|
||||
);
|
||||
@ -554,8 +510,18 @@ module drawProfile( points,debug = true ){
|
||||
debug_bezier(points, N=3,width=1.2);
|
||||
}
|
||||
|
||||
echo ("****************************");
|
||||
echo ("** Build **");
|
||||
echo ("****************************");
|
||||
echo (str("filename :"," surf-fins-10inch-",mold_part,"-",partition,"_",version,".stl"," "));
|
||||
|
||||
// Draw fin profile
|
||||
if (draw_profile)
|
||||
back(10) right(350) showDebugPath(profile_curve_with_base);
|
||||
|
||||
// Show curve points
|
||||
if (show_curve_points)
|
||||
color("Blue")move_copies(profile_curve_with_base) circle($fn=16);
|
||||
|
||||
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
|
||||
include <BOSL2/std.scad>;
|
||||
include <BOSL2/beziers.scad>;
|
||||
|
||||
include <BOSL2/std.scad>
|
||||
include <BOSL2/beziers.scad>
|
||||
include <Round-Anything/polyround.scad>
|
||||
|
||||
|
||||
@ -42,7 +41,12 @@ function profileUS( length,height=23,tabHeight = 8,tabLength = 20, backRounding
|
||||
[ -tabLength , -tabHeight ,1] // 5
|
||||
]);
|
||||
|
||||
|
||||
/**
|
||||
* US Box
|
||||
*
|
||||
* @param length : Length of the fin base. backExtra and tabLength will be added to have the full length
|
||||
*
|
||||
*/
|
||||
module usBox( length, height=23, thickness = 9, tabLength = 20,pinDiameter = 5,pinInset = 8, backExtra = 10,cutReduction = 0.5,screw_diameter=4.5,drill = true, color="Grey" ) {
|
||||
color(color) mirror_copy([0,0,1], offset=-OFFSET) difference() {
|
||||
linear_extrude ( height = thickness/2 ) boxProfileUS( length, tabLength = tabLength, height=height, backExtra=backExtra );
|
||||
|
257487
stl/10inch/01-surf-fins-10inch-bottom-high_0.9b.gcode
Normal file
257487
stl/10inch/01-surf-fins-10inch-bottom-high_0.9b.gcode
Normal file
File diff suppressed because it is too large
Load Diff
243171
stl/10inch/02-surf-fins-10inch-bottom-low_0.9b.gcode
Normal file
243171
stl/10inch/02-surf-fins-10inch-bottom-low_0.9b.gcode
Normal file
File diff suppressed because it is too large
Load Diff
214630
stl/10inch/03-surf-fins-10inch-top-high_0.9b.gcode
Normal file
214630
stl/10inch/03-surf-fins-10inch-top-high_0.9b.gcode
Normal file
File diff suppressed because it is too large
Load Diff
211960
stl/10inch/04-surf-fins-10inch-top-low_0.9b.gcode
Normal file
211960
stl/10inch/04-surf-fins-10inch-top-low_0.9b.gcode
Normal file
File diff suppressed because it is too large
Load Diff
BIN
stl/10inch/Surf-Fins-10inch.stl
Normal file
BIN
stl/10inch/Surf-Fins-10inch.stl
Normal file
Binary file not shown.
BIN
stl/10inch/surf-fins-10inch-bottom-high_0.9b.stl
Normal file
BIN
stl/10inch/surf-fins-10inch-bottom-high_0.9b.stl
Normal file
Binary file not shown.
BIN
stl/10inch/surf-fins-10inch-bottom-low_0.9b.stl
Normal file
BIN
stl/10inch/surf-fins-10inch-bottom-low_0.9b.stl
Normal file
Binary file not shown.
BIN
stl/10inch/surf-fins-10inch-top-high_0.9b.stl
Normal file
BIN
stl/10inch/surf-fins-10inch-top-high_0.9b.stl
Normal file
Binary file not shown.
BIN
stl/10inch/surf-fins-10inch-top-low_0.9b.stl
Normal file
BIN
stl/10inch/surf-fins-10inch-top-low_0.9b.stl
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user