Commit Graph

136 Commits

Author SHA1 Message Date
Salvador E. Tropea ae035a4c0e [sub-PCBs] Implemented annotations mode
- Most of the algorithm is an adaptation of what KiKit does, just
  adapted to what we really need here.
- Now separating boards is really fast.
2022-12-28 08:05:18 -03:00
Salvador E. Tropea 983c91be1d [Fixed] Problems when no pcbnew installed
- New code interference with proper detection
2022-12-27 13:45:15 -03:00
Salvador E. Tropea b8dff52fa3 [sub-PCBs] Implemented the rectangle separation
- Notably faster
2022-12-27 12:37:33 -03:00
Salvador E. Tropea ebabc0b37b [Windows] Fixed problems with os.rename
- Now using os.replace
- It removes the target if already there
2022-12-26 08:02:14 -03:00
Salvador E. Tropea bb4047e748 Changed the system look-up resources patch
- Slightly more portable, not really much
2022-12-16 13:40:35 -03:00
Salvador E. Tropea c1a646aba8 [Fixed] Missing / in system level look-up
- Bumped version to 1.5.1
2022-12-16 12:47:52 -03:00
Salvador E. Tropea f7dceabd0e Fixed KiCad project reload
- Otherwise KiCad SIGSEGVs when trying to plot
2022-12-03 20:48:49 -03:00
Salvador E. Tropea 2cea9925d5 [Panelize] Added preview option
- Enabled for quick start
2022-12-03 18:38:28 -03:00
Salvador E. Tropea 2a46ab1cff [Stencil_3D] New output
- KiKit's "stencil createprinted"
2022-12-01 11:15:12 -03:00
Salvador E. Tropea 75ebc7a677 [Windows] Try to fix %X expansions
- They convert \ to / and remove :
- So we now avoid it on Windows
Related to #325
2022-12-01 07:36:53 -03:00
Salvador E. Tropea 8ec4d481c0 [Package] Moved all resources to a central place
- All KiBot resources are now under kibot/resources
- PcbDraw resources are now in kibot/resources/pcbdraw
- All resources can be loaded relative to the script or from
  /usr/share/kibot
- The Debian package installs the resources in /usr/share/kibot
- The Python manifest includes all resources
- PcbDraw is now detected as a Python package
2022-10-19 13:05:56 -03:00
Salvador E. Tropea 4f54712a94 Added experimental option to accept CSV files without reference. 2022-09-15 14:05:24 -03:00
Salvador E. Tropea 488f2dcbc2 [Global options] Now the global `dir` option also applies to the preflights
- Can be disabled using `use_dir_for_preflights`.

Closes #292
2022-09-15 09:33:57 -03:00
Salvador E. Tropea 418b74b2f3 Environment and text variables now can be used as 3D model aliases.
- Environment and text variables expansion is now recursive.
  So in `${VAR}` the *VAR* can contain `${OTHER_VAR}`

Related to #261
2022-09-14 07:30:13 -03:00
Salvador E. Tropea 08a0628eff Added some basic preprocessing
- Now you can parametrize the YAML config.

Related to #233 and #243
2022-09-13 13:31:25 -03:00
Salvador E. Tropea 6f2c4ccf24 [Globals] Added options to control which stuff is changed on PCB variants
- cross_footprints_for_dnp
- remove_adhesive_for_dnp
- remove_solder_paste_for_dnp
- hide_excluded (default value)

Related to #270
2022-09-13 10:44:07 -03:00
Salvador E. Tropea 1f1a56e5ac Added support for changing text variables with variants
- During outputs creation.
- Option `set_text_variables_before_output`.

Related to #233
2022-09-12 13:35:40 -03:00
Salvador E. Tropea 0631836f29 When restoring the project now we maintain the original EOLs
- Not doing it in KiAuto raised problems, so now we also do it in
  KiBot

Related to #265
2022-09-02 09:38:16 -03:00
Salvador E. Tropea 85538b0b27 [Global options] Restore the project at exit
Related to #250
2022-08-19 09:39:25 -03:00
Salvador E. Tropea 0180136fd6 [DRC] Another workaround for KiCad lack of exclusions support in Python
- Saving the project can remove them, so `fill_zones` removed them

Fixes #250
2022-08-17 13:33:57 -03:00
Salvador E. Tropea c5a6d894c9 [DRC] Added Workaround for problems with DRC exclusions
- Global option: `drc_exclusions_workaround`
- KiCad bug [11562](https://gitlab.com/kicad/code/kicad/-/issues/11562)
Fixes INTI-CMNB/KiAuto#26
2022-08-10 14:01:32 -03:00
Salvador E. Tropea 6c7e0cebe0 Now GS.ki5() and GS.ki6() are just GS.ki5 and GS.ki6
- The version doesn't change during execution ;-)
2022-07-31 17:45:55 -03:00
Salvador E. Tropea 42503a909a [SCH][Print] A global option to cross components without a body.
- Only for KiCad 6

Closes #219
2022-07-12 08:44:05 -03:00
Salvador E. Tropea 15d5f90a27 [Tests] Fixed fil_test.py assertions
- PyTest 6 failed to catch the assert, but 7 does
2022-07-09 19:44:02 -03:00
Salvador E. Tropea 0a8481dadf Now the dependencies are YAML specs in docstrings
- They document the dependencies and constructs them
2022-07-05 12:43:49 -03:00
Salvador E. Tropea 01c015eb27 Simplified the global vars handling
- The main class also applies the command line options
- Is more clear how defaults are handled
- Also added global config for the 3D field name
2022-04-28 14:49:28 -03:00
Salvador E. Tropea e1586484f5 Fixed KiCad 5 doesn't have LSET.Contains() 2022-04-26 12:14:24 -03:00
Salvador E. Tropea 9b18c5300a Fixed KiCad 5 uses ZONE_CONTAINERS and not ZONES
Note: The previous commit included fixes for out_report
- Zones unfilled after output generation
- Pads unconditionally gained rpinted copper layers
2022-04-26 10:21:14 -03:00
Salvador E. Tropea 56030c5dc9 Added the first stepof the new `--quick-start` option
- Should be a way to quickly start using KiBot without any config
2022-04-26 09:51:14 -03:00
Salvador E. Tropea 9f037e569f Added global option `drill_size_increment`
- Now we can round the drill sizes
- Added a context for drill tools (adjusted and rounded)
- Added a context for oval holes

Related to #164
2022-04-21 10:30:24 -03:00
Salvador E. Tropea ff41012e84 Changes in how we compute the drill sizes in the report
- New global variable `extra_pth_drill` defines how much the drill will
  be enlarged for plated holes.
- Removed all *_1* report values.
- Added *_real* report values. They are the asjusted drill values.
- Now we compute Eurocircuits Drill Class using all the real drill
  sizes.
- Documented all global variables/options.
- Added command line option to list all global options.
- Adjusted the report templates and thei references.

Related to #164
2022-04-20 12:57:52 -03:00
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 9e1f645c31 Fixed problems when using page layout files with relative paths.
Fixes #174
2022-04-04 18:02:31 -03:00
Salvador E. Tropea bb0f86ae61 Fixed KiCad 6 text variables not expanded in `render_3d` output
- We must copy the project file to the temporal dir
Fixes #173
2022-04-02 12:14:56 -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 02a942c37b Fixed schematic comments expansion 2022-03-13 16:36:54 -03:00
Salvador E. Tropea 0413699607 Fixed pcb title block load (text var expansions) 2022-03-13 15:58:47 -03:00
Salvador E. Tropea 342fb40c59 Added text variable replace in the title block items
- There are some limitations inm the depth of vars + %X usage
Closes #162
2022-03-13 15:18:44 -03:00
Salvador E. Tropea 86aa7b6357 New preflight to annotate according to PCB coordinates
Related to #93
2022-03-08 14:33:38 -03:00
Salvador E. Tropea 15b2075c96 Fixed B011 Do not call assert False 2022-02-17 16:37:01 -03:00
Salvador E. Tropea 6281a40335 Fixed spelling 2022-02-16 19:56:04 -03:00
Salvador E. Tropea b2ab00f6cb Added global *units* option
Solves the KiCad 6 dimensions issue. See #146
2022-02-14 15:42:54 -03:00
Salvador E. Tropea ccbb8a6060 Adapted two tests to the new details
- New pcbnew import in gs.py
- New return value for _get_columns()
2022-02-14 14:49:16 -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 d7430499d2 Removed coverage exclusions for KiCad 6 code 2022-02-11 12:58:39 -03:00
Salvador E. Tropea 71c77e89ce Fixed bom generation when no PCB is available. 2022-02-11 12:16:34 -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 d629afcf92 Added support for the controlled impedance flag in KiCad 6 2022-01-18 16:06:17 -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 46d5d9ad65 Added support for different top/bottom PCB colors
- Solder mask
- Silk screen
2022-01-17 16:02:09 -03:00
Salvador E. Tropea 514cc949b6 Added support for edge_connector, castellated_pads and edge_plating 2022-01-16 19:13:20 -03:00
Salvador E. Tropea 4d5220006f Changed the default output pattern
- Now includes the `output_id` (%I)
2022-01-15 15:45:28 -03:00
Salvador E. Tropea 4bba7e9a9a Added global options to define the PCB details. 2022-01-14 13:42:04 -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 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
Diego Capusotto 95f9b7914e KiCad 6 doesn't support the Rescue layer
- Now we use User.9 for KiCad 6
2021-12-18 18:38:08 -03:00
Diego Capusotto 46378b992b Added some abstraction for the KiCad project file extension. 2021-12-18 11:13:58 -03:00
Diego Capusotto 285b205af8 Fixed(?) the PCB title block comments numbering is from 0
- Breaking compatibility with older KiCad again
- Disregarding what the file and UI says
2021-12-17 16:55:49 -03:00
Diego Capusotto 69189e661e Added support for v6 GetAuxOrigin change to out_position.py 2021-12-17 16:31:08 -03:00
Diego Capusotto 6e5176b273 Simplified the code that detects KiCad v6 2021-12-17 13:11:42 -03:00
Diego Capusotto 69c874fdbd KiCad v6: Added support for the new "modules" name ("footprints")
- No alias provided, as usual
2021-12-17 12:46:40 -03:00
Diego Capusotto 5dce1d5a31 KiCad v6: Adapted gs.py to new API change
- title_block.GetCommentX() -> title_block.GetComment(X)
- No compat wrapper as usual
2021-12-17 12:11:10 -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 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 95135c8c56 New expansion patterns and out_dir from global section.
- Also added expansion in out_dir
- Related to #116
2021-11-30 19:12:14 -03:00
Salvador E. Tropea f9a2aac01b Changed %v/%V to also icnlude the global variant
Closes #104
2021-11-22 16:22:52 -03:00
Salvador E. Tropea 998754753d Added Default global `dir` option 2021-11-15 14:40:30 -03:00
Salvador E. Tropea 7961209b0f Experimental mechanism to change 3D models according to the variant. 2021-03-31 18:00:43 -03:00
Salvador E. Tropea f698e44642 Now we can load InteractiveHtmlBom even when installed only as plugin
Fixes #49
2021-02-08 15:37:01 -03:00
Salvador E. Tropea 34e85d646c Added KiAuto time-out control (EXPERIMENTAL!!)
Related to #48
2021-02-06 20:48:34 -03:00
Salvador E. Tropea 0babc286af Modified the tests to cover the missing lines. 2021-02-04 13:40:14 -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 159e8996e8 Added support for ZIP/TAR/RAR generation. 2021-01-15 13:33:33 -03:00
Salvador E. Tropea ab9071b693 Moved pcbnew detection from kiplot.py to __main__.py.
Now the KiCad version is printed when debug is enabled.
2021-01-06 12:25:54 -03:00
Salvador E. Tropea 5d6bdeb9e2 Fixed rot_footprint filter reset. 2020-12-29 12:33:50 -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 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 ed7eae0338 Added support to load pcbnew from nightly. 2020-09-21 19:14:31 -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 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 a19c6157b7 Added support to see the variant in the output file name.
Now the variant can affect the output file name.
2020-08-28 16:48:02 -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