dxf

package module
v0.0.0-...-5a6d1e8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 10, 2019 License: MIT Imports: 15 Imported by: 18

README

#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/yofu/dxf"
	"github.com/yofu/dxf/color"
	"github.com/yofu/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/yofu/dxf

License

MIT

Author

Yoshihiro FUKUSHIMA

Documentation

Overview

Package dxf is a DXF(Drawing Exchange Format) library for golang. ACAD2000(AC1015), ASCII format is only supported. http://www.autodesk.com/techpubs/autocad/acad2000/dxf/index.htm

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultColor    = color.White
	DefaultLineType = table.LT_CONTINUOUS
)

Default values.

Functions

func ColorIndex

func ColorIndex(cl []int) color.ColorNumber

ColorIndex converts RGB value to corresponding color number.

func FromFile

func FromFile(fn string) (*drawing.Drawing, error)

Create drawing from file

func FromReader

func FromReader(r io.Reader) (*drawing.Drawing, error)

Main logic to create a drawing

func FromStringData

func FromStringData(d string) (*drawing.Drawing, error)

Create drawing from string

func IndexColor

func IndexColor(index uint8) []uint8

IndexColor converts color number to RGB value.

func NewDrawing

func NewDrawing() *drawing.Drawing

NewDrawing creates a drawing.

func Open

func Open(filename string) (*drawing.Drawing, error)

Open is deprecated, please use FromFile

func Parse3DFace

func Parse3DFace(d *drawing.Drawing, data [][2]string) (entity.Entity, error)

Parse3DFace parses 3DFACE entities.

func ParseAppID

func ParseAppID(d *drawing.Drawing, data [][2]string) (table.SymbolTable, error)

ParseAppID parses APPID tables.

func ParseArc

func ParseArc(d *drawing.Drawing, data [][2]string) (entity.Entity, error)

ParseArc parses ARC entities.

func ParseBlock

func ParseBlock(d *drawing.Drawing, data [][2]string) error

ParseBlock parses each BLOCK, which starts with "0\nBLOCK\n" and ends with "0\nENDBLK\n".

func ParseBlockRecord

func ParseBlockRecord(d *drawing.Drawing, data [][2]string) (table.SymbolTable, error)

ParseBlockRecord parses BLOCK_RECORD tables.

func ParseBlocks

func ParseBlocks(d *drawing.Drawing, line int, data [][2]string) error

ParseBlocks parses BLOCKS section.

func ParseCircle

func ParseCircle(d *drawing.Drawing, data [][2]string) (entity.Entity, error)

ParseCircle parses CIRCLE entities.

func ParseClasses

func ParseClasses(d *drawing.Drawing, line int, data [][2]string) error

ParseClasses parses CLASSES section.

func ParseDimStyle

func ParseDimStyle(d *drawing.Drawing, data [][2]string) (table.SymbolTable, error)

ParseDimStyle parses DIMSTYLE tables.

func ParseEntities

func ParseEntities(d *drawing.Drawing, line int, data [][2]string) error

ParseEntities parses ENTITIES section.

func ParseEntity

func ParseEntity(d *drawing.Drawing, data [][2]string) (entity.Entity, error)

ParseEntity parses each entity.

func ParseEntityFunc

func ParseEntityFunc(t string) (func(*drawing.Drawing, [][2]string) (entity.Entity, error), error)

ParseEntityFunc returns a function for parsing acoording to entity type string.

func ParseHeader

func ParseHeader(d *drawing.Drawing, line int, data [][2]string) error

ParseHeader parses HEADER section.

func ParseLayer

func ParseLayer(d *drawing.Drawing, data [][2]string) (table.SymbolTable, error)

ParseLayer parses LAYER tables.

func ParseLine

func ParseLine(d *drawing.Drawing, data [][2]string) (entity.Entity, error)

ParseLine parses LINE entities.

func ParseLtype

func ParseLtype(d *drawing.Drawing, data [][2]string) (table.SymbolTable, error)

ParseLtype parses LTYPE tables.

func ParseLwPolyline

func ParseLwPolyline(d *drawing.Drawing, data [][2]string) (entity.Entity, error)

ParseLwPolyline parses LWPOLYLINE entities.

func ParseObjects

func ParseObjects(d *drawing.Drawing, line int, data [][2]string) error

ParseObjects parses OBJECTS section.

func ParsePoint

func ParsePoint(d *drawing.Drawing, data [][2]string) (entity.Entity, error)

ParsePoint parses POINT entities.

func ParseStyle

func ParseStyle(d *drawing.Drawing, data [][2]string) (table.SymbolTable, error)

ParseStyle parses STYLE tables.

func ParseTable

func ParseTable(d *drawing.Drawing, data [][2]string, index int, parser func(*drawing.Drawing, [][2]string) (table.SymbolTable, error)) error

ParseTable parses each TABLE, which starts with "0\nTABLE\n" and ends with "0\nENDTAB\n".

func ParseTables

func ParseTables(d *drawing.Drawing, line int, data [][2]string) error

ParseTables parses TABLES section.

func ParseText

func ParseText(d *drawing.Drawing, data [][2]string) (entity.Entity, error)

ParseText parses TEXT entities.

func ParseUCS

func ParseUCS(d *drawing.Drawing, data [][2]string) (table.SymbolTable, error)

ParseUCS parses UCS tables.

func ParseView

func ParseView(d *drawing.Drawing, data [][2]string) (table.SymbolTable, error)

ParseView parses VIEW tables.

func ParseViewport

func ParseViewport(d *drawing.Drawing, data [][2]string) (table.SymbolTable, error)

ParseViewport parses VPORT tables.

func SetExtrusion

func SetExtrusion(e Extruder, d []float64)

SetExtrusion sets new coord acoording to given direction.

Types

type Extruder

type Extruder interface {
	CurrentDirection() []float64
	SetDirection([]float64)
	CurrentCoord() []float64
	SetCoord([]float64)
}

Extruder represents an entity with code 210, 220, 230 like Circle.

210: Extrusion direction (optional; default = 0, 0, 1)
X value
220, 230: Y and Z values of extrusion direction (optional)

Directories

Path Synopsis
BLOCK section
BLOCK section
CLASSES section
CLASSES section
Color Number
Color Number
Package drawing defines Drawing struct for DXF.
Package drawing defines Drawing struct for DXF.
ENTITIES section
ENTITIES section
example
DXF Output Formatter
DXF Output Formatter
Geometrical Functions
Geometrical Functions
Handler interface
Handler interface
HEADER section
HEADER section
OBJECTS section
OBJECTS section
TABLES section
TABLES section

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL