Commit Graph

273 Commits

Author SHA1 Message Date
jean-pierre charras da92279436 Pcbnew: add pad fabrication property Press-Fit
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21457
2025-08-11 15:59:19 +02:00
Seth Hillbrand 1a4eba56a7 ADDED: Skip Via support
Skip vias are vias that are flashed on their start and end layers but
have no annular rings on the interior layers and do not connect to zones
in those layers

You can now select Annular ring type "Start and end layers only".  This
will prevent annular ring flashing on intermediate layers and zones
fills will provide clearance.  You can still connect tracks to
intermediate layers but preventing that will fall to the designer

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21433
2025-08-07 15:48:10 -07:00
Ben Gamari a07db6763a api/common: Fix units of Time
Times are internally represented in attoseconds, not picoseconds.
2025-08-07 18:06:59 +01:00
Andrzej Wolski c73d555fe2 ADDED: Lasso selection in pcbnew
Adds a lasso or freeform selection tool to KiCad in addition to standard
rectangular selection.  Adds supporting HitTest routines

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/1977
2025-08-06 16:06:40 -07:00
Ben Gamari e6ab1194ed pcbnew/api: Expose pad-to-die delay
Addresses #21346.
2025-07-30 22:36:50 -04:00
Ben Gamari 29c733c651 pcbnew/api: Expose pad-to-die length
Closes #21346.
2025-07-30 22:36:50 -04:00
Jeff Young 7b5603503e Fix typo. 2025-07-28 19:37:52 +01:00
Jeff Young 046c36d060 Fix padstack/boundingbox issue.
Earlier fix to stop clearing the boundingRadius
for each unique layer also cleared it for
ERROR_INSIDE (when we aren't rebuilding it).

Re-order whole routine to make this more clear.
2025-07-27 13:55:16 +01:00
Jeff Young c58b1146de Honour pad holes when hit-testing.
They may be bigger than the pad.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21331
2025-07-26 18:37:16 +01:00
Seth Hillbrand f875fd1d60 Add support for chamfering larger sizes
If we are only chamfering opposite corners, we can support up to 100%
chamfer

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13567
2025-07-26 10:33:36 -07:00
Jeff Young ec155c00f3 Comboboxes for units and body styles.
Also for pin-types in pad properties.

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

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19905
2025-07-23 14:35:37 +01:00
Jeff Young c63e2edfff Allow setting Pin Function and Pin Type.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20992
2025-07-23 14:35:37 +01:00
Jeff Young 60d9713baf Consistent formatting. 2025-07-23 14:35:37 +01:00
Jeff Young 693ea44990 Debugging.
(Separate wxCHECKs so Sentry can tell us which
one fired.)
2025-07-06 21:42:13 +01:00
Jeff Young 044ac6e8e5 Prefer board's errorMax to a constant. 2025-06-27 22:59:12 -06:00
Jeff Young 8c6aa8e043 Still want to climb up to parent footprint in previewer (part II)
(Apply SolderMask fix to SolderPaste.)
2025-06-04 17:49:17 +01:00
Jeff Young 1c915d3456 Still want to climb up to parent footprint in previewer 2025-06-04 17:49:17 +01:00
Mike Williams b174911a39 board: prevent null-pointer deref in solder paste rules 2025-06-03 14:32:52 -04:00
jean-pierre charras b6aaa14e77 Fix crash in PAD::GetSolderMaskExpansion() when in 3D previewer.
The dummy board used in 3D previewer has no DRC engine, so creating a nullptr.
2025-06-03 17:35:36 +02:00
Jeff Young c994b96509 ADDED: custom rules for solder mask & paste margins.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15622
2025-06-03 11:41:27 +01:00
Jon Evans 7e24210b1e API: Use net names, not codes, and allow creating new nets
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21027


(cherry picked from commit 0ff77bd332)

Co-authored-by: Jon Evans <jon@craftyjon.com>
2025-05-30 22:13:44 -04:00
Jeff Young f58fc0b952 Rewrite GROUP undo based on uuids.
This also removes the GROUP/UNGROUP-specific undo actions.

This also fixes a bunch of undo bugs when duplicating
group members, creating pins, etc.

This also fixes some undo bugs when dividing wires etc.

This also fixes some bugs with new sch items not
being created within an entered group.
2025-05-21 14:24:59 +01:00
Jeff Young 75d9f708a8 Fix presumed copy/pasta when ensuring circles are circles.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20567
2025-05-04 10:13:38 +01: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
JamesJCode eb17ebee4e Implement time-domain length tuning
- Adds time and delay units
- Adds time domain tuning parameters entry and storage
- Adds pad-to-die delay property
- Adds time domain parameter interface for length / delay calculations
- Adds unit tracking for numerical constants through LIBEVAL
   - Will need future work to truly propagate through binary expressions
- Adds time domain tuning to meander placers
- Adds time delay display to net inspector panel
- Modifies DRC to handle time domain constraints
2025-04-17 21:46:56 +01:00
Jeff Young 2c9c607b95 Fix thermal spokes for pad stacks. 2025-04-04 22:45:52 +01:00
Alex Shvartzkop 7a04389ac2 Improve pan performance when showing a large amount of TH pads.
See https://gitlab.com/kicad/code/kicad/-/issues/20506

(cherry picked from commit a1a710dfed)
2025-04-04 22:49:05 +03:00
Jeff Young 661d002234 CHANGED: moved footprint lock shadows to children.
A full bounding hull wash gets overwhelming on
boards with lots of mechanically-constrained
objects.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14007
2025-04-03 14:38:14 +01:00
Mike Williams 05e9772d54 groups: extract common class methods into EDA_GROUP base class 2025-04-01 14:34:20 -04:00
Wayne Stambaugh ef5cd6bb28 Merge PAD::addPadPrimitivesToPolygon() into PAD::MergePrimitivesAsPolygon().
It was only used in MergePrimitivesAsPolygon() and it was only a few lines
long.
2025-03-31 14:25:01 -04:00
Wayne Stambaugh 2b0d082df5 Move all PAD object methods to into PAD object source file.
No functional changes.  Just make it easier to find all of the PAD object
methods.
2025-03-30 11:35:06 -04:00
Jon Evans dc9fa2e2ac More functional fix for IPC API item modifications
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20206
2025-03-28 20:27:45 -04:00
jean-pierre charras 3dfd164e2b Fix typo 2025-03-26 14:55:25 +01:00
jean-pierre charras 3e51b2c647 Pcbnew, performance fix: rebuild the pad view only when mandatory.
The LAYER_PAD_HOLEWALLS shape needs a rebuild only when the zoom level changes.
So keep trace of the last GAL zoom level to rebuild the shape, and only rebuild
the view when needed
2025-03-26 13:19:00 +01:00
Jeff Young 0a4533703c Performance. 2025-03-24 10:28:41 +00:00
Jon Evans 8921824128 Mark pad as dirty when changing layerset
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20435
2025-03-23 20:08:05 -04:00
Jeff Young 877c6bce89 Printing is not zoom-specific.
(Some of these items don't currently get printed, but
there's no sense in leaving a latent bug around in case
we ever change our minds.)
2025-03-07 13:01:00 +00:00
Seth Hillbrand 8e048d0c42 Printing should never hide small elements
Since it is effectively infinite resolution, pass the vectors to the
printer and let it decide if there should be a dot there or not.  Hiding
based on perspective is a screen optimization

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20226
2025-03-06 12:18:38 -08:00
Jeff Young 9856cb2210 An arbitrary layer flip can not be done without the board.
(User-defined layers can be sided or not.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20169
2025-03-05 17:59:22 +00:00
Jon Evans 50507212fd Fix pad edit fighting with active group
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20129
2025-03-05 00:04:47 -05:00
Jeff Young 164eff1a3b Handle circular holes with y==0.
(Because legacy code assumed this.)
2025-03-02 17:51:44 +00:00
Jeff Young 3f15b0d75b ADDED: hatched fills for shapes. 2025-02-24 11:08:29 +00:00
Jon Evans bacb6bf40f Clear render cache for hole walls on zoom change 2025-02-23 13:03:54 -05:00
JamesJCode 1e84d1e496 Fix m_zoneLayerOverrides data race in pad.h
From Coverity issue 542093
2025-02-22 14:58:11 +00:00
Jeff Young 9ca9d7120a Cleanup. 2025-02-20 17:47:40 +00:00
Jeff Young c136df247f Better way of determining if we're reporting from the footprint editor. 2025-02-19 23:43:53 +00:00
Seth Hillbrand 94444adb54 Don't take references to casts
We don't really save cycles and this can lead to unexpected behavior
when the compiler decides that the sizes of the two types are different
2025-01-29 08:17:27 -06:00
Jeff Young fb87ea6837 Nothing wrong with a NPTH pad with no layers.
Also fixes PTH anchor layer warning to mention "outer".

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19752
2025-01-29 10:32:58 +00:00
JamesJCode c80a71f64a Make netclass name methods clearer, and improve doc strings
There are two netclass name methods, which previously were not
obvious in their uses. These have been renamed to now have:

GetName() : Used for internal or tooling (e.g. netlist export) usage
GetHumanReadableName() : Used for display to users (e.g. in infobars)

Fixing the previous unclear naming will result in fewer bugs
when users start using the multiple netclass functionality, as
the incorrect usage had started creeping in to new code. Also this
will help authors of new code select the correct name method.
2025-01-14 20:44:09 +00:00
Jeff Young dd7c076bc9 Use std::optional for pad connection overrides.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19555
2025-01-09 17:32:05 +00:00