Jeff Young
13473420e5
Remove duplicated routine and fix bug in UTIL version.
2021-04-17 15:10:59 +01:00
Ian McInerney
4fc41627e9
Update and modernize linux metadata files
...
* Switch to using org.kicad.kicad as the main app ID
* Move the appstream file to a metainfo file
* Rename all metadata files to use the reverse DNS scheme
* Add header matching to mime type files where possible
* Add a mime type for gerber job files
* Add a QA test that verifies all the linux metadata files and
run it in CI
* Update the visible names in the launcher entries to be more
consistent with the internal visible names
* Update various strings and items in the metainfo file so they
are more descriptive and easier to read
2021-04-15 16:34:12 +00:00
Wayne Stambaugh
2b86b34124
Eeschema: split out SCH_SHEET_PIN declarations into separate header.
2021-04-06 17:15:49 -04:00
Jon Evans
2c05d99d9f
SHAPE_POLY_SET: Fix segment collision testing
...
It appears as though there was an optimization to skip testing segments if
one of their endpoints (and only the A point) was inside. Unclear the reason
for this, but I'm going to assume that it was intended to optimize the case
where both points are inside (like the point case above it).
2021-04-04 20:12:45 -04:00
Ian McInerney
0a0935e0f3
Remove ACTIONS::TranslateLegacyId and TOOL_DISPATCHER::DispatchWxCommand
...
After commit 9535153f9e
there were no more IDs inside the legacy ID
system. Therefore the entire system for dispatching and looking up
the legacy ideas and handling those events can now be removed and
the tool dispatcher simplified (it no longer needs to know about
the ACTIONS class).
2021-03-30 23:20:22 +00:00
Thomas Pointhuber
68f3d09ac1
altium: introduce tokenizer for query language
...
Based on this tokenizer, a LL1 parser will be built in the future.
2021-03-21 16:39:23 +01:00
Thomas Pointhuber
d9229697d8
altium: special string override map should be case-insensitive
...
This only fixes overrides where we explicitly map an override. Wrongly written variables pointing to fields are not corrected by this.
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/6256
2021-03-20 20:42:25 +01:00
Thomas Pointhuber
cd26db24f9
altium: allow text in special strings
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/6256#note_529783269
2021-03-20 19:25:57 +01:00
Roberto Fernandez Bautista
e4b99b9bb5
Fix SHAPE_ARC::Collide and add Unit Tests
2021-03-20 16:11:43 +00:00
Jon Evans
1d879e36cc
Make drc_proto an optional part of the build
2021-03-20 12:09:20 -04:00
Jeff Young
812d38736e
Naming conventions.
2021-03-19 23:06:19 +00:00
Thomas Pointhuber
4482b3baba
altium: Handle special strings and convert them into KiCad variables. Use Comment for VALUE.
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/6256
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/7736
2021-03-14 16:40:36 +01:00
Jon Evans
b20f18e6c5
Properly handle mixed-up group buses
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7870
2021-03-11 18:24:39 -05:00
Thomas Pointhuber
7ef9082c86
altium: add unit-tests for ReadProperties() and fix some issues found while doing so
2021-03-08 23:03:00 +01:00
Jon Evans
5ca7a2c457
Fix some issues with group bus prefix handling
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7196
2021-03-04 23:37:46 -05:00
Wayne Stambaugh
7a00e01b3e
Eeschema: fix false positive library symbol changed ERC errors.
...
This fix required sorting all of the LIB_PART draw items to ensure
accurate comparison between the symbols stored in the schematic and the
original library symbols. This has a noticeable impact on symbol library
load performance. It may also cause significant changes the next time
the library is saved due to changes in the draw item sorting. Hashing
may be a better solution here but this addressed the immediate problem.
A skeleton method SCH_SCREEN::SwapSymbolLinks() was added because there
is most likely an issue with orphaned symbols in the schematic library
symbol cache during undo/redo operations. More testing is required to
verify this.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7263
2021-03-04 17:59:24 -05:00
qu1ck
cc6df515a1
Make ARCs accessible from python
2021-03-01 17:34:47 +00:00
Jeff Young
8a33542bcd
SCH_COMPONENT::GetField() expects a vector index, not a field id.
...
Check this at compile time. Callers wanting to use an index now must
use SCH_COMPONENT::GetFields()[i] instead.
Fixes https://gitlab.com/kicad/code/kicad/issues/7757
2021-02-28 15:10:37 +00:00
Seth Hillbrand
824a942f55
Update Python test QA
...
We don't need to explicitly calculate the bounding box anymore as it is
lazily calculated when needed
2021-02-26 13:55:36 -08:00
Tomasz Wlostowski
04d058d60a
qa: don't enable the P&S hacktool build by default
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
6936b98469
qa: router debug/hack tool.
...
Adds Tom's internal P&S debugging tool. This is a work in progress and the code is quite messy for the moment, but I can't keep it in private branches forever and waste time rebasing it.
Note: experimental and *very unclean* code. Use at your own risk.
2021-02-25 17:18:23 +01:00
Wayne Stambaugh
1786ae8773
Eeschema: use symbol nomenclature for object file naming.
2021-02-24 08:48:02 -05:00
Jon Evans
a8ef81aef1
Don't track project local settings in this repo
2021-02-21 20:30:57 -05:00
Jon Evans
67f16110af
Fix netlist QA after API changes in 8a12aa4e
2021-02-21 20:30:57 -05:00
Marek Roszko
872184fe8b
Revert "Bump minimum required CMake version to 3.10"
...
This reverts commit a475f45753
.
2021-02-09 18:46:13 -05:00
Simon Richter
a475f45753
Bump minimum required CMake version to 3.10
...
This allows us to remove even more workarounds
2021-02-08 12:23:08 +00:00
qu1ck
5c3ee0443c
Make footprint properties accessible from python
...
Now that footprint properties inherit custom fields from schematic
they are very useful.
Setting custom properties from python will also be handy in plugins
that need to somehow mark their own objects.
2021-02-05 02:31:48 +00:00
Thomas Pointhuber
e5ea94c90b
altium: add testcase for PropertiesReadKiCadUnitFrac
2021-02-04 20:16:34 +01:00
Seth Hillbrand
8778599c0d
Apply same nettie hack to zone filler
...
The nettie hack is used in DRC but we also need to use it in zone filler
to allow zones to be used with netties. We limit this to the
appropriate nets in the nettie
Fixes https://gitlab.com/kicad/code/kicad/issues/7351
2021-01-31 16:16:48 -08:00
Thomas Pointhuber
db3b79a046
altium: Fix #6462 improve parsing of metric units
...
Because Altium uses imperial units for storage, this leads to rounding errors.
This code tries to correct those rounding errors for the user.
2021-01-31 16:18:57 +01:00
Thomas Pointhuber
9ddfd82b91
altium: Fix #6242 by increasing clamp limit for unit conversation. Furthermore fix error which happens when parsing negative units.
2021-01-31 13:59:51 +01:00
Jeff Young
ff7742c6b8
File naming and include cleanup.
2021-01-28 11:35:18 +00:00
Roberto Fernandez Bautista
99d203feae
Clarify CIRCLE::ConstructFromTanTanPt
...
Remove unused bool aAlternateSolution and add doxygen comments
2021-01-24 16:41:11 +00:00
Roberto Fernandez Bautista
48823c0723
Formatting fixes and fix qa_kimath following rebase
2021-01-24 16:41:10 +00:00
Roberto Fernandez Bautista
19620cebe7
qa tests: fix test_circle
2021-01-24 16:41:10 +00:00
Roberto Fernandez Bautista
6ed5ed52b8
qa tests for CIRCLE geometry library
2021-01-24 16:41:10 +00:00
Roberto Fernandez Bautista
b6a50d2f74
qa tests for SEG perpendicularity and parallelism
2021-01-24 16:41:10 +00:00
Roberto Fernandez Bautista
6e7ae93cc8
EDIT_TOOL::DragArcTrack Fix incorrect undo history when items are deleted
...
Need to make sure we only apply one COMMIT operation per object before calling COMMIT::Push() or COMMIT::Revert()
2021-01-24 16:41:10 +00:00
Jeff Young
977fe1ed49
Update netnames in tests for now (though Jon will probably change them).
2021-01-23 10:46:45 +00:00
Jon Evans
1491330596
Fix various memory leaks exposed by qa_eeschema
2021-01-18 22:40:58 -05:00
Jon Evans
915bf95d4d
Add no-connects testcase
2021-01-14 21:01:03 -05:00
Jon Evans
02681fcf0e
Move no-connect processing to connection graph
...
This way the net names can be inspected in eeschema and cross-probing works.
Testcases updated for the name changes
CHANGED: all unconnected pins are now included in the netlist with no_connect_ prefixes
2021-01-14 20:55:49 -05:00
Jon Evans
9b69c1e198
Fix a bone-headed cause of non-determinism
2021-01-14 19:20:37 -05:00
Jon Evans
654e9a77db
Connectivity: defer and parallelize item updates
...
Good for ~15% performance improvement in large designs
2021-01-14 12:21:19 -05:00
Jon Evans
6fb1ed2824
Make sure hierarchical overrides are deterministic
...
Without alphabetic sorting here, we are at the mercy of
the r-tree and multithreading.
2021-01-14 12:21:19 -05:00
Jeff Young
3e920c665f
Special case via area generation.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7105
2021-01-14 12:48:44 +00:00
Jon Evans
b90e72ed07
Don't simplify hierarchical nets based on weak drivers
...
This behavior provided shorter net names, but was confusing if
the user gives an explicit strong driver in the subsheet but not
one in the parent sheet.
Testcases updated for net name changes; connectivity is the same
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4201
2021-01-13 22:10:56 -05:00
Jeff Young
f30cea8034
Formatting.
2021-01-12 23:56:35 +00:00
Michael Kavanagh
b40e3a39f5
Minor cleanup.
2021-01-04 23:59:36 +00:00
Jon Evans
487aa37d2e
Connectivity: don't rename things multiple times in subsheets
...
Depending on what order the subgraphs are processed in, it's
possible to hit a case where the parent sheet renames a bus
member before the bus neighbor renaming logic runs. In this
case, we don't want to apply the bus neighbor logic as it will
break connectivity to the parent sheet if that bus was not
also renamed (for example, if the hier ports only make net
connections and not bus connections)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6887
2020-12-29 16:42:30 -05:00
Jeff Young
efd16dca66
Fix a bunch of issues with group selection and highlighting.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/6686
2020-12-29 12:41:24 +00:00
Wayne Stambaugh
60ebd177fd
Header clean up round 5.
2020-12-21 18:42:21 -05:00
Wayne Stambaugh
f311831c27
Coverity fixes.
...
280252, 314742, 314745, 314747, 314755, 314756, 314757, 314758,
314935, 314936
2020-12-20 13:24:47 -05:00
Jeff Young
acfbcb4beb
Make distinction between PCBNew-wide tools and Board-specific tools.
...
The old names were really hard to keep straight (even for me, who named
many of them).
2020-12-16 13:32:46 +00:00
Jeff Young
10e68daa37
Fix some bugs in Change Symbol and Update Symbols.
...
In particular, there was a typo that kept library values from being
updated, and there was missing logic to fetch the various field names
from the library parts (and the change-to part).
Also implements some performance gains by desisting from copying
LIB_FIELDs around every time we want to look at them.
Fixes https://gitlab.com/kicad/code/kicad/issues/6733
Fixes https://gitlab.com/kicad/code/kicad/issues/6749
2020-12-15 16:12:17 +00:00
Jeff Young
797a588015
Aliases should inherit their descs, keywords, and fp filters.
...
Assuming they're not set locally, of course.
Also updates to new class structure order.
Fixes https://gitlab.com/kicad/code/kicad/issues/6051
2020-12-14 13:48:26 +00:00
Jeff Young
98330098ac
Yet another overhaul to locking.
...
This unifies everything under a single architecture with a "don't
show again" dialog. Since everything now goes through the same
path it should be reasonably easy to make it do whatever we want
in the future.
Right now it presents 3 options: modify only unlocked items, override
locks and modify all items, or cancel command.
2020-12-10 17:36:19 +00:00
Jeff Young
9113f93ebe
Uniformly apply current locking strategy.
...
I make no claims that this is the right strategy, but at least it's
consistent now.
Fixes https://gitlab.com/kicad/code/kicad/issues/6369
2020-12-10 01:34:37 +00:00
Jeff Young
b1f0bf7334
More consistent naming.
2020-12-08 13:05:39 +00:00
Jeff Young
9ece90a541
Fix off-by-one error in exporting netlist, and update testcases.
...
The golden file update entails the change to no-connects as well as
the introduction of natural number ordering.
2020-12-04 19:37:55 +00:00
Jeff Young
889408c96a
More improvements to new selection disambiguation.
...
Also a rationalization of text polygon generators, with the "standard"
version inherited from BOARD_ITEM now giving the bounding box. This
requires callers who want the (much) more expensive stroke-based one
to call it explicitly (and brings PCB_TEXT in line with the was FP_TEXT
already was.
Fixes https://gitlab.com/kicad/code/kicad/issues/6525
2020-11-29 14:02:46 +00:00
Jeff Young
8633410bec
Fix some missed renaming in qa suite.
2020-11-28 12:30:26 +00:00
Jeff Young
9c7c05c161
Mostly formatting cleanup but a few type-casting cleanups too.
2020-11-24 22:16:41 +00:00
Marek Roszko
45598f2933
Add handling of DXF arbitrary axis/extrusions
...
This fixes some DXFs imports where unforunately CAD tools like SolidWorks
randomly decide to mirror circle definitions across the "z" axis (resulting in x or y axis flips in 2d)
Most likely live projection from 3D to 2D drawings introduces this.
However this is DXF specification to describe it so obtusely with vectors for a 2d drawing.
2020-11-23 21:24:38 -05:00
Jeff Young
c67c13bc1d
Update netlist goldens (properties, natural order, no-connect nets).
2020-11-23 22:09:15 +00:00
qu1ck
b32c2a6c90
Refactor EDA_TEXT::TransformToSegmentList() to return a vector of points
...
This allows reading text object as it is rendered through python API.
2020-11-23 07:50:54 +00:00
Jeff Young
b227d2b910
More component -> symbol.
2020-11-15 20:23:15 +00:00
Jeff Young
6654c03041
Embarking on the next adventure: component -> symbol.
2020-11-15 20:23:15 +00:00
Jeff Young
8a4992b528
Add missing file.
2020-11-14 22:09:43 +00:00
Jeff Young
d094f86b1a
Finish module cleanup (except for xpms).
2020-11-14 22:00:12 +00:00
Jeff Young
61bca4aaa4
A bit of "module" erradication, nameing conventions, and formatting.
2020-11-14 21:21:54 +00:00
Jeff Young
7bd31d5237
Naming conventions.
2020-11-14 18:26:03 +00:00
Dominik Wernberger
28991ddf58
Rename D_PAD to PAD
2020-11-14 09:37:45 +00:00
Dominik Wernberger
54878b04a5
Rename MODULE to FOOTPRINT
2020-11-14 09:37:45 +00:00
Dominik Wernberger
d8cfe834f9
Rename FindModuleByReference to
...
FindFootprintByReference
2020-11-14 09:37:45 +00:00
Dominik Wernberger
a4650e7269
Rename GetModules to GetFootprints
2020-11-14 09:37:45 +00:00
Jeff Young
86b6afd14b
More cleanup of MODULE to see if it fixes SWIG error.
2020-11-13 21:07:36 +00:00
Jeff Young
bdbb68f813
MODULE -> FOOTPRINT.
2020-11-13 16:04:03 +00:00
Jeff Young
52a46341db
More module -> footprint.
2020-11-13 15:16:24 +00:00
Jeff Young
f5443de7f9
D_PAD -> PAD.
2020-11-13 15:16:24 +00:00
Jeff Young
f0d0e17aab
Prepare for MODULE -> FOOTPRINT.
2020-11-13 15:16:24 +00:00
Jeff Young
84dd5108ba
Remove some "class_" prefixes from files.
2020-11-13 15:16:23 +00:00
Jeff Young
f7333ad64a
Update some classnames including archaic zone names.
2020-11-12 10:31:25 +00:00
Wayne Stambaugh
4ea3914d4e
Coverity fixes.
...
CIDs: 312996, 305508, 305509, 305510, 312992, 312997, 312994, 312995,
312968, and 306650.
2020-11-10 08:50:16 -05:00
Jeff Young
115fd1d7f3
Move track-to-zone testing to RTrees.
...
Also implemente pad-to-zone testing and removes the control in the
GUI (now that it's fast).
2020-10-31 15:45:41 +00:00
Seth Hillbrand
9ed6cdd943
Remove GITHUB plugins
...
KiCad github downloads are no longer supported
Fixes https://gitlab.com/kicad/code/kicad/issues/6182
2020-10-29 16:45:04 -07:00
Jon Evans
a900fb319d
Add testcase for bus junctions problem
2020-10-27 23:02:49 -04:00
Ian McInerney
6bd3b0afa4
Various Coverity fixes
2020-10-27 00:25:08 +00:00
Ian McInerney
31e626f279
Cleanup creation of all our smart pointers
2020-10-26 23:52:44 +00:00
Jeff Young
2bee40687f
Cleanup.
...
This test was moved some time ago.
2020-10-26 15:36:07 +00:00
Marek Roszko
1984581c46
Remove common.h from more headers
2020-10-25 22:29:53 -04:00
Marek Roszko
1167862c86
Split wx_filename out of common
2020-10-25 20:01:13 -04:00
Jeff Young
1cb7fbaab1
Fix errors in arc polygonization and test case.
...
1) Tests can't expect accuracies around 1 to work. PCBNew defaults
to 5000.
2) Tests shouldn't artifically expand tolerance just to match the
results.
3) Tests should guarantee that end point is on arc, not just close
to it.
4) Standard polygonization of a circle is inside so splitting the
error needs to increase radius, not decrease.
5) Special-case first and last points so that they're exact.
2020-10-23 23:55:45 +01:00
Seth Hillbrand
19bf594aa0
Remove unused point in polygon test
...
There can be only one.
2020-10-23 12:13:09 -07:00
Tomasz Wlostowski
30830d9127
qa/kimath: trivial test case for POLY_GRID_PARTITION
2020-10-23 01:18:07 +02:00
Jeff Young
909dca71cd
Fix test_sch_sheet_list to run headless.
2020-10-21 13:45:02 +01:00
Seth Hillbrand
f8a4edb1c9
First pass renaming module to footprint
...
This is mostly in comments and the few remainin text strings that
reference module
2020-10-20 20:49:11 -07:00
Roberto Fernandez Bautista
006c462d8f
ADDED: Fillet Tracks tool in pcbnew
...
Select two or more track segments and run the "Fillet Tracks" tool.
2020-10-20 21:23:05 +00:00
Seth Hillbrand
4085757aeb
Remove beginning/ending spaces in translations
...
Adding space padding makes translations more difficult by increasing
string counts
2020-10-20 12:08:04 -07:00
Wayne Stambaugh
8ff51d8899
Eeschema: add schematic sheet page number.
...
The groundwork has now been laid for per sheet instance data. Initially
this only supports sheet page numbers but could be expanded to include
other per sheet instance information.
ADDED: Support for user defined schematic page numbers.
2020-10-19 14:05:45 -04:00
jean-pierre charras
539ac4c214
Remove a few include<wx/wx.h> in many files that do not actually use this include.
2020-10-19 09:00:50 +02:00
jean-pierre charras
f6b4b66a86
Avoid include wx/wx.h in many files that do not actually use this include.
...
Including wx.h includes the full set of wxWidgets include files, that is not good,
and can create some conflicts with some Windows headers on msys2.
2020-10-18 18:21:34 +02:00
Marek Roszko
a1c75748a0
Remove GetChars(), a wxWidgets 2.9 compatibility hack
2020-10-15 20:53:25 -04:00
Jeff Young
1703729269
Require explicit decl of maxError and errorLocations.
...
This should reduce both performance issues and clearance issues.
2020-10-13 13:49:07 +01:00
Jon Evans
2abce40553
Better selection heuristics for highlight tool
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4011
2020-10-12 22:47:31 -04:00
qu1ck
e784743284
Fix pcbnew drawings api
...
Add some basic tests
2020-10-12 16:38:32 +00:00
Michael Kavanagh
c40483d18a
Cleanup: Move KiCad files into plugins folder
2020-10-12 16:36:08 +00:00
Jeff Young
42eecdfd3a
Collapse silk constraints down to one.
...
Also updates the rule syntax help and code-completion with a bunch
of diff-pair and other stuff that hadn't been updated yet.
2020-10-11 13:19:23 +01:00
Jon Evans
61f731aa1d
Fix disambiguation for vector buses with different ranges
...
Previously disambiguation was looking for exact matches,
but vector buses are permitted to have different ranges and
still participate in merging, so they need to be disambiguated.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5925
2020-10-08 22:26:24 -04:00
Tomasz Wlostowski
5e4fb46aef
MINOPTMAX: added OptThenMin() method as syntax sugar
2020-10-09 00:01:26 +02:00
Roberto Fernandez Bautista
9faccda68d
Fix compile errors in MSVC
2020-10-07 19:33:46 +01:00
Tomasz Wlostowski
1d34845683
qa: added missing files
2020-10-07 17:49:27 +02:00
Tomasz Wlostowski
d24e0ea7a0
qa: fix build script
2020-10-07 17:43:12 +02:00
Tomasz Wlostowski
bd27d38d9a
DRAW_PANEL_GAL: added DebugOverlay() method, creating a temporary overlay for drawing debug graphics
2020-10-07 16:36:37 +02:00
Michael Kavanagh
42496a7d62
Convert DRC rules syntax help to markdown
...
Note, the original markdown spec specifies using 4 spaces to indent a
code block (https://daringfireball.net/projects/markdown/syntax )
Wrapping with three backticks doesn't work with this lib. Wrapping
with a single backtick for span elements works ok.
2020-10-06 17:18:35 +00:00
Jon Evans
76bfa47a77
Allow creating new projects when doing a Save As in eeschema
2020-10-05 22:36:26 -04:00
Jeff Young
37906511f5
Class renaming.
...
DRAWSEGMENT -> PCB_SHAPE
EDGE_MODULE -> FP_SHAPE
TEXTE_PCB -> PCB_TEXT
TEXTE_MODULE -> FP_TEXT
2020-10-05 11:55:33 +01:00
Jeff Young
7a4900b8dc
PCB_LINE_T -> PCB_SHAPE_T and PCB_MODULE_EDGE_T -> PCB_FP_SHAPE_T
...
Also updated footprint text and zone types for consistencey.
2020-10-04 16:49:04 +01:00
Jeff Young
85c6cebd77
Rework silk-to-pad checker to handle all solder mask clipping of silk.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5851
2020-10-04 13:21:01 +01:00
Mikolaj Wielgus
d9fd6e549b
Remove "useMils" variable from numeric evaluator
2020-10-03 20:06:56 +00:00
Mikolaj Wielgus
400c15b8eb
Add mils to units, remove useMils variables
2020-10-03 20:06:56 +00:00
jean-pierre charras
3144bab36f
final cleanup about removing useless include
2020-10-03 16:40:36 +02:00
jean-pierre charras
f702da95c7
Minor code cleanup, step2: remove more useless include.
...
fix also a minor compil warning
2020-10-01 15:39:47 +02:00
jean-pierre charras
3f8c9d49f8
Revert "Code cleanup: remove useless wx/wx.h include inside a few files."
...
due to compil issue on Linux
This reverts commit cffccc3970
.
2020-09-30 20:47:20 +02:00
jean-pierre charras
cffccc3970
Code cleanup: remove useless wx/wx.h include inside a few files.
...
in most of files, including wx.h is not necessary, when only 2 or 3 wx files must be included.
Moreover, on windows, including wx.h sometimes create compil warnings about
shadowed vars defined in some specific windows headers.
2020-09-30 20:03:27 +02:00
Seth Hillbrand
bf3cb0b1d0
Standardize pad type enums
2020-09-30 08:38:35 -07:00
Jeff Young
bf67648562
Support optional location reporting in SHAPE collisions.
...
Also fixes a few bugs in the collision routines.
2020-09-28 23:28:33 +01:00
Jeff Young
a2d9acb647
Rename DRC rule function onLayer to existsOnLayer.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5647
2020-09-27 21:33:37 +01:00
Tomasz Wlostowski
d2ed27b500
libeval_compiler: fix string comparison
2020-09-27 16:45:46 +02:00
Tomasz Wlostowski
aebfe4c9f0
drc_proto: restore DRC RTree code (accidential deletion)
2020-09-27 16:45:46 +02:00
Jeff Young
8735ebdc70
Remove one more stale group test.
2020-09-25 23:30:46 +01:00
Jeff Young
0818bd05d2
Remove no-longer-applicable tests from group_saveload.
2020-09-25 21:10:13 +01:00
Jeff Young
6fde9ea8a5
Don't leave stale pointers in groups when exchanging modules.
...
Also simplifies groups so that other areas of code that have to know
about them at least don't have to know as much. One of the simplifications
is to not worry so much about empty groups until save time; others are in
the access logic to parent groups.
Also simplifies user model slightly by removing Merge and Flatten
(which are just ungroup/group and ungroup/ungroup/.../group).
Also allows multiple groups to have the same name. This is useful when
using groups for a classification system.
Fixes https://gitlab.com/kicad/code/kicad/issues/5788
2020-09-25 18:43:19 +01:00
Seth Hillbrand
856cf51fc8
Fix typo
2020-09-23 14:00:39 -07:00
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
Jeff Young
1872d05f72
Fix netlist test golden file to include proper escaping.
2020-07-07 11:18:52 +01:00
Ian McInerney
6672efdf2c
Disable DRC prototype by default
2020-07-06 00:55:36 +01:00
Tomasz Wlostowski
0a4c8cd45c
drc_proto: import latest Jeff & Jon's changes + update copyright headers
2020-07-05 22:44:38 +02:00
Tomasz Wlostowski
e9d37dd7ce
drc_proto: implement QueryWorstConstraint
2020-07-05 22:44:38 +02:00
Tomasz Wlostowski
bc86ea7682
drc_proto: use separate lexer for rule file from current pcbnew DRC
2020-07-05 22:44:38 +02:00
Tomasz Wlostowski
0e0cf5dff8
drc_proto: moving to GetEffectiveShapes()
2020-07-05 22:44:38 +02:00
Tomasz Wlostowski
1cabc1bc0f
qa/drc_proto: rework common clearance code into base class, start working on hole clearance test refactor
2020-07-05 22:44:38 +02:00
Tomasz Wlostowski
b3ce23f0e2
PCB_EXPR_EVALUATOR: implement isPlated virtual property
2020-07-05 22:44:38 +02:00
Tomasz Wlostowski
d57d5d73b2
qa: clearance test works and reports. about to do board outline clearance test
2020-07-05 22:44:38 +02:00
Tomasz Wlostowski
bd19892cd0
qa/drc_proto: clearance test seems to work with conditional rules, need to clean up & add reporting
2020-07-05 22:44:38 +02:00
Tomasz Wlostowski
6bddc4bdd6
qa: more tests for libeval_compiler
2020-07-05 22:44:38 +02:00
Tomasz Wlostowski
085698d17c
drc_proto: wip
2020-07-05 22:44:38 +02:00
Tomasz Wlostowski
aaa91655aa
libeval_compiler: integrated in common/
2020-07-05 22:44:38 +02:00
Tomasz Wlostowski
b82ec2161f
libeval_compiler: initial version
2020-07-05 22:44:38 +02:00
Tomasz Wlostowski
bff209b07c
qa: disable single test in PROPERTY test suite due to boost incompatibility
2020-07-05 22:44:38 +02:00
Maciej Suminski
f084a86601
Properties replacement method
...
Adds a possibility to replace properties inherited from base types with
a more specific ones. For example, such properties may have:
- different meaning which should be reflected in property name
(e.g. TRACK::{G,S}etWidth() sets actual track width, but
VIA::{G,S}etWidth() modifies the diameter)
- different set of possible values (e.g. BOARD_CONNECTED_ITEM::SetLayer()
should accept any copper layer, but MODULE::SetLayer() works only with
F.Cu and B.Cu)
2020-07-05 22:44:38 +02:00