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
When there is a polygon in the Eagle project withput any pad connected
netCode was not incremented and so the wrong nets were assigned to the
following elements.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21243
Break up monolithic function into responsibilities. Adjust cleanup to
correctly modify each graphical pairing. Fix drc test to properly
report gap distances that are relevant to outlines
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13090
Grouped pads by pin number in the IPC-2581 exporter so only one pin node
is created per number. Still output multiple pad shapes with the same
number.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18688
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
Put the string manipuuation utils in the cpp, and
remove string_utils.h from the includes of netinfo.h.
This spams that header into about 350 files, not all of which
need it. Then go round and tidy up the places (most exporters
and dialogs) where CPP files weren't including string_utils.h
when they used it, as well as some other order-sensitive
include issues that turned up.
Because some readers maintain global namespace per the standard, we make
sure that we don't overlap names between namespaces but keep the minimum
viable name for each element
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19914
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
All pads should follow the same behavior. Remains todo to
differentiate between missing values (inherit in Altium) and custom 0mil
values (force no expansion)
This still leaves a few things out in the cold,
such as hit-testing and polygon generation.
But at least it allows us to plot with a default
font.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19031
We implemented the intermediate temporary file in order to avoid issues
during save. Unfortunately, this is heavily system-dependent and seems
to cause problems with unusual setups. Now that we cache writing using
the prettifier, the errors during output will not affect the existing
file
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21330
After forcing the locale-specific read/writes out of our IO, we can
remove the global LOCALE_IO calls in many places.
Still to do: exporters, pcm, specctra, settings, drawing sheets,
plotters
Use only C-locale functions wxString::ToCDouble and fmt::format{}
functions so that we do not need to set the locale for file io
operations
This also introduces a cmake check that looks for certain banned
functions (strtod, strtof and atof) that convert strings into doubles
by the user locale or formatting specifiers like %f/%g that convert
doubles into strings by the users locale. It will prevent compilation
in this case.
For the limited cases where we want to show the user a string in their
locale, we have an override string "format:allow" that can be added to
lines in order to allow them with %f/%g format specifiers