Commit graph

27 commits

Author SHA1 Message Date
Hamilton Kibbe
390838fc8b Fix for #25. Checking was happening at the gerber/excellon file level, but I 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 2015-04-24 10:54:13 -04:00
Paulo Henrique Silva
a3cce62be7 Fix Gerber generation for coord blocks with implicit op code 2015-04-23 13:38:01 -03:00
Paulo Henrique Silva
d6bb61eec6 Fix issue where D01 and D03 are implicit.
Based on code from @rdprescott.
2015-04-13 16:55:03 -03:00
Paulo Henrique Silva
1ea7e14ba5 Fix CoordStmt with missing i/j offsets 2015-04-07 18:28:03 -03:00
Paulo Henrique Silva
d1c74317c8 Add some deprecated but still found statements 2015-04-07 18:26:33 -03:00
Paulo Henrique Silva
b93804ed9a Add unspecified FS D leading zeros format
FS D leading zero format (probably form Direct) is an unspecified
coordinate format where all numbers are specified with both leading
and trailing zeros.
2015-04-07 18:22:02 -03:00
Paulo Henrique Silva
adc1ff6d72 Fix for py3 2015-03-05 14:58:36 -03:00
Paulo Henrique Silva
a13b981c1c Fix tests for macros with no variables.
All AM*Primitive classes now handles float for all but the code
modifiers. This simplifies the reading/parsing.
2015-03-05 14:43:30 -03:00
Paulo Henrique Silva
670d3fbbd7 Add aperture macro parsing and evaluation.
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.
2015-03-03 03:41:55 -03:00
Paulo Henrique Silva
5d764a6890 Fix GerberFile.bounds when board origin is negative 2015-02-20 13:58:08 -02:00
Hamilton Kibbe
5966d7830b Add offset operation 2015-02-18 23:13:23 -05:00
Hamilton Kibbe
288ac27084 Get unit conversion working for Gerber/Excellon files
Started operations module for file operations/transforms
2015-02-18 04:31:23 -05:00
Hamilton Kibbe
8f69c1dfa2 Update line primitive to take aperture parameter
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.
2015-02-12 11:28:50 -05:00
Hamilton Kibbe
208149d676 merge upstream changes 2015-01-26 22:24:45 -05:00
Paulo Henrique Silva
cbb662491c Refactor AM aperture handling and add unit conversion support
* 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)
2015-01-14 03:15:52 -02:00
Paulo Henrique Silva
53ee756609 Fix region primitive creation 2015-01-13 23:12:27 -02:00
Paulo Henrique Silva
be5b94b8c0 Fix parsing for OrCAD.
* 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.
2014-12-15 23:44:12 -02:00
Hamilton Kibbe
29deffcf77 add ipc2581 primitives 2014-12-05 23:59:28 -05:00
Paulo Henrique Silva
ab69ee0172 Bunch of small fixes to improve Gerber read/write. 2014-11-10 12:24:09 -02:00
Paulo Henrique Silva
171876bca0 style change 2014-10-26 22:27:12 -02:00
Paulo Henrique Silva
3ffa9238c4 Add simple hack to allow evaluation when gerber have macros and polygon 2014-10-26 22:26:50 -02:00
Paulo Henrique Silva
8f584d6396 Fix parsing for AM macros and support for zero sized circle primitives 2014-10-26 22:26:04 -02:00
Paulo Henrique Silva
777ffd385b Fix parsing of Unknown commands 2014-10-26 21:39:51 -02:00
Hamilton Kibbe
4f076d7b76 Merge aperture fixses from upstream 2014-10-26 17:59:57 -04:00
Hamilton Kibbe
18e3b87625 Test update 2014-10-19 22:23:00 -04:00
Hamilton Kibbe
6d2db67e6d Refactor rendering 2014-10-18 01:44:51 -04:00
Hamilton Kibbe
8c5c7ec8bb update docs and example images 2014-10-12 12:38:40 -04:00
Renamed from gerber/gerber.py (Browse further)