From 46c989d231b305fc924f19c4e69e0dc793672fd2 Mon Sep 17 00:00:00 2001 From: Octopus Octopus Date: Tue, 31 May 2022 17:17:44 -0500 Subject: [PATCH] remove commented out code, move test functions to tests.go --- hjklbox/plate.go | 125 ----------------------------------------------- hjklbox/tests.go | 69 ++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 125 deletions(-) create mode 100644 hjklbox/tests.go diff --git a/hjklbox/plate.go b/hjklbox/plate.go index 33f62e1..f8acef5 100644 --- a/hjklbox/plate.go +++ b/hjklbox/plate.go @@ -61,8 +61,6 @@ func top() sdf.SDF3 { buttonRow = sdf.Transform2D(buttonRow, sdf.Translate2d(sdf.V2{X: top2D.BoundingBox().Max.X / 2, Y: top2D.BoundingBox().Max.Y / 1.25})) top2D = sdf.Difference2D(top2D, buttonRow) - // hjkl := buttonRow - corners := cornerHoles(top2D, M4screwHole()) top2D = sdf.Difference2D(top2D, corners) @@ -83,65 +81,13 @@ func walls() sdf.SDF3 { bottom2D = sdf.Union2D(bottom2D, cornerScrewHolders) bottom2D = sdf.Difference2D(bottom2D, cornerScrews) cavity2D = sdf.Difference2D(cavity2D, cornerScrewHolders) - /* - pegHole, _ := sdf.Circle2D(M2_SCREW_HOLE_DIAMETER / 2) - pegHoles := make([]sdf.SDF2, PICO_PEG_HEIGHT) - for i := range pegHoles { - pegHoles[i] = pegHole - } - pegHoles[0] = sdf.Transform2D(pegHoles[0], sdf.Translate2d(sdf.V2{X: 47 / 2, Y: 11.4 / 2})) //pico mounting hole spacing - pegHoles[1] = sdf.Transform2D(pegHoles[1], sdf.Translate2d(sdf.V2{X: 47 / 2, Y: -11.4 / 2})) //pico mounting hole spacing - pegHoles[2] = sdf.Transform2D(pegHoles[2], sdf.Translate2d(sdf.V2{X: -47 / 2, Y: -11.4 / 2})) //pico mounting hole spacing - pegHoles[3] = sdf.Transform2D(pegHoles[3], sdf.Translate2d(sdf.V2{X: -47 / 2, Y: 11.4 / 2})) //pico mounting hole spacing - - peg, _ := sdf.Circle2D(M2_SCREW_HOLE_DIAMETER) - pegs := make([]sdf.SDF2, 4) - for i := range pegs { - pegs[i] = peg - } - pegs[0] = sdf.Transform2D(pegs[0], sdf.Translate2d(sdf.V2{X: 47 / 2, Y: 11.4 / 2})) //pico mounting hole spacing - pegs[1] = sdf.Transform2D(pegs[1], sdf.Translate2d(sdf.V2{X: 47 / 2, Y: -11.4 / 2})) //pico mounting hole spacing - pegs[2] = sdf.Transform2D(pegs[2], sdf.Translate2d(sdf.V2{X: -47 / 2, Y: -11.4 / 2})) //pico mounting hole spacing - pegs[3] = sdf.Transform2D(pegs[3], sdf.Translate2d(sdf.V2{X: -47 / 2, Y: 11.4 / 2})) //pico mounting hole spacing - - mount2D := sdf.Union2D(pegs...) - mountingHoles2D := sdf.Union2D(pegHoles...) - mount2D = sdf.Difference2D(mount2D, mountingHoles2D) - mount2D = sdf.Transform2D(mount2D, sdf.Translate2d(sdf.V2{X: bottom2D.BoundingBox().Max.X / 2, Y: -bottom2D.BoundingBox().Max.X / 3})) - mount := sdf.Extrude3D(mount2D, 4) // M2x4mm screw holes - mount = sdf.Transform3D(mount, sdf.Translate3d(sdf.V3{X: 0, Y: 0, Z: -0.1})) - // bottom2D = sdf.Union2D(bottom2D, mount) - - bottom := sdf.Extrude3D(bottom2D, BOTTOM_THICKNESS) - bottom = sdf.Union3D(bottom, mount) - - cavity2D = sdf.Elongate2D(cavity2D, sdf.V2{X: 1, Y: 1}) - floor := sdf.Extrude3D(cavity2D, PLATE_THICKNESS) - floor = sdf.Transform3D(floor, sdf.Translate3d(sdf.V3{X: 0, Y: 0, Z: -(bottom.BoundingBox().Max.Z*2+floor.BoundingBox().Max.Z*2)/4 - 0.50})) - bottom = sdf.Union3D(bottom, floor) - */ - /*cableHole2D := sdf.Box2D(sdf.V2{X: CABLE_HEAD_WIDTH, Y: CABLE_HEAD_HEIGHT}, 0) - cableHole := sdf.Extrude3D(cableHole2D, TOLERANCE) - cableHole = sdf.Transform3D(cableHole, sdf.RotateX(sdf.DtoR(90))) - cableHole = sdf.Transform3D(cableHole, sdf.Translate3d(sdf.V3{X: 0, Y: (bottom.BoundingBox().Max.Y + cableHole.BoundingBox().Max.Y) - cableHole.BoundingBox().Max.Y*2, Z: cableHole.BoundingBox().Max.Z / 3})) - bottom = sdf.Difference3D(bottom, cableHole)*/ - bottom := sdf.Extrude3D(bottom2D, BOTTOM_THICKNESS-PLATE_THICKNESS) usbCutout, _ := sdf.Box3D(sdf.V3{X: USB_DAUGHTERBOARD_LENGTH + 0.4, Y: USB_DAUGHTERBOARD_HEIGHT + 0.4, Z: USB_DAUGHTERBOARD_THICKNESS + 10}, 0) usbCutout = sdf.Transform3D(usbCutout, sdf.Translate3d(sdf.V3{X: 0, Y: (cavity2D.BoundingBox().Max.Y + usbCutout.BoundingBox().Max.Y) - usbCutout.BoundingBox().Max.Y*2 + 2.6, Z: 2})) // 5 for m3x5 screw bottom = sdf.Difference3D(bottom, usbCutout) - /*usbCutoutPeg2D := M3ScrewHole() // m2 hole - usbCutoutPeg := sdf.Extrude3D(usbCutoutPeg2D, BOTTOM_THICKNESS) // thickness of daughtboard pcb - usbCutoutPeg = sdf.Transform3D(usbCutoutPeg, sdf.Translate3d(sdf.V3{X: 7.8, Y: (cavity2D.BoundingBox().Max.Y + usbCutoutPeg.BoundingBox().Max.Y + 2) - usbCutoutPeg.BoundingBox().Max.Y*2, Z: -BOTTOM_THICKNESS / 2})) - usbCutoutPeg2 := sdf.Transform3D(usbCutoutPeg, sdf.Translate3d(sdf.V3{X: -15.6, Y: 0, Z: 0})) - - usbCutoutPeg = sdf.Union3D(usbCutoutPeg, usbCutoutPeg2) - bottom = sdf.Difference3D(bottom, usbCutoutPeg)*/ - usbPortHole, _ := sdf.Box3D(sdf.V3{X: USB_CONNECTOR_LENGTH + 0.5, Y: USB_CONNECTOR_HEIGHT + 0.5, Z: USB_CONNECTOR_THICKNESS + 0.5}, 0) - // usbPortHole = sdf.Transform3D(usbPortHole, sdf.RotateZ(sdf.DtoR(90))) usbPortHole = sdf.Transform3D(usbPortHole, sdf.Translate3d(sdf.V3{X: 0, Y: PLATE_HEIGHT / 2, Z: 0})) // Z is thickness of board bottom = sdf.Difference3D(bottom, usbPortHole) @@ -164,9 +110,6 @@ func bottom() sdf.SDF3 { bottom2D = sdf.Difference2D(bottom2D, usbCutoutPeg2D) - // usbCutoutPeg := sdf.Extrude3D(usbCutoutPeg2D, BOTTOM_THICKNESS) // thickness of daughtboard pcb - // usbCutoutPeg = sdf.Transform3D(usbCutoutPeg, sdf.Translate3d(sdf.V3{X: 7.8, Y: (cavity2D.BoundingBox().Max.Y + usbCutoutPeg.BoundingBox().Max.Y + 2) - usbCutoutPeg.BoundingBox().Max.Y*2, Z: -BOTTOM_THICKNESS / 2})) - // usbCutoutPeg2 := sdf.Transform3D(usbCutoutPeg, sdf.Translate3d(sdf.V3{X: -15.6, Y: 0, Z: 0})) bottom := sdf.Extrude3D(bottom2D, PLATE_THICKNESS) pegHole, _ := sdf.Circle2D(M2_SCREW_HOLE_DIAMETER / 2) @@ -236,71 +179,3 @@ func lengthHoles(input, hole sdf.SDF2) sdf.SDF2 { return sdf.Union2D(cornerHoles...) } - -// 0 is perfect -/*func usbHoleTest() sdf.SDF3 { - base2D := sdf.Box2D(sdf.V2{X: 50, Y: 10}, 0) - holeDimensions := sdf.V2{X: USB_CONNECTOR_LENGTH, Y: USB_CONNECTOR_THICKNESS} - connectors := make([]sdf.SDF2, 5) - - for i := range connectors { - connectors[i] = sdf.Box2D(holeDimensions, float64(i)) - connectors[i] = sdf.Transform2D(connectors[i], sdf.Translate2d(sdf.V2{X: (connectors[0].BoundingBox().Max.X*2 + 0.8) * float64(i)})) - } - holes := sdf.Union2D(connectors...) - holes = sdf.Transform2D(holes, sdf.Translate2d(sdf.V2{X: -19, Y: 0})) - base2D = sdf.Difference2D(base2D, holes) - return sdf.Extrude3D(base2D, 1.2) -} */ - -// i measured 45.6 between holes instead of 47mm, lets try some sizes I guess? -func pegholeTest(pegDistances sdf.V2) sdf.SDF3 { - plane2D := sdf.Box2D(sdf.V2{X: 50, Y: 30}, 0) - pegHole, _ := sdf.Circle2D(M2_SCREW_HOLE_DIAMETER / 2) - pegHoles := make([]sdf.SDF2, 4) - for i := range pegHoles { - pegHoles[i] = pegHole - } - pegHoles[0] = sdf.Transform2D(pegHoles[0], sdf.Translate2d(sdf.V2{X: pegDistances.X / 2, Y: pegDistances.Y / 2})) //pico mounting hole spacing - pegHoles[1] = sdf.Transform2D(pegHoles[1], sdf.Translate2d(sdf.V2{X: pegDistances.X / 2, Y: -pegDistances.Y / 2})) //pico mounting hole spacing - pegHoles[2] = sdf.Transform2D(pegHoles[2], sdf.Translate2d(sdf.V2{X: -pegDistances.X / 2, Y: -pegDistances.Y / 2})) //pico mounting hole spacing - pegHoles[3] = sdf.Transform2D(pegHoles[3], sdf.Translate2d(sdf.V2{X: -pegDistances.X / 2, Y: pegDistances.Y / 2})) //pico mounting hole spacing - - peg, _ := sdf.Circle2D(M2_SCREW_HOLE_DIAMETER) - pegs := make([]sdf.SDF2, 4) - for i := range pegs { - pegs[i] = peg - } - pegs[0] = sdf.Transform2D(pegs[0], sdf.Translate2d(sdf.V2{X: pegDistances.X / 2, Y: pegDistances.Y / 2})) //pico mounting hole spacing - pegs[1] = sdf.Transform2D(pegs[1], sdf.Translate2d(sdf.V2{X: pegDistances.X / 2, Y: -pegDistances.Y / 2})) //pico mounting hole spacing - pegs[2] = sdf.Transform2D(pegs[2], sdf.Translate2d(sdf.V2{X: -pegDistances.X / 2, Y: -pegDistances.Y / 2})) //pico mounting hole spacing - pegs[3] = sdf.Transform2D(pegs[3], sdf.Translate2d(sdf.V2{X: -pegDistances.X / 2, Y: pegDistances.Y / 2})) //pico mounting hole spacing - - mountingHoles2D := sdf.Union2D(pegHoles...) - mounts2D := sdf.Union2D(pegs...) - mounts2D = sdf.Difference2D(mounts2D, mountingHoles2D) - - mounts := sdf.Extrude3D(mounts2D, PICO_PEG_HEIGHT) - plane := sdf.Extrude3D(plane2D, PICO_PEG_HEIGHT/2) - - mounts = sdf.Transform3D(mounts, sdf.Translate3d(sdf.V3{X: 0, Y: 0, Z: PICO_PEG_HEIGHT / 4})) - - return sdf.Union3D(mounts, plane) -} - -// usb hole is too low, needs to be a bit higher -func usbmountHeightTest() sdf.SDF3 { - box, _ := sdf.Box3D(sdf.V3{X: 2, Y: 15, Z: BOTTOM_THICKNESS}, 0) - floor, _ := sdf.Box3D(sdf.V3{X: 12, Y: 15, Z: 1}, 0) - - floor = sdf.Transform3D(floor, sdf.Translate3d(sdf.V3{X: 5, Y: 0, Z: (-BOTTOM_THICKNESS / 2) - (-floor.BoundingBox().Max.Z)})) - - usbPortHole, _ := sdf.Box3D(sdf.V3{X: USB_CONNECTOR_LENGTH + 0.5, Y: USB_CONNECTOR_HEIGHT + 0.5, Z: USB_CONNECTOR_THICKNESS + 0.5}, 0) - usbPortHole = sdf.Transform3D(usbPortHole, sdf.Translate3d(sdf.V3{X: 0, Y: 0, Z: 0})) // Z is thickness of board - usbPortHole = sdf.Transform3D(usbPortHole, sdf.RotateZ(sdf.DtoR(90))) - - box = sdf.Difference3D(box, usbPortHole) - box = sdf.Union3D(box, floor) - - return box -} diff --git a/hjklbox/tests.go b/hjklbox/tests.go new file mode 100644 index 0000000..a5b0df2 --- /dev/null +++ b/hjklbox/tests.go @@ -0,0 +1,69 @@ +package main + +// 0 is perfect +func usbHoleTest() sdf.SDF3 { + base2D := sdf.Box2D(sdf.V2{X: 50, Y: 10}, 0) + holeDimensions := sdf.V2{X: USB_CONNECTOR_LENGTH, Y: USB_CONNECTOR_THICKNESS} + connectors := make([]sdf.SDF2, 5) + + for i := range connectors { + connectors[i] = sdf.Box2D(holeDimensions, float64(i)) + connectors[i] = sdf.Transform2D(connectors[i], sdf.Translate2d(sdf.V2{X: (connectors[0].BoundingBox().Max.X*2 + 0.8) * float64(i)})) + } + holes := sdf.Union2D(connectors...) + holes = sdf.Transform2D(holes, sdf.Translate2d(sdf.V2{X: -19, Y: 0})) + base2D = sdf.Difference2D(base2D, holes) + return sdf.Extrude3D(base2D, 1.2) +} + +// i measured 45.6 between holes instead of 47mm, lets try some sizes I guess? +func pegholeTest(pegDistances sdf.V2) sdf.SDF3 { + plane2D := sdf.Box2D(sdf.V2{X: 50, Y: 30}, 0) + pegHole, _ := sdf.Circle2D(M2_SCREW_HOLE_DIAMETER / 2) + pegHoles := make([]sdf.SDF2, 4) + for i := range pegHoles { + pegHoles[i] = pegHole + } + pegHoles[0] = sdf.Transform2D(pegHoles[0], sdf.Translate2d(sdf.V2{X: pegDistances.X / 2, Y: pegDistances.Y / 2})) //pico mounting hole spacing + pegHoles[1] = sdf.Transform2D(pegHoles[1], sdf.Translate2d(sdf.V2{X: pegDistances.X / 2, Y: -pegDistances.Y / 2})) //pico mounting hole spacing + pegHoles[2] = sdf.Transform2D(pegHoles[2], sdf.Translate2d(sdf.V2{X: -pegDistances.X / 2, Y: -pegDistances.Y / 2})) //pico mounting hole spacing + pegHoles[3] = sdf.Transform2D(pegHoles[3], sdf.Translate2d(sdf.V2{X: -pegDistances.X / 2, Y: pegDistances.Y / 2})) //pico mounting hole spacing + + peg, _ := sdf.Circle2D(M2_SCREW_HOLE_DIAMETER) + pegs := make([]sdf.SDF2, 4) + for i := range pegs { + pegs[i] = peg + } + pegs[0] = sdf.Transform2D(pegs[0], sdf.Translate2d(sdf.V2{X: pegDistances.X / 2, Y: pegDistances.Y / 2})) //pico mounting hole spacing + pegs[1] = sdf.Transform2D(pegs[1], sdf.Translate2d(sdf.V2{X: pegDistances.X / 2, Y: -pegDistances.Y / 2})) //pico mounting hole spacing + pegs[2] = sdf.Transform2D(pegs[2], sdf.Translate2d(sdf.V2{X: -pegDistances.X / 2, Y: -pegDistances.Y / 2})) //pico mounting hole spacing + pegs[3] = sdf.Transform2D(pegs[3], sdf.Translate2d(sdf.V2{X: -pegDistances.X / 2, Y: pegDistances.Y / 2})) //pico mounting hole spacing + + mountingHoles2D := sdf.Union2D(pegHoles...) + mounts2D := sdf.Union2D(pegs...) + mounts2D = sdf.Difference2D(mounts2D, mountingHoles2D) + + mounts := sdf.Extrude3D(mounts2D, PICO_PEG_HEIGHT) + plane := sdf.Extrude3D(plane2D, PICO_PEG_HEIGHT/2) + + mounts = sdf.Transform3D(mounts, sdf.Translate3d(sdf.V3{X: 0, Y: 0, Z: PICO_PEG_HEIGHT / 4})) + + return sdf.Union3D(mounts, plane) +} + +// usb hole is too low, needs to be a bit higher +func usbmountHeightTest() sdf.SDF3 { + box, _ := sdf.Box3D(sdf.V3{X: 2, Y: 15, Z: BOTTOM_THICKNESS}, 0) + floor, _ := sdf.Box3D(sdf.V3{X: 12, Y: 15, Z: 1}, 0) + + floor = sdf.Transform3D(floor, sdf.Translate3d(sdf.V3{X: 5, Y: 0, Z: (-BOTTOM_THICKNESS / 2) - (-floor.BoundingBox().Max.Z)})) + + usbPortHole, _ := sdf.Box3D(sdf.V3{X: USB_CONNECTOR_LENGTH + 0.5, Y: USB_CONNECTOR_HEIGHT + 0.5, Z: USB_CONNECTOR_THICKNESS + 0.5}, 0) + usbPortHole = sdf.Transform3D(usbPortHole, sdf.Translate3d(sdf.V3{X: 0, Y: 0, Z: 0})) // Z is thickness of board + usbPortHole = sdf.Transform3D(usbPortHole, sdf.RotateZ(sdf.DtoR(90))) + + box = sdf.Difference3D(box, usbPortHole) + box = sdf.Union3D(box, floor) + + return box +}