Commit Graph

14080 Commits

Author SHA1 Message Date
Jeff Young f99761e5bd entirelyInsideArea() prototype. 2022-08-26 13:22:57 +01:00
Jeff Young 7baa56528a Make sure via-gap-same-as-trace-gap gets turned off for board settings.
Fixes https://gitlab.com/kicad/code/kicad/issues/12236
2022-08-26 13:22:57 +01:00
jean-pierre charras d351d0c839 BOARD_NETLIST_UPDATER: disable auto refill zones if new footprints are loaded and waiting for placement.
Auto refill creates a crash when these footprints are moved, probably due to a partial
connectivity rebuild due to refilling when the connectivity data is not yet finalized.
Fixes #11830
https://gitlab.com/kicad/code/kicad/issues/11830
2022-08-26 10:38:36 +02:00
Seth Hillbrand f1261e71d4 Replace boost::optional with std::optional 2022-08-25 15:50:47 -07:00
jean-pierre charras a306246558 Fix a few (minor) compil and Coverity warnings. 2022-08-25 20:21:00 +02:00
Seth Hillbrand fb74bdb059 Don't consider rule area zones in priority calc 2022-08-25 10:12:58 -07:00
Seth Hillbrand e661545ecf Choose the first unused priority value for zones
Default the new zone priority value to the lowest available unused
priority.  Ensures that, by default, a new zone has a unique priority
level preventing zones from unintenionally shorting
2022-08-25 10:05:30 -07:00
Seth Hillbrand ee95224517 Ensure that teardrops always get filled first
Teardrops are, by definition, higher priority than standard zones, so
ensure that they cannot be overriden
2022-08-25 08:54:34 -07:00
Seth Hillbrand 418df36790 Avoid teardrops in priority calculation
When choosing a new priority value, don't look at teardrops (which have
high priority)
2022-08-25 08:41:14 -07:00
Seth Hillbrand 3e4cfab254 Set new zone priority to unique number
Previously new zones' priorities were all set to 0.  This is almost
always wrong and can lead to unintended conflicts.  The new zone default
value is now set to one higher than the largest number on the board.
This is a better default value because it will not conflict with
existing values.
2022-08-24 16:37:57 -07:00
Jeff Young ae86c6f3a7 Don't include text in locked-item-shadow-calc for footprints.
And make shadow margins consistent for all objects.

Fixes https://gitlab.com/kicad/code/kicad/issues/11545
2022-08-24 10:30:20 +01:00
Marek Roszko fc99b3ba95 Don't link gdiplus everywhere anymore
Tested on msys2 which is the only place it would have been buggy
CMake seems to share the gdiplus linkage with the other dependencies automatically now
2022-08-23 23:51:35 -04:00
Marek Roszko e0f28fc4e1 Replace wxFindReplaceData with our own container
By dropping the flags, we can be strict with options.
Also it makes future usage of search functionality a little more "UI" framework independent
2022-08-23 22:16:51 -04:00
Jeff Young ec51955dad Remove vestiges of old pad locking system.
We now use a session preference (Allow free pads) in the board editor,
and we never supported pad locking in the footprint editor.
2022-08-23 18:02:16 +01:00
Seth Hillbrand e4bb1560c5 Set locale in python save routine
Fixes https://gitlab.com/kicad/code/kicad/issues/11006

(cherry picked from commit c3496d61eb)
2022-08-23 09:53:18 -07:00
Jeff Young 1871812f2b Consolidate on a more widely used sub-type architecture. 2022-08-23 12:57:55 +01:00
Marek Roszko 3e451ca516 Add RemoveAllListeners function for future addons 2022-08-22 23:29:04 -04:00
Jon Evans cfb6fcf31a Do not create panel if disabled 2022-08-22 21:32:33 -04:00
Roberto Fernandez Bautista 940a15c547 Todo: Properties system doesn't like const wxString& getters
Comment out for now
2022-08-22 21:32:33 -04:00
Roberto Fernandez Bautista 4108099641 Properties Panel: Correctly limit layers for connectable items to copper layers 2022-08-22 21:32:33 -04:00
Roberto Fernandez Bautista fe7e665236 Properties: NetName and NetClass should have a space + don't translate "Net" 2022-08-22 21:32:33 -04:00
Roberto Fernandez Bautista f5a75a4001 Minor nullptr fixes 2022-08-22 21:32:33 -04:00
Jon Evans f5597238fb Properties: add color swatch to layer enum 2022-08-22 21:32:33 -04:00
Jon Evans 3c6e8aea0f Properties panel: post-rebase fixes and hide by default
Remove layer widget re-added by Orson's rebase
2022-08-22 21:32:33 -04:00
Maciej Suminski af71d42307 Renamed PROPERTY_TYPE enum names to avoid a conflict on MSYS2 2022-08-22 21:32:32 -04:00
Maciej Suminski c37c429c75 Rename PROPERTY_PANEL::Update() to PROPERTY_PANEL::UpdateData()
The base class (wxPanel) already provides Update() method,
which should not be overridden.
2022-08-22 21:32:32 -04:00
Maciej Suminski 7f00efe6cf Properties: Fixed conditional properties using enum values in the conditions
When wxAny holds an enum, it cannot be compared with an integer due to a
missing conversion function. In such case, conditional properties
compare a raw value rather than wxAny.
2022-08-22 21:32:32 -04:00
Maciej Suminski f6f6ebd5f9 WIP: Properties GUI 2022-08-22 21:32:32 -04:00
Maciej Suminski 95fd58b25a Properties meta-data for pcbnew classes 2022-08-22 21:32:00 -04:00
Maciej Suminski 745c94b0a1 Properties (introspection)
Introduces classes:
- INSPECTED: base class for types taking advantage of
  generic properties system.
- PROPERTY*: meta-data storing information about properties
- PROPERTY_MANAGER: singleton class to get properties data
2022-08-22 21:32:00 -04:00
Jeff Young 1e68c353f1 Account for groups in undo of Position Relative To.
Also fixes a bug were pads weren't correctly being found for anchoring
the selection before the Position Relative To.

Fixes https://gitlab.com/kicad/code/kicad/issues/11793
2022-08-22 22:33:38 +01:00
Seth Hillbrand 4b63c7012d Silence some clang warnings 2022-08-22 12:54:00 -07:00
Alex 3a76d42630 Cross-probing/selection for multiple items (PCB -> SCH)
Fixes https://gitlab.com/kicad/code/kicad/issues/10469
2022-08-22 19:33:39 +00:00
Jeff Young f42b66bc1c Regularize ellipsization of menu and status text.
Fixes https://gitlab.com/kicad/code/kicad/issues/12257
2022-08-22 17:52:58 +01:00
Wayne Stambaugh c72457482c Fix Eagle plugin footprint QA test issue.
Apparently mapping Eagle footprint layers to the KiCad Dwg_User
that were previously mapped to UNDEFINED_LAYER breaks the QA test
and causes the footprint editor to crash when opening Eagle
footprints.  This means that the potential data loss issue when
loading Eagle footprints is still in play.
2022-08-22 09:11:30 -04:00
Jeff Young 792d7babe3 Performance (std::map -> std::unordered_map) and commenting. 2022-08-22 12:43:57 +01:00
Jeff Young 03454684fa Commenting. 2022-08-22 12:43:57 +01:00
Jeff Young 4f0136db3b Attempt to fix std::initializer_list lifetime issue. 2022-08-21 20:54:41 +01:00
Wayne Stambaugh 0bc1188897 Fix Eagle plugin board layer mapping issue.
The Eagle plugin layers have to be mapped differently depending on
whether a board is being imported or a footprint library is being
cached.  Footprint libraries can bypass the manual layer remapping
step that happens when importing a board.

Please note that when loading footprints in the footprint editor
and viewer, all layers that do not directly map to KiCad layers are
put on the Dwg_User layer so that there is data loss.  Users will
have to manually remap objects to the correct layer as required.
This is less than ideal but until the footprint library table parser
supports prompting users to remap unknown layers, it will have to do.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/11839
2022-08-21 14:56:04 -04:00
Seth Hillbrand af34835fdf Restore removed data
Functions and definitions used in Python scripting should not be
removed.  Comments in header files should never be removed (only
updated/corrected)
2022-08-20 08:40:08 -07:00
Jeff Young eac3d33266 Keep Footprint Checker info between runs. 2022-08-20 12:28:34 +01:00
Jeff Young 28f7221cc3 Allow selection of Footprint Checker markers.
(And do a cross-probe to the Footprint Checker dialog.)
2022-08-20 11:30:25 +01:00
Jeff Young 8b0efa8ac4 A bit of cleanup from last commit. 2022-08-20 11:14:44 +01:00
Jeff Young aa2ad3b44c Move KICAD_T[] to std::initializer_list<KICAD_T>. 2022-08-20 10:28:11 +01:00
Jeff Young 46df421064 ADDED defined pad groups for net-tie footprints
Each pad group is allowed to short nets with other pads in its group.

Legacy footprints with the "net tie" keyword hack will get a single
group auto-created with all the footprint's pads in it.

DRC and the router now allow a track to collide with copper graphic items
while entering a net-tie pad as long as the closest point in the collision
is within the pad.

DRC (and the footprint checker) now check for copper items in the
footprint shorting pads which are not in the same pad group.

Fixes https://gitlab.com/kicad/code/kicad/issues/2265
2022-08-19 18:54:20 +01:00
Jeff Young 508df402f6 Cleanup. 2022-08-19 18:54:19 +01:00
jean-pierre charras a60053c800 selectAllItemsOnSheet(): fix a typo that prevent selection of items in root sheet. 2022-08-19 11:12:16 +02:00
jean-pierre charras e0fbe2542f Fix a few compil and Coverity warnings. 2022-08-19 10:53:29 +02:00
Marek Roszko 3a718385cf Just match the type to the comparison type on second thought 2022-08-18 22:22:04 -04:00
Marek Roszko 675938375b Use a larger data type for min_dist
Squared norms are massive and can logically exceed 32-bit ints
2022-08-18 22:19:36 -04:00
Seth Hillbrand b9461f2ba7 Re-enable tests for zones
Avoid invalid substantial checks triggered by signed floating point
zeros.  Adds a QA check to ensure zone-self checks are maintained
2022-08-18 17:06:29 -07:00
Seth Hillbrand 97d7ee1f30 Remove `/` from our forbidden LIB_ID list
It is still forbidden from footprint file names but that is handled
separately and it should not be forbidden in symbol files at all
2022-08-18 12:49:40 -07:00
Francois Berder 84745a6cdc Fix wrong number of columns check
Signed-off-by: Francois Berder <fberder@outlook.fr>
2022-08-18 11:03:45 +00:00
Marek Roszko 98b3904c51 Fix reserve call with the wrong source for size 2022-08-16 23:38:08 -04:00
Mike Williams f06e28b7a7 PCB: Finish Route, Route From End
Adds restart routing from other ratsnest' end and automatically finish
routing.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/5051
2022-08-17 03:15:46 +00:00
Jeff Young 6cfbf895fc Make sure parent pos is factored in for polygons.
Fixes https://gitlab.com/kicad/code/kicad/issues/11945
2022-08-16 17:28:56 +01:00
Alex 371f6d917f Use VECTOR2I::extended_type instead of long, and int for numeric limits. 2022-08-16 12:08:55 +00:00
Alex 405be8d15f Bounds-awareness in Move, Rotate, point editor, drawing tool 2022-08-16 12:08:55 +00:00
Alex b81a3f0533 GetClampedCoords: Better usability for rounding 2022-08-16 12:08:55 +00:00
Alex 4d7d367b25 Use KiROUND for BBox calculation, change parameter name, block negative padding. 2022-08-16 12:08:55 +00:00
Jeff Young a3dc38cb32 Update schema versions so we can patch bad data from earlier bug.
Fixes https://gitlab.com/kicad/code/kicad/issues/12180
2022-08-15 23:48:38 +01:00
Seth Hillbrand 759e1a64ef Fix broken const ref in wildcard 2022-08-15 12:09:30 -07:00
Seth Hillbrand 35ac39844f Clean up some auto usage
Don't make new copies of shared_ptr if we can use references.  Keep auto
usage down to hard-to-type-out sequences
2022-08-15 11:29:45 -07:00
Jeff Young db91bcbabf Bump file format version for allow-soldermask-bridges-in-FPs. 2022-08-15 18:03:03 +01:00
Jeff Young 1f347582f8 Introduce new marker type so we can track DRC errors on the drawing sheet.
Fixes https://gitlab.com/kicad/code/kicad/issues/12221
2022-08-15 18:03:03 +01:00
Seth Hillbrand 4b3ac52b1d Fix shadowed variables 2022-08-15 08:03:30 -07:00
Seth Hillbrand 9828360759 Remove unused variable 2022-08-15 07:52:53 -07:00
Jon Evans 55bb374370 Fix crash when unloading board 2022-08-14 22:49:51 -04:00
Marek Roszko c418b25756 Centralize the parseDouble functions in the parsers and gcc specialcase 2022-08-14 18:46:19 -04:00
Jeff Young 959681e472 Config Paths help is now inside the dialog, so we don't need quasimodal here anymore. 2022-08-14 22:56:29 +01:00
Jeff Young 86938aa425 Read, write and process the board-wide Allow soldermask bridges in FPs. 2022-08-14 22:56:29 +01:00
Jeff Young a9536b5de9 CHANGED netclass assignments now done via canvas or via patterns. 2022-08-14 22:56:29 +01:00
Jeff Young 18ac169ac7 Add contexts to EDA_COMBINED_MATCHER. 2022-08-14 22:56:29 +01:00
Roberto Fernandez Bautista 6b349fdb0a CADSTAR PCB: Allow remapping all non-electrical layers
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12196
2022-08-14 22:24:17 +01:00
Roberto Fernandez Bautista 69d696660b cadstar: Report warning that imported text may be different
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12195
2022-08-14 22:24:16 +01:00
Marek Roszko a070959209 Switch from strtod to std::from_chars for performance 2022-08-14 16:19:24 +00:00
Seth Hillbrand 2ee65b2d83 Force removal of zero-sized pads on load.
Pads with zero width or height cause issues when rendering and
selecting.  KiCad has never allowed these elements but hasn't prevented
importing systems where they exist.  This prevents their import and
cleans existing designs where the pads are placed

Fixes https://gitlab.com/kicad/code/kicad/issues/12200
2022-08-13 19:10:48 -07:00
Seth Hillbrand 1ce8fc1614 Ensure arcs are handled in topology
Use the connection-independent `Anchor()` function to get connection
points for either arcs or segments in topology.  This allows the
ratsnest to be correctly drawn between nets with arcs

Fixes https://gitlab.com/kicad/code/kicad/issues/12205
2022-08-12 20:07:28 -07:00
jean-pierre charras 488a53e71b Fix a few minor Coverity warnings 2022-08-12 10:51:36 +02:00
jean-pierre charras 5616ef2e7c ZONE_FILLER::buildThermalSpokes() fix incorrect spoke shape for pad shapes with offset.
Fixes #12201
https://gitlab.com/kicad/code/kicad/issues/12201
2022-08-10 15:27:28 +02:00
Jeff Young d6cd55e133 ADDED esc-removes-net-highlight preference to PCBEditor.
Fixes https://gitlab.com/kicad/code/kicad/issues/8760
2022-08-09 08:46:12 +01:00
Marek Roszko f695ae5522 Generate const keyword_hash maps at compile time
Or else the map gets pointlessly recreated during footprint loading thousands of times
2022-08-09 00:56:49 -04:00
Jeff Young a11f48ef10 Markers provider is no longer responsible for all markers.
Unconnected items and schematic partity violations are also now
represented by markers, so the ERC/DRC window itself needs to do
the deep-delete.

Fixes https://gitlab.com/kicad/code/kicad/issues/12182
2022-08-08 22:02:20 +01:00
Jeff Young 73402d733e Add labels for icon buttons. (They're used by screen readers.)
Also fixes a bunch of annoying wxWidgets asserts.
2022-08-08 22:02:20 +01:00
Jeff Young 4423755176 Pretty up the Teardrops dialog.
Fixes https://gitlab.com/kicad/code/kicad/issues/12170
2022-08-07 23:22:21 +01:00
Jeff Young 015bde8cb0 Test pad:hole violations in footprints as long as not same pad number.
Fixes https://gitlab.com/kicad/code/kicad/issues/12124
2022-08-07 19:49:39 +01:00
jean-pierre charras 05785ac6b9 Teardrops: use default zone settings instead of last settings set by the zone dialog.
Fixes #12171
https://gitlab.com/kicad/code/kicad/issues/
Fixes #12172
2022-08-07 08:52:40 +02:00
Jeff Young 509d233d97 Fix knockout text bounding boxes and hit testing.
Fixes https://gitlab.com/kicad/code/kicad/issues/12133
2022-08-06 00:00:04 +01:00
Jeff Young 6a9b821b5c Fix order of initialization resulting in net assignment getting lost.
Fixes https://gitlab.com/kicad/code/kicad/issues/12168
2022-08-06 00:00:04 +01:00
jean-pierre charras ea914eac9a Pcbnew: fix regression: Display board info when clicking on a empty place.
Previously: the displayed info was "Selected Items 0".
2022-08-05 13:49:01 +02:00
Seth Hillbrand 129905686f Fix error in net list sorting 2022-08-04 10:27:01 -07:00
Seth Hillbrand 090e70ccd2 ADDED: Have Net Inspector report lengths per layer
When tuning high speed traces, you may need to extract data per layer
rather than just the summary as signal speed varies based on dielectric
and trace type
2022-08-03 16:35:58 -07:00
Jeff Young 96f01d33c8 Performance improvements.
1) Move a bunch of std::map's to std::unordered_map to get constant-time
look-ups
2) Lengthen progress-reporting intervals to spend more time doing work
and less time talking about it
3) Reverse order of SHAPE_LINE_CHAINs in thermal intersection checks to
make (much) better use of bbox caches
4) Don't re-generate bboxes we already have
5) Fix some autos that weren't by reference (and were therefore copying
large datasets)
6) Rename delta progressDelta so it's easier to search for in future
7) Get rid of a few more autos (because I don't like them)
8) Pass large items to lambdas by reference

Fixes https://gitlab.com/kicad/code/kicad/issues/12130
2022-08-03 11:59:42 +01:00
Seth Hillbrand 76b9e25143 Cleanup unused code 2022-08-02 08:33:59 -07:00
jean-pierre charras f0efa9af9d gen_footprints_placefile: re-add option to negate or not the X coordinate.
This option is for footprints on bottom side, and not for Gerber format.
This option was existing in 5.x version, but lost in 6.x version.
Fixes #4638
https://gitlab.com/kicad/code/kicad/issues/4638
2022-08-02 11:22:12 +02:00
Seth Hillbrand f5283c6133 Fix cherry-pick issue 2022-08-01 21:32:56 -07:00
Seth Hillbrand e4ca2408d4 Net Inspector: Handle via layers
Rather than measuring the total via height, measure from the entry to
exit track height to get a more accurate distance

(cherry picked from commit 57de5a6b65)
2022-08-01 20:25:27 -07:00
Seth Hillbrand e0b3f6c258 PNS: Handle via-in-pad distances when tuning
Tuning with a via in pad, the via isn't a part of the full line.  But we
still need to account for the line length distance of the
starting/ending vias.  To do this, we simply measure the height from
the ending track to the ending pad and starting track to starting pad

(cherry picked from commit 82e8e38054)
2022-08-01 20:25:17 -07:00
Jeff Young 9a4136de00 Implement annular ring checking for pads.
Fixes https://gitlab.com/kicad/code/kicad/issues/12109
2022-08-01 17:45:34 +01:00
Jeff Young f3936f24ae Go back to single-threaded sliver checker.
Something was unhappy with the multi-threaded version.
(Note that we still multi-thread the polygon-building, which is the
most expensive part.)
2022-08-01 17:45:34 +01:00
Seth Hillbrand 17fdb7c6a8 Prevent drag index from exceeding full line count
Simplification removes segments, so we might lose our valid index.
Ideally, we would simplify during the assembly or pass the input index
to the simplify routine to maintain the proper value.

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

(cherry picked from commit 6c617d84ca)
2022-08-01 08:58:28 -07:00
Seth Hillbrand 5207a8d8b4 Properly scope the island removal enum 2022-08-01 08:58:04 -07:00
Seth Hillbrand 9fbf9973be Remove obsolete IsKeepout and KeepoutAll functions
These are superceded by IsRuleArea and the individual keepouts
2022-08-01 08:05:09 -07:00
Jeff Young 7556d7152f Fix errant return and improve progress reporting. 2022-08-01 13:09:51 +01:00
Jeff Young 43df863df2 Fix issue with caches not being initialized when printing msg bar. 2022-08-01 13:09:51 +01:00
Jeff Young 0304ad4494 Move connection width testing to rule system.
Also copies connection width progress reporting architecture over to
the sliver checker.
2022-08-01 13:09:51 +01:00
Jeff Young 927bc8141b Init member variables. 2022-08-01 13:09:51 +01:00
Jeff Young f2f04b1d20 Better progress reporting for thermal connections. 2022-08-01 13:09:51 +01:00
Jeff Young b0a9cea6f6 Better progress reporting, and don't report necks that don't have items.
Since we aren't searching zones (they aren't in the m_CopperItemRTreeCache)
this will drop all errors that are zone-only (which are better handled by
zone-min-width).
2022-08-01 13:09:51 +01:00
Jeff Young 4bc7c16ce0 Don't auto-fill zones due to DRC marker insertion. 2022-08-01 13:09:51 +01:00
Jeff Young 54213bb7f1 Cleanup and move to DRC_ENGINE's status reporter.
1) brace formatting
2) get rid of some autos
3) get rid of a dyn_cast that CLion claims is bad
4) use DRC_ENGINE's status reporter
2022-08-01 13:09:51 +01:00
Jeff Young 661caf1de9 Make sure new zones are filled when auto-fill is on.
Also fixes some issues with enablement of the Remove Islands stuff.

Fixes https://gitlab.com/kicad/code/kicad/issues/12123
2022-08-01 13:09:51 +01:00
Jeff Young 6f49b57f9b Cleanup & performance enhancements. 2022-08-01 13:09:51 +01:00
Marek Roszko a8505d9c76 SEARCH_RESULT -> INSPECT_RESULT
To fix the name squatting it's doing for future functionality
2022-07-29 20:01:10 -04:00
Jeff Young f0b9e67212 Add ignore-line-widths mode to CONVERT_TOOL.
Fixes https://gitlab.com/kicad/code/kicad/issues/5911
2022-07-29 21:39:03 +01:00
Jeff Young 753f2f3e4c Display descriptions in second column of library trees.
Also fixes some bugs in how the columns are sized.

Fixes https://gitlab.com/kicad/code/kicad/issues/12090
2022-07-28 14:51:47 +01:00
Jeff Young fc1afa6298 Improvements to convert tool.
1) Handle filled shapes
2) If a chained outline can't be found, build hulls of the individual
segments
3) Combine intersecting shapes
4) Simplify code

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

Fixes https://gitlab.com/kicad/code/kicad/issues/5911
2022-07-27 18:57:45 +01:00
Jeff Young 2bf33321d1 Update constraint mode in status bar during move.
Fixes https://gitlab.com/kicad/code/kicad/issues/10465
2022-07-27 18:57:45 +01:00
jean-pierre charras aabc3b3cc6 FP editor: fix crash when duplicating a footprint.
Fixes #12098
https://gitlab.com/kicad/code/kicad/issues/12098
2022-07-27 19:08:27 +02:00
Jeff Young cb6a2552d9 Use the FPEditor's status bar messages for FPBrowser.
Fixes https://gitlab.com/kicad/code/kicad/issues/11404
2022-07-26 18:45:02 +01:00
jean-pierre charras 4d48376eae Fix some warnings detected by PVS-STUDIO (not used vars) 2022-07-26 16:00:14 +02:00
Jeff Young ee0f93ed17 Fix some issue with hierarchy panel on OSX.
Also moves the option toolbars tight to the canvas for all windows.

Fixes https://gitlab.com/kicad/code/kicad/issues/12087
2022-07-26 14:51:43 +01:00
Jeff Young 032708860b Include both text shapes and border shapes in textbox.
Fixes https://gitlab.com/kicad/code/kicad/issues/11806
2022-07-25 16:10:08 +01:00
Jeff Young e10158ff10 ADDED show pin names on footprint pads when assigning to symbol.
Fixes https://gitlab.com/kicad/code/kicad/issues/4576
2022-07-24 23:41:41 +01:00
Jeff Young 1bad72f14f Remove bad static_cast.
(m_settings isn't a PCBNEW_SETTINGS in non-PCB_EDIT_FRAMEs)
2022-07-24 23:41:41 +01:00
jean-pierre charras 82167a7c96 Avoid crashes when, for some reason, a dll cannot be loaded.
In this case a null pointer was returned by the internal code.
This pointer is now tested against nullptr to avoid the application crashing.
Fixes #12080
https://gitlab.com/kicad/code/kicad/issues/12080
2022-07-24 19:42:50 +02:00
jean-pierre charras 0604d7b813 Fix minor compil and Coverity warnings. 2022-07-24 09:33:43 +02:00
jean-pierre charras c16d0603c6 Add fix missing in my commit 8eee7667 2022-07-24 09:10:51 +02:00
Jeff Young fa679d3601 Pinned libs can also be found in program settings. 2022-07-23 20:17:04 +01:00
jean-pierre charras 8eee766791 Fix Cvpcb DISPLAY_FOOTPRINTS_FRAME: some display options not working. Commit 5e4a7041 moved 4 settings used in Cvpcb to a PCBNEW_SETTINGS struct. But in Cvpcb, this config struct does not exist. So these 4 settings are now moved to a section (PCB_VIEWERS_SETTINGS_BASE) common to Cvpcb and Pcbnew config. 2022-07-23 18:45:13 +02:00
Jeff Young f0ef6932b8 Fix issues with plotting textbox outlines.
Fixes https://gitlab.com/kicad/code/kicad/issues/11943
2022-07-23 13:53:03 +01:00
Jeff Young 280ff3ccdc Fix net highlight command enablement.
These always need to be enabled so that the current highlight can
be cleared.

Fixes https://gitlab.com/kicad/code/kicad/issues/12058
2022-07-23 12:42:11 +01:00
Jeff Young 9dd3bbf2cb Change highlight net hotkey default.
Fixes https://gitlab.com/kicad/code/kicad/issues/12051
2022-07-23 12:34:48 +01:00
Jeff Young bf5e649e44 Fix log errors in new solder masking checking code. 2022-07-23 09:26:04 +01:00
Jeff Young f41af10007 Clean up hole shapes for safety (smart pointer) and consistency. 2022-07-22 23:06:07 +01:00
Jeff Young a2c002e1da Improve solder mask aperture testing.
1) For solder mask apertures report both the aperture and both
exposed items.

2) Don't process solder mask apertures in footprints with the
"bridging allowed" flag set.

Fixes https://gitlab.com/kicad/code/kicad/issues/12064
2022-07-22 23:06:07 +01:00
Jeff Young 5442d284f4 Improve strings for highlight net commands. 2022-07-22 09:31:11 +01:00
Jeff Young def87c969e Redo the pinned-libraries storage architecture.
1) always use preferences directly
2) allow nicknames from either preferences or project
3) store-after-modify

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

Fixes https://gitlab.com/kicad/code/kicad/issues/11892
2022-07-22 09:31:10 +01:00
Jeff Young b80fd5329d Clear dimension pointer after committing.
Fixes https://gitlab.com/kicad/code/kicad/issues/11864
2022-07-22 09:31:09 +01:00
Jeff Young 004abcd370 Leave originally selected items selected after cancelled move.
Fixes https://gitlab.com/kicad/code/kicad/issues/12024
2022-07-22 09:31:08 +01:00
Marek Roszko b6b4ae959e Shuffle around the helper script folders 2022-07-21 19:04:08 -04:00
Seth Hillbrand 16e3d40552 ADDED: Display calculated clearance in status bar
In addition to showing resolved clearance, we also show the calculated
clearance in the same method as is used for DRC.  This will allow users
to better examine their system while working.

Fixes https://gitlab.com/kicad/code/kicad/issues/7934
2022-07-21 15:44:48 -07:00
Seth Hillbrand 9b74372f9d Minor spelling fix 2022-07-21 11:55:44 -07:00
Tomasz Wlostowski e558893851 router: use actual snap point position for routability checks of a segment instead of the segment endpoint(s).
Explanation:
- place a long segment A with something violating the rules close to its endpoint
- try to start routing in the 2/3 of the length of A (on the obstacle side)
- bummer - the router picks the nearest endpoint of A for the collision check (even though we don't care about this collision since we want to route far away from it)
2022-07-21 16:30:28 +02:00
Mike Williams f8b157a1fb PCB: Bitmaps should respect layer opacity and highlighting options
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/12045
2022-07-20 14:59:19 -04:00
Jeff Young 012d861aab Get rid of error-prone reverse logic.
Fixes https://gitlab.com/kicad/code/kicad/issues/12049
2022-07-20 17:24:12 +01:00
Jeff Young 6a9c6e8599 Hook up ID_GRID_SETTINGS for footprint viewers.
Fixes https://gitlab.com/kicad/code/kicad/issues/12030
2022-07-19 21:24:45 +01:00
Jeff Young 763c77eab8 DXF parameters are for DXF (only).
Fixes https://gitlab.com/kicad/code/kicad/issues/12021
2022-07-18 17:51:20 +01:00
jean-pierre charras 49bf717c0e fix minor compil warnings 2022-07-17 20:29:59 +02:00
Jeff Young 1ade5a8c72 Fix typo.
And clean up the code just a little to make it clearer.

Fixes https://gitlab.com/kicad/code/kicad/issues/12022
2022-07-17 17:04:04 +01:00
Jeff Young b727bfc16d Performance: avoid sqrt at all costs. 2022-07-16 18:42:32 +01:00
Jeff Young d0547cbde7 Don't allow 0 line-width for unfilled shapes.
Fixes https://gitlab.com/kicad/code/kicad/issues/12010
2022-07-16 16:26:05 +01:00
Jeff Young 2f00b4e170 Delete multiple rows if selected.
Fixes https://gitlab.com/kicad/code/kicad/issues/12013
2022-07-16 12:07:15 +01:00
Jeff Young aa9fe58abe Don't duplicate user-defined track widths, via sizes or DP dims...
... when appending to board.

Fixes https://gitlab.com/kicad/code/kicad/issues/12014
2022-07-15 20:52:08 +01:00
Seth Hillbrand c8a383a48e Get via font fill/color correct when highlighted
Fixes https://gitlab.com/kicad/code/kicad/issues/11802
2022-07-15 11:40:46 -07:00
Seth Hillbrand 595e5cb3f2 Add sort feature to pre-defined list
Board setup rows should be sortable when inserting new elements.  They
get sorted when saving, this keeps that representation while editing

Fixes https://gitlab.com/kicad/code/kicad/issues/12015
2022-07-15 11:16:15 -07:00
Jeff Young 2de10080cd Add edge and margin clearances to message panel. 2022-07-15 16:14:32 +01:00
jean-pierre charras 50bb7c93a1 Fix bug in commit 64e1720f 2022-07-15 17:03:05 +02:00
jean-pierre charras 64e1720f12 FP_SHAPE in pads: always specify fill mode for shapes that can be filled or not.
Fixes #12012
https://gitlab.com/kicad/code/kicad/issues/12012
2022-07-15 16:50:38 +02:00
Jeff Young c98826c8b0 Open newly-pasted footprint on canvas of Footprint Editor.
Fixes https://gitlab.com/kicad/code/kicad/issues/11398
2022-07-15 14:13:39 +01:00
Seth Hillbrand 93fb00d815 Protect the Kiway dereference
Also find a few more places where we are reaching into a new frame to
perform actions that need to have dialogs closed.

Running actions should also wait for the next cycle rather than being
immediately executed when we are calling into a new frame.  This allow
for the cleanup actions onClose() to happen prior to the next action
starting

Fixes https://gitlab.com/kicad/code/kicad/issues/11891
2022-07-14 11:37:45 -07:00
Mike Williams d44e34d513 Images: Add full properties editor
Converts dialog_image_editor to panel_image_editor. Embeds this panel in
a new properties dialog for the schematic and PCB editors that allows
editing position, layer, locked status, etc. like other items.
2022-07-14 11:23:23 +00:00
Mike Williams 99f8b21ed1 PCB: Add bitmap layer per board layer 2022-07-14 11:23:23 +00:00
Mike Williams 3669cb4673 PCB Editor: Add User Background Images 2022-07-14 11:23:23 +00:00
Seth Hillbrand b5bf1da251 Keep track of blocking windows
Allows the calling KiWAY player to send messages to the blocking window
before signaling a separate call

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

Fixes https://gitlab.com/kicad/code/kicad/issues/11772
2022-07-13 19:25:24 -07:00
Seth Hillbrand 91e4d5e0ea Add Apply button to "Edit Text and Graphics"
Allows the user to apply multiple sets of changes without closing the
window

Fixes https://gitlab.com/kicad/code/kicad/issues/11904
2022-07-13 16:44:15 -07:00
Seth Hillbrand 20a372ff69 ADDED Clearance data in PCB editor status bar
When selecting two objects, display the resolved clearance and
(optionally) hole clearance in the status bar
2022-07-13 15:04:32 -07:00
Seth Hillbrand a9a5136c1c Always allow blind/buried/micro vias
Removes a nanny setting that prevented the use of
blind/buried/micro-vias without a checkbox.  If the designer does not
want microvias in their board, they simply do not place microvias.
2022-07-12 19:47:31 -07:00
Mike Williams 3d1d432c5e PCB Editor: re-add missing color to dynamic ratsnest 2022-07-12 19:36:51 -04:00
Seth Hillbrand e87ba10a5a Enforce group selection to abide by L/R behavior
When selecting greedy (right to left), selecting any part of the group
will get the whole group.  When selecting left to right, we must select
all items in the group to get the grouped items unless we are in the
group itself

Fixes https://gitlab.com/kicad/code/kicad/issues/11902
2022-07-12 11:01:34 -07:00
Jon Evans 664bf1382d PNS: Fix IsLineCorner logic
Handle segment width test in the case of locked segs
Fix logic failure where vias on path cause crash

Fixes https://gitlab.com/kicad/code/kicad/-/issues/11990


(cherry picked from commit 2512375988)
2022-07-12 02:49:24 +00:00
Jeff Young 57acce9e55 Share more code between selection tools. 2022-07-11 19:04:08 -06:00
Alex aaf99eb0cc Performance optimizations. 2022-07-11 21:25:12 +00:00
Seth Hillbrand 3081023b5e ADDED: Minimum copper connection width DRC check
Checks all copper connections in each net/layer for minimum width
setting.

Fixes https://gitlab.com/kicad/code/kicad/issues/9870
2022-07-11 19:26:56 +00:00
Wayne Stambaugh 6a74ecbffd Pcbnew: fix minor white space issue in board file.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/11669
2022-07-11 11:21:45 -04:00
Jeff Young 0a623bff9f Save fp browser list widths and apply known hack to work around wxWidgets bug.
Fixes https://gitlab.com/kicad/code/kicad/issues/11744

Fixes https://gitlab.com/kicad/code/kicad/issues/11745
2022-07-10 23:07:04 -06:00
Jeff Young 43b82aeffc Fix another case of Edge_Cuts & Margins needing to be treated as all-physical-layers.
Fixes https://gitlab.com/kicad/code/kicad/issues/11843
2022-07-10 20:32:28 -06:00
Jeff Young 19b4844102 Avoid OSX system shortcut.
CHANGED toggle net highlight from ctrl-` to opt-`.

Fixes https://gitlab.com/kicad/code/kicad/issues/10160
2022-07-10 20:20:22 -06:00
Jeff Young 1eb2a39eca Fix errant test in board items plotter.
Fixes https://gitlab.com/kicad/code/kicad/issues/11944
2022-07-10 18:54:36 -06:00
Jeff Young e122dc38bd Add context menu item for clearing net highlighting.
In selection tools, drawing tools, router tool, line_wire_bus tool.

Fixes https://gitlab.com/kicad/code/kicad/issues/11920
2022-07-10 17:15:20 -06:00
Jeff Young eb27a3f8b9 Added pinning support to various EDA_LIST_DIALOGs.
Footprint Save As, Symbol Save As, etc.
2022-07-09 20:44:49 -06:00
Jeff Young 05219e4d9a Add pinned library support to Choose Symbol and Choose Footprint. 2022-07-09 20:06:31 -06:00
Jeff Young 190fb23e88 Add pinned library support to Footprint and Symbol Viewers.
Also includes adding libraray and symbol filters to Symbol Viewer.
2022-07-09 17:41:10 -06:00
Jeff Young b8479bf6f1 Handle severity ignore rules in router.
Fixes https://gitlab.com/kicad/code/kicad/issues/11609
2022-07-09 11:24:47 -06:00
Seth Hillbrand 0cb5abd7f7 Fix highlight on route again
Added a clarifying comment that will hopefully keep the required code
block in place
2022-07-08 20:14:46 -07:00
Jeff Young c7746fa000 Fix copy pasta error.
Fixes https://gitlab.com/kicad/code/kicad/issues/11986
2022-07-08 17:44:36 -06:00
Jeff Young ded611aed5 Patch annoying large checkbox cols in wxWidgets 3.1.x on OSX. 2022-07-08 17:27:05 -06:00
Jeff Young 521b231873 Don't zero out width of shapes on Margin, only Edge_Cuts.
Fixes https://gitlab.com/kicad/code/kicad/issues/11967
2022-07-08 17:27:05 -06:00
Jeff Young 654740b90d Add newly-drawn objects to any entered group.
Fixes https://gitlab.com/kicad/code/kicad/issues/11912
2022-07-08 17:27:05 -06:00
Jeff Young 8a9bf02b7e Smarten up silk clearance & tented item handling.
The inspection tool will report whether or not the item is tented
(indicating in that case that any clearance will only be applied
to any hole).

The DRC test ignores tented items without a hole, and runs the
clearance test against the hole for items with a hole.

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

Fixes https://gitlab.com/kicad/code/kicad/issues/11951
2022-07-08 17:27:05 -06:00
Jeff Young f611f9f5d3 Allow zone connection rules to target footprints.
If the pad is set to inherit and a rule targets its parent footprint,
then that rule should fire.
2022-07-08 17:27:05 -06:00
Jeff Young fa2e43f696 Reduce noise in board <-> library footprint tests. 2022-07-08 17:27:04 -06:00
Seth Hillbrand 0c47a09517 Ensure rectangles are normalized
Normalize on creation and fixup rectangles previously saved with
inverted coordinates

Fixes https://gitlab.com/kicad/code/kicad/issues/11965
2022-07-07 10:40:18 -07:00
jean-pierre charras 7b28804f67 Fix a minor compil and Coverity warning 2022-07-06 13:54:17 +02:00
Seth Hillbrand 7f9f37e507 Avoid double-caching FP zones
Leads to crashes/invalid data when multi-threading hits both at same
time
2022-07-05 20:07:18 -07:00
jean-pierre charras f00de04336 FP editor: fix incorrect mirroring of zones in footprint.
This is due to a call to Mirror() with incorrect parameter.
Unfortunately, depending on FP items, one Mirror parameter has the opposite
meaning about mirror axis.
Fixes #11952
https://gitlab.com/kicad/code/kicad/issues/11952
2022-07-04 11:14:47 +02:00
Tomasz Wlostowski 3111b7679d router: bring back the snap-to-hull behaviour in Mark Obstacles mode 2022-07-03 23:59:27 +02:00
jean-pierre charras d41e47609c Pcbnew: fix plot issue for non filled polygons in footprints.
Fixes #11959
https://gitlab.com/kicad/code/kicad/issues/11959
2022-07-03 11:24:23 +02:00
Seth Hillbrand cde30d3dba Clarify cross-probing options
Previous the cross-probing options were mixed between sending and
receiving cross-probe events.  This clarifies so that all of the pcbnew
cross-probe options deal with whether the cross-probe is seen in pcbnew
and all of the eeschema options deal with seeing the event in eeschema.

Also updates the wording in the options panels to be the same where
possible and adds tooltips

Fixes https://gitlab.com/kicad/code/kicad/issues/11454
2022-07-01 16:47:09 -07:00
Seth Hillbrand 907d8fc018 Revert "Fix Swatch sizes"
This reverts commit 25c3a4681f.

Windows default sizes are too big when they are the correct size on
Linux.  We need the DU scaling for swatches
2022-07-01 11:37:55 -07:00
Seth Hillbrand 25c3a4681f Fix Swatch sizes
The swatches are surrounded by non-scaling icons.  We should not scale
the swatches unless we also scale the icons.  This patch makes all
elements in the appearance panel equally non-scaling

This relates to https://gitlab.com/kicad/code/kicad/-/issues/11880
2022-07-01 10:56:13 -07:00
jean-pierre charras 2ff2a6ffcd Kicad2step: fix STEP export from Pcbnew, broken by changes in commit 8456d6c
also: DIALOG_EXPORT_STEP: remember tolerance option during a session.
2022-07-01 09:56:15 +02:00
Seth Hillbrand 0c796697b4 Avoid documentation in dialogs
If the nomenclature is unclear, we should rework the dialog rather than
adding documentation strings to a crowded dialog.

This also prevents new strings from appearing in v6
2022-06-30 10:57:56 -07:00
luz paz af6ba1a16e Fix typos in pcbnew sub-directory
Found via `codespell -q 3 -S *.po,./thirdparty,./Documentation/changelogs -L aactual,acount,aline,alocation,alog,anormal,anumber,aother,apoints,aparent,aray,ba,busses,dout,einstance,leaded,modul,ontext,ot,overide,serie,te,,tesselate,tesselator,tht`
2022-06-30 09:39:45 -04:00
Jeff Young f48ed79039 Rely on DRC rules when items might overlap.
Fixes https://gitlab.com/kicad/code/kicad/issues/1790
2022-06-29 13:43:44 -06:00
Seth Hillbrand 802745398a Python add param to change UUIDs on fp load
By default, we load all footprints with a new UUID set to allow them to
be added to the board as unique objects.  But when editing footprints,
we want to maintain the same UUID.

Fixes https://gitlab.com/kicad/code/kicad/issues/11870
2022-06-29 12:10:24 -07:00
Seth Hillbrand f1a054e6af Correct SWIG call for board design settings
Use the backend call rather than rely on the naming of internal
variables

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

(cherry picked from commit 9cebea5f11)
2022-06-28 14:03:43 -07:00
jean-pierre charras 7d8fe98d53 Pcbnew, exporter VRML: code refactor and remove unuded code.
It should help later, to use EXPORTER_VRML in python scripting helpers.
Mainly, EXPORTER_VRML avoid to expose the actual exporter VRML internal code.
2022-06-28 18:59:50 +02:00
Mike Williams 64b89639cf PCB Editor: Make Ctrl-Click net highlighting configurable
Defaults to ctrl-click is exclusive or selection like other
applications. Footprint editor can only be exclusive or.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10810
2022-06-28 16:29:14 +00:00
Jeff Young ab9c42d427 Fix a typo which leads to a bogus type-cast.
Fixes https://gitlab.com/kicad/code/kicad/issues/11886
2022-06-27 23:07:06 -06:00
Jeff Young 833dc70bff Add edge-exclusions to router (for castellated pads).
Fixes https://gitlab.com/kicad/code/kicad/issues/1790
2022-06-27 15:16:37 -06:00
Ian McInerney 4e4b0962db Create python subdirectory in pcbnew build for the symlink 2022-06-25 01:10:20 +01:00
Seth Hillbrand 03c279ffd4 ADDED: Threadpool
Thread pools are long-lasting executors that have close to zero overhead
when launching new jobs.  This is advantageous over creating new threads
as we can use this for threading smalling jobs and smaller quanta.  It
also avoids the heuristics needed to determine the optimal number of
threads to spawn
2022-06-24 22:59:24 +00:00
Seth Hillbrand 8418fe12d8 Allow board saves without modifying project files
Without the project files, certain settings will not be saved by this
python call.  This defaults to false (current behavior) but setting the
`aSkipSettings` to true will revert to v5 behavior

Fixes https://gitlab.com/kicad/code/kicad/issues/11323
2022-06-24 15:28:56 -07:00
jean-pierre charras 35375a98c6 FP editor, dialog leader dimension: fix text frame setting not saved
Fixes #11900
https://gitlab.com/kicad/code/kicad/issues/11900
2022-06-24 17:45:51 +02:00
jean-pierre charras 3fcd959757 Gerbview: minor cosmetic enhancement: show if the file is X1 or X2 format. 2022-06-24 15:44:13 +02:00
Ian McInerney f303d78723 Fix install of _pcbnew.so to allow DESTDIR to be used with it
We need to use the install directive to do an install so that the
install process uses all the variables correctly. So create a temporary
symlink in the build directory that points to nowhere and then install
that.
2022-06-23 23:15:49 +01:00
jean-pierre charras c3f90d914b Gen Drill map: Re-add Gerber option but only using X2 format.
Only the X2 format allows the TF.FileFunction option, mandatory to
avoid mistakes about this file that is not a standard Gerber file.
2022-06-23 11:56:27 +02:00
Ian McInerney 44a8f1e6e6 Create the symlink for the python module in the build tree as well
The unit tests need the python module to be loadable, so there needs to
also be a symlink to the kiface inside the build directory.
2022-06-23 00:27:35 +01:00
Ian McInerney 9bb5beb264 Use symlink to pcbnew kiface for python module on Linux
Instead of installing an identical shared library into the Python
folder, just use a link to the existing library instead.

Fixes https://gitlab.com/kicad/code/kicad/issues/9974
2022-06-22 23:40:29 +01:00
Ian McInerney b51d8c9825 Introduce new CMake variable to store kiface install location 2022-06-22 23:40:25 +01:00
Seth Hillbrand 3ddd287004 Revert "Fixup python module install"
This reverts commit 6fd60c5561.

Worked only for a single make.  Second run fails due to missing file
2022-06-22 14:11:59 -07:00
Seth Hillbrand 6fd60c5561 Fixup python module install
INSTALL(FILE) does not handle setting linux-specific attributes in the
same way that INSTALL(TARGET) does.  This patch is suggested by
StefanBruens

Fixes https://gitlab.com/kicad/code/kicad/issues/9974
2022-06-22 13:29:08 -07:00
Seth Hillbrand a43fcd045f Hyperlynx arcs are always CW
Previous test comparing start/end angles doesn't account for all cases.
This adds a more robust test to ensure all arcs are output in CW fashion

Fixes https://gitlab.com/kicad/code/kicad/issues/10782
2022-06-22 09:59:37 -07:00
jean-pierre charras 32c5a4d1ea gen drill maps: remove unusable format (HPGL and GERBER) for map files.
Especially, on a regular basis, map files in gerber format create problems
for board house.
2022-06-22 11:13:06 +02:00
jean-pierre charras 82b2df67be Add 2 automatically generated files to the source tree.
These files are needed by translators, so it is better to add them to the source
without need to build kicad.
2022-06-22 08:51:04 +02:00
Seth Hillbrand a852286eb5 Cleanup compile warnings 2022-06-21 17:04:56 -07:00
Miklós Márton f2382a7bd1 Add Make selected active/inactive actions to the symbol libraries
context menu

Fixes #11372
2022-06-21 23:32:02 +00:00
jean-pierre charras b54bb90975 DIALOG_FOOTPRINT_WIZARD_LIST_BASE: use a monospaced font to show the wizard errors.
A proportional font does not allow to correctly show the error message and the
marker showing the exact position of the error in the printed line.
2022-06-21 09:42:21 +02:00
jean-pierre charras e73dd40f26 APPEARANCE_CONTROLS: fix incorrect behavior of Preset layers widget:
In non English languages, the selection of a previous choice was broken
due to the fact fixed (read only) presets have a English name, but the
UI list uses translated names, so the actual selection was not correctly
displayed.
2022-06-21 08:57:16 +02:00
Jeff Young aad85a83da Improvements to rotation/mirroring of dimensions inside footprints.
Fixes https://gitlab.com/kicad/code/kicad/issues/11861
2022-06-20 22:25:39 +01:00
Jeff Young 23e8bafd9c Don't run courtyard conflicts in footprint editor. 2022-06-20 22:25:39 +01:00
Miklos Marton 426c46abb1 pcbnew: pad editor UI fixes
When editing a pad with circular hole the Y dimension is hidden
and Diameter is shown instead of Size X when opening the properties
of an existing pad.
Adjusted Pad shape: label to be vertically aligned to the pad shape
combobox.
2022-06-20 19:15:41 +00:00
jean-pierre charras 6679decc8d Fix syntax issues in footprint wizards
Fixes #11867
https://gitlab.com/kicad/code/kicad/issues/11867
2022-06-20 20:31:18 +02:00
Jeff Young 048f277b1e Don't reset Footprint Tests Run if the board didn't change.
Fixes https://gitlab.com/kicad/code/kicad/issues/11844
2022-06-20 17:25:43 +01:00
Jeff Young d69e3fdb5e Specify a winding for Hyperlynx arcs.
I can't test it, so it's a 50:50 guess.  We may need to flip the
test....
2022-06-20 17:03:37 +01:00
Jeff Young 298edb09c3 Initialize TEXT_ATTRIBUTES justifications for text & textboxes.
Fixes https://gitlab.com/kicad/code/kicad/issues/11805
2022-06-20 17:03:37 +01:00
jean-pierre charras 9db907cc70 pcbnew, plot footprint: fix typo that prevent ploting dimensions
Fixes #11860
https://gitlab.com/kicad/code/kicad/issues/11860
2022-06-20 17:20:56 +02:00
jean-pierre charras d19705ac8c FOOTPRINT::Flip(): add missing handle of dimensions. 2022-06-20 11:37:25 +02:00
jean-pierre charras c8ce01ce8e pcb_parser: fix an incorrect CHECK_MSG when parsing a dimension in a footprint.
this incorrect CHECK_MSG created a crash.
Fixes #11859
https://gitlab.com/kicad/code/kicad/issues/11859
2022-06-20 10:42:19 +02:00
Jeff Young 73836b50fc Add proper collision test to via placer.
Also moves DISALLOW constraint processing outside the loop as it
performs it's own loop over any objects referenced by the rules.

Fixes https://gitlab.com/kicad/code/kicad/issues/11832
2022-06-19 21:57:49 +01:00
Jeff Young 801a98a302 Don't clear marker counts when closing DRC dialog.
Fixes https://gitlab.com/kicad/code/kicad/issues/11844
2022-06-19 20:51:45 +01:00
Jeff Young 231ac567b8 Bug fixes for printing vias.
Blind/buried and microvias didn't get their layers trimmed properly,
nor did through vias with dropped pads.

Fixes https://gitlab.com/kicad/code/kicad/issues/11851
2022-06-19 11:58:21 +01:00
Jeff Young 82ebc247b8 More performance enhancements for DRC. 2022-06-18 19:47:11 +01:00
Jeff Young 5da817649b Fix nullptr bug. 2022-06-18 13:04:06 +01:00
Jeff Young 97b0005780 More caching for DRC.
Also fixes a bug where some physical clearance tests would be run even
if the clearance was 0 (or if the rule was set to IGNORE).
2022-06-17 23:58:31 +01:00
jean-pierre charras f20cb0fda8 Activate teardrops: remove advanced config option and add teardrop keywords in files. (the ability to read teardrop keywords was added some time ago) 2022-06-17 19:42:27 +02:00
Miklós Márton b912bef2f6 pcbnew: Display Diameter when circular shape selected in pad editor 2022-06-16 20:26:42 +00:00
Fabien Corona bd8f0ae81a Ibis: Fix coverity issues 2022-06-16 20:09:50 +00:00
Seth Hillbrand 4043dca613 Push wxString allocation to smaller context
Prevents creation of new wxString on stack for each clearance check
2022-06-16 08:26:28 -07:00
Seth Hillbrand 359d66bc81 Protect against invalid pads
Before dereferencing the front of the sequence, we have to ensure that
the pad exists on any layer.  If not, just return the default (probably
F_Cu) for the element
2022-06-16 08:20:47 -07:00
Seth Hillbrand 5327b10064 Remove shared wxString instance in DRC
Threaded DRC access will write to this string, re-allocating the memory
without any synchronization between threads using the string.  Comment
adding this listed performance as a reason for using shared strings.
Measured performance does not seem noticeably different in either case,
even with high-error count boards.  If there is a case where the
performance is limiting, we can replace these wxStrings with
std::wstring and utilize fmt

Fixes https://gitlab.com/kicad/code/kicad/issues/9888
2022-06-15 16:46:03 -07:00
Jeff Young d40664d171 Handle double-click in dimension drawing tool.
Fixes https://gitlab.com/kicad/code/kicad/issues/11815
2022-06-15 18:07:50 +01:00
Jeff Young 5e80e2a421 58f553a9ca requires that cache be layer-sensitive.
Fixes https://gitlab.com/kicad/code/kicad/issues/11814
2022-06-15 00:30:11 +01:00
Fabien Corona bf62d6e9ee Ibis: Coverity issues 2022-06-13 19:31:57 +00:00
jean-pierre charras 9fd5ee5a2f paper min size set to 1 inch (previously 0.1 inch, very small indeed)
Avoid using magic numbers in file pcb_parser.cpp.
Fixes #11807
https://gitlab.com/kicad/code/kicad/issues/11807
2022-06-13 17:51:29 +02:00
Jeff Young 52bc2511cd Add a radioButton mode to IMAGE_BUTTON.
Fixes https://gitlab.com/kicad/code/kicad/issues/11797
2022-06-12 20:09:46 +01:00
Marek Roszko 87f10ea206 Split off the netlist export content helper but it's advancedcfg 2022-06-11 23:09:47 -04:00
Marek Roszko cb44d97ed4 Update pcbnew to the new filedlg customize 2022-06-11 22:10:49 -04:00
Jon Evans e5ece4e460 ibis_parser: fixes to build on MSVC
Use stringstream instead of C arrays for formatting std::string
std::isnan(int) is invalid

Also fix a few report severities that seemed inconsistent
2022-06-11 18:09:17 -04:00
Jeff Young 9b70308f5c Nullptr defensive code.
Fixes https://gitlab.com/kicad/code/kicad/issues/11690
2022-06-11 22:32:12 +01:00
Jeff Young 4f3cfdc92e Clang says nan and isnan aren't in std namespace.... 2022-06-11 22:14:14 +01:00
Jeff Young f22cf1cc3a Fill in missing bits of LAYER variable for printing/plotting.
Fixes https://gitlab.com/kicad/code/kicad/issues/11788
2022-06-10 22:38:01 +01:00
Seth Hillbrand 20f4e62176 Rename signalIntegrity to ibis
We do not use camelCase in KiCad
2022-06-10 13:35:48 -07:00
Tomasz Wlostowski f5fe1d5462 router: another attempt at improving 'kink' robustness of the hull generator 2022-06-09 20:51:21 +02:00
Fabien Corona 0d35d69f70 ADDED: Read IBIS files 2022-06-09 18:30:51 +00:00
Seth Hillbrand ac0f95683f Sort PCAD layers
Better fix for 11750.  Instead of figeting with layer values, we sort
our map based on the layer numbers in the PCAD file.  F_Cu is always
layer 1 and B_Cu is always layer 2.

Fixes https://gitlab.com/kicad/code/kicad/issues/11750
2022-06-09 11:10:34 -07:00
Seth Hillbrand e857622dd4 Handle B_Cu ordering
Stopgap until we introduce multi-layer mapping widget

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

(cherry picked from commit 32aabaf010)
2022-06-08 17:19:37 -07:00
Seth Hillbrand 124bdb6673 Check for older tags in pcad import
The pourOutline/planeOutline do not include support for fillets

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

(cherry picked from commit 72b7f9fe10)
2022-06-08 16:27:17 -07:00
Jeff Young f2c26ae528 Formatting. 2022-06-08 23:53:18 +01:00
Tomasz Wlostowski 56df462474 router: fix SegmentHull() corner case when it 'chamfers' more than the clearance permits (corner case for 0-length segments, which we use
for representing holes)
2022-06-09 00:33:08 +02:00
Tomasz Wlostowski 990281a897 router: use either copper or hole clearance, whichever is larger, when checking track -> hole collisions 2022-06-09 00:31:47 +02:00
Tomasz Wlostowski 4192c0a709 router: move IsFlashedOnLayer to the IFACE_BASE class so that it can be used in the debugger tool 2022-06-09 00:30:57 +02:00
Tomasz Wlostowski bcfe12ce47 router: improvements in robustness of SegmentHull()
- ensure the 'chamfer' radius and clearance is rounded before computing the actual hull vertices
- for small, non-45 degree line segments (present in many boards), generate a slightly larger but still axis-aligned 45 degree hull instead of following exactly the segment direction
2022-06-08 14:28:31 +02:00
Tomasz Wlostowski e90ab055b9 router: remove unused LINE::Is45Degree() 2022-06-08 14:28:31 +02:00
Jon Evans dc6c27b686 Don't wipe out visibility state when changing layer count
(cherry picked from commit 7053981835)
2022-06-08 03:01:02 +00:00
Jon Evans 30fb298ed3 PNS: Re-enable hole clearance for non-flashed pads/vias
Fixes https://gitlab.com/kicad/code/kicad/-/issues/11098
2022-06-07 19:49:38 -04:00
Jon Evans 23596812b6 PNS: Implement HoleHull for VIA 2022-06-07 19:49:38 -04:00
Jeff Young bf71cada4e ADDED: User viewports for 3D viewer.
Fixes https://gitlab.com/kicad/code/kicad/issues/5724
2022-06-06 22:24:02 +01:00
Jeff Young 244042ce51 Keep footprint selection in Symbol Chooser history list.
Fixes https://gitlab.com/kicad/code/kicad/issues/1841
2022-06-06 22:24:02 +01:00
jean-pierre charras 9f38fa43cd Fix some minor compil and Coverity warnings. 2022-06-05 11:44:49 +02:00
Jeff Young d14fd5a9da Fix logic error with silk overlap test. 2022-06-04 19:34:24 +01:00
Jon Evans 3747369aaa PNS: Remove offsets from hull generation
This is likely an old workaround to numerical precision issues
in the DRC system that no longer exist.  Removing this is necessary
for "exact" hull generation to produce walkaround results that
look nice (paths falling exactly on the grid lines)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/10710

(cherry picked from commit 5d4e2aa595)
2022-06-04 00:04:03 -04:00
Jon Evans 9a2950cca1 PNS: Use exact hulls for walkaround path generation
When we generate hulls, by default we subtract the clearance epsilon
to prevent false collisions in the router that wouldn't be flagged
by DRC.  However, we need to use the actual hull with no epsilon
when generating hulls for pathfinding in the walkaround system.

Without this change, it is possible for the walkaround to generate
a valid-seeming path that results in a DRC violation, for example
when dragging a drag against a board edge.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/10536
Fixes https://gitlab.com/kicad/code/kicad/-/issues/11365
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10710

(cherry picked from commit 2a91ba35c1)
2022-06-04 00:04:03 -04:00
Jeff Young 8b75a32cfa We only want "actual" shapes, not anything derived from SHAPE.
Also fixes a bug where GetParentFootprint would get confused by
groups.

Fixes https://gitlab.com/kicad/code/kicad/issues/11741
2022-06-04 00:24:27 +01:00
Jeff Young d2a9cbe6e8 Use effective width for DRC.
Fixes https://gitlab.com/kicad/code/kicad/issues/11740
2022-06-03 23:27:10 +01:00
Tomasz Wlostowski c8b93c39b6 router: remove some old cruft from the WALKAROUND class 2022-06-03 23:28:41 +02:00
Tomasz Wlostowski 0bd7f603a3 router: consider mouse drag event a valid route start/end event
L-clicks during routing operation while the mouse is moving (even slightly) were ignored, which was annoying to some users (myself included). Now the router
always fixes the track upon mouse click.
2022-06-03 23:28:41 +02:00
Tomasz Wlostowski eaee610fd9 router: save project settings together with the debug log 2022-06-03 23:28:41 +02:00
Tomasz Wlostowski f73acbb206 router: derive VIA class from LINKED_ITEM interface 2022-06-03 23:28:41 +02:00
Tomasz Wlostowski cab08f859a router: cluster extraction should only consider objects that are touching (instead of checking clearance) 2022-06-03 23:28:41 +02:00
Tomasz Wlostowski 297c60923e router: return routing status from ROUTER::Move() 2022-06-03 23:28:41 +02:00
Tomasz Wlostowski 54f4f765b9 router: NODE|ITEM::QueryColliding() now can override clearance
Needed for clustering algorithm (to be committed later... ;-)
2022-06-03 23:28:41 +02:00
Tomasz Wlostowski aca9cce5d5 router: more verbose debug messages for the debugger tool 2022-06-03 23:28:41 +02:00
Tomasz Wlostowski 2a0accd184 router: shove algorithm now considers cases where a small via sits 'inside' a fanout of wide (width > via diameter) segments.
The shove algorithm can't move the loose track ends. It always needs a via. In case of wide segments stitched with
a small via, the collision search finds only colliding segments and does not consider the via. This leads to frequent shove falilures
or 'choppy' behaviour when the head line only slightly overlaps with an end of a thick trace. This patch attempts at improving this behaviour
by considering the 'tiny via in wide segment' case explicitly.
2022-06-03 23:28:41 +02:00
Tomasz Wlostowski 08647bf035 router: temporarily disable via hole clearance check in the shove algorithm.
- needs refinements and additional checks for corner cases.
- disabled also to facilitate debugging of other shove bugs
2022-06-03 23:28:40 +02:00
Tomasz Wlostowski 8cb65a8a13 router: default values for LOGGER::Log() 2022-06-03 23:28:40 +02:00
Tomasz Wlostowski 752ba2ed76 router: log via toggle events 2022-06-03 23:28:40 +02:00
Tomasz Wlostowski a4ad47cd08 router: use SHAPEs and PNS::ITEMs only in the ROUTER_PREVIEW_ITEM 2022-06-03 23:28:40 +02:00
Tomasz Wlostowski b08280d00c router: enable Hole Clearance rule only in Mark Obstacles mode
(it will be brought back to Walk/Shove modes as soon as all the underlying issues are fixed)
2022-06-03 23:28:40 +02:00
Jeff Young d31bd4ea3e Use default text properties for textboxes.
Also make sure text is mirrored when placed on back of board.

Fixes https://gitlab.com/kicad/code/kicad/issues/11739
2022-06-03 18:48:09 +01:00
qu1ck 13bece06cf Fix swig wrapper for footprint 3d models 2022-06-03 17:35:40 +00:00
Mike Williams 857990a883 Hierarchy: turn into a left side pane
Drop auto-closing option as well.
2022-06-02 21:56:17 +00:00
Jeff Young bd51b33f65 Clear point editor before recombining pad.
Fixes https://gitlab.com/kicad/code/kicad/issues/11731
2022-06-02 15:55:35 +01:00
Jeff Young de12c63de6 Repair point editing of rotated text boxes.
Fixes https://gitlab.com/kicad/code/kicad/issues/11432
2022-06-02 10:42:57 +01:00
Jeff Young f8829de5ea Formatting. 2022-06-02 10:42:57 +01:00
Jon Evans 40593930d0 PNS: Fix off-by-one in dragCornerInternal
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10919


(cherry picked from commit 8d8f96b094)
2022-06-01 21:13:05 +00:00
Jeff Young dee22a31d9 Expose footprint ID, description and keywords to property system. 2022-06-01 12:47:37 +01:00
Jeff Young 38bc653ce9 Add arc support to HyperLynx export.
Fixes https://gitlab.com/kicad/code/kicad/issues/10782
2022-06-01 12:47:37 +01:00
Jon Evans 6fd14ac945 [PNS] Fix invalid assumption in IsLineCorner
(cherry picked from commit a4aa447b95)
2022-05-31 20:24:54 -04:00
Jon Evans 9470bd15a1 PNS: Fix skew calculation with pad-to-die specified
Fixes https://gitlab.com/kicad/code/kicad/-/issues/11710

(cherry picked from commit 53dbd3bb02)
2022-05-31 20:24:54 -04:00
Seth Hillbrand 6c0856c384 Fix PCAD silk layer for solder-side fp
The layer should be flipped based on the footprint mirror value rather
than the text mirror value (which is independent)

Fixes https://gitlab.com/kicad/code/kicad/issues/11652
2022-05-31 13:03:32 -07:00
Jeff Young 155620cc9a Move H/V/45 mode from zone properties to toolbar.
Fixes https://gitlab.com/kicad/code/kicad/issues/8587
2022-05-29 21:30:15 +01:00
Jeff Young 1fb7532859 Prepare for a more uniform implementation of H/V/45 mode. 2022-05-29 21:30:14 +01:00
Jeff Young b056bbd9b9 Initialize enabled state of dimension text orientation combobox.
Fixes https://gitlab.com/kicad/code/kicad/issues/11674
2022-05-28 19:42:06 +01:00
Jeff Young 80124d2463 Write out partial pad-stacks for blind/buried/microvias.
Fixes https://gitlab.com/kicad/code/kicad/issues/11692
2022-05-28 00:19:13 +01:00
Jeff Young 2a525cf986 Coding standards. 2022-05-28 00:09:47 +01:00
Seth Hillbrand 35b79c2ec9 Make PCAD import case-insensitive
According to the PCAD specification, all tags are case insensitive.
Most exporters honor the defaults but there is always an outlier or two

Fixes https://gitlab.com/kicad/code/kicad/issues/11652
2022-05-27 10:09:40 -07:00
Mike Williams 21a7e050ab REMOVED: PCB Editor Layer Alignment Target
No longer used by modern PCB processes.

Only the code to add the target to the board has been removed. Parsing
code for existing designs with targets is left in place.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10006
2022-05-26 08:47:02 -04:00
Jeff Young ae1ece7a78 Fix duplicate spaces before units.
Fixes https://gitlab.com/kicad/code/kicad/issues/11675
2022-05-26 10:54:08 +01:00
Jeff Young 4afca58ce7 Eagle octagonal pads are regular (~29% chamfered).
Also cleans up setting of KeepTopBottom (which is ignored unless
we're doing optional flahing -- which we're not for Eagle imports).

Fixes https://gitlab.com/kicad/code/kicad/issues/11664
2022-05-23 10:43:34 +01:00
Jeff Young 24ddf1ad20 Don't use zone connections to control optional via flashing.
Fixes https://gitlab.com/kicad/code/kicad/issues/11299
2022-05-23 10:26:52 +01:00
Jeff Young 3f502b313d Don't return false when a particular item doesn't connect.
We still have to search all the other items, as they might connect.
2022-05-23 10:26:18 +01:00
Jeff Young a33e5c53be Replace missing setting.
Fixes https://gitlab.com/kicad/code/kicad/issues/11453
2022-05-20 22:41:48 +01:00
Jeff Young f7fcc310f8 Select next/prev copper layer whether we start on copper or not.
Fixes https://gitlab.com/kicad/code/kicad/issues/11600
2022-05-20 15:59:29 +01:00
jean-pierre charras a09bd4ae12 Fix a bug in commit 57e59a49 2022-05-20 15:08:50 +02:00
Jeff Young fa11e1c097 Take text height into account as well as thickness for knockout margin.
Also centralizes calculation so all clients will get the same answer.

Fixes https://gitlab.com/kicad/code/kicad/issues/11636
2022-05-20 12:29:01 +01:00
jean-pierre charras e54ba87895 fix FootprintWizardBase.py compatibility with recent code. 2022-05-20 12:58:07 +02:00
jean-pierre charras 57e59a4959 Pcbnew, on line DRC when moving footprints: add visible collisions between courtyards 2022-05-20 12:58:05 +02:00
Jeff Young deeb7d4d6d Make use of board stackup data when exporting VRML.
Specifically layer colors and board thickness.

Fixes https://gitlab.com/kicad/code/kicad/issues/11627
2022-05-19 23:58:33 +01:00
Jeff Young 294b8e9051 Treat a textbox as filled when knocking out (whether it is or not).
Fixes https://gitlab.com/kicad/code/kicad/issues/11628
2022-05-18 17:14:57 +01:00
Jeff Young cc86d3da2a Give up trying to find a one-size-fits-all boudningBox for text.
Fixes https://gitlab.com/kicad/code/kicad/issues/11636
2022-05-18 17:14:57 +01:00
Jeff Young 23fb4c7433 Uniformly use a single facility for location-less prime events.
Also implements a uniform mechanism for avoiding auto-scroll after
a prime event or dialog which results in a mouse position at the
edge of the canvas.

Fixes https://gitlab.com/kicad/code/kicad/issues/11057
2022-05-16 23:43:00 +01:00
Seth Hillbrand b00bf2bc6b Make sure that we have a visible layer
Before setting the active layer to our visible sequence, make sure that
the sequence is not empty (leads to invalid layer id->crash)

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

(cherry picked from commit 0d93be0af2)
2022-05-16 15:26:05 -07:00
Jeff Young 4b668269b7 Don't try and use zone fill before it's been calculated. 2022-05-16 15:20:01 +01:00
Jeff Young f2fc78f380 Don't copy modifiers to prime events.
The modifiers go with the hotkey, not with the action.

Fixes https://gitlab.com/kicad/code/kicad/issues/11618
2022-05-16 13:51:40 +01:00
jean-pierre charras 1f088984ce gerber_placefile_writer: fix angle rotation for flipped footprints.
According to latest Gerber documents (rev 2022.02), the previous angle was
missing a +180 rotation
Fixes #11621
https://gitlab.com/kicad/code/kicad/issues/11621
2022-05-16 10:24:13 +02:00
jean-pierre charras 97a8bfc27d Pcbnew DIALOG_PLOT: fix incorrect association of LAYER_ID in Plot on All Layers list
The order of items in wxRearrangeList and the order of LAYER_ID values was incorrect,
at least on W10/msys2
The order of items in wxRearrangeList is no longer used to avoid issues.
2022-05-15 10:52:08 +02:00
Marek Roszko 88c7322a0d EDA_TEXT Get/SetTextSize should use VECTOR2I 2022-05-14 08:16:15 -04:00
jean-pierre charras 5c7a79e287 (WIP) Teardrop: use a specific attribute in .kicad_pcb file to identify teardrops
the new attribute is:
"(attr (teardrop type padvia)))" or "(attr (teardrop (type track_end)))"
However (Work in Progress) writing this attribute in file is temporarily disabled.
2022-05-14 09:50:00 +02:00
Jeff Young 37838dffb9 Make sure physical_clearance rules are run against courtyard layers. 2022-05-10 23:02:53 +01:00
dsa-t ad066ef09a Fix cross-probing in complex hierarchies, remove unused code.
Fixes https://gitlab.com/kicad/code/kicad/issues/11493
2022-05-09 23:22:03 +03:00
Mike Williams b7a77a9498 Schematic: Add CSV export to Symbol Fields Table 2022-05-09 12:02:12 -04:00
Jeff Young 8f937b17a2 Remove wxWidgets 3.0.x hack.
Fixes https://gitlab.com/kicad/code/kicad/issues/11540
2022-05-07 23:24:55 +01:00
Jeff Young ecf6773f74 Remove dead code. 2022-05-07 21:10:04 +01:00
Jeff Young 492259a1d4 Outline font bug fixes for PCBNew dimensions.
Fixes https://gitlab.com/kicad/code/kicad/issues/11583
2022-05-06 18:14:25 +01:00
Jeff Young 30ecca464d Rename mechanical_clearance -> physical_clearance.
Fixes https://gitlab.com/kicad/code/kicad/issues/11554
2022-05-06 15:54:46 +01:00
Jeff Young dfdedfa605 Fix some issue with NPTH pads with holes same size as pad. 2022-05-06 00:06:00 +01:00
Jeff Young f590dcf513 Fix a couple of typos. 2022-05-06 00:06:00 +01:00
Jeff Young 371091a09b Make zone filler respect mechanical clearances. 2022-05-06 00:06:00 +01:00