Skip to content
/ dxf Public

golang dxf library

License

Notifications You must be signed in to change notification settings

edanko/dxf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

13cadbb · Sep 20, 2022
Sep 20, 2022
Sep 20, 2022
Jan 7, 2016
Sep 20, 2022
Sep 20, 2022
Sep 20, 2022
Jan 7, 2016
Jan 7, 2016
Sep 20, 2022
Sep 20, 2022
Sep 20, 2022
Sep 20, 2022
Sep 20, 2022
Sep 20, 2022
Feb 16, 2016
Sep 20, 2022
Sep 20, 2022
Sep 20, 2022
Sep 20, 2022
Sep 20, 2022
Sep 20, 2022

Repository files navigation

#dxf

DXF(Drawing Exchange Format by Autodesk, Inc) library for golang.

  • version: ACAD2000(AC1015)
  • format : ASCII

is only supported.

Reference

http://www.autodesk.com/techpubs/autocad/acad2000/dxf/index.htm

Example

package main

import (
	"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

Installation

$ go get github.com/edanko/dxf

License

MIT

Author

Yoshihiro FUKUSHIMA

About

golang dxf library

Topics

Resources

License

Stars

Watchers

Forks

Languages