Commit Graph

451 Commits

Author SHA1 Message Date
Wayne Stambaugh 188232de6f Pcbnew: add user defined layers and allow all layers to have user names.
This changes the file format.  All previous copper layers that had a user
defined name are forced back to the canonical name and the user defined
name is stored as an optional quoted string in the layer definition and
only used for UI and plotting purposes.  All copper object layer names
are now the canonical name for internal file use.

ADDED: Nine new user definable non-copper layers that can be optionally
added to the board layer stack.

CHANGED: All board layers can now be renamed by the user.

CHANGED: User defined layer names can now contain space characters.

Fixes https://gitlab.com/kicad/code/kicad/issues/1969
2020-09-23 15:41:43 -04:00
jean-pierre charras 0b03d8a5ff Fix a few Coverity warnings. 2020-09-20 16:30:23 +02:00
Jeff Young 67b5d24995 Support ESC & Cancel for DRC.
Fixes https://gitlab.com/kicad/code/kicad/issues/5698
2020-09-18 22:14:00 +01:00
Ian McInerney 4ca103c82c Fix problem in groups QA test
The items should always be added to the group.
2020-09-18 11:17:37 +01:00
Jeff Young a3d65a2b43 Smoother progress reporting for DRC checks.
Also moves Messages tab out to an overlay, and restores the longer
messages now that messages are no longer a textbox in the upper right.
2020-09-17 20:13:39 +01:00
Ian McInerney 9ea2dbe87b Cleanup the PCB_GROUP QA test set 2020-09-16 02:04:17 +01:00
Jeff Young b4229d9a3e Fix testcase crash when progressReporter was null.
(And it helps if the DRC tester you're trying to test is actually
in the make file.)
2020-09-15 22:25:12 +01:00
Jeff Young e2e229da96 Finish exorcising the old DRC system.
This moves the various BOARD_ITEM calls to the new system, and make
the DRC_ENGINE long-lived so that it can field those queries.
2020-09-15 20:15:46 +01:00
Jeff Young 665212341d Cleanup (consistent naming, 100-char line width, message precision). 2020-09-15 12:07:31 +01:00
Jeff Young 514da2f886 Move DRC dialog to new DRC engine. 2020-09-14 22:39:36 +01:00
Jeff Young 748bee1bc7 Hook up netclasses and board minimums to new DRC engine.
Improves implicit rule reporting.
Makes some internal names more consistent.
Moves DRC_REPORT to the test framework.
Removes priority (which isn't supported in the grammar)
2020-09-13 17:08:24 +01:00
Jeff Young 8420fcc33b Cleanup. 2020-09-13 17:08:24 +01:00
Jeff Young 5be887a60f Iron out some wrinkles in the DRC migration. 2020-09-12 01:57:37 +01:00
Jeff Young ce2937a399 Move rest of DRC tests to kicad. 2020-09-11 23:14:12 +01:00
Jeff Young 5424d6fa09 Move new clearance tests into kicad. 2020-09-11 21:26:57 +01:00
Jeff Young cc86630f11 Start pulling new DRC engine into Kicad. 2020-09-11 16:04:11 +01:00
Jeff Young 6b4a6f4d3e Restore min seg limit for rounded-corner pads.
It suffered from a cacophony of errors, starting with an errant
comment that made it later look like a bug.  Sigh.
2020-09-11 14:41:45 +01:00
Wayne Stambaugh d45c11b4b5 Exclude from bill of materials and board netlist to library symbols.
ADDED: Support for exclude from bill of materials and board netlist to
library symbols.

Fixes https://gitlab.com/kicad/code/kicad/issues/4915
2020-09-09 09:03:37 -04:00
Roberto Fernandez Bautista 3b3af5327f CADSTAR PCB Archive Importer: Move code into common/plugins and pcbnew/plugins folders 2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista 632d45e833 CADSTAR PCB Archive Importer: Parse PARTS section 2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista 4c2f38f1ad CADSTAR PCB Archive Importer: Parse LIBRARY section + code refactoring
code refactoring:
- Renamed CADSTAR_COMMON to CADSTAR_ARCHIVE_COMMON
- Renamed CPA_FILE to CADSTAR_PCB_ARCHIVE_PARSER
- Made CADSTAR_PCB_ARCHIVE_PARSER a derived class of CADSTAR_ARCHIVE_COMMON
- Moved all structures in cadstar_pcb_archive_parser.h/.cpp to be defined inside CADSTAR_PCB_ARCHIVE_PARSER class
2020-09-08 21:21:20 +00:00
Roberto Fernandez Bautista 86bf592bac ADDED: CADSTAR PCB Archive Importer
Initial commit
- Imports directly mappable layer stackup (only physical board fabrication layers for now)
2020-09-08 21:21:20 +00:00
Seth Hillbrand 459cc326e0 Remove errant header
Fixes https://gitlab.com/kicad/code/kicad/issues/5553
2020-09-08 06:44:56 -07:00
Seth Hillbrand 02a5d47de9 Avoid passing references in EESchema
This returns the connection list by value.  This allows easier Python
use

Also renames m_End() to GetEnd()
2020-09-08 06:29:27 -07:00
Tomasz Wlostowski 1cd349c8f6 drc_proto: report rule hits only for rule-driven tests 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 0ef6d85a1f drc_proto: added rule hit accounting in various tests 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 0f015aeb59 drc_proto: add dummy default constraint for courtyard clearance 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski e1af46d099 qa: temporarily disable test_gal_pixel_aligmnent due to unfinished changes in PCB_TEST_FRAME_BASE 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 7aefe6fdb4 qa_utils: PCB_TEST_FRAME compiles again... 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 91860dae2d drc_proto: use GetLayer() in disabled layer tests 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski b53d753796 drc_proto: don't stitch together multiple rules's microcode 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 9176062d0f drc_proto: return 'safe' null constraint if no matching rule found. To be fixed 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski fc58c4a20e drc_proto: netclass wip 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 8a5297180e drc_proto: initial version of legacy rule import (without overrides yet) 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 05b88acf16 drc_proto: wip adding accessors to DRC_RULE/DRC_RULE_CONDITION 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 8e4a3f5e65 drc_proto: nicer logging on the console 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski b107c4a025 drc_proto: working on progress reporting 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski 466cbe2f00 libeval_compiler: fixhandling of method calls with empty argument list (e.g. 'A.method()' ) 2020-09-08 01:31:42 +02:00
Tomasz Wlostowski adbd94553d drc_proto: all tests now supported in drc_proto. Not tested yet! 2020-09-08 01:31:42 +02:00
qu1ck 3dbebda168 Fix GetCustomShapeAsPolygon and add a unit test
Fixes #5497
2020-09-04 20:30:54 -07:00
Seth Hillbrand 3095d0e335 DRC_TREE: Allow indexing on triangulated zones
Also move to BOARD_ITEM* as we might want to run DRC on non-copper items
2020-09-04 15:53:49 -07:00
Jeff Young e6f4e156b6 Fix the SCH_PINs test to be more reflective of the codebase. 2020-09-01 15:25:49 +01:00
Jeff Young 9e12ea9bb6 Cleanup some dead code and make better use of iterators.
Also applies coding style around auto and lambdas.
2020-08-28 11:05:58 +01:00
Seth Hillbrand 0d65d76a9a Add modified qa project 2020-08-25 10:40:44 -07:00
Thomas Pointhuber a03fb7a9a8 Altium: Refactor and add initial structure for schematic importer
altium: move pcbnew/altium2kicadpcb_plugin -> pcbnew/plugins/altium

See: https://gitlab.com/kicad/code/kicad/-/issues/4412
2020-08-23 19:01:08 +00:00
Seth Hillbrand a3fc028c9b CHANGED: locked parameter explictly written
Removed the bitmap status field that saved internal states into the
file, creating rcs churn.  Also removed the unneeded count variables at
the start of the file as these created merge conflicts for every board
that had multiple revisions

Fixes https://gitlab.com/kicad/code/kicad/issues/1850
2020-08-19 03:51:30 +00:00
Wayne Stambaugh ede39780e2 Remove all debugging output that cannot be disabled.
The use of printf, wxLogDebug, and std::err/std::out causes excessive
debugging output which makes finding specific debugging messages more
difficult than it needs to be.

There is still some debugging output in test code that really needs to
be moved into a unit test.

Add debugging output section to the coding policy regarding debugging
output.
2020-08-18 10:17:36 -04:00
Tomasz Wlostowski 8c94d88c78 qa: fix incorrect cast error on OSX/MSVC 2020-08-14 09:48:40 +02:00
Tomasz Wlostowski f582783b27 qa/drc_proto: updated DRC rule file format to the last version, post-rebase fixes too 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski e0ffdc8fe7 drc_proto: update file format, get the thing to compile again 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski 52fefd15e0 common: include drc_proto keywords in the main DRC parser 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski d937fadd6f Migrate RC_ITEM to use shared_ptr 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski 2b6ef6964a qa/pcbnew: test introspected properties in the expression compiler 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski 7c15c788b8 qa/pcbnew: boost test fixture for libeval_compiler 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski 35e45c5917 drc_proto: edge clearance wip 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski e38796396f qa/drc_proto: default values for fields in DRC_RULE 2020-08-13 14:50:59 +02:00
Tomasz Wlostowski 782fcc6139 qa/drc_proto: fix regressions in DRC_RULE_PARSER 2020-08-13 14:50:59 +02:00
Jeff Young 393bb0fd83 Fix assert where geometry routine wasn't ready to handle layers.
This introduces layer handling to a lot of the geometry routines.
Many of them don't do much with it now, but it does help multi-layer
zones and will help when padstacks are implemented.
2020-08-12 22:20:08 +01:00
Jeff Young 463100d67f Remove a long-standing hack to keep divots out of adjacent zones.
The new algorithm unions any adjacent zones before doing the
chamfer/fillet and then subtracts the other zones back out afterwards.

Fixes https://gitlab.com/kicad/code/kicad/issues/3812
2020-08-12 22:20:08 +01:00
Qbort b41892e4da Rename class GROUP in pcbnew to PCB_GROUP
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5156
2020-08-12 15:36:08 +01:00
Seth Hillbrand 7c455f2357 First pass at DRC RTree functionality
This implements a copper-layer RTree with functions for iterating over
the elements in a copper layer and providing Nearest Neighbor returns
for BOARD_CONNECTED_ITEMS
2020-08-11 16:52:29 -07:00
Joshua Redstone ee428876ec ADDED: Group/Ungroup function
This implements the group/ungroup functions to mark a set of EDA_ITEMs as a unit, allowing them to be moved and rotated as a unit
2020-08-11 19:37:07 +00:00
Seth Hillbrand 41edf5c5bf Updating DRC to handle vias with differing layers 2020-08-10 03:27:27 +00:00
Jeff Young 4317881012 Improve delete-unused-layers to better handle multi-layer items.
Fixes https://gitlab.com/kicad/code/kicad/issues/5116
2020-08-09 15:39:51 +01:00
Mark Roszko c6e388db14 Implement an app progress indicator in the taskbar
ADDED: Progress indicator in the taskbar

This adds a progress indicator to the Windows and macOS taskbar
icons to display the progress of some operations.

Note, this requires wxWidgets 3.1+
2020-08-09 10:55:00 +00:00
Jeff Young e5b50d90a7 Update DRC rules to new layer and disallow grammars.
Also adds support for hooking rules up to named zones.

Fixes https://gitlab.com/kicad/code/kicad/issues/2041
2020-08-07 21:49:36 +01:00
Qbort 9977299340 Fix compile errors in drc_engine.cpp and panel_setup_rules.cpp 2020-07-31 21:47:01 +00:00
Tomasz Wlostowski 23e834fdb5 qa: fixed test fixture name collision causing test failures 2020-07-31 20:01:15 +02:00
Ian McInerney 268dec5c19 Cleanup some build and Coverity warnings 2020-07-31 02:46:05 +01:00
Jeff Young fdb23d1a2d Add DRC check for items (pads for now) shorting two nets.
Fixes https://gitlab.com/kicad/code/kicad/issues/4955
2020-07-30 21:42:23 +01:00
Jeff Young 577c1be391 Report all DRC rule errors, not just the first. 2020-07-30 14:27:42 +01:00
Tomasz Wlostowski b06c158764 drc_proto: thou shalt count rule hits from 1, not 0 2020-07-30 00:02:36 +02:00
Tomasz Wlostowski 8de484eff3 drc_proto: follow up Jeff's changes 2020-07-30 00:02:15 +02:00
Tomasz Wlostowski faf469bd23 drc_proto: follow up Jeff's changes to libeval_compiler 2020-07-29 23:15:19 +02:00
Tomasz Wlostowski 9401165e6c qa: temporarily disable libeval_compiler_test 2020-07-29 23:14:34 +02:00
Tomasz Wlostowski e32c38ef81 drc_proto: simple test cases for copper clearance and hole clearance tests 2020-07-29 23:14:34 +02:00
Tomasz Wlostowski 128ae8b49e drc_proto: working on hole size/track width checker 2020-07-29 23:14:34 +02:00
Tomasz Wlostowski ff1872379d drc_proto: report rule hit statistics 2020-07-29 23:14:34 +02:00
Tomasz Wlostowski 7fc532df2e drc_proto: import new error reporting code from Jeff 2020-07-29 23:14:34 +02:00
Tomasz Wlostowski 6615397541 drc_proto: DRC_RULE now uses new libeval API 2020-07-29 23:14:34 +02:00
Tomasz Wlostowski a504bd0795 drc_proto: don't launch DRC providers with empty/incomplete rule sets 2020-07-29 23:14:03 +02:00
Tomasz Wlostowski cf0bb60fbb drc_proto: migrated GetEffectiveShape(s) to SHAPE_COMPOUND 2020-07-29 23:14:03 +02:00
Tomasz Wlostowski 1a2e02040a qa/libs/kimath: simple test suite for collisions of SHAPE_COMPOUNDs 2020-07-29 23:14:03 +02:00
Tomasz Wlostowski 8d9d3ff795 qa/drc_proto: debug level settable by env var 2020-07-29 23:14:03 +02:00
Tomasz Wlostowski 91b68e4578 drc_proto: follow up Jeff's changes in legacy DRC/board model 2020-07-29 23:14:03 +02:00
Tomasz Wlostowski abe6ccf97e common: re-enable libeval_compiler and DRC proto test (fixed missing file issues) 2020-07-29 23:14:03 +02:00
Jeff Young 0fecb5f277 Be more explicit about string/character conversions.
This *may* fix the bug where a layer name isn't displayed correctly
in the error dialog.  But probably not.
2020-07-28 20:44:40 +01:00
Seth Hillbrand 1374d82114 Adding QA project files 2020-07-28 10:44:51 -07:00
Jeff Young 552dde8976 Fix return value going out of scope.
(From Coverity report.)
2020-07-26 13:41:43 +01:00
Jeff Young bf445c1a95 Performance enhancements.
1) cache pad polygon outlines
   huge improvement in connectivity performance and a decent
   improvement in DRC performance
2) don't pre-allocate CONTEXT stack
   significant improvement in DRC rule performance
2) don't keep re-encoding strings
   decent improvement in DRC rule performance
2020-07-25 13:03:33 +01:00
Jeff Young 6529e339a9 Don't store context in the uCode. (It's not thread-safe.)
Although it does give some pretty funny results when filling zones.
2020-07-23 22:21:13 +01:00
Jeff Young a6b6084a60 Add preflighting for DRC rule function calls. 2020-07-22 14:33:32 +01:00
Jeff Young c52df811ae Add expression eval to constraint min/max/opt values.
Also adds error reporting for above.
2020-07-21 23:43:10 +01:00
Jeff Young 095937563b Hook libeval compiler up to rule parser
- convert expression string tokens to single-quote-delimited
- fix bug where netclass assignments weren't getting updated after
  board setup dialog
- move property manager rebuild to lazy evaluation
- improve performance with wider use of const&
- retire DRC_SELECTOR stuff
- use wxString for GUI stuff (particularly translated stuff)
- fix EqualTo() to return false instead of asserting when op types
  don't match
- fix buffer overruns with fixed-size string buffers
- make expression function calls case-insensitive
- integrate expression errors into rule parser
- produce more and better error messages
- keep BOARD_ITEM ptrs const as long as possible
- fix a couple of uninitialized variables
2020-07-20 22:11:53 +01:00
jean-pierre charras 6d8fb94d86 Fix a few Coverity warnings. 2020-07-20 16:19:19 +02:00
Seth Hillbrand 69d75b90b1 Adding failed arc test
This test implements a case where the current arc calculations fail
2020-07-18 13:03:22 -07:00
Ian McInerney 7b705af038 Refactor common QA components to create a single common library
This moves the program-specific code (e.g. BIU files) into
the program tests.

Also, create title_block.cpp to break a dependency that pulled
in eda_text.cpp when using the TITLE_BLOCK object.
2020-07-18 16:21:15 +01:00
Ian McInerney 019313711a Move geometry tests into the kimath qa test 2020-07-18 16:19:01 +01:00
Jeff Young d1da053d2e Update test to prettier file extension wildcard syntax. 2020-07-17 21:22:28 +01:00
Jeff Young 7340c97ef9 Undo for schematic-wide operations.
Editing value/footprint fields of multi-unit components.
Find/Change.
Annotation.
Back annotation.

Fixes https://gitlab.com/kicad/code/kicad/issues/2122

Fixes https://gitlab.com/kicad/code/kicad/issues/4869

Fixes https://gitlab.com/kicad/code/kicad/issues/3933

Fixes https://gitlab.com/kicad/code/kicad/issues/4871

Fixes https://gitlab.com/kicad/code/kicad/issues/3899
2020-07-13 12:32:17 +01:00