Jeff Young
ec020dd19f
First-class support for filled shapes.
5 years ago
Jeff Young
bdbb68f813
MODULE -> FOOTPRINT.
5 years ago
Jeff Young
52a46341db
More module -> footprint.
5 years ago
Jeff Young
f5443de7f9
D_PAD -> PAD.
5 years ago
Jeff Young
84dd5108ba
Remove some "class_" prefixes from files.
5 years ago
Jeff Young
f7333ad64a
Update some classnames including archaic zone names.
5 years ago
Jeff Young
da5cfb5df1
Improve commenting.
5 years ago
Jeff Young
5e569e81e7
Performance enhancements for PNS.
5 years ago
Ian McInerney
d88eaaf477
Fix various compiler and Coverity warnings
5 years ago
Jeff Young
64876a2761
PNS_DRAGGER should report its layers.
Also, don't use ViewGetLayers() for visibility checking. For some
things (like vias) it deals with synthetic layers, not board layers.
Fixes https://gitlab.com/kicad/code/kicad/issues/6328
5 years ago
Jeff Young
ae9afdd169
SNR. (Mostly for progammers, but a little for user messages.)
5 years ago
Jeff Young
fab87fb97b
Handle proxy items for the second PNS_ITEM as well.
Fixes https://gitlab.com/kicad/code/kicad/issues/6193
5 years ago
Jeff Young
ba4d711356
I should have known better than to use a global....
When the board is closed and reopened the dummy items belong to a
freed board.
5 years ago
Jeff Young
c17ceb5875
Make sure proxy items at least get the right net for clearance lines.
Fixes https://gitlab.com/kicad/code/kicad/issues/5980
5 years ago
Ian McInerney
31e626f279
Cleanup creation of all our smart pointers
5 years ago
Jeff Young
3045dbd6e8
Minor code clean-up.
5 years ago
Jeff Young
d7ea70ba02
Don't assume a valid constraint.
Fixes https://gitlab.com/kicad/code/kicad/issues/6059
5 years ago
Jeff Young
02cbcb99df
Fix broken logic in ImportSizes().
Fixes https://gitlab.com/kicad/code/kicad/issues/6049
5 years ago
Jeff Young
827699bed2
Just because we have a startItem doesn't mean it can find a width.
For instance, a pad with no other tracks attached will return 0.
Fixes https://gitlab.com/kicad/code/kicad/issues/6019
5 years ago
Jeff Young
23d9e2e74a
New rules engine needs non-connected items as well.
5 years ago
Jon Evans
fd4b9f0efa
PNS: ratlines need to not be debug graphics
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5995
5 years ago
Tomasz Wlostowski
ac8b072284
router: fix assertion failure when starting a route on an empty board
5 years ago
Jeff Young
44dbe3577b
Create proxy items for PNS when needing to query clearances.
Fixes https://gitlab.com/kicad/code/kicad/issues/5929
5 years ago
Jeff Young
bcebb19665
Add implied diffpair netclass rules.
5 years ago
Jeff Young
79f91481f3
Fix missing break stmt.
5 years ago
Jeff Young
f680ff17d6
Need an item to pick a netclass value.
5 years ago
Jeff Young
22cde88ba9
Allow chamfering/filleting of zone/board edge intersections.
Fixes https://gitlab.com/kicad/code/kicad/issues/5947
5 years ago
Jeff Young
04c4012ee6
Make track/via sizes UI more predictable and compatible with DRC.
Two main changes: netclass values need to go through the DRC engine
so they can interact with other rules. They're also now dependent
on the layer being routed as well as the start object.
Also make the controls adjust to each other better. For instance,
copy-track-width needs to turn off when you select a particular
track width, and a particular track width needs to zero out when
you choose copy-track-width.
Fixes https://gitlab.com/kicad/code/kicad/issues/5951
5 years ago
Jeff Young
2ca819a627
Don't assume a DRC_CONSTRAINT has a parent rule.
It will still have a name, though.
5 years ago
Jon Evans
966730710e
Partial fix for routing with no start item
5 years ago
Tomasz Wlostowski
38cef95da9
router: initial support for V6 Design Rules (width/clearance/diff pair width/diff pair gap). Still a lot of work to do!
5 years ago
Tomasz Wlostowski
5e4fb46aef
MINOPTMAX: added OptThenMin() method as syntax sugar
5 years ago
Tomasz Wlostowski
eb8287ded8
router: bring back legacy GetEffectivePolygon() for complex pad shapes (more info in comments)
5 years ago
Jeff Young
6d50c9749c
Mark the colliding shape so we know which one to highlight.
Also checks the nets when checking for a pad being flashed on a particular
layer (so we don't end up thinking the currently-routing-collided track
is a connection).
5 years ago
Jeff Young
d063c56971
Move PNS pad solids to COMPOUND_SHAPE.
Also fixes plated holes solids to include plating thickness.
5 years ago
Jeff Young
37906511f5
Class renaming.
DRAWSEGMENT -> PCB_SHAPE
EDGE_MODULE -> FP_SHAPE
TEXTE_PCB -> PCB_TEXT
TEXTE_MODULE -> FP_TEXT
5 years ago
Jeff Young
7a4900b8dc
PCB_LINE_T -> PCB_SHAPE_T and PCB_MODULE_EDGE_T -> PCB_FP_SHAPE_T
Also updated footprint text and zone types for consistencey.
5 years ago
Jeff Young
bb753aaadf
Clean up terminology around active & high contrast layers.
5 years ago
Seth Hillbrand
bf3cb0b1d0
Standardize pad type enums
5 years ago
Jeff Young
d3f8f2b81e
Remove confusion between pad->IsOnLayer and pad->IsPadOnLayer
5 years ago
Jon Evans
18e17abd6a
Rename "Keepout" to "Rule Area"
These objects can now be used in advanced DRC rules and
not just for keeping things out. Also remove the restriction
that at least one of the "basic" keepout rules must be set,
so that these areas can be used for more advanced rules.
5 years ago
Seth Hillbrand
f4e8c194be
Revise restriction on No Copper setting
This allows the user to specify a NPTH with "No Copper", allowing a pad
to retain the mask layer without a copper landing.
Fixes https://gitlab.com/kicad/code/kicad/issues/3407
Fixes https://gitlab.com/kicad/code/kicad/issues/5237
5 years ago
Seth Hillbrand
adff7f749b
PNS: Addition layer smarts
Edge.Cuts have no parent but cross all layers, so we need to handle the
"all layers" case. Also renames "IsPadOnLayer" to "IsOnLayer".
Fixes https://gitlab.com/kicad/code/kicad/issues/5351
5 years ago
Seth Hillbrand
686af65a9b
Fix issue generating alternate shape
Boolean ops need boolean inputs.
5 years ago
Jeff Young
842641308f
Solids don't always have nets (even a defualt one).
Fixes https://gitlab.com/kicad/code/kicad/issues/5290
5 years ago
Seth Hillbrand
9a4f92dfd9
Ensure that all pads with holes have alts
Alternate shapes for holes that are fallback clearance are needed in
case we have missing copper on any layer
Fixes https://gitlab.com/kicad/code/kicad/issues/5233
5 years ago
Seth Hillbrand
afc94fdec3
PNS: Be better about handling multiple layers
Rather than adding pads/vias multiple times for each layer, we introduce
the "alternate shape" idiom to PNS that allows us to optionally place
the collision constraint on the hole instead of the pad for those
vias/pads that have inner layers removed.
Fixes https://gitlab.com/kicad/code/kicad/issues/5158
Fixes https://gitlab.com/kicad/code/kicad/issues/5198
Fixes https://gitlab.com/kicad/code/kicad/issues/5195
5 years ago
Jeff Young
463100d67f
Remove a long-standing hack to keep divots out of adjacent zones.
The new algorithm unions any adjacent zones before doing the
chamfer/fillet and then subtracts the other zones back out afterwards.
Fixes https://gitlab.com/kicad/code/kicad/issues/3812
5 years ago
Seth Hillbrand
5fc6b74c89
ADDED: Remove unused pads
This option removes copper layers from pads and vias where they are not
connected to other board elements. This allows the inner layers to be
more closely routed if the via landing pad is not needed.
Fixes https://gitlab.com/kicad/code/kicad/issues/1835
5 years ago
Tomasz Wlostowski
89a953e039
Migrated GetEffectiveShape(s) to SHAPE_COMPOUND
5 years ago