Commit Graph

16944 Commits

Author SHA1 Message Date
Jeff Young 6b797420d5 ADDED allow physical_clearance between courtyards & zone fills.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6966
2024-05-01 13:49:41 +01:00
Jeff Young 58ddffe3dd Improve consistency in free-via ambiguity tests.
Also removes a magic number.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17671
2024-05-01 10:24:34 +01:00
Jon Evans e973c15087 Move ALTIUM_PCB to use REPORTER for logging
Change not-yet-supported messages to debug level
2024-04-30 21:21:48 -04:00
jean-pierre charras 966051ff4a DIALOG_EXPORT_2581:fix incorrect size of widgets when a very long field name exists
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17911
2024-04-30 18:16:05 +02:00
Seth Hillbrand 7fdb5e98a2 ADDED: Polygon simplify
Simplifies the polygon for graphical shape, zones and rule areas,
removing duplicate points and making the outline easier to handle

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17883
2024-04-29 17:48:32 -07:00
Jeff Young 85a9d9e9ec Don't push commit in DIALOG_TABLE_PROPERTIES if table is new.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17688
2024-04-29 17:10:29 +01:00
jean-pierre charras 15e5eabb91 DIALOG_ZONE_MANAGER: refresh zone display when resizing the dialog.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17892
2024-04-29 13:44:28 +02:00
Jeff Young 43e6006306 Separate Compare Footprints from DRC.
(We want to ignore some of the flags for DRC.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17819
2024-04-28 23:05:54 +01:00
Jeff Young a5bd97da11 Improve clarity of Visibility setting.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17843
2024-04-28 21:57:55 +01:00
Alex Shvartzkop 7d37cebfdf Fix orientations of some footprint STEP models.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17631
2024-04-28 23:11:26 +03:00
Jeff Young b12043a612 Separate fields from text for boundingBoxes & hit-testing.
We used to have special cases to keep fields from bloating
a footprint's bounding box or being used for hit-testing.
However, now that we can distinguish PCB_FIELD_T from
PCB_TEXT_T, we should not apply these special cases to
PCB_TEXT_T.  Text in footprints should act like graphics.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17854
2024-04-28 18:47:11 +01:00
Alex Shvartzkop 16e3692e71 Build time optimizations. 2024-04-27 23:49:13 +03:00
Alex Shvartzkop 11ba59b690 Altium PCB import: pad thermal spoke angle is 90 deg by default. 2024-04-27 20:25:50 +03:00
Jeff Young c59ed0bbb7 Flip symbol editor's Y axis to match other editors. 2024-04-27 13:47:56 +01:00
Jeff Young 9be60cb45d Gracefully handle DNP & Excl-from-brd components in nets list.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17146
2024-04-26 20:11:33 +01:00
Alex Shvartzkop b3bc352c57 Use default stackup if stackup is not defined in STEP/BREP/XAO export. 2024-04-26 15:25:48 +03:00
Marek Roszko b22bc2737e Hackfix macOS to keep erc/drc on top
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14356
2024-04-26 00:49:22 -04:00
Alex Shvartzkop c8db8d087e Remove debug line. 2024-04-26 02:40:22 +03:00
Alex Shvartzkop 9e673bb891 Polyfill GetOneShape from OCCT. 2024-04-26 02:36:17 +03:00
Alex Shvartzkop 1ae9e9b676 ADDED: XAO export for SALOME / Gmsh workflows.
Pad surfaces are assigned as face groups.
2024-04-26 01:53:43 +03:00
Alex Shvartzkop 22c4fa29f1 STEP/BREP export: expose Net Filter option in the UI. 2024-04-25 21:10:34 +03:00
Seth Hillbrand ef62b01dd1 Make import/export flags explicit
IO plugins can import/export or both.  This sets an explicit boolean for
controlling which options are available.
2024-04-25 09:21:15 -07:00
Seth Hillbrand eeee63186d Don't list IPC-2581 import
We don't currently support importing 2581 files.  We need to clear
IO_FILE_DESC to prevent this from accidentally showing

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17866
2024-04-25 09:02:38 -07:00
Alex Shvartzkop da1926d723 STEP/BREP export: ensure pad surface is a separate face.
Useful for FEM simulation.
2024-04-25 15:34:52 +03:00
Alex Shvartzkop 5f81e01f43 ADDED: --net-filter option to STEP/BREP export CLI. 2024-04-24 18:28:53 +03:00
Wayne Stambaugh 8a1347d2c8 Property grid navigation improvements.
* Do not handle tab key event when committing property changes so the
  property grid tab navigation works correctly.
* Do not call commit property changes on tab key when no changes are
  pending.
* Skip event handling in the base object value change and changing event
  handlers in case they do not get overloaded in derived objects.
* Do not force focus to canvas on property change so arrow and tab key
  grid navigation work properly.  Forcing the user to click the property
  grid control to edit a single property doesn't make sense.
* Pass properties panel show event up the event stack.
* Do not set focus to canvas in tool dispatcher if it already has the
  focus.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16957
2024-04-24 07:25:19 -04:00
Jeff Young 978ef352d0 Support legacy Length Tuning Settings workflow.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17748
2024-04-24 10:51:25 +01:00
Alex Shvartzkop 045f65608a Add VECTOR2L to Swig. 2024-04-23 23:37:45 +03:00
Alex Shvartzkop b1180d9377 Fix some warnings. 2024-04-23 16:34:07 +00:00
Alex Shvartzkop 865e3a9f3c Improvements when working closer to 32-bit integer limits.
- Changes BOX2 size to extended coordinates.
- Adds BOX2ISafe to construct a BOX2I that will fit in int32.
- Adds more checks.
- Safer computations.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17670
2024-04-23 16:34:07 +00:00
Alex Shvartzkop 3f32f0c2d8 STEP/BREP export: approximate zone polygons with arcs.
- Speeds up processing significantly
- STEP file size reduction to 30%
2024-04-23 19:25:23 +03:00
Jeff Young 9dab855f8d Layer column should be shown by default, not italic.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17758
2024-04-22 17:48:21 +01:00
Jeff Young 53a9bdb3af Formatting. 2024-04-22 17:44:59 +01:00
Jeff Young e8be782687 Mostly clean-up, but also bug fixes with bounding boxes. 2024-04-22 11:16:14 +01:00
Alex Shvartzkop bbab5a979a STEP export: Remove autosave prefix from label names.
The autosave file is used if the board was modified.
2024-04-22 04:06:04 +03:00
Alex Shvartzkop 2babd574be Refactor autosave prefix into FILEEXT. 2024-04-22 04:06:04 +03:00
Alex Shvartzkop c68e3ceb44 ADDED: Export inner PCB copper layers to STEP / BREP / GLTF.
Also adds options to exclude board body and components.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16855
2024-04-22 03:39:46 +03:00
Seth Hillbrand 6a73c7ffb3 Remove cover type in link holder 2024-04-21 11:11:48 -07:00
Seth Hillbrand 7dc7268146 output helpful net information in PNS debug 2024-04-21 11:11:21 -07:00
jean-pierre charras 1dc8585d04 Footprint Editor: Fix crash when no footprint loaded and try to select something 2024-04-21 17:51:14 +02:00
jean-pierre charras 2d614898a8 pad.cpp: fix possible incorrect layer mask in PAD::ImportSettingsFrom() after import
ImportSettingsFrom() calls SetAttribute() that can change the layer set.
2024-04-21 13:01:21 +02:00
jean-pierre charras 3fb521755b Revert "pad.cpp: fix incorrect layer mask in PAD::SetAttribute() for aperture pad"
This reverts commit 03e2b3c42e.
2024-04-21 11:58:56 +02:00
jean-pierre charras 03e2b3c42e pad.cpp: fix incorrect layer mask in PAD::SetAttribute() for aperture pad
A aperture pad is not on copper layer, so do not force a copper layer for this pad
2024-04-21 11:48:01 +02:00
Alex Shvartzkop 7215613b13 Fix warning in PCBNEW_JOBS_HANDLER. 2024-04-20 20:11:18 +03:00
Seth Hillbrand 586fddeec1 Avoid case where whole line is new head
If the whole line shifts, we may have no points of the old tail in the
new line.  In this case, we may not only not find the split point but we
may also have fewer points in the new line than were in the old head.
Clamping to the maximum potential point count prevents creating invalid
lines

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16591
2024-04-19 17:54:29 -07:00
Seth Hillbrand b346cde30b Show disambiguated netname when needed
When using subsheets with nets that end in the same netname, it can be
confusing in pcbnew to know which net you are dealing with.  In these
cases, we show the full netname including path to assist when routing

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16187
2024-04-19 16:31:05 -07:00
Seth Hillbrand b1dcd7ecf8 Remove Shift as a force-finish modifier
This was originally added to facilitate
https://bugs.launchpad.net/kicad/+bug/1777688 but the concern there was
that the layer kept changing when stopping on a via.  We currently have
double-click as the force-finish option and the layer reverts to the
original layer on which you were routing.  This should handle the
operation concern while still preserving shift as the modifier for grid
options

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15828
2024-04-19 08:53:27 -07:00
Alex Shvartzkop cd2925d3d7 ADDED: Fuse Shapes option for STEP/BREP/GLTF export.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17777
2024-04-19 03:43:26 +03:00
JamesJ f8434b1c07 Fix deletion of items in pcbnew
Ensures the fallthrough generic deletion code path increments
the deleted items counter.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17798
2024-04-18 23:37:37 +01:00
aris-kimi d00cda3b2f Fix build with OCC 7.5.x 2024-04-18 18:09:42 +00:00
Seth Hillbrand 8d1b1598db Add missing file mod 2024-04-18 09:48:30 -07:00
Seth Hillbrand 0ea02fa2ff Be a little more careful about courtyard caches
Rather than utilizing the board timestamp, we check cached hash of the
courtyard results before rebuilding
2024-04-18 09:32:00 -07:00
Seth Hillbrand df5dd15c6f Protect courtyard cache regen
The courtyards are referenced by multiple calls and will be rebuilt on
command.  If this happens during zone fill (because the board timestamp
has incremented since the start) multiple threads may generate the cache
at the same time, leaving one with an invalid pointer

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17791
2024-04-18 08:41:18 -07:00
jean-pierre charras 3da5616939 step/step_pcb_model.cpp: add missing includes. 2024-04-18 13:55:49 +02:00
jean-pierre charras af8d80d91f Plot pads: Do not use pad offset twice when plotting chamfered rect pads
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17793
2024-04-18 12:53:38 +02:00
Alex Shvartzkop 55fb70ae65 STEP export: use fused shapes for pads instead of polygon approximations. 2024-04-18 13:44:14 +03:00
Alex Shvartzkop b50a1c967f Report errors and warnings when using BRep cutting algorithm. 2024-04-18 13:44:14 +03:00
Seth Hillbrand 79166510e9 Fully expand all text variables in 3d output
We were doing half of the job but we need to get the board variables as
well

Fixes https://gitlab.com/kicad/code/kicad/issues/17768
2024-04-18 02:58:21 +02:00
Seth Hillbrand f088b0d18a Calculate and show pad area in footprint editor
When selecting an SMD pad, show the area of the pad in the msg panel

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17788
2024-04-17 15:31:56 -07:00
Jeff Young a4073c2ace Provide some user hints on editing fields.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17781
2024-04-17 18:30:37 +01:00
Alex Shvartzkop 01fedb86e2 Fix shadowed variable. 2024-04-17 18:22:22 +03:00
Alex Shvartzkop d97ac47509 Try to use parallel processing in BRep cutting algorithm. 2024-04-17 18:15:17 +03:00
Alex Shvartzkop d98d7f9017 ADDED: Support 3D shape export in BREP format.
BREP doesn't support colors or label names,
but is much faster to write/read compared to STEP.
2024-04-17 17:31:10 +03:00
Alex Shvartzkop bf16f757ed STEP export: disable history to speed up hole cutting. 2024-04-17 16:09:03 +03:00
Seth Hillbrand caa18568e0 Handle DRC rules that limit PTH/NPTH in courtyards
Allows custom rules that explicitly allow holes from one footprint to
overlap the courtyard from another
2024-04-16 22:46:38 +00:00
dsa-t 822409225a STEP export: don't fail when can't construct a wire.
This can happen with very small shapes.

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


(cherry picked from commit 481c1592ae)

Co-authored-by: Alex Shvartzkop <dudesuchamazing@gmail.com>
2024-04-16 22:36:34 +00:00
Seth Hillbrand 374fb0f5f2 IPC2581 fixes
- Component name ref comes before pin ref
- OtherSideView is at the end of the package
- BOM defines the dictionary so we need all items in the BOM even if
  marked "Exlude from BOM"
- Fix unique REFDES indicator to increment number rather than appending
  additional numbers
2024-04-16 13:25:09 -07:00
Jeff Young 3958d1bf14 Clean up selection logic.
Don't try to do too many things at once.  Separate
out fooptrint-children handling, visibility-handling,
and footprintEditor vs boardEditor differences.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17562
2024-04-16 18:12:47 +01:00
Jeff Young d761b4f22f RIP LIB_TEXTBOX and LIB_SHAPE. 2024-04-16 16:31:16 +01:00
jean-pierre charras 6b7852c2bb BOARD::DeleteMARKERs fix bug: missing m_itemByIdCache handling.
When deleting markers, the m_itemByIdCache corresponding entry must be
also removed.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/11750
2024-04-16 12:00:40 +02:00
Seth Hillbrand f61d400d88 Allow non-identical schematic/pcb nets
The schematic net names are fully unique but if we have multiple pads
that are mapped to a NC pin, they need to have unique net names so that
they do not get connected to each other in the ratsnest.  This breaks
the schematic parity check as we have modified the netname for some
pads.  To work around this, we first maintain the zero-th net without
suffix and then add an additional check in DRC to ensure that we allow
unconnected nets as long as the share a common prefix with the schematic
netname.
2024-04-15 17:54:44 -07:00
Seth Hillbrand 8760519a87 Ensure that we are not calculating self-collision
Ratsnest may have connections from a zone to two different items.  This
should be avoided as we never want to draw the ratsnest line with the
same element as start and finish

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17763
2024-04-14 13:50:01 -07:00
Marek Roszko 2a3b597ab9 Strip out no longer needed links on the top executables
Not needed due to kicommon
2024-04-14 07:52:02 -04:00
Alex Shvartzkop 76b7cdd128 Improve grid cell editors appearance. 2024-04-13 23:26:01 +03:00
Marek Roszko 94847e89c3 Static cast some more enum usage 2024-04-13 15:15:39 -04:00
Marek Roszko 7d68e19afa enum * double is deprecated 2024-04-13 15:14:39 -04:00
Jeff Young d77eae3e7e Collapse LIB_FIELD into SCH_FIELD. 2024-04-13 15:42:13 +01:00
Marek Roszko 262d94964f Lets try C++20 2024-04-12 23:32:18 -04:00
Marek Roszko 96cdfc7fa7 Update equality overloads for C++20
C++20 added new reverse and rewritten candidates. This can confuse the compiler because it'll test both A==B and B==A for overloads.
Because we were defining parent class equality overloads, A==B and B==A was considered ambigious due to both being compatible in casting.

So we needed to add explicit child class equality operator overloads
2024-04-12 23:05:58 -04:00
Marek Roszko 7a67151a22 Update lamba capture 2024-04-12 23:03:29 -04:00
Marek Roszko 1607729cf7 Silence deprecation warning about enum * fp type 2024-04-12 22:55:43 -04:00
Marek Roszko dbd98f1ce0 Explicit lambda capture 2024-04-12 22:54:59 -04:00
Marek Roszko 8fb4901d4b Fix more utf8 comparisons 2024-04-12 22:53:25 -04:00
Seth Hillbrand d0fe2e06aa Do not set optional defaults
In the file format, the 'mirror' tag is optional (not written unless on)
so we cannot default the new text to 'mirror' on just because the
footprint is on the back layer as it won't be turned off by the
footprint loader.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17546
2024-04-11 09:43:12 -07:00
Seth Hillbrand 59f99d9a6a Re-add routine to remove duplicate points
The router needs to elimitate duplicate points but keep colinear
segments.  This re-creates the partial routine from the old Simplify()
function

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17582
2024-04-10 17:25:58 -07:00
Alex Shvartzkop 7b935f7673 EasyEDA Pro: import Colorful Image as Reference Image. 2024-04-10 03:21:46 +03:00
Mike Williams e2f1da60d9 PCB Fields: fix v7 imported board hidden description field pos
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/17684
2024-04-09 15:23:44 -04:00
Seth Hillbrand a12bc3a410 Don't knock out anti-text box
Knockout text should only prevent filling directly around the text
itself, not the larger anti-text fill around it.  This prevents minimum
width provisions from kicking in unneccesarily

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17665
2024-04-06 14:28:49 -07:00
qu1ck 441b2686d3
IPC_API: fix crash in PLUGIN_AVAILABILITY_CHANGED event handler 2024-04-05 18:11:52 -07:00
Jon Evans c1e7668d80 Fix SWIG wrapper for AddPrimitive
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17676
2024-04-04 23:09:05 -04:00
Jon Evans aff2d5c0d3 Factor out SHAPE_LINE_CHAIN utilities 2024-04-04 18:55:58 -04:00
JamesJ a321a86f38 Update net inspector after connectivity update when loading board
Fixes issue where if the net inspector was open when a board was
loaded, the track data would not be updated until a board edit
action triggered an update.
2024-04-04 22:29:47 +00:00
JamesJ 951065390e Add composite update callback to BOARD_LISTENER
Required for net inspector otherwise composite operations (such
as undo / redo, and length tuning) can result in multiple add /
remove events firing which results in inconsistent length state.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17527
(for 9.0)
2024-04-04 22:29:47 +00:00
Jeff Young bf2b3b0b0f Deconflict some LIB_TREE_ITEM APIs so they can remain non-const.
(The non-const is required by FOOTPRINT_INFO, which must load
footrpints to get some of the data.)
2024-04-04 13:18:55 +01:00
jean-pierre charras 59142a10d7 DIALOG_CREATE_ARRAY: better messages and better comments
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17642
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17656
2024-04-04 09:54:47 +02:00
jean-pierre charras 3f24e0eb09 minor compil warning (unused var) 2024-04-04 09:52:28 +02:00
Mike Williams 2acf928723 PCB: fix net inspector assert on column show/hide menu
Also handle 0-width columns coming in from settings. GTK seems to have
an issue where these columns are impossible to resize even if they are
made visible.
2024-04-03 13:15:47 -04:00
Jon Evans 493ca7a0f5 Fix unhandled case warnings 2024-04-02 20:56:48 -04:00
Jon Evans 1dbe78c68b Add QA tests and expand serialization for API 2024-04-02 19:51:18 -04:00
Jon Evans 6bd02cae6d Refactor; add user control over API server 2024-04-02 19:51:18 -04:00
Jon Evans a3b6ab48a4 Add a new plugin system for the new API 2024-04-02 19:51:16 -04:00
Jon Evans f613cd1cb4 ADDED: A new IPC API based on protobuf and nng
Details, documentation, and language bindings are works in
progress and will be evolving over the course of KiCad 9
development.
2024-04-02 19:34:36 -04:00
Jon Evans e5d4f58d65 Fix parsing of legacy text hide token
(cherry picked from commit 53c2543474)
2024-04-02 22:26:57 +00:00
Seth Hillbrand 2123e2ca9c Add some corrections to IPC2581 export syntax
Outline fonts need lineDesc
Padstack def need the location for the pad relative to the padstack
2024-04-01 22:57:25 -07:00
Seth Hillbrand d82e8ee41a Map nets in pasted data
Add missing nets to the existing board and use any existing nets of the
same name.

Adds option to clear all nets in Paste Special

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17626
2024-04-01 16:56:44 -07:00
Ian McInerney 90ace0fcaf Ensure model file output stream is valid before writing to it
Fixes KICAD-74V
2024-04-01 22:00:05 +01:00
Ian McInerney 87a8235831 Remove group from dummy track before deletion
The dummy track in the merge colinear segments is used to overwrite the
original segment with the changes at the end, so the group must be
removed before leaving the function, and can't be removed at creation.

Fixes KICAD-74M
2024-04-01 21:59:55 +01:00
Roberto Fernandez Bautista 6078bc52eb PNS: Fix a few memory leaks 2024-03-31 18:21:02 +02:00
Jeff Young 43edc2eaf8 Don't start immediate mode when there's no event position.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17332
2024-03-31 12:59:52 +01:00
Thomas Pointhuber 7d1881b58a altium: use std::unique_ptr instead of raw pointers where feasible 2024-03-31 00:03:03 +01:00
Seth Hillbrand c841d0df6d Handle small holes in DRC Connection width test
If there is a small hole (smaller than the conn width), we can loop
around in a circle checking all points and not move past the mimimum
distance.

To avoid this, if we detect a loop, we exit the substantial checker.
This should return with true because a large hole will return true and
we are only checking to see if there is a minimum amount of copper
between two open areas
2024-03-30 07:58:34 -07:00
JamesJ 79a3dd71e4 Only delete grouped / generated BOARD_ITEMS from the root item
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17527

This is required as during an undo / redo operation, rebuilding
the previous selection can result in a group / generator being
selected as well as all of their contained items. This prunes
the contained items to remove the possibility of a double-delete.
2024-03-30 14:20:06 +00:00
Marek Roszko fd501b4bc8 Fix DRC slowdown due to UI yields
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17434
2024-03-29 23:34:01 -04:00
Seth Hillbrand 37a3f52d81 Remove unused variable 2024-03-29 16:48:08 -07:00
Seth Hillbrand e4756c811e Utilize hash_combine to avoid hash collision
Most of our pointers will share the top 32 or more bits of their pointer
addresses, making cache collisions highly likely.  This uses a hash
combiner to mix the bits more effectively
2024-03-29 15:39:57 -07:00
Seth Hillbrand 10c1072479 Remove duplicated clearanceEpsilon
We already get clearance epsilon in the clearance resolver.  Don't
subtract it twice or we end up getting DRC errors

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16879
2024-03-29 15:39:57 -07:00
Seth Hillbrand 5e850911c5 When dragging a via, we need to get all obstacles
The clearance epsilon should not be used to limit which force elements
we return in the query.  Otherwise, we can drag elements into a
DRC-violating space

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16293
2024-03-29 15:39:57 -07:00
Jeff Young 491adc6c6c Formatting. 2024-03-29 16:04:32 +00:00
Jeff Young 2c21ef1ed0 Fix footprint undo for new UUID caches.
The footprint's children get swapped by the parent's std::swap
call, so they need to get removed/added to their parent around
the swap.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17592
2024-03-29 16:04:32 +00:00
Seth Hillbrand c3a5b92ed0 Sort netnames in properties panel
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15590
2024-03-28 13:03:16 -07:00
Jeff Young 57b224d3f0 Cut/copy/paste for PCB tables. 2024-03-28 14:31:31 +00:00
Jeff Young f9c5e48c57 Add missing PCB_TABLE_T, and a comment. 2024-03-28 14:31:31 +00:00
Jon Evans e347300593 Work around SWIG problems 2024-03-27 18:42:46 -04:00
Mike Williams 48b3b4697a PCB: update footprint field when changing footprints
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/17598
2024-03-27 15:20:12 -04:00
Jon Evans 1acb1afa98 Fix build errors; warnings
(somehow, the previous version compiles on my machine...)
2024-03-26 19:38:28 -04:00
Jon Evans 5aa8af1abf Add a cache for looking up board items by ID 2024-03-26 18:36:23 -04:00
Jon Evans 7b6afd290a Remove non-const access to board-owned items
(with a few things const-casted for now)
2024-03-26 18:36:23 -04:00
JamesJ 54919e6854 Performance update for pcbnew net inspector
Forces full rebuild of nets list for bulk updates over a certain
size. This is more performant than iterating over all items in
a bulk update.
2024-03-24 20:29:15 +00:00
JamesJ f51e775f26 Use bulk BOARD_LISTENER calls following undo or redo operations
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17561
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17420
2024-03-24 19:25:26 +00:00
Jeff Young 50567764b5 Allow no-net teardrops on no-net pads with no-net tracks.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17566
2024-03-24 19:22:25 +00:00
Jeff Young a53bc9e026 Attempt to prevent KICAD-YP.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17560
2024-03-24 18:12:58 +00:00
Jeff Young 5d37a00759 Table plotting for PCBNew.
Also fixes some bugs with property exposure that (along with
other things) allowed you to put table cells on a different
layer than their parent table.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17438
2024-03-24 16:49:33 +00:00
JamesJ 67d6e6afdf Only update net inspector when panel is shown.
Pcbnew can hang for a long time when undoing operations involving
large numbers of board items. This provides an interim workaround
(and replicated the behaviour of the search panel) by only
computing track statistics updates incrementally if the inspector
is displayed.

Partially fixes https://gitlab.com/kicad/code/kicad/-/issues/17561
(if net inspector is not shown)
2024-03-24 12:11:36 +00:00
Jeff Young fc572bfbc6 Make sure users don't run into min text size.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17543
2024-03-23 15:50:45 +00:00
Jon Evans af18e06ea4 Remove the "insert chevron" function of the via placer
This behavior is generally undesirable and was only needed
because of past limitations.  Now we only split a track
when the user places a via directly on top of it.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16456
2024-03-23 14:28:21 +00:00
wh201906 806daecf85
Add toggleHV45Mode item to the measure tool's context menu
The behavior of the measure tool is influenced by the
horizontal/vertical/45-degree mode, but the context menu of the measure
tool lacks an option to toggle this mode. In contrast, the drawing
tools are also affected by this mode, and their context menu has the
item to toggle this mode.
2024-03-23 21:24:13 +08:00
Jeff Young 88c1fa3e26 Ignore graphic shapes that implement netties.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17223
2024-03-23 13:18:46 +00:00
Marek Roszko ab759d21f2 Fix more build warnings 2024-03-23 08:53:11 -04:00
Jeff Young 7218d501d4 Better locality-of-reference for footprint chooser filters. 2024-03-23 12:48:52 +00:00
Marek Roszko 490dbfdf83 Fix build warnings 2024-03-23 08:34:59 -04:00
aris-kimi d7abed2d60 Footprint Chooser dialog: Allow toggle buttons to work simultaneously 2024-03-23 09:48:15 +00:00
Seth Hillbrand 00d108498f Avoid crashing on missing tracks in CADSTAR
We can't assume that the ignored connection exists when trying to set
the junction size.  We use int_max for the default instead of 0 so that
later, we don't try to create a minor track with 0 width in loadNets()

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17523
2024-03-22 10:55:48 -07:00
jean-pierre charras cb8ed07858 GERBER_JOBFILE_WRITER: use UTF8 encoding according to current specif.
Since 2020, non ASCII7 chars are encoded using UTF8 encoding.
A old but incorrect encoding was previously used.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17534
2024-03-22 09:50:32 +01:00
JamesJ de85b2217b Re-centralise handling of sort column in net inspector list.
- Includes GTK crash fix from a5ef4f1b
- Additionally removes an unneccesary re-sort when rebuilding columns
- Correctly saves column state when using pcbnew standalone
2024-03-21 21:07:08 +00:00
jean-pierre charras 4f4ca9f383 Do not run DRAWING_TOOL::PlaceTuningPattern() inside the footprint editor
The footprint editor cannot run the router.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17522
2024-03-21 15:19:48 +01:00
Marek Roszko 83ef5fd7d6 Move PGM_BASE to kicommon 2024-03-20 23:29:42 -04:00
Marek Roszko e32b26ebeb Move JSON_SETTINGS and PARAMS to kicommon 2024-03-20 23:29:42 -04:00
Mark Roszko 9947cc0359 Fix another build breakage 2024-03-21 03:23:29 +00:00
Jon Evans a5ef4f1bef Net inspector: fix crash when switching boards on GTK
Can't invalidate columns while they are the sorting key
2024-03-20 23:04:28 -04:00
Jon Evans f00f47df13 wxWidgets 3.3 compatibility: explicit wxString conversion 2024-03-20 22:02:41 -04:00
Jeff Young d0df8df7c7 Use a lighter touch keeping internal data structures in sync.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17493
2024-03-20 21:35:43 +00:00
Jeff Young 82c851a4a7 Expose groups to property manager.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17496
2024-03-20 20:19:21 +00:00
Jeff Young 859f553c91 Keep internal data consistent when changing pad type.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17493
2024-03-20 18:35:56 +00:00
jean-pierre charras 90eed8b4b6 Avoid using a nullptr. 2024-03-20 18:34:18 +01:00
Alex Shvartzkop 800ff9ffb1 STEP export: add location info to edge add failures. 2024-03-19 23:10:37 +03:00
Alex Shvartzkop 75037dd1d1 STEP export: handle small segments connecting two arcs better.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17499
2024-03-19 22:53:30 +03:00
jean-pierre charras 63dd4aed93 Step exporter: workaround to fix issue for boards with main round outline
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17446
2024-03-19 11:19:37 +01:00
JamesJ a763d613e5 Move Net Inspector dialog to a widget panel in pcbnew
Introduces some updates to the inspector, and a number of bug fixes:

- Correctly handles changes in board stackup
- Correctly handles unit change events
- Correctly handles language change events
- All layout / panel settings are stored to the project settings
- Retains ability to create net report
- Simple filter searches on net name and net class name (stored in settings)
- Allows hide / show of columns (stored in settings)
- Grouping by netclass (stored in settings)
- Optional filtering by net name (stored in settings)
- Optional filtering by net class (stored in settings)
- Custom grouping by net name match
2024-03-19 01:02:01 +00:00
Jeff Young 4ed2a0674a Minor cleanup. 2024-03-18 22:21:01 +00:00
jean-pierre charras 3b47fd1503 FOOTPRINT_CHOOSER_FRAME: add option to show the 3D in a separate viewer.
If a separate viewer frame is selected, the footprint chooser always shows
the footprint and the 3D shape is shown in a 3D viewer frame if the 3D view
is enabled.
2024-03-18 08:42:43 +01:00
Mark Roszko 72d83cd5de Revert "Move JSON_SETTINGS and PARAMS to kicommon"
This reverts commit 81855aaaa6
2024-03-18 00:08:46 +00:00
Marek Roszko 81855aaaa6 Move JSON_SETTINGS and PARAMS to kicommon 2024-03-17 18:11:49 -04:00
Jeff Young 37b19c4df7 Handle table layer in undo.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17437
2024-03-17 20:39:46 +00:00
Jeff Young 0598ca0f90 Keep BOARD_DESIGN_SETTINGS DRC marker exclusions up-to-date.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17429
2024-03-17 16:29:24 +00:00
Jeff Young d317b8da74 Pull modifications to cherry pick forward from 6.0. 2024-03-17 12:42:45 +00:00
Jeff Young 44c14b1935 Fix layer swapping for multi-layer items.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17371
2024-03-17 12:14:21 +00:00
Jeff Young a4062ade3d Report location of FUTURE_FORMAT_ERRORs when reading footprints. 2024-03-16 11:06:12 +00:00
Jeff Young d17151ac1b Correctly handle locked token for PCB_TEXTBOX and PCB_TABLECELL.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17439
2024-03-15 21:42:47 +00:00
Jan Wichmann 91b850d8df pcbnew: The checkbox 'Center on footprint' was not disabled when the actionButton was changed. 2024-03-14 22:24:30 +00:00
Wayne Stambaugh cf97432833 Fix Eagle footprint library QA test failure.
Unfortunately the KiCad library I/O does not unescape file names so do not
escape them in the Eagle board plugin.
2024-03-14 17:00:27 -04:00
Jeff Young e30b6398b7 ADDED: optional PDF metadata from AUTHOR and SUBJECT variables.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17289
2024-03-14 17:40:04 +00:00
Wayne Stambaugh 34ec57958d Fix Eagle board import when footprint library versions exist.
This was a crude hack that appends the library URN ordinal to the name of
the footprint so that it can be correctly looked up by the "element" node.
The Eagle XML DTD does not make it clear how the URN "ASSET_ID" and
"VERSION" are used to look up the appropriate "ASSET_TYPE" so this is a
best guess and seems to work correctly.

The inferred edge clearance dialog had to be disabled when importing third
party boards because on GTK (and possibly other platforms) the dialog would
completely hang KiCad preventing the imported board and possible schematic
from being saved.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12897
2024-03-14 09:45:05 -04:00
Wayne Stambaugh eddf4883b6 Minor dialog layout improvements. 2024-03-13 11:45:33 -04:00
Jeff Young a091767551 Don't test non-overlapping non-through-hole vias.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17426
2024-03-13 15:19:28 +00:00
Jeff Young 91d949f59e Splitter for 3D model page of Footprint Properties.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15606
2024-03-13 15:03:55 +00:00
Alex Shvartzkop b56ee20e22 Fix a crash in PNS zone sync when there's more outlines than triangulated polygons.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17351
2024-03-13 03:09:21 +03:00
Jon Evans ece8521e68 Add some safety to layer swapping
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17371
2024-03-12 19:32:40 -04:00
Jeff Young 4b6a1f4dbd Remove netclass/custom rule handling from Track & Via Properties.
(These should be done in Edit > Edit Track & Via Properties.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17216
2024-03-12 22:29:03 +00:00
Jeff Young 1844bf1708 Make Edit Track & Via Sizes "specified sizes" dropdowns clearer.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17216
2024-03-12 22:27:10 +00:00
Jeff Young 25e181db5c Don't allow selection of footprint text in board editor.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17271
2024-03-12 21:30:12 +00:00
Alex Shvartzkop 44b970c8f2 Fix warning. 2024-03-12 08:54:21 +03:00
Seth Hillbrand 0f57d76ecd Clean and standardize cross-probing action
Between schematic and pcb editors, we want the following actions:

- Single click on ERC/DRC item should show the item in the ERC/DRC
  window.  But if the window is not visible, it should only update the
  status bar
- Double click on ERC/DRC item should show and raid the ERC/DRC window
  as well as select the line item

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17383
2024-03-11 17:50:44 -07:00
Seth Hillbrand 6e591f5f91 Don't count removed zone layers
This does 3 things:
1) Removes unused zone layers on load
2) Does not save unused zone layers
3) Removes unused zone layers from connectivity calculation

(1) Prevents existing boards from using unused zone layers for any
connectivity or rendering.  (2) Updates the contents of boards with
removed zone layers to prevent them from propagating.  (3) updates the
connectivity while running pcbnew and removing a zone layer

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17288
2024-03-11 23:38:10 +00:00
SubaruArai d7173dd6d1 qr footprint wizard: add option for error correction level
QR codes allow 4 different levels of error correction.  By increasing the level, larger numbers of data bytes can be corrupted without invalidating the code
2024-03-11 23:37:29 +00:00
Seth Hillbrand 3cc1617f5a Fix slow selection time when calculating clearance
The clearance between two zones could be rather slow.  This was in part
to trying to do triangle-triangle collisions between zones when we only
need outline collision and in part to the shape_line_chain collision
routine.  The shape_line_chain collisions don't need to recreate
segments on each iteration and should instead create them once and using
this to check all collisions

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17327
2024-03-11 16:32:24 -07:00
Seth Hillbrand 9648fafe11 Handle memberOfSheet for full footprints
Previously, we handled clearance for just components in the eval
function.  We also checked the incorrect root sheetname.
2024-03-11 16:32:24 -07:00
Jeff Young d083593177 Table bug fixes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17399

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17398
2024-03-11 22:58:12 +00:00
Jeff Young 5ccd11d426 Run disambiguation if there are multiple preferred items.
This didn't really come up before tables, but any cell selection
will also include its parent table.
2024-03-11 17:46:09 +00:00
Jeff Young ccfefc3971 Table support for footprint editor.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17333
2024-03-11 17:46:09 +00:00
Mark Roszko d904535a15 Add missing text var override to cli gerbers
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17283
2024-03-11 12:33:52 +00:00
Jeff Young fbc433deaa Make sure to initialize cell start location.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17379
2024-03-10 21:49:54 +00:00
Jeff Young 9602151d6c Fix typo in SelectRows().
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17378
2024-03-10 21:06:43 +00:00
Jeff Young 1bf24da385 Schematic editor Table Properties and commenting for QuasiModal usage. 2024-03-10 12:18:50 +00:00
Jeff Young a12d79cd13 Performance improvements for multi-page dialogs. 2024-03-10 12:18:50 +00:00
jean-pierre charras 821063e5b1 Pcbnew, pdf plotter: fixes and enhancements.
* To select a footprint info, Use the bbox with not text as selectable area
* Fix also incorrect position of footprint bbox when plotting with offset

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17355
2024-03-10 13:04:39 +01:00
Jeff Young f341ab9b00 Bug fixes for flipping tables.
Also adds support for tabbing between table cells in the
table editor dialog.

Also adds support for calling the table editor dialog from
edit properties on a table selection.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17337
2024-03-09 22:18:19 +00:00
Jeff Young 63b06095e6 Table selections for PCBNew. 2024-03-09 22:18:19 +00:00
Jeff Young 72ba31ba27 Pass symbol's netlist to footprint preview widget.
This allows us to show the pin functions on the corresponding
pads.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17349
2024-03-09 15:01:59 +00:00
Alex Shvartzkop 4d66a8ebdb Fix rendering/plotting of arcs with tiny angle and huge radius.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17343
2024-03-09 02:07:24 +03:00
Jeff Young d1d9636598 Run Edge.Cuts & Margin clearance tests on zone layer.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17292
2024-03-08 20:51:05 +00:00