From 53d49094f5016b360426096d827de3fd52a7b9d8 Mon Sep 17 00:00:00 2001 From: Octopus Octopus Date: Thu, 7 Jul 2022 12:11:25 -0500 Subject: [PATCH] move screwHoles() to clusters.go --- fightstick/body2D.go | 26 -------------------------- fightstick/clusters.go | 31 ++++++++++++++++++++++++++++++- 2 files changed, 30 insertions(+), 27 deletions(-) diff --git a/fightstick/body2D.go b/fightstick/body2D.go index 9116249..ae2e406 100644 --- a/fightstick/body2D.go +++ b/fightstick/body2D.go @@ -76,32 +76,6 @@ func innerWallPlane() sdf.SDF2 { return wall } -// screwHoles produces m4 screwHoles along the sides of the piece. -func screwHoles() sdf.SDF2 { - hole, _ := sdf.Circle2D(M4_SCREW_DIAMETER / 2) - holes := make([]sdf.SDF2, 14) // 1 top + 1 bottom + (1 * 2 corners) + 2 right, + 1 center = 7 for one side, 14 for two sides. - for i := range holes { - holes[i] = hole - } - centerOffset := 3.0 - sideOffset := 4.0 - buffer := 2.5 - // right side - holes[0] = sdf.Transform2D(holes[0], sdf.Translate2d(v2.Vec{X: centerOffset, Y: 0})) - holes[1] = sdf.Transform2D(holes[1], sdf.Translate2d(v2.Vec{X: centerOffset, Y: (BODY_SIZE_Y / 2) - (WALL_THICKNESS / buffer)})) - holes[2] = sdf.Transform2D(holes[1], sdf.MirrorX()) - holes[3] = sdf.Transform2D(holes[3], sdf.Translate2d(v2.Vec{X: (BODY_SIZE_X / 2) - (WALL_THICKNESS), Y: (BODY_SIZE_Y / 2) - (WALL_THICKNESS)})) - holes[4] = sdf.Transform2D(holes[3], sdf.MirrorX()) - holes[5] = sdf.Transform2D(holes[5], sdf.Translate2d(v2.Vec{X: (BODY_SIZE_X / 2) - (WALL_THICKNESS / buffer), Y: sideOffset})) - holes[6] = sdf.Transform2D(holes[5], sdf.MirrorX()) - - for o := 0; o < len(holes)/2; o++ { - holes[o+len(holes)/2] = sdf.Transform2D(holes[o], sdf.MirrorY()) - } - - return sdf.Union2D(holes...) -} - // wallCorner returns one corner of the wall. func wallCornerPlane() sdf.SDF2 { segmentPlane := wallsPlane() diff --git a/fightstick/clusters.go b/fightstick/clusters.go index 3581495..f1ab42b 100644 --- a/fightstick/clusters.go +++ b/fightstick/clusters.go @@ -10,6 +10,7 @@ import ( const ( BUTTON30_DIAMETER = 30.5 BUTTON24_DIAMETER = 24.5 + M3_SCREW_DIAMETER = 3.2 M4_SCREW_DIAMETER = 4 JOYSTICK_HOLE_DIAMETER = 24 ) @@ -77,7 +78,7 @@ func neutrik() sdf.SDF2 { if err != nil { log.Printf("error: %v\n", err) } - m3Screw, err := sdf.Circle2D(3.2 / 2) + m3Screw, err := sdf.Circle2D(M3_SCREW_DIAMETER / 2) if err != nil { log.Printf("error: %v\n", err) } @@ -85,3 +86,31 @@ func neutrik() sdf.SDF2 { neutrik2D = sdf.Union2D(neutrik2D, sdf.Transform2D(m3Screw, sdf.Translate2d(v2.Vec{X: 19.1 / 2, Y: -24 / 2}))) return neutrik2D } + +// screwHoles produces m4 screwHoles along the sides of the piece. +func screwHoles() sdf.SDF2 { + hole, _ := sdf.Circle2D(M4_SCREW_DIAMETER / 2) + holeCenter, _ := sdf.Circle2D(M3_SCREW_DIAMETER / 2) + holes := make([]sdf.SDF2, 14) // 1 top + 1 bottom + (1 * 2 corners) + 2 right, + 1 center = 7 for one side, 14 for two sides. + for i := range holes { + holes[i] = hole + } + centerOffset := 3.0 + sideOffset := 4.0 + buffer := 2.5 + // right side + holes[0] = holeCenter + holes[0] = sdf.Transform2D(holes[0], sdf.Translate2d(v2.Vec{X: centerOffset, Y: 0})) + holes[1] = sdf.Transform2D(holes[1], sdf.Translate2d(v2.Vec{X: centerOffset, Y: (BODY_SIZE_Y / 2) - (WALL_THICKNESS / buffer)})) + holes[2] = sdf.Transform2D(holes[1], sdf.MirrorX()) + holes[3] = sdf.Transform2D(holes[3], sdf.Translate2d(v2.Vec{X: (BODY_SIZE_X / 2) - (WALL_THICKNESS), Y: (BODY_SIZE_Y / 2) - (WALL_THICKNESS)})) + holes[4] = sdf.Transform2D(holes[3], sdf.MirrorX()) + holes[5] = sdf.Transform2D(holes[5], sdf.Translate2d(v2.Vec{X: (BODY_SIZE_X / 2) - (WALL_THICKNESS / buffer), Y: sideOffset})) + holes[6] = sdf.Transform2D(holes[5], sdf.MirrorX()) + + for o := 0; o < len(holes)/2; o++ { + holes[o+len(holes)/2] = sdf.Transform2D(holes[o], sdf.MirrorY()) + } + + return sdf.Union2D(holes...) +}