Jon Evans
284a760af7
Move more properties into PADSTACK
2024-07-20 17:48:20 -04:00
Seth Hillbrand
7ecde84a94
Move LSET to new BASE_SET class
...
Next step in large layer refactoring. Added multiple unit tests as well
to check behavior
2024-07-17 10:32:09 -07:00
Seth Hillbrand
c093fe1355
Simplify LSEQ
...
Remove unneeded operators and index
2024-07-16 14:48:33 -07:00
Jeff Young
556efd836b
Fix RecombinePad when pad is rotated.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18348
2024-07-09 18:14:14 +01:00
Seth Hillbrand
e0453d9bcc
Further cleanup of LSET
...
Remove duplicative functions. Standardize on C++ stdlib formatting
2024-07-08 22:00:53 -07:00
Seth Hillbrand
cc850d0da0
Split out LSEQ/LSET from LAYER_ID
...
Separate the layer grouping classes for easier modification
2024-07-08 20:59:46 -07:00
Jeff Young
8b948e7b9c
Give padstack warning violation a name.
...
Also regularises capitalisation & parens in some error
messages.
Also de-duplicates hole testing for PTH pads, and SMD
rationality testing.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18334
2024-07-07 14:04:34 +01:00
Jeff Young
9d03a92738
Get rid of C++20 compiler warnings.
2024-07-03 13:32:44 +01:00
Jeff Young
16340e6cf4
Support both short and long item descriptions.
2024-06-28 22:10:22 +01:00
Seth Hillbrand
7102d9f72a
Altium import: handle polygons on copper
...
In Altium, copper polys will be connected automatically to their
associated pads. In KiCad, we need to do the equivalent when parsing,
which is to combine the joining copper into the underlying pad. We also
don't want to treat copper polys as proxy pads without the original
anymore.
2024-06-26 17:27:08 -07:00
Jeff Young
db9f0a0358
Report footprint parent of shape when in board editor.
...
While the user can't select these, we do report them
in DRC messages and the like, where it's handy to
know what they're from.
2024-06-14 23:19:26 +01:00
Alex Shvartzkop
f0e9f9f15a
Optimize PAD LoD calculation.
2024-06-12 23:05:33 +03:00
Jon Evans
f5e7c705db
Move custom shapes to PADSTACK; support in API
2024-06-08 14:26:36 -04:00
Jon Evans
0b0a37aaf7
Move padstack serialization to PADSTACK
...
Also move a few more things from pad/via
2024-06-04 09:28:24 -04:00
Jeff Young
15d4e114e0
Move pad checking to Footprint Checker.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18102
2024-05-29 15:25:49 +01:00
Jon Evans
e16130a02c
Move pad and via properties into PADSTACK
2024-05-14 20:57:56 -04:00
Jon Evans
c800fb790d
Start unifying padstack properties
2024-05-14 20:57:56 -04:00
Seth Hillbrand
a835ba0715
Add "Mechanical" pad property
...
Prevents mechanical support pads from being used to check pad types.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16747
2024-05-05 21:57:10 +00:00
Jeff Young
62d4bd7c1d
Exercise more care when comparing doubles.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17249
2024-05-05 17:32:48 +01:00
Jeff Young
9a6efd43e1
Don't assume that a SMD pad has copper layers.
2024-05-01 18:16:09 +01: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 03e2b3c42efc4b252ab6ebe26b02d5116a6da0bd.
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
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
Jon Evans
1dbe78c68b
Add QA tests and expand serialization for API
2024-04-02 19:51:18 -04:00
Mark Roszko
9947cc0359
Fix another build breakage
2024-03-21 03:23:29 +00: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
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
Jeff Young
ee3be0802c
Move PCBNew overrides to nullable properties.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5562
2024-02-24 20:05:51 +00:00
Jeff Young
c5bd62434b
Zero out number of non-numberable pads in ImportSettingsFrom().
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16769
2024-01-26 14:05:04 +00:00
Jeff Young
2627c99654
Fix typos that produce segfaults.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16696
2024-01-21 22:51:36 +00:00
Jeff Young
4fb11e210a
Copy teardrop settings.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16618
2024-01-16 17:20:54 +00:00
Jeff Young
27c253780d
Separate out Pad_Shape so auto-complete can work.
2024-01-10 19:22:05 +00:00
Jon Evans
b8aef58561
Add proper comparison operators for BOARD_DESIGN_SETTINGS and children
...
BOARD::operator== was just comparing pointers
2024-01-01 13:37:31 -05:00
Seth Hillbrand
d99641be40
ADDED: Git integration support
...
Adds support for project-based git integration, branch support, commit,
revert and updates
Fixes https://gitlab.com/kicad/code/kicad/issues/10441
2023-10-20 12:51:47 +00:00
Jeff Young
ccc20348bf
Don't start with MEANDER_SIDE_DEFAULT.
...
It means we get a different default for left-to-right-drawn than we
do when going the other way.
Also fixes bug in PNS::DP_MEANDER_PLACER so that it honours side
specified in settings.
2023-10-15 17:59:11 +01:00
Jeff Young
62d959ed0e
Don't assume an error location for PAD::GetEffectivePolygon().
...
While ERROR_INSIDE was good for plotting, 3D generation, etc., it's
not good for generating router hulls.
Also reverts part of the change to always use polygons for PNS::SOLIDs. A single shape in a SHAPE_COMPOUND will be faster (and
more accurate).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14898
2023-10-13 13:59:26 +01:00
Alex Shvartzkop
d7863b09c5
Move CORNER_STRATEGY out of SHAPE_POLY_SET.
2023-10-06 15:42:50 +03:00
Seth Hillbrand
4cd26ab6bc
Ensure NC nets are not connected in board
...
Even when a pin connects to multiple pads, placing an NC indicator on
the pin type or the connected net means that all pads for that pin
should be independent and not ratsnest with each other
We accomplish this by assigning a unique id "unconnected-(REFDES-PAD#_#)" to each
pad with the pintype "no_connect". The pad numbers and uniquely
incremented per footprint based on UUID ordering
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15692
2023-09-21 21:36:19 +00:00
Jeff Young
d6b75c64e1
ADDED: custom-shaped pad spoke templates.
2023-09-13 23:34:25 +01:00
Jeff Young
0e26f3ab30
Allow pad number box creation in pad edit mode.
...
(Also fixes a bug where we'd include pad number box in pad shape.)
2023-09-04 20:49:52 +01:00
Jeff Young
60419f542a
Bug fixes for paste margins on custom-shaped pads.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15125
2023-09-03 20:43:48 +01:00
Jeff Young
68c839b214
Stop trying to zero-out offset of custom-shaped pads.
...
It causes *way* to many issues.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15555
2023-09-01 18:48:46 +01:00
jean-pierre charras
adb1ac8cb8
Fix an incorrect test thact crashes fp editor
...
Fixes #15457
https://gitlab.com/kicad/code/kicad/-/issues/15457
2023-08-20 14:04:50 +02:00
Jeff Young
ec980e8696
Move "parent" property from PAD to BOARD_ITEM.
2023-08-18 22:20:09 +01:00
Jeff Young
c697a934b2
Update layer names to current terminology.
...
Also fixes some out-of-date tooltips/names.
2023-08-04 11:37:46 +01:00
Seth Hillbrand
96a34e5b57
Consolidate Maximum clearance calculation
...
We were calculating the same thing in three locations and we missed
adding the clearance from the footprints in, resulting in bad fills and
missed drc errors (see QA addition)
2023-07-26 12:55:48 -07:00
Jeff Young
493828cc6b
Eradicate a bunch of calls to dyn_cast.
...
Also deletes PAD::GetParent() which fails to look for parent footprint
through groups.
2023-06-25 11:10:07 +01:00
Jon Evans
39073642a7
Properties: disable pad y-size when circular
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15038
2023-06-22 19:19:33 -04:00