The thermal spokes are anchored at the pad anchor. They may or may
not make sense, depending on the pad shape. It's up to the author
to move the anchor around as necessary or to not use thermals.
Allows 0 to 4 chamfered corners, not only one.
A custom shape allow this kind of shape. However because it is a primitive,
it is easier to edit and it support thermal reliefs.
The standard DIM() macro was not typesafe as it happily deferred errors
to runtime that can be caught at compile time. Replacing it with a
generic C++11 constexpr allows for typecasting, comparison and compile
time error checking.
When designing pads, it can be helpful to not only see the resulting
rounded rectangle radius from a given percentage but also to set it,
constraining the related percentage. This adjusts the dialog to allow
editing the rounded rectangle corner radius. It does not change the
file format as the resulting ratio is saved. Further updates of the pad
size or ratio will modify the radius.
Fixes: lp:1668020
* https://bugs.launchpad.net/kicad/+bug/1668020
Also fixes a bug where nets wouldn't get changed because the
pads weren't changed and so the pad nets would propagate and
wipe out the changed nets on the tracks.
Also includes warning dialogs that pad nets will be changed if the
track nets are.
Fixes: lp:1779854
* https://bugs.launchpad.net/kicad/+bug/1779854
Well, almost anyway. We can't use a pad attribute for them as
that would change the file format. So they're currently
defined as a CONN pad with no copper layers.
However, when figuring out of existing pads should be *treated*
as aperture pads, we just check for no copper layers.
Fixes: lp:1781760
* https://bugs.launchpad.net/kicad/+bug/1781760
... and GetMsgPanelInfo.
Step 4 in the g_UserUnit eradication effort.
Also removes a couple of conversion routines that were close
enough to extinction.
(cherry picked from commit c75da51)
Footprint properties dialogs: add test for negative net clearance, similar to the Pad properties dialog test.
Add also a info message in dialogs, to avoid mistakes when setting the local clearances.
Rename GetPolyPoint() to BuildPolyPointsList(), because GetPolyPoint() looks like an accessor, but it is not an accessor.
(Using it as accessor can creates a *very long calculation time* for very basic access to polygon vertices)
Fixes: lp:1745050
https://bugs.launchpad.net/kicad/+bug/1745050
- pad names are stored as wxString instead of a char[4] & integer union
- removed pad name to string conversion functions
- fixed pad & pin properties dialog restrictions regarding the name
length
- support for background color setting
- removed several global config settings (such as g_Drc_On)
- wrapped most of global config settings in PCB_GENERAL_SETTINGS class
- reorganized PCB general options dialog to clearly mark which options concern only the legacy canvas
- new GAL feature for legacy users: double-click (or E) to change track width available as an option.
Fixes: lp:1530543
* https://bugs.launchpad.net/kicad/+bug/1530543
Fixes: lp:1707145
* https://bugs.launchpad.net/kicad/+bug/1707145
eeschema now supports arbitrary colors for all object types, and
pcbnew does in GAL canvas. When switching from GAL to legacy canvas,
pcbnew will convert colors to the nearest legacy color.
Setfocus now works on macos dialogs by setting DLGSHIM_USE_SETFOCUS.
This option is only enabled __WXMAC__ is defined.
FixOSXCancelButtonIssue() is now called inside DIALOG_SHIM::SHOW.
All other calls from within the dialogs were removed.
PAD_SHAPE_T and PAD_ATTR_T still have a double definition (new names and old names) to be sure python scripts are nor broken by the change.
PAD_DRILL_SHAPE_T does not have a double definition, because it is unlikely oblong holes are used in python scripts.
Double definitions will be removed in the (next) future.
* Cleanup namespace in enum ZoneConnection in pcbnew/zones.h to self-explained names unification: PAD_ZONE_CONN_INHERITED, PAD_ZONE_CONN_NONE,PAD_ZONE_CONN_THERMAL,PAD_ZONE_CONN_FULL, PAD_ZONE_CONN_THT_THERMAL
- Removed the friends MODULE and FOOTPRINT_EDIT_FRAME from TEXTE_MODULE
(as in the @todo comment)
- Refactored the Rotate/Flip/Mirror for text in modules into the
TEXTE_MODULE class itself (members RotateWithModule, FlipWithModule,
MirrorWithModule)
- New behaviour in coloring text on screen: reference and value still
take the color from the MOD_TEXT_FR_VISIBLE and MOD_TEXT_BK_VISIBLE
visibles; other text takes the color of the layer containing it
(except when hidden, obviously) but still get its visibility
controlled by those visibles (probably the most intuitive and useful
behaviour)
- Still need to decide: should text on a layer be hidden when the layer
is? Probably yes (still to be implemented);
- Some comment fixed and many cast converted to static_cast
The default layer stack between these 2 types was swaped in pad definition, and also in the dialog pad properties.
This double swap creates no bug, but creates bugs in the footprint wizards (SMD or CONN pads do not have the right layer stack)
FYI, the CONN pad type should be removed soon.
2) Change from legacy Cu stack to counting down from top=(F_Cu or 0).
The old Cu stack required knowing the count of Cu layers to make
sense of the layer number when converting to many exported file types.
The new Cu stack is more commonly used, although ours still gives
B_Cu a fixed number.
3) Introduce class LSET and enum LAYER_ID.
4) Change *.kicad_pcb file format version to 4 from 3.
5) Change fixed names Inner1_Cu-Inner14_Cu to In1_Cu-In30_Cu and their
meanings are typically flipped.
6) Moved the #define LAYER_N_* stuff into legacy_plugin.cpp where they
can die a quiet death, and switch to enum LAYER_ID symbols throughout.
7) Removed the LEGACY_PLUGIN::Save() and FootprintSave() functions.
You will need to convert to the format immediately, *.kicad_pcb and
*.kicad_mod (=pretty) since legacy format was never going to know
about 32 Cu layers and additional technical layers and the reversed Cu
stack.
(for instance, when a footprint from the currently edited board is loaded in the footprint editor, and when the board is cleared or reloaded)
In footprint editor, the net names are no more shown od modifiable (becuase the footprint editor does not know anything about net names.
This change should allow the changes planned in pcbnew.