Jeff Young
e31705d4b3
More source reporting for clearance rules.
5 years ago
Jeff Young
c090f1b646
Add restrictions on copper layers for NPTH pads.
Also updates the stackup graphics to include NPTH pads.
5 years ago
Jeff Young
e782794f96
Flesh out object properties and DRC Rule syntax help.
5 years ago
Seth Hillbrand
3e754e0378
Teach PNS to respect PTH pads on single layers
This is a valid configuration for some single layer boards (e.g.
high-power LEDs) so we should ensure that PNS doesn't allow connections
to those layers without pads.
5 years ago
Seth Hillbrand
35eda030a2
pcbnew: Ensure we are cloning pads
When calling MODULE::Clone() we need to clone the pads as well or we
will end up with scm churn when running undo/redo operations
5 years ago
Jeff Young
49ac89f72c
Only paint pads on layers they appear on.
Also adds pad layer removal controls to Pad Properties dialog.
Fixes https://gitlab.com/kicad/code/kicad/issues/5320
5 years ago
Jon Evans
bd14f8a82a
ADDED: New appearance control widget for PcbNew
Featuring:
- Layer view presets
- Per-type opacity for tracks, vias, pads, zones
- Net and netclass color and visibility controls
CHANGED: Simplified object visibilty controls
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1951
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1981
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2003
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2173
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2254
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4325
5 years ago
Jeff Young
393bb0fd83
Fix assert where geometry routine wasn't ready to handle layers.
This introduces layer handling to a lot of the geometry routines.
Many of them don't do much with it now, but it does help multi-layer
zones and will help when padstacks are implemented.
5 years ago
Seth Hillbrand
370bc89d5a
Lowercasing private variables in class_pad
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
Jeff Young
e5b50d90a7
Update DRC rules to new layer and disallow grammars.
Also adds support for hooking rules up to named zones.
Fixes https://gitlab.com/kicad/code/kicad/issues/2041
5 years ago
Jeff Young
07085345e9
Flip chamfer corners.
Fixes https://gitlab.com/kicad/code/kicad/issues/5038
5 years ago
jean-pierre charras
4cf5662ea1
Fix incorrect shape of trapezoidal pad shapes. They were not the same as stable branch.
5 years ago
jean-pierre charras
87ebd34ea2
Optimize drawings for degenerated oval pads (in fact circle) and for round pad holes
5 years ago
Tomasz Wlostowski
89a953e039
Migrated GetEffectiveShape(s) to SHAPE_COMPOUND
5 years ago
Tomasz Wlostowski
832a8c5bf7
pcbnew: implement SHAPE_COMPOUND-based GetEffectiveShape()
5 years ago
jean-pierre charras
f00c59c446
Fix a few Coverity warnings.
5 years ago
Jeff Young
2af6d01fdf
Add some defensive code for empty polygons.
Fixes https://gitlab.com/kicad/code/kicad/issues/4947
5 years ago
jean-pierre charras
6f7d5f5e2b
Footprint editor: fix some issues in flip and mirror commands.
more about fixes #4958
https://gitlab.com/kicad/code/kicad/issues/4958
5 years ago
Jeff Young
bf445c1a95
Performance enhancements.
1) cache pad polygon outlines
huge improvement in connectivity performance and a decent
improvement in DRC performance
2) don't pre-allocate CONTEXT stack
significant improvement in DRC rule performance
2) don't keep re-encoding strings
decent improvement in DRC rule performance
5 years ago
jean-pierre charras
377da31fcc
D_PAD copy ctor and operator = : fix missing copy of pad name and pin function members.
5 years ago
jean-pierre charras
bebba1df61
D_PAD copy ctor and operator = : fix missing copy of m_LengthPadToDie member.
5 years ago
jean-pierre charras
b5960dfb40
class D_PAD: add Copy ctor and operator =.
Due to the fact basic primitives for custom pads are now managed by
a list of pointer, the default copy ctor and default operator = do not work
(the basic primitives list must be duplicated).
It fixes issues related to primitives list id pad edition, footprint edition
and undo/redo
Fixes #4958
https://gitlab.com/kicad/code/kicad/issues/4958
5 years ago
jean-pierre charras
eab98eee1d
3D viewer: use the full board bounding box to define the visible area.
Remove also a printf now useless, used for debug.
Fixes #4815
https://gitlab.com/kicad/code/kicad/issues/4815
5 years ago
Jeff Young
d85a707385
Move rest of DRC to SHAPE collision architecture.
5 years ago
Jon Evans
4e54b773e9
Fix some asserts with the property system
It seems like there may be some race between BOARD_CONNECTED_ITEM_DESC
and BOARD_ITEM_DESC
https://gitlab.com/kicad/code/kicad/-/issues/4816
5 years ago
jean-pierre charras
0ff866895a
module and pad display info: add rotation angle.
This is a useful parameter, so it must be displayed on the pmessage panel.
5 years ago
Tomasz Wlostowski
539984229d
Temporarily disable D_PAD/MODULE GetLocalClearance property in introspection engine
5 years ago
Maciej Suminski
04728278c0
Updated classes meta-data to take advantage of property replacement
6 years ago
Maciej Suminski
a289056a9e
Properties meta-data for pcbnew classes
6 years ago
Jeff Young
5bc6389477
Comments.
5 years ago
jean-pierre charras
286c36b7da
gl_utils.h: fix compil issue on Windows
__WINDOWS__ is defined in wxWidgets.
the right preprocessor symbol is _WIN32 for Windows 32/64 bits
5 years ago
Jon Evans
c0aa6965de
Migrate PcbNew project settings to new framework
Various architecture upgrades to support this.
Creating a BOARD now requires a valid PROJECT, which caused
some (mostly transparent) changes to the Python API internals.
ADDED: Project local settings file
CHANGED: Board design settings are no longer stored in PCB file
CHANGED: Net classes are no longer stored in PCB file
CHANGED: Importing board settings now reads boards, not just projects
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2578
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4070
6 years ago
Jeff Young
441dfa30f0
Return individual custom pad shapes instead of a SHAPE_POLY_SET.
Also implements an optional pointer to return the actual distance
from all the SHAPE collision routines.
Fixes https://gitlab.com/kicad/code/kicad/issues/4774
5 years ago
jean-pierre charras
af8f05d570
Fix incorrect calculation of pad bounding box
Fixes #4776
https://gitlab.com/kicad/code/kicad/issues/4776
5 years ago
Jeff Young
424d551054
Cache pad bounding boxes for performance.
Also allows us to return to a LOD test for pad numbers which treats
round and square pads the same.
5 years ago
jean-pierre charras
3993181de5
D_PAD::BuildEffectiveShapes(): fix incorrect rect shape size for rect pads
rotated by +-90 deg
Noticeable in PnS router.
Fixes #4771
https://gitlab.com/kicad/code/kicad/issues/4771
5 years ago
Jeff Young
40a72d9530
Add SH_RECT handling to 3D shape conversion.
Also add some debugging for not-implemented shape cases in other
places to catch simmilar issues in future.
Fixes https://gitlab.com/kicad/code/kicad/issues/4757
5 years ago
jean-pierre charras
42296d7eb9
fix issues in DRC and fill zone, related to recent changes in code.
Note also: the actual clearance between 2 pads when < minimal clearance
is incorrectly calculated.
5 years ago
Jeff Young
9cbcf3fe56
Improve pad annotation for custom-shaped pads.
Use the bounding box instead of the anchor pad size for determining
LOD and size/location of annotations.
5 years ago
Jeff Young
516de9c85e
Point editor hookup for non-custom-shaped pads.
Fixes https://gitlab.com/kicad/code/kicad/issues/2153
5 years ago
Seth Hillbrand
224b41e8b1
Fix a threading segfault when filling zones
The shape cache gets reset by the zone fill algorithm. This needs to be
cleaned before multiple threads are created and cannot be modified when
threading.
Fixes https://gitlab.com/kicad/code/kicad/issues/4723
5 years ago
Jeff Young
e376750f62
Flatten CS_PAD_PRIMITIVE out in favour of reusing DRAWSEGMENT.
(In prep for the eventual replacement of DRAWSEGMENT internals with
SHAPE.)
5 years ago
Jeff Young
d01b29ab37
Cleanup pad geometry handling.
There were a lot of plotters, exporters, etc. that were rolling their
own implementations.
This also introduces a lazily-built set of SHAPE objects for doing
collision detection and some forms of rendering (and later DRC).
5 years ago
Jeff Young
39ec63c4e9
Fix some inconsistencies in clearance priorities.
Fixes https://gitlab.com/kicad/code/kicad/issues/4555
6 years ago
Jeff Young
416d82727f
Redo DRC rules to get ready for new system.
6 years ago
Jeff Young
69f121d907
Another attempt to get DRC and status bar to share message content.
6 years ago
Jeff Young
a5b53a623d
Update status bar with clearance & rule sources.
6 years ago
Jeff Young
d3f017d825
DRC rules parser and engine.
Fixes https://gitlab.com/kicad/code/kicad/issues/2182
Fixes https://gitlab.com/kicad/code/kicad/issues/2116
Fixes https://gitlab.com/kicad/code/kicad/issues/1958
Fixes https://gitlab.com/kicad/code/kicad/issues/1965
6 years ago
Jeff Young
7305f407fc
Fix typo in user string.
6 years ago