Age | Commit message (Collapse) | Author | Files | Lines |
|
When regions were the first thing draw there is no current aperture
defined, as regions do not require an aperture, so we use an zeroed
Circle as aperture in this case. Gerber spec says that apertures have
no graphical meaning for regions, so this should be enough.
|
|
|
|
Adds a loads() method to the top level module which generates a GerberFile or ExcellonFile from a string
|
|
This fixes the circular cutout issue described in #32. Regions were previously stored as a collection of points, now they are stored as a collection of line and arc primitives.
|
|
Got a bunch of metric files with no MOMM but only G71, this
should be pretty mush harmless.
|
|
We now check if there is a %XXX*% command inside the line before
considering it a multiline statement.
|
|
ADDxxx param statements were too greedy on the mofidiers and were
matching more than it should in cases where there are no newlines after
the statement like:
'%ADD12C,0.305*%%LPD*%', in a single line. The '%' was not exluded form
modifiers so it got confused with the %LPD*% concatened.
top_copper.GTL example was changed to be in a single line now with no
spaces at all and it works well.
|
|
|
|
added units checking at the primitive level so the use case shown in the example is covered. Might want to throw a bunch more assertions in the test code (i started doing a few) to cover multiple calls to unit conversion functions
|
|
|
|
Based on code from @rdprescott.
|
|
|
|
|
|
FS D leading zero format (probably form Direct) is an unspecified
coordinate format where all numbers are specified with both leading
and trailing zeros.
|
|
|
|
All AM*Primitive classes now handles float for all but the code
modifiers. This simplifies the reading/parsing.
|
|
Aperture macros can get complex with arithmetical operations,
variables and variables substitution.
Current pcb-tools code just read each macro block as an independent
unit, this cannot deal with variables that get changed after used.
This patch splits the task in two: first we parse all macro content
and creates a bytecode representation of all operations. This bytecode
representation will be executed when an AD command is issues passing
the required parameters.
Parsing is heavily based on gerbv using a Shunting Yard approach to
math parsing.
Integration with rs274x.py code is not finished as I need to figure out
how to integrate the final macro primitives with the graphical primitives
already in use.
|
|
|
|
|
|
Started operations module for file operations/transforms
|
|
This fixes the exception referenced in #12. Still need to add rendering
code for rectangle aperture lines and arcs.
Rectangle strokes will be drawn as polygons by the rendering backends.
|
|
|
|
* Add support to convert between metric/impertial
* AM primitives are now properly created and can be
converted between metric/imperial.
(only Outline primitive is supported, no rendering yet)
|
|
|
|
* Modify the way we parse parameters to allow more than
one parameter in a single line as in the following example:
%FSLAX55Y55*MOIN*%
%IR0*IPPOS*OFA0.00000B0.00000*MIA0B0*SFA1.00000B1.00000*%
(this is from OrCAD 16 default output)
* Add missing deprecated parameters.
* Change API to use given FileSettings on output. This allows
us to use pcb-tools to convert between FS formats.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|