345 Commits

Author SHA1 Message Date
John Beard
e016dc52fd Pcbnew: Add concept of a 'point'
This is a zero-dimensional object that can be used for snapping
and documentation of useful, but non-physical features on a
board or footprint. They do not correspond to any physical
output in exports or plots.

Points do have a "size", but this is a graphical property only
and determines how large they are drawn on the board.

They also have a layer, which allows them to be selected and
made visible according to layer filters.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/4691
2025-09-01 23:44:21 +08:00
John Beard
c4d9338097 Pcbnew: sort sexpr text items stably
Currently all texts on the same layer do not sort stably in the file
format. Add sorting criteria to sort by position, angle, size
and so on and finally by string.
2025-09-01 23:44:21 +08:00
Jeff Young
c6fcf7e0b8 Allow easier code searching for property names. 2025-08-30 19:09:15 +01:00
Jeff Young
c287d9a222 Avoid div-by-zero. 2025-08-19 13:42:49 +01:00
John Beard
ed01324c1d Footprints: allow to set specific internal copper layers
Footprints can now have a custom stackup. This means that they specify
an exact number of copper layers and the layers map 1:1 to board layers.
If the board doesn't contain that layer, the element just doesn't
show. We could make this a DRC check later on.

If there is no stackup, the behavior is the current default: a rule area
the In1 layer "expands" to all Inner layers.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10838
2025-08-19 04:59:48 +08:00
jean-pierre charras
09e1fca7e4 More about support of press-fit pad fabrication property
Also some fixes in dialogs.
2025-08-11 18:48:35 +02: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
Jeff Young
7240128130 Formatting. 2025-08-04 19:11:59 +01:00
Jeff Young
a8df4b16e2 Range checking. 2025-08-03 20:32:19 +01:00
Jeff Young
c758a2fbaf Don't sequence layers when order doesn't matter. 2025-07-14 19:12:44 +01:00
Jeff Young
58b5dae1ee Handle duplication of reference images for array tool (KICAD-R7M). 2025-07-12 14:07:17 +01:00
Jeff Young
9faf8b3d4c Commenting. 2025-07-05 12:02:36 -06:00
Jeff Young
bacc82c589 Debugging. 2025-07-04 16:30:03 -06:00
Jeff Young
97a3a09c90 Embed fonts used in fields as well as text items.
(Also, don't presume a non-stroke font is an outline
font.  We may have more types in the future....)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20578
2025-06-30 18:08:29 -06:00
Jeff Young
9bcf9c643a Don't call TransformShapeToPolygon() with no layer (KICAD-KFR). 2025-06-27 22:59:12 -06:00
Jeff Young
044ac6e8e5 Prefer board's errorMax to a constant. 2025-06-27 22:59:12 -06:00
Jeff Young
9750f7690c Performance optimizations. 2025-06-05 18:01:44 +01:00
Jeff Young
a3c9454221 Tighten up footprint c'tor and copy c'tor.
Several fields weren't being initialized; several
other fields weren't being copied.
2025-05-31 22:14:09 +01: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
Jon Evans
4dd39976a3 API: Add symbol path for footprint instances
See https://gitlab.com/kicad/code/kicad-python/-/issues/37
2025-04-26 09:52:42 -04:00
Jeff Young
98ec2d7ba2 ADDED: metadata searching.
Symbol and footprint search panels can now optionally
search library links, descriptions and keywords.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/10602
2025-04-09 17:46:07 +01: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
Jon Evans
12861345d3 API: Brute-force fix for footprint modifications 2025-03-29 23:53:55 -04:00
Jon Evans
31f3c44520 API: Clear footprint caches when making changes 2025-03-29 16:47:13 -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
Mike Williams
a90b8ec57a pcb: merge RunOnChildren/Descendants into one function with a mode 2025-03-27 13:16:09 -04:00
Jon Evans
1c83f0a70b Implement jumpers for footprints
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2558
2025-03-24 22:17:46 -04:00
Jeff Young
0a4533703c Performance. 2025-03-24 10:28:41 +00:00
Jeff Young
824c7ecfa7 Improve readability.
Also drops a parameter that hasn't been implemented
since early 2022.
2025-03-19 08:55:32 +00:00
Jeff Young
142f8265c5 Simplify (and fix) plated copper differentiation.
Also a few fixes for 3D rendering textboxes and
tables.
2025-03-17 20:11:20 +00:00
JamesJCode
ede5faee72 Implement dynamic assignment of component classes 2025-03-15 14:33:47 +00:00
Jeff Young
1ee3131e4a Check silk/soldermask collisions in FP checker.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19707
2025-03-14 19:45:26 +00:00
Jeff Young
4b38932129 Group members are still children of the board (not
the group).
2025-03-09 17:59:32 +00:00
Jeff Young
e163c40e54 Formatting. 2025-03-09 11:47:31 +00:00
Jeff Young
50174ec528 Beware of infinite recursion on colliding hatched shapes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20264
2025-03-08 21:23:14 +00:00
Jeff Young
f00947266f Don't render thickness walls of text we're not going to draw.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20200
2025-03-04 11:29:05 +00:00
Jeff Young
2aa0c15b41 FOOTPRINT::GetBoundingHull(): don't crash on non-copper layers.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20124
2025-02-28 18:49:41 +00:00
Jeff Young
7db3ccd98a Better algorithm for knocking out footprints.
(Though anything would have been as the previous
one didn't work at all.)
2025-02-24 23:01:07 +00:00
Jeff Young
0de8d75dec Fixup parent after blasting it. 2025-02-24 17:35:43 +00:00
Jeff Young
3f15b0d75b ADDED: hatched fills for shapes. 2025-02-24 11:08:29 +00:00
Jeff Young
c5bb59468d Get rid of assumptions about field order. 2025-02-24 11:08:29 +00:00
Jon Evans
b932487f2e API: Add serialization of footprint mounting style
See https://gitlab.com/kicad/code/kicad-python/-/issues/19
2025-02-20 17:46:23 -05:00
Jeff Young
5edae8250d Finish eradication of visibility flag on text items.
Import/read previously-hidden symbol/footprint
text items as hidden fields.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19875
2025-02-19 23:43:52 +00:00
Alex Shvartzkop
b9606b8d38 Don't return 1-point bounding hulls from some footprints.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19967
2025-02-18 11:18:47 +03:00
JamesJCode
5fda0d02e1 Delay resolution of component classes when pasting footprints
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19862
2025-02-07 17:47:51 +00:00
Jon Evans
55e5596cda Fix more field fallout
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19832
2025-02-03 21:40:09 -05:00
Jeff Young
d209dddcc6 Correctly initialise mandatory fields array.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19819
2025-02-02 18:10:44 +00:00
Jeff Young
96022ee169 Correctly handle mandatory fields when adding/removing.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19819
2025-02-02 17:55:07 +00:00
Seth Hillbrand
919931f0f0 Get embedded files panel working for lib_symbol
The symbol library embedded files were implicit, which made them hard to
work with.  Adding the panel makes it clearer and setting the panel
correctly to the callback ensures that the structure is updated on
close.

Adds some copy/move semantics for EMBEDDED_FILES to take advantage of
how the multiple copies are handled in the library editor

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18935
2025-01-28 12:22:39 -08:00