move neutrk to clusters, correct neutrik orientation

This commit is contained in:
Octopus Octopus 2022-07-05 00:51:44 -05:00
parent 5a7fd9766b
commit cac8e301ef
2 changed files with 25 additions and 16 deletions

View File

@ -1,8 +1,6 @@
package main
import (
"log"
"github.com/deadsy/sdfx/sdf"
v2 "github.com/deadsy/sdfx/vec/v2"
v3 "github.com/deadsy/sdfx/vec/v3"
@ -28,19 +26,10 @@ func wallCorner() sdf.SDF3 {
func wallFrontRight() sdf.SDF3 {
corner := wallCorner()
neutrik2D, err := sdf.Circle2D(BUTTON24_DIAMETER / 2)
if err != nil {
log.Printf("error: %v\n", err)
}
m3Screw, err := sdf.Circle2D(3 / 2)
if err != nil {
log.Printf("error: %v\n", err)
}
neutrik2D = sdf.Union2D(neutrik2D, sdf.Transform2D(m3Screw, sdf.Translate2d(v2.Vec{X: -19 / 2, Y: 24 / 2})))
neutrik2D = sdf.Union2D(neutrik2D, sdf.Transform2D(m3Screw, sdf.Translate2d(v2.Vec{X: 19 / 2, Y: -24 / 2})))
neutrik := sdf.Extrude3D(neutrik2D, WALL_THICKNESS)
neutrik := sdf.Extrude3D(neutrik(), WALL_THICKNESS)
neutrik = sdf.Transform3D(neutrik, sdf.RotateZ(sdf.DtoR(90)))
neutrik = sdf.Transform3D(neutrik, sdf.RotateY(sdf.DtoR(90)))
neutrik = sdf.Transform3D(neutrik, sdf.MirrorXY())
neutrik = sdf.Transform3D(neutrik, sdf.Translate3d(v3.Vec{X: BODY_SIZE_X/3 + (WALL_THICKNESS / 2), Y: BODY_SIZE_Y / 3, Z: 0}))
corner = sdf.Difference3D(corner, neutrik)

View File

@ -1,13 +1,15 @@
package main
import (
"log"
"github.com/deadsy/sdfx/sdf"
v2 "github.com/deadsy/sdfx/vec/v2"
)
const (
BUTTON30_DIAMETER = 30
BUTTON24_DIAMETER = 24
BUTTON30_DIAMETER = 30.5
BUTTON24_DIAMETER = 24.5
M4_SCREW_DIAMETER = 4
JOYSTICK_HOLE_DIAMETER = 24
)
@ -50,6 +52,7 @@ func functionRow() sdf.SDF2 {
return functionRow
}
// joystick is a hole for a joystick, with screw mounts.
// https://support.focusattack.com/hc/en-us/articles/360015744451-Sanwa-JLF-P1-Mounting-Plate-Measurements
// reference for screw hole mounting points
func joystick(holeSpacing v2.Vec) sdf.SDF2 {
@ -65,3 +68,20 @@ func joystick(holeSpacing v2.Vec) sdf.SDF2 {
holes = append(holes, joystickHole)
return sdf.Union2D(holes...)
}
// neutrik is a hole for a neutrik connector.
// https://focusattack.com/cliff-electronics-usb-c-to-usb-c-passthrough/
// reference for neutrik connector dimensions
func neutrik() sdf.SDF2 {
neutrik2D, err := sdf.Circle2D(BUTTON24_DIAMETER / 2)
if err != nil {
log.Printf("error: %v\n", err)
}
m3Screw, err := sdf.Circle2D(3.2 / 2)
if err != nil {
log.Printf("error: %v\n", err)
}
neutrik2D = sdf.Union2D(neutrik2D, sdf.Transform2D(m3Screw, sdf.Translate2d(v2.Vec{X: -19.1 / 2, Y: 24 / 2})))
neutrik2D = sdf.Union2D(neutrik2D, sdf.Transform2D(m3Screw, sdf.Translate2d(v2.Vec{X: 19.1 / 2, Y: -24 / 2})))
return neutrik2D
}