Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/edanko/dxf
golang dxf library
https://github.com/edanko/dxf
dxf go golang
Last synced: about 2 months ago
JSON representation
golang dxf library
- Host: GitHub
- URL: https://github.com/edanko/dxf
- Owner: edanko
- License: mit
- Created: 2020-03-06T11:57:45.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2023-12-15T08:37:56.000Z (about 1 year ago)
- Last Synced: 2023-12-15T09:41:59.036Z (about 1 year ago)
- Topics: dxf, go, golang
- Language: Go
- Homepage:
- Size: 231 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
#dxf
DXF(Drawing Exchange Format by Autodesk, Inc) library for golang.
+ version: ACAD2000(AC1015)
+ format : ASCIIis only supported.
## Reference
[http://www.autodesk.com/techpubs/autocad/acad2000/dxf/index.htm](http://www.autodesk.com/techpubs/autocad/acad2000/dxf/index.htm)
## Example
```go
package mainimport (
"github.com/edanko/dxf"
"github.com/edanko/dxf/color"
"github.com/edanko/dxf/table"
"log"
"math"
)func main() {
d := dxf.NewDrawing()
d.Header().LtScale = 100.0
d.AddLayer("Toroidal", dxf.DefaultColor, dxf.DefaultLineType, true)
d.AddLayer("Poloidal", color.Red, table.LT_HIDDEN, true)
z := 0.0
r1 := 200.0
r2 := 500.0
ndiv := 16
dtheta := 2.0 * math.Pi / float64(ndiv)
theta := 0.0
for i := 0; i < ndiv; i++ {
d.ChangeLayer("Toroidal")
d.Circle(0.0, 0.0, z+r1*math.Cos(theta), r2-r1*math.Sin(theta))
d.ChangeLayer("Poloidal")
c, _ := d.Circle(r2*math.Cos(theta), r2*math.Sin(theta), 0.0, r1)
dxf.SetExtrusion(c, []float64{-1.0 * math.Sin(theta), math.Cos(theta), 0.0})
theta += dtheta
}
err := d.SaveAs("torus.dxf")
if err != nil {
log.Fatal(err)
}
}
```![Torus](example/torus/torus.png)
## Installation
```
$ go get github.com/edanko/dxf
```# License
MIT
# Author
Yoshihiro FUKUSHIMA