Bottom mold mask refining
This commit is contained in:
parent
73dda579e6
commit
420a543229
@ -98,7 +98,7 @@
|
||||
},
|
||||
"New set 3": {
|
||||
"$fn": "64",
|
||||
"base_extra_thickness": "40",
|
||||
"base_extra_thickness": "20",
|
||||
"base_tickness": "8",
|
||||
"build_box": "false",
|
||||
"build_fin": "false",
|
||||
|
@ -12,9 +12,10 @@ include <DotScad/src/ellipse_extrude.scad>;
|
||||
include <DotScad/src/loft.scad>;
|
||||
|
||||
include <scad-utils/morphology.scad>;
|
||||
include <common.scad>
|
||||
include <common.scad>;
|
||||
|
||||
include <./lib/chinook.scad> // US Box
|
||||
include <./lib/finbox_us.scad> // US Box
|
||||
|
||||
|
||||
// https://github.com/BelfrySCAD/BOSL2/wiki/Tutorial-Beziers_for_Beginners
|
||||
@ -76,7 +77,7 @@ fin_back_strength=30;
|
||||
/* [Base Specs] */
|
||||
|
||||
base_tickness=8;
|
||||
base_extra_thickness=40;
|
||||
base_extra_thickness=20;
|
||||
|
||||
|
||||
// ---------------------*/
|
||||
@ -96,6 +97,8 @@ resin_escape_diameter = 4;
|
||||
merge_holes_diameter = 6;
|
||||
piston_depth = 5;
|
||||
|
||||
skirt_angle=80;
|
||||
|
||||
// ---------------------*/
|
||||
/* [US Box] */
|
||||
// ---------------------*/
|
||||
@ -262,13 +265,10 @@ if (draw_profile) {
|
||||
left (800) color ("Green") polygon(profile_curve_with_base);
|
||||
|
||||
left (1000) color ("Green") shell(10) polygon(profile_curve_with_base);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// *****************
|
||||
// * Fin Drawing *
|
||||
// *****************
|
||||
@ -313,6 +313,28 @@ module buildBoxMold() {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Remove bottom part of the fin mold to let the box mold do the job
|
||||
*
|
||||
*/
|
||||
module moldBottomMask(moldThickness = 3,height,angle) {
|
||||
|
||||
// Remove bottom part
|
||||
//color("Red") cube([fin_width,base_extra_thickness,80],anchor=BACK);
|
||||
deviation = opp_ang_to_adj (height,angle);
|
||||
//back(moldThickness)
|
||||
back(-1)
|
||||
down(OFFSET)
|
||||
//up(2)
|
||||
color ("Blue") prismoid(
|
||||
size1=[fin_width/2*1.2, moldThickness*2],
|
||||
size2=[fin_width/2*1.2, moldThickness*2+ 2*deviation],
|
||||
h=height+OFFSET*2
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build mold
|
||||
*
|
||||
@ -327,18 +349,47 @@ module buildMold() {
|
||||
|
||||
// Bottom Mold
|
||||
if (mold_part != "top") {
|
||||
|
||||
// Fin mold
|
||||
difference() {
|
||||
union() {
|
||||
down(moldHeight) linear_extrude (moldHeight) polygon(moldContour); // bottom
|
||||
//back(5) left(95) cube([20+10,25,moldHeight],anchor=BACK+TOP); // Box shell
|
||||
skirt( profile, moldThickness = 3 , angle = 85, moldDeep = fin_thickness );
|
||||
//up(5) color("Yellow") left(80) buildBoxMold();
|
||||
difference() {
|
||||
skirt( profile, moldThickness = 3 , angle = skirt_angle, moldDeep = fin_thickness );
|
||||
moldBottomMask(height=fin_thickness * 3,angle=skirt_angle);
|
||||
|
||||
|
||||
//
|
||||
//moldJunctionMask(height=fin_thickness * 3,angle=skirt_angle);
|
||||
}
|
||||
|
||||
};
|
||||
// Remove Fin
|
||||
buildCompletFin();
|
||||
}
|
||||
// Box mold
|
||||
assert (fin_base,"fin_base missing");
|
||||
echo ("fin_base----------",fin_base);
|
||||
// left(80) finBoxMold( length = 130, finLength = fin_base );
|
||||
//diff() {
|
||||
difference() {
|
||||
left(80) finBoxMold( fin_base+30,skirtAngle = skirt_angle );
|
||||
|
||||
// Remove junction between skirt
|
||||
//tag("remove")
|
||||
moldJunctionMask(height=fin_thickness * 3,angle=skirt_angle);
|
||||
//tag("remove")
|
||||
buildCompletFin();
|
||||
}
|
||||
//moldJunctionMask(height=fin_thickness * 3,angle=skirt_angle);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
up(50) buildCompletFin();
|
||||
|
||||
//left(300) linear_extrude (skirtHeight) polygon(moldSkirtRegion);
|
||||
/*
|
||||
if (mold_part != "top")
|
||||
@ -363,6 +414,24 @@ module buildMold() {
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
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 )
|
||||
color("Red")
|
||||
prismoid(
|
||||
size1=[fin_width/2-1.5*moldThickness, moldThickness*3+2*OFFSET],
|
||||
size2=[fin_width/2+1*deviation+0*moldThickness, /*moldThickness/2*/moldThickness * 3+deviation],
|
||||
h=height+OFFSET*3
|
||||
);
|
||||
}
|
||||
|
||||
module buildMoldSkirt( height,offset,thickness ) {
|
||||
outside = expandPath(profile,offset);
|
||||
inside = expandPath(profile,offset-thickness);
|
||||
|
@ -60,6 +60,8 @@ module usBox( length, height=23, thickness = 9, tabLength = 20,pinDiameter = 5,p
|
||||
|
||||
module usBoxMold( length, height=23, thickness = 9, moldThickness = 4,tabLength = 20,part = "bottom",skirtAngle=80 ) {
|
||||
|
||||
//assert(length == 130,"Not 130");
|
||||
|
||||
moldHeight = thickness + 2 * moldThickness;
|
||||
skirtHeight = 3 * thickness;
|
||||
deviation = opp_ang_to_adj (skirtHeight,skirtAngle); // Skirt devitation
|
||||
@ -127,13 +129,12 @@ module usBoxMold( length, height=23, thickness = 9, moldThickness = 4,tabLength
|
||||
|
||||
}
|
||||
|
||||
module finBoxMold(length,finLength,part="bottom") {
|
||||
module finBoxMold( length, finLength=-1, skirtAngle = 80, part="bottom") {
|
||||
|
||||
assert (finLength,"Missing 'finLength' parameter in finBoxMold module");
|
||||
//if (part=="bottom") {
|
||||
usBoxMold( 130,finLength=100,part=part );
|
||||
usBoxMold( length,part=part,skirtAngle=skirtAngle );
|
||||
//}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -163,7 +164,6 @@ module thickness_cut(thickness,height) {
|
||||
//usBox( 130,drill=false );
|
||||
//usBoxMold( 130,part="top" );
|
||||
|
||||
finBoxMold( 130,finLength=100,part="bottom" );
|
||||
|
||||
|
||||
//down(50) usBoxMold( 130,part="bottom" );
|
||||
|
Loading…
x
Reference in New Issue
Block a user