From cac8e301efa2bc203c0fc71d777bb73f05d1c212 Mon Sep 17 00:00:00 2001 From: Octopus Octopus Date: Tue, 5 Jul 2022 00:51:44 -0500 Subject: [PATCH] move neutrk to clusters, correct neutrik orientation --- fightstick/body3D.go | 17 +++-------------- fightstick/clusters.go | 24 ++++++++++++++++++++++-- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/fightstick/body3D.go b/fightstick/body3D.go index 446a7a3..67f240f 100644 --- a/fightstick/body3D.go +++ b/fightstick/body3D.go @@ -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) diff --git a/fightstick/clusters.go b/fightstick/clusters.go index 41e5973..3581495 100644 --- a/fightstick/clusters.go +++ b/fightstick/clusters.go @@ -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 +}