Commit Graph

604 Commits

Author SHA1 Message Date
Marek Roszko 4665823089 Turn on and fix MSVC compliance mode issues
We want /permissive- to enable debug performance improvements in MSVC 17.5+.
This flag is also default under C++20 so we'll have to deal with these compile issues anyway at some point in the future.

In particular, MSVC becomes pedantic about ternary types.
See https://learn.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance?view=msvc-170#ambiguous-conditional-operator-arguments

MSFT cites https://cplusplus.github.io/CWG/issues/1805.html
2023-02-12 16:30:37 -05:00
Jon Evans e066454c61 Zones: use metric defaults and limits instead of mixed units
Update testcases to reflect new defaults
2023-02-11 07:39:29 -05:00
Alex b71fa91bc4 Don't write outside of overrides array on pad zone_layer_connections.
Use std::array to catch future errors in Debug.

Fixes https://gitlab.com/kicad/code/kicad/issues/13803
2023-02-08 01:32:52 +03:00
Jeff Young f2f54fe926 Improve zone-layer-connections terminology and comments.
This makes it clearer that the overrides are not inverses of each
other -- one overrides the flashing state and the other overrides
the connection state (to other zones, not to everything).

Also fixes a bug where we were failing to check the force-no-connect
for pads.
2023-02-05 17:39:42 +00:00
Jon Evans 200bf696af Fix importing of legacy netclasses
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13746
2023-02-02 08:29:43 -05:00
Roberto Fernandez Bautista 44cfb1ea43 CADSTAR PCB: Don't create zero sized text items
Partially addresses https://gitlab.com/kicad/code/kicad/-/issues/13693
2023-01-30 19:56:22 +00:00
Roberto Fernandez Bautista 963e82ee7f CADSTAR PCB: Correctly handle anticlockwise arcs
Also add some qa tests for EDA_SHAPE::SetAngleAndEnd

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13626
2023-01-30 19:56:22 +00:00
Chris Morgan ce06171561 Convert additional sprintf to snprintf 2023-01-30 16:22:03 +00:00
vinsfortunato 5bdaf20af6 eagle: determine and use the minimum copper layer stackup count
Fixes: https://gitlab.com/kicad/code/kicad/issues/13484
2023-01-29 21:13:41 +00:00
Marek Roszko d4a5e2caad Fix crash when .kicad_pcb is renamed to .kicad_mod and load library attempted
Pick a random error message used elsewhere
2023-01-28 10:42:46 -05:00
Seth Hillbrand 7e5a2450b8 Move multiple wxMessageBox to DisplayErrorMessage
Also provide protection for headless running in multiple callsites

Fixes https://gitlab.com/kicad/code/kicad/issues/13575
2023-01-18 16:54:01 -08:00
Dag Lem cff0560088 Eagle schematic import: Handling of escaped text 2023-01-18 12:33:36 +00:00
Seth Hillbrand 60ba245474 Remove Eagle islands by default unless told otherwise
Fixes https://gitlab.com/kicad/code/kicad/issues/13503
2023-01-17 12:49:44 -08:00
Jeff Young ca1fb732c8 Share Eagle var substitution between board and schematic importers.
Fixes https://gitlab.com/kicad/code/kicad/issues/13541
2023-01-15 22:27:19 +00:00
Jeff Young 0c8f95aa02 Make sure tesselate_lambda has lock before modifying zone.
Also implements locking for upating pad & tracks' zoneConnectionCaches.

Fixes https://gitlab.com/kicad/code/kicad/issues/13531
2023-01-15 15:52:24 +00:00
Jeff Young f358749b28 Import copper pour cutouts from Eagle packages (footprints).
Fixes https://gitlab.com/kicad/code/kicad/issues/13503
2023-01-13 16:35:45 +00:00
Jeff Young 631fd54f9f Don't suppress writing of empty values. They have meaning.
Fixes https://gitlab.com/kicad/code/kicad/issues/13507
2023-01-12 15:24:59 +00:00
Jon Evans ac3ed02283 Rework bitmap cache and enable it
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12405
2023-01-04 00:26:45 +00:00
lukas-heiligenbrunner 29e51cc198 fix quoting of layernames 2022-12-29 09:01:11 +00:00
Marek Roszko 61119fbf64 Poke a const to make gcc happy 2022-12-06 22:00:23 -05:00
Marek Roszko c0b5fe58c3 Implement output targeting of symlib/fplib upgrade per request 2022-12-06 21:20:27 -05:00
jean-pierre charras d7368588db stackup manager: fix incorrect handling of colors for multi-layer dielectrics
The dialog allows a color selection for each dielectric layer.
However for a "dielectric" defined by more than one layer, the color was handled
only for the first layer, and not for the other sub-layers.
2022-12-01 16:19:13 +01:00
Marek Roszko 25d5defc10 Add cli for "fp" upgrade 2022-11-28 20:48:14 -05:00
Jeff Young 1aad2fb37b Change via keep-start-end to be start/end, not top/bottom.
The implementation used to always check F_Cu and B_Cu, rather than
where the via started and ended (which will be different for blind/
buried vias and microvias).
2022-11-23 21:37:50 +00:00
Seth Hillbrand 50ecb5b498 Remove errant printf 2022-11-21 15:19:45 -08:00
Jeff Young 9b2606018e Fix shadowed variable. 2022-11-19 11:53:33 +00:00
Jeff Young bab2b6c4b6 Don't assume a 1:1 map between Altium and Kicad nets.
We've found at least one Altium board which has duplicate netcodes
for the same net.

Fixes https://gitlab.com/kicad/code/kicad/issues/12909
2022-11-19 11:53:33 +00:00
Marek Roszko 3dd2ae762d Refactor step export to use our normal board processing routines 2022-11-12 21:27:10 -05:00
Jeff Young 1d7c5dce70 Don't attempt to write zone-connection-layers to footprint library.
Fixes https://gitlab.com/kicad/code/kicad/issues/12857
2022-11-08 12:13:15 +00:00
Jon Evans dd94b2d3a7 Rename PROPERTIES to STRING_UTF8_MAP for clarity
This class has nothing to do with the properties system
2022-11-06 11:51:52 -05:00
Jeff Young cef7cd8f7c Move default font to RENDER_SETTINGS.
Fixes https://gitlab.com/kicad/code/kicad/issues/12723
2022-10-22 21:32:42 +01:00
Jeff Young d16b23d16e Name shortening and line-break reduction. 2022-10-21 18:41:39 +01:00
Jeff Young 437d2c4589 Overhaul of remove-unconnected's zone filling and drawing strategies.
1) The highest priority zone that a via/pad collides with "owns" its
connectivity state.  Once set, lower priority zones cannot change it --
and in fact, if they would have connected to it are forced not to.

2) The connectivity state goes with the zone fill state, and therefore
must be saved in the file.

3) Display of remove-unconnected's pads is no longer done in GetViewLOD()
(which isn't called for selected items), and is instead done in PCB_PAINTER.
This allows us to draw the full pad in outline mode when a via/pad is
selected which would otherwise only show the hole.

4) Note that in some cases this will still generate DRC errors -- in
particular when a via nearly collides with a higher priority zone it
won't get "owned" by that zone and may therefore have insufficient
clearance if said zone concludes it's unconnected and a subsequent
(lower priority) zone connects to it (causing it to now become flashed).

Fixes https://gitlab.com/kicad/code/kicad/issues/11299
2022-10-18 13:05:42 +01:00
Jeff Young d1fb32f26c Formatting. 2022-10-15 19:09:25 +01:00
Jeff Young 0d7185c2ff Fix mismatch between PCB_VIA defaults and file format defaults. 2022-10-15 11:17:58 +01:00
Jeff Young 46a41e2e34 Pin 0-sized pads at 1um rather than throwing them out.
(See bug report for more commentary.)

Fixes https://gitlab.com/kicad/code/kicad/issues/12617
2022-10-13 14:47:50 +01:00
Jeff Young 64a6fc0fd4 Push UNITS_PROVIDER down into a low-level mixin.
This allows us to also construct cheap UNIT_PROVIDERs for specific
tasks when necessary.
2022-09-19 17:10:59 +01:00
Marek Roszko ece23d434b Split up Double2Str to a format function to make its use case clear 2022-09-17 00:10:22 -04:00
Marek Roszko 3d5913c825 Remove convert_to_biu.h, merge contents to base_units.h 2022-09-16 21:09:28 -04:00
Marek Roszko 66e8931405 Remove IU_PER_MM thats standalone 2022-09-16 21:09:27 -04:00
Marek Roszko e6ed275c25 Repoint IU_PER_MILS 2022-09-16 21:09:26 -04:00
Marek Roszko a8613ee80f Combine Iu2Millimeter & remove PcbMm2iu 2022-09-16 21:09:26 -04:00
Mark Roszko b00178adb3 Nuke base_units from orbit 2022-09-16 04:38:10 +00:00
Jeff Young 281b9d405a ADDED ability to specify where pad number (& net name) go on custom shaped pads.
Fixes https://gitlab.com/kicad/code/kicad/issues/6627
2022-09-14 11:37:20 +01:00
Roberto Fernandez Bautista fa5dc23797 CADSTAR PCB: Fix regression when loading pads in footprints
Zero sized pads can be valid - e.g. a through hole pad
2022-09-04 00:59:57 +02:00
Roberto Fernandez Bautista 9abf3438b8 CADSTAR PCB: Invert logic for guessing which layer is top / bottom
Ensures correct automatic layer mapping is applied to the design in
https://gitlab.com/kicad/code/kicad/-/issues/12349
2022-09-04 00:59:57 +02:00
Roberto Fernandez Bautista c961624d43 CADSTAR PCB: Load 2-point polygons as line segments
Fixes asserts when loading design from https://gitlab.com/kicad/code/kicad/-/issues/12349
2022-09-04 00:59:57 +02:00
Roberto Fernandez Bautista 21b3753e9b CADSTAR PCB: Parse Teardrops
Todo: We need to figure out how we will load teardrops. For now
just drop them on import.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12349
2022-09-04 00:59:56 +02:00
Jeff Young 9188838e50 RIP EDA_RECT. 2022-08-31 23:57:24 +01:00
Jeff Young b4492e0bd2 More EDA_RECE yeetage. 2022-08-31 17:19:50 +01:00