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.