Jeff Young
1fc4523711
Remove pad-size-setting hack from PCB_PAINTER.
...
Also improves the pad warning and error messages, and moves a few
remaining nags from the setting infrastructure to the warning
infrastructure.
Fixes https://gitlab.com/kicad/code/kicad/issues/6141
2020-12-27 21:11:27 +00:00
jean-pierre charras
a675f1f9c5
pcb_painter, draw pad clearance outlines: use the pad shape for non copper layers.
...
For copper layers, if the pad shape is not on the active layer, only the hole
shape clearance is shown (this is correct).
But for non copper layers using the hole shape clearance make no sense
(as long as showing the clearance makes sense for some layers).
2020-12-27 11:20:48 +01:00
Jeff Young
5fffde09d4
Improve SNR and formatting.
2020-12-24 10:36:29 +00:00
Jeff Young
ffe7d2ea49
Only draw group boxes when selected.
...
Also ignore footprint groups when in board editor.
Fixes https://gitlab.com/kicad/code/kicad/issues/6826
2020-12-23 21:43:32 +00:00
Jeff Young
2142ad20b1
Draw FPText umbilical lines in themeable colour.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/6664
2020-12-15 00:15:03 +00:00
jean-pierre charras
63088e8bdb
Pcbnew: fix incorrect size of solder paste rectangular area of rect pads.
...
When the solder paste margin was the same for X and Y directions, the margin
was not taken in account (missing code)
Fixes #6621
https://gitlab.com/kicad/code/kicad/issues/6621
2020-12-05 11:51:08 +01:00
Jeff Young
7b347d793b
Change gears on no-connect net generation. See bug rpt.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/6534
Fixes https://gitlab.com/kicad/code/kicad/issues/6615
2020-12-04 18:25:48 +00:00
Jeff Young
190197794d
Apply a similar fix as pads for B&W via printing.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/6496
2020-11-27 22:31:07 +00:00
Jeff Young
7a2a302117
Fix several issues with pad/hole colors when B&W printing.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/6496
2020-11-25 17:13:00 +00:00
Marek Roszko
16e3e59495
Split out arrayDim and MIRROR templates from macros.h
...
These were not macros
2020-11-17 20:21:04 -05:00
Jeff Young
7bd31d5237
Naming conventions.
2020-11-14 18:26:03 +00:00
Jeff Young
774a671b54
Fix footprint-relative coordinates when drawing polygons.
2020-11-14 14:15:02 +00:00
Jeff Young
ec020dd19f
First-class support for filled shapes.
2020-11-14 01:40:32 +00:00
Jeff Young
bdbb68f813
MODULE -> FOOTPRINT.
2020-11-13 16:04:03 +00:00
Jeff Young
3451ac3088
PCB_MODULE_T -> PCB_FOOTPRINT_T
2020-11-13 15:16:24 +00:00
Jeff Young
9106cc19bf
Yet another tranche of module -> footprint.
2020-11-13 15:16:24 +00:00
Jeff Young
f5443de7f9
D_PAD -> PAD.
2020-11-13 15:16:24 +00:00
Jeff Young
84dd5108ba
Remove some "class_" prefixes from files.
2020-11-13 15:16:23 +00:00
Jeff Young
f7333ad64a
Update some classnames including archaic zone names.
2020-11-12 10:31:25 +00:00
Jeff Young
7c60c2e404
Module -> footprint.
2020-11-07 18:50:30 +00:00
Jeff Young
317ae50d5f
More protection for array bounds access.
2020-11-05 00:22:15 +00:00
Jeff Young
70b87f8529
Fix missing parameter to colour fetching.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/6279
2020-11-04 13:29:49 +00:00
Jeff Young
4ff3b22118
Simpler active layer checking.
...
Also fixes an array index bounds issue.
2020-11-04 11:53:51 +00:00
Jeff Young
fb8ec84db0
Cleanup hole and netname layer processing for high-contrast mode.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/6237
2020-11-04 02:23:44 +00:00
Jeff Young
0f6a9b59a6
Re-implement via painting to coexist with appearances better.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/6237
2020-11-03 18:17:59 +00:00
Jeff Young
cd89951b64
Repair breakage from earlier Drill Mark fixes.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/6237
2020-11-02 23:27:54 +00:00
Jeff Young
58c006bc45
Register properties for ARC elements so we can get their netclass.
...
Also improves GAL arc drawing and polygonization.
Fixes https://gitlab.com/kicad/code/kicad/issues/6039
2020-10-23 14:27:36 +01:00
Jeff Young
883c9e14f3
Don't draw 0-clearance clearance lines.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/6108
2020-10-22 11:56:47 +01:00
Jeff Young
4233886a05
Repair drill mark printing.
...
1) Make sure that layer dependencies don't prevent us from drawing
drill marks.
2) Don't draw pad shapes when their particular layer isn't enabled
(a side effect from the above)
3) Allow the printout painter to set a different hole colour (the
special case for through-hole pads was handled twice anyway -- once
in LoadColors() and once in draw( D_PAD ).
4) Replace the call to getDrillSize() which handles swapping in the
small mark size if set.
Fixes https://gitlab.com/kicad/code/kicad/issues/4847
2020-10-19 23:58:07 +01:00
Jon Evans
4b436fa573
PcbNew: Improved DRC marker display
...
Add shadows and slightly reduce size
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5936
2020-10-15 22:39:13 -04:00
Marek Roszko
52a12c6ccd
Remove kicad_string.h from footprint_info.h
2020-10-15 18:39:43 -04:00
Jeff Young
bbe7573d1c
Performance enhancements to roundrect pads and clearance outlines.
...
Aka: avoid Clipper at all costs.
Fixes https://gitlab.com/kicad/code/kicad/issues/5900
2020-10-14 15:56:43 +01:00
jean-pierre charras
a7173e8ab0
Fix incorrect rendering of Vias when displaying the net name.
2020-10-13 17:35:54 +02:00
Jeff Young
1703729269
Require explicit decl of maxError and errorLocations.
...
This should reduce both performance issues and clearance issues.
2020-10-13 13:49:07 +01:00
Jon Evans
cb4ef5a619
Fix various rendering issues with non-through vias
...
Correctly hide netnames in high contrast mode
Correct highlighting for blind/buried/micro via drills
Repaint vias when needed to support stacked microvias
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2593
2020-10-12 22:47:31 -04:00
Jon Evans
f9cff177a2
Don't dim selected items in high contrast mode
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5259
2020-10-12 22:47:31 -04:00
Jeff Young
70c3c5c514
Retire the two-item version of BOARD_CONNECTED_ITEM::GetClearance().
2020-10-12 18:40:03 +01:00
Jeff Young
afe5d9ae05
Don't flip group name when flipping board view.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5915
2020-10-09 13:45:05 +01:00
Jeff Young
37906511f5
Class renaming.
...
DRAWSEGMENT -> PCB_SHAPE
EDGE_MODULE -> FP_SHAPE
TEXTE_PCB -> PCB_TEXT
TEXTE_MODULE -> FP_TEXT
2020-10-05 11:55:33 +01:00
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.
2020-10-04 16:49:04 +01:00
Jeff Young
bb753aaadf
Clean up terminology around active & high contrast layers.
2020-10-03 22:55:34 +01:00
Jeff Young
8eb8d967d7
Show correct clearance lines for pads & vias not flashed on cur layer.
2020-10-03 14:19:33 +01:00
Jon Evans
45d7f2b6f5
Expose via holes to color theme properly
2020-10-02 21:12:59 -04:00
Jeff Young
cc617b715f
Implement hypertext links for intersheet references.
2020-10-02 21:18:34 +01:00
Jeff Young
d3f8f2b81e
Remove confusion between pad->IsOnLayer and pad->IsPadOnLayer
2020-09-30 11:50:51 +01:00
Jeff Young
db1d3ea710
Update track, via and pad clearances for the current layer.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5797
2020-09-27 21:33:37 +01:00
Jeff Young
4c21668940
Use high-contrast layer to inform clearance rules for outline.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5797
2020-09-27 00:11:51 +01:00
Jeff Young
f0739315f6
Use title-bar-style for group names.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5769
2020-09-24 16:35:20 +01:00
Jeff Young
dba42ebed0
ADDED Properties Dialog for groups.
...
ADDED memberOf() function for DRC rule expressions.
Also fixes a bug in several of the pickers where the event wasn't
being correctly passed.
Fixes https://gitlab.com/kicad/code/kicad/issues/5647
2020-09-24 14:41:02 +01:00
Jeff Young
fb7f98b51d
Implement visual zone dumping and fix the default fill algo setting.
2020-09-23 01:14:35 +01:00
Seth Hillbrand
4a86daa86d
pcbnew: Restore missing pad size
...
After adjusting the pad size, we need to restore it when we
short-circuit the drawing routine
Fixes https://gitlab.com/kicad/code/kicad/issues/5702
2020-09-22 06:55:49 -07:00
jean-pierre charras
456735f803
VIEW::ViewGetLOD() returns double now instead of int.
...
ViewGetLOD() returns the minimal value of a zoom to show an item.
However a zoom is a double, and using int as minimal value does not
allows setting a correct value in some cases.
2020-09-21 17:55:24 +02:00
jean-pierre charras
2751c67746
Pcbnew, PCB_PAINTER: provides an option to show footprints bounding box.
...
This is only for bounding box debug purposes, and is not activated.
2020-09-20 16:30:23 +02:00
Seth Hillbrand
23f7ba6ee4
Ensure that we had a pad remaining before painting
...
Null polygons should not be send to the painter, so we need to check to
see if our mask has removed the complete pad before painting
Fixes https://gitlab.com/kicad/code/kicad/issues/5702
2020-09-18 22:33:24 -07:00
Jon Evans
e9b627bfd8
ADDED: Center marker dimension type
2020-09-16 20:55:11 -04:00
Jon Evans
75ffce1a0b
ADDED: Leader dimension object
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5555
2020-09-15 23:37:38 -04:00
Jon Evans
0347515cec
Support text expansion in dimensions
2020-09-12 10:23:19 -04:00
Jon Evans
76c4c959e6
Implement new dimension properties
...
- Automatic units mode (follow UI units)
- New text and number formatting options
- Automatic/manual text orientation control
- New text positioning options (inline and manual)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4280
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4497
2020-09-11 21:12:36 -04:00
Jon Evans
b11e315d10
Refactor DIMENSION to hide internal details; add some new properties
...
This is a board file format change to account for the new properties.
Also, we now only store the critical information about the dimension's
geometry in the board, rather than storing every drawn line.
The DIMENSION object is now an abstract base, and ALIGNED_DIMENSION
is the implementation that exists today (we will add more dimension
types in the future)
2020-09-11 21:12:36 -04:00
Jon Evans
147540b3bb
ADDED: Control to only show ratsnest for visible layers
2020-09-07 16:43:43 -04:00
Jon Evans
4433259c80
Fall back on copper color when net color is not found
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5540
2020-09-07 11:51:55 -04:00
qu1ck
636285311e
Make DRAWSEGMENT::GetRectCorners return vector
...
... instead of modifying the argument.
This will make the method usable in python API and will not incur
permormance penalty because named return value optimization (NRVO)
is a thing since C++11.
But even if copy is not elided vector is moved instead of copied.
https://en.cppreference.com/w/cpp/language/copy_elision
2020-09-07 05:33:10 +00:00
Jeff Young
8ffad4b375
Only override color if net or netclass color is set.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5368
2020-09-04 14:07:42 +01:00
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
2020-08-23 21:23:34 +01:00
Jon Evans
cffbc34f12
Fix some logic issues with net coloring
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5266
2020-08-19 18:42:46 -04:00
Jon Evans
d7b38d10c2
Use layer base color to create selection candidate color
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5072
2020-08-18 22:57:17 -04:00
Jon Evans
17066134f4
Fix brightness factor application for selected items
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5236
2020-08-18 20:55:41 -04:00
Jeff Young
8234e70e77
Remove unused footprint text front & back colours.
2020-08-17 23:55:31 +01:00
Jon Evans
0db00046d1
Fix rendering of net colors on items
2020-08-15 18:50:44 -04:00
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
2020-08-15 15:24:28 -04:00
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.
2020-08-12 22:20:08 +01:00
Qbort
b41892e4da
Rename class GROUP in pcbnew to PCB_GROUP
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5156
2020-08-12 15:36:08 +01:00
Joshua Redstone
ee428876ec
ADDED: Group/Ungroup function
...
This implements the group/ungroup functions to mark a set of EDA_ITEMs as a unit, allowing them to be moved and rotated as a unit
2020-08-11 19:37:07 +00:00
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
2020-08-10 03:27:26 +00:00
Fabien Corona
133d082cc5
Pcbnew fix arc edition
2020-08-09 23:03:31 +00:00
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
2020-08-07 21:49:36 +01:00
Jeff Young
77fd384da5
Don't allow 45deg rotation to bloat pad numbers/netnames.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5064
2020-08-04 17:54:05 +01:00
jean-pierre charras
87ebd34ea2
Optimize drawings for degenerated oval pads (in fact circle) and for round pad holes
2020-07-31 10:54:53 +02:00
Tomasz Wlostowski
89a953e039
Migrated GetEffectiveShape(s) to SHAPE_COMPOUND
2020-07-29 23:14:03 +02:00
Jon Evans
2ea42196ed
Ensure high contrast mode gets a proper default value
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4864
2020-07-12 11:34:58 -04:00
Jon Evans
5d118b0700
More visibility settings infrastructure
...
ADDED: Three-state high contrast mode action
ADDED: Save contrast mode in local settings
Also some initial infrastructure for layer presets
2020-07-11 21:59:07 -04:00
Jon Evans
d248736f08
Draw ratsnest with colors if color data is available
2020-07-10 21:37:53 -04:00
Jon Evans
72b08f2b18
ADDED: Hide ratsnest for specific nets
...
List of hidden nets stored in project local settings
Hide/Show actions in context menu only for now, will
add them to some more GUI places soon.
Ref https://gitlab.com/kicad/code/kicad/-/issues/1951
2020-07-10 21:06:17 -04:00
Jon Evans
afd432e687
Infrastructure for net hiding
...
LoadProjectSettings changed to take place after the board
has been loaded so that board-specific project settings can
be applied (such as net visibility and color overrides)
2020-07-08 21:59:34 -04:00
Jon Evans
961fbadd23
Initial infrastructure for net/netclass colors in board
2020-07-07 22:21:45 -04:00
Jeff Young
d85a707385
Move rest of DRC to SHAPE collision architecture.
2020-07-06 20:00:50 +01:00
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.
2020-06-29 12:48:55 +01:00
Jon Evans
0d4ee39f75
CHANGED: Copper zones can be on more than one layer
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1963
2020-06-28 08:52:37 -04:00
Jeff Young
32c3ea4edd
Flags cleanup.
...
Remove extraneous use of FLAG0 from tracks cleaner (it was checked but
never set).
Fix issue in expand connections where two parts of it couldn't agree
on the same flag (BUSY vs SKIP_STRUCT), and where the second part was
clearing the flag instead of setting it.
Remove obsolete HIGHLIGHT infrastructure (we now use selection).
Remove extraneous use of BUSY flag in several places (it was never
set).
2020-06-27 17:53:04 +01:00
Jeff Young
e376750f62
Flatten CS_PAD_PRIMITIVE out in favour of reusing DRAWSEGMENT.
...
(In prep for the eventual replacement of DRAWSEGMENT internals with
SHAPE.)
2020-06-24 12:22:42 +01:00
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).
2020-06-22 22:28:37 +01:00
jean-pierre charras
7240b3e4d3
PCB_PAINTER for D_PAD: for round and oval shapes, use native gal draw functions,
...
instead of convert shapes to polygons.
For small pad sizes (< 0.5mm) the polygonal shape is really ugly.
Moreover, circles and oblong shapes are native in gal and give a much better look.
2020-06-21 19:47:26 +02:00
Jeff Young
970921f88b
Support for filled DRAWSEGMENT::S_RECT and S_CIRCLE.
...
One more step in unifying pad primitives and draw segments.
2020-06-20 14:34:53 +01:00
Jeff Young
aeed8e6e2c
Finish implementation of DRAWSEGMENT::C_RECT.
...
It's currently only supported in the Footprint Editor. It could be
easily added to the board editor (all the code is there), but the board
editor is a little short on room in the drawing tools toolbar.
2020-06-15 20:51:31 +01:00
Jeff Young
d99febba6c
Treat sketch mode module items and board items the same.
2020-05-26 23:21:38 +01:00
Jon Evans
c7daf8a8f3
ADDED: Cross-probe highlighting of bus members
...
Note: this is a basic implementation but it could be
improved once we include bus information in the netlist
and pcbnew can natively keep track of buses and nets
instead of just nets.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4158
2020-05-24 13:30:23 -04:00
Jeff Young
03c47e210c
Apply blind/buried via drawing to microvias.
2020-05-11 22:56:09 +01:00
Jon Evans
366673d995
Don't try to draw a zone that has no outline
...
Fixes #4352
2020-05-07 17:44:55 -04:00
Jeff Young
dce42612d3
Fix via printing.
...
LAYER_VIAS needs to get set for them to print at all, and GetLOD
needs too look at the view layer visibiilties, not the board layer
visibilities.
Also implements a more pad-like strategy for printing blind/buried
vias when printing one layer per page (where the top/bottom arcs
don't make sense).
Fixes https://gitlab.com/kicad/code/kicad/issues/1938
2020-04-20 17:02:38 +01:00
Jeff Young
2b6089240a
Change super/subscript syntax to ^{foo} and _{foo}.
2020-04-18 21:04:41 +01:00