39 Commits

Author SHA1 Message Date
jean-pierre charras
963aa47778 Pcbnew: fix teardrop generation for pads having different shapes by layer.
Teardrop generator used pad::HitTest not testing the hit of a specific layer.
It created false test for some complex pads. Now use a test specific to a layer.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21560
2025-08-27 11:03:00 +02:00
Seth Hillbrand
9c577a4f4c Allow mid-track teardrops
Tracks passing through but not stopping at pads/vias should still get
teardrops

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21246
2025-08-26 10:04:52 -07:00
Jeff Young
d384790d47 Don't use line styles for solder masks on shapes in 3D viewer.
Also convert hatched fills to solid for solder masks.

Also give track solder masks their specified
expansion when exporting to STEP.

Also implement solder masks for shapes when
exporting to STEP.
2025-04-28 21:46:10 +01:00
Jeff Young
6873a75313 Solder masks for teardrops on tracks with solder masks.
Also moves teardrops away from the zone UI: they
are now always filled and their borders never
drawn.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20744
2025-04-25 12:23:23 +01:00
Jeff Young
1ec47a053b Don't save UUIDs for teardrop zones.
They're really just a geometry cache.

Also removes writing of filled_areas_thickness,
which hasn't been supported in yonks.

Also cleans up writing of island removal strategy
(the limit is only needed in limit mode).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20717
2025-04-23 10:41:36 +01:00
Jeff Young
281aa74f30 Performance improvements for teardrop regeneration.
Avoid O(n^2) behaviour when deleting many
zones from the board zones list.
2025-02-19 23:43:53 +00:00
Jeff Young
32fd79c708 Check dirty tracks when removing teardrops.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19871
2025-02-12 11:32:43 +00:00
Seth Hillbrand
0b2d4d4879 Revise Copyright statement to align with TLF
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo.  Avoids needing to
repeatly update.

Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
Jon Evans
2a605e4a4e Infrastructure and file format for via stacks 2024-10-06 18:45:25 -04:00
Jon Evans
56e0811516 Phase 2 of padstack support
CHANGED: PCB file format now supports saving/loading complex padstacks

CHANGED: PTH pads are now rendered per copper layer in the copper color;
         the PTH pad color is no longer used.

ADDED: support for importing complex pad stacks from Altium PCBs

Enforce padstack-aware access to pad properties across KiCad

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8182
2024-10-01 19:55:03 -04:00
Jeff Young
62fc18d22e Allow teardrops on custom-shaped pads.
They work OK in a lot of circumstances.  Where the don't
work, the user can turn them off.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17565
2024-07-10 15:02:25 +01:00
Alex Shvartzkop
70296107b4 Use std::set::contains instead of alg::contains in UpdateTeardrops.
(-356 ms on https://gitlab.com/kicad/code/kicad/-/issues/18148 when placing)
2024-07-03 21:24:49 +03:00
Jeff Young
b986391a04 Remove stale teardrops before rebuilding connectivity.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15398
2023-08-15 12:13:34 +01:00
Roberto Fernandez Bautista
90ff331c58 Refactor: Move static to be inside ZONE_SETTINGS 2023-06-10 12:03:41 +02:00
Jeff Young
8b1fd62d35 Make pad & via teardrops 1st-class citizens (props of the pad/via)
Change teardrop generation to rely more heavily on BOARD_CONNECTIVITY
for improved performance.

Add updating of teardrops on BOARD_COMMIT::Push().

Also converts m_CopperItemRTreeCache to std::shared_ptr.
We don't copy it around anyway, and having to create a new set
of std::unique_ptr's for each operation is likely to be more
expensive than std::shared_ptr's overhead.
2023-05-19 18:02:03 +01:00
jean-pierre charras
22de1c8813 Teardrop dialog: refinements. Show a PROGRESS_REPORTER when refilling zones. 2023-05-12 10:06:20 +02:00
Jeff Young
4da6d5ff28 Add "generate raw teardrops" option to Add Teardrops dialog.
Fixes https://gitlab.com/kicad/code/kicad/issues/14711

Fixes https://gitlab.com/kicad/code/kicad/issues/14704
2023-05-11 15:47:42 +01:00
Jeff Young
daa3a1aae9 Revert addition of update-teardrops checkbox to DRC dialog. 2023-05-11 14:53:28 +01:00
Jeff Young
2d15067453 ADDED allow update of teardrops before running DRC.
Fixes https://gitlab.com/kicad/code/kicad/issues/14264
2023-04-15 12:18:41 +01:00
jean-pierre charras
0bd83d3096 Footprint viewer: ensure the footprint is updated after new library selection
Previously, if the first fp of the new lib has the same name as the old
displayed fp, the old fp was not replace by the new fp.
2023-03-29 16:53:49 +02:00
jean-pierre charras
db66419f02 Teardrops: fix incorrect shape in some cases. 2023-02-20 09:06:21 +01:00
jean-pierre charras
3a11d90d92 Teardrops: handle arcs in tracks.
Fixes #13858
https://gitlab.com/kicad/code/kicad/issues/13858
2023-02-19 14:44:37 +01:00
Jeff Young
d67437a2aa Move ratsnest exclusion processing to a post-pass.
Also fixes a few cases where we were unnecessarily rebuilding
connectivity more than once for an operation.
2022-09-29 17:08:49 +01:00
Marek Roszko
a8613ee80f Combine Iu2Millimeter & remove PcbMm2iu 2022-09-16 21:09:26 -04: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
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
jean-pierre charras
8d05ca5982 Teardrop rework: avoid refill zones on a not updated connectivity data.
- Teardrops have now just their shape filled (much faster than a full refill)
- The full zone refill is no longer made after recreating teardrops.
- this is more compatible with the option Auto-refill zones"
Fixes #11106
https://gitlab.com/kicad/code/kicad/issues/11106
2022-03-11 16:12:27 +01:00
jean-pierre charras
2bf56c2441 DIALOG_GLOBAL_DELETION and teardrop.cpp: fix incorrect call to GetLayer() for ZONES 2022-03-11 11:16:09 +01:00
Jeff Young
843a56c4e4 Implement two-staged zone priority: assigned priority followed by UUID. 2022-03-01 14:53:35 +00:00
jean-pierre charras
419010ec46 teardrop: add filtering to skip teardrops when pad/vias and tracks have similar sizes 2022-01-30 15:39:28 +01:00
jean-pierre charras
3a66f33d96 TEARDROP_MANAGER: add option to add teardrops on pads in zones. 2022-01-30 15:39:27 +01:00
jean-pierre charras
f651e31965 Fix minor compil and Coverity warnings. 2022-01-25 12:52:13 +01:00
jean-pierre charras
712b304da7 Teardrop: Simplify code. 2022-01-23 12:57:40 +01:00
jean-pierre charras
1b42152ba0 Teardrops: store parameters in BOARD_DESIGN_SETTINGS. 2022-01-23 10:57:08 +01:00
jean-pierre charras
826154d666 teardrop: rework on code 2022-01-18 17:12:17 +01:00
jean-pierre charras
ef6ce972d6 Fix missing filtering of teardrop targets. 2022-01-16 17:20:48 +01:00
jean-pierre charras
5b0527bdfe Teardrop: add separate settings for round, rect shapes and tracks 2022-01-16 10:24:23 +01:00
jean-pierre charras
ac78d51b14 Teardrops: better dialog, and better code 2022-01-10 20:04:41 +01:00
jean-pierre charras
d42514ad30 Add code and dialog to create/add/remove teardrops, step 1 2022-01-10 20:04:40 +01:00