In Python3, all division operators promote integers to floats. We need
to downcast back to integer for the polygon vertices.
There was also an unhandled overflow in the QR generation that allowed
more than 512 bits to be loaded. This overflows the type of QR we
generate, so this truncates the input string to 62 bytes ( leaving 12
bits for the checksum )
Fixes: lp:1850223
* https://bugs.launchpad.net/kicad/+bug/1850223
(cherry picked from commit 9bccbaf497)
The oval clearance adds an edge on the 0-length side of a circular oval.
This is not needed and can affect the fill algorithm. Instead, we treat
round ovals as circles for pad polygons
Fixes: lp:1849846
* https://bugs.launchpad.net/kicad/+bug/1849846
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.
BLOCK elements in DXF are re-usable bits that are useful when editing
the file but should not be shown when importing the model. This skips
all references except those that exist in the default "*Model_Space".
This block is required in each DXF file and cannot be renamed.
Fixes: lp:1790821
* https://bugs.launchpad.net/kicad/+bug/1790821
(cherry picked from commit df3fabfa21)
The .op command is isolated, so differentiating from .option with a
space will only work if we ensure all commandlines have a space at their
end.
(cherry picked from commit 4004c733c8)
This reverts commit 5064df4ba2.
There were un-addressed issues with the VRML substitution and concerns
by MCAD folks that ECAD designers should not be allowed to perform this
action. Full addressing in v6.
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)
The logic handling the two bug reports attached to this code is now
higher up in the chain. As it stood, warping before right-click meant
that we cannot affect any point on the wire that is not an endpoint.
Flipped footprint pads may report their "primary" layer as not the front
layer in high contrast. We need to check whether the board item for
snaps is visible on the active layers.
Fixes: lp:1847877
* https://bugs.launchpad.net/kicad/+bug/1847877
(cherry picked from commit 07c8596084)
The router items may not yet have a board item parent. In this case,
the reference to the parent needs to be guarded before dereferencing.
Fixes: lp:1847717
* https://bugs.launchpad.net/kicad/+bug/1847717
(cherry picked from commit 0f8a1c22ad)
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
Items and layers that are hidden in the view should not be used as snap
points. This happens in multiple locations:
1) Grid Helper for normal tools
2) TOOL_BASE::snapToItem for router
Resolves KiPro Issue #116
Fixes: lp:1833128
* https://bugs.launchpad.net/kicad/+bug/1833128
(cherry picked from commit cecfeea947)
Fixes from master, commit eaea03217:
* Fix not drawn shapes for clock low, inverted clock and broken shape for falling edge clock
* Especially, shape for falling edge clock was a not existing shape, therefore useless.
* now falling edge clock and clock low shape are similar.
Calling Init() in an action routine will reset the router
settings to the state they were in when first starting pcbnew.
The Init() function is automatically called when the tool is created.
Fixes: lp:1843810
* https://bugs.launchpad.net/kicad/+bug/1843810
* 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)
The parenthesis depth is 2 when the polygon isn't closed. This
shouldn't happen but we have the fall-through to handle odd cases
Fixes: lp:1844872
* https://bugs.launchpad.net/kicad/+bug/1844872
With pads, we should check available anchor points for each connection,
increasing probability of finding connection to match fill algorithm
Fixes: lp:1844661
* https://bugs.launchpad.net/kicad/+bug/1844661
(cherry picked from commit b7128639f8)
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)