diff --git a/README b/README index 7a28864..53bed6b 100644 --- a/README +++ b/README @@ -1,5 +1,9 @@ Drybox-NG an Unoriginal Drybox Implemented in OpenSCAD +Openscad Code by sjc (Stephen Carpenter) + +Magnet.svg by Solar Icons in CC Attribution License via SVG Repo + WIP: - Need Mount for Buffer diff --git a/box.scad b/box.scad index b46db20..b11bf61 100644 --- a/box.scad +++ b/box.scad @@ -90,16 +90,28 @@ module profile(ps=PROFILE_SIZE, wl=WIN_LIP, wt=WIN_THICK, wtr=WIN_TRIM, fl=FLOOR module rb_foot(fw=RB_MOUNT_WIDTH, rl=RB_MOUNT_LEN+5, rh=RB_MOUNT_OUT_H, fl=10) { difference() { - translate([-(fl+rl/2),0]) - linear_extrude(height=fw-1) { - offset(r=1)offset(delta=-1)union() { - square([rl+2*fl, rh]); - square([fl, rh+fl+6]); - translate([0,rh+fl-2,0]) square([15, 8]); - translate([rl+fl,0]) square([fl, rh+fl+6]); + union() { + translate([-(fl+rl/2),0]) { + linear_extrude(height=fw-1) { + offset(r=1)offset(delta=-1)union() { + square([rl+2*fl, rh]); + square([fl+2, rh+fl+6]); + translate([0,rh+fl-2,0]) square([15, 8]); + translate([rl+fl,0]) { + square([fl, rh+fl+6]); + polygon([[-3,0+rh], [0,0+rh], [0,3+rh] ]); + } + } + } } + //up(fl/2) xspread(l=fl+rl, n=2) cuboid([fl,rh+fl+6,2*fw], fillet=2, align=V_BACK); + //up(fl/2)left(rl/2)back(1.5+rh+fl+6-fl/2)cuboid([15,7,2*fw], fillet=2); } - up(4) right(fl-3.5+rl/2) back(rh + 6) xrot(180)yrot(90)m3s_clear(bl=10,bz=-10, sh=0, drop=true, $die=true); + left(rl/2 - 3) down(.01)back(fw+rh-4.5) hull() { + cyl(r=4.5, h=fw, align=V_TOP); + right(20)cyl(r=4.5, h=fw, align=V_TOP); + } + up(4) right(fl+rl/2) back(rh + 6) xrot(180)yrot(90)m3s_clear(bl=12,bz=-12, sh=0, drop=true, $die=true); } back=5; bmax = back + (fw-1); @@ -107,6 +119,9 @@ module rb_foot(fw=RB_MOUNT_WIDTH, rl=RB_MOUNT_LEN+5, rh=RB_MOUNT_OUT_H, fl=10) { fwd(bmax)up(fw-1) yrot(90)linear_extrude(height=rl, center=true) polygon([[0,bmax-fw+1],[0,bmax],[fw-1,bmax]]); + back(8)xrot(90)fwd(bmax)up(fw-1) + yrot(90)linear_extrude(height=rl, center=true) polygon([[0,bmax-fw+1],[0,bmax],[fw-1,bmax]]); + } module hinge_mount(bz=WIN_THICK, bl=10) { @@ -163,17 +178,20 @@ module rearMount(md=141.333, theta=90, show=true) { left(x/2)cuboid([x,20+2*d,50], fillet=2, edges=EDGES_X_ALL+EDGES_Y_RT+EDGES_Z_RT); left(x)xflip()hinge_mount($die=true); } - left(5+d)back(13+py/2 + 5+2*d)zrot(theta){ - zrot(-theta)zspread(n=2, l=md+25+25/2 ) hull() { - right(5.3)fwd(5+py/2)cuboid([x,2*d+1+9/2+20,25/2], fillet=2, align=V_LEFT, edges=EDGES_Y_RT); - right(2*4.5+2*d)#cyl(fillet=2, r=6, h=25/2); - right(4.75/2+2*d)#cyl(fillet=2, r=4.75, h=25/2); + left(5+d)back(13+py/2 + 5+2*d)zrot(theta) { + zrot(-theta)zspread(n=2, l=md+25+25/2 ) + hull() { + right(5.3)fwd(5+py/2)cuboid([x,2*d+1+9/2+20,25/2], fillet=2, align=V_LEFT, edges=EDGES_Y_RT); + right(2*4.5+2*d) cyl(fillet=2, r=6, h=25/2); + right(4.75/2+2*d)cyl(fillet=2, r=4.75, h=25/2); + } + fwd(2*4.5+2*d) { + cyl(r=4.75, fillet=2, h=md+50); } - fwd(2*4.5+2*d)cyl(r=4.75, fillet=2, h=md+50); } } -module box_edge(ps=PROFILE_SIZE, l=10, orient=ORIENT_Z, jh = JOINER_H,jw = JOINER_W, slop=JOINER_SLOP, jb=5, jup = false, jdown=false, flx=false, ft=FLOOR_THICK, wl=WIN_LIP, ioff=0, wx=true, wt=WIN_THICK, wtr = WIN_TRIM, hm=false, hc=false, ht=0, hs=false, tubepass=false, tn = 2, ix=true, iy=true, rbfoot=false, rbleft=false, cm=false, gm=false, align=V_CENTER) { +module box_edge(ps=PROFILE_SIZE, l=10, orient=ORIENT_Z, jh = JOINER_H,jw = JOINER_W, slop=JOINER_SLOP, jb=5, jup = false, jdown=false, flx=false, ft=FLOOR_THICK, wl=WIN_LIP, ioff=0, wx=true, wt=WIN_THICK, wtr = WIN_TRIM, hm=false, hc=false, ht=0, hs=false, tubepass=false, tn = 2, ix=true, iy=true, rbfoot=false, rbleft=false, cm=false, gm=false, my=false, align=V_CENTER) { jzoff = l/2-jw/2; inner_off = ps/2 + wt; jdiff = (ps-wt)/2 - jh; @@ -197,6 +215,10 @@ module box_edge(ps=PROFILE_SIZE, l=10, orient=ORIENT_Z, jh = JOINER_H,jw = JOINE } if (hm) right(face_off)back(face_off)zrot(45) color("gold") hinge_mount(); 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) { + down(2.4)cuboid([20.2,15.2,1.8], align=V_BOTTOM); + up(.01)cuboid([22,7,2.11], align=V_BOTTOM); + } if (ix && flx ) up(ioff) right(ps-wl/2)back(ps/2-ft-1)xrot(-90) thread_insertM3(bl=ft+6, bz=-6, $die=true); if (ix && wx) @@ -335,8 +357,16 @@ if (PART == "edge_front_bottom") { 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))xrot(90) zrot(45) - box_edge(l=lx/3, jup=true, jdown=true, flx=true, wx=false, tubepass=false, orient=ORIENT_Z); + difference() { + 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); + yspread(n=5, l=22) up(2.1+.6) { + cuboid([20+1.2,5.2,2.1], chamfer=.6, edges=EDGES_Y_BOT , align=V_BOTTOM); + up(.6+.8)right(20)cuboid([50,5.2,2.3], chamfer=.6, edges=EDGES_Y_BOT, align=V_BOTTOM); + } + linear_extrude(height=.6) scale(.1) import("magnet.svg", center=true); + } + color("orange")linear_extrude(height=.6) scale(.1) #import("magnet.svg", center=true); } if (PART == "edge_back_bottom_a") { if (Print_Ears) { diff --git a/magnet.svg b/magnet.svg new file mode 100644 index 0000000..2ceae90 --- /dev/null +++ b/magnet.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file