Due to rounding issues, sometimes (especially for rotated pads)
the region (4 segments+4 arcs) was incorrectly closed
1 unit (nanometer) mismatch between start point and end point.
Although it does not create bad shape, its breaks the round rect pad
identification in CAM tools. start point and end point are now the same.
From master.
This is required, because Ninja otherwise doesn't properly rebuild after
updating the version string header file.
Because BYPRODUCTS requires CMake 3.2, bump the minimum version and remove
now unused compatibility code for older CMake versions.
These pads were plotted as a segment. This is not the right way:
Pads must be flashed or plotted as regions, not painted.
They are now plotted as Gerber regions round rectangle pads.
These regions are similar to flashed pads.
From Master branch, commit de7154e8e.
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.
Similar to master branch, commit 9cb3333d05.
Previously, for historical reasons, they were added only if
Include Netlist Attributes option was on.
But Aperture Attributes have nothing to do with Netlist Attributes, and good
Gerber files must include them.
From master branch
Previously we call only setlocale( xx, "C" ), but it was not enough on Windows.
Now we call wxLocale("C")
wxLocale calls setlocale, but also make some others initialization in wxWidgets.
It fixes some issues related to comma versus point as fp separator.
Especially wxWidgets warnings are no longer thrown, and a one case of incorrect
conversion is fixed.
However, wxLocale( "C" ) also switches the current translations to English, so
loading files can have a slightly different behavior
CHANGED: Update the Linux appdata file to include new tags
* Include version tags (and others) in the appdata file
* Refactor the version string generation to clean it up
Cherry-pick of:
3370e89967e54c954aed
When printing (using DC context) the bitmap will clear the full screen
unless the clipping region is set to the image itself.
Addresses KSC ticket 126
Fixes#1877 | https://gitlab.com/kicad/code/kicad/issues/1877
(cherry picked from commit 195c3d074b)
Quasi H or V segments are segments having the same x value or y value
(with a + or -1 max diff) for end points coordinates.
The change is a workaround, not really a fix.
Fixes#3711https://gitlab.com/kicad/code/kicad/issues/3711
In gbr files, not allowed chars are coded using a 16 bit (4 hexa digits)
unicode sequence.
Previously, it was \XXXX and now is \uXXXX escape sequence.
Changes from master branch.
They are now in a specific block and no longer combined with an other
command.
(combining these commands with an other command (D01 or D02) is deprecated)
Fixes#3677 | https://gitlab.com/kicad/code/kicad/issues/3677
In some cases it was not working well.
Opengl was using an other algo (using the curve properties to create segments)
Now only the OpenGL algo is used,
with optimization to reduce the number of segments.
The constrained draw was constraining the polygon size to fit the
existing points rather than extending the existing points to fit the
user's intent.
This adds a 90° double-joint for the completion polygon that allows the
user to complete common constrained polygons visually based on the
preview with a double-click to finish.
(cherry picked from commit bae50fab9f)
Fixes: lp:1849299
* https://bugs.launchpad.net/kicad/+bug/1849299
This set the polygon preview item to wider size and adjusts the draw
order to ensure it remains visible even when antialiasing
(cherry picked from commit ea1c8525ce)
rect (when not horizontal or vertical), trapezoid and custom shapes are draw as polygons.
The dummy pad used to give attributes is removed, and TO attributes are used in Regions (polygons in Gerber dialect)
This is due to some modifications in Gerber format since the attributes are added in Kicad.
deque structures have higher overhead than vectors. Not usually
problematic, but with hundreds of thousands of characters each with only
a few strokes, the overhead becomes dominant.
(cherry picked from commit 6084614371)
that can generate the same hash for 2 different footprints.
Therefore, for some footprints, the right footprint was not associated to the component.
The hash calculation was using a XOR to combine 2 sub hash values.
This is not a reliable way to combine these hash values.
They are now added.
Looks better to identify similar and different footprints.
Fixes: lp:1847575
https://bugs.launchpad.net/kicad/+bug/1847575
* Fix wildcard display in the file selector dialog (on GTK
it would show the regex to the user)
* Move the file extension comparison into a common function
(cherry picked from commit b33c3a5ad8)
Now that the minimum version is 3.0.0, we don't need to actually
check if the version is greater than 3.0.0 inside the code.
(cherry picked from commit a37d8f2859)
The OnKillFocus handler of the UNIT_BINDER replaces the text in the
control with the evaluated string, which removes the selection. To
get the original text on the primary selection clipboard, we must
add it ourselves.
Fixes: lp:1794623
* https://bugs.launchpad.net/kicad/+bug/1794623
Use the HTML_MESSAGE_BOX window to present the warning messages rather
than wxMessageBox which would overflow the display when there were a lot
of graphic items that could not be parsed.
Fixes lp:1839565
https://bugs.launchpad.net/kicad/+bug/1839565
(cherry picked from commit 24454f5105)
You can trigger it before this fix by running Cvpcb when a .kicad_mod file is
incorrectly set as "Legacy" in your footprint table.
(cherry picked from commit e269b5d1b9)
The thumb size changes between system versions and (on GTK) render
managers, so hard-coded wasn't working. This gets the actual value from
the system and uses to adjust the range. Changes in the range can also
trigger the refresh.
Fixes: lp:1822617
* https://bugs.launchpad.net/kicad/+bug/1822617
Fixes: lp:1816749
* https://bugs.launchpad.net/kicad/+bug/1816749
(cherry picked from commit 85df994eda)
When plotting in Eeschema, various elements may be filled with either
the foreground or background colors. The fill mode is rather unique,
requiring un-stroked pie wedges for arcs and both closed and open filled
polylines.
Fixes: lp:1840769
* https://bugs.launchpad.net/kicad/+bug/1840769
KiCad is case sensitive but we need to be consistent in displaying sort
order as case insensitive (same as file systems)
Fixes: lp:1836911
* https://bugs.launchpad.net/kicad/+bug/1836911
The base initialization of EDA_RECT sets a 0/0/0/0 rectangle that
prevents merging properly with valid EDA_RECT. This sets the default to
be uninitialized until the internal data are set.
(cherry picked from commit 46feb76aba)
libcontext currently restores and saves the FPSCR register
on ppc64. This behavior is fine (though unnecessary) on the
ELFv1 ABI which designates the register as volatile, but has
been observed to cause crashes on ELFv2 systems.
The ELFv2 ABI designates the FPSCR register as Limited-access
and specifies specific conditions that must be met to clobber
it. It does not seem that a context swap function meets these
conditions (and indeed, the save/restore register example in the
ABI document does not modify FPSCR).
This patch fixes ELFv2 ABI compliance by removing the FPSCR
save/restore code in libcontext entirely. This fixes observed
crashes on the platform and should have no consequence for
ELFv1 support.
Fixes: lp:1840088
* https://bugs.launchpad.net/kicad/+bug/1840088
(cherry picked from commit 3e22b75948)
This fixes the last suffix that was missed by 168fa09f5. The schematic
backup files should have the suffix .sch-bak to distinguish from
.kicad_pcb-bak or other backups.
1) Intermediate states might be self-intersecting, and we shouldn't
be policing our users on what order to do things in
2) The polygon might already be self-intersecting, at which point we're
preventing the user from fixing it.
Also includes better const management for SHAPE_POLY_SET API.
Fixes: lp:1833831
* https://bugs.launchpad.net/kicad/+bug/1833831
(cherry picked from commit a3c74051c2)
1) Generate refreshPreview events so the modern toolset doesn't
fall behind by one event (see LP:1818667)
2) In the legacy toolset don't call unimplemented routines and don't
snap to grid on the non-movement axis.
Oblong holes (slots) use now a aperture attribute similar to round holes.
(The previous attribute "slot" is now deprecated)
However they have a specific aperture, and a comment is added in drill files for these apertures.
Use the wxTextValidator style flag to allow the user to clear the library
identifier string. Use wxTextValidator::SetStyle( wxFILTER_EMPTY ) to
prevent empty library identifier strings which is the current behavior.
(cherry picked from commit 9f9e87f11f)
And place bitmaps behind other items. This ensures they are drawn in
the background of the page rather than covering schematic elements.
This also hacks around the buggy wxPostScriptDC implementation that
resets the page to print an image.
Fixes: lp:1819934
* https://bugs.launchpad.net/kicad/+bug/1819934
When selecting the "Print in B&W", all items on the schematic should be
printed using black and white. This converts the embedded images
greyscale before outputting to the printer
DIALOG_EXIT was not being laid out correctly after setting the dialog
message. Rather than fix our custom DIALOG_EXIT, wxMessageDialog and
wxRichMessageDialog were substituted as direct replacements for all
of the variants of DIALOG_EXIT. This make message dialogs appear more
consistent because wxMessageDialog uses the default platform message
dialog and wxRichMessageDialog uses the default platform rich message
dialog on windows.
Remove DIALOG_EXIT_BASE as it is no longer required.
Fixes lp:1832899
https://bugs.launchpad.net/kicad/+bug/1832899
(cherry picked from commit 3f665318f4ab5c02b7d3c29b5233a273fdac2e4e)
Re-arranging the stack will invalidate the iterator that is removed and
inserted (begin()). Because this is not a threaded operation, we can
only do it to ourselves, so check that the operation isn't a NOP before
performing.
Fixes: lp:1832930
* https://bugs.launchpad.net/kicad/+bug/1832930
(cherry picked from commit 552815d486)
eeschema cpp files consume generated header files that have targets in
the common directory, so no dependencies get created from eeschema. We
add the dependencies in common to force the setting through libraries.
Fixes: lp:1831643
* https://bugs.launchpad.net/kicad/+bug/1831643