Commit Graph

11914 Commits

Author SHA1 Message Date
jean-pierre charras 60dbda9dd2 Pcbnew: try to fix an issue about frame title.
for Pcbnew, this issue (see bug 8404) is only seen on OSX.
So I am blindly trying to add to Pcbnew a fix made for Eeschema.
2021-05-19 17:28:15 +02:00
jean-pierre charras be3a08bfa7 Pcbnew printing: fix missing zones on non copper layers. 2021-05-19 10:05:49 +02:00
Jeff Young ed2f2257ce Remove footprint locking in the footprint editor.
(It doesn't make any sense there as the position is always {0, 0} in
the editor.)

For discussion see:
https://kicad.zulipchat.com/#narrow/stream/258851-Developer-Chat/topic/Is.20there.20a.20reason.20why.20kicad.20now.20seems.20to.20lock.20pads.3F
2021-05-18 23:14:17 +01:00
Simon Richter 810a717e4e Remove unused NETINFO_MAPPING member
The legacy plugin no longer implements saving, so no net code renumbering
is needed.
2021-05-17 11:54:06 +00:00
jean-pierre charras c33b2cfa8d PANEL_SETUP_MASK_AND_PASTE_BASE: fix another cosmetic issue.
On KDE, a text was truncated, although there is room to display it
2021-05-16 13:22:48 +02:00
Jeff Young 4c69a74505 Force layers visible when routing on them.
Fixes https://gitlab.com/kicad/code/kicad/issues/8432
2021-05-16 11:18:31 +01:00
jean-pierre charras 2354222188 Remove tool tips not related to the objects they are depending on.
Probably due to a too zealous copy/paste.
2021-05-16 10:03:12 +02:00
jean-pierre charras 057e2cd6b7 Pcbnew: fix some cosmetic issues in a few dialogs
Depending of Window managers, some texts were truncated.
Also avoid to write a sentence with the beginning in one widget,
and the end in another widget: it makes the sentence not translatable
2021-05-16 09:13:13 +02:00
Jeff Young 138a4b21c1 Smarten custom-pad-shape test for collapsing solder mask margins.
Fixes https://gitlab.com/kicad/code/kicad/issues/8413
2021-05-16 00:41:19 +01:00
jean-pierre charras d1061b9683 3D viewer: Fix broken handling of text thickness, thus creating erroneous item positions
Especially, texts having a not centered justification were shown with artifacts.
2021-05-15 13:18:06 +02:00
Jeff Young ccaf9e11df Load footprint info when there's no cache available.
Fixes https://gitlab.com/kicad/code/kicad/issues/8371
2021-05-14 22:24:21 +01:00
david-beinder 1642f0d784 Move microwave tools from toolbar to Place menu
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8233
2021-05-12 02:34:52 +00:00
david-beinder 75f49ba1b6 Add length tuner settings to toolbar context menu 2021-05-12 02:34:52 +00:00
david-beinder 34145d8170 Add length tuning menu to vertical pcb toolbar 2021-05-12 02:34:52 +00:00
Jeff Young c49af57c2a Don't require a restart to get the current m_Live3DRefresh setting.
Fixes https://gitlab.com/kicad/code/kicad/issues/8349
2021-05-11 15:07:52 +01:00
Jon Evans bc6b9b527a Allow stackup height to be excluded from length calculations
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8384
2021-05-10 22:11:58 -04:00
Jon Evans 5157c6c3b9 Use half copper thickness as the thickness of the start and end of vias
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8384
2021-05-10 21:48:50 -04:00
Jon Evans 64c76d8067 Hide unimplemented controls in length tuner settings
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8383
2021-05-10 21:40:52 -04:00
Jon Evans 1201ab5cac Clarify track segment length vs net length in message panel
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8396
2021-05-10 21:06:17 -04:00
Jon Evans ce01a28aad Don't double-remove nets when netcodes are reused
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8206
2021-05-10 19:52:19 -04:00
Jeff Young 7356f9568d Move grid disable modifier from ALT to CTRL.
Also had to move the H/V/45 disable modifier from CTRL to SHIFT.

Fixes https://gitlab.com/kicad/code/kicad/issues/8124
2021-05-09 20:17:40 +01:00
Ian McInerney 916a15793f Fix some OSX compiler warnings 2021-05-09 12:59:57 +01:00
jean-pierre charras a5ff27cae7 Pcbnew, EDIT_TOOL::GetAndPlace(): fix and issue, and allows execution only if
called inside the board editor.
Fix also a broken behavior: the current action was not cancelled, and if it is
called during a move items (when typing the 'T' key), items were broken.
The actual bug is the fact it is called also in fp editor and footprint wizard frame,
because it is part of EDIT_TOOL action list, common to fp editor, and should not.
But a full change is much more costly than just a filter.
2021-05-09 11:51:57 +02:00
Jeff Young b4b59c3b33 Fix uninitialized variable. 2021-05-08 20:49:51 +01:00
Jon Evans 1a45d9474b Don't show commands that cancel routing when routing is in progress
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8363
2021-05-08 14:55:02 -04:00
Wayne Stambaugh 6e017b475d Warn user before removing invalid rows from library table entries.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8080
2021-05-08 08:58:54 -04:00
jean-pierre charras aaffd0c137 Pcbnew: fix crash due to a not tested null pointer.
Fixes #8369
https://gitlab.com/kicad/code/kicad/issues/8369
2021-05-07 10:35:00 +02:00
Jeff Young e709e77870 Add missing locked setting to zone dialogs.
Fixes https://gitlab.com/kicad/code/kicad/issues/8255
2021-05-06 22:50:03 +01:00
Allan Nordhøy cda70a66c3 Spelling fix vrml->VRML
Closes https://gitlab.com/kicad/code/kicad/-/merge_requests/739
2021-05-06 21:55:36 +01:00
jean-pierre charras 1b9a8564af Pcbnew: fix incorrect PCB_TEXT::TextHitTest( const EDA_RECT& aRect,... ).
It was not taking in account the text rotation in block selection.
Fixes #8366
https://gitlab.com/kicad/code/kicad/issues/8366
2021-05-06 18:48:23 +02:00
Jeff Young 2e3860de6f Naming conventions. 2021-05-05 22:58:40 +01:00
jean-pierre charras 56058314be Fix minor Coverity warnings and minor compil warnings.
(uninitialized or shadowed vars)
2021-05-05 08:58:55 +02:00
Fabien Corona 094dd2e08c pcbnew : rotate relatively to selection center 2021-05-04 09:13:20 +00:00
Wayne Stambaugh 16bb45208a Fix save accelerator key handling when library tree has focus.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8247
2021-05-03 19:41:07 -04:00
Marek Roszko c7345096f8 Use wxFFileInputStream explicitly when loading xml documents
wxFFile (FILE, buffered) is better than wxFile (syscalls)
2021-05-03 19:39:56 -04:00
Tomasz Wlostowski 939b5e1932 PCB_EXPR_EVALUATOR: don't use string comparison to check for undefined enum values 2021-05-03 23:45:54 +02:00
Jeff Young d7e44b5181 Default delete-tracks-inside-pads to false.
Fixes https://gitlab.com/kicad/code/kicad/issues/8326
2021-05-03 19:48:24 +01:00
Roberto Fernandez Bautista f2677340f2 Access the new paste behaviour via a new Paste Special... dialog
ADDED Paste Special... action in pcbnew

CHANGED Additional options for Paste Special... in eeschema, including
"Assign unique reference designators to pasted instance"
2021-05-03 19:38:32 +01:00
Roberto Fernandez Bautista 98c8f43320 eeschema and pcbnew paste: consistent paste behaviour
Duplicates are reannotated on paste in the same way in pcbnew and
eeschema such that when copying and pasting the same block in the
pcb and schematic, the reference designators will match.
2021-05-03 19:38:32 +01:00
Roberto Fernandez Bautista ae009e0758 Ensure clipboard data is available after KiCad closes
Always Flush() after SetData()
2021-05-03 19:38:31 +01:00
Jeff Young 688ee18989 Don't apply margin to "interior" shapes in a shape-set.
Fixes https://gitlab.com/kicad/code/kicad/issues/8345
2021-05-03 12:12:03 +01:00
jean-pierre charras a6ad7a4a70 Python wizards: Fix a compatibility with "old" pythons scripts, after commit 21fde9b6.
Temporary fix until a full python API exists.
2021-05-02 16:06:11 +02:00
Marek Roszko c4801a4dd4 Catch oom for graphics importer
Because DXFs and SVGs could be nasty sized
2021-05-01 14:26:47 -04:00
Marek Roszko d4bb1cbc63 Make drawing sheet loading slightly smarter 2021-05-01 14:11:31 -04:00
jean-pierre charras f6f2284851 Fix missing includes on Linux after commit 0427bda7 2021-05-01 20:05:01 +02:00
jean-pierre charras 0427bda768 Remove useless wx/wx.h include, that create sometimes compil warnings on msys.
wx/wx.h includes all wxWidgets .h files, and sometimes creates collision
names in #define between kicad and windows headers
Moreover, blindly including a lot of useless files is compil time consuming
2021-05-01 19:32:15 +02:00
Marek Roszko 18ff8ea4a0 Try to catch memory allocation errors in pcbnew and eeschema 2021-05-01 13:11:10 -04:00
Marek Roszko 3a9a85b373 Enum class PAD_PROP_T
Renamed such that it does not affect python
2021-05-01 10:58:30 -04:00
Marek Roszko 03cf2b517f Enum class PAD_ATTR_T
Renamed such that python stays the same
2021-05-01 10:51:54 -04:00
Marek Roszko e20562b09b Some cleanup 2021-05-01 10:37:20 -04:00
Marek Roszko b243c2280d enum class PAD_SHAPE_T 2021-05-01 08:22:35 -04:00
Marek Roszko 21fde9b629 enum class PCB_SHAPE_TYPE_T 2021-04-30 22:36:12 -04:00
Jeff Young 7df9fa0631 Diffpair gap should only override clearance within a coupled diffpair.
Fixes https://gitlab.com/kicad/code/kicad/issues/7975
2021-04-30 18:39:21 +01:00
Marek Roszko 6e874265fa Autosize all of the layer columns to ensure dpi match
Fix #8202
2021-04-29 20:01:07 -04:00
Jeff Young c149ed8905 Allow diffpair gap to override normal netclass clearance.
Fixes https://gitlab.com/kicad/code/kicad/issues/7975
2021-04-29 10:23:49 +01:00
Jeff Young 91421f9908 Separate logic for multi-select and click-select when filtering.
Also removes a bunch of old implementations of pad locking and
filtering which are no longer needed.  (They're now handled by the
uniform locking code.)

Also removes some of the auto-promotion logic.  Rotating a footprint
when a pad was selected is going to be surprising whether the pad
is locked or not.

Fixes https://gitlab.com/kicad/code/kicad/issues/8322
2021-04-29 00:07:35 +01:00
Marek Roszko 39a0bc6252 Remove erroneous block check in dxf import added during previous improvements 2021-04-28 18:48:59 -04:00
jean-pierre charras 4d9829ec8b Fix some issues related to python scripts:
- make PadArray.py compatible python2/3
- fix a wxWidgets warning in pcbnew_scripting_helpers.cpp shown in some cases
2021-04-28 14:02:47 +02:00
Seth Hillbrand 78b555afa2 Filter Select All event against hierarchy
Fixes https://gitlab.com/kicad/code/kicad/issues/8316
2021-04-27 16:58:45 -07:00
Tomasz Wlostowski a433451bd8 router: 'root line' tracking in the SHOVE algorithm. See comments for detailed explanation. 2021-04-27 14:13:16 +02:00
Tomasz Wlostowski 3a8744d054 router: introduce concept of a root lines in the OPTIMIZER.
By 'root lines' we mean the oldest traceable ancestor of each track moved by the router
(i.e. after shoving for a while, the root of each shoved line is it's latest non-shoved version).

With this we can teach the OPTIMIZER more tricks, such as the LIMIT_CORNER_COUNT constraint. It ensures
the results of the optimization will not be less cornery than the original line, reducing the feeling
of the optimizer being too intrusive.
2021-04-27 14:13:16 +02:00
Tomasz Wlostowski 76f8861e6e router: revert Seth's arc adjustment in StartDragging().
Fixes picking the last segment instead of the last vertex to drag (when one is requested).
I didn't notice any behaviour change of the dragger wrs to arcs.
2021-04-27 14:13:16 +02:00
jean-pierre charras 524ca442f3 Old python scripts: fix issues due to code change, and make them Python3/3 compatible 2021-04-27 11:55:56 +02:00
jean-pierre charras b63c482347 Fix a link issue with pcbnew_wrap.cxx (MSYS + Windows 64 bits specific)
For some reason the .cxx file generated by SWIG cannot be linked if compiled
with debug options.
It creates a *lot* of not found symbols. So compile it with release mode (MSYS only)
2021-04-27 07:40:34 +02:00
Jeff Young 5bf37a9b24 Don't allow selection crossing a parent/child relationship.
Fixes https://gitlab.com/kicad/code/kicad/issues/8292

Fixes https://gitlab.com/kicad/code/kicad/issues/7255
2021-04-26 18:47:44 +01:00
Jeff Young b65b1f8e9c Revert NPTH commit, and add some comments. 2021-04-26 17:33:49 +01:00
Jon Evans 7afc3f7df9 Rearrange track width button to be more obvious
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8300
2021-04-25 19:58:11 -04:00
david-beinder cbe8b1644a Fix segfault after using group properties dialog
Fixes https://gitlab.com/kicad/code/kicad/issues/8302
2021-04-25 22:15:19 +02:00
Jeff Young d2b6050792 Minor dialog spacing adjustment. 2021-04-25 19:26:05 +01:00
Jeff Young e6bf922a77 Make sure connectivity is locked for zone filling.
See 1e33928b96
for the original addition and rationale.
2021-04-25 18:09:53 +01:00
Jeff Young e3eacafbcb Run hole clearance tests on NPTH pads, but not copper clearance.
Fixes https://gitlab.com/kicad/code/kicad/issues/8295
2021-04-25 17:55:43 +01:00
Jeff Young b7279c0bab Don't allow rounding errors to flag DRC violations in hole2hole.
Fixes https://gitlab.com/kicad/code/kicad/issues/8295
2021-04-25 17:55:43 +01:00
Jeff Young 517bcb15b1 Formatting. 2021-04-25 17:55:43 +01:00
Jeff Young 953f579d59 Keep dialog fields in sync with dummyPad values.
Fixes https://gitlab.com/kicad/code/kicad/issues/8294
2021-04-25 14:19:38 +01:00
jean-pierre charras 93d42e9902 Pcbnew: Fix crash when importing a netlist created by a 5.1 Eeschema version.
Fixes #8293
https://gitlab.com/kicad/code/kicad/issues/8293
2021-04-25 15:13:55 +02:00
Jeff Young eb85836234 Make sure we have footprint courtyards before depending on DRC rules.
Fixes https://gitlab.com/kicad/code/kicad/issues/8291
2021-04-25 12:45:06 +01:00
Jeff Young 1e8b23402c Bump board format version for locked syntax fix. 2021-04-24 19:11:17 +01:00
jean-pierre charras e27733587d Fix 2 minor Coverity warnings. 2021-04-23 19:57:36 +02:00
jean-pierre charras 3be17ceb50 PANEL_SETUP_TRACKS_AND_VIAS: fix UI issues.
Fixes #8264
https://gitlab.com/kicad/code/kicad/issues/8264
2021-04-23 10:58:59 +02:00
Jon Evans 7569fc8aad Bring back live move of footprint in 3D view if live refresh is on
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8220
2021-04-22 22:32:41 -04:00
Jon Evans 263e026ac4 Initialize grid visibility in appearance panel constructor
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8266
2021-04-22 22:10:55 -04:00
Jonathan Haas 075bd788eb Remove unused OBSTACLE_VISITOR::m_extraClearance 2021-04-23 01:53:09 +00:00
Jon Evans 3e96fb851c Give diff pair toolbutton a menu also
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8233
2021-04-22 21:37:15 -04:00
Ian McInerney ecd9bf696e Be consistent about using nullptr instead of 0
0 can be too easily overloaded into an int, so ensure we use nullptr
when we mean pointers.
2021-04-22 22:20:34 +01:00
Wayne Stambaugh 54e18f6b1f Pcbnew: remove update schematic option for geographical annotation dialog.
REMOVED: Update schematic option from geographical annotation dialog due
to potential issues with incomplete and/or broken updates.  Use "Update
Schematic from PCB" tool to update reference designation changes.

Forcing the footprint reference designator changes back to the schematic
without checking any other board changes in the schematic could leave the
schematic in a undefined state.  The update schematic from board tool is
the correct method to sync any changes from the board.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8042
2021-04-22 12:45:59 -04:00
Jon Evans cf47d665ea PNS: Dragged line needs to retain width
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8246
2021-04-22 09:04:41 -04:00
Jon Evans 9b1890606d PNS: Do not allow resolved optimal values to go below board minimums 2021-04-21 22:43:26 -04:00
Jon Evans ae113ea299 DRC: inDiffPair should return false if the coupled net is missing
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8268
2021-04-21 22:41:17 -04:00
Jon Evans e7d3bf29aa Don't save project for legacy board without explicit action
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7368
2021-04-21 21:27:23 -04:00
Jeff Young e5d029af6b Margin layer missing from some edge clearance tests.
Fixes bug reported on KiCad Forums.
2021-04-21 21:58:47 +01:00
Jeff Young 61ce1b35ec R/W dimension lock flags and update format for all lock flags.
Fixes https://gitlab.com/kicad/code/kicad/issues/8255
2021-04-21 19:59:27 +01:00
Jeff Young 3b049b32cf Show if pads, zones, and dimensions are locked in the status bar.
Fixes https://gitlab.com/kicad/code/kicad/issues/8255
2021-04-21 19:58:18 +01:00
Adam Wolf 25e2f35308 Remove no-longer-needed macOS wxPython things. 2021-04-21 12:50:31 +00:00
Adam Wolf a06f0ca908 Clean up macOS Python3 paths 2021-04-21 12:50:31 +00:00
Adam Wolf 7357424efc Update macOS to Python 3, wx 3.1, and Phoenix.
This is a work-in-progress.  It could use testing while I continue to fix
the remaining pieces.

There are some changes that will be needed for signing and notarization.

This currently relies on a Python tool I wrote (dyldstyle) to fixup
KiCad.app correctly. I would like any bundle fixing necessary to use a
built KiCad on macOS to live inside KiCad, rather than in
kicad-mac-builder or elsewhere.  While I was experimenting, I found this
worked, however, and I would love to get extra hands testing.

I added a CMake argument, MACOS_EXTRA_BUNDLE_FIX_DIRS, for devs and
packagers who have extra directories they need to add to
fixup_bundle on KiCad.app.

There's an issue about differing behavior when KiCad is opened via
the command line or via Finder/launchd.
2021-04-21 12:50:31 +00:00
Jon Evans c973a447df Make sure board netinfo list is updated when net inspector renames a net 2021-04-20 21:15:42 -04:00
Jon Evans cbd7d698a9 Fix diff pair error message suffix suggestions
We accept diff pairs that end in N/P, no underscore required
2021-04-20 21:08:34 -04:00
Jon Evans 8792d7288d Net inspector: Fix calculation of via length
We have a function for this in the BOARD_STACKUP now, and it returns
a more correct number (excluding the start and end copper layers)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8256
2021-04-20 20:03:38 -04:00
Jon Evans 2535daf661 PNS: Account for via stack height in diff pair length tuner
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8256
2021-04-20 19:31:10 -04:00
Wayne Stambaugh a7f956581c Pcbnew: fix board file formatting issues.
This does not required a board file version change.  All of the changes
are white space formatting fixes and improvements.
2021-04-20 10:18:31 -04:00
Marek Roszko ce3a84f579 Consolidate wx aui dock art color setting 2021-04-19 21:12:02 -04:00
jean-pierre charras ba3f0d5d07 Fix a wxWidget assert and a minor wxWidgets alert 2021-04-19 15:01:00 +02:00
jean-pierre charras 287b0eea0f TRACK::GetMsgPanelInfo(): For arc, display shape ("TRACK (arc)") and radius.
Also display "TRACK (arc)" in DRC error message, instead of just "Track".
2021-04-19 10:00:46 +02:00
Jon Evans dd828bd964 PNS: Bring back original Highlight Collisions behavior
From discussion with Tom, Jeff, and Wayne, it appears as though
we all agreed that Highlight Collisions should behave like it
did in 5.1, which is to say, always just highlight collisions,
never prevent them.  The Allow DRC Violations checkbox just
controls whether or not you can fix/commit the head line if it
has violations; you are not prevented from moving the head
line to violating positions in any case.

Right now, there does not seem to be much demand for a separate
"Stop at First Obstacle" mode since Walkaround basically does that
but better, but we agreed that if there is demand for it in the
future, it should be implemented as a new router mode rather than
a behavior of Highlight Collisions mode controlled by the Allow
DRC Violations checkbox.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7828
2021-04-18 21:01:07 -04:00
Tomasz Wlostowski 4538d78828 router: fix via shoving regression. 2021-04-19 00:43:30 +02:00
Tomasz Wlostowski 57de83897a router: VIA SetDrill() and SetPosition() must update the hole shape too. 2021-04-19 00:43:15 +02:00
jean-pierre charras dc3a73a2fb PAD::MergePrimitivesAsPolygon(): add option to approximate circles outside the actual shape
When creating a polygon from an arc/circle, the small error due to approximation
can be now inside (when drawing/plotting the shape) or outside the circle
(when building a clearance area) like other pad shapes
Fixes #5313
https://gitlab.com/kicad/code/kicad/issues/5313
2021-04-18 20:10:00 +02:00
Jon Evans ec6995697d PNS: even more free performance
If this doesn't work, we have bigger problems
2021-04-18 09:50:06 -04:00
jean-pierre charras 2d9bac804c Pcbnew: minor fix: remove extra spaces when outputting pad primitives section.
No format change.
2021-04-18 15:25:14 +02:00
Jon Evans 6425ad4118 PNS: Fix propagateDpHeadForces obstacle calculation
Using a synthetic via here doesn't quite let us use VIA::PushoutForce
because it will use the wrong clearance, and also doesn't quite have
the logic we want.  I am not familiar enough with PushoutForce to know
if its logic is a bug in other cases, so instead I just brought in the
parts of its algorithm that are needed here.

Additionally, we prevent pushing more than once from a given obstacle,
which causes walkaround to be more successful when routing diff pairs
against a large collider such as a keepout area.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8232
2021-04-17 22:37:30 -04:00
Jon Evans 5974446523 PNS: Let's make the r-tree work for us
I'm not sure where the magic number of "4x worst" came from, but it's
been around forever.  This is extremely inefficient as it negates much
of the power of r-tree filtering in dense designs.  If we really trusted
it, we could set this just to worstClearance.  Keeping it above the worst
clearance by a little bit seems to provide enough of a speed improvement
to resolve the test cases I have, so I'll go with that for now.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7777
2021-04-17 21:37:11 -04:00
Jeff Young a577b6386d Fix missing status bar update after undo/redo.
(Reported by Franck.)
2021-04-17 17:21:54 +01:00
Jeff Young 13473420e5 Remove duplicated routine and fix bug in UTIL version. 2021-04-17 15:10:59 +01:00
Wayne Stambaugh 2ae264751f Rename class_board_stackup.{h|cpp} to board_stackup.{h|cpp}. 2021-04-16 17:07:06 -04:00
Jeff Young 3a6a919097 Improve clarity in the Print dialog around edge cuts layer.
Fixes https://gitlab.com/kicad/code/kicad/issues/8200
2021-04-16 16:53:51 +01:00
Jon Evans 29c45743b7 Fix calculation of arc lengths; include them in net inspector
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8140
2021-04-15 21:06:35 -04:00
Jon Evans 64c8befa01 Fix copy/paste error 2021-04-15 20:45:32 -04:00
Jon Evans 928d336bee Only try to copy design rules file if it exists 2021-04-15 20:43:35 -04:00
Jeff Young 23a1f8b17a Enforce board minimum clearance over local clearance overrides.
Fixes https://gitlab.com/kicad/code/kicad/issues/8199
2021-04-15 21:44:04 +01:00
Jeff Young 311bb9c36e Save rules file when saving project.
Fixes https://gitlab.com/kicad/code/kicad/issues/8143
2021-04-15 10:23:38 +01:00
Jeff Young 9a282f081a Document rules version clause.
Fixes https://gitlab.com/kicad/code/kicad/issues/8201
2021-04-15 10:23:38 +01:00
Jon Evans 4920692bcd DIFF_PAIR_GAP_CONSTRAINT does not need to be restricted to two items
We just need one item to see what netclass we're in; the constraint
itself is specific to diff pairs so the condition doesn't need to be.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8205
2021-04-14 23:43:43 -04:00
Jon Evans 1d7e5a0443 Fix merge error that prevented a previous change from working 2021-04-14 23:30:16 -04:00
Jon Evans 433e148e08 Move some string formatting functions out of base_units
Keeping them in base_units means that we can't introduce
any dependence on these functions to anything that needs to
compile without one of the unit defines (EESCHEMA, PCBNEW, etc)
2021-04-14 23:21:10 -04:00
Jon Evans 268d570941 PNS: keep last valid diff pair trace as current state
This allows fixing/committing what is on screen even if the current
cursor position doesn't have a valid solution (the old behavior
would result in the current trace disappearing)
2021-04-14 23:21:10 -04:00
Jon Evans c829dba88e PNS: Reduce minimum distance to start turn in diff pair placer
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8193
2021-04-14 23:21:10 -04:00
Jon Evans cac4d70154 PNS: Respect fix-all in diff pair placer 2021-04-14 23:21:10 -04:00
Jeff Young fe6cc0c3d8 Spokes are from center of pad, not from hole (ie: pad position).
Fixes https://gitlab.com/kicad/code/kicad/issues/8195
2021-04-14 11:34:26 +01:00
Jeff Young f7cc6d1e1e Fix save as and save copy as for project files. 2021-04-13 17:56:50 +01:00
Jeff Young d79057b83a Fix merge wreckage in building netclasses. 2021-04-13 17:56:50 +01:00
Jeff Young 94e8855c13 Generate changed message before making change.
Otherwise we've lost the "before" value.

Fixes https://gitlab.com/kicad/code/kicad/issues/8186
2021-04-13 13:43:30 +01:00
Jeff Young 55d2d0d93e Fix some bugs in file save as.
The order of operations *appeared* to be a bit out of joint.
We need to create a new project in project mode as well as in standalone.

Fixes https://gitlab.com/kicad/code/kicad/issues/8143
2021-04-13 13:34:40 +01:00
Jon Evans 296a9df530 PNS: Pick up diff pair starting width from continuation track 2021-04-12 23:10:15 -04:00
Jon Evans 1d9ca181a2 PNS: Use existing seg direction if both DP segs are parallel 2021-04-12 22:34:13 -04:00
Jon Evans 37dd4038eb Display options can change during the picker lifecycle
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7133
2021-04-12 22:12:48 -04:00
Jon Evans 36ef198610 Clean up nets from items when deleting in the inspector
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8162
2021-04-12 21:17:42 -04:00
Jon Evans 311cde0984 Safety check suggested by Coverity 2021-04-12 20:42:50 -04:00
Jon Evans 2aa5e568e8 Refactoring 2021-04-12 20:40:05 -04:00
Jon Evans 73fb85a352 PNS: Calculate diff pair primitive orientation using anchors only
The previous method fails if the primitive is an expanding or
contracting pair (diagonals going inward or outward) resulting in
incorrect orientation, which then leads to incorrect candidate
gateways being generated and no solution found.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8185
2021-04-12 20:34:44 -04:00
Jon Evans 94fad2944d ConvertOutlineToPolygon: Don't crash if we didn't find a segment owner
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8184
2021-04-12 19:59:55 -04:00
Jon Evans 715c61ac9f PNS: Fix yet more arc edge cases
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8150
2021-04-12 19:59:55 -04:00
Roberto Fernandez Bautista edb2136a0d CADSTAR PCB: KiCad's minimum permitted Through Drill is 0.0508mm(2mils) 2021-04-12 20:25:05 +01:00
Roberto Fernandez Bautista a3196a11a7 CADSTAR PCB: Be more specific with "allow thermal pads" DRC hack
Only tag the footprint as such when we know it has overlaping copper
over the pads with different pad numbers
2021-04-12 20:25:05 +01:00
Roberto Fernandez Bautista b5edd5f6a5 CADSTAR PCB: Fix loading of thermal pads
- Create a pad if a component copper is associated with any other pads
  in the footprint.
- Rename/renumber 'PCB Only' pads that are associated with a component
  copper and make them all use the same pad name/number.
2021-04-12 20:25:05 +01:00
Roberto Fernandez Bautista 2eb96279a2 Fix FOOTPRINT copy constructor so it maintains ordering of containers 2021-04-12 20:25:04 +01:00
Jeff Young a4c08e2af6 Apply Eeschema cursor updating architecture to PCBNew.
Fixes https://gitlab.com/kicad/code/kicad/issues/8135
2021-04-12 11:11:11 +01:00
Jeff Young 2cba64b258 Fix missing env var expansion in pos file generation.
Fixes https://gitlab.com/kicad/code/kicad/issues/8178
2021-04-12 10:17:42 +01:00
Jeff Young 34ea6891b0 Formatting. 2021-04-12 10:17:42 +01:00
jean-pierre charras 675ec70f0f PANEL_SETUP_BOARD_STACKUP: fix a wxassert due to a "C" locale test in a format function.
A call to FormatInternalUnits() was made without switching to "C" locale.
In this case it was not necessary, but FormatInternalUnits() expects in some tests
this locale, thus creating issues (assert and incorrect conversion)

Fixes #8177
https://gitlab.com/kicad/code/kicad/issues/8177
2021-04-12 09:57:40 +02:00
Jon Evans 49a91414d7 PNS: Apply co-linear seg merging to drag operations 2021-04-11 22:32:11 -04:00
Jon Evans 1c431d9929 PNS: Fix some off-by-one errors with arc dragging 2021-04-11 22:12:53 -04:00
Jon Evans a26fc6d65d PNS: Fix several issues with arc dragging
Do not merge vertices that belong to different arcs
Fix start segment identification after arcs
Fix free-angle drag after arc

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8173
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8150
2021-04-11 17:56:40 -04:00
Jeff Young 7d58c53e42 Apply new hole-dimming logic to via pads.
Fixes https://gitlab.com/kicad/code/kicad/issues/8144
2021-04-11 17:51:38 +01:00
Jeff Young 2cde76a191 Don't do any hole clearance testing within a single footprint.
Fixes https://gitlab.com/kicad/code/kicad/issues/8141
2021-04-11 16:03:16 +01:00
Jon Evans 7ba110bd77 PNS: Fix dragging of segments with arcs in line 2021-04-11 10:18:57 -04:00
Thomas Pointhuber a30894e5a1 Allow SHAPE_LINE_CHAIN and SHAPE_ARC to be mirrored using a SEG 2021-04-11 13:27:25 +00:00
Thomas Pointhuber fe8fbf1d5d Use arcs instead of line approximation for Miter shape
TODO:

* The resulting line chain is broken with the arcs, and
this appears to be some subsequent issue I was not able to pin down.
* The requirement of a correction factor is not clear to me
2021-04-11 13:27:25 +00:00
Jeff Young cc956695ae Hit test for worksheet before adding Properties to menu.
Fixes https://gitlab.com/kicad/code/kicad/issues/8171
2021-04-11 14:18:35 +01:00
Jeff Young 6072f5831b Apply uniform spacing to orientation controls. 2021-04-11 10:33:26 +01:00
Jeff Young 29e5882637 Fix typo (found by Coverity). 2021-04-11 10:32:15 +01:00
Jeff Young 675444a646 Dim hole walls that don't pass through high-contrast layers.
Fixes https://gitlab.com/kicad/code/kicad/issues/8144
2021-04-10 22:41:38 +01:00
Jon Evans 5c448057c8 PNS: Prevent state flicker when starting drag 2021-04-10 16:31:39 -04:00
Jon Evans 7784d7cb12 PNS: Fix visible area restriction
VIEW::GetBoundary() returns the entire view area, not the visible area.
Surprisingly, we had no API for this, so I added one.

Also, changed the dragger behavior to toggle between optimizing just the
modified area and optimizing the visible area, i.e. we will now never
optimize off-screen portions of the dragged track.
2021-04-10 16:13:08 -04:00
Jon Evans 94afdcb92a PNS: Allow control of area-restricted drag optimization
CHANGED: The interactive router settings now include a switch to
         enable or disable optimization of the entire dragged track,
         which is now disabled by default.  When enabled, the router
         will reroute the entire track (from the dragged segment to
         the closest pad/via in each direction) to be more optimal.
         When disabled, only the area around the dragged segment
         will be modified.

CHANGED: The "optimizer effort" slider is removed from the interactive
         router settings dialog, as this setting did not have any
         meaningful impact in most cases and was a source of confusion.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/5918
2021-04-10 15:17:39 -04:00
Jonathan Haas 846e4aed42 Fix selection filter in Edit Text and Graphics dialog
Fixes https://gitlab.com/kicad/code/kicad/issues/7966

Fixes https://gitlab.com/kicad/code/kicad/issues/8149
2021-04-10 15:49:23 +00:00
Jeff Young dc0cf3b802 Clean up a confusing API.
AllowDRCViolations is kept in any mode as a *setting*, but only
controls router behaviour when the mode is mark obstacles.

Fixes https://gitlab.com/kicad/code/kicad/issues/7795
2021-04-10 11:08:02 +01:00
Jeff Young 176fcd43d8 Cleanup. 2021-04-10 10:04:02 +01:00
Jeff Young 252fad1cc7 These grids *must* have a border on OSX to render correctly. 2021-04-10 10:04:02 +01:00
Jeff Young f606069bf6 Formatting. 2021-04-10 10:04:02 +01:00
Mikolaj Wielgus 43d8145304 Pcbnew: Snap to the closest point on graphic polygon border
Fixes https://gitlab.com/kicad/code/kicad/issues/8164
2021-04-09 22:33:55 +00:00
Jonathan Haas 58dfb6539f Change orientation and flip sign of dimension height when rotating orthogonal dimensions.
Fixes https://gitlab.com/kicad/code/kicad/issues/6940
2021-04-09 22:30:18 +00:00
Jeff Young d2c7df155b Don't show blind/microvia holes on layers they don't appear on.
Fixes https://gitlab.com/kicad/code/kicad/issues/8144
2021-04-09 17:14:53 +01:00
Jeff Young 3450610977 Add ability to allow thermal vias to be implemented as pads.
This is mostly just for CADSTAR.  Since we don't (yet) have general
purpose footprint attributes, this reuses the "net tie" hack.

Fixes https://gitlab.com/kicad/code/kicad/issues/8141
2021-04-09 14:02:13 +01:00
Jon Evans 619a353c5e Decouple 3D view dirty marking and refresh
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8154
2021-04-08 22:09:19 -04:00
Seth Hillbrand 7b3c7e1ef3 Fix some free/delete issues
Removes the C-format memory management
2021-04-08 16:58:45 -07:00
Ian McInerney 9939af3e27 Fix color handling in the stackup manager panel
Fixes https://gitlab.com/kicad/code/kicad/issues/5671
2021-04-09 00:56:31 +01:00
Ian McInerney 401bc53038 Move the DRC constraints page into a scrolled window
We seem to be getting a lot of these now, and it was
being cutoff by default - so make it a scrolled window
like the severities.
2021-04-09 00:56:31 +01:00
Ian McInerney 5490a85f97 Don't recompute the board thickness on UI update
The thickness only needs to be computed when the actual
values change, so computing on UI update is a waste of
resources and can cause UI lag.

Fixes https://gitlab.com/kicad/code/kicad/issues/5049
2021-04-09 00:56:31 +01:00
Mikolaj Wielgus d64de3808f Pcbnew: Snap to group items
Fixes https://gitlab.com/kicad/code/kicad/issues/7694
2021-04-08 23:22:19 +00:00
Jeff Young a8b40bf683 Avoid Clipper when possible.
When expanding an error to the outside of a rounded corner pad we
need to trim it to the pad bounding box or else we get little ears
where the circle approximation meets the pad square.  This is expensive,
and for clearance lines we don't really care whether the error is
inside or outside.

Fixes https://gitlab.com/kicad/code/kicad/issues/8157
2021-04-08 22:37:14 +01:00
Jeff Young 5ea68c7694 Copy some bug fixes from DRC dialog across to Footprint Checker. 2021-04-08 22:37:14 +01:00
Jon Evans 4521091cc1 Do not invalidate geometry when all we need is a repaint
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8157
2021-04-08 17:35:51 -04:00
Jon Evans d878cbddbc PNS: a few forgotten cleanup items 2021-04-07 23:34:45 -04:00
Jon Evans c9040a5c53 PNS: fix some weirdness identified by PVS 2021-04-07 23:16:56 -04:00
Jon Evans e0f26fd525 Make live 3D refresh optional
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8068
2021-04-07 22:39:30 -04:00
Jon Evans d4957b112e PNS: Keep last valid drag solution in the node
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5450
2021-04-07 21:59:23 -04:00
Jon Evans 26835f582c Some situations require more than one dummy
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7820
2021-04-07 21:30:18 -04:00
Jon Evans 9432484394 PNS: Find origin segment correctly when arcs are present
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8139
2021-04-07 20:28:30 -04:00
Ian McInerney 18f07024a6 Simplify UI event handling in pcbnew global edit dialogs
Instead of enabling/disabling the controls on every possible
UI event in these dialogs, only do it when the actual control
wants to know if it should change status.
2021-04-07 17:39:48 +01:00
Ian McInerney 1a727558b0 Switch update event handlers to use the event instead of pointers
It is safer to use the event to pass the enable/string
instead of pointers, since using the pointers could trigger
other UI events.
2021-04-07 17:39:48 +01:00
Ian McInerney 29cc16a4c4 Push pcbnew layer alpha change update into base frame
This code was shared between the footprint frame and
pcb edit frame, so push it into the base edit frame.
Also remove the dummy wxUpdateUIEvents that weren't
actually being used.
2021-04-07 17:39:48 +01:00
Jeff Young 3fd3be9843 Layer fixes for PCBNew drawing tools.
1) Implement layer changes for dimension drawing tool
2) Ensure drawing layer is visible for (1) and for the text drawing
tool.

Fixes https://gitlab.com/kicad/code/kicad/issues/8106
2021-04-07 15:02:48 +01:00
Jeff Young e50b450092 Formatting and organisation. 2021-04-07 14:50:29 +01:00
Roberto Fernandez Bautista 85efdb85b0 CADSTAR PCB: Ensure continuous track routes
When route offsetting, add an additional thin track to ensure
end point of one track and start point of the next are at the same
location.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8131
2021-04-07 11:28:02 +00:00
Roberto Fernandez Bautista 211fd65c23 Move: Ignore mouse up and click events until a mouse move / drag event
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8123
2021-04-06 17:29:52 +00:00
Jeff Young 09b2db3139 Test for group in footprint was snagging all footprint children.
Fixes https://gitlab.com/kicad/code/kicad/issues/8121
2021-04-06 18:27:43 +01:00
Jon Evans 9f957d3e08 Fix crash when attempting to tune discontinuous lines
Also correctly find the tuning path through arcs

https://gitlab.com/kicad/code/kicad/-/issues/8131
2021-04-06 09:07:11 -04:00
Roberto Fernandez Bautista 235688e459 Less restrictive Arc Track Dragging tool
Use the connecting straight tracks even if not exactly parallel - allow
an error margin configurable in ADVANCED_CFG (default 1 degree). Also
be less strict about end point matching and use the width of the track
as the criteria to determine suitability.

Finally, delete any short lengths of track at the end of the operation
and amend the arc end points to keep connectivity.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/7967
2021-04-06 12:52:01 +00:00
Roberto Fernandez Bautista 0a2c8575ce ZONE properties: stage commit even if !Settings().m_AutoRefillZones
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8028
2021-04-06 12:52:01 +00:00
Jeff Young 69fd0b38ff Remove a couple of unused OnUpdateUI handlers.
Fixes https://gitlab.com/kicad/code/kicad/issues/5049
2021-04-06 13:47:15 +01:00