diff --git a/pi-camera-case.scad b/pi-camera-case.scad index 4aa0b0a..c4132b5 100644 --- a/pi-camera-case.scad +++ b/pi-camera-case.scad @@ -1,24 +1,37 @@ include include +include CaseSizeX = PiSizeX + 1.5; CaseSizeY = PiSizeY + 1.5; -wall_thickness_mod = 3; +wall_thickness = 3; cap_thickness = 6; case_height = 7; -outer_rect_size=[CaseSizeX + wall_thickness_mod, CaseSizeY + wall_thickness_mod]; +outer_rect_size=[CaseSizeX + wall_thickness, CaseSizeY + wall_thickness]; PiZeroVer = "WH"; - -%up(cap_thickness) PiZeroBody(false); -union() { - // Case Walls - up(cap_thickness - 0.05) difference() { - rect_tube(h=case_height, size=outer_rect_size , isize=[CaseSizeX, CaseSizeY], anchor=BOTTOM); - up(0.5) PiZeroBody(true); - up(2) fwd(CaseSizeY / 2 + wall_thickness_mod / 2 - 0.29) right(CaseSizeX / 2 - 6) xrot(90) text3d(text = "5V", size=3, font = "Hurmit Nerd Font", thickness = 0.3, anchor=FRONT+LEFT+BOTTOM); +module case() { + %up(cap_thickness) PiZeroBody(false); + union() { + // Case Walls + up(cap_thickness - 0.05) difference() { + rect_tube(h=case_height, size=outer_rect_size , isize=[CaseSizeX, CaseSizeY], anchor=BOTTOM); + up(0.5) PiZeroBody(true); + up(2) fwd(CaseSizeY / 2 + wall_thickness / 2 - 0.29) right(CaseSizeX / 2 - 6) xrot(90) text3d(text = "5V", size=3, font = "Hurmit Nerd Font", thickness = 0.3, anchor=FRONT+LEFT+BOTTOM); + up(case_height - 0.1) topCap(); + } + // Bottom Wall Cap + linear_extrude(cap_thickness) rect(size = outer_rect_size, anchor = CENTER, spin = 0); + // Top Wall Cap + } - // Bottom Wall Cap - linear_extrude(cap_thickness) rect(size = outer_rect_size, anchor = CENTER, spin = 0); - // Top Wall Cap - // %up(cap_thickness + case_height - 0.1) linear_extrude(cap_thickness) rect(size = outer_rect_size, anchor = CENTER, spin = 0); } + +module topCap() { + linear_extrude(cap_thickness) rect(size = outer_rect_size, anchor = CENTER, spin = 0); + down(2) rect_tube(h=2, size=[CaseSizeX - 0.5, CaseSizeY - 0.5], isize=[CaseSizeX - wall_thickness, CaseSizeY - wall_thickness], anchor=BOTTOM); + right((CaseSizeX - 0.5) / 2) down(2) yrot(90) narrowing_strut(w=1, l=CaseSizeY - (wall_thickness * 2), wall=0.1, ang=60, anchor=BOTTOM+RIGHT); + left((CaseSizeX - 0.5) / 2) down(2) yrot(-90) narrowing_strut(w=1, l=CaseSizeY - (wall_thickness * 2), wall=0.1, ang=60, anchor=BOTTOM+LEFT); +} + +!case(); +up(cap_thickness) yrot(180) topCap();