The margin fix prevented some schematics from printing. Reverting in
favor of transitioning to the Cairo print base in eeschema
(cherry picked from commit 9de7547c25)
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)
From master branch.
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, to list changes, the Reference field was used in comparisons.
In complex hierarchies, this is incorrect: the Reference field contains
only the last displayed reference, not the reference of a given sheet.
The comparison uses now the sheet paths for ref and unit selection.
From a similar fix in master branch.
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
(cherry picked from commit 3e0ff72720)
The commit takes the module edit flag when resetting the tool. All
tools should reset this flag when we setup the Module editor.
This is slightly different in master and v5, so this is a rework of
7bdf71abc
Fixes#3973 | https://gitlab.com/kicad/code/kicad/issues/3973
The symbol check output the HTML message for each item. This is _very_
slow and can lock the system reponsiveness. Changing to a queue/flush
method is much faster
cherry-picked from 245b778454
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.
(cherry picked from commit 070c6b8ce0)
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
(cherry picked from commit 5b6a4d794f)
The Gerber attribute deletion command (%TD,xxx) always cleared all attributes,
instead of clearing xxx attribute.
Therefore some attributes were not always displayed.
From master branch, commit 7206b567
When searching for fields, the code was sometimes comparing
translated and not translated names. This is an issue for mandatory fields,
in non English languages.
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
The preferred list isn't actually in use anymore at this point, so
it currently has no effect other than to mess things up since we
aren't keeping track of which modules have been rejected when we
check the module count.
Fixes https://gitlab.com/kicad/code/kicad/issues/3721
(cherry picked from commit d02c0da3ab)
(From master, commit 8f3e8cf)
Sometimes a dxf curve is a "degenerated" bezier curve having only 3 points.
(a control point is at same location as a end point)
This commit fix incorrect import of these curves.
Fixes#3845https://gitlab.com/kicad/code/kicad/issues/3845
This part of the check removes recursive sheets from the schematic when
loading and notifies the user that their schematic has been repaired.
(cherry picked from commit 128ec782dd)
We need to ensure that the appended sheet does not already exist in the
parent hierarchy. We do this for new sheets but need to check for
existing ones as well.
Fixes#3806 | https://gitlab.com/kicad/code/kicad/issues/3806
(cherry picked from commit 7ac83ac64d)
Some platforms (such as Linux) don't automatically append file
extensions, so we should ensure extensions are correct and the user is
prompted accordingly.
Fixes https://gitlab.com/kicad/code/kicad/issues/3817
(Cherry-picked from 88e0ef548d)
Move vector should not affect start/end points as they are assumed to
always be 0,0. Polygon is defined by outline only.
(cherry-picked from 32674ef360)
Spice lines defining circuit elements are contained in a .subckt ..
.ends block. The intervening lines should be exported to the netlist as
well as the control lines.
(cherry picked from commit d9eaff1c99)
The new line collision search uses BBox() to check for colliding
objects. BBox in the SHAPE_LINE_CHAIN did not include width as the
chains were assumed to be zero-width. This is not the case for
PNS::LINE elements.
We mostly don't notice this because DRC checks for SEGMENT collisions
but it becomes obvious/annoying when we cannot place a track for unknown
reasons and the snap-back doesn't take line width into account.
Fixes#3776 | https://gitlab.com/kicad/code/kicad/issues/3776
(cherry picked from commit fe15511d38)
When routing where we hit multiple obstacles, we choose the shortest
path to allow overlapping hits to choose the shorter path, thus giving a
better chance of returning true for the DRC-compliant path.
Fixes#3773 | https://gitlab.com/kicad/code/kicad/issues/3773
(cherry picked from commit 38f13ef481)
Rotating to 0 when above pi would result in the board spinning back
through pi to get there. This led to jarring motion.
Also fix an issue added in b6f64815 where the board would rotate
2pi when crossing over the 0-2pi boundary.
(Cherry-pick of 4fc9b4e5ab)