Labels are the true structure. Extracting purely just shapes won't get you instances of shapes that are virtually placed by reference labels.
Note, this may break the 3d placement of existing user models but they were most likely wrong loaded in the first place and losing any location data as simple as a boring offset from 0. There's no way to preserve the broken behavior and still allow complex step assemblies to locate correctly.
Fixes https://gitlab.com/kicad/code/kicad/issues/4181
Testing suggests that CADSTAR doesn't actually have any clearance to the
hole (other than electrical clearance to the barrel of the padstack/
viastack).
This removes a large amount of DRC violations on imported designs.
Rather than detaching and re-attaching the layer panels with the
attendant overhead, we keep each panel intact and only update its
contents. Since the bindings are the same, this saves substantial time
on pcb loading as well as when closing the board setup dialog
Use KiCad default stackup for older CADSTAR boards that do not
define any dielectric layers between the electrical layers.
Also fix default stackup calculation to ensure finished board thickness
is 1.6mm
This was happening in two cases:
- Loading documentation symbols (CADSTAR on purpose defines these in an
invalid layer)
- When an item was in a "layer set" such as ALLELEC or ALLLAYER - need to
make sure we remove the copper layers that are not active in the design
On wxWidgets 3.0, SetSizeHints must be called once the panel is fully populated.
On wxWidgets 3.1.5, SetSizeHints is not mandatory but can be called to ensure
right sizes once the panel is fully populated.
Cases where fp was left open could lead to dangling files until KiCad is
closed. Stack-based file stream automatically closes after parsing and
on exception
Fixes https://gitlab.com/kicad/code/kicad/issues/9336
Cadstar areas have a line width but this is only for display purposes.
Instead CADSTAR uses the center line when determining whether a DRC
violation occurred.
The form builder window only contained the notebook control, so it was
basically pointless. This removes the base frame and instead makes
PCB_CALCULATOR_FRAME inherit directly from KIWAY_PLAYER.
We were loading as solid fill when the relief gap was exactly the
same as the minimum width.
Also we can do better than just load as solid fill when it is smaller:
we can instead just use the minimum width and at least it still will
have thermal reliefs.
For some reason this does not affect the KiCad frame manager window so it
is an exception to prevent it from becoming an ever growing window height
issue.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8889
Makes usage cleaner. If the user specifies that they are creating an
SMD, they should get SMD pads by default so that they don't have to
change them later.
Fixes https://gitlab.com/kicad/code/kicad/issues/9333
We already exclude components based on the schematic property when
generating the XML. Don't make a hidden second pass in the python
netlist reader by default
Fixes https://gitlab.com/kicad/code/kicad/issues/9326