Documentation ¶
Overview ¶
Package svg parses Gerber to SVG.
Package svg parses Gerber to SVG.
Example ¶
gbr := `G04 Ucamco ex. 1: Two square boxes* %MOMM*% %FSLAX26Y26*% %LPD*% %ADD10C,0.010*% D10* X0Y0D02* G01* X5000000Y0D01* Y5000000D01* X0D01* Y0D01* X6000000D02* X11000000D01* Y5000000D01* X6000000D01* Y0D01* M02*` svgP, err := SVG(bytes.NewBufferString(gbr)) if err != nil { log.Fatalf("%+v", err) } svgP.PanZoom = false buf := bytes.NewBuffer(nil) if err := svgP.Write(buf); err != nil { log.Fatalf("%+v", err) } fmt.Printf("%s", buf.Bytes())
Output: <svg viewBox="0 -5000000 11000000 5000000" style="background-color: black;" xmlns="http://www.w3.org/2000/svg"> <line x1="0" y1="-0" x2="5000000" y2="-0" stroke-width="10000" stroke-linecap="round" stroke="white" line="8"/> <line x1="5000000" y1="-0" x2="5000000" y2="-5000000" stroke-width="10000" stroke-linecap="round" stroke="white" line="9"/> <line x1="5000000" y1="-5000000" x2="0" y2="-5000000" stroke-width="10000" stroke-linecap="round" stroke="white" line="10"/> <line x1="0" y1="-5000000" x2="0" y2="-0" stroke-width="10000" stroke-linecap="round" stroke="white" line="11"/> <line x1="6000000" y1="-0" x2="11000000" y2="-0" stroke-width="10000" stroke-linecap="round" stroke="white" line="13"/> <line x1="11000000" y1="-0" x2="11000000" y2="-5000000" stroke-width="10000" stroke-linecap="round" stroke="white" line="14"/> <line x1="11000000" y1="-5000000" x2="6000000" y2="-5000000" stroke-width="10000" stroke-linecap="round" stroke="white" line="15"/> <line x1="6000000" y1="-5000000" x2="6000000" y2="-0" stroke-width="10000" stroke-linecap="round" stroke="white" line="16"/> </svg>
Index ¶
- func Bounds(element interface{}) (image.Rectangle, error)
- type Arc
- type Circle
- type ElementType
- type Line
- type Path
- type PathArc
- type PathLine
- type Processor
- func (p *Processor) Arc(lineIdx, xs, ys, xe, ye, xc, yc int, interpolation gerber.Interpolation, ...) error
- func (p *Processor) Circle(lineIdx, x, y, diameter int, polarity bool)
- func (p *Processor) Contour(contour gerber.Contour) error
- func (p *Processor) Line(lineIdx, x0, y0, x1, y1, diameter int, linecap gerber.LineCap)
- func (p *Processor) Obround(lineIdx, x, y, width, height int, polarity bool)
- func (p *Processor) Rectangle(lineIdx, x, y, width, height int, polarity bool)
- func (p *Processor) SetDecimal(decimal float64)
- func (p *Processor) SetViewbox(minX, maxX, minY, maxY int)
- func (p *Processor) UnmarshalJSON(b []byte) error
- func (p *Processor) UnmarshalJSON_1(b []byte) error
- func (p *Processor) Write(w io.Writer) error
- type Rectangle
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Arc ¶
type Arc struct { Type ElementType Line int XS int YS int RadiusX int RadiusY int LargeArc int Sweep int XE int YE int StrokeWidth int CenterX int CenterY int Stroke string Attr map[string]string }
An Arc is a SVG Arc.
func (Arc) MarshalJSON ¶
MarshalJSON implements json.Marshaler.
type Circle ¶
type Circle struct { Type ElementType Line int X int Y int Radius int Fill string Attr map[string]string }
A Circle is a circle.
func (Circle) MarshalJSON ¶
MarshalJSON implements json.Marshaler.
type ElementType ¶
type ElementType string
An ElementType is a SVG element type.
const ( ElementTypeCircle ElementType = "Circle" ElementTypeRectangle ElementType = "Rect" ElementTypePath ElementType = "Path" ElementTypeLine ElementType = "Line" ElementTypeArc ElementType = "Arc" )
type Line ¶
type Line struct { Type ElementType Line int X1 int Y1 int X2 int Y2 int StrokeWidth int Cap string Stroke string Attr map[string]string }
A Line is a SVG line.
func (Line) MarshalJSON ¶
MarshalJSON implements json.Marshaler.
type Path ¶
type Path struct { Type ElementType Line int X int Y int Commands []interface{} Fill string Attr map[string]string }
A Path is a SVG path.
func (Path) MarshalJSON ¶
MarshalJSON implements json.Marshaler.
type PathArc ¶
type PathArc struct { Type ElementType RadiusX int RadiusY int LargeArc int Sweep int X int Y int CenterX int CenterY int }
A PathArc is an arc in a SVG path.
func (PathArc) MarshalJSON ¶
MarshalJSON implements json.Marshaler.
type PathLine ¶
type PathLine struct { Type ElementType X int Y int }
A PathLine is a line in a SVG path.
func (PathLine) MarshalJSON ¶
MarshalJSON implements json.Marshaler.
type Processor ¶
type Processor struct { // Data contains SVG elements. Data []interface{} // Viewbox of Gerber image. MinX int MaxX int MinY int MaxY int // Decimal is the multiplier to convert millimeters to coordinates. // It is defined in the gerber file. Decimal float64 // Color for Gerber polarities, defaults to black and white. PolarityDark string PolarityClear string // Optional scaling factor of coordinates when writing SVG image. Scale float64 // Optional width and height of output SVG image. Width string Height string // Whether to output javascript for interactive panning and zooming in SVG. PanZoom bool }
A Processor is a performer of Gerber graphic operations.
func (*Processor) SetDecimal ¶
func (*Processor) SetViewbox ¶
func (*Processor) UnmarshalJSON ¶
func (*Processor) UnmarshalJSON_1 ¶
Click to show internal directories.
Click to hide internal directories.