Bottom mold for 10inch fin
This commit is contained in:
parent
de7cc127da
commit
9d4fa6b330
@ -5,8 +5,9 @@
|
|||||||
"$fn": "64",
|
"$fn": "64",
|
||||||
"base_extra_thickness": "20",
|
"base_extra_thickness": "20",
|
||||||
"base_tickness": "8",
|
"base_tickness": "8",
|
||||||
"build_box": "true",
|
"build_box": "false",
|
||||||
"build_fin": "true",
|
"build_fin": "false",
|
||||||
|
"build_mold": "true",
|
||||||
"draw_profile": "false",
|
"draw_profile": "false",
|
||||||
"fin_back_angle": "20",
|
"fin_back_angle": "20",
|
||||||
"fin_back_height": "30",
|
"fin_back_height": "30",
|
||||||
@ -29,14 +30,13 @@
|
|||||||
"merge_holes_diameter": "6",
|
"merge_holes_diameter": "6",
|
||||||
"mold_base_height": "10",
|
"mold_base_height": "10",
|
||||||
"mold_extra_width": "15",
|
"mold_extra_width": "15",
|
||||||
"mold_part": "all",
|
"mold_part": "bottom",
|
||||||
"mold_piston_height": "10",
|
"mold_piston_height": "10",
|
||||||
"mold_top_height": "5",
|
"mold_top_height": "5",
|
||||||
"parts": "all",
|
"parts": "all",
|
||||||
"piston_depth": "5",
|
"piston_depth": "5",
|
||||||
"printable": "false",
|
"printable": "false",
|
||||||
"render_drill_template": "false",
|
"render_drill_template": "false",
|
||||||
"render_mold": "false",
|
|
||||||
"resin_escape_diameter": "4",
|
"resin_escape_diameter": "4",
|
||||||
"scale_factor": "1",
|
"scale_factor": "1",
|
||||||
"show_curve_points": "false",
|
"show_curve_points": "false",
|
||||||
|
@ -148,7 +148,7 @@ draw_profile = false;
|
|||||||
// Rendering parts
|
// Rendering parts
|
||||||
build_fin = false;
|
build_fin = false;
|
||||||
build_box = false;
|
build_box = false;
|
||||||
render_mold = true;
|
build_mold = true;
|
||||||
render_drill_template = false;
|
render_drill_template = false;
|
||||||
|
|
||||||
parts = "all"; // [all, top, bottom]
|
parts = "all"; // [all, top, bottom]
|
||||||
@ -256,59 +256,9 @@ if (draw_profile) {
|
|||||||
|
|
||||||
layers = [profile_curve,layer0,layer1,layer2,layer3,layer4];
|
layers = [profile_curve,layer0,layer1,layer2,layer3,layer4];
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
echo ("profile_curve");
|
|
||||||
print_path_points (profile_curve);
|
|
||||||
echo ("layer0");
|
|
||||||
print_path_points (layer0);
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
left(200) {
|
|
||||||
// Turning a VNF into geometry
|
|
||||||
vnf = skin(layers,slices=0,z=layerHeights(len(layers),fin_thickness),method="fast_distance");
|
|
||||||
|
|
||||||
//vnf1 = up(50, p=vnf);
|
|
||||||
//bent1 = vnf_bend(vnf1, axis="X",r=10);
|
|
||||||
|
|
||||||
vnf2 = vnf_hull(vnf);
|
|
||||||
vnf_polyhedron(vnf2);
|
|
||||||
|
|
||||||
|
|
||||||
// Expanded
|
|
||||||
|
|
||||||
//expanded_vnf = vnf_small_offset(vnf,20);
|
|
||||||
//back(80) vnf_polyhedron(expanded_vnf);
|
|
||||||
|
|
||||||
|
|
||||||
back(380) vnf_polyhedron(vnf_sheet(vnf,-30));
|
|
||||||
|
|
||||||
|
|
||||||
//vnf_polyhedron(vnf);
|
|
||||||
//vnf_wireframe(vnf);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
//left(365) polygon( profile_curve );
|
|
||||||
|
|
||||||
//test = round_corners(polygon(profile_curve), radius=20, closed=false, $fn=72);
|
|
||||||
|
|
||||||
left (800) color ("Green") polygon(profile_curve);
|
left (800) color ("Green") polygon(profile_curve);
|
||||||
|
|
||||||
left (1000) color ("Green") shell(10) polygon(profile_curve);
|
left (1000) color ("Green") shell(10) polygon(profile_curve);
|
||||||
|
|
||||||
/*
|
|
||||||
convex_offset_extrude(
|
|
||||||
bottom = os_circle(r=5),
|
|
||||||
top=os_circle(r=5),
|
|
||||||
height=10,
|
|
||||||
offset="delta",
|
|
||||||
angle=70
|
|
||||||
)
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -350,22 +300,54 @@ if ( build_fin )
|
|||||||
buildFin( fin_thickness );
|
buildFin( fin_thickness );
|
||||||
|
|
||||||
if ( build_box ) {
|
if ( build_box ) {
|
||||||
left(80) xflip() finfit(fin_base+20, [1,1,0]);
|
buildBox();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Render Mold
|
* Render Mold
|
||||||
*/
|
*/
|
||||||
if ( render_mold ) buildMold();
|
if ( build_mold ) buildMold();
|
||||||
if ( render_drill_template ) buildDrillTemplate();
|
if ( render_drill_template ) buildDrillTemplate();
|
||||||
|
|
||||||
|
|
||||||
|
module buildCompletFin() {
|
||||||
|
union(){
|
||||||
|
buildFin( fin_thickness );
|
||||||
|
buildBox();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
module buildBox() {
|
||||||
|
left(80) xflip()
|
||||||
|
finfit(fin_base+20, [1,1,0],false,false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Build mold
|
* Build mold
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
module buildMold() {
|
module buildMold() {
|
||||||
// Bottom mold
|
|
||||||
|
moldContour = expandPath(profile_curve,mold_extra_width);
|
||||||
|
showDebugPath(moldContour);
|
||||||
|
moldHeight = 10;
|
||||||
|
skirtHeight = 30;
|
||||||
|
buildMoldSkirt(skirtHeight,mold_extra_width,3);
|
||||||
|
|
||||||
|
if (mold_part != "top") {
|
||||||
|
difference() {
|
||||||
|
union() {
|
||||||
|
down(moldHeight) linear_extrude (moldHeight) polygon(moldContour); // bottom
|
||||||
|
back(5) left(95) cube([20+10,25,moldHeight],anchor=BACK+TOP); // Box shell
|
||||||
|
};
|
||||||
|
buildCompletFin();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//left(300) linear_extrude (skirtHeight) polygon(moldSkirtRegion);
|
||||||
|
/*
|
||||||
if (mold_part != "top")
|
if (mold_part != "top")
|
||||||
difference() {
|
difference() {
|
||||||
case(mold_base_height,true);
|
case(mold_base_height,true);
|
||||||
@ -386,6 +368,29 @@ module buildMold() {
|
|||||||
resin_escape(40);
|
resin_escape(40);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
module buildMoldSkirt( height,offset,thickness ) {
|
||||||
|
outside = expandPath(profile_curve,offset);
|
||||||
|
inside = expandPath(profile_curve,offset-thickness);
|
||||||
|
down(height) {
|
||||||
|
// Skirt
|
||||||
|
linear_extrude (height) difference() {
|
||||||
|
polygon(outside);
|
||||||
|
polygon(inside);
|
||||||
|
};
|
||||||
|
difference() {
|
||||||
|
//union() {
|
||||||
|
intersection() {
|
||||||
|
ycopies(30,10,sp=[-100,0,0])
|
||||||
|
cube([fin_width*1.3,thickness,height]);
|
||||||
|
linear_extrude (height) polygon(outside);
|
||||||
|
};
|
||||||
|
up(height) buildCompletFin();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,25 +1,25 @@
|
|||||||
module chinook(length)
|
module chinook(length,screw = true,pin=true)
|
||||||
{
|
{
|
||||||
difference()
|
difference()
|
||||||
{
|
{
|
||||||
base_cube(length);
|
base_cube(length);
|
||||||
tab_cut();
|
tab_cut();
|
||||||
screw_cut();
|
if (screw) screw_cut();
|
||||||
back_round_cut(length);
|
back_round_cut(length);
|
||||||
pin_cut(length);
|
if (pin) pin_cut(length);
|
||||||
thickness_cut(length, thick/2);
|
thickness_cut(length, thick/2);
|
||||||
thickness_cut(length, -thick/2);
|
thickness_cut(length, -thick/2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module finfit(base_length, mirror_vec)
|
module finfit(base_length, mirror_vec,screw = true,pin=true)
|
||||||
{
|
{
|
||||||
front_offset = tab_length;
|
front_offset = tab_length;
|
||||||
length = base_length + tab_length;
|
length = base_length + tab_length;
|
||||||
echo ("length:",length);
|
echo ("length:",length);
|
||||||
mirror(mirror_vec)
|
mirror(mirror_vec)
|
||||||
translate([0,-front_offset, 0])
|
translate([0,-front_offset, 0])
|
||||||
chinook(length);
|
chinook( length, screw ,pin );
|
||||||
}
|
}
|
||||||
|
|
||||||
module base_cube(BaseLength)
|
module base_cube(BaseLength)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user