298 Commits

Author SHA1 Message Date
jean-pierre charras 03314bf354 Plot pads in sketch mode: fix incorrect shape of rotated rectangles
shape of rectangles (in sketch mode) are now plot as polygon like most of
other shapes

Fixes https://gitlab.com/kicad/code/kicad/-/issues/23142
2026-02-19 10:29:14 +01:00
Adam Wysocki 15a12b5392 CLI: Enable plotPadNumbers when sketching pads on fab layers 2026-02-08 20:45:26 +00:00
Wayne Stambaugh 8bc56cd501 Defensive programming measures.
Recent issue conversations are suggesting that it's no possible for
footprints to contain null fields.  Rather than blindly dereferencing
field pointers in loops, check to make sure the field pointer is not
null before dereferencing.
2026-01-14 10:39:14 -05:00
Seth Hillbrand 6bad3c58e1 Added: PCB Variant support
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2131
2026-01-05 17:47:39 -08:00
Jeff Young e6b6200de2 Improve SHAPE_LINE_CHAIN arc plotting.
It still doesn't get it quite right as it restarts
the lineStyle pattern at each segment/arc transition.
2025-10-23 17:43:30 +01:00
Jeff Young 507b22bbaf Fill in more missing barcode code. 2025-10-02 21:52:43 +01:00
Jeff Young 2abefabd2e Formatting. 2025-09-30 11:40:38 +01:00
Jeff Young 31a778f600 Only plot white drill marks if we find something to knock them out of.
In particular, a NTPH pad with a hole larger than
the pad should have drill marks drawn in black.
2025-09-30 11:34:08 +01:00
jean-pierre charras b113ec1543 Allow plotters to plot PCB_BARCODE items. 2025-09-27 19:01:14 +02:00
Seth Hillbrand 1a3f6028f8 Fix missed last points
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21596
2025-08-30 08:33:46 -07:00
Seth Hillbrand 8acf5c1a25 ADDED: Rounded Rectangles
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4742
2025-08-29 17:37:30 -07:00
jean-pierre charras da92279436 Pcbnew: add pad fabrication property Press-Fit
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21457
2025-08-11 15:59:19 +02:00
Jeff Young e230d5164d Honour renderSettings' default font.
This still leaves a few things out in the cold,
such as hit-testing and polygon generation.
But at least it allows us to plot with a default
font.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19031
2025-07-17 09:35:21 +01:00
Jeff Young dc96b99e22 Quiet assert. (KICAD-QZJ) 2025-07-04 16:19:42 -06:00
Jeff Young 044ac6e8e5 Prefer board's errorMax to a constant. 2025-06-27 22:59:12 -06:00
Jeff Young 5e6ef67fce Plot drill marks on mask layers if the pad exists there.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20859
2025-05-10 19:07:13 +01:00
Jeff Young 34139ae305 Push generalised sketch-mode support down into DXF_PLOTTER. 2025-05-10 17:31:59 +01:00
Jeff Young 88695af364 Move sketched DNP items to plot_brditems_plotter.cpp. 2025-05-10 17:31:59 +01:00
Jeff Young c78ce373fd Move pad-outline plotting to plot_brditems_plotter.cpp. 2025-05-10 17:31:59 +01:00
Jeff Young c452fe9686 REMOVED: HPGL plotting.
Its sketch-mode greatly complicates the plotting
code and it is poorly maintained due to lack of
use.
2025-05-10 17:31:59 +01:00
Jeff Young d384790d47 Don't use line styles for solder masks on shapes in 3D viewer.
Also convert hatched fills to solid for solder masks.

Also give track solder masks their specified
expansion when exporting to STEP.

Also implement solder masks for shapes when
exporting to STEP.
2025-04-28 21:46:10 +01:00
Jeff Young 2e556d0abc Plot tables in footprints. 2025-04-03 14:38:14 +01:00
Jeff Young 151cb01795 Mirror pad numbers when appropriate.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20459
2025-03-27 23:28:30 +00:00
Jeff Young 824c7ecfa7 Improve readability.
Also drops a parameter that hasn't been implemented
since early 2022.
2025-03-19 08:55:32 +00:00
Jeff Young 93ea523eec De-duplicate table border drawing code.
Also cleans up a misconception about table header borders,
and renames the getter/setter to be clearer.

Also makes sure that table cells are updated when the table
layer changes.

And another bug where we were writing the grey color value
back to the cell for hidden cells.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20319
2025-03-13 13:15:47 +00:00
Jeff Young b569d919ea No more invisible (non-field) text. 2025-03-10 21:58:30 +00:00
jean-pierre charras 9d1b320896 Fix compil warnings 2025-03-08 09:40:23 +01:00
Damjan b419058df3 pcbnew: Plotting tables with non-90 degree rotation angles is not working 2025-03-04 12:08:18 +00:00
jean-pierre charras 75bed91789 BRDITEMS_PLOTTER::PlotFootprintTextItems(): fix a typo about Value layer.
The typo was using the reference layer to plot the value field

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20144
2025-02-28 09:42:07 +01:00
Jeff Young 3f15b0d75b ADDED: hatched fills for shapes. 2025-02-24 11:08:29 +00:00
Jeff Young 675624b926 ADDED: Knockout text boxes. 2025-02-24 11:08:29 +00:00
jean-pierre charras a9fb475cf2 PCB_TABLE: fix incorrect plot of tables rotated +-90 (missing segments).
This change was missing in commit 276029ee

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19985
2025-02-21 09:47:45 +01:00
Jeff Young 4fa02690f8 REMOVED force-plot-invisible-items.
It's dangerous as the router and DRC will have been
run without regard to invisible items.

(See #19420.)
2025-02-19 23:43:53 +00:00
jean-pierre charras 276029ee03 SCH_TABLE and PCB_TABLE: fix incorrect plot of tables rotated 90 or -90 deg.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19985
2025-02-18 17:56:19 +01: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 dfe0d6345b Another go at supressing FOOTPRINT field on FOOTPRINT objects 2024-12-28 21:57:35 +00:00
Jeff Young 3d9784ded3 Plot from render cache if fonts aren't embedded.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18672
2024-12-24 20:07:06 +00: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
jean-pierre charras 10cd4582f2 Pcbnew, plot: plot table only on the right layer.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19272
2024-12-09 15:59:55 +01: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
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
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
Seth Hillbrand 69849ba3ca Replace custom Clamp with std::clamp
Fixes bug in parser that had the elements in the wrong order due to our
custom version not matching the standard order
2024-07-25 19:17:17 +02: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
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 0ff59bc60e We can only knockout a pad if we're plotting the pad shape.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17166
2024-05-20 19:48:06 +01:00
Jon Evans c800fb790d Start unifying padstack properties 2024-05-14 20:57:56 -04:00
Seth Hillbrand a835ba0715 Add "Mechanical" pad property
Prevents mechanical support pads from being used to check pad types.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16747
2024-05-05 21:57:10 +00:00