Commit Graph

80 Commits

Author SHA1 Message Date
Jon Evans f07f1083ac API: Add support for retrieving user names for all layers
(cherry picked from commit 3514d130cb)

Co-authored-by: Jon Evans <jon@craftyjon.com>
2026-03-01 22:25:39 -05:00
Seth Hillbrand 899d4888aa ADDED: Backdrill support
- Allow setting backdrill (from B.Cu up) and tertiary drill (from F.Cu
  down) width and target layer (backdrill is inclusive)
- Allow setting post machining options (counterbore, countersink)
- Update properties for vias and THT pads
- Add output for Excellon and Gerber drill files as separated files for
  different drill depths
- Add drill map output calling out post-machined holes
- Add STEP export support
- Add 3d-viewer support
- Add 2581 support using backdrill property.  Post machining called out
  in comments
- Add ODB++ support using separate drill file for each depth
- Add DRC check for tracks connected to pad layers that are backdrilled
  or post-machined

Fixes https://gitlab.com/kicad/code/kicad/-/issues/18836
2025-11-29 17:59:31 -08:00
Jon Evans f5a06463d5 API: Fix serialization of footprint rule overrides; add missing allow_soldermask_bridges attribute
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21674


(cherry picked from commit ea5ae7cc5d)

Co-authored-by: Jon Evans <jon@craftyjon.com>
2025-11-22 09:59:21 -05:00
Mark Roszko f3239bd31e Start adding multi-config support to our cmake 2025-11-21 20:48:59 -05:00
Jon Evans 86d8082c01 API: Add schematic pin attributes to pads
Fixes https://gitlab.com/kicad/code/kicad/-/issues/22360

(cherry picked from commit bdd98e801f)
2025-11-20 23:37:50 -05:00
Jon Evans a9ac108152 API: Preserve linked symbol properties in footprints
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21655


(cherry picked from commit 949be9a63a)

Co-authored-by: Jon Evans <jon@craftyjon.com>
2025-11-20 19:57:50 -05:00
JamesJCode b7ce289e4e ADDED: PCB Tuning Profiles
Tuning profiles build on the previous delay tuning work to allow
the definition of track geometries per-layer for a given tuning
profile. These can be calculated from a target impedance (with
all relevant geometry taken from the board stackup), or entered
manually.

Tuning profiles can be configured to enable time-domain tuning,
and to automatically generate track geometry DRC rules for net
classes which have an assigned tuning profile.

Adds a DRC check for net classes with a tuning profile assigned
which is not itself defined.
2025-10-15 18:58:12 +01:00
Seth Hillbrand 2ab94fab46 Fix QA for RPT_SEVERITY handling 2025-10-15 06:01:59 -07:00
Seth Hillbrand c9b29ebd4a Throw when encountering unknown report severity 2025-10-14 18:37:18 -07:00
Seth Hillbrand e005e75333 ADDED: API for injecting arbitrary DRC errors/warn
Allows external tools to calculate/represent specialized DRC errors on
the board

Fixes https://gitlab.com/kicad/code/kicad/issues/21727
2025-10-14 11:55:36 -07:00
Jeff Young 507b22bbaf Fill in more missing barcode code. 2025-10-02 21:52:43 +01:00
Seth Hillbrand 592e8542a3 Fix botched merge
These were in place previously but one of my rebases broke it.  This
should get us back to compiling
2025-09-26 16:15:37 -07:00
Jon Evans dabd8cdab8 API: Add ability to set enabled board layers and copper layer count
(cherry picked from commit ca0207016e)
2025-09-22 22:03:06 -04:00
Seth Hillbrand 8acf5c1a25 ADDED: Rounded Rectangles
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4742
2025-08-29 17:37:30 -07:00
Mike Williams 7e4133b9ec design blocks: fix up tests, API 2025-08-20 15:20:13 -04:00
Seth Hillbrand 1a4eba56a7 ADDED: Skip Via support
Skip vias are vias that are flashed on their start and end layers but
have no annular rings on the interior layers and do not connect to zones
in those layers

You can now select Annular ring type "Start and end layers only".  This
will prevent annular ring flashing on intermediate layers and zones
fills will provide clearance.  You can still connect tracks to
intermediate layers but preventing that will fall to the designer

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21433
2025-08-07 15:48:10 -07:00
Ben Gamari a07db6763a api/common: Fix units of Time
Times are internally represented in attoseconds, not picoseconds.
2025-08-07 18:06:59 +01:00
Ben Gamari e6ab1194ed pcbnew/api: Expose pad-to-die delay
Addresses #21346.
2025-07-30 22:36:50 -04:00
Ben Gamari eaac9a6465 api: Introduce common.types.base_types.Time
This is needed to represent pad-to-die delays.
2025-07-30 22:36:50 -04:00
Ben Gamari 29c733c651 pcbnew/api: Expose pad-to-die length
Closes #21346.
2025-07-30 22:36:50 -04:00
Seegong 66d8a133e2 Implement PCB_GROUP serialization and deserialization methods 2025-06-25 21:22:02 -04:00
Jon Evans 061cb2eba8 API: Add CheckPadstackPresenceOnLayers
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20587


(cherry picked from commit d1e4b03ec1)

Co-authored-by: Jon Evans <jon@craftyjon.com>
2025-05-26 21:47:44 -04:00
Mike Williams 87c91fea3d multichannel: support groups 2025-05-07 12:40:59 -04:00
Jon Evans 4dd39976a3 API: Add symbol path for footprint instances
See https://gitlab.com/kicad/code/kicad-python/-/issues/37
2025-04-26 09:52:42 -04:00
JamesJCode 8ef54c3651 Remove delay_profile API parameter until design matures 2025-04-22 00:08:04 +01:00
JamesJCode f1344e921a Final purge of 'tuning profile' -> 'delay profile' in time-domain code
Only mention remains in the delay profile settings JSON
2025-04-19 00:30:34 +01:00
JamesJCode eb17ebee4e Implement time-domain length tuning
- Adds time and delay units
- Adds time domain tuning parameters entry and storage
- Adds pad-to-die delay property
- Adds time domain parameter interface for length / delay calculations
- Adds unit tracking for numerical constants through LIBEVAL
   - Will need future work to truly propagate through binary expressions
- Adds time domain tuning to meander placers
- Adds time delay display to net inspector panel
- Modifies DRC to handle time domain constraints
2025-04-17 21:46:56 +01:00
Mike Williams 718bf40807 sch groups: add to API 2025-04-15 10:13:52 -04:00
Jon Evans 1c83f0a70b Implement jumpers for footprints
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2558
2025-03-24 22:17:46 -04:00
Daniel Treffenstädt 27edf0b949 ADDED: Per layer properties of zones used for control over zone hatching position 2025-03-02 20:31:04 +00: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
Jon Evans 5cec2fac9d API: Add board origin setter/getter
See https://gitlab.com/kicad/code/kicad-python/-/issues/20
2025-02-25 20:13:16 -05:00
Jon Evans c4c1842bc4 API: Add new user layers
See https://gitlab.com/kicad/code/kicad-python/-/issues/23
2025-02-24 19:27:13 -05:00
Jeff Young a8a1b08013 Make sure protobuf API stays consistent. 2025-02-20 17:47:40 +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
Jon Evans 4118c14d97 API: Add selection handling 2025-01-21 19:53:03 -05:00
Jon Evans 0ba869465c API: switch to Distance type for thermal settings 2025-01-09 21:25:15 -05:00
Jon Evans 4dfcbc6d2a API: make thermal spoke settings optional 2025-01-09 20:55:50 -05:00
Jon Evans bd47692bf2 API: Include custom layer names in stackup 2025-01-07 18:28:07 -05:00
Jon Evans 4bf852e6b9 Be slightly more restrictive in actions schema 2025-01-05 20:53:00 -05:00
Jon Evans d64226f144 Add some more descriptions to plugin schema 2025-01-05 20:47:40 -05:00
Jon Evans 3f7e459d62 API: add a schema for plugin config files
Also flip the dependence between json_schema_validator and kicommon,
and create a shared JSON_SCHEMA_VALIDATOR so that we don't have to
copy/paste the schema loading code as much
2025-01-05 17:08:33 -05:00
Jon Evans 7db75e4f50 API: expand board stackup serialization 2025-01-04 15:15:51 -05:00
Jon Evans 1fa432b029 API: add GetKiCadBinaryPath 2025-01-04 10:14:17 -05:00
Jon Evans a557c23576 API: Add board file management
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16774
2025-01-04 09:47:36 -05:00
Jon Evans d8b8d8aa3c API: Add GetNetClassForNets; handle implicit netclasses 2024-12-31 17:51:19 -05:00
Alex Shvartzkop 8a7cca209e Add --experimental_allow_proto3_optional to support older protoc. 2024-12-31 18:51:03 +03:00
Jon Evans 2c56e9826a API: Add serialization for netclasses
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18609
2024-12-30 23:29:29 -05:00
Jon Evans 1a3e18104a API: Add access to project text variables
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16426
2024-12-30 09:32:11 -05:00
Jon Evans 19c748048c API: Add some board editor appearance settings
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18269
2024-12-29 22:10:01 -05:00