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.
3 years ago
Jeff Young
daa3a1aae9
Revert addition of update-teardrops checkbox to DRC dialog.
3 years ago
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
3 years ago
Jeff Young
2d15067453
ADDED allow update of teardrops before running DRC.
Fixes https://gitlab.com/kicad/code/kicad/issues/14264
3 years ago
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.
3 years ago
Marek Roszko
aacc9746e3
Yeet the last of wxSize/wxPoint to stop leaking gdicmn everywhere
3 years ago
Jon Evans
e066454c61
Zones: use metric defaults and limits instead of mixed units
Update testcases to reflect new defaults
3 years ago
Jon Evans
995a153f27
Update nlohmann::json to 3.11.2
Also update json_schema_validator to match new deprecations
3 years ago
Jeff Young
97d4df4154
Better thread safety for zone boundingbox caches.
3 years ago
Jeff Young
adbbceacda
Make footprint type check more narrow, and set default to ignore.
3 years ago
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
3 years ago
Marek Roszko
66e8931405
Remove IU_PER_MM thats standalone
3 years ago
Marek Roszko
61e11d6896
Strip out Mils2Iu
3 years ago
Marek Roszko
33f8161799
Merge in MM_PER_IU to EDA_IU_SCALE
3 years ago
Marek Roszko
a8613ee80f
Combine Iu2Millimeter & remove PcbMm2iu
3 years ago
Seth Hillbrand
b736460e71
Move optional access from value() to *operator
`value()` throws. Where we check for existence, we don't need to use
the throwing version and should just use the unprotected variant
3 years ago
Marek Roszko
161775fdbc
Fix another type warning
3 years ago
Seth Hillbrand
f1261e71d4
Replace boost::optional with std::optional
3 years ago
Jeff Young
86938aa425
Read, write and process the board-wide Allow soldermask bridges in FPs.
3 years ago
Jeff Young
a9536b5de9
CHANGED netclass assignments now done via canvas or via patterns.
3 years ago
Jeff Young
0304ad4494
Move connection width testing to rule system.
Also copies connection width progress reporting architecture over to
the sliver checker.
3 years ago
Jeff Young
54213bb7f1
Cleanup and move to DRC_ENGINE's status reporter.
1) brace formatting
2) get rid of some autos
3) get rid of a dyn_cast that CLion claims is bad
4) use DRC_ENGINE's status reporter
3 years ago
Seth Hillbrand
a9a5136c1c
Always allow blind/buried/micro vias
Removes a nanny setting that prevented the use of
blind/buried/micro-vias without a checkbox. If the designer does not
want microvias in their board, they simply do not place microvias.
3 years ago
Seth Hillbrand
3081023b5e
ADDED: Minimum copper connection width DRC check
Checks all copper connections in each net/layer for minimum width
setting.
Fixes https://gitlab.com/kicad/code/kicad/issues/9870
3 years ago
Jeff Young
155620cc9a
Move H/V/45 mode from zone properties to toolbar.
Fixes https://gitlab.com/kicad/code/kicad/issues/8587
4 years ago
Jeff Young
d192d3c31d
Better violation title for disabled layers check.
Fixes https://gitlab.com/kicad/code/kicad/issues/11451
4 years ago
Marcus A. Romer
df3e02d9b9
Fix initialisation of default line width settings
4 years ago
Jeff Young
5aa561abe1
Add overlapping pad test and share some tests between board & fp editor DRC.
Fixes https://gitlab.com/kicad/code/kicad/issues/10086
4 years ago
Jeff Young
62f813fddc
Better error reporting for PTH pads.
4 years ago
Jeff Young
e7bf4ab8fa
Separate board-edge silk clearance from mask-edge silk clearance.
Fixes https://gitlab.com/kicad/code/kicad/issues/10970
4 years ago
Jeff Young
0677ef6510
Default isolated copper DRC violation to a warning.
4 years ago
Jeff Young
d2069e1548
Copy Pad_Master when copying BOARD_DESIGN_SETTINGS.
Fixes https://gitlab.com/kicad/code/kicad/issues/10932
4 years ago
Jeff Young
3deaf902bb
Retire the V5 zone fill algorithm.
Fixes https://gitlab.com/kicad/code/kicad/issues/10578
4 years ago
Jeff Young
a60aa68b3a
Don't enforce a max of 4 for minimum-spoke-count.
See comments in code.
Fixes https://gitlab.com/kicad/code/kicad/issues/10583
4 years ago
jean-pierre charras
419010ec46
teardrop: add filtering to skip teardrops when pad/vias and tracks have similar sizes
4 years ago
jean-pierre charras
3a66f33d96
TEARDROP_MANAGER: add option to add teardrops on pads in zones.
4 years ago
jean-pierre charras
1b42152ba0
Teardrops: store parameters in BOARD_DESIGN_SETTINGS.
4 years ago
Tomasz Wlostowski
2aee47487a
pcbnew: consider worst case hole-to-hole clearance in GetBiggestClearanceValue()
4 years ago
Jeff Young
f1410f0240
Line styles for PCBNew shapes.
Fixes https://gitlab.com/kicad/code/kicad/issues/2150
4 years ago
Jeff Young
ef10b36948
Add mask-to-copper clearance parameter and rename mask margin.
4 years ago
Jeff Young
a48867ea01
Solder mask integrity testing.
ADDED DRC test for solder mask aperture bridging copper from different
nets.
ADDED visualization of minimum web width processing for solder masks.
ADDED allow_soldermask_bridges property for footprints.
Fixes https://gitlab.com/kicad/code/kicad/issues/2183
Fixes https://gitlab.com/kicad/code/kicad/issues/1792
4 years ago
Jeff Young
533276e6b6
Copper sliver checking.
ADDED DRCE_COPPER_SLIVER DRC error.
ADDED ADVANCED_CFG DRCSliverWidthTolerance and DRCSliverAngleTolerance.
Fixes https://gitlab.com/kicad/code/kicad/issues/2183
4 years ago
Jeff Young
a1e3f2b188
Starved thermals DRC checking.
ADDED min_resolved_spokes constraint.
ADDED "Thermal relief connection to zone incomplete" violation.
Fixes https://gitlab.com/kicad/code/kicad/issues/2183
4 years ago
Jeff Young
2001d08186
Add DRC tests for text height and text thickness.
Fixes https://gitlab.com/kicad/code/kicad/issues/8683
4 years ago
Jon Evans
1610195a09
Coverity fix
4 years ago
Simon Schaak
8e5f929724
Fix default reference text copy for new footprints
4 years ago
Jeff Young
3c0b10b022
Don't use approximated shapes for router hulls.
We only do 45-degree routing anyway so we might as well build an
octagonal-based hull from the get-go.
Fixes https://gitlab.com/kicad/code/kicad/issues/7672
Fixes https://gitlab.com/kicad/code/kicad/issues/9544
Fixes https://gitlab.com/kicad/code/kicad/issues/9833
4 years ago
Seth Hillbrand
5dcd6f89d3
Don't register DRC error on internal approximation
Users can set the internal approximation of curves, which will create
small errors off of ideal locations. This will cause DRC errors on some
items such as rounded rect pads when elements are routed at the minimum
ideal distance. Users could already tune this value using the Advanced
Config values but we'd rather the user not depend on that.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9833
4 years ago
Jon Evans
75d75799f7
Move to getters/setters for aux and grid origin
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8836
4 years ago
Seth Hillbrand
6cc6f06a9a
Millimetres -> Millimeters
4 years ago