diff --git a/arcade!shark/arcadeshark b/arcade!shark/arcadeshark index 69cd2b0..0f0fb42 100755 Binary files a/arcade!shark/arcadeshark and b/arcade!shark/arcadeshark differ diff --git a/arcade!shark/go.mod b/arcade!shark/go.mod new file mode 100644 index 0000000..f81069b --- /dev/null +++ b/arcade!shark/go.mod @@ -0,0 +1,13 @@ +module git.jade.moe/oct2pus/arcade/arcadeshark + +go 1.18 + +require ( + github.com/ajstarks/svgo v0.0.0-20200725142600-7a3c8b57fecb // indirect + github.com/deadsy/sdfx v0.0.0-20220508165057-718104295925 // indirect + github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect + github.com/llgcode/draw2d v0.0.0-20200930101115-bfaf5d914d1e // indirect + github.com/yofu/dxf v0.0.0-20190710012328-5a6d1e83f16c // indirect + golang.org/x/image v0.0.0-20210216034530-4410531fe030 // indirect + gonum.org/v1/gonum v0.9.3 // indirect +) diff --git a/arcade!shark/main.go b/arcade!shark/main.go index 0feefa8..a5b2118 100644 --- a/arcade!shark/main.go +++ b/arcade!shark/main.go @@ -16,18 +16,34 @@ func main() { func ablrzButtonAdapter() sdf.SDF3 { base2D, _ := sdf.Circle2D(19.6 / 2) // measured 19.8 base := sdf.Extrude3D(base2D, 3.5-0.9) + line := sdf.Box2D(v2.Vec{X: 1.1, Y: 19.8}, 0) line = sdf.Union2D(line, sdf.Transform2D(line, sdf.Rotate2d(sdf.DtoR(90)))) + cross := sdf.Extrude3D(line, 1) cross = sdf.Transform3D(cross, sdf.Translate3d(v3.Vec{X: 0, Y: 0, Z: base.BoundingBox().Max.Z - cross.BoundingBox().Max.Z})) + base = sdf.Difference3D(base, cross) return base } func ablzrSwitchHolder() sdf.SDF3 { - base2D, _ := triangle(38, 34, 4) + base2D, _ := triangle(38.5, 34.5, 4) - return sdf.Extrude3D(base2D, 2) + choc2D := sdf.Box2D(v2.Vec{X: 13.8, Y: 13.7}, 0) + choc2D = sdf.Transform2D(choc2D, sdf.Translate2d(v2.Vec{X: 0, Y: -base2D.BoundingBox().Max.Y / 4})) + base2D = sdf.Difference2D(base2D, choc2D) + + circle3, _ := sdf.Circle2D(3.5 / 2) + circle45, _ := sdf.Circle2D(4.5 / 2) + circles := sdf.Union2D( + sdf.Transform2D(circle45, sdf.Translate2d(v2.Vec{X: 0, Y: base2D.BoundingBox().Max.Y / 1.25})), + sdf.Transform2D(circle3, sdf.Translate2d(v2.Vec{X: base2D.BoundingBox().Max.X / 1.30, Y: -base2D.BoundingBox().Max.Y / 1.30})), + sdf.Transform2D(circle3, sdf.Translate2d(v2.Vec{X: -base2D.BoundingBox().Max.X / 1.30, Y: -base2D.BoundingBox().Max.Y / 1.30})), + ) + base2D = sdf.Difference2D(base2D, circles) + + return sdf.Extrude3D(base2D, 1.4) } /*func triangle(sides float64) (sdf.SDF2, error) { @@ -44,6 +60,8 @@ func triangle(base, height, trim float64) (sdf.SDF2, error) { {X: (base / 2) - (trim / 2), Y: (-height / 2) + trim}, {X: (base / 2) - (trim), Y: (-height / 2)}, } - - return sdf.Polygon2D(dimensions) + triangle, err := sdf.Polygon2D(dimensions) + // this might cause issues lol + triangle = sdf.Center2D(triangle) + return triangle, err }