* Correct PNG for Symbol Properties dialog to show "FT Rotation Offset" rather than "JLCPCB Rotation Offset" to match readme and code behaviour.
* Continue field search in MPN handling if selected field is empty.
---------
Co-authored-by: Benny Megidish <bennymegk@gmail.com>
* Added CLI Interface
* Added .pyc to gitignore for CLI usecases
* Moved cli progress bar generation to utils
* Included ALL_ACTIVE_LAYERS_OPT
* Added documentation to README for cli usage
* Fixed Trough Hole position to center of pads, and "unspecifiled" to centor of bounding box.
* "unspecified" changed to center of pads. "Origin" field added.
* Add option to enable/disable export of all active layers. Disabling that option will only export commonly used fabrication layers. Addresses issue #172
* move definition of standard layers to config.py
Makes the additional layers text autocomplete and the gerber generator use the list of currently active layers
> * Add: utils to get dynamic layers
>
> * Change: Use KiCad standard name for layers
>
> * Add: description to new util funcs
>
> * Fix: only include active layers in layer util funcs
>
> * Fix: infinite loop
>
> * Change: use util layer functions in processmanager
>
> * Remove: hardcoded layers
>
> * Change: use new util layer functions in dialog
>
> * Change: include comma-separated hint in layer control
`footprint_has_field(footprint, 'dnp')` returns `False` for DNP
components in KiCAD v8.
In KiCAD v8 the DNP flag is available via either the IsDNP() getter or
the FP_DNP attribute.
The added `getattr()` call turns into `footprint.IsDNP()` in KiCAD v8 or
`bool()` (which evaluates into `False`) in KiCAD v7 and earlier.
`HasProperty()` no longer exists on footprints
and is replaced by `HasFieldByName()`.
Fixes#84, #97
Check kicad api version check
Co-authored-by: Wolfgang Jung <w.jung@polyas.de>
* Add limit of parts in BOM rows
The number of components that are merged into the same row in the BOM file is limited. If there are too many you'll get an "Internal Server Error" when JLCPCB is processing it.
Their support told me 20 parts per row is the limit but I've tested with 50 and it works, so I split the difference and set it to 30 here. I guess the 20 was only a suggestion :)
* Use variable instead of magic number for BOM-merge limit
* Use configure value for setting limit of merged parts in BOM