Commit Graph

215 Commits

Author SHA1 Message Date
Salvador E. Tropea 2da936ec11 Adds sub-part to multipart references. 2021-01-05 11:29:28 -03:00
Salvador E. Tropea d334599e3b Bumped version to 0.9.0. 2021-01-04 16:32:06 -03:00
Salvador E. Tropea edd4a72277 Better handling of empty type/name attributes in YAML config.
From #38
2021-01-04 16:27:52 -03:00
Salvador E. Tropea c626f864f9 The step output now can download missing 3D models. 2020-12-30 15:22:00 -03:00
Salvador E. Tropea 5d6bdeb9e2 Fixed rot_footprint filter reset. 2020-12-29 12:33:50 -03:00
Salvador E. Tropea 4a3e7faace Added a new filter used to rotate footprints.
Used to generate position files for some manufacturers like JLC.
Also in this patch:
- Now position files are naturally sorted (R10 after R9, not after R1)
- Position files in CSV format quotes only the columns that could
  contain an space. Just like KiCad does.
- Fixed: Generic filter `include_only` option worked only when debug
  enabled.
2020-12-28 18:26:27 -03:00
Salvador E. Tropea 0f7a55dc8b Added support to generate negative X positions for the bottom layer 2020-12-28 09:30:33 -03:00
Salvador E. Tropea 007fc36d1e Fixed the components fields reset mechanism.
My previous approach was incomplete.
2020-12-23 18:47:11 -03:00
Salvador E. Tropea 9f8ecff5d1 Added support to rename fields matching the variant to value. 2020-12-23 12:11:39 -03:00
Salvador E. Tropea 204ad189de Changed how variant field renamer is implemented.
- Now is a separated filter type (`var_rename`).
- Now all variants support a `pre_transform` filter list.
- An internal `_var_rename` filter is defined (default).
2020-12-23 10:19:23 -03:00
Salvador E. Tropea 986f0c7157 KiBoM variants: support to field overwrite according to variant 2020-12-18 15:39:58 -03:00
Salvador E. Tropea bb3087c996 Added a hint for pip installations without using `--no-compile`.
Closes #31
2020-12-16 12:40:56 -03:00
Salvador E. Tropea 26d81d6475 Added support for missing field names in libraries.
- Closes #32
- Reported on SnapEda libs
2020-12-16 12:16:03 -03:00
Salvador E. Tropea d201843b6a File name patterns are allowed for the `netlist_file` option.
- Closes #33
- File name patterns: %F is the name of the source file without
  extension, but with the path.
2020-12-16 11:10:36 -03:00
Salvador E. Tropea 4d0a154632 Bumped version to 0.8.1 2020-12-09 12:58:01 -03:00
Stavros Korokithakis aae76c6388
Fix import issue when a shorter base path matches before a shorter one 2020-12-09 16:49:18 +02:00
Salvador E. Tropea 7248258672 Added Internal BoM HTML details.
- highlight cell when hover.
- allow to jump to REF of row number using anchors.
2020-12-09 11:32:37 -03:00
Salvador E. Tropea 1248e92b95 Fixed Internal BoM separator wasn't applied when using `use_alt`
From the SchrodingersGat/KiBoM#145 PR.
2020-11-11 14:32:20 -03:00
Salvador E. Tropea b09c860573 Added support for KiCad 5.99 "disableapertmacros" option. 2020-11-06 17:05:33 -03:00
Salvador E. Tropea 019cb0c8a4 Bumped version to 0.8.0.
Also Python version to 3.6 (mcpyrate)
2020-11-06 13:51:19 -03:00
Salvador E. Tropea 577713efeb Fixed excellon drill output.
When using unified output and not using default KiCad names.
Fixes #25
2020-11-02 16:07:05 -03:00
Salvador E. Tropea 8fb99d8adf Adjusted flake8 details 2020-11-02 16:06:02 -03:00
Salvador E. Tropea b27872d7e8 Fixed problems when using the `pdf_pcb_print` on special case.
When using variants to remove a component with ridiculous pads
that only has solder paste (no copper, nor even solder mask
aperture).
2020-10-27 17:58:51 -03:00
Salvador E. Tropea dfd3ac8881 Added support for colorama.
This isn't really needed, but makes the port to Windows easier.
2020-10-24 17:07:58 -03:00
Salvador E. Tropea 68269c10f1 Avoid KiAuto warnings about missing project for pdf_pcb_print
This applies to cases using variants.
Now we copy the current project to the temporal location.
Closes #23
2020-10-24 16:25:09 -03:00
Salvador E. Tropea de9628e5c1 Added columns configuration for position files.
You can customize which columns are used, their names and order.
Closes #22
2020-10-23 14:18:11 -03:00
Salvador E. Tropea a623d9168c Adapted to last KiCad 5.99 Python interface.
- SKETCH and FILLED are defined again.
- SetDXFPlotUnits type is now exported.
2020-10-22 13:03:31 -03:00
Salvador E. Tropea 1a77b2d007 Added support for build versions of KiCad compiled locally. 2020-10-22 13:01:53 -03:00
Salvador E. Tropea 263b9c41e4 Fixed log.init() errors when pcbnew/yaml modules aren't installed.
Also added tests for these cases.
2020-10-20 11:41:01 -03:00
Salvador E. Tropea 14cdd33c6d Added support for the KiCad 6 default layer names.
Not deeply tested.
KiCad 6 support user names for technical layers, and assigns new
names to them.
2020-10-19 16:47:13 -03:00
Salvador E. Tropea dbcbbfeb47 Fixed missing GS declarations. 2020-10-19 16:04:03 -03:00
Salvador E. Tropea 66e6bdf5b6 Disabled more line width code for KiCad 6. 2020-10-19 16:00:21 -03:00
Salvador E. Tropea 3977a55d4a Fixed indentation 2020-10-19 13:36:49 -03:00
Salvador E. Tropea 8a87a677e2 Fixed plot constant names
Too much cut & paste
2020-10-19 13:36:02 -03:00
Salvador E. Tropea 4fff3d27e9 KiCad 5.99 no longer supports PCB_PLOT_PARAMS.SetLineWidth() 2020-10-19 13:13:21 -03:00
Salvador E. Tropea 3579080e15 Added workaround for KiCad 5.99 bug.
PCB_PLOT_PARAMS.SetPlotMode argument values (SKETCH and FILLED) are
missing.
https://gitlab.com/kicad/code/kicad/-/issues/6070
2020-10-19 13:11:30 -03:00
Salvador E. Tropea 127ad89483 Added the name of the error to the tests when it fails.
Not just the error level.
2020-10-19 13:10:24 -03:00
Salvador E. Tropea 9c876d5783 Removed dead code in macros.py 2020-10-17 16:51:17 -03:00
Salvador E. Tropea d850bb8ffe
Merge pull request #19 from INTI-CMNB/try_mcpyrate
Replace mcpy by mcpyrate
2020-10-17 15:28:40 -03:00
Salvador E. Tropea 52a29c26d7 Implemented `de_activate` in mcpyrate.activate
This disables macros after loading the plug-ins.
Now the timing is 160 ms, 30% faster than `mcpy` and 4 times faster
than `macropy`
2020-10-17 15:01:21 -03:00
Salvador E. Tropea 307e553534 Added more info to the plug-ins load fail.
Trying to see why it fails (not in my docker image?!)
2020-10-17 12:03:33 -03:00
Salvador E. Tropea 2d55859782 Code style fixes (flake8) 2020-10-17 12:03:06 -03:00
Salvador E. Tropea 4538163e7e Removed all the code related to Python cache. 2020-10-17 12:01:52 -03:00
Salvador E. Tropea c29b5902c2 Enhanced the document macro coverage info.
- Recycled the s.value Str as @Technologicat suggested
- Added line number info to the target Name as I learned from the
  experiments test,
2020-10-17 11:11:24 -03:00
Salvador E. Tropea 5a24d72772 Updated mcpyrate, now the time is 260 ms, just 13% over mcpy 2020-10-17 10:17:25 -03:00
Salvador E. Tropea 43278717e9 Updated mcpyrate, now the cache can be enabled.
This compensates most of the speed penalty:
macropy:            ~650 ms (has cache)
mcpyrate no cache:   440 ms
mcpyrate:            290 ms
mcpy:                230 ms (no cache)
2020-10-17 09:48:07 -03:00
Salvador E. Tropea 17aafd88a0 Adapted the speed meassurement script 2020-10-16 19:26:07 -03:00
Salvador E. Tropea 087ef2bbb0 Trying to fix coverage details using copy_location 2020-10-16 18:58:51 -03:00
Salvador E. Tropea 17e75236da KiCad 6 no longer has SetPlotPadsOnSilkLayer 2020-10-16 18:40:20 -03:00
Salvador E. Tropea fec0091712 Added support for KiCad 6 to drill outputs.
I wonder why KiCad 6 doesn't provide a compatibility function for
GetAuxOrigin. The project seems to be trying to reduce the ammount
of code (removing old code) at the cost of breaking every existing
plug-in.
2020-10-16 17:04:37 -03:00
Salvador E. Tropea ae9e889bc0 Added debug information to out_bom to detect the line numbers issue. 2020-10-16 16:32:24 -03:00
Salvador E. Tropea 7c7549e6d7 Changed mcpy by mcpyrate to test its functionality. 2020-10-16 15:32:00 -03:00
Salvador E. Tropea 235e4831a8 Avoid loading KiCad 6 schematics.
Waiting for the Python bindings.
2020-10-15 18:53:44 -03:00
Salvador E. Tropea 17dd1d1be6 Added support to detect KiCad 6 schematics. 2020-10-15 18:53:15 -03:00
Salvador E. Tropea 4a97885495 Added support for KiCad 6 error filters. 2020-10-15 17:00:58 -03:00
Salvador E. Tropea 9bb42eda9a Added support for the new EDGE_MODULE name: FP_SHAPE
KiCad 6 is renaming part of the API without providing compatibility
aliases.
2020-10-14 16:08:21 -03:00
Salvador E. Tropea d2913f0bb4 Normalized the warning numbers to be 3 digits 2020-10-14 16:05:18 -03:00
Salvador E. Tropea 257a6ff2fa Added support for --mirror pcbnew_do export option.
It currently works only for KiCad 5.99
2020-10-14 12:34:00 -03:00
Salvador E. Tropea 86ead74c27 Added KiBot warning filters.
- Closes #15
- This patch also changes the logging initialization, that was broken at
  some recent point.
- Also adds tests to ensure the mechanism used to avoid repeated
  warnings is working.
2020-10-12 16:31:47 -03:00
Salvador E. Tropea c8e81a4668 Added numbers to all the warnings 2020-10-09 18:33:51 -03:00
Salvador E. Tropea 1aee407cb9 Fixed KiBom variants special cases.
When using multiple variants and a components used more than one,
specifying oposite rules.
2020-10-09 16:00:52 -03:00
Salvador E. Tropea 71fe37cfc6 Support for new `pcbnew_do export` options. 2020-10-09 11:27:30 -03:00
Salvador E. Tropea 5a50477f7c Sorted the DNF/DNC values in the docs. 2020-10-09 11:23:40 -03:00
Salvador E. Tropea 43bf78bfb9 Added some help about filters and variants. 2020-09-28 19:25:04 -03:00
Salvador E. Tropea 659ae27e7b Fixed small flake8 details 2020-09-21 20:02:50 -03:00
Salvador E. Tropea 7a7fc0a87d Fixed log warning detail.
Cases when % was in the string but not for C style.
2020-09-21 20:02:03 -03:00
Salvador E. Tropea ec1e6f6e02 Fixed debug log entry that wasn't removed. 2020-09-21 19:37:10 -03:00
Salvador E. Tropea c59c31fb6e Added support for KiCad v6 to the position output. 2020-09-21 19:17:31 -03:00
Salvador E. Tropea 93863788e7 Better log.warning messages
- Corrent source for Python 3.8+
- Support for C style formatted strings
2020-09-21 19:15:44 -03:00
Salvador E. Tropea ed7eae0338 Added support to load pcbnew from nightly. 2020-09-21 19:14:31 -03:00
Salvador E. Tropea 27e4c23236 Added support for reference separator in BoMs.
So you can get things like "R1, R2, R3"
From the following PR: SchrodingersGat/KiBoM#139
by @n0dyjeff
2020-09-19 17:35:31 -03:00
Salvador E. Tropea 1ed960d045 Replaced dicts used just to test membership by sets. 2020-09-12 12:50:16 -03:00
Salvador E. Tropea f131be6bd9 Bumped version to 0.7.0 2020-09-11 17:55:03 -03:00
Salvador E. Tropea af567b611f Bumped version to 0.7.0rc2 2020-09-11 12:54:33 -03:00
Salvador E. Tropea bef2203b24 Changed the layer number used to disable *.Adhes
Using undefined generates errors.
Now using "Rescue" layer.
2020-09-11 12:51:33 -03:00
Salvador E. Tropea 80005f2871 Fixed: solder paste and adhesive glue should also removed for print 2020-09-11 12:50:14 -03:00
Salvador E. Tropea 5be4a64293 Bumped version to 0.7.0rc1 2020-09-10 16:03:03 -03:00
Salvador E. Tropea f38b63236d Avoid repeating the same warning.
Also report a warnings count.
2020-09-10 15:50:53 -03:00
Salvador E. Tropea 6b21f00a65 Removed extra blanck line. 2020-09-10 15:47:18 -03:00
Salvador E. Tropea 512776ce8e Added a mechanism to set a default variant for all outputs.
It can be used to overwrite the output file template too.
2020-09-10 12:56:53 -03:00
Salvador E. Tropea 709d6facb9 Fixed warnings when printing a schematic variant.
We use a temporal copy of the schematic in a temporal dir.
So now we add a dummy .pro file to avoid warnings.
2020-09-10 12:54:43 -03:00
Salvador E. Tropea c522fa003e Fixed problems with 3D relative models in STEP output
When using a variant and one or more 3D models were stored in a
relative path the STEP file didn't contain them.
This is because we use a temporal PCB and it was stored in /tmp
Now is stored in the same directory as the real PCB.
2020-09-10 12:52:07 -03:00
Salvador E. Tropea b03b56ae5d Added more coherence to the variants/filters.
- Now they behave more coherently across outputs.
- Component status is explicitly reset, so having a variant + filter
  behaves in a more consistent way. Even when this isn't the
  recommended use.
- Virtual components are handled by the exclude filter.
- Moved code to modify the PCB to VariantOptions.
- Added a real virtual component to the tests, not a ridiculous case.
2020-09-08 20:01:16 -03:00
Salvador E. Tropea 23e46df1c5 Added variants support to the PCB print (PDF)
Needs some adjustement, but is working.
2020-09-07 19:26:16 -03:00
Salvador E. Tropea 0e394b468b Added variants support to the schematic SVG print. 2020-09-06 18:22:38 -03:00
Salvador E. Tropea 64f50d2a07 Moved repeated code related to variants to a base class. 2020-09-06 17:36:29 -03:00
Salvador E. Tropea f7e8033a09 Make clear that KiBoM output doesn't support KiBot variants.
The internal BoM can be used instead.
2020-09-06 12:03:55 -03:00
Salvador E. Tropea d719718eca Moved KiBoM default behavior to the KiBoM variant.
So it can be applied to other outputs.
2020-09-05 18:58:26 -03:00
Salvador E. Tropea 1163d28e71 Added "Not " prefix to negation filter names. 2020-09-05 18:56:01 -03:00
Salvador E. Tropea 7e5791fcfa Added variants to the IBoM output. 2020-09-05 17:48:25 -03:00
Salvador E. Tropea d09400d49d Added support for variants to the PcbDraw output. 2020-09-04 18:08:22 -03:00
Salvador E. Tropea dab7baa2d4 Fixed show_components validation in out_pcbdraw.
The same error could be in other places.
I had to change the internal logic in Optionable.
The old code allowed invalid values to be used.
2020-09-04 18:06:17 -03:00
Salvador E. Tropea cf46a8ba86 Added variants support to the STEP output.
3D Models of excluded components are removed.
2020-09-03 18:50:30 -03:00
Salvador E. Tropea b36e276969 Added crosses in the *.Fab layer for excluded components. 2020-09-03 17:17:08 -03:00
Salvador E. Tropea 8bf0a13210 Remove filtered components from the *.Adhes layer.
All shapes in the *.Adhes are removed.
2020-09-03 12:29:04 -03:00
Salvador E. Tropea c56af11007 Added variants to all the PCB plot outputs.
Tested for gerbers that are currently excluding pads from *.Paste.
2020-09-03 11:11:03 -03:00
Salvador E. Tropea 26ee971e26 Added variants suport to out_position
Also: we never include virtual components.
2020-09-02 18:08:50 -03:00
Salvador E. Tropea d681528a03 Fixed: SCH load and PCB components consolidation reuse.
The code did the tasks over and over.
2020-09-02 18:08:04 -03:00
Salvador E. Tropea 712d135df5 Fixed: if no filters are applied we must reset the fields.
Added funtions to apply the filters
Moved code from bom.py to out_bom.py
2020-09-02 18:07:38 -03:00
Salvador E. Tropea 9558f7cf45 Added test for rogue component in PCB. 2020-09-02 15:16:23 -03:00