283 Commits

Author SHA1 Message Date
Jeff Young
b44261c2bd Handle clipping silk to mask when there is more than one layer. 2025-02-19 23:43:53 +00:00
Jeff Young
4959b480c3 Cleanup stale comments. 2025-02-19 23:43:53 +00:00
Jeff Young
5edae8250d Finish eradication of visibility flag on text items.
Import/read previously-hidden symbol/footprint
text items as hidden fields.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19875
2025-02-19 23:43:52 +00:00
Seth Hillbrand
7911165294 Prevent overplotting copper layers
68fa45dea0115ae23a8650eb6f6ce05448a2d42e wanted to ensure that drill
marks were visible even when plotting non-copper layers.  However, this
had the effect of changing the plot order depending on whether drill
marks were shown or not.  The current solution is to overplot drill
marks if both copper and non-copper layers are shown.

This remains a sub-optimal solution as buried vias will be overplotted
along with through holes.  It may be a better long-term solution to gate
the plotting of covering pad layers' drill marks to the plot options
that include copper layers on the same page
2025-02-11 11:01:20 -08:00
Jon Evans
3364bd0a8b Plotter: Don't restrict via width query to copper layers
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19458
2025-01-01 18:11:27 -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
Marek Roszko
17a1706257 ADDED: "Single document" PDF plot option for PCB plots 2024-12-30 23:51:42 -05:00
JamesJCode
dfe0d6345b Another go at supressing FOOTPRINT field on FOOTPRINT objects 2024-12-28 21:57:35 +00:00
jean-pierre charras
e848373307 Pcbnew: Fix vias not plotted by some plotters.
It was due to the fact via colors are no longer managed.
2024-12-24 12:40:38 +01:00
Seth Hillbrand
e9bc8cfe9d Give Clipper1 a Viking funeral
Clears out the last spot where we were only using Clipper1 (how'd I
miss that?) and remove all calls to the Clipper1 structures
2024-12-23 17:12:09 -08:00
Jon Evans
9b1b318736 REMOVED: Footprint field from footprints
This field was redundant (was generally set to the footprint's LIB_ID)
but also buggy (not guaranteed to contain the footprint's LIB_ID)
and confusing (not a way to change the footprint's LIB_ID).
2024-12-01 15:50:40 -05:00
Jon Evans
7e1638ed11 Support via stacks in plotter 2024-11-04 22:27:50 -05:00
Seth Hillbrand
3f36d7f1dd Avoid negative pad sizes in plot
Clearance can be negative but setting the pad size to negative leads to
invalid output in plotting

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18996
2024-10-29 15:32:18 -07:00
Wayne Stambaugh
43c3cd57eb Substitute variables in PDF plotter URI links and add file:// URI handler.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14250
2024-10-24 08:06:28 -04: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
2a605e4a4e Infrastructure and file format for via stacks 2024-10-06 18:45:25 -04:00
Jon Evans
752371833b Support custom padstacks in plotter 2024-10-02 18:07:09 -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
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
Jeff Young
01332a2cb5 ADDED: plotting options for DNP footprints
Also removes the plot-fp-refs, plot-fp-values and
plot fp-text overrides from the GUI, but leaves
them as job arguments.

(Note that the job arguments also separate out
sketching DNP graphics and plotting the 'X', which
the GUI does not.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18056
2024-08-18 10:02:14 -06:00
Jeff Young
b8819b4636 Another reduction in asserts. 2024-07-19 22:11:56 +01:00
Seth Hillbrand
e0453d9bcc Further cleanup of LSET
Remove duplicative functions.  Standardize on C++ stdlib formatting
2024-07-08 22:00:53 -07: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
Seth Hillbrand
64c36e8bda Fix via layer test for DXF plotting
Vias might have their primary layer set to a single layer but cross
multiple layers that should be included when plotting

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18282
2024-06-27 09:59:37 -07:00
Jeff Young
dc8fd0996d Don't attempt to plot rule areas.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18133
2024-06-01 19:17:05 +01:00
jean-pierre charras
68fa45dea0 Pcbnew, plot drill marks: fix incorrect plot drill mark in some cases.
If a non copper layers is added to a copper layer for plot with drill marks,
the drill mark was not visible (covered by shapes plotted from non copper layer).

Now copper layers are plotted after the non copper layers.
2024-05-28 09:52:30 +02:00
Jeff Young
b88d3b13ac ADDED: sketch-pads-on-fab-layers to CLI PDF & SVG export.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18091
2024-05-27 20:59:11 +01:00
Jeff Young
826b72c499 Don't suppress hole plotting for utility layers.
Also simplifies the handling of DXF outline plotting.

Also removes some comments which were no longer accurate.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17166
2024-05-20 19:48:06 +01:00
Jeff Young
3e0c598500 Honour LAYER, SHEETNAME and SHEETPATH variable overrides on CLI.
Also allows the LAYER variable to work automatically
if you're plotting/exporting a single layer.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17680
2024-05-13 20:04:00 +01:00
Jeff Young
8184ed64e7 Explicit control over hidden text in bounding boxes.
In particular, don't consider hidden text when plotting,
and only when AsItemCheckboxes is checked for printing.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17958
2024-05-06 21:36:19 +01:00
jean-pierre charras
af8d80d91f Plot pads: Do not use pad offset twice when plotting chamfered rect pads
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17793
2024-04-18 12:53:38 +02:00
jean-pierre charras
821063e5b1 Pcbnew, pdf plotter: fixes and enhancements.
* To select a footprint info, Use the bbox with not text as selectable area
* Fix also incorrect position of footprint bbox when plotting with offset

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17355
2024-03-10 13:04:39 +01:00
jean-pierre charras
f6cf78fd7c plot_board_layers.cpp: when plotting pads, Save/restore corner radius ratio
instead of corner radius.
The corner radius comes from corner radius ratio, so saving/restoring the corner
radius can create rounding errors when trying to recalculate the ratio from the radius.
2024-03-03 11:56:41 +01:00
Ian McInerney
d3befd8bb8 Remove dummy items from group before they are deleted
Board items should not be in a group when they are deleted, but these
are dummy ones, so their group membership doesn't matter.

Fixes KICAD-7P0
Fixes KICAD-6VX
Fixes KICAD-7KK
Fixes KICAD-6VH
2024-02-16 12:20:00 +00:00
Jeff Young
27534074ac Fix errors resulting from FP fields being moved from m_drawings to m_fields. 2024-01-28 11:13:48 +00: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
jean-pierre charras
b17ca50472 Gerber export: fix incorrect shape of round rect pads on paste layers in some cases.
They can be plotted as rect shape depending on margin value.
Fixes #16257
https://gitlab.com/kicad/code/kicad/-/issues/16257
2023-12-04 12:46:39 +01:00
Alex Shvartzkop
d7863b09c5 Move CORNER_STRATEGY out of SHAPE_POLY_SET. 2023-10-06 15:42:50 +03:00
Marek Roszko
a347aa7647 StartPlot can fail and leave a broken file handle
Related https://gitlab.com/kicad/code/kicad/-/issues/15782
2023-09-29 19:52:21 -04:00
Jon Evans
077159ac13 Plotting: use theme color for worksheets 2023-09-28 16:58:02 -04:00
jean-pierre charras
2c10d5e3a0 Pcbnew: fix some issues with very small arcs (size a few internal units)
these very small arcs do not allow to calculate a reliable center position,
and therefore a reliable radius.
So seeing them as a very small segment fix plotting/drawing issues.
Fixes #15639
https://gitlab.com/kicad/code/kicad/-/issues/15639
2023-09-13 17:54:57 +02:00
Alex Shvartzkop
10e2e4a12d Another try at fixing arcs.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15471
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15469
2023-08-22 16:10:58 +03:00
Jeff Young
686704bb31 ADDED: plot control over FP text.
(Also adds said control to "Follow Plot Settings" in 3D viewer.)
2023-08-15 16:56:46 +01:00
Jeff Young
f43b90b15f Lazy context handling for SVG plotting.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15325
2023-08-07 14:01:58 +01:00
jean-pierre charras
9a336eeb87 Pcbnew: Plot tented/not tented vias: fox some issues:
Fix mistake in 2 accessors
Fix a checkbox name that was the opposite of its purpose
Add tool-tips ans comments.
Fixes #15352
https://gitlab.com/kicad/code/kicad/-/issues/15352
2023-08-04 18:29:06 +02:00
jean-pierre charras
33e489c4a8 Pcbnew, PlotInteractiveLayer(): do not print useless info in a PDF plot.
It makes this ifo more easily readable.
- Remove duplicate properties
- Do not plot empty properties
- do not plot lib descr and keywords, useless in a pdf plot.
2023-07-04 20:02:28 +02:00
Alex Shvartzkop
b09ab2daab Don't duplicate footprint bookmarks when plotting multiple PCB layers. 2023-07-04 08:08:52 +03:00
Jeff Young
493828cc6b Eradicate a bunch of calls to dyn_cast.
Also deletes PAD::GetParent() which fails to look for parent footprint
through groups.
2023-06-25 11:10:07 +01:00