180 Commits

Author SHA1 Message Date
John Beard
7fe69c8ac5 Pcbnew: dimension suppress zeros by default
Per ASME-Y14.5-2009 section 2.3, trailing zeroes are not used for metric
dimensions, which are probably most common. Unit suffixes are also not
used in every dimension when specified as a global default, which is
also common (usally in the fab notes).

This appears to be common defaults in other EDA software.  This is also
compatible with ISO 129-1 section 4.3.

In Pcbnew, this is only the default until the user sets it in the board
settings, so existing designs will always keep their set values.
2024-12-24 20:38:34 +08:00
Seth Hillbrand
9c0890302e Migrate DRC Exclusion names
Changing names like was done in
https://gitlab.com/kicad/code/kicad/-/issues/18040 breaks old project
files unless the DRCE names are migrated.
2024-12-23 19:30:44 -08:00
Dhineshkumar S
57127f7d12 Add DRC warning for incorrectly mirrored text 2024-12-08 05:00:38 +00:00
Dhineshkumar S
6e2ed5666d Fix Courtyard layers disappeared
Currently, the used layers passed from parseLayers() do not include
mandatory layers if they are missing in the loaded board file.
To fix this, we can manually add the mandatory layers to ensure they
are always enabled.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18978
2024-10-28 17:09:24 +00:00
Fabien Corona
6d85853365 Creepage : add minimum slot width 2024-10-22 08:42:42 +02:00
jean-pierre charras
bff4ab5cfe DIALOG_GLOBAL_EDIT_TEARDROPS: save teardrop scope in board design settings.
These parameters were already in board design settings, but never used.
2024-10-15 18:02:22 +02:00
Jon Evans
56e0811516 Phase 2 of padstack support
CHANGED: PCB file format now supports saving/loading complex padstacks

CHANGED: PTH pads are now rendered per copper layer in the copper color;
         the PTH pad color is no longer used.

ADDED: support for importing complex pad stacks from Altium PCBs

Enforce padstack-aware access to pad properties across KiCad

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8182
2024-10-01 19:55:03 -04:00
Jeff Young
00bbe4dbc6 ADDED: ERC & DRC checks for footprint matching footprint filters.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6401
2024-08-16 16:31:53 -06:00
James J
7ce00e511b Multi-netclass support 2024-07-26 20:49:29 +00:00
Seth Hillbrand
17b0dabec3 Remove the now unused curve-point count
With the refactor of the bezier lib, we no longer base the curve on the
number of points but rather on the error allowed.  The parameter was
vestigal and had no effect on output
2024-07-10 11:19:09 -07:00
Seth Hillbrand
cc850d0da0 Split out LSEQ/LSET from LAYER_ID
Separate the layer grouping classes for easier modification
2024-07-08 20:59:46 -07:00
Jon Evans
5fc0f1f51e ADDED: Independent control of front/back via tenting 2024-06-11 21:50:25 -04:00
Jon Evans
4aab9f59aa ADDED: Support tenting control of individual vias
REMOVED: Tenting option from plot dialog (tenting is now
         controlled from Board Setup and via properties)

See https://gitlab.com/kicad/code/kicad/-/issues/2402
2024-06-11 21:25:02 -04:00
Jeff Young
bc14a841cb Check for drilled hole errors in Footprint Checker.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18093
2024-05-27 13:51:21 +01:00
Jon Evans
c800fb790d Start unifying padstack properties 2024-05-14 20:57:56 -04:00
Jeff Young
6b797420d5 ADDED allow physical_clearance between courtyards & zone fills.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6966
2024-05-01 13:49:41 +01:00
Jeff Young
fc572bfbc6 Make sure users don't run into min text size.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17543
2024-03-23 15:50:45 +00:00
Jan Wichmann
1297ddc88d pcbnew: Added default master pad properties
CHANGED: Automatically selects the right pad type for the footprint type. Resets the pad properties if the master pad properties do not match the pad type.

https://gitlab.com/kicad/code/kicad/-/issues/16563
2024-03-02 00:13:39 +00:00
Jeff Young
d7e4a8cebd ADDED: ERC/DRC exclusion comments.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16020
2024-02-24 20:05:51 +00:00
Alex Shvartzkop
1a65c0091f Tweak default meander settings. 2024-02-20 03:20:08 +00:00
Jeff Young
5b5c6f0474 Init tuning pattern settings from BOARD_DESIGN_SETTINGS.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16819
2024-01-30 13:19:04 +00:00
Jeff Young
13935399a5 Second part of d854de9d681267c1f0211fd75a29bbb4bf74d74d
This one for symbol <-> footprint.  (Original was for
lib footprint <-> board footprint.)

Also fixes a major bug in DRC where we bail out of parity
checking if DRCE_MISSING_FOOTPRINT is set to ignore (or
overflows).

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16671
2024-01-20 18:41:35 +00:00
Jon Evans
b8aef58561 Add proper comparison operators for BOARD_DESIGN_SETTINGS and children
BOARD::operator== was just comparing pointers
2024-01-01 13:37:31 -05:00
Ian McInerney
c7592758cc Ensure some variables are initialized to known values 2023-12-19 14:32:31 +00:00
Jon Evans
4268ffec77 Use default, not legacy, copper edge clearance as default
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16032
2023-12-02 23:25:06 -05:00
Jeff Young
2450250ae7 Use "tuning pattern" in the GUI. 2023-10-15 17:59:11 +01:00
Jeff Young
420cadab34 Separate meander settings from target length/skew.
Settings move to Board Setup, while target length is sourced from
the custom rules (or a text-entry dialog if no rules are active for
the track).

Target skew is sourced from the coupled-trace-length minus the
trace-to-be-tuned length.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12075

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15826
2023-10-06 19:46:55 +01:00
Jeff Young
987e382f96 Add missing member variable initialization. 2023-10-02 22:18:31 +01:00
Jeff Young
8760bd8c80 Reconcile "apply defaults to new footprints" with DRC lib checks.
Moves apply defaults settings to Board Setup (where they were
duplicated anyway due to an earlier botched merge).

Modifies the apply-to-graphics algorithm to skip copper shapes.

Modifies DRC library check to skip STROKE_PARAMS for non-copper
shapes.
2023-10-02 22:10:13 +01:00
Seth Hillbrand
000998ccae When routing, check for board-level clearances
If the board-level clearance exceeds the max pad/track clearance, we end
up missing collisions in the router.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15162
2023-07-24 15:19:21 -07:00
Jeff Young
8f5b7569d1 Split StyleFootprints into separate bools for fields vs text & graphics.
Also moves the settings from Board Setup to Preferences > PCB Editor.

Also collapses Track Drag Mode from radio buttons to a choice menu to
save space and allow it to be with the other editing action modes.
2023-07-10 17:15:57 +01:00
Jeff Young
a66360525a Broaden "Style footprint fields" to cover graphics as well.
Also cleans up the layout of the symbol & fp properties dialogs.

Also fixes the background colour of the link textEdit controls on Mac.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/8161

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15152
2023-07-09 12:45:55 +01:00
Mike Williams
cc7798745e Board Settings: control styling of footprint fields
Can use library values or board default settings. Defaults to board
default settings.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/8161
2023-07-08 19:58:11 -04:00
Ian McInerney
63e91366e2 Add variable initializations 2023-06-15 23:49:24 +01:00
Jeff Young
5875f89531 Centralize text size clamping.
Also introduces alg::clamp to improve readability of
std::max( min, std::max( value, max ) )

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14876
2023-06-03 20:29:51 +01:00
Jeff Young
8b1fd62d35 Make pad & via teardrops 1st-class citizens (props of the pad/via)
Change teardrop generation to rely more heavily on BOARD_CONNECTIVITY
for improved performance.

Add updating of teardrops on BOARD_COMMIT::Push().

Also converts m_CopperItemRTreeCache to std::shared_ptr.
We don't copy it around anyway, and having to create a new set
of std::unique_ptr's for each operation is likely to be more
expensive than std::shared_ptr's overhead.
2023-05-19 18:02:03 +01:00
Jeff Young
daa3a1aae9 Revert addition of update-teardrops checkbox to DRC dialog. 2023-05-11 14:53:28 +01:00
Jeff Young
299c88cfec Allow setting 0 to min width, min track width, min via annular width, etc.
Fixes https://gitlab.com/kicad/code/kicad/issues/13822
2023-04-15 13:20:34 +01:00
Jeff Young
2d15067453 ADDED allow update of teardrops before running DRC.
Fixes https://gitlab.com/kicad/code/kicad/issues/14264
2023-04-15 12:18:41 +01:00
Jeff Young
461def2719 Move automatic dimension processing inside PCB_DIMENSION_BASE.
Also move dimension precision to an enum so it can get a proper dropdown
in the properties inspector.
2023-03-05 15:19:06 +00:00
Marek Roszko
aacc9746e3 Yeet the last of wxSize/wxPoint to stop leaking gdicmn everywhere 2023-02-18 22:57:18 -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
Jon Evans
995a153f27 Update nlohmann::json to 3.11.2
Also update json_schema_validator to match new deprecations
2022-11-05 10:53:57 -04:00
Jeff Young
97d4df4154 Better thread safety for zone boundingbox caches. 2022-10-02 19:30:43 +01:00
Jeff Young
adbbceacda Make footprint type check more narrow, and set default to ignore. 2022-10-02 18:19:43 +01:00
Jeff Young
503385f52e Don't use FindNamedPad for net-tie logic. It only reutrns the *first*
pad of a given number.

Also improves other DRC logic to tighten up the net-tie rules now that
we know which pads are allowed to short with which other pads.

Also removes the "Overlapping pads" DRC violation now that we know
whether or not overlapping pads in a net-tie footprint constitute a
short.

Fixes https://gitlab.com/kicad/code/kicad/issues/12506
2022-09-25 17:38:31 +01:00
Marek Roszko
66e8931405 Remove IU_PER_MM thats standalone 2022-09-16 21:09:27 -04:00
Marek Roszko
61e11d6896 Strip out Mils2Iu 2022-09-16 21:09:27 -04:00
Marek Roszko
33f8161799 Merge in MM_PER_IU to EDA_IU_SCALE 2022-09-16 21:09:26 -04:00
Marek Roszko
a8613ee80f Combine Iu2Millimeter & remove PcbMm2iu 2022-09-16 21:09:26 -04:00