Commit Graph

220 Commits

Author SHA1 Message Date
Salvador E. Tropea 4b341a7a92 Added internal plot of the worksheet to pcb_print
- Also renamed some options to make it simpler (sorry)
2022-04-16 15:09:19 -03:00
Salvador E. Tropea 9d606fa53b Added colored pads and vias to pcb_print
- The vias are more "realistic", we avoid showing holes on layers that
  aren't drilled, but we mark the via. So you know were is.
2022-04-13 13:51:03 -03:00
Salvador E. Tropea 09cfa14896 Fixed problems when the project specified an empty wks (KiCad 5) 2022-04-11 14:50:17 -03:00
Salvador E. Tropea 510279a0a3 Added support for frame to `pcb_print` on KiCad 5
- This is tricky because plot API doesn't support it.
  So we use `pcbnew_do` to generate an SVG and then we make a
  vectorized PDF from it.
2022-04-11 12:40:39 -03:00
Salvador E. Tropea a5c848c752 Added a color cache 2022-04-10 15:32:42 -03:00
Salvador E. Tropea 3752bcb53e Finished adding all the plot options to `pcb_print`
- Now is you can get most of the good things from both: print and plot
  in the same output.
- Is usually much faster than `pdf_pcb_print`
2022-04-08 15:01:10 -03:00
Salvador E. Tropea 73b4196e46 Fixed problems with imported sub-sheets
- We must avoid processing the sheet and symbol instances of them
Fixes #178
2022-04-07 13:23:25 -03:00
Salvador E. Tropea 235031b12c Fixed missing increment in KiCad 5 wks copy 2022-04-04 18:35:14 -03:00
Salvador E. Tropea 9e1f645c31 Fixed problems when using page layout files with relative paths.
Fixes #174
2022-04-04 18:02:31 -03:00
Salvador E. Tropea dad1f91439 Added: text vars expansion for 3D model paths
Closes #172
2022-03-31 14:58:39 -03:00
Salvador E. Tropea 637a6917c0 Fixed KiCad 6 problems with empty title block items
- The saved SCH wasn't usable if company, rev, title, etc.
  were absent in the original file.
2022-03-26 12:33:08 -03:00
Salvador E. Tropea 45e670c11f More early text var expansions
Fixes #163
2022-03-15 20:26:18 -03:00
Salvador E. Tropea fc28b6a257 Fixed: expanded text variables earlier for date
- Avoids reformatting problems
- Also done for title, because we keep a copy of the original
Related to #161
2022-03-15 17:47:33 -03:00
Salvador E. Tropea 27c987217c New preflight to annotate power components
Closes #76
2022-02-26 13:21:40 -03:00
Salvador E. Tropea 36581d8608 Added support for mirror and fields_autoplaced (KiCad v6 schematic)
- Not documented
Fixes #155
2022-02-24 13:51:11 -03:00
Salvador E. Tropea 26a6db4e65 Fixed KiCad 6 schematic component instance not updated
Fixes #157
2022-02-24 12:54:39 -03:00
Salvador E. Tropea 1dbaf67cea Fixed KiCad v6 field rename
- The code created v5 fields

Fixes #158
2022-02-24 12:16:35 -03:00
Salvador E. Tropea d9d80e5710 Fixed the C402 fix 2022-02-17 19:54:44 -03:00
Salvador E. Tropea 338a0cc3d4 Fixed B007 Loop control variable 'i' not used within the loop body. 2022-02-17 19:10:47 -03:00
Salvador E. Tropea 1731e889b1 Fixed D301 Use r""" if any backslashes in a docstring 2022-02-17 18:48:50 -03:00
Salvador E. Tropea d7e0cc2936 Fixed last patch 2022-02-17 18:44:34 -03:00
Salvador E. Tropea f26ab6ede8 Fixed B006 Do not use mutable data structures for argument defaults. 2022-02-17 16:45:10 -03:00
Salvador E. Tropea 15b2075c96 Fixed B011 Do not call assert False 2022-02-17 16:37:01 -03:00
Salvador E. Tropea c8d131fe11 Fixed C416 Unnecessary list comprehension - rewrite using list(). 2022-02-17 16:32:16 -03:00
Salvador E. Tropea f0c581d144 Fixed C405 Unnecessary list literal - rewrite as a set literal. 2022-02-17 16:31:30 -03:00
Salvador E. Tropea c11627f56d Fixed C402 Unnecessary generator - rewrite as a dict comprehension. 2022-02-17 16:07:17 -03:00
Salvador E. Tropea ebc6458948 Fixed schematic: Paper orientation was discarded on v5 files.
Fixes #150
2022-02-17 12:40:29 -03:00
Salvador E. Tropea 6281a40335 Fixed spelling 2022-02-16 19:56:04 -03:00
Salvador E. Tropea 5d2d0a4195 Added MacroFab XYRS support
- Internal BoM options:
  - `angle_positive`
  - `csv.hide_header`
  - `footprint_populate_values`
  - `footprint_type_values`
  - `units` mils
- Columns:
  - `Footprint Type`
  - `Footprint Populate`
  - `Footprint X-Size`
  - `Footprint Y-Size`
2022-02-14 13:49:56 -03:00
Salvador E. Tropea 644f6d1fda Internal BoM: Added footprint X, Y, rotation and side columns
- First step towards XYRS support
2022-02-11 11:01:14 -03:00
Salvador E. Tropea fac1c21282 Fixed flake8 errors 2022-01-29 16:33:32 -03:00
Salvador E. Tropea 400d06f9b3 Adjusted error messages and crossed comp generation.
- Also the name of the member for lib_name
2022-01-29 16:16:39 -03:00
Gustav Palmqvist 70fdb9c617 Handle lib_name in symbol instance 2022-01-27 23:16:54 +01:00
Salvador E. Tropea b73a2e51d4 Added stackup support to the report 2022-01-18 15:51:55 -03:00
Salvador E. Tropea 7a4c3468fa Added copper_thickness option
- Now we get some defaults from KiCad 6 stackup
2022-01-17 18:50:21 -03:00
Salvador E. Tropea 256876a1bd Added support for the magic KICAD6_*_DIR environment variables
Related to #135
2022-01-10 20:50:53 -03:00
Salvador E. Tropea 8a4064a544 Added KiCad 6 native symbols default dir 2022-01-07 17:49:33 -03:00
Salvador E. Tropea dadcd8a543 Added support for `bus_alias` [KiCad 6]
- Not documented in the file format
Closes #133
2022-01-07 12:01:17 -03:00
Salvador E. Tropea 93ee8c3acb Updated mcpyrate to 3.5.4 (last available) 2022-01-06 12:10:06 -03:00
Salvador E. Tropea 34bea23e06
Merge pull request #129 from rleh/patch/v6_sch
KiCad 6: Catch environment.vars==None case
2022-01-04 16:54:50 -03:00
Salvador E. Tropea be59ee397e Added support for KiCad 6 to the `update_qr` preflight.
Related to #93
2022-01-04 16:52:12 -03:00
Raphael Lehmann 7bdc1f511e v6 config: Catch environment.vars==None case 2022-01-04 17:50:10 +01:00
Salvador E. Tropea 5017f7e078 Added QR codes generation: symbols and footprints.
Related to #93
2022-01-03 12:35:33 -03:00
Salvador E. Tropea 4c3259a2f8 Fixed flake8 details 2022-01-03 12:33:35 -03:00
Salvador E. Tropea 7155539777 Added KiCad 6 support to the pseudo-netlist generation. 2021-12-31 16:45:40 -03:00
Salvador E. Tropea 1eefdeb5a3 Added support for upto 9 comment lines (KiCad 6) 2021-12-31 11:43:03 -03:00
Salvador E. Tropea 081786cf5e Fixed circular dependency in the tests 2021-12-30 19:02:04 -03:00
Salvador E. Tropea e5ed4b6652 Added support for variants on KiCost output.
Related to #106
2021-12-30 18:26:31 -03:00
Salvador E. Tropea 9417b61478 Moved all loggers to the same domain.
- To fix the warnings count
2021-12-30 11:09:36 -03:00
Salvador E. Tropea babf622eca Added support for KiCad v6 config in JSON format. 2021-12-27 14:11:37 -03:00
Diego Capusotto 926d4c84d3 Added support to write KiCad v6 schematics with variants 2021-12-21 13:04:09 -03:00
Diego Capusotto e07f45bd2d Adapted sexpdata.py to indent as KiCad.
- Also fixed a problem in _tosexp (Python 2 legacy?)
2021-12-21 13:00:48 -03:00
Diego Capusotto 08ef3e847a v6 loader: catch case were the file is just a word 2021-12-18 12:09:51 -03:00
Diego Capusotto 8de3982dad Added component fields validation to v6 loader. 2021-12-17 15:45:59 -03:00
Diego Capusotto 40751eac98 Fixed the components sheet path computatio in KiCad v6 loader
- Must be done for the instance, no point in doing it on the fly
2021-12-17 15:08:00 -03:00
Diego Capusotto d6b717114a Fixed missing `part` field in the v6 loader 2021-12-17 14:43:47 -03:00
Diego Capusotto 5887305b38 v6 loader: added support for missing components 2021-12-17 14:24:41 -03:00
Diego Capusotto 2986740530 Fixed missing datasheet data in v6 loader 2021-12-17 14:24:05 -03:00
Diego Capusotto 51ad5c3a2e Fixed flake8 details 2021-12-17 11:45:32 -03:00
Diego Capusotto 3d947f2d50 KiCad v6: Added support for absent title block 2021-12-17 11:44:43 -03:00
Diego Capusotto 95ddda0953 Made the v5 schematic loader more robust
- Allow DMC files with wrongly encoded chars
- Allow libs with wrong justify+italic+bold fields
- Both from https://github.com/Digi-Key/digikey-kicad-library
Closes #122
2021-12-17 10:03:12 -03:00
Diego Capusotto 25d036f8fa Added some preliminary support for v6 SCHs
- Currently just loads the files
- No save implemented
- Seems to be enough to generate some trivial BoMs
2021-12-16 17:08:33 -03:00
Diego Capusotto 3eb82bc86d Changed: The `%d/%sd/%bd` expansion patterns are now affected by the global `date_format`.
- Can be disabled using `date_reformat: false`.
- Related to #121
2021-12-15 17:15:49 -03:00
Salvador E. Tropea b435bd9761 Fixed missing sub-sheet check 2021-12-03 15:27:38 -03:00
Salvador E. Tropea 9cd2581582 Added new pre-flight command to replace tags in the schematic.
Related to #93, but also an old idea floating around.
2021-12-03 14:37:53 -03:00
Salvador E. Tropea 9e4adf5286 Added patterns to expand the title blck comments.
Related to #93
2021-12-03 10:13:42 -03:00
Salvador E. Tropea a503c5fdc6 Added global options to control the date format. 2021-12-01 14:59:36 -03:00
Salvador E. Tropea 2a09151a18 Fix for the commit 10486af51a
- italic and bold must be bool
2021-11-18 12:18:39 -03:00
Salvador E. Tropea 10486af51a Fixed KiCost variants: when setting a field hat doesn't exist
Fixes #105
2021-11-15 15:56:33 -03:00
Salvador E. Tropea 088027c174 Fixed problems with schematic fields containing double quotes.
- Fixes #98
2021-11-15 12:50:22 -03:00
Salvador E. Tropea 18b72a41b0 Added support for KiCad symbol libs without EOF comment. 2021-10-18 14:47:09 -03:00
Salvador E. Tropea a7bde6d01f Added comment about the KISYS3DMOD patch 2021-10-14 13:29:55 -03:00
Salvador E. Tropea 79c4f75e7d Added fallback for missing KiCad 3D models config.
Fixes #91
2021-10-14 13:22:01 -03:00
Salvador E. Tropea b7b39d4bfe Added explanation for ERC on schematics not fully annotated
Related to #86
2021-09-21 13:14:06 -03:00
Salvador E. Tropea 40a42513ba Added suport for schematic cache files when components are missing
Fixes #83
2021-08-24 14:37:50 -03:00
Salvador E. Tropea e22e1db49a Added support for width, style and color in "wire notes"
Fixes #70
2021-04-22 12:33:13 -03:00
Salvador E. Tropea 1290bb6995 New KiCost variant style.
- New internal filters `_var_rename_kicost` and `_kicost_dnp`.
- New `skip_if_no_field` and `invert` options to the regex used in the
  generic filter.
2021-03-30 09:37:36 -03:00
Salvador E. Tropea 01291ebe63 Added field rename filter.
Including an internal version to emulate KiCost behavior.
2021-03-23 13:20:26 -03:00
Salvador E. Tropea 40bd7c24f2 Added support for KiCost's subparts 2021-03-19 19:41:46 -03:00
Salvador E. Tropea 0402a65c8b Added support for a component attribute qty.
Is the ammount of the part used.
By default is 1, but can be another value.
2021-03-19 11:53:03 -03:00
Bernhard B c13ac04927 be more tolerant when parsing libraries
Some SnapEDA libraries (e.g https://www.snapeda.com/parts/TS3A27518EPWR/Texas%20Instruments/view-part)
use the token "# End Library" instead of "#End Library" to mark the end
of the library.
2021-03-08 15:19:24 +01:00
Salvador E. Tropea 6d59960b59 Sorted the schematic dependencies to make them consistent. 2021-03-03 13:07:46 -03:00
Sabol Martin 234a57cfc6 fix: Part containing more then 9 units (2 digits present). Start line parsing with TAB instead of unit number 2021-02-12 16:16:16 +01:00
Salvador E. Tropea 536fa4708a Fixed get_components. 2021-02-04 16:25:59 -03:00
Salvador E. Tropea ae49289006 Removed dead code in v5_sch.py 2021-02-04 16:16:04 -03:00
Salvador E. Tropea 79fe05ed9f Added makefile test for sch_variant case.
- Also avoided to repeat the same SCH dependency more than once.
2021-02-02 11:55:36 -03:00
Salvador E. Tropea af29f802c0 Switched from configfile.readfp to configfile.read_file for Python 3 2021-02-01 11:14:57 -03:00
Salvador E. Tropea 7422e9726c Removed some "no cover" comments, clasified the rest 2021-02-01 08:53:24 -03:00
Salvador E. Tropea 15474ae4d7 Now you can consolidate more than one project in one BoM.
The basic idea comes from pimpmykicadbom by Anton Savov (@antto)
2021-01-21 14:43:47 -03:00
Salvador E. Tropea 88cd5927dc Now you can ask to compress the targets of an output (by out put name) 2021-01-18 16:12:30 -03:00
Salvador E. Tropea 3e06f43ee2 Best KiCad config path detection.
- Added GetSettingsManager() call (new)
- Added message about KiCad 5 bug (6989)
- Added comment about KICAD_CONFIG_HOME bug.
2021-01-11 12:51:46 -03:00
Salvador E. Tropea 45ac28a6bf Added support for KICAD_CONFIG_HOME defined from inside KiCad 2021-01-08 12:47:15 -03:00
Salvador E. Tropea b3e2d67871 Now we use KiCad to detect where is its configuration.
No more KiCad copycat code.
2021-01-06 13:49:24 -03:00
Salvador E. Tropea 2da936ec11 Adds sub-part to multipart references. 2021-01-05 11:29:28 -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 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 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 986f0c7157 KiBoM variants: support to field overwrite according to variant 2020-12-18 15:39:58 -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 c8e81a4668 Added numbers to all the warnings 2020-10-09 18:33:51 -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 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 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 0216fc93c7 Added support for filters and variants to pdf_print_sch 2020-09-01 16:54:51 -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 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 006072e842 Documented computed component flags.
fitted, in_bom (new) and fixed
2020-08-29 17:31:35 -03:00
Salvador E. Tropea c1e63da09a Moved the fields validation to a seprated methode.
To keep the function complexity lower.
2020-08-27 18:03:41 -03:00
Salvador E. Tropea d80b145af9 Now extra spaces in user fields are discarded.
The code strips spaces at the beggining and end of user field values.
2020-08-25 09:12:46 -03:00
SET 820efd211c Marked sub-packages using __init__.py
Also documented the purpose of these files.
2020-08-18 12:08:52 -03:00
SET 89914443f0 Renamed the kiplot module as kibot.
Also added src/kibot script.
Updated the documentation and Debian packaging.
The default extension for config files now is .kibot.yaml
2020-08-16 22:04:03 -03:00