Alex Shvartzkop
4bf8ed32cd
Optimize testCourtyardClearances when moving footprints (33%->0.69%)
...
Check bounding boxes without hidden text first before trying to check courtyards.
See https://gitlab.com/kicad/code/kicad/-/issues/18148
2024-06-24 06:43:58 +03:00
Alex Shvartzkop
dc56364cf2
Optimize testCourtyardClearances when moving a board.
...
CPU usage: 86% -> 33%
See https://gitlab.com/kicad/code/kicad/-/issues/18148
2024-06-24 02:00:34 +03:00
Alex Shvartzkop
f5be388acd
Don't call GetSide in FOOTPRINT::GetBoundingBox when not needed.
...
CPU usage: -13% when moving a board.
2024-06-20 06:02:11 +03:00
Jeff Young
1eb26b439a
REMOVED new footprint dialog.
...
We now just create an "Untitled" footprint.
Also fixes a bug where the preview of new footprints
would zoom in too far.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17573
2024-05-31 10:36:51 +01:00
Jeff Young
15d4e114e0
Move pad checking to Footprint Checker.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18102
2024-05-29 15:25:49 +01:00
jean-pierre charras
8165ec66e9
FOOTPRINT::CheckPads(): better check for hole in PHT pad.
...
Hole not fully inside the pad copper area is now tested.
2024-05-28 20:00:08 +02: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
Jeff Young
e400d49af6
Trim covered region to bounding hull.
...
Otherwise a long track crossing a footprint will look
like it covers most of it.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17299
2024-05-26 18:45:58 +01:00
Jeff Young
25bb3f77fa
Fix keep-upright algo for footprint text.
...
Also removes PCB_FIELDs from rotation centre calc in
footprint editor if there is other stuff selected.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16896
2024-05-17 18:34:44 +01:00
Wayne Stambaugh
f1e8495dc9
Fix QA DRC regression test issue.
2024-05-07 16:22:09 -04:00
Wayne Stambaugh
a508f2e716
Fix false annular ring width DRC test failure.
...
The DRC annular ring width test failed to take into account that a pad
could be contained inside another pad having the same number (thermal
vias for example) which changes the effective annular width of the pad
contained within another pad. A test was added to calculate the effective
annular ring width in this case.
Added some PNS log viewer helper and test code to the PNS playground QA
utility for testing the effective pad annular width code.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17485
2024-05-07 08:04:17 -04:00
Seth Hillbrand
a835ba0715
Add "Mechanical" pad property
...
Prevents mechanical support pads from being used to check pad types.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16747
2024-05-05 21:57:10 +00:00
Jeff Young
89433afb47
Handle delete-table undo in Footprint Editor.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17689
2024-05-05 19:08:16 +01:00
Jeff Young
b12043a612
Separate fields from text for boundingBoxes & hit-testing.
...
We used to have special cases to keep fields from bloating
a footprint's bounding box or being used for hit-testing.
However, now that we can distinguish PCB_FIELD_T from
PCB_TEXT_T, we should not apply these special cases to
PCB_TEXT_T. Text in footprints should act like graphics.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17854
2024-04-28 18:47:11 +01:00
Seth Hillbrand
0ea02fa2ff
Be a little more careful about courtyard caches
...
Rather than utilizing the board timestamp, we check cached hash of the
courtyard results before rebuilding
2024-04-18 09:32:00 -07:00
Seth Hillbrand
df5dd15c6f
Protect courtyard cache regen
...
The courtyards are referenced by multiple calls and will be rebuilt on
command. If this happens during zone fill (because the board timestamp
has incremented since the start) multiple threads may generate the cache
at the same time, leaving one with an invalid pointer
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17791
2024-04-18 08:41:18 -07:00
Marek Roszko
96cdfc7fa7
Update equality overloads for C++20
...
C++20 added new reverse and rewritten candidates. This can confuse the compiler because it'll test both A==B and B==A for overloads.
Because we were defining parent class equality overloads, A==B and B==A was considered ambigious due to both being compatible in casting.
So we needed to add explicit child class equality operator overloads
2024-04-12 23:05:58 -04:00
Jon Evans
1dbe78c68b
Add QA tests and expand serialization for API
2024-04-02 19:51:18 -04:00
Seth Hillbrand
37a3f52d81
Remove unused variable
2024-03-29 16:48:08 -07:00
Jeff Young
2c21ef1ed0
Fix footprint undo for new UUID caches.
...
The footprint's children get swapped by the parent's std::swap
call, so they need to get removed/added to their parent around
the swap.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17592
2024-03-29 16:04:32 +00:00
Jeff Young
ccfefc3971
Table support for footprint editor.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17333
2024-03-11 17:46:09 +00:00
Jeff Young
72ba31ba27
Pass symbol's netlist to footprint preview widget.
...
This allows us to show the pin functions on the corresponding
pads.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17349
2024-03-09 15:01:59 +00:00
Jeff Young
ee3be0802c
Move PCBNew overrides to nullable properties.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5562
2024-02-24 20:05:51 +00:00
Jeff Young
cab351d249
Don't do a sided-test on a footprint which has no side.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15284
2024-02-04 15:18:23 +00:00
Jeff Young
071d8af5d7
Don't include text in footprint preview widget's autozoom.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16794
2024-01-28 14:35:01 +00:00
Jeff Young
27534074ac
Fix errors resulting from FP fields being moved from m_drawings to m_fields.
2024-01-28 11:13:48 +00:00
Jeff Young
7cf861a239
Use ARC_HIGH_DEF (not ARC_LOW_DEF) for courtyard generation.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16695
2024-01-24 12:00:33 +00:00
Jeff Young
d47a000564
Make sure group items get added to commit.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16705
2024-01-22 23:34:34 +00:00
Jeff Young
bb74100fe2
Fix typo.
2024-01-18 16:17:46 +00:00
jean-pierre charras
07d7ccf46f
Fix 2 minor compil warnings.
2024-01-10 09:16:14 +01:00
Jeff Young
cd83dfa831
Stage/add/delete group members when adding/deleting group.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16540
2024-01-07 13:39:13 +00:00
Jeff Young
985e590e6f
PCB_FIELDs don't belong in the view.
...
They're handled by their parent FOOTPRINTs.
Also makes sure footprint children get their parents
updated on a swap.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16412
2023-12-31 21:38:11 +00:00
Jeff Young
3f73bbcc4f
Don't run keepUpright when not rotating.
...
For that matter, don't do anything at all for a rotation
of 0 (or a move vector of {0,0}).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16402
2023-12-22 21:22:36 +00:00
Seth Hillbrand
0db362a907
Fix bug where default courtyard outline set to 0
...
The defaults are stored in mm, this needs to be converted to IU for
proper use in pcbnew
2023-12-08 13:31:13 -08:00
Alex Shvartzkop
111a8d6ab3
Improve/fix Expand connection for graphics.
2023-12-04 09:52:31 +03:00
Alex Shvartzkop
c5a6409c35
Fix a crash when opening PCB.
2023-11-29 22:50:52 +03:00
Graham Keeth
4f36f669dc
Use Title Case for property names
2023-11-29 01:23:35 +00:00
Seth Hillbrand
75c6b0ab28
Added IPC2581 support
...
IPC2581 is a modern production file exchange system. It provides
single-file data output for an entire board including BOM and netlist
information.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1954
2023-11-26 15:30:58 -08:00
jean-pierre charras
f6314e6401
FOOTPRINT::cmp_drawings(): fix a incorrect sort criteria for polygons:
...
for polygons, GetStart() and GetEnd() have no meaning and cannotbe used
for sorting.
2023-11-13 18:36:00 +01:00
Jeff Young
cc721c4907
Improve encapsulation of group internals.
...
(It's still leaking into BOARD_COMMIT and some other places, but at
least it no longer leaks into all the edit tools.)
Also fixes some bugs when moving/copying/pasting multiple selections
containing length-tuning patterns.
2023-11-09 14:05:35 +00:00
Jeff Young
791aa64950
Functionally it's a "reference image".
...
The implementation happens to be a "bitmap".
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15932
2023-10-24 15:44:21 +01:00
Seth Hillbrand
d99641be40
ADDED: Git integration support
...
Adds support for project-based git integration, branch support, commit,
revert and updates
Fixes https://gitlab.com/kicad/code/kicad/issues/10441
2023-10-20 12:51:47 +00:00
Alex Shvartzkop
be72e07e61
Introduce PCB_GENERATOR.
2023-10-08 02:41:17 +00:00
Alex Shvartzkop
d7863b09c5
Move CORNER_STRATEGY out of SHAPE_POLY_SET.
2023-10-06 15:42:50 +03:00
Jeff Young
8760bd8c80
Reconcile "apply defaults to new footprints" with DRC lib checks.
...
Moves apply defaults settings to Board Setup (where they were
duplicated anyway due to an earlier botched merge).
Modifies the apply-to-graphics algorithm to skip copper shapes.
Modifies DRC library check to skip STROKE_PARAMS for non-copper
shapes.
2023-10-02 22:10:13 +01:00
jean-pierre charras
629081af65
fix FOOTPRINT::GetLikelyAttribute() to follow the comments of
...
FOOTPRINT::CheckFootprintAttributes(): at least one through hole pad
means most probably a footprint through hole attribute.
2023-10-01 11:21:11 +02:00
Jeff Young
1047130046
Push most of footprint chooser into PANEL_FOOTPRINT_CHOOSER.
...
Create 2 wrappers for it: DIALOG_FOOTPRINT_CHOOSER and
FOOTPRINT_CHOOSER_FRAME. The first now gets called from wxGrid
editors, text button editors (such as Change Footprints), etc.
Retire FOOTPRINT_VIEWER_FRAME_MODAL. FOOTPRINT_VIEWER_FRAME still
exists, but has very few uses at this point.
2023-09-27 16:02:13 +01:00
Alex Shvartzkop
ff49d5ada9
Fix ambiguous overloads on wx 3.3
2023-09-14 19:05:46 +03:00
Alex Shvartzkop
892761920a
FOOTPRINT::AutoPositionFields: reset justification and angle as well.
2023-09-07 10:57:02 +03:00
Marek Roszko
2e58f4ea60
Fix three spots it always failed to check if the border was enabled
2023-08-30 22:39:07 -04:00