Commit Graph

337 Commits

Author SHA1 Message Date
Seth Hillbrand 49d8fc900f Map a full hierarchy during PDF plotting
Re-create the schematic hierarchy in PDF plots to ease navigation
relative to the on screen schematic

Fixes https://gitlab.com/kicad/code/kicad/-/issues/12154

(cherry picked from commit 4a3b33df4e)
2025-03-14 16:51:18 -07:00
jean-pierre charras 2504195e6e Fix a collision with a Windows define and our use of the same var name.
We use IN for INCH as units, but IN is defined in a Windows header

(cherry picked from commit b0fe4df3c5)
(cherry picked from commit 0acdabd1eb)
(cherry picked from commit eaa1e6d594)
2025-03-02 16:13:11 +01:00
Jeff Young 203ddb7b47 Code brevity.
(cherry picked from commit f951497a4f)
2025-03-01 22:23:30 +00:00
Jeff Young a9ddcf4287 Fix positions of popup menus when plotting in mirrored mode.
[Resolve conflicts with JP's fix to same.  I'm not sure if we support !m_mirrorIsHorizontal, but
it was in other code, so I left it in just to be
safe....]

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19717
2025-01-23 10:55:11 +00:00
jean-pierre charras e9269e59f7 Pcbnew, PDF plot: fix property popup locations when plotting mirrored.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19717
2025-01-23 09:48:08 +01:00
Wayne Stambaugh f161d94521 Common folder housekeeping part 2. 2025-01-14 15:25:05 -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
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
Wayne Stambaugh 930407fac8 Fix PDF plotter URI issues.
Add 'file:' URI JavaScript handlers.

Properly convert Windows file paths to valid URI syntax.

Use expanded variables for URI menu names.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14250
2024-11-04 20:05:42 -05:00
Seth Hillbrand 88df35654e Prevent attempt at plotting invalid sheets
If the number does not exist in the schematic, don't attempt plotting

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19039
2024-11-01 10:55:54 -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
Dhinesh 8851cd77ab Fix missing text and graphics in PDFs generated by "Plot to PDF"
The "Plot to PDF" function was producing PDF files that lacked text and
graphic items in viewers like Adobe and Foxit. This issue was caused by
the use of the %g format specifier for floating-point numbers defined in
the PDF specification when writing text and drawing shapes in the PDF.
This incorrect format led to a "Too Few Operands" error during rendering.
To resolve this issue, all floating-point numbers must be specified in
fixed-point format according to the PDF specification wherever the issue
was generated.

Fixes #16465
2024-10-11 18:55:46 +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
Seth Hillbrand 6c9980fca0 Leave full path in WS Editor draw list
Truncating the path leads to differences between viewing ${FILEPATH} and
printing/plotting ${FILEPATH}.  The variable does not appear to be used
elsewhere
2024-09-04 12:58:01 -07:00
Jeff Young b8819b4636 Another reduction in asserts. 2024-07-19 22:11:56 +01:00
Seth Hillbrand bf68b11ff9 Cleanup unused vars 2024-06-18 21:35:32 -07:00
Seth Hillbrand bcf6b620a8 Large rework of BEZIER_POLY
Add direct handling of quadratic beziers to save compute time and number
of points.  Update cubic interpolation to reduce number of points
generated for a given smoothness

Cache data on open and used cached data to avoid multiple re-calcs

Remove minimum line length and number of segments and replace with
standard max error level.  Allows us to specify the tolerance of bezier
interpolation
2024-06-18 17:55:41 -07:00
Jon Evans 02502342a5 Try harder to keep searchable text hidden in SVG exports 2024-06-18 12:01:15 -04:00
Seth Hillbrand a9ae86eefd Cleanup geometry functions
Added Distance(VECTOR2) function that returns a double.  Removed
superfluous EuclideanNorm, GetLineLength, integer constructor for
EDA_ANGLE (this promotes to double in the CTOR), DistanceLinePoint and
HitTestPoints

Also extended the size for arc calculations that get distances to center
points to avoid overflow
2024-05-31 12:26:37 -07:00
Jeff Young 51004e42f4 Improve comments. 2024-05-28 15:37:11 +01:00
Jeff Young e9a1c3032d Update commenting following a bit of research into commit history. 2024-05-27 12:23:56 +01:00
Jeff Young 233ebb3e09 Add commenting regarding double-output of text.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18090
2024-05-27 12:14:08 +01:00
Alex Shvartzkop 16e3692e71 Build time optimizations. 2024-04-27 23:49:13 +03:00
Jeff Young c59ed0bbb7 Flip symbol editor's Y axis to match other editors. 2024-04-27 13:47:56 +01:00
Marek Roszko 24a790a7dc Don't compare against the wrong type
Technically this is still wrong because of doubles..
2024-04-12 19:53:26 -04:00
Alex Shvartzkop b905b4eac8 Improve moving, rendering and plotting of very small angle arcs.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17110
2024-04-03 00:40:18 +03:00
Jeff Young f22f5f47cb Reset penWidth before stroking.
(PlotPoly will have set it to "1".)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17218
2024-03-14 17:40:04 +00:00
Jeff Young e30b6398b7 ADDED: optional PDF metadata from AUTHOR and SUBJECT variables.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17289
2024-03-14 17:40:04 +00:00
Alex Shvartzkop 4d66a8ebdb Fix rendering/plotting of arcs with tiny angle and huge radius.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17343
2024-03-09 02:07:24 +03:00
jean-pierre charras f086038684 GERBER_PLOTTER, round-rect aperture: ensure primitives have non null size.
for round-rect pads with a radius = 50% of the smaller dim, one of primitives
used to create the shape can have a 0 size.
Ensure a min size >= 10 nm (It should not create a actual change)
2024-02-28 17:31:10 +01:00
Jeff Young e7abeb3c38 Cleanup. 2024-02-24 20:05:51 +00:00
Alex Shvartzkop 82a0227c20 Don't plot polygon borders when they are disabled. 2024-01-15 22:35:35 +03:00
jean-pierre charras 3626a9e4cc SVG_PLOTTER: Update brush color also when the alpha value has changed.
Previously, the alpha value change was not tested, so the SVG style was
not always updated.
Fixes #16530
https://gitlab.com/kicad/code/kicad/-/issues/16530
2024-01-06 09:11:40 +01:00
Alex Shvartzkop 9c2c291255 Gerber plotter: work around CAM350 circle bug. 2023-12-05 15:33:55 +03:00
jean-pierre charras 0b1cb0e19d Gerber plotter: do not skip not filled polygons with a 0 line thickness.
It is legal in Gerber files, although lines with thickness = 0 are not
displayed by some viewers.
2023-12-04 17:49:01 +01:00
Jeff Young df83e24eb7 Cleanup.
It's been a long time since line style was specific to plotting.
2023-11-25 13:12:45 +00:00
Alex Shvartzkop dc9df9517d PDF plot: match mirror state between hidden and plotted text.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16066

(cherry-picked from commit 31e79ef54f)
2023-11-12 01:28:03 +03:00
Wayne Stambaugh 50ec069a01 Fix build warnings. 2023-10-12 10:10:09 -04:00
Alex Shvartzkop b0f4adf052 Improve borderless items logic in schematic plotting. 2023-10-12 08:40:37 +03:00
Alex Shvartzkop d9c123b1ec HPGL plotting: write rects as polygons to prevent always filling. 2023-10-12 06:11:12 +03:00
Alex Shvartzkop 45791ff8d6 HPGL plotting: fix random lines connecting to circles. 2023-10-12 06:11:12 +03:00
Alex Shvartzkop 4c0a75cbd4 Fix an assert in HPGL plotter. 2023-10-12 06:11:11 +03:00
Alex Shvartzkop 3e82e59c24 DXF plotting: write zero-sized rects and circles as points.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15862
2023-10-12 06:11:11 +03:00
Alex Shvartzkop 843bd4f79c PDF plotting: fix zero-sized or too thick rectangles.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15862
2023-10-12 06:11:11 +03:00
jean-pierre charras 37df47a3e7 genDrillMapFile: reduce the pen width used to plot oval shapes (better look) 2023-10-04 15:47:47 +02:00
jean-pierre charras 23e064aaaf fix buf in PLOTTER::sketchOval()
(incorrect parameters to plot arcs).
Fixes #15816
https://gitlab.com/kicad/code/kicad/-/issues/15816
2023-10-03 19:39:21 +02: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
Jeff Young c7e865e4a2 Safety for negative pen widths. 2023-09-14 13:39:35 +01:00
Marek Roszko 11de95778b Unwrap the FROM_UTF8 macro in favor of direct function
The extern just gets annoying to try to export the func later. We also yeet TO_UTF8 to string_utils.h for parity.
2023-09-09 00:10:57 -04:00
Marek Roszko 96bec8c553 promote base64.cpp to core 2023-09-06 23:27:08 -04:00