337 Commits

Author SHA1 Message Date
jean-pierre charras
d8ba6c07ac Pcbnew, DIALOG_PAD_PROPERTIES: ensure the right spoke angle is displayed.
Previously it was sometimes the default value, not the initial value when
opening the dialog.
Fixes #15410
https://gitlab.com/kicad/code/kicad/-/issues/15410
2023-08-14 17:56:16 +02:00
jean-pierre charras
a16ab0aae1 Replace SHAPE_T::RECT by SHAPE_T::RECTANGLE: RECT creates a collision name
issue with a Windows header on msys2.
Change very similar to the commit 9a47b344 about class PAD_SHAPE.
No actual code change
2023-07-25 09:11:55 +02:00
John Beard
a61b9f4459 Pad dialog: respect IPC maximum pad radius
The IPC-7351C rule (which may be IPC 7352 now), is 25%, or
0.25mm, whichever is smaller. Currently the default ratio is 25%, which
is incorrect for pads with shortest edges over 1mm.

This also means that the "25%" default is applied in one place:
previously sometimes the value came from the default set in PAD,
rather than the value set by this dialog. While the PAD default isn't
changed here, this dialog no longer relies on that value for its
behaviour.
2023-07-22 00:45:36 +01: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
jean-pierre charras
9a47b34499 Replace PAD_SHAPE::RECT by PAD_SHAPE::RECTANGLE to avoid a collision NAME with a windows header on MSYS2, creating many compil warnings. No actual code change. 2023-06-02 12:18:24 +02:00
Jeff Young
56853a6209 Change teardrop edge shape to a checkbox. 2023-05-23 17:45:26 +01: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
Jeff Young
b41d446f58 Fix a bunch more issues with sheetpaths and allowExtraText.
A sheetpath is required to correctly resolve text variables.
Depending on currentSheet is rife with bugs.

There are many places where we do *not* want to be prepending
field names to the field values, such as netlisting,
building PDF hypertext menus, etc.

Also, Find/Replace needs to work on unresolved text, as
that's what we're going to display (and if replace nuked
your variable references you wouldn't be happy).
2023-05-05 17:23:52 +01:00
Jeff Young
7a24672120 Improve naming. No functional changes. 2023-04-03 14:32:23 +01:00
Jeff Young
d9b0577ddd Fix pad flipping. 2023-04-03 14:32:23 +01:00
Jeff Young
7286555529 Fix some issues editing pads via Pad Properties dialog.
The offsets and orientations were being incorrectly handled.
2023-04-03 13:17:52 +01:00
Jeff Young
28028c941e Retire Local/Draw coords distinction from PAD (the last object to have it). 2023-04-02 18:02:41 +01:00
Marek Roszko
aacc9746e3 Yeet the last of wxSize/wxPoint to stop leaking gdicmn everywhere 2023-02-18 22:57:18 -05:00
jean-pierre charras
90c5ede1e6 pcbnew: move DIALOG_PAD_PROPERTIES_BASE from dialog_pad_properties to its own files.
dialog_pad_properties_base.fbp included to many dialog descriptions.
2023-01-17 09:44:28 +01:00
Mike Williams
d62681f6db PCB Editor: fix pad preview sketch mode not applying immediately 2022-12-28 12:27:57 -05:00
Jon Evans
7a9467b0d5 Get rid of some gcc warnings 2022-11-24 17:05:58 -05:00
Jeff Young
d16b23d16e Name shortening and line-break reduction. 2022-10-21 18:41:39 +01:00
Jeff Young
e02c05d38f Add unit and eval support to WX_GRIDs.
Fixes https://gitlab.com/kicad/code/kicad/issues/1871

Fixes https://gitlab.com/kicad/code/kicad/issues/4285
2022-10-11 23:40:58 +01:00
Jeff Young
35a14b8e5d Better error messages (and make an empty pad an error, not a warning). 2022-10-09 20:28:54 +01:00
Marek Roszko
66e8931405 Remove IU_PER_MM thats standalone 2022-09-16 21:09:27 -04:00
Marek Roszko
a8613ee80f Combine Iu2Millimeter & remove PcbMm2iu 2022-09-16 21:09:26 -04:00
Mark Roszko
b00178adb3 Nuke base_units from orbit 2022-09-16 04:38:10 +00:00
Jeff Young
281b9d405a ADDED ability to specify where pad number (& net name) go on custom shaped pads.
Fixes https://gitlab.com/kicad/code/kicad/issues/6627
2022-09-14 11:37:20 +01:00
Jeff Young
b4492e0bd2 More EDA_RECE yeetage. 2022-08-31 17:19:50 +01:00
Marek Roszko
03aa63bd50 Move 5 helpers to EDA_UNIT_UTILS since they aren't iu specific 2022-08-29 20:11:03 -04:00
Jeff Young
ec51955dad Remove vestiges of old pad locking system.
We now use a session preference (Allow free pads) in the board editor,
and we never supported pad locking in the footprint editor.
2022-08-23 18:02:16 +01:00
Jeff Young
9a4136de00 Implement annular ring checking for pads.
Fixes https://gitlab.com/kicad/code/kicad/issues/12109
2022-08-01 17:45:34 +01:00
jean-pierre charras
4d48376eae Fix some warnings detected by PVS-STUDIO (not used vars) 2022-07-26 16:00:14 +02:00
Jeff Young
f41af10007 Clean up hole shapes for safety (smart pointer) and consistency. 2022-07-22 23:06:07 +01: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
Miklos Marton
426c46abb1 pcbnew: pad editor UI fixes
When editing a pad with circular hole the Y dimension is hidden
and Diameter is shown instead of Size X when opening the properties
of an existing pad.
Adjusted Pad shape: label to be vertically aligned to the pad shape
combobox.
2022-06-20 19:15:41 +00:00
Miklós Márton
b912bef2f6 pcbnew: Display Diameter when circular shape selected in pad editor 2022-06-16 20:26:42 +00:00
Jeff Young
b04f1b2d93 Change pad-type-matches-hole-presence from warning to error.
Fixes https://gitlab.com/kicad/code/kicad/issues/11452
2022-04-24 14:14:35 +01:00
Seth Hillbrand
482dbcec54 All triangular trapezoid pads
A triangular trapezoid will have the deltaX/deltaY of the same size as
the length of that axis.  This creates a three-point polygon, which is
perfectly valid for our use

(cherry picked from commit 4e98ce87c716a0166295ca5ace8b2de4e870e15f)
2022-03-22 13:39:55 -07:00
Jeff Young
62f813fddc Better error reporting for PTH pads. 2022-03-16 14:56:32 +00:00
Seth Hillbrand
fab78af176 Remove TEDIT
This marker is not used in KiCad and creates merge conflicts when two
different users edit the same file
2022-03-01 00:25:44 +00:00
Jeff Young
7ccac79192 More wxString wide literals. 2022-02-05 21:29:34 +00:00
Seth Hillbrand
a2f845a41c Handle invalid pads more gracefully
Pads generated outside of KiCad may have self-intersecting polygons that
simplify to multiple sets.  We handle this by adding multiple primitives
for such polygons and limiting our fracture calls to only polygons that
have holes

Fixes https://gitlab.com/kicad/code/kicad/issues/10712

(cherry picked from commit 6d84acfacd3a98b4032e6e707bcca3a0920233c0)
2022-02-02 13:40:07 -08:00
Seth Hillbrand
56d204c4c9 Revise transferDataToPad to return False on failure
When the data doesn't allow the pad to be drawn, we return false and
skip the redraw/update steps.  This allows updating with invalid values
while typing

Fixes https://gitlab.com/kicad/code/kicad/issues/10684
2022-01-31 17:02:10 -08:00
Jeff Young
0091c76a6f Excise deci-degrees from UNIT_BINDER.
Fixes https://gitlab.com/kicad/code/kicad/issues/10495
2022-01-19 00:10:32 +00:00
Jeff Young
3f98769a77 More EDA_ANGLE.
Includes bug fix for catastrophic error in Add() for converting to
radians.

Includes bug fixes for the fact that the pcbnew test can't seem to
find the ANGLE_* objects (getting all 0's instead).
2022-01-15 01:30:04 +00:00
Jeff Young
c9487bad18 Move BOARD_ITEM::Rotate() to EDA_ANGLE. 2022-01-14 16:08:19 +00:00
Jeff Young
abd3f5bc2b Move footprints to EDA_ANGLE. 2022-01-14 16:08:18 +00:00
Jeff Young
d485eb2514 Move pads to EDA_ANGLE. 2022-01-14 16:08:18 +00:00
Marek Roszko
e4dbfcd92d Swap out some wxSize for VECTOR2I 2022-01-04 20:42:27 -05:00
Marek Roszko
7d671cff1e Scoop up some more wxPoints 2022-01-01 21:06:40 -05:00
Marek Roszko
c4c56de708 Neurotically update position wxPoint usages 2022-01-01 11:55:51 -05:00
Jeff Young
5e4a704155 Remove some more duplicated preferences.
Fixes https://gitlab.com/kicad/code/kicad/issues/10112
2021-12-26 13:37:28 +00:00
Jeff Young
c3552a940a Make sure standard OK/Cancel buttons respond to current language.
Fixes https://gitlab.com/kicad/code/kicad/issues/9635
2021-12-24 18:13:11 +00:00
Jeff Young
ef10b36948 Add mask-to-copper clearance parameter and rename mask margin. 2021-12-24 12:36:41 +00:00