From 41c4e0ed2eea2d02ece3582e19bdcef8886fd008 Mon Sep 17 00:00:00 2001 From: Stephen J Carpenter Date: Mon, 3 Feb 2025 16:46:24 -0500 Subject: [PATCH] Initial import --- h5075.scad | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 h5075.scad diff --git a/h5075.scad b/h5075.scad new file mode 100644 index 0000000..df1d4aa --- /dev/null +++ b/h5075.scad @@ -0,0 +1,71 @@ +/* */ + +include +include +include +include + +PART=""; // [inner, clear, bezel, mount] + +CASE_X=64.70; +CASE_Y=80.00; +WALL=.8; +BEZEL_Z=.6; +MOUNT_Z=7; + +REV="RC1"; + +/* [Render Options] */ +render_fs=1; +render_fn=0; +render_fa=7; + +// Set Render Options +$fs= ($preview) ? $fs : render_fs; +$fn= ($preview) ? $fn : render_fn; +$fa= ($preview) ? $fa : render_fa; + +module govee_clear(x=CASE_X, y=CASE_Y, wall=WALL, lz=BEZEL_Z, z=MOUNT_Z, align=V_CENTER) { + down(z/2)difference() { + union() { + up(lz) cuboid([x,y,z], fillet=7, edges=EDGES_Z_ALL, align=V_TOP); + down(.01) cuboid([x-4,y-4,lz+.02], fillet=7, edges=EDGES_Z_ALL, align=V_TOP); + } + up(z)fwd(y/2)xrot(45)cuboid([5,1,1]); + } +} + +module govee_bezel(x=CASE_X, y=CASE_Y, wall=WALL, z=MOUNT_Z, align=V_CENTER, orient=ORIENT_Z) { + orient_and_align([x,y,z], align=align, orient=orient) + difference() { + union() { + cuboid([x+2*wall,y+2*wall,z], fillet=7, edges=EDGES_Z_ALL); + } + govee_clear(align=V_TOP); + } +} + +module govee_mount() { + back(CASE_Y/2+WALL) difference() { + hull() { + back(10)xspread(n=2, l=60) cyl(d=8,h=6, align=V_TOP); + cuboid([50,1,3], align=V_TOP); + } + up(3)back(10-7+3.5-WALL)cuboid([CASE_X-16,14,10], align=V_TOP); + back(10) xspread(n=2, l=60)xrot(180)m3s_clear(bl=15, bz=-10, sh=.25); + } + govee_bezel(align=V_TOP); +} + +if (PART == "clear") govee_clear(align=V_TOP); +if (PART == "bezel") govee_bezel(align=V_TOP); +if (PART == "mount") { + difference() { + govee_mount(align=V_TOP); + back(CASE_Y/2 + 4) linear_extrude(height=1) mirror([1,0,0]) text(REV, halign="bottom"); + } +} + +if (PART == "mount") { + back(CASE_Y/2 + 4) linear_extrude(height=1) mirror([1,0,0])text(REV, halign="bottom"); +}