move (and vastly simplify) peg placement on plate

This commit is contained in:
Octopus Octopus 2022-05-31 18:41:09 -05:00
parent 32ae9dedea
commit 058e35ce1e
2 changed files with 20 additions and 29 deletions

Binary file not shown.

View File

@ -6,11 +6,11 @@ const (
PLATE_THICKNESS = 2.825 PLATE_THICKNESS = 2.825
TOP_THICKNESS = 3.175 // 1/8th inch for possible thin acrylic top TOP_THICKNESS = 3.175 // 1/8th inch for possible thin acrylic top
BOTTOM_THICKNESS = 20 - PLATE_THICKNESS - TOP_THICKNESS BOTTOM_THICKNESS = 20 - PLATE_THICKNESS - TOP_THICKNESS
PLATE_WIDTH = 218 PLATE_WIDTH = 218.0
PLATE_HEIGHT = 130 PLATE_HEIGHT = 130.0
TOLERANCE = 8 TOLERANCE = 8.0
CABLE_HEAD_HEIGHT = 6 CABLE_HEAD_HEIGHT = 6.0
CABLE_HEAD_WIDTH = 10 CABLE_HEAD_WIDTH = 10.0
USB_DAUGHTERBOARD_HEIGHT = 12.6 USB_DAUGHTERBOARD_HEIGHT = 12.6
USB_DAUGHTERBOARD_LENGTH = 21.4 USB_DAUGHTERBOARD_LENGTH = 21.4
USB_DAUGHTERBOARD_THICKNESS = 4.7 // includes usb jack USB_DAUGHTERBOARD_THICKNESS = 4.7 // includes usb jack
@ -111,35 +111,26 @@ func bottom() sdf.SDF3 {
bottom2D = sdf.Difference2D(bottom2D, usbCutoutPeg2D) bottom2D = sdf.Difference2D(bottom2D, usbCutoutPeg2D)
bottom := sdf.Extrude3D(bottom2D, PLATE_THICKNESS) bottom := sdf.Extrude3D(bottom2D, PLATE_THICKNESS)
pegCount := 4
pegWall, _ := sdf.Circle2D(M2_SCREW_HOLE_DIAMETER)
pegHole, _ := sdf.Circle2D(M2_SCREW_HOLE_DIAMETER / 2) pegHole, _ := sdf.Circle2D(M2_SCREW_HOLE_DIAMETER / 2)
pegHoles := make([]sdf.SDF2, PICO_PEG_HEIGHT) pegHoles := make([]sdf.SDF2, pegCount)
for i := range pegHoles { pegWalls := make([]sdf.SDF2, pegCount)
pegs := make([]sdf.SDF3, pegCount)
for i := 0; i < pegCount; i++ {
pegHoles[i] = pegHole pegHoles[i] = pegHole
pegWalls[i] = pegWall
pegs[i] = sdf.Extrude3D(sdf.Difference2D(pegWall, pegHole), PICO_PEG_HEIGHT)
} }
pegHoles[0] = sdf.Transform2D(pegHoles[0], sdf.Translate2d(sdf.V2{X: 47 / 2, Y: 11.4 / 2})) //pico mounting hole spacing pegs[0] = sdf.Transform3D(pegs[0], sdf.Translate3d(sdf.V3{X: 47.5 / 2, Y: 11.4 / 2, Z: 0})) // approximate spacing of pico holes
pegHoles[1] = sdf.Transform2D(pegHoles[1], sdf.Translate2d(sdf.V2{X: 47 / 2, Y: -11.4 / 2})) //pico mounting hole spacing pegs[1] = sdf.Transform3D(pegs[1], sdf.Translate3d(sdf.V3{X: 47.5 / 2, Y: -11.4 / 2, Z: 0}))
pegHoles[2] = sdf.Transform2D(pegHoles[2], sdf.Translate2d(sdf.V2{X: -47 / 2, Y: -11.4 / 2})) //pico mounting hole spacing pegs[2] = sdf.Transform3D(pegs[2], sdf.Translate3d(sdf.V3{X: -47.5 / 2, Y: -11.4 / 2, Z: 0}))
pegHoles[3] = sdf.Transform2D(pegHoles[3], sdf.Translate2d(sdf.V2{X: -47 / 2, Y: 11.4 / 2})) //pico mounting hole spacing pegs[3] = sdf.Transform3D(pegs[3], sdf.Translate3d(sdf.V3{X: -47.5 / 2, Y: 11.4 / 2, Z: 0}))
peg, _ := sdf.Circle2D(M2_SCREW_HOLE_DIAMETER) picoMount := sdf.Union3D(pegs...)
pegs := make([]sdf.SDF2, 4) picoMount = sdf.Transform3D(picoMount, sdf.Translate3d(sdf.V3{X: PLATE_WIDTH / 4, Y: -PLATE_HEIGHT / 3, Z: PLATE_THICKNESS}))
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...) bottom = sdf.Union3D(bottom, picoMount)
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: PLATE_THICKNESS}))
bottom = sdf.Union3D(bottom, mount)
return bottom return bottom
} }