This causes an ASAN error because something in the wx
clipboard cache is incorrect (so it tries to copy more
data than it has available). Closing the clipboard and
reopening to read works (since close clears the cache).
These formats use a defined page size (currently A4), and therefore
the drill list cannot be outside the page.
When there are a lot of drill diameters it can happen.
Now the long lists are plotted on more than one column.
Plot Gerber format default values: X2 attributes enabled.
Gerber job file: use a trick to truncate floating values to 4 digits in mantissa.
It gives a much better readability and 0.1 micron is enough for
mechanical dimensions
Move the camera out to its own so that everything else is board-
related, and then rename BOARD_ADAPTER.
At some point the flags should probably be moved out too, and they
can have the EDA_3D_SETTINGS name.
Previously, all overlapping polygons (pads and min thickness areas to remove) were
merged.
Drawback: pads attributes are lost. In Gerber this is annoying.
Now the pads are plot as flashed or Regions items, and min thickness areas are added
but shapes are not merged and keep their attributes.
the parameter margin percent was badly handled for rectangular/oval pads,
giving an incorrect solder paste shape for non 0.0 values
now it is is correctly handled.
Previously, the region was a usual polygon with arc approximated by segment.
Using a region with arcs is a better way because it allows CAM tools to
identify this region as a round-rect pad.
A side effect is a better shape and smaller files, however not really noticeable in fact.
Please note that the symbol cache is not embedded in the schematic file
to allow for round robin testing with the existing file format. Once
the parser round robin testing is complete, the symbol cache will be
embedded in the schematic file.
Includes improvements to Update PCB from Schematic dialog and
corresponding changes to Symbol Properties, Sheet Properties and
Footprint Properties.
Fixes https://gitlab.com/kicad/code/kicad/issues/4012
When the solder mask min size is > 0, pads are no longer flashed or regions items.
Good Gerber files need pads flashed or regions items.
Non 0 solder mask min size is reserved to special cases (home made PCBs for instance)
In particular, map the netlist info to the orphaned item, and
adjust the position of module graphic items to no longer be
module-relative.
Fixes https://gitlab.com/kicad/code/kicad/issues/4032
The board setup dialog controls DRC error visibility, so the
two dialogs shouldn't be open at the same time to prevent
data contention.
Follow-up to https://gitlab.com/kicad/code/kicad/-/issues/4023
By making it quasimodal, it allows the main KiCad window and Eeschema
to be used still, if it were just modal then it blocks out all other
windows.
Fixes https://gitlab.com/kicad/code/kicad/issues/4023
Springback introduced a new PNS structure to check for valid placement
as well as separating the Fix/Commit routines. This updates the
remaining placers to utilize the new structure.
Fixes https://gitlab.com/kicad/code/kicad/issues/4008
Dragging using highlight caused an assertion as the duplicated lines
were being re-added with their old links still inplace. While this was
probably fine as the link references shouldn't be stale, we clear them
to allow for the possibibility that the dragger will adjust the links in
the future.
The bump direction should only be concerned with physical points to
calculate the heuristic for loop-back otherwise we get too many false
positives.
Fixes https://gitlab.com/kicad/code/kicad/issues/3971
Needs to handle changes to PNS_ROUTER. This does not implement
springback or backspace in DIFF_PAIR_PLACER, only allows committing
lines as before
Fixes https://gitlab.com/kicad/code/kicad/issues/3988
When editing pcb items, the creation of a new net to connect existing
pads or traces can be a useful shortcut. This inserts the ability to
optionally create a new net from the Net Selector dropdown menu.
The canvas size is not guaranteed to be strictly > 0, so we need to
enforce a minimum returned size before dividing by it or passing to GAL
initialization
Replace SEVERITY_ERROR by RPT_SEVERITY_ERROR to avoid collision with a system definition.
Replace other SEVERITY_XXX by RPT_SEVERITY_XX for consistency.
Fix compil warnings and some other compil issues.
CHANGED: The reset buttons now set the X or Y offset to the current
offset from the reference position. Selecting individual pads as the reference item is now also possible.
Not all footprint pad items are connected to elements in the PNS, so if
we don't find the parent element, we avoid later crashes/assertions by
skipping their addition
Fixes#3972 | https://gitlab.com/kicad/code/kicad/issues/3972
Config values were not stored into the right variables.
Make also an option persistent during the session
in DIALOG_UPDATE_PCB and DIALOG_NETLIST
DIALOG_UPDATE_PCB and DIALOG_NETLIST match options: use same order in dialogs.
In rare cases (one known case) sizes of areas used as container when spreading
footprints can become negative, thus hanging pcbnew.
Happens if many footprints are very big (say 80cm).
Now if there is no room to place footprints, some are stacked.
In the case where the footprint arc has a non-normal angle, we cannot
represent this in pcbnew and it corrupts the gerber output. Therefore
we drop the invalid arc and continue to load the footprint/board.
Fixes#3918 | https://gitlab.com/kicad/code/kicad/issues/3918
KiCad is limited to 32 signal layers but PCad can number the layers
higher than this. Instead of a C-style array, we now hold the layer
numbers in a std::map to support arbitrary numbering.
Fixes#3949 | https://gitlab.com/kicad/code/kicad/issues/3949
Commit d7272b7f5e fixed the use of
the eagle DRC to change the library pad shapes. This was also
applied incorrectly to SMD stacks.
Remove the references to m_rules in packageSMD() and the code
that deals with them. eagle 7.7 does not have any SMD pad options
other than rectangle with rounding.
When drawing to a scaled DC, the window doesn't reflect the expected
size if scaled after. This causes elements drawn on the edge to reflect
back into the drawing area instead of being cut off.
We can simply scale our own values to avoid this issue.
Fixes#3849 | https://gitlab.com/kicad/code/kicad/issues/3849
Keeping a pointer to the actual file history inside a special
file history menu led to many cases of use after free crashes,
so instead rework the actual file history to add the menu
items.
Fixes https://gitlab.com/kicad/code/kicad/issues/3741
This is due to the fact the PNS_TUNE_STATUS_POPUP was not hidden
before calling its destructor.
It is now fixed by setting its virtual destructor calling Hide().
TODO: see if it could be used for any class derived from STATUS_POPUP.
(We already have this issue in other places)