Package to implement your own slicer using existing possibilities: cutting, crossing, slicing by vector, mesh simplification, line simplification etc.
For example you can slice by profile (for 5axes 3d printer) - find center of each layer, make line from points, simplify line - and slice by this line. See slicers/slice_by_profile.go. For sure your 3d-printer have to support bed rotations.
Feel free to open issues or implement your slicing algorithms.
Save true/false to file for each triangle in stl according to logic (now it is big bias from Z axe)
Cut stl in two stls by required plane.
Simplifies stl to required count of triangles.
Spycer - https://github.com/l1va/spycer
Do not forget to place data directory near your binary.
cd github.com/l1va/goosli
go install cmd/goosli/goosli.go
go install cmd/goosli_colorizer/goosli_colorizer.go
go install cmd/goosli_cutter/goosli_cutter.go
go install cmd/goosli_simplifier/goosli_simplifier.go
cd github.com/l1va/goosli
GOOS=windows GOARCH=amd64 go build -o goosli cmd/goosli/goosli.go
GOOS=windows GOARCH=amd64 go build -o goosli_analyzer cmd/goosli_analyzer/goosli_analyzer.go
GOOS=windows GOARCH=amd64 go build -o goosli_colorizer cmd/goosli_colorizer/goosli_colorizer.go
GOOS=windows GOARCH=amd64 go build -o goosli_cutter cmd/goosli_cutter/goosli_cutter.go
GOOS=windows GOARCH=amd64 go build -o goosli_simplifier cmd/goosli_simplifier/goosli_simplifier.go
Rotations are always about global axes, if your rotation axis does not match with global axis - you can use PlaneCenter parameter and shift your plane to match.
A lot of ideas and code was taken from various fogleman repos. Thank you!