Commit Graph

12335 Commits

Author SHA1 Message Date
Jeff Young 98d0ce00ee Defensive coding.
Fixes https://gitlab.com/kicad/code/kicad/issues/8790
2021-08-12 21:35:05 +01:00
Stefan 02e7d9f809 pcbnew: swap x/y align text to match vertical/horizontal text on right click... 2021-08-12 13:03:52 +00:00
jean-pierre charras f4a7565b9c fix a compil warning 2021-08-11 08:16:26 +02:00
Jeff Young 13fc16b03f Fix uninitialized variable. 2021-08-10 16:51:30 +01:00
Jeff Young c536a4c4f2 Work around annoying wxWidgets assert. 2021-08-10 16:51:30 +01:00
Jeff Young a208dac8d8 Convert hole clearance tests from NPTH holes to all holes. 2021-08-09 22:26:00 +01:00
Roberto Fernandez Bautista 0120c5fa4b PNS Length Tuning: Recover original arc tracks after tuning 2021-08-09 21:10:33 +01:00
jean-pierre charras 69322a18e7 Fix missing call to ClearArcs() 2021-08-09 09:16:04 +02:00
Jon Evans a90656900a Allow creating polygon types from polygons
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7302
2021-08-08 20:29:00 -04:00
Jon Evans e91218b876 PNS: don't mark holes only if there's also a solid violation
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8874
2021-08-08 15:41:39 -04:00
Jon Evans 3beeb52c43 Convert tool: create lines on active layer, not source layer 2021-08-08 15:12:23 -04:00
Jon Evans 2d9b06cbf9 Fix missing flatten step when filling zones with arcs
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8923
2021-08-08 15:09:12 -04:00
Jeff Young 54942a1401 Fix typos that would result in fp zone setting written into pads. 2021-08-08 18:12:29 +01:00
Jeff Young e38c366695 Narrow zone dialog a bit. 2021-08-08 18:12:29 +01:00
jean-pierre charras fa82fcb809 Router tool: ensure a internal layer exists when placing a microvia.
Fix also a minor compil warning.
Fixes #8931
https://gitlab.com/kicad/code/kicad/issues/8931
2021-08-07 20:29:49 +02:00
Jeff Young bafa105ed0 Enforce hole clearance on NPTHs in zones.
Fixes https://gitlab.com/kicad/code/kicad/issues/8924
2021-08-06 18:16:38 +01:00
Jeff Young a10f2b284c Unify negative zero and percent handling in UNIT_BINDER.
Some values, such as solder mask margins, are usually negative and it
helps to display zero as "-0.0".
2021-08-06 18:16:38 +01:00
Jeff Young e81b7b4a14 Give a few dialogs a bit of love.
1) improve spacing in copper zone properties.
2) improve spacing and naming in dielectric material properties.
3) clearer naming in board setup > constraints.
4) remove over-exuberant stretching in board setup > mask & paste.
2021-08-06 18:16:38 +01:00
Roberto Fernandez Bautista 6a9a177fa3 Remove zone filler arc collision workaround 2021-08-05 17:45:12 +01:00
Jeff Young 77680eba30 Naming conventions. 2021-08-05 14:31:36 +01:00
Jeff Young 5bf0b99813 Capture errant mouse-up from locked dialog in move tool.
Don't pass it on to other tools where it causes all kinds of mayhem.

Fixes https://gitlab.com/kicad/code/kicad/issues/7255
2021-08-04 17:42:40 +01:00
jean-pierre charras 76bdb423d7 Minor changes: minor code cleanup and fix minor Coverity warning 2021-08-04 16:47:41 +02:00
Jeff Young ae99e627bd Quiet Coverity. 2021-08-04 13:55:42 +01:00
Jeff Young 46bdce2747 Don't allow pads in groups in the board editor.
Bad stuff happens, including crashes.
2021-08-04 13:55:42 +01:00
Jeff Young 65f6e72b4c Improve commenting. 2021-08-04 13:55:42 +01:00
jean-pierre charras ac933d4e83 Fp editor: avoid having nil uuids when editing old footprints.
In Fpeditor, nil uuid has a special meaning and cannot be used as uuid in fp items.
Fixes #8914
https://gitlab.com/kicad/code/kicad/issues/8914
2021-08-04 12:37:52 +02:00
Jeff Young c5e195bdff Cleanup (includes and formatting). 2021-08-03 18:37:23 +01:00
Jeff Young 95b87ba29a Freshen microwave polygon dialog and remove a bunch of dead code. 2021-08-03 01:11:11 +01:00
Jeff Young 43523df843 Measure distance from pad center, not pad hull.
Otherwise we think the wrong end of really short track segments is
connected to the pad, leaving the other end dangling.

Fixes https://gitlab.com/kicad/code/kicad/issues/8909
2021-08-02 22:42:54 +01:00
Jeff Young 8b9161b27d Be more careful with alpha value.
Fixes https://gitlab.com/kicad/code/kicad/issues/8850
2021-08-02 18:24:16 +01:00
Jeff Young 6f1837b300 Formatting. 2021-08-02 01:52:58 +01:00
Jeff Young c51b1dad72 Generalize infobar MESSAGE_TYPE handling and use for DRC errors.
Fixes https://gitlab.com/kicad/code/kicad/issues/8782
2021-08-01 21:51:39 +01:00
Jeff Young 0d539a84a2 Fix bugs in Tracks Cleaner.
1) Implement more robust connection checking so we don't decide very
short segments with both endpoints within a single track are connected
at both ends.

2) Make use of the IS_DELETED flag to perform iteration during dryRun
so that all deletions to be made are flagged.

Fixes https://gitlab.com/kicad/code/kicad/issues/8883
2021-08-01 15:50:01 +01:00
Jeff Young b573712326 Cleanup. 2021-08-01 15:37:12 +01:00
Jeff Young 0f5a8f87d3 Add writing of pad primitive polys with arcs, and fix a bug in reading.
Fixes https://gitlab.com/kicad/code/kicad/issues/8827
2021-08-01 10:47:00 +01:00
Jeff Young faa1ff4ec6 Add false-negative DRC tests (and fix first bug found by them). 2021-07-31 16:41:44 +01:00
qu1ck 7b4dcb6e10 Refactor ExportSpecctraFile to be usable in API
Currently there is pcbnew.ExportSpecctraDSN() but it needs a pcbnew
frame set which makes it unusable outside of the scripting window or a
plugin.

This refactors actual exporting logic into separate helper and adds an
overload to ExportSpecctraDSN(board, filename) that doesn't need pcbnew
window.
2021-07-31 09:55:48 +00:00
Seth Hillbrand 6cd4d68d57 Add drop shadows to MacOS icons
Apple UI guidelines ask for small drop shadows on the icons.  We add
these using ImageMagick when resizing
2021-07-30 20:55:34 -07:00
Seth Hillbrand e7d8b1a975 Resize MacOS icons and script their creation
Creates a script that will fomat the MacOS icons at 80% of the total
size in line with Apple's guidelines.

Script requires Inkscape 1.0 and png2icns (available on Linux boxen)

Fixes https://gitlab.com/kicad/code/kicad/issues/7977
2021-07-30 20:28:14 -07:00
Seth Hillbrand ad8acd328c Expunge some remaining references to kicad-pcb 2021-07-30 20:27:45 -07:00
Jeff Young bceb3794f8 Remove ZONE_FILLER_TOOL since it's not really necessary.
It was causing intermittent failures on GTK.  We'll no doubt want
tools in the QA framework at some point, but probably not necessary
for 6.0....
2021-07-31 01:50:42 +01:00
Jeff Young 8c69a856fc Add zone filler tests.
One test has pads of a bunch of different shapes and provokes some
errors to make sure they're caught.

The others are all past issues with the zone filler to make sure we
don't suffer any regressions.  (They should all just pass with no DRC
errors.)
2021-07-30 17:09:24 +01:00
Jeff Young 8aea2cbd03 When ignoring click events don't ignore synthetic ones.
Fixes https://gitlab.com/kicad/code/kicad/issues/7255
2021-07-29 18:07:04 +01:00
Jeff Young 138a965c2a Remove shadowing member variable.
Perhaps the compiler always gets this right, but it's still confusing
when reading the code.
2021-07-29 16:03:25 +01:00
Jeff Young 9271ac1a4f Don't allow deletion of pads when not in allow-free-pads mode.
Fixes https://gitlab.com/kicad/code/kicad/issues/8884
2021-07-29 16:03:25 +01:00
Jeff Young 6aaf4413b3 Fix kicad_string.h / string.cpp mismatch.
They don't define a KiCad string class, so the header file name was
somewhat misleading. But the fact that they didn't match definitely
made coding more difficult.
2021-07-29 16:03:25 +01:00
Jeff Young f221220fe2 Rename layer ids file.
It hasn't had anything to do with colors or visibility for some time
now.
2021-07-29 16:03:25 +01:00
Jeff Young 46338403e7 Unwrap some std::library typedefs. 2021-07-28 22:16:38 +01:00
Ian McInerney befd30a1a1 Switch the board footprint properties window to use the new 3d models panel
This allows it to also get the badge showing errors in the panel.
2021-07-28 20:56:17 +01:00
Ian McInerney 1a4a3400ba Split the footprint 3d model panel into its own class
This allows it to be shared by both the PCB editor properties dialog
and the fpeditor dialog.
2021-07-28 20:56:17 +01:00
Wayne Stambaugh f233f4a0a9 Expunge EDA_FILE_SELECTOR.
EDA_FILE_SELECTOR was just an obfuscation of wxFileSelector().
2021-07-28 14:12:51 -04:00
jean-pierre charras b6e1fe11b6 Fix a collision name (perhaps msys2 specific) 2021-07-28 19:39:50 +02:00
Ian McInerney 36d66085f5 Add a column showing 3D model file loading errors
This adds an icon to the left of the row with an error symbol if the
file can't be found or opened, and shows a tooltip over the icon with
and error string.

Fixes https://gitlab.com/kicad/code/kicad/issues/3815
2021-07-28 16:42:22 +01:00
david-beinder c0f12cf8b0 PCB painter: skip early to polygon algo in outline mode 2021-07-28 10:37:56 +00:00
Wayne Stambaugh 369d813a32 Pass std::string by reference instead of on the stack where applicable. 2021-07-27 13:30:05 -04:00
Jeff Young 1f2e7a94ca Change Move Exactly hotkey to Shift + M to avoid OSX minimize.
Fixes https://gitlab.com/kicad/code/kicad/issues/8864
2021-07-27 18:20:32 +01:00
Jeff Young dd5676f4bc Implement a safer (RAII) tool re-entrancy guard.
Fixes https://gitlab.com/kicad/code/kicad/issues/8873
2021-07-27 16:37:34 +01:00
Jeff Young 886dc2f43e Do-not-show-again section for common prefs & zone fill warning infobar.
Note that the dialogs which have mutliple options were not moved over
as it seems perahps not the right choice to have them save state between
sessions.

Fixes https://gitlab.com/kicad/code/kicad/issues/8762
2021-07-27 15:15:49 +01:00
Jeff Young c74148fa88 Add infobar for those who confuse zone filling with display modes.
Fixes https://gitlab.com/kicad/code/kicad/issues/8762
2021-07-27 15:15:49 +01:00
Wayne Stambaugh 37b200cb3e Pass wxString objects by reference instead of on the stack. 2021-07-27 08:41:27 -04:00
Wayne Stambaugh 78e5e98ea0 Pass VECTOR2I objects by reference instead of on the stack. 2021-07-27 08:41:27 -04:00
qu1ck c946070005 Fix TRACKs not being cast correctly in API 2021-07-26 22:37:22 +00:00
Wayne Stambaugh 8fd83cbb95 Pass wxPoint objects by reference instead of on the stack. 2021-07-26 15:35:33 -04:00
Jeff Young e62969d007 Move zone fracture display mode to AdvancedCfg, and add triangulation.
Fixes https://gitlab.com/kicad/code/kicad/issues/8762
2021-07-26 18:57:35 +01:00
Wayne Stambaugh 89b1fdabe9 Pass COLOR4D object by reference instead of on the stack. 2021-07-26 13:28:56 -04:00
Seth Hillbrand cb917e4c42 Avoid nonsensical intersections
When two segments are approximately parallel, we shouldn't look to find
their intersection.  It will never be the nearest point and it overflows
the KiROUND call

Fixes https://gitlab.com/kicad/code/kicad/issues/8858
2021-07-26 09:02:54 -07:00
Jeff Young d613292b67 Fix type in group command enablement.
Fixes https://gitlab.com/kicad/code/kicad/issues/8821
2021-07-25 13:31:52 +01:00
Jeff Young 39e938db3e Save the show-page-limits setting.
Fixes https://gitlab.com/kicad/code/kicad/issues/8825
2021-07-25 13:29:16 +01:00
Anton Lazarev 42086a455d fix blind via early return in VRML exporter 2021-07-25 12:22:55 +00:00
Jeff Young 373f0335c8 Convert Altium radial dimensions to leaders.
This is because we don't yet support radial dimensions.

Also fixes a bug where we fail to read an Altium circular track.  We
now convert it to a pair of 180-degree arcs.

Also fixes a bug where we were failing to import prefixes on linear
dimensions.

Fixes https://gitlab.com/kicad/code/kicad/issues/8789
2021-07-24 14:25:59 +01:00
Jeff Young 531f5480a7 Reduce line-breaks and increase SNR. 2021-07-24 14:25:59 +01:00
Pradeepa Senanayake dd31a5383b Added the double click to footprint editor 2021-07-24 08:53:09 +00:00
jean-pierre charras 31d2b2df8b QA test: fix a wx assert about Locale when running qa_python tests.
Probably happens only when the system locale uses a comma as fp separator.
2021-07-23 11:45:45 +02:00
Jeff Young 04b9b15255 Fix copy/paste error. 2021-07-23 01:11:22 +01:00
Seth Hillbrand 8d1dd1f8b0 Handle pad->custom conversion more closely
When converting pads to custom polygons, avoid padding with the polygon
width and keep the anchor pad within the boundary of the original pad
itself

Fixes https://gitlab.com/kicad/code/kicad/issues/8842
2021-07-22 12:12:42 -07:00
Jeff Young a16b85db67 Read/write group locked state. Show locked state in dialog & statusbar.
Fixes https://gitlab.com/kicad/code/kicad/issues/8796
2021-07-22 12:49:30 +01:00
jean-pierre charras 49e1b5785f PCB_SHAPE::GetFocusPosition(): returns a point on the outline instead of center.
This function is used in DRC to locate a graphic shape. For not filled shapes,
this point must be on the shape outline, not on the center of the shape (the center
shows nothing)
Fixes #8832
https://gitlab.com/kicad/code/kicad/issues/8832
2021-07-22 10:41:50 +02:00
Wayne Stambaugh 1a301d8eea Stop using wxDialog::EndModal() from inside dialogs.
Calling wxDialog::EndModal() directly from inside the dialog is a
potential bug if the dialog is shown in the modeless or window modal
(quasi-modal).  Use the internal button events where possible and
check for the appropriate mode before calling the correct end dialog
function.
2021-07-21 17:38:14 -04:00
Jeff Young 0fb864d596 Pull some name changes back from 7.0 to ease merging. 2021-07-21 20:58:59 +01:00
david-beinder af90d47edc Altium: Fix calculating third arc point from uninitialized memory
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8671
2021-07-20 19:13:32 +00:00
jean-pierre charras 234b414e2c Fix misplaced break after code cleanup. 2021-07-20 17:05:00 +02:00
Wayne Stambaugh cf00319c85 More NULL expunging. 2021-07-20 07:27:18 -04:00
Jon Evans 75190370dd Convert -> Create from Selection
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8818
2021-07-19 18:45:33 -04:00
jean-pierre charras 6a886e7085 Wizard qrcode_footprint_wizard.py: fix a minor issue and update code. 2021-07-19 18:36:58 +02:00
luz paz 8bacc9fccb Fix python 'testing for equality' syntax
'Testing whether an object is 'None' using the == operator is inefficient and potentially incorrect.'  

Per https://lgtm.com/projects/g/KiCad/kicad-source-mirror/?mode=tree&ruleFocus=7900090
2021-07-19 15:42:30 +00:00
Jeff Young e61822c9e0 Naming conventions and a bug fix on arc points. 2021-07-19 13:17:12 +01:00
jean-pierre charras 9cb4c9bfc2 3D viewer: ensure the activity messages are displayed on Linux after Frame creation. 2021-07-19 10:10:25 +02:00
jean-pierre charras a43ca978df 3D viewer: do not build the board 3D data during 3D frame creation, but after.
Building the 3D data is time consuming, so creating the data after the 3D
frame is shown is better, and the build activity is visible, especially on Linux.
2021-07-18 17:55:40 +02:00
jean-pierre charras 56412cc843 PCB_TEXT: remove "hide" option, because they are never hidden.
- avoid write "hide" option in file
- always return true when calling IsVisible()
Fixes #8806
https://gitlab.com/kicad/code/kicad/issues/8806
2021-07-18 14:58:21 +02:00
jean-pierre charras 1a5e63bcab PANEL_SETUP_BOARD_STACKUP: fix a incorrect behavior when changing layer count,
and add a button to adjust dielectric thickness (regression fix)
Fixes #8800
https://gitlab.com/kicad/code/kicad/issues/8800
2021-07-16 20:39:00 +02:00
Marek Roszko c794a6ce7a Add pdb install option for msvc 2021-07-14 23:42:45 -04:00
Jon Evans e61b1f03b8 PNS: Discard duplicate tracks in FixRoute
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8737
2021-07-13 21:13:40 -04:00
Seth Hillbrand ff2e470a6e Remove virtual items from clearance calculations
Extends 3ea970f8c9 to ensure that virtual items do not interfere with
DRC calculations while routing

Fixes https://gitlab.com/kicad/code/kicad/issues/8788
2021-07-13 16:10:36 -07:00
Seth Hillbrand 3ea970f8c9 Don't add virtual items to the display
By definition virtual vias should only exist in the backend, not
affecting users

Fixes https://gitlab.com/kicad/code/kicad/issues/8788
2021-07-13 15:52:41 -07:00
Seth Hillbrand 2f41dd4074 Fix unit var warning 2021-07-13 09:53:31 -07:00
Jeff Young f0513978ff Back-port some fixes from 7.0 branch. 2021-07-13 17:24:23 +01:00
david-beinder 8b3ccab0a3 Implement explicit polygon construction for most pad shapes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8650
2021-07-13 14:51:58 +00:00
luz paz 0446d35f0d Fix source comment/doc typos (follow-up)
Found via `codespell -q 3 -S *.po,./thirdparty -L aactual,acount,aline,alocation,alog,anormal,anumber,aother,apoints,aparent,aray,dout,einstance,modul,ot,overide,serie,te,,tesselate,tesselator,tht`
2021-07-13 10:48:17 +00:00
Pradeepa Senanayake 8d65663566 Copper Zone Properties dialog modifications
* Changed the net sorting mechanism make it similar to the 'Net Inspector' window
* Replaced the 'Show All Nets' check box with 'Hide auto-generated nets' check box
* Replace the warning label with wxInfoBar
* Removed unused controls and renamed controls where applicable
* Re-arranged the Copper Zone Properties dialog layout to improve user experience
* Minor code refactoring of DIALOG_COPPER_ZONE class

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8547
2021-07-12 21:55:46 +00:00
Jeff Young 2889861c0b Remove unused variables. 2021-07-11 23:42:40 +01:00
Jeff Young e953cb6a27 Add default severities for new DRC violations. 2021-07-11 23:33:17 +01:00
jean-pierre charras 54b6f51633 DSN export: export RECT and ARC shapes (on silkscreen layer) from footprints
Also export arc track segments as lines. (Freerouter does not support QARCs)
Fixes #8769
https://gitlab.com/kicad/code/kicad/issues/8769
2021-07-11 18:15:40 +02:00
Jeff Young 01d3a88faa Allow unnamed embedded step files in altium boards.
Fixes https://gitlab.com/kicad/code/kicad/issues/7898
2021-07-10 16:37:45 +01:00
Jeff Young e02bb80bf3 Handle cancel when selecting copper layer.
Also changes the algorithm to ask only once, rather than one per
non-copper-layer object.

Fixes https://gitlab.com/kicad/code/kicad/issues/8767
2021-07-10 12:05:25 +01:00
Jeff Young 625006ca30 Remove front/back SMD pad color now that we have opacity sliders.
Fixes https://gitlab.com/kicad/code/kicad/issues/8761
2021-07-10 10:13:55 +01:00
Jeff Young a06b95bb1f Even out spacing around various panels. 2021-07-09 23:42:45 +01:00
Marek Roszko 11cd8738a3 Put wxSearchCtrl back by eliminating the excess focus events that in Windows land cause a "select all"
The setfocus calls were really because of the overtly aggressive mouse handler for the canvas that has been patched out.
2021-07-09 18:08:32 -04:00
Jeff Young 046fb58183 Better command names and tooltips for zone fill/unfill commands.
Fixes https://gitlab.com/kicad/code/kicad/issues/8762
2021-07-09 22:13:50 +01:00
Seth Hillbrand 387cd36f60 Fix GenCAD Export flipped footprints
GenCAD Exporter flips the board footprints before exporting.  The
exporter assumes that the flip happens T/B and not L/R.

Fixes KSC Issue #356
2021-07-09 09:44:30 -07:00
Seth Hillbrand c5571afbd9 Teach GenCAD exporter to handle chamfered rect pads
Chamfered rect pads can also have rounded corners, so we handle these
using a polygon transform before exporting
2021-07-09 09:44:30 -07:00
Wayne Stambaugh 6c3ba1c20b Coverity issue fixes.
Issues #332032, #332086, #332157, and #332171.
2021-07-09 10:56:35 -04:00
Jeff Young 473f10ab1f Tooltips for Board Setup > Constraints.
Fixes https://gitlab.com/kicad/code/kicad/issues/8764
2021-07-09 13:06:59 +01:00
Jeff Young 2bd735b631 A little more safety in setting the router idle mode.
Fixes https://gitlab.com/kicad/code/kicad/issues/8765
2021-07-09 10:26:12 +01:00
Jon Evans 00f1b609c4 PNS: Don't run fanout cleanup when manually forced
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8724
2021-07-08 19:56:42 -04:00
Jeff Young e895af4ec6 Include arcs in create array. (Thanks to RigoLigoRLC.)
Fixes https://gitlab.com/kicad/code/kicad/issues/6491
2021-07-08 18:28:21 +01:00
Wayne Stambaugh 65c7958293 Coverity issue fixes.
Issues #331869, #331875, #332203, #332159, #332171, #332180, and #332648.
2021-07-08 08:33:08 -04:00
Marek Roszko 49e6b80fc5 Rollback searchctrl change for FOOTPRINT_VIEWER_FRAME
Fixes #8751
2021-07-08 07:26:42 -04:00
RigoLigoRLC a15a91dc00 Turn Footprint Text on when user turn on Value or Ref
In the appearance panel the old implementation doesn't turn the meta-
control "Footprint Text" back on when you switch on "Footprint Value/
Reference" while "Footprint Text" is switched off. This is neither
logically correct nor making the elements rendered correctly (value/ref
swicthes would affects corresponding bottom texts, but doesn't affect the
meta-control).

I didn't find a corresponding GitLab issue around, so I'm not saying
"fixes" here.
2021-07-08 03:05:51 +00:00
Jon Evans cafd42911e Do not use opacity for zone outlines
The opacity is intended to aid seeing through
zone filled areas and applying it to outlines
makes them hard to see and select.
2021-07-07 22:04:11 -04:00
Jon Evans edc2be9018 Update width status when user choice changes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8265
2021-07-07 21:26:21 -04:00
Jeff Young 66eb2ddeb5 Remove auto when not needed for line length. 2021-07-07 20:05:50 +01:00
Roberto Fernandez Bautista 4207165c26 Fix PNS deleting too many segments
Don't exit the loop pre-emptively. Need to update lastLink.
2021-07-07 19:54:19 +01:00
Roberto Fernandez Bautista cda26bd57b SHAPE_LINE_CHAIN::NextShape instead of explicitly calculating indices
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8738
2021-07-07 19:46:47 +01:00
jean-pierre charras 7a1e8520ae Specctra export: Fix incorrect export of holes from mirrored footprints.
If a footprint is containing a closed shape on Edges.Cuts it is exported as Hole
(keepout zone). For flipped footprints the hole was incorrect.
Fixes #8753
https://gitlab.com/kicad/code/kicad/issues/8753
2021-07-07 16:40:19 +02:00
jean-pierre charras 17ab2c7197 .kicad_pcb files: minor enhancements: add missing new lines in file.
No actual change, this is only a cosmetic change.
2021-07-07 11:44:11 +02:00
Wayne Stambaugh 9d348d7e6d Coverity issue fixes. 2021-07-06 13:32:34 -04:00
jean-pierre charras cd476e1728 Gerber plotter: ensure filled areas using thick outlines have a closed outline.
Fixes #8735
https://gitlab.com/kicad/code/kicad/issues/8735
2021-07-06 13:59:05 +02:00
jean-pierre charras 1a23502e98 PAD::TransformShapeWithClearanceToPolygon(): better polygonal shapes:
- Oval and round pads ensure at least 16 segments per CIRCLE (like other shapes)
- For ERROR_OUTSIDE option, ensure the aarc approx error is the actual error,
not max allowed error.
These changes can be seen only for a large max allowed approx error, especially
when filling zones.
2021-07-06 10:50:46 +02:00
Roberto Fernandez Bautista 81fa40d659 Code style: Fix missing space 2021-07-05 20:39:42 +01:00
Roberto Fernandez Bautista 04ff8cde5e Drag & Fillet Tracks: Ignore mouse up / click events until move / drag
Ensures that any click/mouse up events generated after clicking "OK"
in the "Override locks" dialog are ignored.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8123
2021-07-05 20:29:25 +01:00
Roberto Fernandez Bautista ce8132bf4f Arc Track Drag & Fillet Tracks: Copy lock status to new track(s) 2021-07-05 20:29:25 +01:00
Jon Evans b6e8beb38c FP_TEXT: account for parent rotation when creating clearance shape
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8728
2021-07-05 13:49:40 -04:00
Jeff Young ea6769b702 The REPORTER interface is inherently line-based.
Also fixes a bunch of error messages that were similar but not
identical (which just increases translation burden).

Fixes https://gitlab.com/kicad/code/kicad/issues/8723
2021-07-05 13:41:06 +01:00
Marek Roszko a92d337905 Use wxSearchCtrl in the footprint viewer/picker. 2021-07-04 22:06:01 -04:00
Jon Evans 67762a11f6 Don't double-process arcs if we get one first 2021-07-04 12:22:52 -04:00
Jon Evans b291f36dae ADDED: Convert tool can create polygons with arcs from contiguous line and arc segments
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5409
2021-07-04 12:10:59 -04:00
Jon Evans 576d70fab0 Fix file format syntax of arcs in polygons
No format bump as there is no way to create these files yet.
2021-07-04 12:10:59 -04:00
Jeff Young 0116e9c94e Silence Altium polygon-needs-at-least-3-verticies warning.
Too many Altium files appear to have these.  Just ignore them instead.

Fixes https://gitlab.com/kicad/code/kicad/issues/8183
2021-07-04 11:02:59 +01:00
Jon Evans e0146f73b9 PNS: Pick up complete lines between pads when dragging components
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7614
2021-07-03 20:00:54 -04:00
Jon Evans 91ea4a0569 PNS: Pick up segments directly between pads when dragging components
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7601
2021-07-03 19:50:04 -04:00
Jon Evans ab38dfd7ae Fix build 2021-07-03 19:47:58 -04:00
Jon Evans 77b68a827c Remove unused variable 2021-07-03 19:20:54 -04:00
david-beinder a5308e5f5c Fix python console toggle to work across pcbnew/eeschema 2021-07-03 22:48:46 +00:00
Jeff Young 126cd14715 Fix width setting bug in Net Inspector. 2021-07-03 21:16:15 +01:00
Jeff Young 6a0a38ec29 Prevent wxWidgets assertion. 2021-07-03 21:16:15 +01:00
Jeff Young 37fac6de35 Use ChangeValue() instead of SetValue() to keep from firing events.
Otherwise setting a filter also turns off the Show All Nets checkbox.

Also make sure that config values get saved when they're changed.
2021-07-03 21:16:15 +01:00
Jeff Young 4b07a55ef8 Fix net name to net code map to handle sorting and filtering.
Fixes https://gitlab.com/kicad/code/kicad/issues/8714
2021-07-03 21:16:15 +01:00
Roberto Fernandez Bautista 3f73d8c2b5 SHAPE_LINE_CHAIN::Area() should always be positive
The algorithm relied on the assumption that the points were
ordered anti-clockwise. When ordered in a clockwise fashion, the
result was correct but negative.

Refer to https://www.mathopenref.com/coordpolygonarea2.html
for more information.
2021-07-03 19:37:50 +00:00
Roberto Fernandez Bautista c3051ba48a Refactor SHAPE_LINE_CHAIN to allow two shapes per point
m_shapes now has two possible indices. The first one is populated if
the point is associated with an arc and the second index is populated
if the point is shared between two arcs.
2021-07-03 19:37:50 +00:00
Seth Hillbrand 4f4deece6d ADDED support for reading/writing arcs in polys
This adds support for reading and writing arc elements in polygons.
2021-07-03 19:37:50 +00:00
Jon Evans 252bf76452 Fix off-by-one in AssembleTuningPath 2021-07-03 14:37:52 -04:00
Jon Evans 3c59e452d6 PNS: Set tuned path correctly in skew tuner
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8708
2021-07-03 14:06:30 -04:00
Jon Evans 1b9893841b Add a tooltip explaining the track width dropdown
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8719
2021-07-03 13:36:18 -04:00
Jon Evans 277bf2b719 Add feedback showing current router state to the message panel
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8265
2021-07-03 13:21:51 -04:00
Jeff Young bc65b7173f Don't use SCH version number when inspecting PCB files. 2021-07-03 15:24:54 +01:00
Wayne Stambaugh 3f6811f413 Minor dialog layout improvements. 2021-07-02 11:36:06 -04:00
Jeff Young 400f4ae506 Code cleanup. 2021-07-02 15:54:26 +01:00
Jeff Young 780a8a5154 Fix another place disallowing internal microvias.
Fixes https://gitlab.com/kicad/code/kicad/issues/8716
2021-07-02 15:54:26 +01:00
Marek Roszko eff75b630f Get rid of anonymous struct typedefs
We are using C++14 where there is no reason for this and is banned in C++20 under P1766R1. MSVC generates a warning under C++14 as a reminder.
2021-07-01 18:28:41 -04:00
Seth Hillbrand c23e39dbe7 Avoid adding invalid text to temporary fp
Adding values/references to footprint text is an assertion.  This avoids
the assert when copying a full footprint by skipping the extra text
2021-07-01 11:57:29 -07:00
Jeff Young 24e54178db Make sure pin hittest regions don't get too hard to hit.
Fixes https://gitlab.com/kicad/code/kicad/issues/8616
2021-07-01 15:43:19 +01:00
Jeff Young 78d2e88f4b Beautify export STEP dialog. 2021-07-01 15:43:19 +01:00
jean-pierre charras 740b028180 pns_line_placer: do not constraint the 45deg of current segment in free angle mode.
Fixes #8691
https://gitlab.com/kicad/code/kicad/issues/8691
2021-07-01 16:38:31 +02:00
Wayne Stambaugh 175b474c3e Coverity issue fixes.
Fixes issues #280412, #314755, #329615, #332459, #332157, #332167,
2021-06-30 18:08:49 -04:00
Jeff Young e9c0920be2 Use a standard SHAPE_POLY_SET hittest for pads.
Fixes https://gitlab.com/kicad/code/kicad/issues/8705
2021-06-30 22:36:29 +01:00
Jeff Young 6810912f09 Refuse to load schematics from the future.
Also fixes a bug where an empty window would get left when loading
a file from the KiCad manager window errored out.

Also fixes a bug where we were getting the wrong exception because
we were rethrowing the type-casted one (rather than just calling
throw).

Fixes https://gitlab.com/kicad/code/kicad/issues/8604
2021-06-30 18:32:07 +01:00
Jeff Young 5cac8afe1d Remove long-dead revision support for LIB_IDs. 2021-06-30 13:12:57 +01:00
Jeff Young b1b4caee6a Escape "naughty" characters in symbol names.
It's tempting to say that we don't need to exclude filename chars
from symbols, but we might regret that decision down the road.  Better
to just escape them.

Fixes https://gitlab.com/kicad/code/kicad/issues/8694
2021-06-30 13:12:57 +01:00
jean-pierre charras 17737af130 Fix some issues related to SHAPE_ARC:
- Some are related to shape errors when the allowed error to approximate circle
by segment is large and arc radius small.
- fix the actual error used in ConvertToPolyline().
- Use SHAPE_ARC::DefaultAccuracyForPCB() instead of a fixed value as extra margin
in zones. It should not change something, because it is also a fixed value
(5 micrometers), but it is not a magic number.
-TransformArcToPolygon() fix some issues and add a new algo, based on the arc actual
outline shape (initial algo is still available in code, just in case).
2021-06-30 13:33:49 +02:00
Seth Hillbrand 0d8f0d361e Allow aligning pads in FP editor when locked
Locking is not a concept in the footprint editor.  The signature for
checking is slightly different in the alignment tool, so we need to move
the check higher to allow aligning items in fpeditor
2021-06-29 16:48:31 -07:00
Wayne Stambaugh c6e4dcbecf Pcbnew: fix incorrect geographical annotation dialog message. 2021-06-29 17:11:37 -04:00
Wayne Stambaugh e4c108ee3a Pcbnew: minor geographical annotation dialog user message improvements.
Remove schematic from the completion message as it can no longer be
updated though the dialog.

Add a warning to synchronize the schematic with the annotation changes.
2021-06-29 15:17:00 -04:00
Roberto Fernandez Bautista 04b71f5167 Meander minimum spacing can be equal to track width + minimum clearance
2x track width was too constraining in some scenarios

Also better wording "Min Spacing" to indicate to the user that
the actual spacing could be larger if there are any constraints.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8172
2021-06-29 19:30:01 +01:00
Roberto Fernandez Bautista e402563087 Don't recalculate meander spacing. Use constrained value instead.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1776
2021-06-29 19:30:01 +01:00
Jeff Young 0c2ac9a711 Move GUI font code to common.
This also allows the Mac fixes for font facenames to be more
compartmentalized.

Fixes https://gitlab.com/kicad/code/kicad/issues/8657
2021-06-29 18:27:58 +01:00
Jeff Young 64f07ea9c6 Update text variables after changes.
Fixes https://gitlab.com/kicad/code/kicad/issues/8697
2021-06-29 13:55:06 +01:00
Jeff Young 1db33c7b3a More safety (and better impl) for not sharing FP table/info stuff.
Fixes https://gitlab.com/kicad/code/kicad/issues/8657
2021-06-29 12:46:16 +01:00
Jeff Young a1dfc36233 More error message regularization. 2021-06-29 01:08:26 +01:00
Jeff Young c159500101 Remove nags and make Sel Layer and add via commands uniform.
Fixes https://gitlab.com/kicad/code/kicad/issues/8686
2021-06-28 19:17:01 +01:00
jean-pierre charras fa49b54f93 Fix minor issue in TransformCircleToPolygon() when aError is set to a large value.
pcb_painter.cpp: add (but not activate) compil option to show the conversion
of SHAPE_ARC::ConvertToPolyline as segments, for debug purposes.
2021-06-28 15:50:16 +02:00
jean-pierre charras 9a865b1989 Fix a typo and a minor compil warning 2021-06-28 14:37:35 +02:00
Jeff Young d296bec5b8 Differentiate aSingleLine mode for SCINTILLA_TRICKS
This allows us to avoid the monospaced font (along with the tab-stop
handling), and process a <return> as an OK rather than just <shift> +
<return>.

Fixes https://gitlab.com/kicad/code/kicad/issues/8425
2021-06-28 11:20:12 +01:00
Jeff Young 062c4fda62 More error message regularization (and translatability improvements). 2021-06-28 00:45:24 +01:00
Jeff Young 08fb05e522 Make sure HPGL and DXF drill map generators honour origin setting.
ADDED: also adds origin setting to Footprint Position File dialog
and generators.

Fixes https://gitlab.com/kicad/code/kicad/issues/8669
2021-06-27 17:40:20 +01:00
Jeff Young 4aa8318dc2 More error message regularization. 2021-06-27 14:24:02 +01:00
Jeff Young 70ac70f360 Don't attempt to round-trip netnames through wxListBox.
Fixes https://gitlab.com/kicad/code/kicad/issues/8684
2021-06-27 12:02:21 +01:00
Jeff Young 1fcd7992a0 Performance improvement for adding/removing dielectric layers.
(Roughly a 10X speedup on Mac.)
2021-06-27 09:43:20 +01:00
Marek Roszko b924c85f80 Start recording the precision of dxf imports 2021-06-27 00:38:19 -04:00
Jeff Young 0f27618125 Use a list dialog that can be parented by the Board Setup dialog.
(The current one keeps pulling the Kicad Manager window to the front
on OSX.)

I also removed the UpdateUI stuff which was probably causing:

Fixes https://gitlab.com/kicad/code/kicad/issues/5049
2021-06-27 01:41:35 +01:00
Jeff Young 0dfb5fcaf9 Error message cleanup.
wxString::Format is redundant in a wxLogXXX call.
Error messages should generally be translatable.
Error messages should use generally consistent sentence forms.
2021-06-26 22:53:24 +01:00
Jeff Young 4c5df22eb0 Don't show busy cursor when dialogs (including progress) are in use.
Also removes a stale comment.
Also moves the progress reporters earlier to lessen need for busy cursor.
Also cleans up some error strings and makes other more easily translatable.
2021-06-26 22:53:24 +01:00
jean-pierre charras 310adedf85 Add GetCircleToSegmentError() to geometry/geometry_utils.
This function returns the error created by a circle to segment approximation.
2021-06-26 18:57:07 +02:00
Jeff Young 5c21f93803 Consistency in progress and error messages. 2021-06-26 13:23:43 +01:00
Thomas Pointhuber e50eaed7b9 altium: Improve parsing of UTF-8 data
This is an implementation based on d4ccec05 from @fxtentacle
2021-06-26 13:58:56 +02:00
Thomas Pointhuber e6c047896c altium: introduce progress reporting, fix possible nullptr when reading 3D models 2021-06-26 12:54:31 +02:00
Jeff Young 95ec9c786c Board setup spacing. 2021-06-26 10:55:31 +01:00
Jeff Young 81fc710a5d Use consistent terminology.
Fixes https://gitlab.com/kicad/code/kicad/issues/8681
2021-06-26 10:11:41 +01:00
jean-pierre charras 83b549741d PCB_ARCS in zones: increase clearance to avoid DRC issues. This is a workaround,
but arcs in tracks are still not fully fixed.
The clearance is increased by only 4 microns, that should not create issues.
2021-06-25 19:45:32 +02:00
Jeff Young 9f51f7b055 Formatting and include cleanup. 2021-06-25 17:48:15 +01:00
jean-pierre charras 31d7a0a8d1 TransformArcToPolygon(): slightly better approximation of arc.
The error between the "right" shape and the polygon is slightly smaller.
The approximations of the inner arc and the outer arc are better, but not perfect.
Also add (for test and debug purpose only) the code to show the polygon when
drawing a PCB_ARC (currently disabled)
2021-06-25 18:46:16 +02:00