51 Commits

Author SHA1 Message Date
John Beard
299a6c6c7b Netinfo: avoid transitive string_utils.h include
Put the string manipuuation utils in the cpp, and
remove string_utils.h from the includes of netinfo.h.

This spams that header into about 350 files, not all of which
need it. Then go round and tidy up the places (most exporters
and dialogs) where CPP files weren't including string_utils.h
when they used it, as well as some other order-sensitive
include issues that turned up.
2025-08-12 20:00:15 +08: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
0495828a55 Honour front/back layer types for user layer.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21284
2025-07-17 09:35:21 +01:00
Seth Hillbrand
6cd076eed4 Blast quite a bit of LOCALE_IO into the sun
After forcing the locale-specific read/writes out of our IO, we can
remove the global LOCALE_IO calls in many places.

Still to do: exporters, pcm, specctra, settings, drawing sheets,
plotters
2025-07-14 15:30:42 -07:00
Jeff Young
c758a2fbaf Don't sequence layers when order doesn't matter. 2025-07-14 19:12:44 +01:00
Jeff Young
d2a623719b Be consistent about getting board copper layers. 2025-07-09 13:05:22 +01:00
Seth Hillbrand
51e36257e1 Fixup for cda127a9a3b9c6cf04266250517aa7d399ec251e
Support for arbitrary layer count
2025-06-06 12:44:58 -07:00
Jeff Young
af1a246e12 Nullptr safety. 2025-06-06 18:28:39 +01:00
Jeff Young
cda127a9a3 Fix for new layer arch (copper on even numbers only). 2025-06-06 18:28:39 +01:00
Ian McInerney
fd94488289 Mark ODB++ as export-only
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20493
2025-03-28 15:32:03 +00:00
jean-pierre charras
9d1b320896 Fix compil warnings 2025-03-08 09:40:23 +01:00
Daniel Treffenstädt
3768221d9c ADDED: Support for IPC-4761 Via protection features
Fixes https://gitlab.com/kicad/code/kicad/-/work_items/18837
2025-03-01 18:02:54 +00:00
Eric
92cdca69b3 ODB++:Fix date format in misc/info file
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20103
2025-02-26 15:30:36 +08:00
Jeff Young
3f15b0d75b ADDED: hatched fills for shapes. 2025-02-24 11:08:29 +00:00
Jeff Young
c5bb59468d Get rid of assumptions about field order. 2025-02-24 11:08:29 +00:00
Daniel Treffenstädt
255f4aee76
Make sure drill layer pairs are created in odb++
fixes #20039
2025-02-22 10:58:14 +01: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
Alex Shvartzkop
66246798c1 Fix attribute writing in ODB++.
A space has to be put before the first ";", otherwise it can't be read correctly.
2025-02-18 11:18:47 +03:00
Eric
1968716542 ODB++: fix format error caused by empty PKG name when some AD projects import 2025-02-17 17:44:54 +08: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
Seth Hillbrand
1259e6057a Correct ODB++ attribute output
System attributes should be prefixed by the . while user-defined
attributes can be freeform ASCII

Adds DNP & Component Type for footprints to ODB++ export
2025-01-17 15:46:55 -08: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
Ian McInerney
7f8b88221d Initialize variables 2024-12-31 00:18:10 +00:00
Eric Zhuang
b3259a1c42 ODB++:Support choice compress format and specify output filename. 2024-12-29 17:01:27 +00:00
JamesJCode
dfe0d6345b Another go at supressing FOOTPRINT field on FOOTPRINT objects 2024-12-28 21:57:35 +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
Alex Shvartzkop
bfc505503b ODB++: fix scale when exporting in Inches.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19333
2024-12-21 22:52:00 +03:00
Seth Hillbrand
527e2e8027 Unify Trace/Track usage
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19329
2024-12-19 15:55:26 -08:00
Jon Evans
b432f5d06e ODB++: Fix back-side package mirroring 2024-12-16 13:05:32 -05:00
Jon Evans
044643b164 ODB++: Fix handling of polygon outlines
The ODB format only supports the concept of a filled polygon,
not one with a stroke outline.  Use line features for these
instead.
2024-12-03 19:03:55 -05:00
John Beard
04d7bcc45e ODB++: don't overrun the bezier point list
This produced a spurious point (at best, a crash at worst)
when exporting bezier curves.

Relates-To: https://gitlab.com/kicad/code/kicad/-/issues/18706
2024-12-03 21:26:59 +08:00
Jon Evans
4ae7381fcd ODB++: Include footprint fields as properties 2024-12-02 00:11:25 -05:00
Jon Evans
b33f207676 ODB++: Set more verbose meta info in SAVE_APP rather than ODB_SOURCE 2024-12-01 23:39:56 -05:00
Jon Evans
d68fc87308 ODB++: Package names also can't have whitespace 2024-11-25 11:58:50 -05:00
Jon Evans
61e5b10031 ODB++: Fix net name whitespace and missing HDR line 2024-11-22 00:05:17 -05:00
Jon Evans
0e1715c7a0 ODB++: disable some matrix info that is not applicable 2024-11-21 17:02:59 -05:00
Jon Evans
687dc71e1d ODB++: Use more friendly progress phase names 2024-11-20 19:03:15 -05:00
Jon Evans
f522232a4c ODB++: Properly handle units property 2024-11-20 18:56:34 -05:00
Jon Evans
6a83d7bc76 ODB++: Handle existing output directory gracefully 2024-11-20 18:14:18 -05:00
Jon Evans
66b850a4d2 ODB++: comply with requirements for CMP strings
Remove Value from part_name as it isn't really
part of a footprint name.  Guard against empty component
names or strings containing whitespace.
2024-11-20 17:48:19 -05:00
Eric Kuzmenko
707a8f6c1b ODB++: Set COLOR=0 in MATRIX and remove MAX_UID from MISC per the standard
Signed-off-by: Eric Kuzmenko <eric.n.kuzmenko@gmail.com>
2024-10-22 08:26:25 +00:00
Jon Evans
2a605e4a4e Infrastructure and file format for via stacks 2024-10-06 18:45:25 -04:00
Jon Evans
31475203dd Support custom padstacks in ODB++ 2024-10-02 22:39:58 -04:00
jean-pierre charras
56b50e1600 Fix compil warnings and minor Coverity warnings (uninitialized variables). 2024-10-02 09:33:54 +02: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
John Beard
215533f31a Unify flip direction handling
There was a gentle mish-mash of booleans, some with
true being left/right and some up/down, and some functions that
can flip in both axes (which is never actually done, and doesn't
really make geometric sense).

Replace all this with the FLIP_DIRECTION enum class, which makes
the intention completely unambiguous.

This also then allows a small scattering of simplifications,
because everything takes the same type and you don't have to
fiddle booleans to fit.
2024-09-27 17:13:13 +01:00
jean-pierre charras
16f0ebc96e ODB++: do not translate error messages not really intended for users 2024-09-22 10:33:22 +02:00
Jon Evans
1895ec58a0 Fix various compile warnings 2024-09-18 18:51:02 -04:00
jean-pierre charras
1bc63c8013 Fix compil warnings (missing override) 2024-09-15 09:14:18 +02:00
Jon Evans
d501afdbaf Fix ODB++ build on clang 2024-09-14 17:26:14 -04:00