7
mirror of https://gitlab.com/kicad/code/kicad.git synced 2025-04-18 11:39:18 +00:00
Commit Graph

44 Commits

Author SHA1 Message Date
jean-pierre charras
5694c90ae9 Fix a compil issue on msys2 / gcc 14.2.0 2025-03-02 11:36:38 +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
Jeff Young
c5bb59468d Get rid of assumptions about field order. 2025-02-24 11:08:29 +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
f871255005 Clean and unify pad/fp rotations
IPC2581 classifies pad rotation as clockwise from the top layer looking
down.  Which means that if you have the exact same footprint with
rotated pads on the top layer and bottom layer, then that will need two
different packages because one package will have the pads rotated one
way, the other will have the pads rotated in the opposite direction.
The IPC committee clearly was too smart for its own good here.  So we
hash the footprints based on layer as well and then introduce the
rotation into the pad.  This increases the number of packages but keeps
the code compact

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19703
2025-01-28 12:22:39 -08:00
Jeff Young
e19bce2f93 Reduce reliance on MANDATORY_FIELDS and their implied order. 2025-01-22 17:51:57 +00:00
Seth Hillbrand
abbdea4412 Correct rotations for flipped parts
Rotation is always seen as clockwise from the top of the board in 2581

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19675
2025-01-20 12:09:56 -08:00
Seth Hillbrand
561fc967a3 Add additional stackup information to 2581 output
Some parsers like the stackup def and this gets additional information
about the materials/colors into the output

Also fixes an issue where we could get missing pads in unusual cases.

Also fixes an issue were we generated invalid contours when footprints
had split courtyards

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16665
2025-01-16 10:45:06 -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
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
1b28ee51dc IPC-2581: Improve dialog layout; Limit precision to 4-10 digits.
To represent KiCad's internal units (1 nm), it's enough to have:
- 6 decimal digits in mm;
- 8 decimal digits in inches.

There's not much point in reducing the precision.
Up to 10 digits allowed just in case.
Also changes precision to 6 decimal digits by default.
2024-12-22 20:19:54 +03:00
Alex Shvartzkop
787d174bec IPC-2581: Fix scale when using Inches. 2024-12-22 20:19:54 +03:00
Jon Evans
2a605e4a4e Infrastructure and file format for via stacks 2024-10-06 18:45:25 -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
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
Seth Hillbrand
7214ef1f14 Remove basic masking class map_string_utf8
This is just std::map<std::string, UTF8>, using the class just masks
what it is and adds unclear functions.
2024-08-19 11:51:13 -07: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
14ccadd2a9 Handled unconnected nets
These nets may have only a single element in them (no connections), so
be sure to leave the node even without Features

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18293
2024-07-08 13:15:14 -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
Jeff Young
9b8f1109e6 Formatting. 2024-06-06 11:41:37 +01:00
Jeff Young
4901ffd935 Formatting. 2024-05-27 17:06:09 +01:00
Seth Hillbrand
9c24a39156 Handle 2581 knockout text with multiple outlines
Previous commit removed the handling of multiple outlines.  This
restores Jeff's initial, correct handling, only minus the "UserSpecial"
nest

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18042
2024-05-27 07:29:52 -07:00
Jeff Young
bc14a841cb Check for drilled hole errors in Footprint Checker.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18093
2024-05-27 13:51:21 +01:00
Seth Hillbrand
becc0232b4 Fixup IPC2581 knockout text
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18042
2024-05-26 08:04:06 -07:00
Jeff Young
f1aea810cb Add knockout text support to IPC2581.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18042
2024-05-25 22:30:41 +01:00
Jeff Young
b0dddb6d95 Formatting. 2024-05-25 22:06:38 +01:00
Wayne Stambaugh
795a9eea60 Coding policy fixes.
This is primarily to change all instances of wxLogDebug with wxLogTrace
so developers do not have to sift through debugging output that is always
dumped.  The only exception is for code blocks built in debug builds and
called on demand for dumping object states.
2024-05-23 07:59:45 -04:00
Seth Hillbrand
4218664d88 Cleanup on 2581 header 2024-05-08 15:36:33 -07:00
Seth Hillbrand
13735050da Use StandardPrimitive library for vias
Some 2581 parsers don't like to consider UserPrimitive even though they
are essentially the same thing and required by the standard.  ¯\_(ツ)_/¯

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16661
2024-05-03 09:11:49 -07:00
Seth Hillbrand
ef62b01dd1 Make import/export flags explicit
IO plugins can import/export or both.  This sets an explicit boolean for
controlling which options are available.
2024-04-25 09:21:15 -07:00
Seth Hillbrand
eeee63186d Don't list IPC-2581 import
We don't currently support importing 2581 files.  We need to clear
IO_FILE_DESC to prevent this from accidentally showing

Fixes https://gitlab.com/kicad/code/kicad/-/issues/17866
2024-04-25 09:02:38 -07:00
Seth Hillbrand
374fb0f5f2 IPC2581 fixes
- Component name ref comes before pin ref
- OtherSideView is at the end of the package
- BOM defines the dictionary so we need all items in the BOM even if
  marked "Exlude from BOM"
- Fix unique REFDES indicator to increment number rather than appending
  additional numbers
2024-04-16 13:25:09 -07:00
Jon Evans
493ca7a0f5 Fix unhandled case warnings 2024-04-02 20:56:48 -04:00
Seth Hillbrand
2123e2ca9c Add some corrections to IPC2581 export syntax
Outline fonts need lineDesc
Padstack def need the location for the pad relative to the padstack
2024-04-01 22:57:25 -07:00
Roberto Fernandez Bautista
079478f989 EDA_ANGLE: use constexpr for constant angles
Remove all statics in the class and instead use constexpr to
ensure correct ordering
2024-01-31 19:17:46 +03:00
Seth Hillbrand
b12d0dfd67 Fix pad offset removal vs hole offset
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16767
2024-01-29 08:22:23 -08:00
Seth Hillbrand
96297b50a1 Remove padstack offset value
We encode the pad locations for the package in the pin, so we don't need
an additional offset from the pin location

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16767
2024-01-26 10:53:36 -08:00
Seth Hillbrand
9e9dfb38d1 IPC2581: Correct flipped pad handling
Board footprints have pads already flipped, so we don't need to adjust
layers when outputting

Fixes https://gitlab.com/kicad/code/kicad/-/issues/16659
2024-01-25 13:06:59 -08:00
Ian McInerney
d7fe668d79 Push PCB_IOs to use the base progress reporter instead of per-function 2023-12-27 17:06:23 +00:00
Ian McInerney
f8688a922d Unify IO library descriptors 2023-12-27 16:34:59 +00:00
Ian McInerney
743e9d669a Push library management into IO_BASE 2023-12-27 01:21:53 +00:00
Ian McInerney
cad91312aa Introduce main base class for all IO loaders 2023-12-26 23:27:11 +00:00
Ian McInerney
e6632bb983 Rename PCB IO classes/files 2023-12-24 01:22:21 +00:00
Ian McInerney
d8b47d18d3 Initial rename of file plugin infrastructure components to IO 2023-12-24 01:22:21 +00:00