Commit Graph

191 Commits

Author SHA1 Message Date
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
Salvador E. Tropea 42562185ea Added filter options using PCB attributes.
KiCad 6 will break this, we'll see how to adapt.
2020-09-02 14:48:26 -03:00
Salvador E. Tropea 0a6fdccb1d Removed dead code. 2020-09-01 20:32:41 -03:00
Salvador E. Tropea 0b3c36d11a Fixed the DrawText.write method
Was writing an extra quote
2020-09-01 20:31:41 -03:00
Salvador E. Tropea 76ea47c04f Now the default exclude filter excludes ref == '#*' 2020-09-01 20:30:34 -03:00
Salvador E. Tropea 12534d8202 Added new filter criteria: exclude ref == '#*' 2020-09-01 20:29:49 -03:00
Salvador E. Tropea 9ebf18ba11 Added new basic filters.
`!` is always False
`_none` is no filter
2020-09-01 18:48:45 -03:00
Salvador E. Tropea 563c00cc5b Enabled the variants exception catch.
Now the variants configuration can raise exceptions.
2020-09-01 18:47:38 -03:00
Salvador E. Tropea 8a2810fd8d Added support to remove the filters of the internal BoM. 2020-09-01 18:46:59 -03:00
Salvador E. Tropea c26481790a Added support for filters to sch_variant 2020-09-01 16:55:36 -03:00
Salvador E. Tropea 0216fc93c7 Added support for filters and variants to pdf_print_sch 2020-09-01 16:54:51 -03:00
Salvador E. Tropea 05f14e2049 Removed the plural in variant.
Is just one. It can be complex, but one name.
2020-09-01 16:51:11 -03:00
Salvador E. Tropea 16aefbffb6 Removed debug print. 2020-09-01 16:49:51 -03:00
Salvador E. Tropea 7cd0ccafa1 Fixed component save method.
The first value of the redundant position is the unit.
Not always 1.
2020-09-01 16:48:43 -03:00
Salvador E. Tropea 744aa3b9c5 Added a simple output to generate filtered schematics.
They can display DNF components crossed!
2020-08-31 20:51:20 -03:00
Salvador E. Tropea 4cc8a0916f Added filters to the variants.
So they have the same functionality than internal BoM.
I keep the (redundant) filters in internal BoM so users doesn't need to
create a variant just to apply a filter.
2020-08-31 20:49:41 -03:00
Salvador E. Tropea 7882cb0f4f Moved internal filters to the base class.
So they can be used not only for internal BoM purposes.
2020-08-31 20:48:56 -03:00
Salvador E. Tropea f12c7fc1ce Removed code for testing. 2020-08-31 20:45:08 -03:00
Salvador E. Tropea b0c014abe9 Added support to write schematics. 2020-08-31 20:44:34 -03:00
Salvador E. Tropea 094cf41e7b Added support for Italic and Bold in Text* elements. 2020-08-31 20:43:52 -03:00
Salvador E. Tropea a0db94d67c Added support for cross to multi-part components. 2020-08-31 20:42:06 -03:00
Salvador E. Tropea 8b0247bf80 Fixed rectangle computation for pins.
Left and Right exchanged.
2020-08-31 20:41:02 -03:00
Salvador E. Tropea 6620779e09 Handled missing components. 2020-08-30 18:49:01 -03:00
Salvador E. Tropea fee593c091 Added members to create the cache.lib
This is equivalent to the cache.lib, not the real one.
We can generate two versions, one normal and the other with crossed
components.
Now we need a schematic to use them.
2020-08-30 18:26:27 -03:00
Salvador E. Tropea 48be2fa749
Merge pull request #5 from INTI-CMNB/variants
Added Variants and Filters
2020-08-30 12:10:29 -03:00