126 Commits

Author SHA1 Message Date
Jeff Young
3bc4cbc596 Performance tweaks. 2025-06-14 20:25:59 +01:00
Jeff Young
5ed332771c Don't overwrite return value. 2025-06-14 20:25:59 +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
jean-pierre charras
4091eda7dc Gerbview: minor fix: Show a warning if the deprecated %IPNEG% is found in file.
%IPNEG% is deprecated since 2012 and ignored by Gerbview. However it is better
to warn the user this command is found and ignored.
2024-08-03 18:19:58 +02:00
jean-pierre charras
72ce955066 Gerbview: fix some issues related to comments and primitives in macros:
- comments on more than one line were not fully skipped, creating read errors
- in macros, some primitives (not all) were incorrectly rotated: they must be
rotated around the aperture macro origin, not the primitive origin.
- a new test file with rotated primitives in macros is added.
Fixes #16049
https://gitlab.com/kicad/code/kicad/-/issues/16049
2023-11-08 10:45:13 +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
ea077bc34d Banish ignore.h to core 2023-04-18 22:44:04 -04:00
qu1ck
0c049eccc7 Fix a bunch of compiler warnings 2023-04-11 17:01:30 +00:00
jean-pierre charras
54b4f0e673 Gerbview: Aperture Macro: handle overwriting of variables
Gerbview did not handle redefinition of variable like $3 = $3 / 2
This redefinition is sometimes found in Gerber files.
This is a long standing issue now fixed.
Fixes #7222
https://gitlab.com/kicad/code/kicad/issues/7222
2023-02-11 18:22:29 +01:00
jean-pierre charras
79d246b8fe Gerbview: more code cleanup. remove duplicate code. 2023-02-10 16:10:29 +01:00
jean-pierre charras
fa1591d021 Gerbview: code refactor: change name of a D_CODE member:
D_CODE::m_Shape -> m_ApertType (it is not a shape, it is a aperture type)
Fix also an outdated/incorrect comment
No actual code change.
2023-02-10 11:20:16 +01:00
jean-pierre charras
be420a0cf5 Gerbview, Aperture macros handling: use accessors for some internal data
and add comments. No actual code change.
2023-01-28 18:00:12 +01:00
jean-pierre charras
00d77f624a Gerbview: fix coding style (better names for variable members is some classes).
(no actual change in code)
2023-01-14 17:08:44 +01:00
Daniil Nikolaev
605d177810 Gerbview: Check RS274X AD command's template parameters
If user opens a specially crafted gerber file, this check prevents Gerbview from infinitely consuming memory.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/13235
2022-12-22 21:23:19 +00:00
Marek Roszko
e6ed275c25 Repoint IU_PER_MILS 2022-09-16 21:09:26 -04:00
Jeff Young
4e3109a633 Wide string decls for gerbview. 2022-02-05 22:34:45 +00:00
Jeff Young
4eac8d7c66 Remove unit-less angles from geometry lib APIs. 2022-01-20 21:10:04 +00:00
Marek Roszko
ac715d2e51 Scoop up some more wxPoint instances 2022-01-03 20:00:53 -05:00
Seth Hillbrand
548e5f49bd Clean up unused variable usage
Unused variables in function calls can be commented out.  Unused
return variables get a new routine `ignore_unused()` that silences the
warnings with zero overhead.
2021-10-05 10:00:30 -07:00
luz paz
f968fc8719 Fix source comment / documentation typos 2021-06-09 19:32:58 +00:00
Ian McInerney
ecd9bf696e Be consistent about using nullptr instead of 0
0 can be too easily overloaded into an int, so ensure we use nullptr
when we mean pointers.
2021-04-22 22:20:34 +01:00
jean-pierre charras
c1197903e4 Gerbview: fix regression: missing DCode highlight commands.
DCode selected by context menu or from toolbar is now highlighted.
2021-03-13 18:45:33 +01:00
Jon Evans
ff4c01c4a4 Don't say a gerber is an X2 unless the whole attribute is loaded
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7303
2021-01-27 17:17:44 -05:00
Marek Roszko
e928b2d8fd Split EDA_UNITS out from common. 2020-10-25 00:02:52 -04:00
Marek Roszko
a1c75748a0 Remove GetChars(), a wxWidgets 2.9 compatibility hack 2020-10-15 20:53:25 -04:00
jean-pierre charras
04aa5519d0 Gerbview: code cleanup. Remove many include, now useless. 2020-09-30 12:56:55 +02:00
Ian McInerney
70a7d1bc7c Cleanup variable usage and assignment in gerber reader 2020-09-21 12:19:49 +01:00
Ian McInerney
7dfbb3cb18 Cleanup formatting 2020-09-21 12:15:03 +01:00
Ian McInerney
99dcadf7e6 Introduce new KI_FALLTHROUGH macro
Annotate purposeful fallthroughs in switch statements with the
KI_FALLTHROUGH macro.
2020-04-25 00:44:09 +01:00
jean-pierre charras
9e656fe5eb Gerbview: fix incorrect rendering of oval vertical standard aperture with hole.
Fix also incorrect display of dcode size in toolbal: was Y size  X size.
Now is X size Y size, as expected.
2020-04-10 16:02:15 +02:00
jean-pierre charras
7206b567ac Gerbview: Gerber attributes display: fix incorrect attributes deletion.
The Gerber attribute deletion command (%TD,xxx) always cleared all attributes,
instead of clearing xxx attribute.
Therefore some attributes were not always displayed.
2020-02-23 09:42:02 +01:00
Ian McInerney
13b6028e1b Refactor all math into a new kimath library
* Split up the thirdparty code into the thirdparty folder (#3637)
* Create a new kimath static library containing all the math functions

This is part of cleaning the build system for #1906.
2020-01-07 17:12:59 +00:00
jean-pierre charras
71cd8c57bf ADDED: Pcbnew, add "pin function" (pin name in eeschema) to pads.
The pin name defined in Eeschema is now available as pad info.
Useful for the board designer (the pin function is displayed in the message panel).
Needed for the Gerber P&P files.
2019-11-23 09:12:43 +01:00
jean-pierre charras
32043cfa26 Gerbview: add parsing of optional Aperture Macro parameter.
AMP_CIRCLE primitive has 4 or 5 parameters (last is optional)
Reading the optional parameter was missing.

Fixes: lp:1852924
https://bugs.launchpad.net/kicad/+bug/1852924
2019-11-18 09:06:43 +01:00
jean-pierre charras
4a0bd46ed6 More work on Gerber pick and place files
In P&P files, user strings are now quoted, and use UTF8 encoding
2019-11-01 08:34:24 +01:00
Jeff Young
a25368cc6b Improve spelling.
The groundwork here is thanks to kunda1.

Fixes: lp:1831510
* https://bugs.launchpad.net/kicad/+bug/1831510
2019-08-20 19:14:05 +01:00
jean-pierre charras
4136aca221 Gerbview: Excellon drill files reader: add a better support of routing mode.
Previously, the M and G00, G01, G02 and G03 commands were read, but nothing was actually done.
The current support is a bit rough, but it allows reading some drill files with routing commands.
2018-09-24 13:12:47 +02:00
jean-pierre charras
ef38a198d1 GerbView: incorrect handling of polygon primitive: broken parameters rotation and drill size.
Fixes: lp:1778459
https://bugs.launchpad.net/kicad/+bug/1778459
2018-06-25 11:00:53 +02:00
jean-pierre charras
d8687e4eaf Gerbview: minor code cleanup 2018-05-14 09:05:11 +02:00
jean-pierre charras
8da242c593 Gerbview: accept any structured comment as X2 attribute.
A structured comment is a comment line starting by "G04 #@! " and in fact containing
a X2 attribute. It is used to create Gerber files contianing X2 metadata, but compatible
with X1 file format
2018-05-14 09:05:09 +02:00
jean-pierre charras
fa41026f36 Fix issue in aperture macro with some strange gerber files.
Fixes: lp:1755623
https://bugs.launchpad.net/kicad/+bug/1755623
2018-03-14 14:55:51 +01:00
jean-pierre charras
66d5d10b49 Gerbview: bigger line buffer to read some gerber files that have only one (very long) line.
small code refactor.
2018-03-14 10:42:18 +01:00
jean-pierre charras
a0ac1a48c2 Gerbview: fix code after renaming files 2018-01-29 13:26:58 +01:00
jean-pierre charras
cffe1b51e2 Gerbview: avoid a crash with malformed Gerber files.
Fix also incorrect handling of %LN (Load Name) deprecated command
2017-10-24 18:09:33 +02:00
Seth Hillbrand
5b2248fad8 gerbview: Corrects handling of %FSD statement 2017-09-29 07:40:58 +02:00
Jon Evans
915e51e1f0 GerbView GAL support part 1: changes to existing files
- New GAL draw layers for GerbView
- Improved bounding boxes for Gerber shapes
- Switched to use of SHAPE_POLY_SET for polygons
- Add GAL methods to support selection and rendering
- Add GUI support of editing GAL options
- Rename get/setActiveLayer to Get/SetActiveLayer to match convention
2017-09-25 13:35:01 +02:00
jean-pierre charras
b0bfbd4f41 Gerbview: remove analysis of fully outdated (and never used) gerber commands 2017-08-11 11:21:33 +02:00
jean-pierre charras
996bcdf458 Fix a few doxygen warnings 2017-06-16 09:18:31 +02:00
jean-pierre charras
36255d8523 Gerbview: Fix a few issues in aperture macro definitions. 2017-04-08 15:35:11 +02:00
jean-pierre charras
ba517db96c Gerbview: fix a subtle issue when reading parameter values in Gerber files.
In Gerber files the char 'X' is used as separator.
But when reading parameter values, the sequence "0xnnn" is a number in hexadecimal format, and the 'X' char is not seen as separator by usual strtod or strtol C functions.
This is now fixed.
2017-04-08 12:53:40 +02:00