Compare commits

..

No commits in common. "b7933c94036efe4e25e4beae07a2099694b2ff74" and "95ce28f16437111d3c9822044a93be5f8c96b317" have entirely different histories.

37 changed files with 2 additions and 88875 deletions

Binary file not shown.

View File

@ -115,8 +115,8 @@ func dPadAdapter() sdf.SDF3 {
screwHole, _ := sdf.Circle2D(3.5 / 2) screwHole, _ := sdf.Circle2D(3.5 / 2)
holes := sdf.Union2D( holes := sdf.Union2D(
sdf.Transform2D(screwHole, sdf.Translate2d(v2.Vec{X: base2D.BoundingBox().Max.X - screwHole.BoundingBox().Max.X - 7.6, Y: base2D.BoundingBox().Max.Y - screwHole.BoundingBox().Max.Y - 7.6})), sdf.Transform2D(screwHole, sdf.Translate2d(v2.Vec{X: base2D.BoundingBox().Max.X - screwHole.BoundingBox().Max.X - 9.1, Y: base2D.BoundingBox().Max.Y - screwHole.BoundingBox().Max.Y - 9.1})),
sdf.Transform2D(screwHole, sdf.Translate2d(v2.Vec{X: -base2D.BoundingBox().Max.X - (-screwHole.BoundingBox().Max.X) - (-7.6), Y: -base2D.BoundingBox().Max.Y - (-screwHole.BoundingBox().Max.Y) - (-7.6)})), sdf.Transform2D(screwHole, sdf.Translate2d(v2.Vec{X: -base2D.BoundingBox().Max.X - (-screwHole.BoundingBox().Max.X) - (-9.1), Y: -base2D.BoundingBox().Max.Y - (-screwHole.BoundingBox().Max.Y) - (-9.1)})),
) )
base2D = sdf.Difference2D(base2D, holes) base2D = sdf.Difference2D(base2D, holes)

View File

@ -1,89 +0,0 @@
package main
import (
"log"
"github.com/deadsy/sdfx/sdf"
v2 "github.com/deadsy/sdfx/vec/v2"
v3 "github.com/deadsy/sdfx/vec/v3"
)
// button interface impliments the 3 seperate sections of a choc keycap
type button interface {
Rim2D(size float64) sdf.SDF2
Top2D(size float64) sdf.SDF2
Size() float64
}
// 3D
// create combines all the 2d parts of a choc buttons and creates a 3d model of the button
func create(b button) sdf.SDF3 {
top, err := sdf.ExtrudeRounded3D(b.Top2D(b.Size()-ROUND*2), TOP_Z, ROUND)
if err != nil {
log.Fatalln(err)
}
mid, err := sdf.ExtrudeRounded3D(b.Rim2D(b.Size()-ROUND*2), MID_Z, ROUND)
if err != nil {
log.Fatalln(err)
}
stem := stem()
button := sdf.Union3D(
sdf.Transform3D(top, sdf.Translate3d(v3.Vec{X: 0, Y: 0, Z: -STEM_Z/2 + TOP_Z/2})),
sdf.Transform3D(mid, sdf.Translate3d(v3.Vec{X: 0, Y: 0, Z: -STEM_Z/2 + MID_Z/2})),
sdf.Transform3D(stem, sdf.Translate3d(v3.Vec{X: 0, Y: 0, Z: TOP_Z / 3})),
)
//button = sdf.Transform3D(button, sdf.RotateX(sdf.DtoR(180)))
return button
}
// stem is the 2d stem of the button
func stem() sdf.SDF3 {
stem2D := stem2D()
stem := sdf.Extrude3D(stem2D, STEM_Z)
// this was intended to make it easier to print vertically, but i later gave up on the idea.
// you can use this to narrow the stem towards the end so that its a smaller surface area that is easier to remove from supports
/* cutoutDiameter := 1.0
cutout2D, err := sdf.Circle2D(cutoutDiameter / 2)
if err != nil {
log.Fatalln(err)
}
cutout2D = sdf.Union2D(
sdf.Transform2D(cutout2D, sdf.Translate2d(v2.Vec{X: stem2D.BoundingBox().Size().Y / 2, Y: -stem2D.BoundingBox().Size().Y - (-cutoutDiameter / 4)})),
sdf.Transform2D(cutout2D, sdf.Translate2d(v2.Vec{X: -stem2D.BoundingBox().Size().Y / 2, Y: -stem2D.BoundingBox().Size().Y - (-cutoutDiameter / 4)})),
)
cutout := sdf.Extrude3D(cutout2D, stem2D.BoundingBox().Size().X*2)
cutout = sdf.Transform3D(cutout, sdf.RotateY(sdf.DtoR(90)))
cutout = sdf.Transform3D(cutout, sdf.RotateX(sdf.DtoR(90)))
cutout = sdf.Union3D(
sdf.Transform3D(cutout, sdf.Translate3d(v3.Vec{X: 0, Y: stem2D.BoundingBox().Size().X / 2, Z: 0})),
sdf.Transform3D(cutout, sdf.Translate3d(v3.Vec{X: 0, Y: -stem2D.BoundingBox().Size().X / 2, Z: 0})),
)
stem = sdf.Difference3D(stem, cutout) */
return stem
}
//2D
// stem2D is a top down view of the keycap's stem, it has cutouts to make it easier to remove/insert the keycap from the stem.
// This is supposed to make it less likely you'll break the stem removing it.
func stem2D() sdf.SDF2 {
x, y := 1.1, 2.8
spacing := 5.8
cutout := sdf.Box2D(v2.Vec{X: x / 1.8, Y: y / 1.5}, 0)
stem := sdf.Box2D(v2.Vec{X: x, Y: y}, 0)
cutout = sdf.Union2D(
sdf.Transform2D(cutout, sdf.Translate2d(v2.Vec{X: -x / 2, Y: 0})),
sdf.Transform2D(cutout, sdf.Translate2d(v2.Vec{X: x / 2, Y: 0})),
)
stem = sdf.Difference2D(stem, cutout)
stems := sdf.Union2D(
sdf.Transform2D(stem, sdf.Translate2d(v2.Vec{X: -spacing / 2, Y: 0})),
sdf.Transform2D(stem, sdf.Translate2d(v2.Vec{X: spacing / 2, Y: 0})),
)
return sdf.Center2D(stems)
}

Binary file not shown.

View File

@ -1,43 +0,0 @@
package main
import (
"log"
"github.com/deadsy/sdfx/sdf"
)
type Circle struct {
size float64
rimSize float64
}
// member functions
func (c Circle) Top2D(size float64) sdf.SDF2 {
circle, err := sdf.Circle2D(size / 2)
if err != nil {
log.Fatalln(err)
}
return circle
}
func (c Circle) Rim2D(size float64) sdf.SDF2 {
rimNegative, err := sdf.Circle2D((size - c.rimSize) / 2)
if err != nil {
log.Fatalln(err)
}
return sdf.Difference2D(c.Top2D(size), rimNegative)
}
func (c Circle) Size() float64 {
return c.size
}
// new
func circleNew(size, rimSize float64) Circle {
var c Circle
c.size = size
c.rimSize = rimSize
return c
}

View File

@ -1,15 +0,0 @@
module git.jade.moe/oct2pus/arcade/choc-caps
go 1.19
require (
github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b // indirect
github.com/deadsy/sdfx v0.0.0-20230124001612-cfdc46c611ed // indirect
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
github.com/hpinc/go3mf v0.24.1 // indirect
github.com/llgcode/draw2d v0.0.0-20210904075650-80aa0a2a901d // indirect
github.com/qmuntal/opc v0.7.10 // indirect
github.com/yofu/dxf v0.0.0-20190710012328-5a6d1e83f16c // indirect
golang.org/x/image v0.0.0-20220902085622-e7cb96979f69 // indirect
gonum.org/v1/gonum v0.12.0 // indirect
)

View File

@ -1,135 +0,0 @@
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8=
git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY=
github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk=
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b h1:slYM766cy2nI3BwyRiyQj/Ud48djTMtMebDqepE95rw=
github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM=
github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/deadsy/sdfx v0.0.0-20230124001612-cfdc46c611ed h1:ICCc8L4udEjvRqcWYiiE3REieslesgeB30qUHfcn7QM=
github.com/deadsy/sdfx v0.0.0-20230124001612-cfdc46c611ed/go.mod h1:yqeU6qWfzYX7lxp9/60IuMWropG47IWaq+hPXZndVwQ=
github.com/dhconnelly/rtreego v1.1.0/go.mod h1:SDozu0Fjy17XH1svEXJgdYq8Tah6Zjfa/4Q33Z80+KM=
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g=
github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks=
github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY=
github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY=
github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY=
github.com/go-gl/gl v0.0.0-20180407155706-68e253793080/go.mod h1:482civXOzJJCPzJ4ZOX/pwvXBWSnzD4OKMdH4ClKGbk=
github.com/go-gl/glfw v0.0.0-20180426074136-46a8d530c326/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U=
github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk=
github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M=
github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M=
github.com/go-test/deep v1.0.7/go.mod h1:QV8Hv/iy04NyLBxAdO9njL0iVPN1S4d/A3NVv1V36o8=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
github.com/hpinc/go3mf v0.24.1 h1:DPZ0bSlvMuqaCcmzjt5DxryV42zTZ+S+Rfv+dcBE/lA=
github.com/hpinc/go3mf v0.24.1/go.mod h1:QtHqY8cmfyaSuT4J+fi6UTIQPzqxBdvlSwWzcLlmeQI=
github.com/hschendel/stl v1.0.4/go.mod h1:XQFFLKrq9YTaBpmouDui4JSaxMyAYkpD7elGSSj/y3M=
github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/llgcode/draw2d v0.0.0-20210904075650-80aa0a2a901d h1:4/ycg+VrwjGurTqiHv2xM/h6Qm81qSra+KbfT4FH2FA=
github.com/llgcode/draw2d v0.0.0-20210904075650-80aa0a2a901d/go.mod h1:mVa0dA29Db2S4LVqDYLlsePDzRJLDfdhVZiI15uY0FA=
github.com/llgcode/ps v0.0.0-20150911083025-f1443b32eedb/go.mod h1:1l8ky+Ew27CMX29uG+a2hNOKpeNYEQjjtiALiBlFQbY=
github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY=
github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI=
github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/qmuntal/opc v0.7.10 h1:zbUhx7/qDcgJCQahz2SHV9HHLBKgtaaFWNxEMmXPKAs=
github.com/qmuntal/opc v0.7.10/go.mod h1:jYcgCT/xuTl5oMYeS/nSrfRe9gNrrsAPPeOFE2oRVaQ=
github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w=
github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/yofu/dxf v0.0.0-20190710012328-5a6d1e83f16c h1:qgsxLgTXCVH8Dxar36HI5af2ZfinVz5vF8erPpyzM+A=
github.com/yofu/dxf v0.0.0-20190710012328-5a6d1e83f16c/go.mod h1:gnT4GQzgKW8+TLI0xheUgdmNV4dsAN0WJUVnztRZkfI=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE=
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20210607152325-775e3b0c77b9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
golang.org/x/image v0.0.0-20220902085622-e7cb96979f69 h1:Lj6HJGCSn5AjxRAH2+r35Mir4icalbqku+CLUtjnvXY=
golang.org/x/image v0.0.0-20220902085622-e7cb96979f69/go.mod h1:doUCurBvlfPMKfmIpRIywoHmhN3VyhnoFDbvIEWF4hY=
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0=
gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0=
gonum.org/v1/gonum v0.12.0 h1:xKuo6hzt+gMav00meVPUlXwSdoEJP46BR+wdxQEFK2o=
gonum.org/v1/gonum v0.12.0/go.mod h1:73TDxJfAAHeA8Mk9mf8NlIppyhQNo5GLTcYeqgo2lvY=
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY=
gonum.org/v1/plot v0.10.1/go.mod h1:VZW5OlhkL1mysU9vaqNHnsy86inf6Ot+jB3r+BczCEo=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las=
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=

View File

@ -1,45 +0,0 @@
package main
import (
"github.com/deadsy/sdfx/render"
"github.com/deadsy/sdfx/render/dc"
)
const (
// these values are designed to fit into the default flatbox,
// tinker with the values to find the size you need.
OCTOGON_SIZE_SMALL = 20.25
OCTOGON_SIZE_LARGE = 25.75
CIRCLE_SIZE_SMALL = 22.5
CIRCLE_SIZE_LARGE = 28.5
// A larger value equals a wider rim, this is subtractive.
RIM_SIZE = 1.0
// These control how tall each individual element is. Keep in mind these values are absolute,
// not relative. For example, the default MID_Z extends 2.0mm past the TOP_Z.
TOP_Z = 1.5
MID_Z = 3.5
STEM_Z = 5
// ROUND determines the radius of curves, 0 is sharp edges.
// keep that in mind if you're modifying this program.
// each individual Z height *must* be greater than round * 2.
ROUND = 0.5
)
// Larger values in render.ToSTL will produce higher quality models, but also larger filesizes
// the larger you make it, the more computationally intensive it is.
// this model uses dc.NewDualContouringDefault
// this renders very slowly and is more computationally intensive
// than two other renderers. i find it has the best visual clarity when 300 or above
// which produces a smaller filesize that I can actually share online
// the other two renderers are render.NewMarchingCubesOctree and NewMarchingCubesUniform
// they compile faster but need significantly higher values for acceptable clarity,
// which in turn creates significantly larger file sizes.
func main() {
oS, oL := octogonNew(OCTOGON_SIZE_SMALL, RIM_SIZE), octogonNew(OCTOGON_SIZE_LARGE, RIM_SIZE)
cS, cL := circleNew(CIRCLE_SIZE_SMALL, RIM_SIZE), circleNew(CIRCLE_SIZE_LARGE, RIM_SIZE)
render.ToSTL(create(cS), "circularSmall.stl", dc.NewDualContouringDefault(300))
render.ToSTL(create(cL), "circularLarge.stl", dc.NewDualContouringDefault(300))
render.ToSTL(create(oS), "octogonalSmall.stl", dc.NewDualContouringDefault(300))
render.ToSTL(create(oL), "octogonalLarge.stl", dc.NewDualContouringDefault(300))
}

View File

@ -1,64 +0,0 @@
package main
import (
"log"
"github.com/deadsy/sdfx/sdf"
v2 "github.com/deadsy/sdfx/vec/v2"
)
// Octogon impliments the button interface, which is designed to create an octogonal button.
type Octogon struct {
size float64
rimSize float64
}
// member functions
// Top2D is a topdown view of the top of a keycap.
func (o Octogon) Top2D(size float64) sdf.SDF2 {
return octogon(size, size)
}
// Rim2D is a topdown view of the sides of a keycap.
func (o Octogon) Rim2D(size float64) sdf.SDF2 {
rimNegative := octogon(size-o.rimSize, size-o.rimSize)
return sdf.Difference2D(o.Top2D(size), rimNegative)
}
// Size returns the size value of the Octogon struct.
func (o Octogon) Size() float64 {
return o.size
}
// new
// octogonNew creates an Octogon struct, which impliments the button interface.
func octogonNew(size, rimSize float64) Octogon {
var o Octogon
o.size = size
o.rimSize = rimSize
return o
}
// helper functions
// octogon draws an octogon in a 2D plane with a given X and Y value.
func octogon(X, Y float64) sdf.SDF2 {
dimensions := []v2.Vec{
{X: -X / 4, Y: -Y / 2},
{X: -X / 2, Y: -Y / 4},
{X: -X / 2, Y: Y / 4},
{X: -X / 4, Y: Y / 2},
{X: X / 4, Y: Y / 2},
{X: X / 2, Y: Y / 4},
{X: X / 2, Y: -Y / 4},
{X: X / 4, Y: -Y / 2},
}
octogon, err := sdf.Polygon2D(dimensions)
if err != nil {
log.Fatalln(err)
}
return sdf.Center2D(octogon)
}

View File

@ -1,28 +0,0 @@
(footprint "SolderWirePad_1x01_SMD_1x2mm" (version 20211014) (generator pcbnew)
(layer "F.Cu")
(tedit 5DD6EB27)
(descr "Wire Pad, Square, SMD Pad, 5mm x 10mm,")
(tags "MesurementPoint Square SMDPad 5mmx10mm ")
(attr exclude_from_pos_files exclude_from_bom)
(fp_text reference "REF**" (at 0 -2.54) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp c513d75c-f6ed-495d-806e-bd1e447b8baa)
)
(fp_text value "SolderWirePad_1x01_SMD_1x2mm" (at 0 2.54) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp d5554df8-8ad7-42a8-b421-37915f92965e)
)
(fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 81017862-5d6d-4bbb-a792-b664ab664d9b)
)
(fp_line (start 0.63 1.27) (end 0.63 -1.27) (layer "F.CrtYd") (width 0.05) (tstamp 0026c015-74bf-47ae-85a7-428cafd7c72d))
(fp_line (start -0.63 1.27) (end 0.63 1.27) (layer "F.CrtYd") (width 0.05) (tstamp 41dee653-4456-41f6-9b74-34afed28fe62))
(fp_line (start 0.63 -1.27) (end -0.63 -1.27) (layer "F.CrtYd") (width 0.05) (tstamp 5d857655-5d77-4195-a830-c7d6422d2cfb))
(fp_line (start -0.63 -1.27) (end -0.63 1.27) (layer "F.CrtYd") (width 0.05) (tstamp 69514380-d0f6-420c-a8a0-77db0e3ae7ba))
(fp_line (start 0.63 -1.27) (end 0.63 1.27) (layer "F.Fab") (width 0.1) (tstamp 01ff3dae-6121-4719-a263-2fe2b66c0a7c))
(fp_line (start -0.63 1.27) (end -0.63 -1.27) (layer "F.Fab") (width 0.1) (tstamp c3303755-6b86-4034-9918-6a6f09872260))
(fp_line (start -0.63 -1.27) (end 0.63 -1.27) (layer "F.Fab") (width 0.1) (tstamp d626f3c1-3651-47fb-81cd-853227702efa))
(fp_line (start 0.63 1.27) (end -0.63 1.27) (layer "F.Fab") (width 0.1) (tstamp ec9932cb-12c5-4503-8821-fc70807b25e3))
(pad "1" smd roundrect (at 0 0) (size 1 2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 9b1c97f7-ae17-44f3-9424-a07cf2ecd34d))
)

View File

@ -1,28 +0,0 @@
(footprint "membrane button" (version 20211014) (generator pcbnew)
(layer "F.Cu")
(tedit 5DD6EB27)
(descr "Wire Pad, Square, SMD Pad, 5mm x 10mm,")
(tags "MesurementPoint Square SMDPad 5mmx10mm ")
(attr exclude_from_pos_files exclude_from_bom)
(fp_text reference "REF**" (at 0 -2.54) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp c513d75c-f6ed-495d-806e-bd1e447b8baa)
)
(fp_text value "membrane button" (at 0 2.54) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp d5554df8-8ad7-42a8-b421-37915f92965e)
)
(fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 81017862-5d6d-4bbb-a792-b664ab664d9b)
)
(fp_line (start 0.63 1.27) (end 0.63 -1.27) (layer "F.CrtYd") (width 0.05) (tstamp 0026c015-74bf-47ae-85a7-428cafd7c72d))
(fp_line (start -0.63 1.27) (end 0.63 1.27) (layer "F.CrtYd") (width 0.05) (tstamp 41dee653-4456-41f6-9b74-34afed28fe62))
(fp_line (start 0.63 -1.27) (end -0.63 -1.27) (layer "F.CrtYd") (width 0.05) (tstamp 5d857655-5d77-4195-a830-c7d6422d2cfb))
(fp_line (start -0.63 -1.27) (end -0.63 1.27) (layer "F.CrtYd") (width 0.05) (tstamp 69514380-d0f6-420c-a8a0-77db0e3ae7ba))
(fp_line (start 0.63 -1.27) (end 0.63 1.27) (layer "F.Fab") (width 0.1) (tstamp 01ff3dae-6121-4719-a263-2fe2b66c0a7c))
(fp_line (start -0.63 1.27) (end -0.63 -1.27) (layer "F.Fab") (width 0.1) (tstamp c3303755-6b86-4034-9918-6a6f09872260))
(fp_line (start -0.63 -1.27) (end 0.63 -1.27) (layer "F.Fab") (width 0.1) (tstamp d626f3c1-3651-47fb-81cd-853227702efa))
(fp_line (start 0.63 1.27) (end -0.63 1.27) (layer "F.Fab") (width 0.1) (tstamp ec9932cb-12c5-4503-8821-fc70807b25e3))
(pad "1" smd roundrect (at 0 0) (size 1 2) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp 9b1c97f7-ae17-44f3-9424-a07cf2ecd34d))
)

View File

@ -1,45 +0,0 @@
(footprint "membrane_button" (version 20211014) (generator pcbnew)
(layer "F.Cu")
(tedit 0)
(fp_text reference "REF**" (at -2.562 -2.1 unlocked) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 6e2ea278-c29c-4db1-be02-5a748b658f65)
)
(fp_text value "membrane_button" (at -2.562 -0.6 unlocked) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp aeb0ae77-8fe7-491f-b6d8-90dc75341196)
)
(fp_text user "${REFERENCE}" (at -2.562 0.9 unlocked) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp c7e0af33-ed46-4a41-a219-a8a07c791547)
)
(fp_rect (start -1.8 4.2) (end -5.6 4.6) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 1481dcaa-226e-4963-bf4c-17f89bc7c150))
(fp_rect (start -1.8 1) (end -5.6 1.4) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 4f2d6430-88c3-4ffc-9d51-4abf04f5560f))
(fp_rect (start -5.962 0.2) (end -2.2 0.6) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 59e4169d-ba02-4a70-8e89-2b5f30371b7b))
(fp_rect (start -5.962 0.2) (end -7.562 4.6) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 6501aa7f-c79c-46ae-9a84-8f6bee465ea8))
(fp_rect (start -0.2 0.2) (end -1.8 4.6) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 884c7f94-f969-447c-a3e1-9539d9688faf))
(fp_rect (start -6 1.8) (end -2.2 2.2) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 91449e71-5992-4b49-905c-d712733cba78))
(fp_rect (start -6 3.4) (end -2.2 3.8) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 99aa8134-d1cd-4953-89b9-aef0b4a350d7))
(fp_rect (start -5.6 2.6) (end -1.8 3) (layer "F.Mask") (width 0.2) (fill solid) (tstamp e0028e6b-ce86-4cb4-b85d-282bc284818b))
(pad "1" smd custom (at -7.8 4) (size 1.524 1.524) (layers "F.Cu" "F.Mask")
(options (clearance outline) (anchor circle))
(primitives
) (tstamp fbd3305c-7006-4781-b50d-62c921384e6b))
(pad "2" smd custom (at 0 0.8) (size 1.524 1.524) (layers "F.Cu" "F.Mask")
(options (clearance outline) (anchor circle))
(primitives
) (tstamp a095414b-38ce-485d-ab8f-1158e3276771))
(group "" (id 45e2e9b8-8d8f-45e1-ad74-5dcdea8ae3e0)
(members
a095414b-38ce-485d-ab8f-1158e3276771
)
)
(group "" (id c4928cce-7ffe-41c0-afe5-164d46583c09)
(members
59e4169d-ba02-4a70-8e89-2b5f30371b7b
6501aa7f-c79c-46ae-9a84-8f6bee465ea8
91449e71-5992-4b49-905c-d712733cba78
99aa8134-d1cd-4953-89b9-aef0b4a350d7
)
)
)

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +0,0 @@
(fp_lib_table
(lib (name "components")(type "KiCad")(uri "${KIPRJMOD}/components.pretty")(options "")(descr ""))
)

View File

@ -1,548 +0,0 @@
(kicad_pcb (version 20211014) (generator pcbnew)
(general
(thickness 1.6)
)
(paper "A4")
(layers
(0 "F.Cu" signal)
(31 "B.Cu" signal)
(32 "B.Adhes" user "B.Adhesive")
(33 "F.Adhes" user "F.Adhesive")
(34 "B.Paste" user)
(35 "F.Paste" user)
(36 "B.SilkS" user "B.Silkscreen")
(37 "F.SilkS" user "F.Silkscreen")
(38 "B.Mask" user)
(39 "F.Mask" user)
(40 "Dwgs.User" user "User.Drawings")
(41 "Cmts.User" user "User.Comments")
(42 "Eco1.User" user "User.Eco1")
(43 "Eco2.User" user "User.Eco2")
(44 "Edge.Cuts" user)
(45 "Margin" user)
(46 "B.CrtYd" user "B.Courtyard")
(47 "F.CrtYd" user "F.Courtyard")
(48 "B.Fab" user)
(49 "F.Fab" user)
(50 "User.1" user)
(51 "User.2" user)
(52 "User.3" user)
(53 "User.4" user)
(54 "User.5" user)
(55 "User.6" user)
(56 "User.7" user)
(57 "User.8" user)
(58 "User.9" user)
)
(setup
(pad_to_mask_clearance 0)
(pcbplotparams
(layerselection 0x00010fc_ffffffff)
(disableapertmacros false)
(usegerberextensions false)
(usegerberattributes true)
(usegerberadvancedattributes true)
(creategerberjobfile true)
(svguseinch false)
(svgprecision 6)
(excludeedgelayer true)
(plotframeref false)
(viasonmask false)
(mode 1)
(useauxorigin false)
(hpglpennumber 1)
(hpglpenspeed 20)
(hpglpendiameter 15.000000)
(dxfpolygonmode true)
(dxfimperialunits true)
(dxfusepcbnewfont true)
(psnegative false)
(psa4output false)
(plotreference true)
(plotvalue true)
(plotinvisibletext false)
(sketchpadsonfab false)
(subtractmaskfromsilk false)
(outputformat 1)
(mirror false)
(drillshape 1)
(scaleselection 1)
(outputdirectory "")
)
)
(net 0 "")
(net 1 "b1")
(net 2 "b2")
(net 3 "b3")
(net 4 "GND")
(net 5 "GP15")
(net 6 "LED")
(net 7 "3v3")
(footprint "components:membrane_button" (layer "F.Cu")
(tedit 0) (tstamp 013c09fb-49ba-4c13-9356-0d7b86c6ca88)
(at 73.95 117.144)
(property "Sheetfile" "toppanel.kicad_sch")
(property "Sheetname" "")
(path "/3f61b5cf-ca64-4cc8-ab25-f37ba0f89305")
(fp_text reference "SW2" (at -2.562 -2.1 unlocked) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp d9c7b7ee-dda1-4534-a841-0ce4ec0bd901)
)
(fp_text value "SW_Home" (at -2.562 -0.6 unlocked) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp d89fa4ae-0b54-421e-b394-3990c9beaea1)
)
(fp_text user "${REFERENCE}" (at -2.562 0.9 unlocked) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 3dc42c2f-2204-45c2-904c-784028cebc30)
)
(fp_rect (start -5.6 2.6) (end -1.8 3) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 0e33523b-7e6c-45d1-bfda-ed16cd599c2e))
(fp_rect (start -1.8 4.2) (end -5.6 4.6) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 1050119b-6778-4c0c-b53b-89069666c550))
(fp_rect (start -6 3.4) (end -2.2 3.8) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 27bdd998-0a8e-41ac-a25c-3155801d5d0e))
(fp_rect (start -5.962 0.2) (end -2.2 0.6) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 4c170860-5523-42fb-a443-2b3137beda91))
(fp_rect (start -5.962 0.2) (end -7.562 4.6) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 64ee2cdd-96c4-49e4-81e6-35347d5329f6))
(fp_rect (start -0.2 0.2) (end -1.8 4.6) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 91e926be-63c6-44a5-afa3-5874aee85e3e))
(fp_rect (start -1.8 1) (end -5.6 1.4) (layer "F.Mask") (width 0.2) (fill solid) (tstamp acf74b25-0d3a-4cbc-9e7c-323d70114f0a))
(fp_rect (start -6 1.8) (end -2.2 2.2) (layer "F.Mask") (width 0.2) (fill solid) (tstamp e1a4ce57-037d-4cd1-8cb5-9f0b929106a6))
(pad "1" smd custom (at -7.8 4) (size 1.524 1.524) (layers "F.Cu" "F.Mask")
(net 2 "b2") (pinfunction "A") (pintype "passive")
(options (clearance outline) (anchor circle))
(primitives
) (tstamp 28a11181-98e8-4aea-909a-769fb9f7fe13))
(pad "2" smd custom (at 0 0.8) (size 1.524 1.524) (layers "F.Cu" "F.Mask")
(net 4 "GND") (pinfunction "B") (pintype "passive")
(options (clearance outline) (anchor circle))
(primitives
) (tstamp dd6cfe5f-7e83-43ec-b58e-f038d645cce0))
(group "" (id 286d03dd-8d78-4a54-9f5c-03f6e3d9d8c8)
(members
27bdd998-0a8e-41ac-a25c-3155801d5d0e
4c170860-5523-42fb-a443-2b3137beda91
64ee2cdd-96c4-49e4-81e6-35347d5329f6
e1a4ce57-037d-4cd1-8cb5-9f0b929106a6
)
)
(group "" (id 59992d03-845a-41bc-a928-c3ecf139f951)
(members
dd6cfe5f-7e83-43ec-b58e-f038d645cce0
)
)
)
(footprint "components:membrane_button" (layer "F.Cu")
(tedit 0) (tstamp 0e6864af-ee95-4174-9b7b-102e335e716a)
(at 64.55 117.15)
(property "Sheetfile" "toppanel.kicad_sch")
(property "Sheetname" "")
(path "/b73d7091-ef5f-40b4-a95d-fc8c4b1364b5")
(fp_text reference "SW3" (at -2.562 -2.1 unlocked) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp d2e6cd32-1d80-46e2-8e4c-57043f022031)
)
(fp_text value "SW_Turbo" (at -2.562 -0.6 unlocked) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 647ee10d-6c1b-4f3b-9711-28d0cc23a1b7)
)
(fp_text user "${REFERENCE}" (at -2.562 0.9 unlocked) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 119b14a6-829d-4b81-9cc4-583b012e5817)
)
(fp_rect (start -5.962 0.2) (end -7.562 4.6) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 034bb93b-4cb0-407e-98d7-b57c424bea5c))
(fp_rect (start -0.2 0.2) (end -1.8 4.6) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 62c02151-d43b-44de-aa92-bead78453538))
(fp_rect (start -1.8 1) (end -5.6 1.4) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 66b580ac-7784-4bc3-ae5a-7446b8dfe71f))
(fp_rect (start -5.6 2.6) (end -1.8 3) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 9c22cd1f-1de2-4231-ac8d-c4e4d631066f))
(fp_rect (start -6 1.8) (end -2.2 2.2) (layer "F.Mask") (width 0.2) (fill solid) (tstamp cc9b68c7-7dbd-4bfe-9c0a-556a7e879016))
(fp_rect (start -1.8 4.2) (end -5.6 4.6) (layer "F.Mask") (width 0.2) (fill solid) (tstamp d2ddde5e-2a46-4a92-a32c-7737f6047b74))
(fp_rect (start -5.962 0.2) (end -2.2 0.6) (layer "F.Mask") (width 0.2) (fill solid) (tstamp dc3c9cfb-b841-40d1-a522-2edf5411e126))
(fp_rect (start -6 3.4) (end -2.2 3.8) (layer "F.Mask") (width 0.2) (fill solid) (tstamp ea345e80-00de-4fce-b543-de32326933ac))
(pad "1" smd custom (at -7.8 4) (size 1.524 1.524) (layers "F.Cu" "F.Mask")
(net 3 "b3") (pinfunction "A") (pintype "passive")
(options (clearance outline) (anchor circle))
(primitives
) (tstamp 63f413e5-9604-4c9a-8c89-c2b931f9f60c))
(pad "2" smd custom (at 0 0.8) (size 1.524 1.524) (layers "F.Cu" "F.Mask")
(net 4 "GND") (pinfunction "B") (pintype "passive")
(options (clearance outline) (anchor circle))
(primitives
) (tstamp 72b9bf30-4bba-4e2f-bab7-f247ef13cd33))
(group "" (id 961e18c4-42bb-4b16-aa4a-ec80aeedc9ed)
(members
72b9bf30-4bba-4e2f-bab7-f247ef13cd33
)
)
(group "" (id d8960c2b-fcc3-428b-82f7-959414cf177c)
(members
034bb93b-4cb0-407e-98d7-b57c424bea5c
cc9b68c7-7dbd-4bfe-9c0a-556a7e879016
dc3c9cfb-b841-40d1-a522-2edf5411e126
ea345e80-00de-4fce-b543-de32326933ac
)
)
)
(footprint "components:membrane_button" (layer "F.Cu")
(tedit 0) (tstamp 41b3a4be-7962-443b-b1dc-880386569fc1)
(at 83.125 117.169)
(property "Sheetfile" "toppanel.kicad_sch")
(property "Sheetname" "")
(path "/36ac71ea-af8d-410c-a509-b331c46703f8")
(fp_text reference "SW1" (at -2.562 -2.1 unlocked) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp f7ab3335-f248-4716-9fa1-65c6c696a551)
)
(fp_text value "SW_Select" (at -2.562 -0.6 unlocked) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp f5948fc6-2817-40ab-a898-f85018fc2ed3)
)
(fp_text user "${REFERENCE}" (at -2.562 0.9 unlocked) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 4129f920-9aea-4f62-a04c-3b9dec9708d3)
)
(fp_rect (start -1.8 1) (end -5.6 1.4) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 386644eb-b1f9-412d-b054-996c03a878ec))
(fp_rect (start -5.962 0.2) (end -7.562 4.6) (layer "F.Mask") (width 0.2) (fill solid) (tstamp 3ecf358b-b8ba-480c-b407-0f13209facae))
(fp_rect (start -6 1.8) (end -2.2 2.2) (layer "F.Mask") (width 0.2) (fill solid) (tstamp afeb1fec-988a-4d11-b215-27ba04f8b3dc))
(fp_rect (start -5.6 2.6) (end -1.8 3) (layer "F.Mask") (width 0.2) (fill solid) (tstamp b68395c5-c614-431c-b66f-f4d09a62c3d4))
(fp_rect (start -1.8 4.2) (end -5.6 4.6) (layer "F.Mask") (width 0.2) (fill solid) (tstamp d4de84da-02eb-4c49-af1d-f44afbfaa4b4))
(fp_rect (start -6 3.4) (end -2.2 3.8) (layer "F.Mask") (width 0.2) (fill solid) (tstamp d7a71dc4-fe58-4b3a-95d1-857c9d07c065))
(fp_rect (start -0.2 0.2) (end -1.8 4.6) (layer "F.Mask") (width 0.2) (fill solid) (tstamp e3137edb-19e0-4022-a8f9-5500cd64528e))
(fp_rect (start -5.962 0.2) (end -2.2 0.6) (layer "F.Mask") (width 0.2) (fill solid) (tstamp ea04f01d-85d5-46f3-87e5-749b851a6d1d))
(pad "1" smd custom (at -7.8 4) (size 1.524 1.524) (layers "F.Cu" "F.Mask")
(net 1 "b1") (pinfunction "A") (pintype "passive")
(options (clearance outline) (anchor circle))
(primitives
) (tstamp 801507cb-2f68-4321-b333-7e1781a9b3e4))
(pad "2" smd custom (at 0 0.8) (size 1.524 1.524) (layers "F.Cu" "F.Mask")
(net 4 "GND") (pinfunction "B") (pintype "passive")
(options (clearance outline) (anchor circle))
(primitives
) (tstamp 847ae839-3d65-4465-ab22-0f7a25ecd5b7))
(group "" (id 5691ba4f-5804-4f31-b25c-fbf8826a6c7a)
(members
847ae839-3d65-4465-ab22-0f7a25ecd5b7
)
)
(group "" (id a8c52e4e-aae1-4fcf-b2b0-724f8c5560d8)
(members
3ecf358b-b8ba-480c-b407-0f13209facae
afeb1fec-988a-4d11-b215-27ba04f8b3dc
d7a71dc4-fe58-4b3a-95d1-857c9d07c065
ea04f01d-85d5-46f3-87e5-749b851a6d1d
)
)
)
(footprint "Connector_PinHeader_1.00mm:PinHeader_1x06_P1.00mm_Horizontal" (layer "F.Cu")
(tedit 59FED737) (tstamp 521244c9-cbad-408b-aebd-4e3d6e3d0f5d)
(at 54.5 130.915 -90)
(descr "Through hole angled pin header, 1x06, 1.00mm pitch, 2.0mm pin length, single row")
(tags "Through hole angled pin header THT 1x06 1.00mm single row")
(property "Sheetfile" "toppanel.kicad_sch")
(property "Sheetname" "")
(path "/bd9fee7e-d5ce-4572-93e3-b2500ea109d3")
(attr through_hole)
(fp_text reference "J1" (at 1.375 -1.5 90) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 20952a4b-a060-46c9-81bc-503278fcad82)
)
(fp_text value "Conn_02x03_Top_Bottom" (at 1.375 6.5 90) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 9c8ad65a-9821-4dcb-ae10-6a4b94db5b5b)
)
(fp_text user "${REFERENCE}" (at 0.75 2.5) (layer "F.Fab")
(effects (font (size 0.6 0.6) (thickness 0.09)))
(tstamp 75bdce38-4343-4bdc-9c88-1e04e851689f)
)
(fp_line (start 3.31 5.21) (end 1.31 5.21) (layer "F.SilkS") (width 0.12) (tstamp 031a9530-a830-47f9-8898-fcb0be4e9a81))
(fp_line (start 0.468215 2.5) (end 1.31 2.5) (layer "F.SilkS") (width 0.12) (tstamp 06dc897f-a01e-4925-ba93-a5cf5d799cc4))
(fp_line (start 1.31 3.79) (end 3.31 3.79) (layer "F.SilkS") (width 0.12) (tstamp 23dfb37a-0cf5-4ade-a75b-2a85e3f6a64c))
(fp_line (start 3.31 1.21) (end 1.31 1.21) (layer "F.SilkS") (width 0.12) (tstamp 2ac37ed4-4ce7-4c4a-b352-058bc0647b9f))
(fp_line (start 0.685 -0.56) (end 1.31 -0.56) (layer "F.SilkS") (width 0.12) (tstamp 2b656991-47cc-40a8-9207-e4a06816ba5c))
(fp_line (start 1.31 1.79) (end 3.31 1.79) (layer "F.SilkS") (width 0.12) (tstamp 2bd5ded8-49d5-400f-91f0-4a016efb3fce))
(fp_line (start 3.31 3.21) (end 1.31 3.21) (layer "F.SilkS") (width 0.12) (tstamp 365f41d3-e436-45b7-adcd-08b4b924c372))
(fp_line (start 3.31 1.79) (end 3.31 2.21) (layer "F.SilkS") (width 0.12) (tstamp 3ea3c3bd-654b-44a2-b06c-21e3c04f88e8))
(fp_line (start 1.31 5.56) (end 0.394493 5.56) (layer "F.SilkS") (width 0.12) (tstamp 420517ae-0b10-43db-9842-32db8c3e69bb))
(fp_line (start 3.31 2.21) (end 1.31 2.21) (layer "F.SilkS") (width 0.12) (tstamp 498a526c-8f79-4c06-bfdc-5d0cc71ea571))
(fp_line (start 3.31 4.79) (end 3.31 5.21) (layer "F.SilkS") (width 0.12) (tstamp 4b341fd1-b8f8-4a93-82c6-540aacb7ab98))
(fp_line (start 1.31 -0.21) (end 3.31 -0.21) (layer "F.SilkS") (width 0.12) (tstamp 4c1798b4-b195-4cd2-9d39-b7dc2ac03823))
(fp_line (start 3.31 0.79) (end 3.31 1.21) (layer "F.SilkS") (width 0.12) (tstamp 4fe74f68-5fe2-43e8-8857-631e7c1bbb81))
(fp_line (start 3.31 -0.21) (end 3.31 0.21) (layer "F.SilkS") (width 0.12) (tstamp 532c3c5a-3bf1-4859-8487-24e010b5b52e))
(fp_line (start 0.685 0.5) (end 1.31 0.5) (layer "F.SilkS") (width 0.12) (tstamp 5586d323-d391-4ba7-9dd5-a155ffee8a2d))
(fp_line (start 3.31 3.79) (end 3.31 4.21) (layer "F.SilkS") (width 0.12) (tstamp 61a0dcb9-d7a9-4227-a154-0e6c391147b1))
(fp_line (start 1.31 4.79) (end 3.31 4.79) (layer "F.SilkS") (width 0.12) (tstamp 7eb3b985-899f-4325-9bc1-58d2ff356aca))
(fp_line (start 1.31 -0.56) (end 1.31 5.56) (layer "F.SilkS") (width 0.12) (tstamp bb37e94d-0dbb-477a-bc4f-57ea3ce24aa0))
(fp_line (start 0.468215 3.5) (end 1.31 3.5) (layer "F.SilkS") (width 0.12) (tstamp ceac7406-6863-42cd-a121-90556cc9261a))
(fp_line (start 1.31 0.09) (end 3.31 0.09) (layer "F.SilkS") (width 0.12) (tstamp cec08789-ac0f-44e3-ab7d-3f44c22ed1f0))
(fp_line (start -0.685 0) (end -0.685 -0.685) (layer "F.SilkS") (width 0.12) (tstamp d0d886cd-ccb6-4f3c-8f5f-0471a4cc7122))
(fp_line (start 3.31 2.79) (end 3.31 3.21) (layer "F.SilkS") (width 0.12) (tstamp e2829319-7857-4e68-afca-867e380f9ad8))
(fp_line (start 3.31 0.21) (end 1.31 0.21) (layer "F.SilkS") (width 0.12) (tstamp e529694c-4b2a-4184-88d2-673cbb1fe418))
(fp_line (start 0.468215 1.5) (end 1.31 1.5) (layer "F.SilkS") (width 0.12) (tstamp e5c71d76-043d-4398-b423-e157769cecf8))
(fp_line (start 1.31 2.79) (end 3.31 2.79) (layer "F.SilkS") (width 0.12) (tstamp e6674e41-6fd6-4154-a7c4-7b6e4d5e27d3))
(fp_line (start -0.685 -0.685) (end 0 -0.685) (layer "F.SilkS") (width 0.12) (tstamp e7c6ce54-083d-41f6-be88-35eebe466fba))
(fp_line (start 0.468215 4.5) (end 1.31 4.5) (layer "F.SilkS") (width 0.12) (tstamp e922a649-c68f-40a9-a504-4726efa76600))
(fp_line (start 1.31 -0.15) (end 3.31 -0.15) (layer "F.SilkS") (width 0.12) (tstamp f3a37fc9-5928-4656-96ed-6e984febdfaa))
(fp_line (start 1.31 -0.03) (end 3.31 -0.03) (layer "F.SilkS") (width 0.12) (tstamp f67dc90b-4668-4711-bfec-b84810b627dc))
(fp_line (start 3.31 4.21) (end 1.31 4.21) (layer "F.SilkS") (width 0.12) (tstamp fd4cd23c-3d5e-4caa-ac6d-3abef35a734c))
(fp_line (start 1.31 0.79) (end 3.31 0.79) (layer "F.SilkS") (width 0.12) (tstamp fea8097b-2ff2-4054-b81d-6b44a9a74dee))
(fp_line (start 3.75 6) (end 3.75 -1) (layer "F.CrtYd") (width 0.05) (tstamp 29e2178a-3666-4f3c-8681-9a246053a26d))
(fp_line (start -1 6) (end 3.75 6) (layer "F.CrtYd") (width 0.05) (tstamp 6571b6f4-9c50-4d3f-806b-79990468955a))
(fp_line (start 3.75 -1) (end -1 -1) (layer "F.CrtYd") (width 0.05) (tstamp e87dea81-5ce2-4342-b032-c5dafde1910f))
(fp_line (start -1 -1) (end -1 6) (layer "F.CrtYd") (width 0.05) (tstamp f8e800e3-bd65-40d2-84f4-c084ba629e3b))
(fp_line (start 3.25 0.85) (end 3.25 1.15) (layer "F.Fab") (width 0.1) (tstamp 182c0a41-36a8-4d7b-be8c-06de07639294))
(fp_line (start 0.25 -0.25) (end 0.5 -0.5) (layer "F.Fab") (width 0.1) (tstamp 265b8472-fae4-451e-aa0f-94d6288582b6))
(fp_line (start -0.15 -0.15) (end -0.15 0.15) (layer "F.Fab") (width 0.1) (tstamp 27fed86a-5f1c-4d71-a029-8a3407c1091f))
(fp_line (start -0.15 4.15) (end 0.25 4.15) (layer "F.Fab") (width 0.1) (tstamp 29973957-b3fb-450c-b0e1-600a78634e99))
(fp_line (start 0.25 5.5) (end 0.25 -0.25) (layer "F.Fab") (width 0.1) (tstamp 2c096267-ad51-42b0-bb70-d4510017c982))
(fp_line (start -0.15 2.15) (end 0.25 2.15) (layer "F.Fab") (width 0.1) (tstamp 3591b81e-d91f-43fe-83c8-c348368fe539))
(fp_line (start 3.25 2.85) (end 3.25 3.15) (layer "F.Fab") (width 0.1) (tstamp 38e03aaa-b055-4eff-a710-132f16f7e4fe))
(fp_line (start 1.25 1.15) (end 3.25 1.15) (layer "F.Fab") (width 0.1) (tstamp 38ebc9fe-bd9f-46a7-913f-0a77a2ebf359))
(fp_line (start 1.25 5.15) (end 3.25 5.15) (layer "F.Fab") (width 0.1) (tstamp 3a07047a-8cc3-4d06-8de2-15d2a7a829cd))
(fp_line (start 3.25 1.85) (end 3.25 2.15) (layer "F.Fab") (width 0.1) (tstamp 3d491eba-bd04-455b-a02a-0bb9cd04430b))
(fp_line (start 1.25 0.15) (end 3.25 0.15) (layer "F.Fab") (width 0.1) (tstamp 3f534e87-4255-408c-a5fe-7969f8ac56b6))
(fp_line (start -0.15 4.85) (end -0.15 5.15) (layer "F.Fab") (width 0.1) (tstamp 401d9e6d-e596-4164-926f-079eaff2265d))
(fp_line (start -0.15 1.85) (end -0.15 2.15) (layer "F.Fab") (width 0.1) (tstamp 41f2cdaa-d3ba-4cc4-ade8-d19e1cde05af))
(fp_line (start -0.15 -0.15) (end 0.25 -0.15) (layer "F.Fab") (width 0.1) (tstamp 4a8bd481-f75e-48cb-a0fc-abe68caca6a0))
(fp_line (start -0.15 0.85) (end 0.25 0.85) (layer "F.Fab") (width 0.1) (tstamp 50af84a8-7d36-43b1-9283-b5ce61973310))
(fp_line (start 1.25 5.5) (end 0.25 5.5) (layer "F.Fab") (width 0.1) (tstamp 55d945e0-e02f-4d70-adbe-b806b170f365))
(fp_line (start 1.25 1.85) (end 3.25 1.85) (layer "F.Fab") (width 0.1) (tstamp 5941bca9-d766-49be-b648-35efe3e2b663))
(fp_line (start -0.15 0.85) (end -0.15 1.15) (layer "F.Fab") (width 0.1) (tstamp 594a45b5-fd4a-4102-bb9c-7982a488b365))
(fp_line (start 1.25 4.85) (end 3.25 4.85) (layer "F.Fab") (width 0.1) (tstamp 609101f1-948d-4b7d-a7c2-67d8d9c4e57f))
(fp_line (start 1.25 0.85) (end 3.25 0.85) (layer "F.Fab") (width 0.1) (tstamp 66b93f10-0a23-4b0b-9b53-60d19cd0c189))
(fp_line (start 3.25 -0.15) (end 3.25 0.15) (layer "F.Fab") (width 0.1) (tstamp 71bcec3c-1cd9-4182-81f8-2334ca2243dc))
(fp_line (start 1.25 3.85) (end 3.25 3.85) (layer "F.Fab") (width 0.1) (tstamp 7fb0dd58-ad4e-4e3e-aada-20845a6246f0))
(fp_line (start -0.15 5.15) (end 0.25 5.15) (layer "F.Fab") (width 0.1) (tstamp a0f1b9c9-1bef-4b06-8a97-26db6e32f9e6))
(fp_line (start 1.25 3.15) (end 3.25 3.15) (layer "F.Fab") (width 0.1) (tstamp a227376d-7c12-435c-a918-a9b8433936ec))
(fp_line (start -0.15 2.85) (end -0.15 3.15) (layer "F.Fab") (width 0.1) (tstamp a8a5c93b-d3ad-4614-a3cc-6a7965f64e1c))
(fp_line (start -0.15 2.85) (end 0.25 2.85) (layer "F.Fab") (width 0.1) (tstamp a8c80fed-badb-48b4-8f3c-52b74c756ae6))
(fp_line (start 3.25 3.85) (end 3.25 4.15) (layer "F.Fab") (width 0.1) (tstamp b07da02d-50e7-4482-84e1-a14a56c754d0))
(fp_line (start 1.25 2.85) (end 3.25 2.85) (layer "F.Fab") (width 0.1) (tstamp b1a83bd4-6ed6-4c68-aab5-7f46aa1719e2))
(fp_line (start -0.15 3.15) (end 0.25 3.15) (layer "F.Fab") (width 0.1) (tstamp bd2a5e90-c24f-4cc2-9bbc-e9d9d0b2c3cc))
(fp_line (start -0.15 4.85) (end 0.25 4.85) (layer "F.Fab") (width 0.1) (tstamp c50694cc-cc0c-4b8c-a53d-053110c3b5e8))
(fp_line (start -0.15 1.85) (end 0.25 1.85) (layer "F.Fab") (width 0.1) (tstamp c9d0c7a1-126c-410a-8e33-9710bcb1ed6d))
(fp_line (start 1.25 -0.5) (end 1.25 5.5) (layer "F.Fab") (width 0.1) (tstamp d5dcaa01-8d5d-4b17-aba3-73b29e07848f))
(fp_line (start 0.5 -0.5) (end 1.25 -0.5) (layer "F.Fab") (width 0.1) (tstamp d8850bf8-f687-44a7-9f39-192a5f228818))
(fp_line (start 1.25 2.15) (end 3.25 2.15) (layer "F.Fab") (width 0.1) (tstamp da54a474-032c-4b34-90e9-7d9ea331fe89))
(fp_line (start -0.15 0.15) (end 0.25 0.15) (layer "F.Fab") (width 0.1) (tstamp dbfa048e-f34f-4360-b623-bebc18498bd7))
(fp_line (start -0.15 3.85) (end 0.25 3.85) (layer "F.Fab") (width 0.1) (tstamp e335237c-9052-49b9-8e58-937ab31436d1))
(fp_line (start 1.25 -0.15) (end 3.25 -0.15) (layer "F.Fab") (width 0.1) (tstamp e498b60f-1e60-415d-941a-67b9e0ef90e3))
(fp_line (start 3.25 4.85) (end 3.25 5.15) (layer "F.Fab") (width 0.1) (tstamp f01e5677-ce21-432a-b354-7afdeb27be13))
(fp_line (start -0.15 1.15) (end 0.25 1.15) (layer "F.Fab") (width 0.1) (tstamp fa019163-ad21-4899-afda-3a21ccd19b21))
(fp_line (start 1.25 4.15) (end 3.25 4.15) (layer "F.Fab") (width 0.1) (tstamp fd132074-a2a0-4aec-a685-24d09bd47acb))
(fp_line (start -0.15 3.85) (end -0.15 4.15) (layer "F.Fab") (width 0.1) (tstamp fe4362cf-7a45-4f13-ad2b-bd48b41be4ae))
(pad "1" thru_hole rect (at 0 0 270) (size 0.85 0.85) (drill 0.5) (layers *.Cu *.Mask)
(net 4 "GND") (pinfunction "Pin_1") (pintype "passive") (tstamp 50eb2350-b407-403c-8a38-9aa081797342))
(pad "2" thru_hole oval (at 0 1 270) (size 0.85 0.85) (drill 0.5) (layers *.Cu *.Mask)
(net 1 "b1") (pinfunction "Pin_2") (pintype "passive") (tstamp b50adee9-fd48-4c47-8066-ebe3accc42f6))
(pad "3" thru_hole oval (at 0 2 270) (size 0.85 0.85) (drill 0.5) (layers *.Cu *.Mask)
(net 2 "b2") (pinfunction "Pin_3") (pintype "passive") (tstamp 82c614c2-5b37-4863-afa2-1f778227ccd3))
(pad "4" thru_hole oval (at 0 3 270) (size 0.85 0.85) (drill 0.5) (layers *.Cu *.Mask)
(net 3 "b3") (pinfunction "Pin_4") (pintype "passive") (tstamp 1432f55d-d3cf-4438-a5f6-ebf9ee633cd2))
(pad "5" thru_hole oval (at 0 4 270) (size 0.85 0.85) (drill 0.5) (layers *.Cu *.Mask)
(net 5 "GP15") (pinfunction "Pin_5") (pintype "passive") (tstamp 5fd94636-526a-42d5-8b4c-c686e14e57ae))
(pad "6" thru_hole oval (at 0 5 270) (size 0.85 0.85) (drill 0.5) (layers *.Cu *.Mask)
(net 7 "3v3") (pinfunction "Pin_6") (pintype "passive") (tstamp 70c159dd-be62-4916-af02-5f90608f7761))
(model "${KICAD6_3DMODEL_DIR}/Connector_PinHeader_1.00mm.3dshapes/PinHeader_1x06_P1.00mm_Horizontal.wrl"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
(footprint "LED_THT:LED_D5.0mm" (layer "F.Cu")
(tedit 5995936A) (tstamp 81d3ab9f-ebe2-4925-8dc9-ac2fa7a34e51)
(at 53.34 119.38 180)
(descr "LED, diameter 5.0mm, 2 pins, http://cdn-reichelt.de/documents/datenblatt/A500/LL-504BC2E-009.pdf")
(tags "LED diameter 5.0mm 2 pins")
(property "Sheetfile" "toppanel.kicad_sch")
(property "Sheetname" "")
(path "/f28a6601-27bc-47be-ada0-793c3b6f793c")
(attr through_hole)
(fp_text reference "LED_TURBO1" (at 1.27 -3.96) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp b5f667d0-ffec-4dfc-85f0-eb61ef426b23)
)
(fp_text value "LED" (at 1.27 3.96) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp cfdd8bb2-8682-4dfe-83ee-1849c8cfc2e1)
)
(fp_text user "${REFERENCE}" (at 1.25 0) (layer "F.Fab")
(effects (font (size 0.8 0.8) (thickness 0.2)))
(tstamp 66f39b47-eaac-4bb8-a36e-8ba4a5764ef7)
)
(fp_line (start -1.29 -1.545) (end -1.29 1.545) (layer "F.SilkS") (width 0.12) (tstamp 8ca7bee7-0046-438f-99d6-b46e2a979341))
(fp_arc (start 4.26 -0.000462) (mid 2.072002 2.880433) (end -1.29 1.54483) (layer "F.SilkS") (width 0.12) (tstamp cb12f717-1624-4311-8ba6-e125e83ee9f1))
(fp_arc (start -1.29 -1.54483) (mid 2.072002 -2.880433) (end 4.26 0.000462) (layer "F.SilkS") (width 0.12) (tstamp f682779c-f5d1-4a51-9c19-8da2e09de3e0))
(fp_circle (center 1.27 0) (end 3.77 0) (layer "F.SilkS") (width 0.12) (fill none) (tstamp b1ee728c-7be6-4571-a5ee-5d359cd073a0))
(fp_line (start 4.5 3.25) (end 4.5 -3.25) (layer "F.CrtYd") (width 0.05) (tstamp 01a8c6b7-d1b9-4fd1-a4c2-744786c20432))
(fp_line (start 4.5 -3.25) (end -1.95 -3.25) (layer "F.CrtYd") (width 0.05) (tstamp 512d9e99-ba44-4244-a9b5-54859c6e5a97))
(fp_line (start -1.95 -3.25) (end -1.95 3.25) (layer "F.CrtYd") (width 0.05) (tstamp 9b2dcdbc-fbd0-4f92-9a54-0770e67af091))
(fp_line (start -1.95 3.25) (end 4.5 3.25) (layer "F.CrtYd") (width 0.05) (tstamp daf7da94-1063-4ca4-8418-c05f6f31d75b))
(fp_line (start -1.23 -1.469694) (end -1.23 1.469694) (layer "F.Fab") (width 0.1) (tstamp ff41e9d3-6528-47e7-988e-fec17784654d))
(fp_arc (start -1.23 -1.469694) (mid 4.17 0.000016) (end -1.230016 1.469666) (layer "F.Fab") (width 0.1) (tstamp c7beb16a-0e9d-459e-a0f0-036b5da5314e))
(fp_circle (center 1.27 0) (end 3.77 0) (layer "F.Fab") (width 0.1) (fill none) (tstamp b3110ae1-ac4e-4219-91ee-a6ce2c092d51))
(pad "1" thru_hole rect (at 0 0 180) (size 1.8 1.8) (drill 0.9) (layers *.Cu *.Mask)
(net 5 "GP15") (pinfunction "K") (pintype "passive") (tstamp 4f4fc4ea-93a4-4d9e-b2b1-5882b85aa614))
(pad "2" thru_hole circle (at 2.54 0 180) (size 1.8 1.8) (drill 0.9) (layers *.Cu *.Mask)
(net 6 "LED") (pinfunction "A") (pintype "passive") (tstamp 7b115041-ec16-4bb6-80c7-dfc04f70551c))
(model "${KICAD6_3DMODEL_DIR}/LED_THT.3dshapes/LED_D5.0mm.wrl"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
(footprint "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal" (layer "F.Cu")
(tedit 5AE5139B) (tstamp d6d4b48d-6d3c-4597-bc52-14e80d94fcbd)
(at 45.72 115.57 -90)
(descr "Resistor, Axial_DIN0207 series, Axial, Horizontal, pin pitch=7.62mm, 0.25W = 1/4W, length*diameter=6.3*2.5mm^2, http://cdn-reichelt.de/documents/datenblatt/B400/1_4W%23YAG.pdf")
(tags "Resistor Axial_DIN0207 series Axial Horizontal pin pitch 7.62mm 0.25W = 1/4W length 6.3mm diameter 2.5mm")
(property "Sheetfile" "toppanel.kicad_sch")
(property "Sheetname" "")
(path "/2183ed17-47fe-4d01-ab18-f3386abe1b21")
(attr through_hole)
(fp_text reference "R1" (at 3.81 -2.37 90) (layer "F.SilkS")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 3ffde5a1-b4c1-4367-9f03-4d8e623664cf)
)
(fp_text value "R_LED" (at 3.81 2.37 90) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 11e2bf78-3b62-494c-97fa-431020c6b4aa)
)
(fp_text user "${REFERENCE}" (at 3.81 0 90) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp edac2906-6a5c-461b-a9af-ad8fc2510da3)
)
(fp_line (start 7.08 1.37) (end 7.08 1.04) (layer "F.SilkS") (width 0.12) (tstamp 39e382e9-9d6a-484b-bf24-68969b641a1d))
(fp_line (start 0.54 1.37) (end 7.08 1.37) (layer "F.SilkS") (width 0.12) (tstamp 7908994d-e2f9-4324-ba3a-a10cb5db346e))
(fp_line (start 0.54 -1.04) (end 0.54 -1.37) (layer "F.SilkS") (width 0.12) (tstamp 901d0a6e-9f9e-40a4-94ff-252307c1898d))
(fp_line (start 0.54 -1.37) (end 7.08 -1.37) (layer "F.SilkS") (width 0.12) (tstamp c2c18bb2-cdb7-44ff-9677-0e0712d149be))
(fp_line (start 7.08 -1.37) (end 7.08 -1.04) (layer "F.SilkS") (width 0.12) (tstamp c4087a59-19ae-45b3-8f03-66839f10adf9))
(fp_line (start 0.54 1.04) (end 0.54 1.37) (layer "F.SilkS") (width 0.12) (tstamp c7c265b4-1934-4f15-b215-60faee7c127a))
(fp_line (start 8.67 -1.5) (end -1.05 -1.5) (layer "F.CrtYd") (width 0.05) (tstamp 36b08c5e-83bf-4367-a2b9-13c8686f2d48))
(fp_line (start 8.67 1.5) (end 8.67 -1.5) (layer "F.CrtYd") (width 0.05) (tstamp 54f72465-eeee-4267-8958-05c8007c104b))
(fp_line (start -1.05 1.5) (end 8.67 1.5) (layer "F.CrtYd") (width 0.05) (tstamp 7e9dec03-9782-48ec-a5ab-71c17dad7da8))
(fp_line (start -1.05 -1.5) (end -1.05 1.5) (layer "F.CrtYd") (width 0.05) (tstamp eb3b380a-5047-421a-a32f-84bb22345439))
(fp_line (start 0.66 -1.25) (end 0.66 1.25) (layer "F.Fab") (width 0.1) (tstamp 0331cd60-4dc8-4e80-9e5e-9bec4619a443))
(fp_line (start 0.66 1.25) (end 6.96 1.25) (layer "F.Fab") (width 0.1) (tstamp 17f39e4f-6793-4502-9b74-b908211ac4fd))
(fp_line (start 7.62 0) (end 6.96 0) (layer "F.Fab") (width 0.1) (tstamp 5b51096f-4448-4365-bae5-538af40937a2))
(fp_line (start 6.96 -1.25) (end 0.66 -1.25) (layer "F.Fab") (width 0.1) (tstamp 964da2c6-846e-4a6e-adb1-aab25ae39cf9))
(fp_line (start 6.96 1.25) (end 6.96 -1.25) (layer "F.Fab") (width 0.1) (tstamp a2ea2e39-d304-4cd9-b4dc-0a20be60d094))
(fp_line (start 0 0) (end 0.66 0) (layer "F.Fab") (width 0.1) (tstamp eb6b12ee-b15b-4c84-8d55-d1fbaf3417a8))
(pad "1" thru_hole circle (at 0 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)
(net 6 "LED") (pintype "passive") (tstamp cbe3fc5b-9dba-4cd8-a49b-b6b4f9b1e601))
(pad "2" thru_hole oval (at 7.62 0 270) (size 1.6 1.6) (drill 0.8) (layers *.Cu *.Mask)
(net 7 "3v3") (pintype "passive") (tstamp bd19711b-0736-4361-95ad-2ad255b21cd3))
(model "${KICAD6_3DMODEL_DIR}/Resistor_THT.3dshapes/R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal.wrl"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
(gr_rect (start 58.625 117.75) (end 62.375 117.35) (layer "F.Cu") (width 0.2) (fill solid) (tstamp 1498d958-6517-42d8-bf9a-e7eeae162db2))
(gr_rect (start 77.225 117.775) (end 80.975 117.375) (layer "F.Cu") (width 0.2) (fill solid) (tstamp 1600135c-4641-44a0-9346-941ab8a67e17))
(gr_rect (start 72.075 121.35) (end 68.325 121.75) (layer "F.Cu") (width 0.2) (fill solid) (tstamp 1aed0667-9da7-42e0-8f89-2a77701dfd54))
(gr_rect (start 62.625 118.55) (end 58.95 118.15) (layer "F.Cu") (width 0.2) (fill solid) (tstamp 1e6080cd-b978-45b0-bb94-cbe61cdd5452))
(gr_rect (start 68.1 118.95) (end 71.75 119.35) (layer "F.Cu") (width 0.2) (fill solid) (tstamp 216887a4-5225-4f2e-b25e-245b28a17630))
(gr_rect (start 68.075 120.55) (end 71.75 120.95) (layer "F.Cu") (width 0.2) (fill solid) (tstamp 2e619702-df06-4428-a718-99100448c38f))
(gr_rect (start 68.025 117.75) (end 71.775 117.35) (layer "F.Cu") (width 0.2) (fill solid) (tstamp 46cca8ac-7d9a-4913-a378-9f18302876eb))
(gr_rect (start 58.675 120.55) (end 62.35 120.95) (layer "F.Cu") (width 0.2) (fill solid) (tstamp 4ecf6269-7491-418c-a646-d898f54c5a3b))
(gr_rect (start 77.2 121.775) (end 75.575 117.375) (layer "F.Cu") (width 0.2) (fill solid) (tstamp 62be6570-7f21-4a0d-9f64-afc4b2d87ec6))
(gr_rect (start 62.675 121.35) (end 58.925 121.75) (layer "F.Cu") (width 0.2) (fill solid) (tstamp 68111dd2-1a75-444b-b1ca-1b9b187bdc94))
(gr_rect (start 77.3 118.975) (end 80.95 119.375) (layer "F.Cu") (width 0.2) (fill solid) (tstamp 78270ae8-ea19-4eca-9bb2-0f8b45720634))
(gr_rect (start 62.7 117.35) (end 64.325 121.75) (layer "F.Cu") (width 0.2) (fill solid) (tstamp 85ce2bc6-2e2f-4741-8c2b-75fc3332bb86))
(gr_rect (start 72.025 118.55) (end 68.35 118.15) (layer "F.Cu") (width 0.2) (fill solid) (tstamp 946ca03d-bceb-44a3-958d-fdb64d11e873))
(gr_rect (start 77.275 120.575) (end 80.95 120.975) (layer "F.Cu") (width 0.2) (fill solid) (tstamp a1303c81-f303-4ee5-af4d-1b00f76a89c1))
(gr_rect (start 62.6 120.15) (end 58.95 119.75) (layer "F.Cu") (width 0.2) (fill solid) (tstamp ac38cdda-8bca-4ccf-8b60-91ef6746f799))
(gr_rect (start 72.1 117.35) (end 73.725 121.75) (layer "F.Cu") (width 0.2) (fill solid) (tstamp c3ec618c-4fbb-4d56-9e3e-ff8ee7d464b8))
(gr_rect (start 58.7 118.95) (end 62.35 119.35) (layer "F.Cu") (width 0.2) (fill solid) (tstamp d420e2e9-55c1-4630-89e2-153f268166d8))
(gr_rect (start 72 120.15) (end 68.35 119.75) (layer "F.Cu") (width 0.2) (fill solid) (tstamp db6515ba-be10-42d4-aa54-72b1cbc641cd))
(gr_rect (start 58.6 121.75) (end 56.975 117.35) (layer "F.Cu") (width 0.2) (fill solid) (tstamp e284bbf6-c4cd-4302-b93c-e5331bc0cc23))
(gr_rect (start 68 121.75) (end 66.375 117.35) (layer "F.Cu") (width 0.2) (fill solid) (tstamp f5b9547a-0fb2-4699-b4ef-7a5bd9a66072))
(segment (start 66.329 130.165) (end 53.66 130.165) (width 0.25) (layer "F.Cu") (net 1) (tstamp 47a7efb9-5996-47c4-bcf8-a7e762eb3337))
(segment (start 53.66 130.165) (end 53.5 130.325) (width 0.25) (layer "F.Cu") (net 1) (tstamp 5fff36c5-2f2e-416a-b271-52247e71c4d0))
(segment (start 53.5 130.325) (end 53.5 130.915) (width 0.25) (layer "F.Cu") (net 1) (tstamp 91179b8b-cc52-4108-82e9-ca10f0ccdde8))
(segment (start 75.325 121.169) (end 66.329 130.165) (width 0.25) (layer "F.Cu") (net 1) (tstamp bb2883a2-90c1-4641-85dd-af63d7d4f0af))
(segment (start 65.875 129.715) (end 53.473604 129.715) (width 0.25) (layer "F.Cu") (net 2) (tstamp 091ba09c-ce07-4a48-a562-81278dbddaff))
(segment (start 66.15 129.44) (end 65.875 129.715) (width 0.25) (layer "F.Cu") (net 2) (tstamp 2333a3da-25e0-4cf0-a5fd-8ea981d17b52))
(segment (start 66.15 121.144) (end 66.15 129.44) (width 0.25) (layer "F.Cu") (net 2) (tstamp 4aa2e74f-4856-44a8-a80b-e80ca1fad1f8))
(segment (start 53.473604 129.715) (end 52.5 130.688604) (width 0.25) (layer "F.Cu") (net 2) (tstamp 902cee0e-8a54-4cd2-96f1-3bb9439d62d1))
(segment (start 52.5 130.688604) (end 52.5 130.915) (width 0.25) (layer "F.Cu") (net 2) (tstamp f3d46a01-3b65-4f62-a963-5c967786480d))
(segment (start 56.75 121.15) (end 56.75 129.265) (width 0.25) (layer "F.Cu") (net 3) (tstamp 0f6f4afb-96ad-47f3-a33d-4a0044417e63))
(segment (start 56.75 129.265) (end 53.089339 129.265) (width 0.25) (layer "F.Cu") (net 3) (tstamp 2ac87238-516b-45a7-85ea-93ae760ebd16))
(segment (start 53.089339 129.265) (end 51.5 130.854339) (width 0.25) (layer "F.Cu") (net 3) (tstamp 8fe2046f-e4a0-43d9-bac3-721b4ea4aa36))
(segment (start 51.5 130.854339) (end 51.5 130.915) (width 0.25) (layer "F.Cu") (net 3) (tstamp bf77eb52-aa56-4602-9814-08dca38e6936))
(segment (start 83.125 117.969) (end 83.894 117.969) (width 0.25) (layer "F.Cu") (net 4) (tstamp 126dc5e8-fce8-4054-8144-818aca45961c))
(segment (start 82.15 123.95) (end 73.325 123.95) (width 0.25) (layer "F.Cu") (net 4) (tstamp 2393413f-a44a-4d36-acd8-86507b1ec96d))
(segment (start 64.725 116.525) (end 64.65 116.6) (width 0.25) (layer "F.Cu") (net 4) (tstamp 3add6320-9309-424d-94ec-f3384e61074b))
(segment (start 83.125 117.969) (end 83.9 117.194) (width 0.25) (layer "F.Cu") (net 4) (tstamp 4231a4cb-7188-40d4-b42c-d71c8f70178e))
(segment (start 74.1 116.525) (end 73.95 116.675) (width 0.25) (layer "F.Cu") (net 4) (tstamp 5fea8b23-3b3e-4637-b4db-22fb408cddce))
(segment (start 64.75 116.7) (end 64.75 117.526041) (width 0.25) (layer "F.Cu") (net 4) (tstamp 6299fcc6-61da-4510-973a-8f5af0f6dafe))
(segment (start 73.325 123.95) (end 66.36 130.915) (width 0.25) (layer "F.Cu") (net 4) (tstamp 66682e79-b05b-40be-a2ac-d0bf27936ebd))
(segment (start 83.9 117.125) (end 83.3 116.525) (width 0.25) (layer "F.Cu") (net 4) (tstamp 6f74c7ef-bf73-42e0-8ba6-0e1487f0290c))
(segment (start 83.894 117.969) (end 83.95 118.025) (width 0.25) (layer "F.Cu") (net 4) (tstamp 7bfb9885-002c-4786-b32f-9cefd281f2de))
(segment (start 83.3 116.525) (end 74.1 116.525) (width 0.25) (layer "F.Cu") (net 4) (tstamp 93587934-86a6-4682-9138-c76419927cf9))
(segment (start 73.95 116.675) (end 73.95 117.944) (width 0.25) (layer "F.Cu") (net 4) (tstamp 9f6615ef-89cd-41d1-b874-e92880b0788d))
(segment (start 74.1 116.525) (end 64.725 116.525) (width 0.25) (layer "F.Cu") (net 4) (tstamp af624578-ff00-47b0-92fa-b37babf59a48))
(segment (start 66.36 130.915) (end 54.5 130.915) (width 0.25) (layer "F.Cu") (net 4) (tstamp c2786427-f2f0-43a4-9bbf-46928c136744))
(segment (start 83.9 117.194) (end 83.9 117.125) (width 0.25) (layer "F.Cu") (net 4) (tstamp d9270772-cca4-46e7-a254-b9ea5904b83d))
(segment (start 64.65 116.6) (end 64.75 116.7) (width 0.25) (layer "F.Cu") (net 4) (tstamp eec861f8-a631-44b6-8220-a72fe816d78c))
(segment (start 83.95 122.15) (end 82.15 123.95) (width 0.25) (layer "F.Cu") (net 4) (tstamp f3d108e5-6c81-4d8f-9bac-776d5385503d))
(segment (start 83.95 118.025) (end 83.95 122.15) (width 0.25) (layer "F.Cu") (net 4) (tstamp fab271e5-d8f9-48d5-8d01-fff8707d3b11))
(segment (start 50.5 130.31396) (end 51.99896 128.815) (width 0.25) (layer "F.Cu") (net 5) (tstamp 00b2fec7-d559-4e34-ad1e-8e63b79a5974))
(segment (start 50.5 130.915) (end 50.5 130.31396) (width 0.25) (layer "F.Cu") (net 5) (tstamp 3c04a1b3-7c0f-45fd-93c2-3183959cafac))
(segment (start 53.34 119.64) (end 53.34 119.38) (width 0.25) (layer "F.Cu") (net 5) (tstamp 3f14d83c-c1f7-4999-a3a4-2cbbadff1610))
(segment (start 56.3 122.6) (end 53.34 119.64) (width 0.25) (layer "F.Cu") (net 5) (tstamp c3d11352-e939-43f5-9785-4d8210fd58cc))
(segment (start 56.3 128.815) (end 56.3 122.6) (width 0.25) (layer "F.Cu") (net 5) (tstamp d72d9383-5f9e-4aad-aa62-b276fb593967))
(segment (start 51.99896 128.815) (end 56.3 128.815) (width 0.25) (layer "F.Cu") (net 5) (tstamp f97732c7-4d0a-41a9-a55a-15f204440370))
(segment (start 46.99 115.57) (end 50.8 119.38) (width 0.25) (layer "F.Cu") (net 6) (tstamp 9bde084a-145a-4ab0-aea1-3cc12f5645a2))
(segment (start 45.72 115.57) (end 46.99 115.57) (width 0.25) (layer "F.Cu") (net 6) (tstamp c177497f-468b-4ba9-988e-ef0486f84eca))
(segment (start 49.5 126.97) (end 45.72 123.19) (width 0.25) (layer "F.Cu") (net 7) (tstamp 1c702b45-8c1d-48bc-8dec-a499617813c3))
(segment (start 49.5 130.915) (end 49.5 126.97) (width 0.25) (layer "F.Cu") (net 7) (tstamp 8ba2bdf9-e9bb-4682-89b5-7a23daa86ddf))
(group "" (id 6b826b14-aa81-4387-8114-ee3ca511f888)
(members
1aed0667-9da7-42e0-8f89-2a77701dfd54
946ca03d-bceb-44a3-958d-fdb64d11e873
c3ec618c-4fbb-4d56-9e3e-ff8ee7d464b8
db6515ba-be10-42d4-aa54-72b1cbc641cd
)
)
(group "" (id aca3ae97-09e6-47c0-9017-318e7a5f0286)
(members
1498d958-6517-42d8-bf9a-e7eeae162db2
4ecf6269-7491-418c-a646-d898f54c5a3b
d420e2e9-55c1-4630-89e2-153f268166d8
e284bbf6-c4cd-4302-b93c-e5331bc0cc23
)
)
(group "" (id afcc2883-9af6-4eec-843c-6f250f35dec3)
(members
216887a4-5225-4f2e-b25e-245b28a17630
2e619702-df06-4428-a718-99100448c38f
46cca8ac-7d9a-4913-a378-9f18302876eb
f5b9547a-0fb2-4699-b4ef-7a5bd9a66072
)
)
(group "" (id c3bb1c97-35fc-4785-98c5-8c8eb1db694f)
(members
1600135c-4641-44a0-9346-941ab8a67e17
62be6570-7f21-4a0d-9f64-afc4b2d87ec6
78270ae8-ea19-4eca-9bb2-0f8b45720634
a1303c81-f303-4ee5-af4d-1b00f76a89c1
)
)
(group "" (id fe7c33a9-fe64-43b4-a8a8-f837ca4d1a51)
(members
1e6080cd-b978-45b0-bb94-cbe61cdd5452
68111dd2-1a75-444b-b1ca-1b9b187bdc94
85ce2bc6-2e2f-4741-8c2b-75fc3332bb86
ac38cdda-8bca-4ccf-8b60-91ef6746f799
)
)
)

View File

@ -1,75 +0,0 @@
{
"board": {
"active_layer": 0,
"active_layer_preset": "All Layers",
"auto_track_width": true,
"hidden_nets": [],
"high_contrast_mode": 0,
"net_color_mode": 1,
"opacity": {
"pads": 1.0,
"tracks": 1.0,
"vias": 1.0,
"zones": 0.6
},
"ratsnest_display_mode": 0,
"selection_filter": {
"dimensions": true,
"footprints": true,
"graphics": true,
"keepouts": true,
"lockedItems": true,
"otherItems": true,
"pads": true,
"text": true,
"tracks": true,
"vias": true,
"zones": true
},
"visible_items": [
0,
1,
2,
3,
4,
5,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
30,
32,
33,
34,
35,
36
],
"visible_layers": "fffffff_ffffffff",
"zone_display_mode": 0
},
"meta": {
"filename": "toppanel.kicad_prl",
"version": 3
},
"project": {
"files": []
}
}

View File

@ -1,420 +0,0 @@
{
"board": {
"design_settings": {
"defaults": {
"board_outline_line_width": 0.09999999999999999,
"copper_line_width": 0.19999999999999998,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.049999999999999996,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": false,
"text_position": 0,
"units_format": 1
},
"fab_line_width": 0.09999999999999999,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.15,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.762,
"height": 1.524,
"width": 1.524
},
"silk_line_width": 0.15,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.15,
"silk_text_upright": false,
"zones": {
"45_degree_only": false,
"min_clearance": 0.508
}
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"copper_edge_clearance": "error",
"courtyards_overlap": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint_type_mismatch": "error",
"hole_clearance": "error",
"hole_near_hole": "error",
"invalid_outline": "error",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "error",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_dangling": "warning",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zone_has_empty_net": "error",
"zones_intersect": "error"
},
"rules": {
"allow_blind_buried_vias": false,
"allow_microvias": false,
"max_error": 0.005,
"min_clearance": 0.0,
"min_copper_edge_clearance": 0.0,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.19999999999999998,
"min_microvia_drill": 0.09999999999999999,
"min_silk_clearance": 0.0,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.19999999999999998,
"min_via_annular_width": 0.049999999999999996,
"min_via_diameter": 0.39999999999999997,
"solder_mask_clearance": 0.0,
"solder_mask_min_width": 0.0,
"use_height_for_length_calcs": true
},
"track_widths": [],
"via_dimensions": [],
"zones_allow_external_fillets": false,
"zones_use_no_outline": true
},
"layer_presets": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_label_syntax": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"extra_units": "error",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"lib_symbol_issues": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"similar_labels": "warning",
"unannotated": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "toppanel.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12.0,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.25,
"via_diameter": 0.8,
"via_drill": 0.4,
"wire_width": 6.0
}
],
"meta": {
"version": 2
},
"net_colors": null
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"specctra_dsn": "",
"step": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"drawing": {
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"ngspice": {
"fix_include_paths": true,
"fix_passive_vals": false,
"meta": {
"version": 0
},
"model_mode": 0,
"workbook_filename": ""
},
"page_layout_descr_file": "",
"plot_directory": "",
"spice_adjust_passive_values": false,
"spice_external_command": "spice \"%I\"",
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"4f8f2bae-746c-4420-82b6-a208151802e4",
""
]
],
"text_variables": {}
}

View File

@ -1,587 +0,0 @@
(kicad_sch (version 20211123) (generator eeschema)
(uuid 4f8f2bae-746c-4420-82b6-a208151802e4)
(paper "A4")
(lib_symbols
(symbol "Connector_Generic:Conn_02x03_Top_Bottom" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
(property "Reference" "J" (id 0) (at 1.27 5.08 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "Conn_02x03_Top_Bottom" (id 1) (at 1.27 -5.08 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "connector" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Generic connector, double row, 02x03, top/bottom pin numbering scheme (row 1: 1...pins_per_row, row2: pins_per_row+1 ... num_pins), script generated (kicad-library-utils/schlib/autogen/connector/)" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "Connector*:*_2x??_*" (id 6) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "Conn_02x03_Top_Bottom_1_1"
(rectangle (start -1.27 -2.413) (end 0 -2.667)
(stroke (width 0.1524) (type default) (color 0 0 0 0))
(fill (type none))
)
(rectangle (start -1.27 0.127) (end 0 -0.127)
(stroke (width 0.1524) (type default) (color 0 0 0 0))
(fill (type none))
)
(rectangle (start -1.27 2.667) (end 0 2.413)
(stroke (width 0.1524) (type default) (color 0 0 0 0))
(fill (type none))
)
(rectangle (start -1.27 3.81) (end 3.81 -3.81)
(stroke (width 0.254) (type default) (color 0 0 0 0))
(fill (type background))
)
(rectangle (start 3.81 -2.413) (end 2.54 -2.667)
(stroke (width 0.1524) (type default) (color 0 0 0 0))
(fill (type none))
)
(rectangle (start 3.81 0.127) (end 2.54 -0.127)
(stroke (width 0.1524) (type default) (color 0 0 0 0))
(fill (type none))
)
(rectangle (start 3.81 2.667) (end 2.54 2.413)
(stroke (width 0.1524) (type default) (color 0 0 0 0))
(fill (type none))
)
(pin passive line (at -5.08 2.54 0) (length 3.81)
(name "Pin_1" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 0 0) (length 3.81)
(name "Pin_2" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin passive line (at -5.08 -2.54 0) (length 3.81)
(name "Pin_3" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 7.62 2.54 180) (length 3.81)
(name "Pin_4" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 7.62 0 180) (length 3.81)
(name "Pin_5" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 7.62 -2.54 180) (length 3.81)
(name "Pin_6" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
)
)
(symbol "Device:LED" (pin_numbers hide) (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
(property "Reference" "D" (id 0) (at 0 2.54 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "LED" (id 1) (at 0 -2.54 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "LED diode" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Light emitting diode" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "LED* LED_SMD:* LED_THT:*" (id 6) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "LED_0_1"
(polyline
(pts
(xy -1.27 -1.27)
(xy -1.27 1.27)
)
(stroke (width 0.254) (type default) (color 0 0 0 0))
(fill (type none))
)
(polyline
(pts
(xy -1.27 0)
(xy 1.27 0)
)
(stroke (width 0) (type default) (color 0 0 0 0))
(fill (type none))
)
(polyline
(pts
(xy 1.27 -1.27)
(xy 1.27 1.27)
(xy -1.27 0)
(xy 1.27 -1.27)
)
(stroke (width 0.254) (type default) (color 0 0 0 0))
(fill (type none))
)
(polyline
(pts
(xy -3.048 -0.762)
(xy -4.572 -2.286)
(xy -3.81 -2.286)
(xy -4.572 -2.286)
(xy -4.572 -1.524)
)
(stroke (width 0) (type default) (color 0 0 0 0))
(fill (type none))
)
(polyline
(pts
(xy -1.778 -0.762)
(xy -3.302 -2.286)
(xy -2.54 -2.286)
(xy -3.302 -2.286)
(xy -3.302 -1.524)
)
(stroke (width 0) (type default) (color 0 0 0 0))
(fill (type none))
)
)
(symbol "LED_1_1"
(pin passive line (at -3.81 0 0) (length 2.54)
(name "K" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 3.81 0 180) (length 2.54)
(name "A" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
)
)
(symbol "Device:R" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes)
(property "Reference" "R" (id 0) (at 2.032 0 90)
(effects (font (size 1.27 1.27)))
)
(property "Value" "R" (id 1) (at 0 0 90)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at -1.778 0 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "R res resistor" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Resistor" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "R_*" (id 6) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "R_0_1"
(rectangle (start -1.016 -2.54) (end 1.016 2.54)
(stroke (width 0.254) (type default) (color 0 0 0 0))
(fill (type none))
)
)
(symbol "R_1_1"
(pin passive line (at 0 3.81 270) (length 1.27)
(name "~" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 0 -3.81 90) (length 1.27)
(name "~" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
)
)
(symbol "Switch:SW_SPST" (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
(property "Reference" "SW" (id 0) (at 0 3.175 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "SW_SPST" (id 1) (at 0 -2.54 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "switch lever" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Single Pole Single Throw (SPST) switch" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "SW_SPST_0_0"
(circle (center -2.032 0) (radius 0.508)
(stroke (width 0) (type default) (color 0 0 0 0))
(fill (type none))
)
(polyline
(pts
(xy -1.524 0.254)
(xy 1.524 1.778)
)
(stroke (width 0) (type default) (color 0 0 0 0))
(fill (type none))
)
(circle (center 2.032 0) (radius 0.508)
(stroke (width 0) (type default) (color 0 0 0 0))
(fill (type none))
)
)
(symbol "SW_SPST_1_1"
(pin passive line (at -5.08 0 0) (length 2.54)
(name "A" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin passive line (at 5.08 0 180) (length 2.54)
(name "B" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
)
)
(symbol "power:GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes)
(property "Reference" "#PWR" (id 0) (at 0 -6.35 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "GND" (id 1) (at 0 -3.81 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "power-flag" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Power symbol creates a global label with name \"GND\" , ground" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "GND_0_1"
(polyline
(pts
(xy 0 0)
(xy 0 -1.27)
(xy 1.27 -1.27)
(xy 0 -2.54)
(xy -1.27 -1.27)
(xy 0 -1.27)
)
(stroke (width 0) (type default) (color 0 0 0 0))
(fill (type none))
)
)
(symbol "GND_1_1"
(pin power_in line (at 0 0 270) (length 0) hide
(name "GND" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
)
)
)
(global_label "b3" (shape input) (at 90.17 97.79 180) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify right))
(uuid 001664bf-9c00-4b3c-9843-4a3a3f4366a1)
(property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 85.3983 97.7106 0)
(effects (font (size 1.27 1.27)) (justify right) hide)
)
)
(global_label "b1" (shape input) (at 121.92 104.14 180) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify right))
(uuid 0074defb-7625-4982-994e-41abb8445a00)
(property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 117.1483 104.0606 0)
(effects (font (size 1.27 1.27)) (justify right) hide)
)
)
(global_label "GP15" (shape input) (at 58.42 83.82 0) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify left))
(uuid 0fedd5dc-ce73-4d3f-a3b0-eb8619f949f3)
(property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 65.7921 83.7406 0)
(effects (font (size 1.27 1.27)) (justify left) hide)
)
)
(global_label "LED" (shape input) (at 50.8 83.82 180) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify right))
(uuid 47824ba3-b656-4e65-bb17-aa0ee9e49cd6)
(property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 44.9398 83.8994 0)
(effects (font (size 1.27 1.27)) (justify right) hide)
)
)
(global_label "3v3" (shape input) (at 134.62 106.68 0) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify left))
(uuid 6f9a3117-4688-44ba-a3ef-78e7fcf57707)
(property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 140.4198 106.6006 0)
(effects (font (size 1.27 1.27)) (justify left) hide)
)
)
(global_label "3v3" (shape input) (at 38.1 95.25 270) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify right))
(uuid 7173c943-38d4-4114-87de-a7158e30584b)
(property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 38.0206 101.0498 90)
(effects (font (size 1.27 1.27)) (justify right) hide)
)
)
(global_label "b2" (shape input) (at 72.39 86.36 180) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify right))
(uuid 99ffef1d-a483-4ee7-aa5f-50960bb7e74f)
(property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 67.6183 86.2806 0)
(effects (font (size 1.27 1.27)) (justify right) hide)
)
)
(global_label "b2" (shape input) (at 121.92 106.68 180) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify right))
(uuid ad51b55e-060d-40e5-ad74-2bac92eddf31)
(property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 117.1483 106.6006 0)
(effects (font (size 1.27 1.27)) (justify right) hide)
)
)
(global_label "b1" (shape input) (at 57.15 97.79 180) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify right))
(uuid af72469c-ef06-48d4-9913-5f6fc269aa1a)
(property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 52.3783 97.7106 0)
(effects (font (size 1.27 1.27)) (justify right) hide)
)
)
(global_label "b3" (shape input) (at 134.62 101.6 0) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify left))
(uuid bbacf4c5-b796-48ac-817d-5f7ef749e498)
(property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 139.3917 101.6794 0)
(effects (font (size 1.27 1.27)) (justify left) hide)
)
)
(global_label "LED" (shape input) (at 38.1 87.63 90) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify left))
(uuid beeef4fe-4128-4bd1-bd91-9e13e6393e88)
(property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 38.0206 81.7698 90)
(effects (font (size 1.27 1.27)) (justify left) hide)
)
)
(global_label "GP15" (shape input) (at 134.62 104.14 0) (fields_autoplaced)
(effects (font (size 1.27 1.27)) (justify left))
(uuid c2dfdefd-d11e-40e7-9c11-5ecb95d6b3f0)
(property "Intersheet References" "${INTERSHEET_REFS}" (id 0) (at 141.9921 104.0606 0)
(effects (font (size 1.27 1.27)) (justify left) hide)
)
)
(symbol (lib_id "power:GND") (at 100.33 97.79 90) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 01572907-e353-4b24-9f03-f76c12573158)
(property "Reference" "#PWR0101" (id 0) (at 106.68 97.79 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "GND" (id 1) (at 104.14 97.7899 90)
(effects (font (size 1.27 1.27)) (justify right))
)
(property "Footprint" "" (id 2) (at 100.33 97.79 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (id 3) (at 100.33 97.79 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 3a0377e2-447a-447f-838d-cb3917bff70e))
)
(symbol (lib_id "power:GND") (at 121.92 101.6 180) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 15b6c45a-f7f6-499c-a2ab-84a6164c2c3e)
(property "Reference" "#PWR0102" (id 0) (at 121.92 95.25 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "GND" (id 1) (at 121.92 96.52 0))
(property "Footprint" "" (id 2) (at 121.92 101.6 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (id 3) (at 121.92 101.6 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid b1e6ccee-2ea3-4ddd-b0d6-59b76313bada))
)
(symbol (lib_id "Device:R") (at 38.1 91.44 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 2183ed17-47fe-4d01-ab18-f3386abe1b21)
(property "Reference" "R1" (id 0) (at 40.64 90.1699 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "R_LED" (id 1) (at 40.64 92.7099 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal" (id 2) (at 36.322 91.44 90)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 38.1 91.44 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid b657a69a-69ab-4b0a-aa71-24dac19060b3))
(pin "2" (uuid 9be82686-a362-4ca8-9100-ad9abc74d621))
)
(symbol (lib_id "Switch:SW_SPST") (at 62.23 97.79 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 36ac71ea-af8d-410c-a509-b331c46703f8)
(property "Reference" "SW1" (id 0) (at 62.23 91.44 0))
(property "Value" "SW_Select" (id 1) (at 62.23 93.98 0))
(property "Footprint" "components:membrane_button" (id 2) (at 62.23 97.79 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 62.23 97.79 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 963a8aa5-c4b4-4418-b27a-add9e3ddcbbf))
(pin "2" (uuid c2b76f39-82b1-4f26-838b-fcc0089e8734))
)
(symbol (lib_id "Switch:SW_SPST") (at 77.47 86.36 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 3f61b5cf-ca64-4cc8-ab25-f37ba0f89305)
(property "Reference" "SW2" (id 0) (at 77.47 80.01 0))
(property "Value" "SW_Home" (id 1) (at 77.47 82.55 0))
(property "Footprint" "components:membrane_button" (id 2) (at 77.47 86.36 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 77.47 86.36 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 00d110fd-1b74-45a6-be93-7322d059f173))
(pin "2" (uuid db4578e4-4bf1-49e9-bcb9-a707f132a843))
)
(symbol (lib_id "power:GND") (at 67.31 97.79 90) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 6c6a02e2-4c14-4b81-82da-f62814a1a1e8)
(property "Reference" "#PWR0103" (id 0) (at 73.66 97.79 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "GND" (id 1) (at 71.12 97.7899 90)
(effects (font (size 1.27 1.27)) (justify right))
)
(property "Footprint" "" (id 2) (at 67.31 97.79 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (id 3) (at 67.31 97.79 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid fca7f108-0069-4a6f-a94e-fda603af98d4))
)
(symbol (lib_id "power:GND") (at 82.55 86.36 90) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 91107a4b-403f-41b2-bb70-6006ca3a2689)
(property "Reference" "#PWR0104" (id 0) (at 88.9 86.36 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "GND" (id 1) (at 86.36 86.3599 90)
(effects (font (size 1.27 1.27)) (justify right))
)
(property "Footprint" "" (id 2) (at 82.55 86.36 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (id 3) (at 82.55 86.36 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid f8651f5b-4b4b-4bf4-bb85-ebf8197c5910))
)
(symbol (lib_id "Switch:SW_SPST") (at 95.25 97.79 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid b73d7091-ef5f-40b4-a95d-fc8c4b1364b5)
(property "Reference" "SW3" (id 0) (at 95.25 91.44 0))
(property "Value" "SW_Turbo" (id 1) (at 95.25 93.98 0))
(property "Footprint" "components:membrane_button" (id 2) (at 95.25 97.79 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 95.25 97.79 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid ff583ed5-4d99-4701-a422-a98b4f52c3bd))
(pin "2" (uuid 20390814-d251-4b12-b48c-e6e39cda9719))
)
(symbol (lib_id "Connector_Generic:Conn_02x03_Top_Bottom") (at 127 104.14 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid bd9fee7e-d5ce-4572-93e3-b2500ea109d3)
(property "Reference" "J1" (id 0) (at 128.27 95.25 0))
(property "Value" "Conn_02x03_Top_Bottom" (id 1) (at 128.27 97.79 0))
(property "Footprint" "Connector_PinHeader_1.00mm:PinHeader_1x06_P1.00mm_Horizontal" (id 2) (at 127 104.14 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 127 104.14 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid b39e2f90-2367-4ec8-a2d9-45357aa3c8bf))
(pin "2" (uuid 50e7a49d-33e4-4aa7-89d0-9f78061bf06b))
(pin "3" (uuid 8e06abcf-cfbe-4f96-88e9-a2c1c6c90373))
(pin "4" (uuid 7c4b0062-9df9-498c-a5ac-173aa0ff4aff))
(pin "5" (uuid 6c99ccdd-6149-45c6-b55a-7eeeac07e8b4))
(pin "6" (uuid dd35d5ab-6715-4005-b3b0-e6fd8f9549fe))
)
(symbol (lib_id "Device:LED") (at 54.61 83.82 180) (unit 1)
(in_bom yes) (on_board yes)
(uuid f28a6601-27bc-47be-ada0-793c3b6f793c)
(property "Reference" "LED_TURBO1" (id 0) (at 56.1975 90.17 0))
(property "Value" "LED" (id 1) (at 56.1975 87.63 0))
(property "Footprint" "LED_THT:LED_D5.0mm" (id 2) (at 54.61 83.82 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 54.61 83.82 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid c7400c35-a429-403b-8d0b-d2ac983bb418))
(pin "2" (uuid 622e6e18-9b2c-49a0-bb89-54c93f7e6127))
)
(sheet_instances
(path "/" (page "1"))
)
(symbol_instances
(path "/01572907-e353-4b24-9f03-f76c12573158"
(reference "#PWR0101") (unit 1) (value "GND") (footprint "")
)
(path "/15b6c45a-f7f6-499c-a2ab-84a6164c2c3e"
(reference "#PWR0102") (unit 1) (value "GND") (footprint "")
)
(path "/6c6a02e2-4c14-4b81-82da-f62814a1a1e8"
(reference "#PWR0103") (unit 1) (value "GND") (footprint "")
)
(path "/91107a4b-403f-41b2-bb70-6006ca3a2689"
(reference "#PWR0104") (unit 1) (value "GND") (footprint "")
)
(path "/bd9fee7e-d5ce-4572-93e3-b2500ea109d3"
(reference "J1") (unit 1) (value "Conn_02x03_Top_Bottom") (footprint "Connector_PinHeader_1.00mm:PinHeader_1x06_P1.00mm_Horizontal")
)
(path "/f28a6601-27bc-47be-ada0-793c3b6f793c"
(reference "LED_TURBO1") (unit 1) (value "LED") (footprint "LED_THT:LED_D5.0mm")
)
(path "/2183ed17-47fe-4d01-ab18-f3386abe1b21"
(reference "R1") (unit 1) (value "R_LED") (footprint "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal")
)
(path "/36ac71ea-af8d-410c-a509-b331c46703f8"
(reference "SW1") (unit 1) (value "SW_Select") (footprint "components:membrane_button")
)
(path "/3f61b5cf-ca64-4cc8-ab25-f37ba0f89305"
(reference "SW2") (unit 1) (value "SW_Home") (footprint "components:membrane_button")
)
(path "/b73d7091-ef5f-40b4-a95d-fc8c4b1364b5"
(reference "SW3") (unit 1) (value "SW_Turbo") (footprint "components:membrane_button")
)
)
)

Binary file not shown.

View File

@ -1,13 +0,0 @@
module git.jade.moe/oct2pus/arcade/f300-build
go 1.19
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
)

View File

@ -1,83 +0,0 @@
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
github.com/ajstarks/svgo v0.0.0-20200725142600-7a3c8b57fecb h1:EVl3FJLQCzSbgBezKo/1A4ADnJ4mtJZ0RvnNzDJ44nY=
github.com/ajstarks/svgo v0.0.0-20200725142600-7a3c8b57fecb/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/deadsy/sdfx v0.0.0-20220508165057-718104295925 h1:CvjyreOQIm7VeHt2U0mq6iP8J0ZcjiXoxpgzLcYNJwo=
github.com/deadsy/sdfx v0.0.0-20220508165057-718104295925/go.mod h1:bjsFZRp7zdb9m29hIDXPN/V5H/AkjJ1AIr5iBuj7FcI=
github.com/dhconnelly/rtreego v1.1.0/go.mod h1:SDozu0Fjy17XH1svEXJgdYq8Tah6Zjfa/4Q33Z80+KM=
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g=
github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks=
github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY=
github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY=
github.com/go-gl/gl v0.0.0-20180407155706-68e253793080/go.mod h1:482civXOzJJCPzJ4ZOX/pwvXBWSnzD4OKMdH4ClKGbk=
github.com/go-gl/glfw v0.0.0-20180426074136-46a8d530c326/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
github.com/hschendel/stl v1.0.4/go.mod h1:XQFFLKrq9YTaBpmouDui4JSaxMyAYkpD7elGSSj/y3M=
github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
github.com/llgcode/draw2d v0.0.0-20200930101115-bfaf5d914d1e h1:YRRazju3DMGuZTSWEj0nE2SCRcK3DW/qdHQ4UQx7sgs=
github.com/llgcode/draw2d v0.0.0-20200930101115-bfaf5d914d1e/go.mod h1:mVa0dA29Db2S4LVqDYLlsePDzRJLDfdhVZiI15uY0FA=
github.com/llgcode/ps v0.0.0-20150911083025-f1443b32eedb/go.mod h1:1l8ky+Ew27CMX29uG+a2hNOKpeNYEQjjtiALiBlFQbY=
github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY=
github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/yofu/dxf v0.0.0-20190710012328-5a6d1e83f16c h1:qgsxLgTXCVH8Dxar36HI5af2ZfinVz5vF8erPpyzM+A=
github.com/yofu/dxf v0.0.0-20190710012328-5a6d1e83f16c/go.mod h1:gnT4GQzgKW8+TLI0xheUgdmNV4dsAN0WJUVnztRZkfI=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE=
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20210216034530-4410531fe030 h1:lP9pYkih3DUSC641giIXa2XqfTIbbbRr0w2EOTA7wHA=
golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0=
gonum.org/v1/gonum v0.9.3 h1:DnoIG+QAMaF5NvxnGe/oKsgKcAc6PcUyl8q0VetfQ8s=
gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0=
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=

View File

@ -1,251 +0,0 @@
package main
import (
"log"
"github.com/deadsy/sdfx/render"
"github.com/deadsy/sdfx/render/dc"
"github.com/deadsy/sdfx/sdf"
v2 "github.com/deadsy/sdfx/vec/v2"
v3 "github.com/deadsy/sdfx/vec/v3"
)
func main() {
render.ToSTL(switchBoardMount(), 300, "switchBoardMount.stl", dc.NewDualContouringDefault())
render.ToSTL(usbCMount(), 300, "usbCMount.stl", dc.NewDualContouringDefault())
render.ToSTL(usbCCover(), 300, "usbCCover.stl", dc.NewDualContouringDefault())
render.ToSTL(screenCover(), 300, "screenCover.stl", dc.NewDualContouringDefault())
render.ToSTL(picoAdapter(), 300, "picoAdapter.stl", dc.NewDualContouringDefault())
}
func picoAdapter() sdf.SDF3 {
// body
base2D := sdf.Box2D(v2.Vec{X: 78.9, Y: 39.7}, 0)
hole2D, _ := sdf.Circle2D(4.9 / 2)
holes2D := make([]sdf.SDF2, 4)
holesXOffset, holesYOffset := 4.7, 3.8
holes2D[0] = sdf.Transform2D(hole2D, sdf.Translate2d(v2.Vec{X: base2D.BoundingBox().Max.X - holesXOffset, Y: base2D.BoundingBox().Max.Y - holesYOffset}))
holes2D[1] = sdf.Transform2D(hole2D, sdf.Translate2d(v2.Vec{X: -base2D.BoundingBox().Max.X - (-holesXOffset), Y: base2D.BoundingBox().Max.Y - holesYOffset}))
holes2D[2] = sdf.Transform2D(hole2D, sdf.Translate2d(v2.Vec{X: -base2D.BoundingBox().Max.X - (-holesXOffset), Y: -base2D.BoundingBox().Max.Y - (-holesYOffset)}))
holes2D[3] = sdf.Transform2D(hole2D, sdf.Translate2d(v2.Vec{X: base2D.BoundingBox().Max.X - holesXOffset, Y: -base2D.BoundingBox().Max.Y - (-holesYOffset)}))
screwHoles2D := sdf.Union2D(holes2D...)
base2D = sdf.Difference2D(base2D, screwHoles2D)
// pico pegs
m2Diameter := 2.0
innerCircle, _ := sdf.Circle2D(m2Diameter / 2)
outerCircle, _ := sdf.Circle2D(m2Diameter * 2 / 2)
peg2D := sdf.Difference2D(outerCircle, innerCircle)
pegs2D := make([]sdf.SDF2, 6)
pegsXDistance, pegsYDistance := 47.0, 11.40
pegs2D[0] = sdf.Transform2D(peg2D, sdf.Translate2d(v2.Vec{X: pegsXDistance / 2, Y: pegsYDistance / 2}))
pegs2D[1] = sdf.Transform2D(peg2D, sdf.Translate2d(v2.Vec{X: -pegsXDistance / 2, Y: pegsYDistance / 2}))
pegs2D[2] = sdf.Transform2D(peg2D, sdf.Translate2d(v2.Vec{X: -pegsXDistance / 2, Y: -pegsYDistance / 2}))
pegs2D[3] = sdf.Transform2D(peg2D, sdf.Translate2d(v2.Vec{X: pegsXDistance / 2, Y: -pegsYDistance / 2}))
mount2D := sdf.Union2D(pegs2D...)
// extrude
baseZ, pegsZ := 1.6, 3.0
base := sdf.Extrude3D(base2D, baseZ)
mount := sdf.Extrude3D(mount2D, pegsZ)
mount = sdf.Transform3D(mount, sdf.Translate3d(v3.Vec{X: 0, Y: 0, Z: baseZ/2 + pegsZ/2}))
return sdf.Union3D(base, mount)
}
func screenCover() sdf.SDF3 {
// cover
z := 2.2
holeX, holeY := 32.4, 19.2 // -0.2 for clearance
screenX, screenY := 23.744, 12.864 // screen V/A
holderOffsetX, holderOffsetY := 1.75, 2.0
hole := sdf.Box2D(v2.Vec{X: holeX, Y: holeY}, 0)
screen := sdf.Box2D(v2.Vec{X: screenX, Y: screenY}, 0)
body2D := sdf.Difference2D(hole, screen)
body := sdf.Extrude3D(body2D, z)
lrEdge2D := sdf.Box2D(v2.Vec{X: (holeX - screenX) / 1.5, Y: holeY - 1.4}, 1)
lrEdge := sdf.Extrude3D(lrEdge2D, z/2)
lrEdges := make([]sdf.SDF3, 2)
lrEdges[0] = sdf.Transform3D(lrEdge, sdf.Translate3d(v3.Vec{X: -holeX/2 - (-(holeX - screenX) / 6), Y: 1.4 / 2, Z: z / 2}))
lrEdges[1] = sdf.Transform3D(lrEdge, sdf.Translate3d(v3.Vec{X: holeX/2 - ((holeX - screenX) / 6), Y: 1.4 / 2, Z: z / 2}))
tbEdge2D := sdf.Box2D(v2.Vec{X: holeX, Y: (holeY - screenY) / 2}, 0)
tbEdge := sdf.Extrude3D(tbEdge2D, z/2)
tbEdges := make([]sdf.SDF3, 2)
tbEdges[0] = sdf.Transform3D(tbEdge, sdf.Translate3d(v3.Vec{X: 0, Y: -holeY/2 - (-(holeY - screenY) / 4), Z: z / 2}))
tbEdges[1] = sdf.Transform3D(tbEdge, sdf.Translate3d(v3.Vec{X: 0, Y: holeY/2 - ((holeY - screenY) / 4), Z: z / 2}))
body = sdf.Union3D(body, lrEdges[0], lrEdges[1], tbEdges[0], tbEdges[1])
body = sdf.Transform3D(body, sdf.RotateX(sdf.DtoR(180)))
// screen mounting
m2HoleDiameter := 2.0
PCBHoleX, PCBHoleY := 23.5, 23.8
m2Hole, _ := sdf.Circle2D(m2HoleDiameter / 2)
m2Holes := sdf.Union2D(
sdf.Transform2D(m2Hole, sdf.Translate2d(v2.Vec{X: PCBHoleX / 2, Y: PCBHoleY / 2})),
sdf.Transform2D(m2Hole, sdf.Translate2d(v2.Vec{X: PCBHoleX / 2, Y: -PCBHoleY / 2})),
sdf.Transform2D(m2Hole, sdf.Translate2d(v2.Vec{X: -PCBHoleX / 2, Y: -PCBHoleY / 2})),
sdf.Transform2D(m2Hole, sdf.Translate2d(v2.Vec{X: -PCBHoleX / 2, Y: PCBHoleY / 2})),
)
// screen mount pegs
m2PegFrame2D, _ := sdf.Circle2D(m2HoleDiameter)
m2PegFrames2D := sdf.Union2D(
sdf.Transform2D(m2PegFrame2D, sdf.Translate2d(v2.Vec{X: PCBHoleX / 2, Y: -PCBHoleY / 2})),
sdf.Transform2D(m2PegFrame2D, sdf.Translate2d(v2.Vec{X: -PCBHoleX / 2, Y: -PCBHoleY / 2})),
)
m2Pegs2D := sdf.Difference2D(m2PegFrames2D, m2Holes)
m2Pegs := sdf.Extrude3D(m2Pegs2D, z)
m2Pegs = sdf.Transform3D(m2Pegs, sdf.Translate3d(v3.Vec{X: 0, Y: 1.5, Z: z}))
body = sdf.Union3D(body, m2Pegs)
// peg attachers
pegHolder, err := sdf.Box3D(v3.Vec{X: 2, Y: holeY / 2, Z: z}, 0)
if err != nil {
log.Printf("Model error.\n")
}
pegHolders := sdf.Union3D(
sdf.Transform3D(pegHolder, sdf.Translate3d(v3.Vec{X: (holeX / 2) - holderOffsetX, Y: -holeY/2 + holderOffsetY, Z: z})),
sdf.Transform3D(pegHolder, sdf.Translate3d(v3.Vec{X: (-holeX / 2) - (-holderOffsetX), Y: -holeY/2 + holderOffsetY, Z: z})),
)
body = sdf.Union3D(body, pegHolders)
return body
}
func usbCCover() sdf.SDF3 {
usbcWidth := 9.15
usbcHeight := 3.42
outHoleX, outHoleY := 14.6, 7.2
catchX, catchY := 17.0, 9.2
z := 3.6
usbCcutout2D := sdf.Box2D(v2.Vec{X: usbcWidth, Y: usbcHeight}, 0.25)
usbAplug2D := sdf.Box2D(v2.Vec{X: outHoleX, Y: outHoleY}, 1)
usbAplug2D = sdf.Difference2D(usbAplug2D, usbCcutout2D)
catch2D := sdf.Box2D(v2.Vec{X: catchX, Y: catchY}, 1)
catch2D = sdf.Difference2D(catch2D, usbCcutout2D)
usbAplug := sdf.Extrude3D(usbAplug2D, z)
catch := sdf.Extrude3D(catch2D, z/6)
catch = sdf.Transform3D(catch, sdf.Translate3d(v3.Vec{X: 0, Y: 0, Z: -z / 2}))
return sdf.Union3D(usbAplug, catch)
}
func usbCMount() sdf.SDF3 {
pcbholeSpacing := 0.65 * sdf.MillimetresPerInch
//pcbholeDiameter := 0.13 * sdf.MillimetresPerInch
standoffSpacing := 21.4
standoffToWallFull, standoffToWallHole := 18.0, 13.0
m25ScrewHoleDiameter := 2.5
baseZ, pegsZ := 3.4, 2.6
base2D := sdf.Box2D(v2.Vec{X: standoffToWallFull, Y: standoffSpacing + 6.0}, 0)
standOffHole2D, _ := sdf.Circle2D(m25ScrewHoleDiameter / 2)
standOffHoles2D := sdf.Union2D(
sdf.Transform2D(standOffHole2D, sdf.Translate2d(v2.Vec{X: (standoffToWallFull-standoffToWallHole)/2 - (m25ScrewHoleDiameter / 2), Y: standoffSpacing / 2})),
sdf.Transform2D(standOffHole2D, sdf.Translate2d(v2.Vec{X: (standoffToWallFull-standoffToWallHole)/2 - (m25ScrewHoleDiameter / 2), Y: -standoffSpacing / 2})),
)
base2D = sdf.Difference2D(base2D, standOffHoles2D)
peg2D, _ := sdf.Circle2D(m25ScrewHoleDiameter)
pegHoles2D := sdf.Union2D(
sdf.Transform2D(standOffHole2D, sdf.Translate2d(v2.Vec{X: 0, Y: pcbholeSpacing / 2})),
sdf.Transform2D(standOffHole2D, sdf.Translate2d(v2.Vec{X: 0, Y: -pcbholeSpacing / 2})),
)
pegs2D := sdf.Union2D(
sdf.Transform2D(peg2D, sdf.Translate2d(v2.Vec{X: 0, Y: pcbholeSpacing / 2})),
sdf.Transform2D(peg2D, sdf.Translate2d(v2.Vec{X: 0, Y: -pcbholeSpacing / 2})),
)
pegs2D = sdf.Difference2D(pegs2D, pegHoles2D)
pegs := sdf.Extrude3D(pegs2D, baseZ)
base := sdf.Extrude3D(base2D, pegsZ)
pegs = sdf.Transform3D(pegs, sdf.Translate3d(v3.Vec{X: -standoffToWallFull/2 - (-m25ScrewHoleDiameter / 4), Y: 0, Z: baseZ/2 + pegsZ/2}))
return sdf.Union3D(base, pegs)
}
func switchBoardMount() sdf.SDF3 {
bodyX, bodyY := 57.0, 26.0
holeDiameter := 2.7
holeXSpacing, holeYSpacing := 35.3, 18.7
chocHole := 13.8
z := 3.0
LEDMountDiameter, LEDMountWallThickness := 5.9, 1.2
LEDLegCutoutX, LEDLegCutoutY := 3.1, 1.0
// base body for part
body2D := sdf.Box2D(v2.Vec{X: bodyX, Y: bodyY}, 0)
mount, _ := sdf.Circle2D(holeDiameter / 2)
mounts := sdf.Union2D(
sdf.Transform2D(mount, sdf.Translate2d(v2.Vec{X: -holeXSpacing/2 + bodyX/8, Y: -holeYSpacing / 2})),
sdf.Transform2D(mount, sdf.Translate2d(v2.Vec{X: holeXSpacing/2 + bodyX/8, Y: holeYSpacing / 2})),
)
choc := sdf.Box2D(v2.Vec{X: chocHole, Y: chocHole}, 0)
chocs := sdf.Union2D(
sdf.Transform2D(choc, sdf.Translate2d(v2.Vec{X: 15, Y: 0})),
sdf.Transform2D(choc, sdf.Translate2d(v2.Vec{X: -15, Y: 0})),
choc,
)
chocs = sdf.Transform2D(chocs, sdf.Translate2d(v2.Vec{X: -chocHole / 4, Y: 0}))
LedThroughHole2D := sdf.Box2D(v2.Vec{X: LEDLegCutoutX, Y: LEDLegCutoutY}, 0)
LedThroughHole2D = sdf.Transform2D(LedThroughHole2D, sdf.Translate2d(v2.Vec{X: bodyX / 2.55, Y: 0}))
body2D = sdf.Difference2D(body2D, mounts)
body2D = sdf.Difference2D(body2D, chocs)
body2D = sdf.Difference2D(body2D, LedThroughHole2D)
// Pegs to provide spacing for choc switches
peg2D, _ := sdf.Circle2D(holeDiameter / 1.5)
pegs2D := sdf.Union2D(
sdf.Transform2D(peg2D, sdf.Translate2d(v2.Vec{X: -holeXSpacing/2 + bodyX/8, Y: -holeYSpacing / 2})),
sdf.Transform2D(peg2D, sdf.Translate2d(v2.Vec{X: holeXSpacing/2 + bodyX/8, Y: holeYSpacing / 2})),
)
pegs2D = sdf.Difference2D(pegs2D, mounts)
pegs := sdf.Extrude3D(pegs2D, z/2)
body := sdf.Extrude3D(body2D, z)
pegs = sdf.Transform3D(pegs, sdf.Translate3d(v3.Vec{X: 0, Y: 0, Z: z - z/4}))
body = sdf.Union3D(body, pegs)
// Mounting for the LED
LEDInner, _ := sdf.Circle2D(LEDMountDiameter / 2)
LEDOutter, _ := sdf.Circle2D((LEDMountDiameter + LEDMountWallThickness) / 2)
LED2D := sdf.Difference2D(LEDOutter, LEDInner)
LED := sdf.Extrude3D(LED2D, z/2)
LED = sdf.Transform3D(LED, sdf.Translate3d(v3.Vec{X: bodyX / 2.55, Y: 0, Z: z - z/4}))
body = sdf.Union3D(body, LED)
return body
}

View File

@ -1,17 +0,0 @@
module git.jade.moe/oct2pus/arcade/plugs
go 1.19
require github.com/deadsy/sdfx v0.0.0-20221003152700-eb9f43e3cb31
require (
github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b // indirect
github.com/dhconnelly/rtreego v1.1.0 // indirect
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
github.com/hpinc/go3mf v0.24.1 // indirect
github.com/hschendel/stl v1.0.4 // indirect
github.com/llgcode/draw2d v0.0.0-20210904075650-80aa0a2a901d // indirect
github.com/qmuntal/opc v0.7.10 // indirect
github.com/yofu/dxf v0.0.0-20190710012328-5a6d1e83f16c // indirect
golang.org/x/image v0.0.0-20220902085622-e7cb96979f69 // indirect
)

View File

@ -1,143 +0,0 @@
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8=
git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9/go.mod h1:JynElWSGnm/4RlzPXRlREEwqTHAN3T56Bv2ITsFT3gY=
github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19/go.mod h1:T13YZdzov6OU0A1+RfKZiZN9ca6VeKdBdyDV+BY97Tk=
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b h1:slYM766cy2nI3BwyRiyQj/Ud48djTMtMebDqepE95rw=
github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b/go.mod h1:1KcenG0jGWcpt8ov532z81sp/kMMUG485J2InIOyADM=
github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/deadsy/sdfx v0.0.0-20221003152700-eb9f43e3cb31 h1:RlxjuxpH65ldEz8TS4iV+f6rhk/8cOkzewGFwkTyZgU=
github.com/deadsy/sdfx v0.0.0-20221003152700-eb9f43e3cb31/go.mod h1:jltBzutSTqZUOfuSyb5xzW0jtHmpaYAprrtyJRSeW+8=
github.com/dhconnelly/rtreego v1.1.0 h1:ejMaqN03N1s6Bdg6peGkNgBnYYSBHzcK8yhSPCB+rHE=
github.com/dhconnelly/rtreego v1.1.0/go.mod h1:SDozu0Fjy17XH1svEXJgdYq8Tah6Zjfa/4Q33Z80+KM=
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g=
github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks=
github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY=
github.com/go-fonts/liberation v0.2.0/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY=
github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY=
github.com/go-gl/gl v0.0.0-20180407155706-68e253793080/go.mod h1:482civXOzJJCPzJ4ZOX/pwvXBWSnzD4OKMdH4ClKGbk=
github.com/go-gl/glfw v0.0.0-20180426074136-46a8d530c326/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U=
github.com/go-latex/latex v0.0.0-20210823091927-c0d11ff05a81/go.mod h1:SX0U8uGpxhq9o2S/CELCSUxEWWAuoCUcVCQWv7G2OCk=
github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M=
github.com/go-pdf/fpdf v0.6.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M=
github.com/go-test/deep v1.0.7 h1:/VSMRlnY/JSyqxQUzQLKVMAskpY/NZKFA5j2P+0pP2M=
github.com/go-test/deep v1.0.7/go.mod h1:QV8Hv/iy04NyLBxAdO9njL0iVPN1S4d/A3NVv1V36o8=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
github.com/hpinc/go3mf v0.24.1 h1:DPZ0bSlvMuqaCcmzjt5DxryV42zTZ+S+Rfv+dcBE/lA=
github.com/hpinc/go3mf v0.24.1/go.mod h1:QtHqY8cmfyaSuT4J+fi6UTIQPzqxBdvlSwWzcLlmeQI=
github.com/hschendel/stl v1.0.4 h1:DXT5rkiXMUkbKw4Ndi1OYZ/a5SLR35TzxGj46p5Qyf8=
github.com/hschendel/stl v1.0.4/go.mod h1:XQFFLKrq9YTaBpmouDui4JSaxMyAYkpD7elGSSj/y3M=
github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/llgcode/draw2d v0.0.0-20210904075650-80aa0a2a901d h1:4/ycg+VrwjGurTqiHv2xM/h6Qm81qSra+KbfT4FH2FA=
github.com/llgcode/draw2d v0.0.0-20210904075650-80aa0a2a901d/go.mod h1:mVa0dA29Db2S4LVqDYLlsePDzRJLDfdhVZiI15uY0FA=
github.com/llgcode/ps v0.0.0-20150911083025-f1443b32eedb h1:61ndUreYSlWFeCY44JxDDkngVoI7/1MVhEl98Nm0KOk=
github.com/llgcode/ps v0.0.0-20150911083025-f1443b32eedb/go.mod h1:1l8ky+Ew27CMX29uG+a2hNOKpeNYEQjjtiALiBlFQbY=
github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY=
github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI=
github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/qmuntal/opc v0.7.10 h1:zbUhx7/qDcgJCQahz2SHV9HHLBKgtaaFWNxEMmXPKAs=
github.com/qmuntal/opc v0.7.10/go.mod h1:jYcgCT/xuTl5oMYeS/nSrfRe9gNrrsAPPeOFE2oRVaQ=
github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w=
github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk=
github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/yofu/dxf v0.0.0-20190710012328-5a6d1e83f16c h1:qgsxLgTXCVH8Dxar36HI5af2ZfinVz5vF8erPpyzM+A=
github.com/yofu/dxf v0.0.0-20190710012328-5a6d1e83f16c/go.mod h1:gnT4GQzgKW8+TLI0xheUgdmNV4dsAN0WJUVnztRZkfI=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE=
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20210607152325-775e3b0c77b9/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
golang.org/x/image v0.0.0-20220302094943-723b81ca9867/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
golang.org/x/image v0.0.0-20220902085622-e7cb96979f69 h1:Lj6HJGCSn5AjxRAH2+r35Mir4icalbqku+CLUtjnvXY=
golang.org/x/image v0.0.0-20220902085622-e7cb96979f69/go.mod h1:doUCurBvlfPMKfmIpRIywoHmhN3VyhnoFDbvIEWF4hY=
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0=
gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0=
gonum.org/v1/gonum v0.12.0/go.mod h1:73TDxJfAAHeA8Mk9mf8NlIppyhQNo5GLTcYeqgo2lvY=
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY=
gonum.org/v1/plot v0.10.1/go.mod h1:VZW5OlhkL1mysU9vaqNHnsy86inf6Ot+jB3r+BczCEo=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
honnef.co/go/tools v0.1.3/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las=
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=

View File

@ -1,35 +0,0 @@
package main
import (
"github.com/deadsy/sdfx/obj"
"github.com/deadsy/sdfx/render"
"github.com/deadsy/sdfx/sdf"
v3 "github.com/deadsy/sdfx/vec/v3"
)
func main() {
plug24mm := plug(26, 23, 25)
render.ToSTL(plug24mm, "24mm_plug.stl", render.NewMarchingCubesUniform(300))
render.ToSTL(nut(32, 6, plug24mm), "24mm_nut.stl", render.NewMarchingCubesUniform(300))
}
func plug(capDimeter, plugDiameter, length float64) sdf.SDF3 {
thread, _ := sdf.ISOThread(plugDiameter/2, 2, true)
plug, _ := sdf.Screw3D(thread, length, 0, 2, 1)
cRad1, _ := sdf.Circle2D((capDimeter - 4) / 2)
cRad2, _ := sdf.Circle2D(capDimeter / 2)
cap, _ := sdf.Loft3D(cRad1, cRad2, 3.75, 1)
cap = sdf.Transform3D(cap, sdf.RotateX(sdf.DtoR(180)))
cap = sdf.Transform3D(cap, sdf.Translate3d(v3.Vec{X: 0, Y: 0, Z: -length/2 - (3.75)/2}))
return sdf.Union3D(cap, plug)
}
func nut(headDiameter, height float64, plug sdf.SDF3) sdf.SDF3 {
nut, _ := obj.HexHead3D(headDiameter/2, height, "tb")
nut = sdf.Difference3D(nut, plug)
nut = sdf.Transform3D(nut, sdf.Scale3d(v3.Vec{X: 1.05, Y: 1.05, Z: 1}))
return nut
}

Binary file not shown.

View File

@ -1,13 +0,0 @@
module git.jade.moe/oct2pus/arcade/sanwa-caps
go 1.19
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
)

View File

@ -1,83 +0,0 @@
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
github.com/ajstarks/svgo v0.0.0-20200725142600-7a3c8b57fecb h1:EVl3FJLQCzSbgBezKo/1A4ADnJ4mtJZ0RvnNzDJ44nY=
github.com/ajstarks/svgo v0.0.0-20200725142600-7a3c8b57fecb/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/deadsy/sdfx v0.0.0-20220508165057-718104295925 h1:CvjyreOQIm7VeHt2U0mq6iP8J0ZcjiXoxpgzLcYNJwo=
github.com/deadsy/sdfx v0.0.0-20220508165057-718104295925/go.mod h1:bjsFZRp7zdb9m29hIDXPN/V5H/AkjJ1AIr5iBuj7FcI=
github.com/dhconnelly/rtreego v1.1.0/go.mod h1:SDozu0Fjy17XH1svEXJgdYq8Tah6Zjfa/4Q33Z80+KM=
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
github.com/fogleman/gg v1.3.0/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k=
github.com/go-fonts/dejavu v0.1.0/go.mod h1:4Wt4I4OU2Nq9asgDCteaAaWZOV24E+0/Pwo0gppep4g=
github.com/go-fonts/latin-modern v0.2.0/go.mod h1:rQVLdDMK+mK1xscDwsqM5J8U2jrRa3T0ecnM9pNujks=
github.com/go-fonts/liberation v0.1.1/go.mod h1:K6qoJYypsmfVjWg8KOVDQhLc8UDgIK2HYqyqAO9z7GY=
github.com/go-fonts/stix v0.1.0/go.mod h1:w/c1f0ldAUlJmLBvlbkvVXLAD+tAMqobIIQpmnUIzUY=
github.com/go-gl/gl v0.0.0-20180407155706-68e253793080/go.mod h1:482civXOzJJCPzJ4ZOX/pwvXBWSnzD4OKMdH4ClKGbk=
github.com/go-gl/glfw v0.0.0-20180426074136-46a8d530c326/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-latex/latex v0.0.0-20210118124228-b3d85cf34e07/go.mod h1:CO1AlKB2CSIqUrmQPqA0gdRIlnLEY0gK5JGjh37zN5U=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 h1:DACJavvAHhabrF08vX0COfcOBJRhZ8lUbR+ZWIs0Y5g=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
github.com/hschendel/stl v1.0.4/go.mod h1:XQFFLKrq9YTaBpmouDui4JSaxMyAYkpD7elGSSj/y3M=
github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes=
github.com/llgcode/draw2d v0.0.0-20200930101115-bfaf5d914d1e h1:YRRazju3DMGuZTSWEj0nE2SCRcK3DW/qdHQ4UQx7sgs=
github.com/llgcode/draw2d v0.0.0-20200930101115-bfaf5d914d1e/go.mod h1:mVa0dA29Db2S4LVqDYLlsePDzRJLDfdhVZiI15uY0FA=
github.com/llgcode/ps v0.0.0-20150911083025-f1443b32eedb/go.mod h1:1l8ky+Ew27CMX29uG+a2hNOKpeNYEQjjtiALiBlFQbY=
github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY=
github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/yofu/dxf v0.0.0-20190710012328-5a6d1e83f16c h1:qgsxLgTXCVH8Dxar36HI5af2ZfinVz5vF8erPpyzM+A=
github.com/yofu/dxf v0.0.0-20190710012328-5a6d1e83f16c/go.mod h1:gnT4GQzgKW8+TLI0xheUgdmNV4dsAN0WJUVnztRZkfI=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20191002040644-a1355ae1e2c3/go.mod h1:NOZ3BPKG0ec/BKJQgnvsSFpcKLM5xXVWnvZS97DWHgE=
golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20200119044424-58c23975cae1/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20200430140353-33d19683fad8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20201208152932-35266b937fa6/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20210216034530-4410531fe030 h1:lP9pYkih3DUSC641giIXa2XqfTIbbbRr0w2EOTA7wHA=
golang.org/x/image v0.0.0-20210216034530-4410531fe030/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210304124612-50617c2ba197/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190927191325-030b2cf1153e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo=
gonum.org/v1/gonum v0.8.2/go.mod h1:oe/vMfY3deqTw+1EZJhuvEW2iwGF1bW9wwu7XCu0+v0=
gonum.org/v1/gonum v0.9.3 h1:DnoIG+QAMaF5NvxnGe/oKsgKcAc6PcUyl8q0VetfQ8s=
gonum.org/v1/gonum v0.9.3/go.mod h1:TZumC3NeyVQskjXqmyWt4S3bINhy7B4eYwW69EbyX+0=
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc=
gonum.org/v1/plot v0.9.0/go.mod h1:3Pcqqmp6RHvJI72kgb8fThyUnav364FOsdDo2aGW5lY=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=

View File

@ -1,65 +0,0 @@
package main
import (
"log"
"github.com/deadsy/sdfx/render"
"github.com/deadsy/sdfx/render/dc"
"github.com/deadsy/sdfx/sdf"
v2 "github.com/deadsy/sdfx/vec/v2"
v3 "github.com/deadsy/sdfx/vec/v3"
)
func main() {
round := 1.0
topDiameter := 28.0 - round*2
innerDiameter := 26.5 - round*2
stemInnerX, stemInnerY := 6.05, 1.6 //0.25 tolerance X, 0.1 tolerance Y
stemOuterDiameter := 7.6
z := 4.2
// Top
top2D, err := sdf.Circle2D(topDiameter / 2)
if err != nil {
log.Fatalf("Error: %v\n", err)
}
// Inside
inner2D, err := sdf.Circle2D(innerDiameter / 2)
if err != nil {
log.Fatalf("Error: %v\n", err)
}
inner2D = sdf.Difference2D(top2D, inner2D)
// Stem
stem2D, err := sdf.Circle2D(stemOuterDiameter / 2)
if err != nil {
log.Fatalf("Error: %v\n", err)
}
stemInner2D := sdf.Box2D(v2.Vec{X: stemInnerX, Y: stemInnerY}, 0)
stem2D = sdf.Difference2D(stem2D, stemInner2D)
// Assembly
//buttCap, err := sdf.ExtrudeRounded3D(top2D, z/4, 0.5)
buttCap, err := sdf.Loft3D(top2D, inner2D, z, round)
if err != nil {
log.Fatalf("Error: %v\n", err)
}
//body := sdf.Extrude3D(inner2D, z)
stem := sdf.Extrude3D(stem2D, z)
buttCap = sdf.Union3D(
buttCap,
// sdf.Transform3D(body, sdf.Translate3d(v3.Vec{X: 0, Y: 0, Z: z/8 + z/2})),
sdf.Transform3D(stem, sdf.Translate3d(v3.Vec{X: 0, Y: 0, Z: z / 2})),
)
render.ToSTL(buttCap, 200, "cap.stl", dc.NewDualContouringDefault())
}

Binary file not shown.

Binary file not shown.