Tomasz Wlostowski
bd0bd5b84b
drc: support for skew & via_count constraints. Length test now generates a length report
2020-09-27 16:45:46 +02:00
Tomasz Wlostowski
f38147c201
drc: add support for via_count constraint to the parser
2020-09-27 16:45:46 +02:00
Tomasz Wlostowski
7b7c3bde88
pcb_new: CONNECTIVITY_DATA now keeps a cache of DRC from-tos
2020-09-27 16:45:46 +02:00
Tomasz Wlostowski
bc7369d70c
pcbnew: include silk2silk and length/skew DRC tests in the makefile
2020-09-27 16:45:46 +02:00
Tomasz Wlostowski
8d206a9ef0
PCB_EXPR_EVALUATOR: added fromTo() method
2020-09-27 16:45:46 +02:00
Tomasz Wlostowski
2258c861c9
drc: initial version of matched trace lengths test provider
2020-09-27 16:45:46 +02:00
Tomasz Wlostowski
2bacfe8202
drc: use R-Tree intersection for silk clearance tests
2020-09-27 16:45:46 +02:00
Tomasz Wlostowski
b215361b30
drc: default constraints for silk2pad, silk2silk
2020-09-27 16:45:46 +02:00
Tomasz Wlostowski
26e7dc6e14
drc: added length/skew constraint types
2020-09-27 16:45:46 +02:00
Tomasz Wlostowski
abe354773f
drc: initial version of tree intersection (QueryCollidingPairs)
2020-09-27 16:45:46 +02:00
Tomasz Wlostowski
8405793e57
drc: add error codes for length/skew/via count violations
2020-09-27 16:45:46 +02:00
Tomasz Wlostowski
201a630740
drc: extend drc-rules file format with length and skew tokens
2020-09-27 16:45:46 +02:00
Tomasz Wlostowski
6578a76b72
drc: first R-tree based test (silk to pad clearance)
2020-09-27 16:45:46 +02:00
Tomasz Wlostowski
43404d4577
drc: be more verbose when skipping LVS due to lack of schematic netlist
2020-09-27 16:45:46 +02:00
PJM
9544c58bd7
Pcbnew: Cross-probe - Get correct zoom direction when view flipped
...
CHANGED: When Pcbnew has the view flipped, it causes cross-probe zooming
to go the wrong direction. Instead of zooming in to the selected part,
it zooms very wide. The problem is the x dimension of the screen size
becomes a negative value when the view is flipped, so "fabs()" is used
to correct it.
Fixes https://gitlab.com/kicad/code/kicad/issues/5157
2020-09-27 13:29:02 +00:00
jean-pierre charras
6b958ff4e0
Move specialized plotter classes from plotter.h to specific plotter_xx.h
...
plotter.h contains now only a header common to all plotters.
The code does not actually change, but it allows modifying a specific plotter
without recompiling most of kicad files.
2020-09-27 09:54:39 +02:00
Ian McInerney
fc565edb33
Add a palette to the toolbars to display groups of actions
...
This adds a palette to toolbar items that displays groups
of actions when long-pressed on a button.
2020-09-27 01:00:44 +01:00
Jeff Young
23938356b9
Move "selection copied" to the status bar.
2020-09-27 00:26:18 +01:00
Jeff Young
4c21668940
Use high-contrast layer to inform clearance rules for outline.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5797
2020-09-27 00:11:51 +01:00
Jeff Young
7f33c229d8
Allow selection of nested items (ie: pads) inside an entered group.
...
Also moves some group-related functionality from BOARD to PCB_GROUP.
2020-09-26 20:35:52 +01:00
Jon Evans
b6e4b7bf7d
Fix order of initializing tools when loading board
...
Also add a few safeguards against invalid situations
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5801
2020-09-26 14:45:16 -04:00
Jeff Young
7300640da0
Reload DRC rules on MODEL_RELOAD.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5794
2020-09-26 16:49:09 +01:00
Jeff Young
f8875bc5a6
Move std::contains to alg::contains.
2020-09-26 14:42:40 +01:00
Jeff Young
035abe960c
Fix copy/paste of groups.
...
We can't check for selected on parent groups because the order isn't
defined (and the parent may not yet have been selected). Check for
inclusion instead.
2020-09-26 12:40:48 +01:00
Jeff Young
d7e80f8008
Add std::contains() to simplify a lot of code.
2020-09-26 12:40:32 +01:00
Jeff Young
e32c113249
A bit more syntax help for layers.
2020-09-26 10:20:10 +01:00
Jeff Young
44af3978af
Re-implement undo/redo of group ops in a pointer-safe way.
2020-09-26 10:03:13 +01:00
Jon Evans
92c8ed2943
Fix non-copper zone layer ordering
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5350
2020-09-25 23:10:52 -04:00
Jon Evans
597a212313
Fix saving of filled polys with custom layer names
2020-09-25 22:38:01 -04:00
Jon Evans
6df4a0cc7f
Clean up asserts when running DRC from Python
2020-09-25 21:28:04 -04:00
Jon Evans
bb8aa70ad0
Fix copy pasta
2020-09-25 21:28:04 -04:00
Jon Evans
f4a8275f3e
Allow selecting pads of locked footprints when filter allows
...
Before the selection filter, this heuristic made sense, but
now there is an explicit toggle to disable selection of locked
items, so we want to be able to select pads when that toggle
is enabled.
2020-09-25 21:28:04 -04:00
Jeff Young
ba0bed7a45
Groups don't go in the view, but they do go in an overlay when entered.
2020-09-25 22:51:16 +01:00
Jeff Young
2ae4fecaea
Paste items into group when group has been "entered".
2020-09-25 22:48:40 +01:00
Jeff Young
eb97fe8386
Fix bug when entered group is immediate parent.
2020-09-25 22:14:22 +01:00
Jeff Young
b4672c64ea
Fix Group Properties dialog grow behaviour.
2020-09-25 21:14:08 +01:00
Jeff Young
955ba0a483
Add LAYER_ANCHORS to the always-active layer set.
...
Otherwise you can't see your groups in high-contrast mode.
Fixes https://gitlab.com/kicad/code/kicad/issues/5769
2020-09-25 19:42:06 +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
PJM
d1322e7d1d
Refactor GetDocumentExtents()
...
CHANGED: GetDocumentExtents() in 'eda_draw_frame.h' now has a bool
parameter "aIncludeAllVisible" with a default value "true" which makes
it behave as it did before adding parameter. If "aIncludeAllVisible"
is false, the returned bbox ignores some items depending on which
program it is running in.
CHANGED: Made "Zoom to Objects" use only PCB edge in Pcbnew. This
allows text, notes, etc outside the PCB edge to be excluded in the
zoom calculation.
CHANGED: Added "Zoom to Objects" to Pcbnew main menu, and to RMB context
menus for Eeschema and Pcbnew.
Fixes https://gitlab.com/kicad/code/kicad/issues/5787
2020-09-25 00:31:56 -07:00
Jon Evans
0783669633
CHANGED: Design rules files now use .kicad_dru extension
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5763
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5444
2020-09-24 21:26:23 -04:00
Jeff Young
ae3ef90f7d
Add location points to dimension message bar info.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5673
2020-09-25 00:43:30 +01:00
Ian McInerney
bba29a1036
Always show the track and via menu in the router context menu
2020-09-25 00:17:54 +01:00
Seth Hillbrand
9937f52f06
Fix crash when not wrapping search
...
The iterator at the end of the search is already set the end(), so we
cannot increment it safely
2020-09-24 15:57:49 -07:00
Ian McInerney
672756a018
Move the router tools to a TOOL_MENU context menu
...
The previous way of displaying a context menu was being
usurped by the selection tool because it was displaying its
menu before DispatchContextMenu was called, and all other tools
explictly use the TOOL_MENU system.
Fixes https://gitlab.com/kicad/code/kicad/issues/5762
2020-09-24 23:51:34 +01:00
Jon Evans
1319885285
Wrap ZONE_FILLER to allow use without commit from Python
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5646
2020-09-24 18:08:23 -04:00
Jon Evans
ff652d5375
Fix saving colors modified outside of preferences
2020-09-24 17:29:40 -04:00
Jeff Young
e16b7626cd
Implement GetMsgPanelInfo for dimensions.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5673
2020-09-24 22:23:59 +01:00
jean-pierre charras
dfaf0851fe
Fix broken layer names used when saving a footprint from library.
...
This issue was also existing when copying to the clipboard.
Saving boards was not affected.
Instead of using canonical layer names, the user layers names were used.
Fixes #5779
https://gitlab.com/kicad/code/kicad/issues/5779
2020-09-24 20:01:24 +02:00
Wayne Stambaugh
feeb925e61
Pcbnew: add user defined layer colors to color preferences panel.
2020-09-24 13:51:18 -04:00
Jeff Young
f0739315f6
Use title-bar-style for group names.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5769
2020-09-24 16:35:20 +01:00
Wayne Stambaugh
564f363c57
Pcbnew: fix user defined layer bugs.
2020-09-24 10:19:10 -04:00
Jeff Young
5ad76a237e
Moving checking the rules up a level so we can properly exit DRC dialog.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5778
2020-09-24 15:17:46 +01:00
Jeff Young
3e366a901f
Expose pad type in property system.
...
Also corrects the spelling of some enum items so they match the
menus (otherwise folks will never be able to figure out what they
are).
2020-09-24 14:41:02 +01:00
Jeff Young
dba42ebed0
ADDED Properties Dialog for groups.
...
ADDED memberOf() function for DRC rule expressions.
Also fixes a bug in several of the pickers where the event wasn't
being correctly passed.
Fixes https://gitlab.com/kicad/code/kicad/issues/5647
2020-09-24 14:41:02 +01:00
jean-pierre charras
446a9ca866
Round-rect pads: use a circle to draw degenerated shapes.
...
A degenerated shape is a round-rect pads with same X and Y size, and a
radius very near 50% of the size.
Fixes #5768
https://gitlab.com/kicad/code/kicad/issues/5768
2020-09-24 11:05:56 +02:00
jean-pierre charras
aa6158a9fb
fix a minor wxWidgets alert
2020-09-24 10:18:28 +02:00
Jon Evans
690575e2b6
Improve edit point legibility with a hover state
2020-09-23 21:27:23 -04:00
Seth Hillbrand
856cf51fc8
Fix typo
2020-09-23 14:00:39 -07:00
Seth Hillbrand
b31eafdfa8
Restore missing layer check
2020-09-23 13:33:42 -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
Jeff Young
660cdcb056
More defensive coding for wxDataViewCtrl selection access.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5747
2020-09-23 20:31:48 +01:00
Jeff Young
4a0d469cec
Back out zone layer misunderstanding and make types clearer.
2020-09-23 20:02:21 +01:00
Jeff Young
1f284111b0
Faster algorithm for zone-to-zone connectivity test.
2020-09-23 18:51:52 +01:00
Jeff Young
e0ee420cb6
Add cross-reference processing to dimension prefix and suffix.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5752
2020-09-23 18:01:50 +01:00
Jeff Young
8b2dd76efe
Update syntax help.
2020-09-23 17:52:44 +01:00
Jeff Young
f5af17e1ba
Fix file somehow left out of last commit.
2020-09-23 17:51:48 +01:00
Jeff Young
6dae769944
Progress reporting for connectivity tests.
...
Also makes via annulus terminology more consistent.
2020-09-23 16:28:00 +01:00
Jeff Young
167ae374fd
Don't allow two DRC runs at the same time.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5745
2020-09-23 14:10:07 +01:00
Jeff Young
7d3eee8cf9
Move DebugZoneFiller to advanced config.
...
This will hopefully keep it from accidentally getting checked in
again.
2020-09-23 10:52:44 +01:00
Jeff Young
524603de14
Fix debug flag that shouldn't have been merged.
2020-09-23 10:24:32 +01:00
Jon Evans
8f01771138
ADDED: Python API to run DRC and write a report
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2030
Note: this is a fairly basic API, you can't retrieve
individual DRC items. This is intended to be a hold-over
until we write the new Python API that can expose full
functionality (since we do not want to wrap the entire
DRC system with SWIG)
2020-09-22 20:25:44 -04:00
Jon Evans
8ef888e115
Add a path for scripting console to work from build dir for debugging
2020-09-22 20:25:44 -04:00
Jeff Young
6d18f20093
ADDED constraints reporter for diagnosing constraints.
...
Also fixes an issue with via type property and makes property
comparisons in rule case-insensitive.
Fixes https://gitlab.com/kicad/code/kicad/issues/5754
2020-09-23 01:14:35 +01:00
Jeff Young
fb7f98b51d
Implement visual zone dumping and fix the default fill algo setting.
2020-09-23 01:14:35 +01:00
Jeff Young
7e5a6371c1
Cleanup.
2020-09-23 01:14:35 +01:00
Jeff Young
4d8537fcfa
Handle multi-layer zones in connectivity.
2020-09-23 01:14:35 +01:00
Mark Roszko
610f0372d3
Initialize Py_SetPythonHome for msvc/vcpkg
2020-09-23 00:02:32 +00:00
PJM
e77b7e3360
Make MMB double click perform 'Zoom to Fit'
...
ADDED: Make middle mouse button double click do a 'Zoom to Fit'
in Eeschema, Pcbnew, and Gerbview. Ctrl-MMB does a 'Zoom to Objects'
in Eeschema.
Fixes https://gitlab.com/kicad/code/kicad/issues/1988
2020-09-22 23:21:44 +00:00
Jon Evans
5d78e9512f
Don't check for a control that doesn't exist
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5759
2020-09-22 18:00:12 -04:00
jean-pierre charras
9efc91c107
fix 2 minor compil warnings and make a sentence more easily translatable
2020-09-22 16:56:55 +02:00
Seth Hillbrand
4a86daa86d
pcbnew: Restore missing pad size
...
After adjusting the pad size, we need to restore it when we
short-circuit the drawing routine
Fixes https://gitlab.com/kicad/code/kicad/issues/5702
2020-09-22 06:55:49 -07:00
Mark Roszko
7656663a2f
Fix Python integration to build with vcpkg
...
* Add vcpkg support to find Oython using CMake
* Fix pid_t conflict with python
* Fix COMPILER conflict with python
2020-09-22 12:39:05 +00:00
Jon Evans
acf13a1869
ADDED: Orthogonal dimension object
2020-09-21 23:55:02 -04:00
Jon Evans
e345e7d17a
Allow creating an empty project when saving a board standalone
2020-09-21 23:55:02 -04:00
Jon Evans
18e17abd6a
Rename "Keepout" to "Rule Area"
...
These objects can now be used in advanced DRC rules and
not just for keeping things out. Also remove the restriction
that at least one of the "basic" keepout rules must be set,
so that these areas can be used for more advanced rules.
2020-09-21 23:55:02 -04:00
Seth Hillbrand
408cd20294
drc: Test all zone layers for intersection
...
Zones can span multiple layers so we need to test each explicitly.
Fixes https://gitlab.com/kicad/code/kicad/issues/5750
2020-09-21 20:40:50 -07:00
Seth Hillbrand
ffa1947056
pcbnew: Simplify copy routine
...
Choose a decent copy reference from the mouse position when copying.
Don't break UX standards by requiring mouse action when activating copy.
2020-09-21 13:28:21 -07:00
Jeff Young
4badcba4c2
Zone fill performance improvements
...
1) better load-balancing for deferred zones
2) sort zones by priority before filling
3) retire BOARD::GetZoneList() which had a horrible performance profile
4) implement a zone bounding box cache
5) better checks for IsCancelled() so long fills can be exited
Fixes https://gitlab.com/kicad/code/kicad/issues/5738
2020-09-21 21:09:58 +01:00
Ian McInerney
d3dd1c45b6
Disable editing tools on the canvas when DRC is running
2020-09-21 20:39:46 +01:00
jean-pierre charras
456735f803
VIEW::ViewGetLOD() returns double now instead of int.
...
ViewGetLOD() returns the minimal value of a zoom to show an item.
However a zoom is a double, and using int as minimal value does not
allows setting a correct value in some cases.
2020-09-21 17:55:24 +02:00
jean-pierre charras
492a634413
Fp editor: Fix bug when moving fp anchor: pad shapes where not updated on screen.
2020-09-21 14:43:26 +02:00
Jeff Young
719e8d276f
Use footprint editor display and window settings for footprint viewer.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5737
2020-09-21 13:13:09 +01:00
Ian McInerney
b1160660d9
Check return value for zone fill in VRML exporter
...
If the zone fill failed, then don't add the zone to the
exported VRML because it might not be correct.
Also test that the Python command in DIALOG_SCRIPTING worked.
This dialog actually isn't used anywhere currently, so it
could in theory be removed - but it is simple enough and
it provides a decent testing dialog that it is more work to remove
it.
2020-09-21 12:32:30 +01:00
Ian McInerney
9e6a1225db
Catch exception when creating app settings objects
...
These settings objects could be created in a constructor/destructor
so we should catch the exception since those are noexcept.
Also change the settings trace to match the other kicad traces
as KICAD_SETTINGS
2020-09-21 12:07:51 +01:00
Ian McInerney
542f447daa
DRC tool: Ensure all calls to the dialog are guarded by null checks
2020-09-21 12:04:41 +01:00
Jeff Young
6020b70596
Display green badge for zero errors or zero warnings.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5735
2020-09-21 11:59:27 +01:00
Jeff Young
c6fb799fcd
Restore severity in saved DRC/ERC reports.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5733
2020-09-21 11:59:27 +01:00
Jeff Young
1b77c4c270
Mention rule priority system in Syntax Help and Clearance Report.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5647
2020-09-21 11:59:27 +01:00
Jeff Young
865249c227
Handle two panels both referencing same colour theme.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5185
2020-09-21 11:59:27 +01:00
jean-pierre charras
4db4a0a46f
Pcbnew, PCB_PAINTER: very minor enhancement for commit 2751c677
2020-09-21 08:56:53 +02:00
Jeff Young
650cff5b39
Shorten solder mask alert and provide a link for fixing.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4798
2020-09-20 21:26:39 +01:00
Jeff Young
b3a369bd7c
Remove zone areas outside board edges.
...
The first attempt to address this which added back in the zones
with a 0 netcode didn't pick up those with a netcode which weren't
isolated (ie: because there were unplaced footprints outside the
board edges).
The new system gives up on trying to adjust the insulated island
list and just makes a second pass.
Fixes https://gitlab.com/kicad/code/kicad/issues/5658
2020-09-20 20:36:01 +01:00
Dominik Wernberger
884bed7e12
Fix that all file types are shown in file dialog
2020-09-20 16:04:44 +00:00
Jeff Young
d9a94dc538
Don't allow selection of PCB_NETINFO_T.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5729
2020-09-20 16:41:39 +01:00
jean-pierre charras
2751c67746
Pcbnew, PCB_PAINTER: provides an option to show footprints bounding box.
...
This is only for bounding box debug purposes, and is not activated.
2020-09-20 16:30:23 +02:00
Jeff Young
1039fb1bc5
Minor refinement to Import Settings from Board dialog.
...
Also some defensive code to protect against an ASAN stack buffer
underflow.
Fixes https://gitlab.com/kicad/code/kicad/issues/5660
2020-09-20 13:55:59 +01:00
Jeff Young
ad2407867a
Disable Save Report while DRC is running.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5723
2020-09-20 13:55:58 +01:00
Jeff Young
e27ff1dd3c
Add Select All to multi-line text properties.
2020-09-20 13:55:58 +01:00
Ian McInerney
89dcc46898
Coverity cleanup and remove unused variables
2020-09-20 02:20:41 +01:00
Ian McInerney
65bd1ee9a4
Add a new BITMAP_BUTTON widget and use it in the appearances panel
...
This button behaves like an AUI button, so it is more suited
to being on panels without a border.
2020-09-20 01:43:27 +01:00
Ian McInerney
f82ad61c90
More warning cleanup
2020-09-20 01:43:27 +01:00
Jeff Young
4558aff24b
Add textVar cross-reference support to Dimensions.
...
Also adjusts spacing in the dialog.
Fixes https://gitlab.com/kicad/code/kicad/issues/5664
2020-09-19 20:42:30 +01:00
Jeff Young
13f1de8e73
Forgot a bunch of files from last commit.
2020-09-19 19:53:58 +01:00
Jeff Young
64fa400b19
Ease translation a bit.
...
Also improves the SNR and consistency of the menu item text. For
instance, a position is rarely useful, while relative sizes can be.
Also removes some unnecessary repitition, such as "Graphic Rectangle"
when "Rectangle" communicates the necessary information.
2020-09-19 18:49:06 +01:00
Jeff Young
db5de738ae
Apply rules commutatively.
2020-09-19 18:48:11 +01:00
jean-pierre charras
121ccc3a10
Fix broken MODULE::HitTest()
...
HitTest was using a rotated bounding box, but the bounding box
is already right.
2020-09-19 19:37:58 +02:00
jean-pierre charras
55089f4732
Better strings for translation (minor fix)
2020-09-19 19:02:19 +02:00
Seth Hillbrand
d227b53e1a
Fix broken translation string
2020-09-19 09:13:30 -07:00
Jeff Young
d402d93487
Implement shape routines for DIMENSION_Ts.
...
This allows them to participate in DRC and PNS.
Fixes https://gitlab.com/kicad/code/kicad/issues/5712
2020-09-19 14:16:00 +01:00
Jeff Young
ece2ae9805
Don't capture commands in the router eventloop that it doesn't process.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5692
2020-09-19 12:08:18 +01:00
Jeff Young
0763a8962c
Implement boolean not processing in expression language.
...
Also adds some more error catching to be more robust in the face
of malformed customer rules.
Fixes https://gitlab.com/kicad/code/kicad/issues/5694
2020-09-19 12:08:18 +01:00
Seth Hillbrand
23f7ba6ee4
Ensure that we had a pad remaining before painting
...
Null polygons should not be send to the painter, so we need to check to
see if our mask has removed the complete pad before painting
Fixes https://gitlab.com/kicad/code/kicad/issues/5702
2020-09-18 22:33:24 -07:00
qu1ck
5e0d79449e
Fix pcbnew api for DIMENSIONs
...
DIMENSION is now an abstract class and we should cast to
concrete implementations instead.
Also change broken 'return none' to throwing an exception
which will give feedback about what is not supported by
the API instead of silently returning a non-object.
2020-09-18 22:52:47 +00:00
Jeff Young
2799faf52b
Add syntax example using "not".
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5694
2020-09-18 22:39:51 +01: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
Jeff Young
73fc00ee69
Collapse VIA_TOO_SMALL and MICROVIA_TOO_SMALL into VIA_DIAMETER.
...
We'll also check too large in future....
2020-09-18 16:50:41 +01:00
Jeff Young
f340636f70
When knocking out higher-priority zone use fill, not outline.
...
Also fixes a bunch of naming issues, primarily with lowercase for
protected variables, but also some for consistency with other parts
of the code.
Also changes the zone fill radio buttons in Board Setup to be more
generic referring to legacy vs. current, and to have tooltips.
Fixes https://gitlab.com/kicad/code/kicad/issues/5583
2020-09-18 16:45:41 +01:00
Jeff Young
90b147a914
Add DRC_ITEM definition for DRC_VIA_DIAMETER.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5695
2020-09-18 13:32:44 +01:00
Jeff Young
079bc52f6d
Minor cleanup.
2020-09-18 13:14:08 +01:00
Jeff Young
53297c78a6
Don't eat commands we don't need in move tool.
...
This also fixes the dynamic ratsnest issue.
Fixes https://gitlab.com/kicad/code/kicad/issues/5692
2020-09-18 13:14:08 +01:00
Ian McInerney
34527630d0
Small cleanup
2020-09-18 11:17:37 +01:00
Ian McInerney
a53f3899d4
Initialize variables properly
2020-09-18 11:17:37 +01:00
Ian McInerney
aa0b0ca7e7
Fix some warnings in the cadstar importer
2020-09-18 11:17:37 +01:00
PJM
5feb4d3a7a
Pcbnew: Check if user wants to warp mouse to origin of moved object
...
CHANGED: When moving a footprint, Pcbnew was always warping the mouse
to the origin of the moved object regardless of the state of the "Warp
mouse to origin of moved object" checkbox. This MR now honors the
state of the checkbox when moving footprints.
Fixes https://gitlab.com/kicad/code/kicad/issues/5279
2020-09-18 02:47:59 +00:00
Jeff Young
81b523f9a4
Make sure the board itself is in the item map.
...
Also makes closing the DRC dialog a bit more foolproof.
Fixes https://gitlab.com/kicad/code/kicad/issues/5665
2020-09-18 00:53:14 +01:00
Jeff Young
8dd725469f
Process properties command locally within drawing tools.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5612
Fixes https://gitlab.com/kicad/code/kicad/issues/5615
2020-09-17 22:32:22 +01:00
Jeff Young
e202dba386
Be careful not to unload current project if settings imported from it.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5684
2020-09-17 20:56:51 +01:00
Jeff Young
7b2a111a1c
Implicit rules go first so that other rules will take priority.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5687
2020-09-17 20:13:39 +01:00
Jeff Young
0f3d2147aa
Performance enhancements for DRC.
2020-09-17 20:13:39 +01:00
Jeff Young
8e530db633
Reporting must be kept inside the REPORT macro.
...
Reporting is run on a single clearance where performance doesn't
matter much. Doing the string building during a DRC, however, kills
performance.
2020-09-17 20:13:39 +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
jean-pierre charras
e8d09cd998
Pcbnew: fix incorrect creation of scripting/plugins in user directory.
...
Initialize Python scripting even if this directory cannot be created
It is not a mandatory dir, and not initializing python scripting can create crashes.
Fixes #5667
https://gitlab.com/kicad/code/kicad/issues/5667
2020-09-17 10:47:21 +02:00
jean-pierre charras
a1439881b7
Fix a collision name with a Windows header.
2020-09-17 07:46:02 +02:00
Seth Hillbrand
45ca1709bb
Unify scripting dirs and open user-based
...
This consolidates python scripting in two locations: the system-wide
package-based location and the user configuration location. It also
updates the "Show Scripting Folder" action to open the user
configuration location instead of the package-based one.
Fixes https://gitlab.com/kicad/code/kicad/issues/5652
Fixes https://gitlab.com/kicad/code/kicad/issues/5115
2020-09-16 20:09:23 -07:00
PJM
f3586ccd45
Pcbnew: Make 'GetBoundingBox' return correct answer when passed false
...
CHANGED: 'GetBoundingBox' has a variant that accepts a boolean that
determines if invisible text is included in the Bbox calculations. The
'IsVisible' function for the value and reference strings doesn't
factor in if the layer it's on is visible or even in the PCB stackup,
so 'GetBoundingBox' returns a bbox that factors in invisible text
regardless of what it's passed. This MR fixes that problem.
CHANGED: Refactored the original 'GetBoundingBox' function that doesn't
take a parameter. It now just calls the variant that does take a
parameter and passes it 'true'. The two versions had a lot of
duplicate code and this eliminates it.
Note: Issue 5629 might be better solved at the PCB module level, but this
does fix the known problems caused by it which were discovered in
'GetBoundingBox'.
Fixes https://gitlab.com/kicad/code/kicad/issues/5629
2020-09-17 00:59:07 +00:00
Jon Evans
e9b627bfd8
ADDED: Center marker dimension type
2020-09-16 20:55:11 -04:00
Jon Evans
5109857883
Disable deselect net from main context menu
...
Right now we can't track the intended item to deselect
when there's an active selection already.
Having this feature available just from the appearance panel
should be fine.
2020-09-16 20:55:11 -04:00
Marek Roszko
a82edb60fe
Rotate the bounding box for hit tests on the fly
2020-09-16 23:29:21 +00:00
Marek Roszko
721c30e464
Make SetPosition and SetOrientation simply adjust the bounding box rather than continously recalculate it.
...
SetPosition is called on every pixel of a move operation which could be performance impacting on some systems.
2020-09-16 23:29:21 +00:00
Jon Evans
4a25db599e
ADDED: Deselect net action
...
You can now deselect nets and netclasses (i.e. remove them from the
active selection) via the context menus in the appearance panel
2020-09-16 19:10:12 -04:00
Jeff Young
2b43ffd12d
Better error reporting; better nullptr safety.
...
Also clears the marker lists before running a DRC, and sets
the drcRun flags afterwards so that the notebook tab counts
get updated.
Fixes https://gitlab.com/kicad/code/kicad/issues/5659
2020-09-16 22:14:41 +01:00
Jon Evans
db40e0c595
Fix dimension point editor ordering
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5656
2020-09-16 12:05:30 -04:00
Jeff Young
ce3819abf8
Remove redundant clearances from DRC dialog. Fold progress bar in.
2020-09-16 16:06:29 +01:00
Jeff Young
c0f83b30d3
Minor reformatting and performance improvement.
2020-09-16 16:04:28 +01:00
Tomasz Wlostowski
b993a29695
drc: fix heap overflow
2020-09-16 13:45:12 +02:00
jean-pierre charras
e137d61b29
Fix typo
2020-09-16 11:46:16 +02:00
jean-pierre charras
c4b66e7cd3
drc/drc_test_provider: Fix a crash due to code change, at least on Windows.
...
The new code has not a lot of change, and is a bit cleaner.
2020-09-16 11:46:16 +02:00
Jeff Young
0ca09abbd3
Don't assume colour theme preview board will have a DRCEngine.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5650
2020-09-16 10:42:25 +01:00
jean-pierre charras
652a59b781
Fix null pointer use
2020-09-16 09:21:39 +02:00
Jon Evans
75ffce1a0b
ADDED: Leader dimension object
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5555
2020-09-15 23:37:38 -04:00
Seth Hillbrand
0f22e8e2fe
Make SWIG aware of PYTHON3 for its bindings and remove threads
...
This removes the threading from the SWIG interface (it was supposed to
be off by default) and adds support for Python3 bindings when supported
by the system
2020-09-15 19:46:53 -07:00
Ian McInerney
ea06c16255
Cleanup PCB_GROUP objects on the board when deleting the board
2020-09-16 02:04:17 +01:00
Ian McInerney
8bd77c4fe7
Rename the ITEM_SET types to be descriptive of their contents
...
Now that we have one set type for BOARD_ITEMs and another for SCH_ITEMs
it is better to explictly say if they are board or schematic sets.
2020-09-16 02:04:17 +01:00
Jeff Young
43ab963650
Don't expect footprint viewer frame to have a DRC engine.
2020-09-16 01:10:16 +01:00
Jeff Young
cdbe2fd2d2
User terminology specific to Change Footprint/Symbol.
...
Also implements separate session settings for the reset checkboxes
for Change Footprint and Update Footprint.
Fixes https://gitlab.com/kicad/code/kicad/issues/5614
2020-09-16 00:15:26 +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
Ian McInerney
6a7266d589
Only update DRC progress reporter if the reporter exists
...
The DRC engine might not have a reporter when run headless
2020-09-15 21:18:58 +01:00
Jeff Young
b6a8e165c3
Don't allow schematic/pcb DRC tests when in standalone mode.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5635
2020-09-15 21:14:11 +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
Seth Hillbrand
67a7aa8ba4
Make snapping size grid-dependent
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5638
Fixes https://gitlab.com/kicad/code/kicad/issues/5588
2020-09-15 12:07:34 -07:00
Seth Hillbrand
08bf5f4b4e
ADDED: 45° snapping for rectangles aka Squares
...
The snap obeys only the Ctrl key and not the global preference setting
for drawsegments because rectangles are _always_ on H/V lines when drawn
Fixes https://gitlab.com/kicad/code/kicad/issues/5607
2020-09-15 11:22:26 -07:00
Roberto Fernandez Bautista
5467729611
Fix incorrect comparison in CADSTAR PCB Archive Importer
...
Also avoid use of magic numbers in case KiCad internal units ever change
2020-09-15 17:16:01 +00:00
Seth Hillbrand
aa7e021bfc
Remove translated null strings
...
Also improves translatability by separating clauses
2020-09-15 08:35:09 -07: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
Seth Hillbrand
52d9a47d5b
Fix endless loop in drc
...
Need to allow looping to negative when decrementing
2020-09-14 12:25:25 -07:00
jean-pierre charras
4cda653dbd
dialog_drc: fix a minor issue when saving dialog drc options.
...
Fixes #5623
https://gitlab.com/kicad/code/kicad/issues/5623
2020-09-14 17:45:39 +02:00
jean-pierre charras
ff0a728753
Fix a few I18N issues.
2020-09-14 10:02:07 +02: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
d47d119d5f
Compile layer test into CONSTRAINT_WITH_CONDITIONS.
...
Also processes constraints in correct order for priority (reversed)
and removes multiple-expression-conditions for a single constraint
(which is not 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
5d9301d394
Adjust isErrorLimitExceeded so it can be used for severity==IGNORE.
2020-09-13 17:08:24 +01:00
jean-pierre charras
9f44d72923
Zone filler: fix regression: zone with no nets are now clipped to board outlines.
...
Due to code changes, only zones belonging a net were considered, and
zones with no nets were not examined when removing islands.
Fixes #5608
https://gitlab.com/kicad/code/kicad/issues/5608
2020-09-13 10:38:16 +02:00
Jon Evans
2380c4384a
Fix alignment of label in dimension properties
2020-09-12 13:16:20 -04:00
Jon Evans
d7e9411049
Filter out footprints that are larger than the viewport in either direction
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2448
2020-09-12 13:16:10 -04:00
Jon Evans
a80190e206
Make sure auto-unit dimensions are updated on board load
2020-09-12 11:52:59 -04:00
Jon Evans
3940e20fcb
Expose extension offset and zero suppression settings
2020-09-12 11:52:59 -04:00
Seth Hillbrand
1703657fb5
Decrease default snap range
...
The snap range needs tuning to preference and monitor resolution. This
shifts the default range down for users until the customization bits are
implemented.
2020-09-12 08:34:21 -07:00
Jon Evans
e40287d327
Fix auto units to work when drawing new dimensions
2020-09-12 10:30:33 -04:00
Jon Evans
0347515cec
Support text expansion in dimensions
2020-09-12 10:23:19 -04:00
Jon Evans
9d93f60fc4
Fix parsing old dimensions
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5600
2020-09-12 08:25:54 -04:00
jean-pierre charras
1aa38b8f82
drc_rule.cpp: avoid crash with a incorrect (broken or too old?) drc_rule file.
...
The crash was due to a null pointer not tested.
2020-09-12 11:26:53 +02:00
jean-pierre charras
a98ea2fb2e
Fix a minor wxWidgets alert.
2020-09-12 10:52:12 +02:00
Jon Evans
30a428677f
Change rotation command to only impact dimension text
2020-09-11 21:12:36 -04:00
Jon Evans
0e9997d9ca
Add new dimension features to board design defaults
2020-09-11 21:12:36 -04:00
Jon Evans
76c4c959e6
Implement new dimension properties
...
- Automatic units mode (follow UI units)
- New text and number formatting options
- Automatic/manual text orientation control
- New text positioning options (inline and manual)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4280
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4497
2020-09-11 21:12:36 -04:00
Jon Evans
f1b7903a7d
WIP: Implement new dimension properties
2020-09-11 21:12:36 -04:00
Jon Evans
ae7877c6cb
Migrate dimension precision
2020-09-11 21:12:36 -04:00
Jon Evans
b11e315d10
Refactor DIMENSION to hide internal details; add some new properties
...
This is a board file format change to account for the new properties.
Also, we now only store the critical information about the dimension's
geometry in the board, rather than storing every drawn line.
The DIMENSION object is now an abstract base, and ALIGNED_DIMENSION
is the implementation that exists today (we will add more dimension
types in the future)
2020-09-11 21:12:36 -04:00
Jon Evans
50b92379c8
Add new dimension properties dialog
2020-09-11 21:12:36 -04:00