80 Commits

Author SHA1 Message Date
Mike Williams 5147b7fb40 sch groups: don't default to layer wire
This causes them to be picked up by selections requesting wires, etc.
2025-10-30 12:43:56 -04:00
Seth Hillbrand 1a7c6d0bdc Make collision markers themeable
Adds configuration for line thickness and color.  Also ensures
overwritten lines don't obscure net values and prevent marker listing
2025-10-11 15:44:54 -07:00
Seth Hillbrand 43e327b688 Resolve discrepancy between constraint and disallow
Vias are referred to by their type without combining (e.g. blind/buried)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13783
2025-09-26 11:41:17 -07:00
Jeff Young ac775e716f Simplify annotation graphics for DRC markers.
Also includes some performance tweaks, mostly around
not copying large structures.
2025-09-19 20:06:39 +01:00
John Beard e016dc52fd Pcbnew: Add concept of a 'point'
This is a zero-dimensional object that can be used for snapping
and documentation of useful, but non-physical features on a
board or footprint. They do not correspond to any physical
output in exports or plots.

Points do have a "size", but this is a graphical property only
and determines how large they are drawn on the board.

They also have a layer, which allows them to be selected and
made visible according to layer filters.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/4691
2025-09-01 23:44:21 +08:00
John Beard e82d19eeb7 Pcbnew 3D: Add a toggle for plated barrel visibility
This can be useful when checking 3D models and/or generating
images of components in place on board, or if a dense via field is
in the way when looking at something on an inner layer.
2025-08-07 00:55:48 +08:00
jean-pierre charras 5d8c8b9c54 pcbnew, appearance control: add entry to enable/disable LAYER_BOARD_OUTLINE_AREA 2025-06-19 18:42:03 +02:00
jean-pierre charras 01e67d78d6 board area fixes (jpc) 2025-06-19 18:26:39 +02:00
jean-pierre charras ea12df80be make board area colored (from Ethan Chien) 2025-06-19 18:26:39 +02:00
Damjan 2c92f95a1c 3d-viewer: Navigation gizmo for 3D viewer
ADDED: Blender-like navigational gizmo - new feature

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16956
2025-06-09 10:29:34 -07:00
Jeff Young ecb5c5e0d4 Visibility control is for *filled* shapes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20635
2025-04-13 13:12:43 +01:00
Jeff Young 6307f0aee8 Use board layer names when available.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20360
2025-03-17 21:23:56 +00:00
Jeff Young f33f10bb38 User-defined layers for 3D viewer. 2025-03-15 16:14:33 +00:00
Ian McInerney 59a4cc2e4b Default to 4 user defined layers 2025-02-02 23:09:08 +00:00
Seth Hillbrand 6c2a559cbe Set base user layer count
Default colors cycle through repetition for unknown layers.  Allows
importing from complex Altium/CADSTAR boards with more than 10
documentation layers
2025-01-28 12:22:39 -08:00
Wayne Stambaugh af540bbb9a Header folder housekeeping. 2025-01-09 07:44:11 -05:00
Wayne Stambaugh f74d97d2e1 Revert "Header folder housekeeping."
This reverts commit d1898aab47.
2025-01-08 12:27:15 -05:00
Wayne Stambaugh d1898aab47 Header folder housekeeping. 2025-01-08 11:38:44 -05:00
Seth Hillbrand 0b2d4d4879 Revise Copyright statement to align with TLF
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo.  Avoids needing to
repeatly update.

Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
JamesJCode 96082a63a8 Add a new GAL layer for shape backgrounds
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12393
2025-01-01 19:46:33 +00:00
John Beard f7aded00c7 Pcbnew: draw clearance lines on their own GAL layers
This tidies up quite a performance hit on layer change
caused by repainting vias, pads and tracks for their
clearances.

Instead, on a layer change, just disable any old clearance
layer and enable the new one (if any).

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/19404
2024-12-31 00:53:10 +08:00
Jon Evans 4eb68c2840 Fix pad and via opacity handling
With new rendering style, these need unique VIEW layers per copper layer
2024-12-28 10:50:58 -05:00
Jon Evans 78f83b5a39 Update PTH/Via rendering
- Add separate hole wall and net name color for vias
- Overemphasize hole wall thickness to make objects more visible
2024-12-28 10:02:11 -05:00
Jan Wichmann 8d015b2967 pcbnew: Respect options when STEP exporting graphical and text items
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19116
2024-12-10 13:54:47 +00:00
Jon Evans 38c00c5d58 Fix off-by-one in IsCopperLayer
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19211
2024-12-02 15:40:45 -05:00
John Beard ed9e66399e Pcbnew: negative layers are not copper layers, even or not
UNDEFINED_LAYER is -2, so simple checking evenness isn't
enough to check if it's copper or not. Notciable when the
FABMASTER import puts things on UNDEFINED_LAYER while it's
processing items.
2024-11-28 04:36:12 +08:00
Jon Evans bc45f1b352 REMOVED: separate color for via net names
Vias can now use track net name color
2024-11-16 11:27:20 -05:00
Jon Evans 71a0a638a0 Remove unused pad layers and simplify pad colors 2024-11-16 11:27:20 -05:00
Jon Evans 4dbe295e80 Migrate legacy layer presets to V9
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18718
2024-11-16 09:27:31 -05:00
Fabien Corona 28dd61babb Restore GAL layer order 2024-10-23 18:41:20 +02:00
Fabien Corona 07a0c980f3 DRC : Show paths for clearance and creepage 2024-10-21 15:56:12 +00:00
Andrzej.W b49ebaeb16 ADDED: Soldermask layer option for graphic shapes
Allows adding a soldermask opening for shapes on a copper layer.
Soldermask expansion can also be specified.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/2125
2024-10-10 12:46:06 +00:00
Andrzej Wolski 537d3ac81a ADDED: Soldermask layer option for tracks
Allows adding a soldermask opening for individual tracks.
Soldermask expansion can also be specified.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/2125
2024-10-08 02:48:33 +00:00
Jon Evans 468ebc3174 CHANGED: Render vias using copper layer colors
Update microvia and blind/buried via rendering to remove
dedicated layer colors and only use copper layer colors
2024-10-01 19:55:05 -04: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
Mike Williams 867cb58175 feature removal: remove Show Hidden Text
Does not work properly since 8.0 introduction of footprint fields.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18656
2024-09-19 15:41:44 -04:00
Alex Shvartzkop 05b4aace38 Fix an issue causing "zbot < ztop" assert in 3D viewer on multilayer boards. 2024-09-19 10:07:32 +05:00
Seth Hillbrand 5e0abadb23 Reorganize layer numbering
F_Cu = 0
B_Cu = 2
Remaining internal copper layers are even and incrementing

Non-copper layers are odd and incrementing.

This means that we can no longer do things like:
for( PCB_LAYER_ID layer = F_Cu; layer <= B_Cu; ++layer)
Instead, we have the class LAYER_RANGE:
for( PCB_LAYER_ID layer : LAYER_RANGE( F_Cu, B_Cu) )

Similarly, gt/lt tests should not refer to the integer value of the
layer.  We have functions such as IsCopperLayer to test whether a layer
is copper or not.

When using the connectivity RTree, the third dimension is layer, so we
provide B_Cu with the special INT_MAX value, ensuring that elements
between F_Cu and B_Cu will be identified.  There is a new, special
function GetBoardLayer() for interfacing with CN_ITEMS

Similarly, PNS layers remain unchanged and sequential.  A set of
interface functions is provided to map PNS layers to Board layers and
back.  This allows the PNS_LAYER_RANGE to function as expected
2024-09-06 23:07:58 +00:00
JamesJCode 6371b15aa4 Implement highlighting style for netclass colors 2024-08-12 21:39:07 +01: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
Seth Hillbrand 293075426b Clean up some LSEQ functions
We are derived from std::vector now.  We don't need our own prima donna
increment and dereference overload as these just create bloat and
non-standard coding practices
2024-07-08 20:59:46 -07:00
Jon Evans c70ef36739 ADDED: Opacity control for filled graphic shapes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18253
2024-06-26 22:29:58 -04:00
Jeff Young 694a7db457 Performance improvements.
Don't construct a wxString or a LSEQ when you don't
have to.  They're both more expensive than you might
think.
2024-06-12 11:06:10 +01:00
Jeff Young ec0fdfffff ADDED: markers for excluded-from-sim items.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15382
2024-06-03 17:12:15 +01:00
James J be8744176c Add SCH_RULE_AREA shapes to eeschema
Includes:
 - Fix GAL to draw closed polygons in eeschema
 - Add functionality to eeschema to draw arbitary polygons
 - Update polygon item previews to have customisable edge colour
 - Add new SCH_RULE_AREA class, derived from a poly SCH_SHAPE
 - Add SCH_RULE_AREA to paint and plot methods
 - Add new rule area color preference to themes
2024-04-25 14:24:46 +00:00
Marek Roszko 5e3396561d Fix some layer id enum colliding warnings
C++20 under MSVC does not like seeing enum values between two enums getting operated on.
static cast to int fixes it for what we are trying to do anyway
2024-04-12 21:55:19 -04:00
Jon Evans f613cd1cb4 ADDED: A new IPC API based on protobuf and nng
Details, documentation, and language bindings are works in
progress and will be evolving over the course of KiCad 9
development.
2024-04-02 19:34:36 -04:00
Jon Evans 1c895fe18c Improve rendering of tuning status popup
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16304

Add dedicated UI rendering layers

Switch to screen-space rendering to avoid blurriness

Fix a bug in OpenGL GAL that causes layer
ordering to be broken when using Scale

Fix some issues with VIEW_GROUP layer ordering
2023-12-19 22:38:21 -05:00
Wayne Stambaugh eb3fd10af8 Fix obscured object selection issue in board and footprint editors.
This selection improvement feature is hidden behind the advanced
configuration key "PcbSelectionVisibilityRatio".  It is turned off (1.0)
by default.  Value values are from 0.0 to less that 1.0.  From testing,
using a value between 0.1 and 0.3 produces the best results.

This fix uses normal alpha blending described in the link below.  The
current design only uses the alpha of the object's color.  It could be
improved by doing a full color alpha blending but using the color alpha
alone seems to result in satisfactory results.

https://en.wikipedia.org/wiki/Alpha_compositing

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16126
2023-12-17 16:43:56 -05:00
Wayne Stambaugh 5fa274ead0 Add board layer view stack up sequence from front layer to back layer.
The old bottom to top layer stack up sequence from back to front layer was
only used for plotting so it was renamed appropriately.  This will be used
for future board object select disambiguation improvements.
2023-12-11 15:07:58 -05:00