From 5522231048b8428c27934e1d127985130aa17643 Mon Sep 17 00:00:00 2001 From: Stephen J Carpenter Date: Tue, 29 Jul 2025 22:36:18 -0400 Subject: [PATCH] Finalized Box Parts Printing V2 --- README.md | 3 +++ box.scad | 48 ++++++++++++++++++++++++++++-------------------- 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index d823849..9aa99c0 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,9 @@ Openscad Code by sjc (Stephen Carpenter) Magnet.svg by [Solar Icons](https://www.figma.com/community/file/1166831539721848736?ref=svgrepo.com) in CC Attribution License +Finalized and printing parts. +Snaps could be better. + TODO: - Cleanup - Handles diff --git a/box.scad b/box.scad index a04727e..28543e9 100644 --- a/box.scad +++ b/box.scad @@ -124,17 +124,19 @@ module rb_foot(fw=RB_MOUNT_WIDTH, rl=RB_MOUNT_LEN+5, rh=RB_MOUNT_OUT_H, fl=10) { } -module hinge_mount(bz=WIN_THICK, bl=10) { +module hinge_mount(bz=WIN_THICK, inv=false, bl=10) { zspread(l=40) { zrot(-90)xrot(90)right(5) { up(3+2) cyl(d1=7, d2=9,h=7, align=V_TOP); - thread_insertM3(bl=bl,bz=-(bl-3), $die=true); + //thread_insertM3(bl=bl,bz=-(bl-3), $die=true); + m3s_clear(bl=bl,bz=-(bl-3), sh=inv ? .2 : 0, $die=true); //%thread_insertM3(bl=10,bz=-7); } } zrot(-90)xrot(90)left(5) { up(3+2) cyl(d1=7, d2=9,h=7, align=V_TOP); - thread_insertM3(bl=bl,bz=-(bl-3), $die=true); + //thread_insertM3(bl=bl,bz=-(bl-3), $die=true); + m3s_clear(bl=bl,bz=-(bl-3), sh=inv ? .2 : 0, $die=true); //%thread_insertM3(bl=10,bz=-7); } } @@ -212,7 +214,7 @@ module box_edge(ps=PROFILE_SIZE, l=10, orient=ORIENT_Z, jh = JOINER_H,jw = JOINE zrot(-45)back(face_off*sqrt(2)-.01)pc4M10_clear(orient=ORIENT_Y,align=V_BACK); } } - if (hm) right(face_off)back(face_off)zrot(45) color("gold") hinge_mount(); + if (hm) right(face_off)back(face_off)zrot(45) color("gold") hinge_mount(inv=true); if (iy) up(ioff) back(ps-wl/2)right(wt)yrot(-90) thread_insertM3(bl=5+wt, bz=-5, $die=true); if (my) up(ioff) back(ps-wl/2)right(wt)yrot(-90) { back(5)down(2.4)cuboid([20.2,12,1.8], align=V_BOTTOM); @@ -420,29 +422,35 @@ if (PART == "edge_side_foot_right") { box_edge(l=ly, rbfoot=true, flx=true, wx=false, jup=true, jdown=true, gm=true, orient=ORIENT_Y); } if (PART == "edge_side_top") { - left(coff/2-2*psoff) back(ly/2)zrot(315)ear(thick=.2, dis=-2); - right(coff/2-2*psoff) back(ly/2)zrot(225)ear(thick=.2, dis=-2); - left(coff/2-2*psoff) fwd(ly/2)zrot(45)ear(thick=.2, dis=-2); - right(coff/2-2*psoff) fwd(ly/2)zrot(135)ear(thick=.2, dis=-2); - up((wt+wl)/sqrt(2))yrot(45)box_edge(l=ly, rbfoot=false, flx=false, wx=true, jup=true, jdown=true, cm=true, orient=ORIENT_Y); + if (Print_Ears) { + left(coff/2-2*psoff) back(ly/2)zrot(315)ear(thick=.2, dis=-2); + right(coff/2-2*psoff) back(ly/2)zrot(225)ear(thick=.2, dis=-2); + left(coff/2-2*psoff) fwd(ly/2)zrot(45)ear(thick=.2, dis=-2); + right(coff/2-2*psoff) fwd(ly/2)zrot(135)ear(thick=.2, dis=-2); + } + up((wt+wl)/sqrt(2))yrot(45)box_edge(l=ly, rbfoot=false, flx=false, wx=true, jup=true, jdown=true, cm=false, orient=ORIENT_Y); } if (PART == "edge_top_front") { //r = $t *90 - 45; r=-45; - left(coff/2-2*psoff) back(lx/3/2)zrot(315)ear(thick=.2, dis=-2); - right(coff/2-2*psoff) back(lx/3/2)zrot(225)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); - up((wt+wl)/sqrt(2)) yrot(45+90)zrot(90)box_edge(l=lx/3, rbfoot=false, hm=true, ht=r, hs=true, flx=false, iy=false, wx=true, jup=true, jdown=true, cm=true, orient=ORIENT_XNEG_180); + if (Print_Ears) { + left(coff/2-2*psoff) back(lx/3/2)zrot(315)ear(thick=.2, dis=-2); + right(coff/2-2*psoff) back(lx/3/2)zrot(225)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); + } + up((wt+wl)/sqrt(2)) yrot(45+90)zrot(90)box_edge(l=lx/3, rbfoot=false, hm=true, hc=true, ht=r, hs=true, flx=false, iy=false, wx=true, jup=true, jdown=true, cm=false, orient=ORIENT_XNEG_180); face_off = ((ps+psoff)/4); //xrot(45)yrot(-90)right(face_off+7/2)zrot(180)hinge(); } if (PART == "edge_top_back") { - left(coff/2-2*psoff) back(lx/3/2)zrot(315)ear(thick=.2, dis=-2); - right(coff/2-2*psoff) back(lx/3/2)zrot(225)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); - up((wt+wl)/sqrt(2)) yrot(45+90)zrot(90)box_edge(l=lx/3, rbfoot=false, hm=false, flx=false, iy=true, wx=true, jup=true, jdown=true, cm=true, orient=ORIENT_XNEG_180); + if (Print_Ears) { + left(coff/2-2*psoff) back(lx/3/2)zrot(315)ear(thick=.2, dis=-2); + right(coff/2-2*psoff) back(lx/3/2)zrot(225)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); + } + up((wt+wl)/sqrt(2)) yrot(45+90)zrot(90)box_edge(l=lx/3, rbfoot=false, hm=true, flx=false, iy=true, wx=true, jup=true, jdown=true, cm=false, orient=ORIENT_XNEG_180); } if (PART == "full_box") { up(lz/2+ps) { @@ -518,7 +526,7 @@ if (PART == "hinge") { } if (PART == "rear_mount") { - rearMount(); + up(7) yrot(-90) rearMount(); } if (PART == "new_joiner") {