Wayne Stambaugh
0bdbfe1446
Pcbnew: add plot on all layers feature.
...
ADDED: Any addition board layers can be plotted on all selected board layer
when plotting.
CHANGED: The new plot to all layers feature made the plot edge cuts option
obsolete. Users must now select the edge cuts layer from the list of
plot to all layer selections to include edge cuts on all layers when
plotting.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2449
2022-04-02 14:33:40 -04:00
Thomas Pointhuber
bd18e340f4
eagle: introduce *.lbr footprint import test
...
Bugs found but not fixed yet:
* Reference and Value are not converted correctly yet
* HOTFIX: test commented out
* GP3906-TLP and UBLOX_ZOE_M8-0-10 are not able to import the description again
* HOTFIX: description removed from gold file
2022-04-02 20:07:16 +02:00
Thomas Pointhuber
406c528ab7
altium: Create region for items on the KEEP_OUT_LAYER and use new Track unit-tests
2022-04-02 18:17:19 +02:00
Jeff Young
f7cdc7af75
Apply a more sophisticated test for ignoring isInCoupledDiffPair.
...
The basic problem is that the DRC engine does length testing and skew
testing by collecting all the diff pair constituent parts and pairing them
itself. Since each part is collected on its own, we need to ignore the
'B' unit when evaluating any conditional expressions. However, doing this
in general means that when evaluating "OwnClearance()" we also ignore the
'B' unit and return the diff pair CLEARANCE_CONSTRAINT when we shouldn't.
This implements a more discerning test which know what the current requested
constraint is when evaluating expressions.
See also https://forum.kicad.info/t/solved-custom-differencing-rule-not-working-drc/34034/6
Fixes https://gitlab.com/kicad/code/kicad/issues/11314
2022-04-02 15:12:42 +01:00
Marek Roszko
b18e441a88
Free memory in dxf import sooner on bad_alloc
2022-04-02 09:57:30 -04:00
Marek Roszko
9f8c0a8185
Catch memory exhaustion trying to import large DXFs
...
See https://gitlab.com/kicad/code/kicad/-/issues/11308
2022-04-01 23:15:06 -04:00
Seth Hillbrand
737d65fd36
Skip zero-size elements when converting
...
Also fixes an assertion when converting to polygon from the board editor
Fixes https://gitlab.com/kicad/code/kicad/issues/11313
(cherry picked from commit 6706a5c462
)
2022-04-01 13:24:10 -07:00
Jeff Young
d174af4006
Handle textboxes moving back to RECT shape (ie: cardinal rotation).
2022-04-01 16:12:23 +01:00
Seth Hillbrand
49c48e2fe0
Consistently handle env/prj variables
...
User-defined variables cannot be used for internally-reserved variables
Fixes https://gitlab.com/kicad/code/kicad/issues/11232
(cherry picked from commit c23679d9bd
)
2022-03-31 17:05:53 -07:00
markus-bonk
1a9ef4bd0f
Add support for using a SpaceMouse to pan & zoom in the schematic editor.
2022-03-31 19:03:41 +00:00
Jeff Young
bb43a3926a
Math and I don't get along. So just be pedantic about text rotation.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11247
2022-03-30 19:54:18 +01:00
Wayne Stambaugh
c0d8657d97
Plot on all layers prep work.
...
We only need one bottom to top layer sequence definition.
Plot a sequence of layer IDs (LSEQ) in the order of the sequence.
Add helper method to layer set (LSET) to create a sequence of layer IDs
using another sequence for ordering.
2022-03-29 16:08:23 -04:00
Jeff Young
b78a260326
Only write Allow DRC Violations if enabled.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11177
2022-03-29 19:31:02 +01:00
Jeff Young
a54bbfe12b
Honour prime-event-location when starting router.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11239
2022-03-29 13:44:40 +01:00
Jeff Young
a35ae8cdce
Don't re-fetch selection when running select-in-same-sheet.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11110
2022-03-28 21:54:24 +01:00
Mike Williams
e51ab86225
Schematic Drag: fixes and improvements
...
Fixes:
* Various special cases around junctions on pins and dragging.
* Some rotations of endpoints resulting in a 45 degree rotate.
* Some cases where it was possible to get a line with neither
endpoint selected, and also substractive unselecting only one of two
selected endpoints unselecting both.
* Use line midpoint for sorting. Start and endpoints aren't
consistent in the order they appear on the X or Y axis. So,
we need to use the midpoint for our position for consistent
sorting when dragging groups of parallel lines where some
have the start and end reversed.
Other:
* Rename TEMP_SELECTED TO SELECTED_BY_DRAG. This is the actual meaning
of the flag, and should reduce confusion as
to when it should be used.
* Move usage of TEMP_SELECTED as an algorithmic mark to CANDIDATE
instead.
* Fix mistaken clearing of START_POINT and ENDPOINT.
* Move endpoint setting and clearing out of narrowSelection, and into
selectPoint and selectMultiple.
* Don't show dangling end warnings on new lines
2022-03-28 16:02:48 -04:00
Jeff Young
6fa8cab188
Don't default to Annotate All just because the selection is empty.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11181
2022-03-28 17:52:50 +01:00
Jeff Young
a2d4351b97
Correct initialization of justification.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11248
2022-03-28 17:11:20 +01:00
Jeff Young
343b2681d4
Midpoints for eeschema rectangles and text boxes.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10362
2022-03-28 11:16:39 +01:00
jean-pierre charras
9a342458fa
Fix a few Coverity and compil warnings.
2022-03-26 16:21:23 +01:00
Wayne Stambaugh
150859c973
Try Coverity fixes that don't break unit tests.
2022-03-25 16:49:29 -04:00
Wayne Stambaugh
7da7864f5e
Fix some Coverity issues.
2022-03-25 15:51:05 -04:00
Wayne Stambaugh
7b2d9dfc0c
Fix some Coverity uninitialized scalar variable issues.
2022-03-24 13:17:07 -04:00
jean-pierre charras
a6606924f1
GERBER_JOBFILE_WRITER: fix a crash due to use of a null pointer.
...
Can happens when it is created from a Python script.
Fixes #11227
https://gitlab.com/kicad/code/kicad/issues/11227
2022-03-24 17:54:05 +01:00
Jeff Young
92a229eec7
ADDED separate user-defined color for page limits.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5271
2022-03-24 14:11:41 +00:00
Jeff Young
1d66925f5f
Enable bb and/or uvias when encountering them on Altium import.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10044
2022-03-22 22:33:51 +00:00
Seth Hillbrand
482dbcec54
All triangular trapezoid pads
...
A triangular trapezoid will have the deltaX/deltaY of the same size as
the length of that axis. This creates a three-point polygon, which is
perfectly valid for our use
(cherry picked from commit 4e98ce87c7
)
2022-03-22 13:39:55 -07:00
Jeff Young
118a37f19f
Fix issues with importing NPTH pads from CircuitStudio.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10493
2022-03-22 18:08:05 +00:00
Jeff Young
3271b43d4b
Formatting.
2022-03-22 18:08:05 +00:00
Jeff Young
b679a21651
Zero out parent rule when overridden by local property.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11197
2022-03-21 20:49:35 +00:00
Jeff Young
b3ae0fdca5
A little bit of nullptr safety.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11077
2022-03-21 20:07:33 +00:00
Jeff Young
cf611f1742
Better safety around layersets.
2022-03-21 18:19:00 +00:00
Jeff Young
40e0c8257d
Rotate textbox shape along with text.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11187
2022-03-21 18:19:00 +00:00
Seth Hillbrand
41c2a48802
Prevent crash on unplated holes
...
NPTH may not be flashed on any layer, so the set-layer-visible logic
shouldn't try to determine their layer for showing.
Fixes https://gitlab.com/kicad/code/kicad/issues/11193
2022-03-21 10:39:33 -07:00
jean-pierre charras
d27d2e0ad9
Pcbnew: fix lost of focus after clicking on a wxChoice in toolbar.
...
After changing track width, via size, grid or zoom from the toolbar, the
canvas has no longer the focus on Windows. So we force the focus after clicking
on these widgets.
Fixes #11103
https://gitlab.com/kicad/code/kicad/issues/11103
2022-03-21 18:10:07 +01:00
Jeff Young
4f62960334
Update message panel from PCB point editor and SCH drawing tools.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11186
2022-03-21 10:32:36 +00:00
Jeff Young
73f835437e
Don't modify outer loop variable inside inner loop.
2022-03-19 19:37:01 +00:00
Jeff Young
476f1a7d4d
Preload PCBnew find with selection when appropriate.
2022-03-19 19:37:01 +00:00
jean-pierre charras
6bf47e44e4
pcbnew: DIALOG_PRINT_PCBNEW: activate right click context menu inside layer list.
2022-03-19 08:10:17 +01:00
Seth Hillbrand
3b6e8464c2
Fix expand variables for built-in
...
Allow falling back to the alternate variable definitions if the built-in
text block variables are not set.
Also push the project into variable resolution when plotting
Fixes https://gitlab.com/kicad/code/kicad/issues/11168
(cherry picked from commit c44d31fcfb
)
2022-03-18 16:47:18 -07:00
Frank Zeeman
b3a319b77e
Append True to Python 3 AddPrimitivePoly() call
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11012
2022-03-18 20:00:32 +00:00
Jeff Young
5aa561abe1
Add overlapping pad test and share some tests between board & fp editor DRC.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10086
2022-03-18 19:58:42 +00:00
Jeff Young
dc39703d0e
Bring pcbnew print dialog in line with plot.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/2171
2022-03-18 13:37:20 +00:00
jean-pierre charras
54c9e36556
Python, board.i: fix incorrect order of an include.
...
The result was ignoring PCB_SHAPE in pcb_text.i.
2022-03-18 14:19:14 +01:00
Jeff Young
c4c8848fa3
Performance enhancements for Cleanup Tracks & Vias.Performance enhancements for Cleanup Tracks & Vias.Performance enhancements for Cleanup Tracks & Vias.Performance enhancements for Cleanup Tracks & Vias.Performance enhancements for Cleanup Tracks & Vias.Performance enhancements for Cleanup Tracks & Vias.Performance enhancements for Cleanup Tracks & Vias.Performance enhancements for Cleanup Tracks & Vias.Performance enhancements for Cleanup Tracks & Vias.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11119
2022-03-18 11:04:53 +00:00
Jeff Young
0f359c8a3b
Careful of calculated fields when comparing board FPs with library.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10143
2022-03-17 13:19:25 +00:00
Seth Hillbrand
442aae19d9
Separate flashing check for connectivity
...
When building the connectivity database, we should not be using the
connectivity to check for shapes.
To make this deterministic, we introduce two flags (ALWAYS_FLASH and
NEVER_FLASH) that are used with connectivity building to determine
whether a pad is flashed for connectivity or not. ZONE <-> PAD/VIA
connectivity will be checked with ALWAYS_FLASHED and all other
connectivity will be checked with NEVER_FLASHED if they are marked for
potential annular ring removal. If they are not marked for removal,
they will be checked ALWAYS_FLASHED.
Fixes https://gitlab.com/kicad/code/kicad/issues/11114
2022-03-16 17:30:01 -07:00
Jeff Young
4225f92573
Slight improvements to via drawing.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/8717
2022-03-16 14:56:32 +00:00
Jeff Young
62f813fddc
Better error reporting for PTH pads.
2022-03-16 14:56:32 +00:00
Jeff Young
cabcaf933c
Cleanup.
2022-03-16 14:56:32 +00:00
Jeff Young
fa5a484797
Remove unused variable.
2022-03-16 14:56:32 +00:00
Jeff Young
f596ae3487
Allow mechanical-clearance checks between edge_cuts and other layers.
2022-03-16 14:56:32 +00:00
jean-pierre charras
567fd5ba74
Specctra import/export: fix some issues (tested only with FreeRouter):
...
- Better handling of locked tracks than commit cbb6ca85
- Locked tracks are now exported with attribute "fix".
- Incorrect view cleaning
- Fix memory leak.
2022-03-16 12:31:45 +01:00
Jeff Young
600dcd31ad
Allow track board edge clearance violations inside the holes of castellated pads.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10970
2022-03-15 00:05:23 +00:00
Jeff Young
8d682002c3
Fix previous breakage from shared_ptr going out of scope.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10970
2022-03-14 23:57:50 +00:00
Jeff Young
cbb6ca8500
Import specctra track locking.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11070
2022-03-14 23:02:19 +00:00
Jeff Young
a81c8d4922
Save pointer to markers provider.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11136
2022-03-14 22:13:39 +00:00
Jeff Young
e7bf4ab8fa
Separate board-edge silk clearance from mask-edge silk clearance.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10970
2022-03-14 20:19:09 +00:00
Jeff Young
2ec21c7720
Don't check for board edge collision on castellated pads.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10970
2022-03-14 20:19:09 +00:00
jean-pierre charras
c34dc13a8e
Rework on DIALOG_CLEANUP_TRACKS_AND_VIAS: do not immediately run the cleanup engine.
...
The cleanup engine is now run on request, before options are selected.
Needed for large boards because the calculation time can be significant.
2022-03-14 18:12:44 +01:00
Jeff Young
65185f53a1
Rotate fp zones before comparing with library versions.
...
Also includes some performance fixes to not copy around triangulation
data when it's not needed.
Fixes https://gitlab.com/kicad/code/kicad/issues/10143
2022-03-14 15:53:24 +00:00
Marek Roszko
d74a0cdaa3
Don't pre-scale the line width
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/11122
2022-03-13 23:08:28 -04:00
Jeff Young
ced1e68ea1
A bit of wxT().
2022-03-13 16:09:06 +00:00
Jeff Young
06c1bccccd
Exclude hidden text from selection in FP Editor.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11111
2022-03-12 23:29:01 +00:00
Jeff Young
db0b733be5
Clear DRC caches before running soldermask tests again.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10922
2022-03-12 19:44:34 +00:00
jean-pierre charras
7fb4a2c0a5
CONNECTIVITY_DATA::IsConnectedOnLayer(): fix crash in some cases.
...
Fix crash when a zone do not have filled areas on a given layer.
2022-03-12 19:31:46 +01:00
Marek Roszko
b8557e77ee
Tweak the "pyd" extension if for windows to be completely inclusive
2022-03-12 09:22:01 -05:00
Jeff Young
0a8718cd1d
Fix issue when we ask if a pad is connected to a zone we're in the middle of filling.
2022-03-12 14:17:53 +00:00
Jeff Young
89e61ff73b
More performance enhancements for DRC.
2022-03-12 14:17:52 +00:00
Jeff Young
e03b06927d
Fix rotation problems for knockout fp text, and implement 3D rendering.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11086
2022-03-12 14:17:52 +00:00
jean-pierre charras
f14ef477cc
Fix a incorrect filename in a copy command (MSW specific).
...
Also fix a regression and respect the KICAD_BUILD_QA_TESTS build option.
2022-03-12 11:04:57 +01:00
Jeff Young
7ab4d67e94
Make sure line style comboboxes get a default entry.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11083
2022-03-11 23:19:16 +00:00
Jeff Young
6f555b6258
wxT() and some cleanup in DRC.
2022-03-11 23:19:16 +00:00
Wayne Stambaugh
eec528ae48
Fix GCC build error on Linux.
2022-03-11 17:03:01 -05:00
Jeff Young
ae307e1b34
Parallelize DRC triangulation, keepout processing, and sliver checking.
...
Also fixes issue with adding fractured polygons in sliver checking which
slowed the board from hell down to less than a crawl.
2022-03-11 20:52:11 +00:00
Jeff Young
6ce1399811
Redraw pads when mask or paste layer is visible after board setup.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11079
2022-03-11 20:52:11 +00:00
Thomas Pointhuber
79aafd1bd3
altium: support keepout restrictions in Arcs, Fills and Regions
2022-03-11 19:15:58 +01:00
jean-pierre charras
8d05ca5982
Teardrop rework: avoid refill zones on a not updated connectivity data.
...
- Teardrops have now just their shape filled (much faster than a full refill)
- The full zone refill is no longer made after recreating teardrops.
- this is more compatible with the option Auto-refill zones"
Fixes #11106
https://gitlab.com/kicad/code/kicad/issues/11106
2022-03-11 16:12:27 +01:00
jean-pierre charras
2bf56c2441
DIALOG_GLOBAL_DELETION and teardrop.cpp: fix incorrect call to GetLayer() for ZONES
2022-03-11 11:16:09 +01:00
Fabien Corona
d452f79860
pcbnew: search for nets
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10601
2022-03-10 23:12:30 +00:00
Seth Hillbrand
f218da6ea5
Help repair invalid rotation settings
...
We had a period where we were writing invalid rotations leading to
values too large by a factor of 100. This clamps the stored values
while repairing those affected
Fixes https://gitlab.com/kicad/code/kicad/issues/11090
2022-03-10 09:44:26 -08:00
Jeff Young
eb9ccea559
Performance improvement.
2022-03-10 13:46:42 +00:00
jean-pierre charras
0440aa3d83
Extend layer LAYER_LOCKED_ITEM_SHADOW to draw shadow markers on other locked items:
...
tracks, texts, graphics.
2022-03-09 18:50:31 +01:00
jean-pierre charras
016af235db
Pcbnew: add a GAL layer (LAYER_LOCKED_ITEM_SHADOW) to draw markers on locked footprints
2022-03-09 17:54:58 +01:00
jean-pierre charras
e37bb2e0c3
swig: disable a few warnings generated by pcb_shape.i, math.i and version.i
2022-03-09 17:29:29 +01:00
Jeff Young
663edcf665
Better progress indication for board from hell.
2022-03-09 14:30:21 +00:00
jean-pierre charras
878c70c1ab
Pcbnew: fix erroneous IslandRemovalMode default mode in board files.
...
The default is ISLAND_REMOVAL_MODE::ALWAYS in *.kicad_pcb files
2022-03-09 13:17:18 +01:00
jean-pierre charras
e7f379c31d
Pcbnew, Knockout texts: fix issues seen with rotated texts.
...
Fixes #11085
https://gitlab.com/kicad/code/kicad/issues/11085
2022-03-09 11:22:05 +01:00
Jeff Young
e4b56ab7f1
Performance fixes for the board from hell....
2022-03-08 23:54:34 +00:00
Jeff Young
392a3ec131
Fix typo which leads to catastrophic performance on boards with tons of zones.
2022-03-08 20:16:37 +00:00
Jeff Young
f6dac9eb13
Support text knockouts in non-copper zones.
2022-03-08 18:06:41 +00:00
Jeff Young
40fd8860fe
Plotting (and some bug fixes) for knockout text.
2022-03-08 18:06:41 +00:00
jean-pierre charras
b6aa5bd1ed
Pcbnew: PCB_TEXT: save the Locked flag in file.
...
Previously, one could lock a graphic text on a board, but the lock state was not saved.
2022-03-08 17:35:26 +01:00
jean-pierre charras
bafd8ac9d5
plot_board_layers.cpp: Add missing layers (USer_x) in list
...
Fixes #11072
https://gitlab.com/kicad/code/kicad/issues/11072
2022-03-08 14:41:10 +01:00
Jeff Young
293021c58c
ADDED: knockout pcb and fp text.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7055
2022-03-08 13:22:20 +00:00
Seth Hillbrand
6934bc124c
Move temp save files to temporary directory
...
Avoid excess writes to the project directory to dodge issues with remote
file systems not fully writing data.
wxRename works across disk boundaries (in theory) and falls back to
wxCopy/wxRemove when it fails
Fixes https://gitlab.com/kicad/code/kicad/issues/10747
2022-03-07 20:13:28 -08:00
Jeff Young
bf0f2aa4a8
Adjust bitmap text spacing a bit so it's closer to the stroke font.
...
This helps the text better match the highlighting when it gets small
enough that we switch to the bitmap font for performance.
2022-03-07 20:30:50 +00:00
Thomas Pointhuber
a9ebb42ecd
altium: Parse keepout restrictions of tracks
2022-03-07 19:58:43 +01:00
jean-pierre charras
f866d15154
Pcbnew: fix crash when clicking on a footprint on a filled zone area.
2022-03-07 13:56:47 +01:00
Jeff Young
bf44ae907b
Minor fix for dialog.
2022-03-07 10:26:18 +00:00