Tube pass Support and cleanup
Added support for tube pass. Small cleanup of ear placement for edges.
This commit is contained in:
79
box.scad
79
box.scad
@@ -10,7 +10,7 @@ include <fdmouse.scad>
|
|||||||
|
|
||||||
/* [Part] */
|
/* [Part] */
|
||||||
|
|
||||||
PART = ""; // [ all_corners, corner_top, corner_bottom, edge_back_bottom_a, edge_back_bottom_b, edge_back_bottom_c, edge_back_bottom_d, edge_front_bottom, edge_side_top, edge_side_foot_left, edge_side_foot_right, edge_top_front, edge_top_back, edge_test, full_box, joiner_top, joiner_bottom, joiner_slop, profile, side_edge, rbfoot, hinge, new_joiner, rear_mount, grid_mount ]
|
PART = ""; // [ all_corners, corner_top_rear, corner_top_front_l, corner_top_front_r, corner_bottom, edge_back_bottom_a, edge_back_bottom_b, edge_back_bottom_c, edge_back_bottom_d, edge_front_bottom, edge_side_top, edge_side_foot_left, edge_side_foot_right, edge_top_front, edge_top_back, edge_test, full_box, joiner_top, joiner_bottom, joiner_slop, profile, side_edge, rbfoot, hinge, new_joiner, rear_mount, grid_mount ]
|
||||||
|
|
||||||
/* [Profile Dimensions] */
|
/* [Profile Dimensions] */
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@ FLOOR_THICK = 5;
|
|||||||
//JOINER_W = 10;
|
//JOINER_W = 10;
|
||||||
JOINER_H = 10;
|
JOINER_H = 10;
|
||||||
JOINER_W = 8;
|
JOINER_W = 8;
|
||||||
JOINER_SLOP = .2;
|
JOINER_SLOP = .1;
|
||||||
|
|
||||||
RB_MOUNT_INSET=17;
|
RB_MOUNT_INSET=17;
|
||||||
RB_MOUNT_WIDTH=9;
|
RB_MOUNT_WIDTH=9;
|
||||||
@@ -236,7 +236,18 @@ module box_edge(ps=PROFILE_SIZE, l=10, orient=ORIENT_Z, jh = JOINER_H,jw = JOINE
|
|||||||
if (tn > 1) {
|
if (tn > 1) {
|
||||||
zspread(l=l/2, n=tn) right(0)zrot(-45)back(face_off*sqrt(2))pc4M10(orient=ORIENT_Y,align=V_BACK);
|
zspread(l=l/2, n=tn) right(0)zrot(-45)back(face_off*sqrt(2))pc4M10(orient=ORIENT_Y,align=V_BACK);
|
||||||
} else {
|
} else {
|
||||||
right(0)zrot(-45)back(face_off*sqrt(2))pc4M10(orient=ORIENT_Y,align=V_BACK);
|
right(0)zrot(-45)back(face_off*sqrt(2)) {
|
||||||
|
pc4M10(orient=ORIENT_Y,align=V_BACK);
|
||||||
|
difference() {
|
||||||
|
cyl(h=2.28, r=1.7, orient=ORIENT_Y, align=V_BACK);
|
||||||
|
cyl(h=2.28, r=1.4, orient=ORIENT_Y, align=V_BACK);
|
||||||
|
}
|
||||||
|
difference() {
|
||||||
|
cyl(h=2.28, r=3.3, orient=ORIENT_Y, align=V_BACK);
|
||||||
|
cyl(h=2.28, r=3, orient=ORIENT_Y, align=V_BACK);
|
||||||
|
}
|
||||||
|
cyl(r=3.4, h=.2, orient=ORIENT_Y, align=V_BACK);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (jup) up(l/2)back(joiner_off)right(joiner_off)zrot(-45)new_joiner(slop=slop, orient=ORIENT_Y, align=V_CENTER);
|
if (jup) up(l/2)back(joiner_off)right(joiner_off)zrot(-45)new_joiner(slop=slop, orient=ORIENT_Y, align=V_CENTER);
|
||||||
@@ -278,10 +289,10 @@ module beam_joiner(jw=JOINER_W, jh=JOINER_H, fl=false, slop=JOINER_SLOP) {
|
|||||||
|
|
||||||
module box_all_corners(ex=0) {
|
module box_all_corners(ex=0) {
|
||||||
// top
|
// top
|
||||||
up(ex) fwd(ex) left(ex) box_corner(zfl=false, zw=true,align=V_UP+V_FRONT+V_LEFT, orient=ORIENT_ZNEG);
|
up(ex) fwd(ex) left(ex) box_corner(cl=true, zfl=false, zw=true, align=V_UP+V_FRONT+V_LEFT, orient=ORIENT_ZNEG);
|
||||||
up(ex) back(ex) left(ex) box_corner(zfl=false, zw=true,align=V_UP+V_BACK+V_LEFT, orient=ORIENT_ZNEG_90);
|
up(ex) back(ex) left(ex) box_corner(zfl=false, zw=true, align=V_UP+V_BACK+V_LEFT, orient=ORIENT_ZNEG_90);
|
||||||
up(ex) back(ex) right(ex) box_corner(zfl=false, zw=true, align=V_UP+V_BACK+V_RIGHT, orient=ORIENT_ZNEG_180);
|
up(ex) back(ex) right(ex) box_corner(zfl=false, zw=true, align=V_UP+V_BACK+V_RIGHT, orient=ORIENT_ZNEG_180);
|
||||||
up(ex) fwd(ex) right(ex) box_corner(zfl=false,zw=true,align=V_UP+V_FRONT+V_RIGHT, orient=ORIENT_ZNEG_270);
|
up(ex) fwd(ex) right(ex) box_corner(cr=true, zfl=false, zw=true, align=V_UP+V_FRONT+V_RIGHT, orient=ORIENT_ZNEG_270);
|
||||||
// bottom
|
// bottom
|
||||||
down(ex) fwd(ex) right(ex) box_corner(align=V_DOWN+V_FRONT+V_RIGHT, orient=ORIENT_Z);
|
down(ex) fwd(ex) right(ex) box_corner(align=V_DOWN+V_FRONT+V_RIGHT, orient=ORIENT_Z);
|
||||||
down(ex) back(ex) right(ex) box_corner(align=V_DOWN+V_BACK+V_RIGHT, orient=ORIENT_Z_90);
|
down(ex) back(ex) right(ex) box_corner(align=V_DOWN+V_BACK+V_RIGHT, orient=ORIENT_Z_90);
|
||||||
@@ -314,7 +325,7 @@ module new_joiner2(spacing=0, slop=JOINER_SLOP, align=V_FRONT, jh=JOINER_H, jw=J
|
|||||||
spread = jw + spacing;
|
spread = jw + spacing;
|
||||||
color(cl)
|
color(cl)
|
||||||
orient_and_align([2*jw+spacing,0,jh], orig_align=V_FRONT, align=align, orient=orient) {
|
orient_and_align([2*jw+spacing,0,jh], orig_align=V_FRONT, align=align, orient=orient) {
|
||||||
left(0*spread/2) half_joiner2(slop=slop, h=jh, w=jw, l=l, screwsize=$preview ? undef : undef);
|
left(spread/2) half_joiner2(slop=slop, h=jh, w=jw, l=l, screwsize=$preview ? undef : undef);
|
||||||
//right(spread/2) half_joiner2(h=jh, w=jw, l=l, screwsize=$preview ? undef : undef);
|
//right(spread/2) half_joiner2(h=jh, w=jw, l=l, screwsize=$preview ? undef : undef);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -323,7 +334,7 @@ module new_joiner_clear(spacing=0, slop=JOINER_SLOP, align=V_FRONT, jh=JOINER_H,
|
|||||||
color(cl)
|
color(cl)
|
||||||
orient_and_align([2*jw+spacing,0,jh], orig_align=V_FRONT, align=align, orient=orient) {
|
orient_and_align([2*jw+spacing,0,jh], orig_align=V_FRONT, align=align, orient=orient) {
|
||||||
left(spread/2) half_joiner_clear(h=jh, w=jw);
|
left(spread/2) half_joiner_clear(h=jh, w=jw);
|
||||||
//right(spread/2) half_joiner_clear(h=jh, w=jw);
|
right(spread/2) half_joiner_clear(h=jh, w=jw);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -338,6 +349,9 @@ lx = BOX_X - 2* sz - 2*psoff;
|
|||||||
ly = BOX_Y - sz;
|
ly = BOX_Y - sz;
|
||||||
lz = BOX_Z - sz;
|
lz = BOX_Z - sz;
|
||||||
ioff = 4*lx/50;
|
ioff = 4*lx/50;
|
||||||
|
// edge ears
|
||||||
|
ear_sy = 2*(coff/2-2*psoff);
|
||||||
|
ear_sx = lx/5;
|
||||||
|
|
||||||
echo(str("Edge Len X: ", lx, " (3 x ", lx/3, ")"));
|
echo(str("Edge Len X: ", lx, " (3 x ", lx/3, ")"));
|
||||||
echo(str("Edge Len Y: ", ly, " (1 x ", ly, ")"));
|
echo(str("Edge Len Y: ", ly, " (1 x ", ly, ")"));
|
||||||
@@ -350,13 +364,17 @@ if (PART == "profile") {
|
|||||||
}
|
}
|
||||||
if (PART == "all_corners")
|
if (PART == "all_corners")
|
||||||
box_all_corners(ex=30);
|
box_all_corners(ex=30);
|
||||||
if (PART == "corner_top") box_corner(zw=true, zfl=false, top=true);
|
if (PART == "corner_top_rear") box_corner(zw=true, zfl=false, top=true);
|
||||||
|
if (PART == "corner_top_front_l") box_corner(cl=true, zw=true, zfl=false, top=true);
|
||||||
|
if (PART == "corner_top_front_r") box_corner(cr=true, zw=true, zfl=false, top=true);
|
||||||
if (PART == "corner_bottom") box_corner(zw=false, zfl=true);
|
if (PART == "corner_bottom") box_corner(zw=false, zfl=true);
|
||||||
if (PART == "edge_front_bottom") {
|
if (PART == "edge_front_bottom") {
|
||||||
left(coff/2-2*psoff) back(lx/3/2)zrot(315)ear(thick=.2, dis=-2);
|
if (Print_Ears) {
|
||||||
right(coff/2-2*psoff) back(lx/3/2)zrot(225)ear(thick=.2, dis=-2);
|
left(coff/2-2*psoff) back(lx/3/2)zrot(315)ear(thick=.2, dis=-2);
|
||||||
left(coff/2-2*psoff) fwd(lx/3/2)zrot(45)ear(thick=.2, dis=-2);
|
right(coff/2-2*psoff) back(lx/3/2)zrot(225)ear(thick=.2, dis=-2);
|
||||||
right(coff/2-2*psoff) fwd(lx/3/2)zrot(135)ear(thick=.2, dis=-2);
|
left(coff/2-2*psoff) fwd(lx/3/2)zrot(45)ear(thick=.2, dis=-2);
|
||||||
|
right(coff/2-2*psoff) fwd(lx/3/2)zrot(135)ear(thick=.2, dis=-2);
|
||||||
|
}
|
||||||
difference() {
|
difference() {
|
||||||
up((wt+wl)/sqrt(2))xrot(90) zrot(45)
|
up((wt+wl)/sqrt(2))xrot(90) zrot(45)
|
||||||
box_edge(l=lx/3, jup=true, jdown=true, flx=true, wx=false, my=true, iy=false, tubepass=false, orient=ORIENT_Z);
|
box_edge(l=lx/3, jup=true, jdown=true, flx=true, wx=false, my=true, iy=false, tubepass=false, orient=ORIENT_Z);
|
||||||
@@ -370,39 +388,30 @@ if (PART == "edge_front_bottom") {
|
|||||||
}
|
}
|
||||||
if (PART == "edge_back_bottom_a") {
|
if (PART == "edge_back_bottom_a") {
|
||||||
if (Print_Ears) {
|
if (Print_Ears) {
|
||||||
left(coff/2-2*psoff) back(lx/5/2)zrot(315)ear(thick=.2, dis=-2);
|
xspread(n=2, l=ear_sx) yspread(n=2, l=ear_sy) ear(thick=.2, dis=-2);
|
||||||
right(coff/2-2*psoff) back(lx/5/2)zrot(225)ear(thick=.2, dis=-2);
|
|
||||||
left(coff/2-2*psoff) fwd(lx/5/2)zrot(45)ear(thick=.2, dis=-2);
|
|
||||||
right(coff/2-2*psoff) fwd(lx/5/2)zrot(135)ear(thick=.2, dis=-2);
|
|
||||||
}
|
}
|
||||||
up((wt+wl)/sqrt(2))xrot(90) zrot(45) box_edge(l=lx/5, jup=true, jdown=true, ioff=ioff, flx=true, wx=false, tubepass=true, tn=1, orient=ORIENT_Z);
|
up((wt+wl)/sqrt(2))
|
||||||
|
xrot(45) {
|
||||||
|
box_edge(l=lx/5, jup=true, jdown=true, ioff=ioff, flx=true, wx=false, tubepass=true, tn=1, orient=ORIENT_X);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (PART == "edge_back_bottom_b") {
|
if (PART == "edge_back_bottom_b") {
|
||||||
if (Print_Ears) {
|
if (Print_Ears) {
|
||||||
left(coff/2-2*psoff) back(lx/5/2)zrot(315)ear(thick=.2, dis=-2);
|
xspread(n=2, l=ear_sx) yspread(n=2, l=ear_sy) ear(thick=.2, dis=-2);
|
||||||
right(coff/2-2*psoff) back(lx/5/2)zrot(225)ear(thick=.2, dis=-2);
|
|
||||||
left(coff/2-2*psoff) fwd(lx/5/2)zrot(45)ear(thick=.2, dis=-2);
|
|
||||||
right(coff/2-2*psoff) fwd(lx/5/2)zrot(135)ear(thick=.2, dis=-2);
|
|
||||||
}
|
}
|
||||||
up((wt+wl)/sqrt(2))xrot(90) zrot(45) box_edge(l=lx/5, jup=true, jdown=true, ix=false, iy=false, flx=true, wx=false, tubepass=true, tn=1, orient=ORIENT_Z);
|
up((wt+wl)/sqrt(2)) xrot(45) box_edge(l=lx/5, jup=true, jdown=true, ix=false, iy=false, flx=true, wx=false, tubepass=true, tn=1, orient=ORIENT_X);
|
||||||
}
|
}
|
||||||
if (PART == "edge_back_bottom_c") {
|
if (PART == "edge_back_bottom_c") {
|
||||||
if (Print_Ears) {
|
if (Print_Ears) {
|
||||||
left(coff/2-2*psoff) back(lx/5/2)zrot(315)ear(thick=.2, dis=-2);
|
xspread(n=2, l=ear_sx) yspread(n=2, l=ear_sy) ear(thick=.2, dis=-2);
|
||||||
right(coff/2-2*psoff) back(lx/5/2)zrot(225)ear(thick=.2, dis=-2);
|
|
||||||
left(coff/2-2*psoff) fwd(lx/5/2)zrot(45)ear(thick=.2, dis=-2);
|
|
||||||
right(coff/2-2*psoff) fwd(lx/5/2)zrot(135)ear(thick=.2, dis=-2);
|
|
||||||
}
|
}
|
||||||
up((wt+wl)/sqrt(2))xrot(90) zrot(45) box_edge(l=lx/5, jup=true, jdown=true, ix=true, iy=true, flx=true, wx=false, tubepass=true, tn=1, orient=ORIENT_Z);
|
up((wt+wl)/sqrt(2)) xrot(45) box_edge(l=lx/5, jup=true, jdown=true, ix=true, iy=true, flx=true, wx=false, tubepass=true, tn=1, orient=ORIENT_X);
|
||||||
}
|
}
|
||||||
if (PART == "edge_back_bottom_d") {
|
if (PART == "edge_back_bottom_d") {
|
||||||
if (Print_Ears) {
|
if (Print_Ears) {
|
||||||
left(coff/2-2*psoff) back(lx/5/2)zrot(315)ear(thick=.2, dis=-2);
|
xspread(n=2, l=ear_sx) yspread(n=2, l=ear_sy) ear(thick=.2, dis=-2);
|
||||||
right(coff/2-2*psoff) back(lx/5/2)zrot(225)ear(thick=.2, dis=-2);
|
|
||||||
left(coff/2-2*psoff) fwd(lx/5/2)zrot(45)ear(thick=.2, dis=-2);
|
|
||||||
right(coff/2-2*psoff) fwd(lx/5/2)zrot(135)ear(thick=.2, dis=-2);
|
|
||||||
}
|
}
|
||||||
up((wt+wl)/sqrt(2))xrot(90) zrot(45) box_edge(l=lx/5, jup=true, jdown=true, ix=true, iy=true, ioff=-ioff, flx=true, wx=false, tubepass=true, tn=1, orient=ORIENT_Z);
|
up((wt+wl)/sqrt(2)) xrot(45) box_edge(l=lx/5, jup=true, jdown=true, ix=true, iy=true, ioff=-ioff, flx=true, wx=false, tubepass=true, tn=1, orient=ORIENT_X);
|
||||||
}
|
}
|
||||||
if (PART == "edge_side_foot_left") {
|
if (PART == "edge_side_foot_left") {
|
||||||
box_edge(l=ly, rbfoot=true, rbleft=true, flx=true, wx=false, jup=true, jdown=true, gm=true, orient=ORIENT_Y);
|
box_edge(l=ly, rbfoot=true, rbleft=true, flx=true, wx=false, jup=true, jdown=true, gm=true, orient=ORIENT_Y);
|
||||||
@@ -501,7 +510,7 @@ if (PART == "rbfoot") rb_foot();
|
|||||||
if (PART == "edge_test")
|
if (PART == "edge_test")
|
||||||
yrot(45)
|
yrot(45)
|
||||||
//box_edge(l=35, tubepass=true, jup=true, jdown=true, tn=1, flx=true, wx = false, orient=ORIENT_Y);
|
//box_edge(l=35, tubepass=true, jup=true, jdown=true, tn=1, flx=true, wx = false, orient=ORIENT_Y);
|
||||||
box_edge(l=25, tubepass=false, jup=true, jdown=true, tn=1, flx=false, wx = true, ix = false , my=true, iy = false, orient=ORIENT_Y);
|
box_edge(l=18, tubepass=false, jup=true, jdown=true, tn=1, flx=false, wx = true, ix = false , my=false, iy = false, orient=ORIENT_Y);
|
||||||
|
|
||||||
if (PART == "hinge") {
|
if (PART == "hinge") {
|
||||||
r = $t *90;
|
r = $t *90;
|
||||||
|
|||||||
Reference in New Issue
Block a user