Bottom mold for 10inch fin
This commit is contained in:
parent
de7cc127da
commit
9d4fa6b330
@ -5,8 +5,9 @@
|
||||
"$fn": "64",
|
||||
"base_extra_thickness": "20",
|
||||
"base_tickness": "8",
|
||||
"build_box": "true",
|
||||
"build_fin": "true",
|
||||
"build_box": "false",
|
||||
"build_fin": "false",
|
||||
"build_mold": "true",
|
||||
"draw_profile": "false",
|
||||
"fin_back_angle": "20",
|
||||
"fin_back_height": "30",
|
||||
@ -29,14 +30,13 @@
|
||||
"merge_holes_diameter": "6",
|
||||
"mold_base_height": "10",
|
||||
"mold_extra_width": "15",
|
||||
"mold_part": "all",
|
||||
"mold_part": "bottom",
|
||||
"mold_piston_height": "10",
|
||||
"mold_top_height": "5",
|
||||
"parts": "all",
|
||||
"piston_depth": "5",
|
||||
"printable": "false",
|
||||
"render_drill_template": "false",
|
||||
"render_mold": "false",
|
||||
"resin_escape_diameter": "4",
|
||||
"scale_factor": "1",
|
||||
"show_curve_points": "false",
|
||||
|
@ -148,7 +148,7 @@ draw_profile = false;
|
||||
// Rendering parts
|
||||
build_fin = false;
|
||||
build_box = false;
|
||||
render_mold = true;
|
||||
build_mold = true;
|
||||
render_drill_template = false;
|
||||
|
||||
parts = "all"; // [all, top, bottom]
|
||||
@ -256,59 +256,9 @@ if (draw_profile) {
|
||||
|
||||
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 (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
|
||||
)
|
||||
*/
|
||||
|
||||
|
||||
left (1000) color ("Green") shell(10) polygon(profile_curve);
|
||||
|
||||
}
|
||||
|
||||
@ -350,22 +300,54 @@ if ( build_fin )
|
||||
buildFin( fin_thickness );
|
||||
|
||||
if ( build_box ) {
|
||||
left(80) xflip() finfit(fin_base+20, [1,1,0]);
|
||||
buildBox();
|
||||
}
|
||||
|
||||
/**
|
||||
* Render Mold
|
||||
*/
|
||||
if ( render_mold ) buildMold();
|
||||
if ( build_mold ) buildMold();
|
||||
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
|
||||
*
|
||||
*/
|
||||
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")
|
||||
difference() {
|
||||
case(mold_base_height,true);
|
||||
@ -386,6 +368,29 @@ module buildMold() {
|
||||
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()
|
||||
{
|
||||
base_cube(length);
|
||||
tab_cut();
|
||||
screw_cut();
|
||||
if (screw) screw_cut();
|
||||
back_round_cut(length);
|
||||
pin_cut(length);
|
||||
if (pin) pin_cut(length);
|
||||
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;
|
||||
length = base_length + tab_length;
|
||||
echo ("length:",length);
|
||||
mirror(mirror_vec)
|
||||
translate([0,-front_offset, 0])
|
||||
chinook(length);
|
||||
chinook( length, screw ,pin );
|
||||
}
|
||||
|
||||
module base_cube(BaseLength)
|
||||
|
Loading…
x
Reference in New Issue
Block a user