Jeff Young
a23399a1af
Formatting.
2022-04-10 17:29:47 +01:00
Jeff Young
82820d4b1c
Cleanup.
2022-04-09 20:39:35 +01:00
Jeff Young
18fb2ddff6
Coverity fixes.
2022-04-09 20:12:29 +01:00
Jeff Young
8fc652270e
Cleanup.
2022-04-09 20:12:29 +01:00
Roberto Fernandez Bautista
0015574a60
${SHEETNAME} represents the sheet name + introduce ${SHEETPATH}
...
CHANGED: The text variable ${SHEETNAME} now always represents the name of the
sheet when used anywhere in the schematic editor, including the title block
ADDED: A new text variable ${SHEETPATH} which is replaced with the path to the
current sheet - e.g. "/Sheet 1/Sheet 2".
To ensure backward compatibility, the default drawing sheet now uses
${SHEETPATH}. Custom drawing sheets will need to be manually edited.
2022-04-09 15:45:58 +01:00
jean-pierre charras
5e52539939
eagle importer: fix incorrect conversion UTF8/wxString.
...
When importing a eagle board file using wxXmlDocument, the strings in eagle BOARD
(UTF8 encoded) are correctly converted to wxString (using unicode wide chars)
So trying to reconvert these strings using FROM_UTF8( <wxString>.c_str() )
is incorrect and can break initial string if non ASCII7 chars are found
2022-04-09 15:33:01 +02:00
jean-pierre charras
1d5be1adeb
Cairo GAL: fix incorrect size and thickness of text drawn by GAL::BitmapText()
2022-04-08 18:40:26 +02:00
Jeff Young
722b2588f4
Better error reporting for DP uncoupled length.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10087
2022-04-08 11:40:53 +01:00
Jeff Young
c17b90c8dc
Run pinning on sides as well as corners.
...
Also fixes a bug in LIB_SHAPE's Normalize() which wasn't handling the
upside-down coordinate system.
Fixes https://gitlab.com/kicad/code/kicad/issues/11339
2022-04-07 11:51:58 +01:00
Seth Hillbrand
9fcc641808
Don't set the dirty bit when running DRC
...
Dirty bit is set in the zone filler separately, there is no action in
the DRC that needs to be saved
Fixes https://gitlab.com/kicad/code/kicad/issues/11344
(cherry picked from commit 821fe6ea42
)
2022-04-06 17:05:19 -07:00
Seth Hillbrand
b66df1e4f3
Remove dead code
2022-04-05 16:26:08 -07:00
Jeff Young
0bd3341f0f
Allow textboxes to have no text. (They still have a defined box.)
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11286
2022-04-05 16:29:21 +01:00
Jeff Young
c591e19e9f
Smarten textbox conversion back to cardinal rectangle.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11302
2022-04-05 15:12:56 +01:00
Jeff Young
68ca385e07
On-the-fly translations for pin electrical types.
...
Also add on-the-fly translation for editor title bars.
Fixes https://gitlab.com/kicad/code/kicad/issues/11324
2022-04-05 13:57:28 +01:00
Jeff Young
a118249093
NPTHs obey HOLE_CLEARANCE, not CLEARANCE.
...
Also, plating thickness appears on both walls, so diameter is drill
plus 2X plating thickness.
2022-04-04 20:43:08 +01:00
Jeff Young
f272056f20
Fix assert.
2022-04-04 20:43:08 +01:00
Jeff Young
921181b20b
Cleanup.
2022-04-04 20:43:08 +01:00
Seth Hillbrand
1926af0c34
UNDEFINED_LAYER is always flashed
...
This is already true for vias and should be true for pads as well
Fixes https://gitlab.com/kicad/code/kicad/issues/11335
(cherry picked from commit 7d96d5940d
)
2022-04-04 12:26:50 -07:00
Jeff Young
7f7910d922
Dirty text caches in pcb point editor.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11319
2022-04-04 17:39:58 +01:00
Jeff Young
fd9fd1df05
Careful of skipping non-flashed pads for performance: they might still have a hole.
2022-04-04 15:03:01 +01:00
jean-pierre charras
dad31f50b7
VRML export: fix a different arc to segment approx for NP holes and Plated holes.
2022-04-04 14:42:29 +02:00
jean-pierre charras
ece9c45e95
VRML exporter: make export faster by using SHAPE_POLY_SET::PM_FAST.
2022-04-04 12:25:48 +02:00
jean-pierre charras
d05f5337ed
VRML export: fix different error values to approximate arcs depending on options.
...
When exported with option "link 3D shapes to external files", the error value
was bigger because the VRML unit used in calculations differs from the one used
when merging 3D shapes in board file (for historical reasons).
Fixes #11326
https://gitlab.com/kicad/code/kicad/issues/11326
2022-04-04 12:25:48 +02:00
Jeff Young
90af5a36d2
Show hole clearance lines around NPTH pads.
...
Also make the clearance line NONPLATED_HOLES colour, not the PADS_TH
colour.
2022-04-04 10:28:33 +01:00
Jeff Young
f22316b868
Careful about hiding pad layers.
...
We also draw netnames and clearance lines based on some of these layers.
2022-04-04 10:28:33 +01:00
Jeff Young
aee5ff8935
Make sure text caches get updated on move.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11319
2022-04-02 22:37:55 +01:00
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
Jeff Young
0dc857b5ab
Clean up pad handling in 3D viewer.
...
Most importantly, create F_Cu/B_Cu layers if they're otherwise empty
but we have plated pads to render on them.
Fixes https://gitlab.com/kicad/code/kicad/issues/10207
2022-03-06 13:57:12 +00:00
jean-pierre charras
dbfdd3fb56
Fix some Coverity warnings.
2022-03-06 09:48:33 +01:00
Frank Palazzolo
3cb1a689a7
pcbnew: Fix Bezier "Add Primitive" in Pad Creation Dialog
2022-03-06 00:35:53 +00:00
Jeff Young
1fc99dd2c0
Don't call GetLayer() on a multi-layer object.
2022-03-05 23:07:43 +00:00
Jeff Young
23088e6e1a
Minor performance enhancements for zone filler.
...
Be smarter about not knocking out some classes of pads twice.
2022-03-05 20:32:08 +00:00
Jeff Young
fed5bcbdf6
Improvements for pads/vias in zones which knockout other zones.
...
1) Drop tiny islands which might cause connection problems.
2) Cleanup some dead code in filler
3) Don't estabilish a connection to an island that is fully covered
by whatever its connecting to.
Fixes https://gitlab.com/kicad/code/kicad/issues/11036
2022-03-05 18:59:53 +00:00
Jeff Young
878c4d2f6b
Must clear arcs before calling Clipper.
2022-03-05 18:59:53 +00:00
Jon Evans
cb6d6d7ef4
Settings: allow multiple project access from Python standalone
...
We can't handle this in the UI, but we can externally, so allow
it for Python scripting and eventually we'll use this in the UI
also...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10540
(cherry picked from commit 1394509734
)
2022-03-05 13:04:19 -05:00
jean-pierre charras
69453964b4
pcbnew_scripting_helpers: fix a potential crash when running a script outside kicad.
...
BOARD* LoadBoard( wxString& aFileName, IO_MGR::PCB_FILE_T aFormat ) crashes if a
old project file (*.pro) exists and the *.kicad_pro file doses not exists.
The crash happens when trying to convert the old config outside kicad.
2022-03-05 18:26:33 +01:00
jean-pierre charras
cc5493e91e
DIALOG_COPPER_ZONE_BASE: better tool tip.
2022-03-05 18:23:08 +01:00
jean-pierre charras
3bb1fd8311
Teardrops: fixes and enhancements:
...
- do not allow smoothing outlines: outlines are already optimized.
- do not allow settings incompatible with teardrop area (grid, thermal relief)
- DIALOG_COPPER_ZONE: export zone settings to similar zones only.
Fixes #11040
https://gitlab.com/kicad/code/kicad/issues/11040
2022-03-05 17:18:42 +01:00
Seth Hillbrand
c18d9b9baf
Normalize `IsInsideCourtyard`
2022-03-04 15:49:02 -08:00
Seth Hillbrand
cd7141fd10
Cache read arc data for stability
...
Arcs can be altered by the process of changing from on-disk
representation to in-memory representation. Saving back to disk without
modifying the arc should not modify the calculated values.
This stores a copy of the on-disk representation that is only used to
save back to disk in the event that the arc is not modified during
editing.
Fixes https://gitlab.com/kicad/code/kicad/issues/10442
2022-03-04 15:20:31 -08:00
Seth Hillbrand
8218f9ab44
Finally found the intermittant QA crash
...
When loading footprints/zones in parallel, we cannot reference a static
vector that gets cleared by other threads.
It is unclear why this element was ever static to begin with (premature
optimization?) but it has been this way for a long time. We never
noticed until we threaded load cycles, which gave the hatch a chance to
override itself and cause crashes
Fixes https://gitlab.com/kicad/code/kicad/issues/9888
2022-03-04 11:37:49 -08:00
jean-pierre charras
006e1be69c
ZONE: display number of vertices on the info panel (regression fix)
...
This is a useful info because the calculation time depend on this number.
2022-03-04 10:42:32 +01:00
Seth Hillbrand
e7673f7198
Remove unneeded condition to rotate
...
The condition that the board must have elements on it before allowing
the rotate command is invalid as we allow rotating new elements before
placement
Fixes https://gitlab.com/kicad/code/kicad/issues/10581
(cherry picked from commit c1dcfdffb1
)
2022-03-03 16:04:22 -08:00
Seth Hillbrand
b5c2f0d39a
Remove the open array in favor of std containers
...
The containers allow iteration, size knowledge and lower bug surface
2022-03-03 16:03:26 -08:00
Jeff Young
2d1fa48a73
Improve solder paste tooltips.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10585
2022-03-03 23:08:36 +00:00
Jeff Young
c4b6801f3a
Improve some strings and measurements.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10482
2022-03-03 22:40:18 +00:00
Jeff Young
ec5b7a57ec
Consistency in via dimensions terminology.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11024
2022-03-03 22:40:18 +00:00
Seth Hillbrand
9d927f3135
Check for additional connections between tracks
...
Prevents removal when a track is connected not just to other tracks but
also other connected items
Fixes https://gitlab.com/kicad/code/kicad/issues/10916
2022-03-03 12:07:20 -08:00
jean-pierre charras
27db23eba0
FP_TEXT::ViewGetLOD() fix incorrect test (LAYER_MOD_VALUES color has no matter)
...
Fixes #11026
https://gitlab.com/kicad/code/kicad/issues/11026
Fixes #11028
2022-03-03 11:57:19 +01:00
Tomasz Wlostowski
adace996f4
qa/pns: refactored the P&S debug tool:
...
- factored out 'business' code from the UI code
- moved to the new DEBUG_DECORATOR interface
- UI-less log file and log player classes as a step towards P&S unit tests
2022-03-03 01:02:00 +01:00
Tomasz Wlostowski
45f7cf9571
router: rework the DEBUG_DECORATOR a bit:
...
- support for dumping complete PNS::ITEMs and generic SHAPEs
- support for log nesting levels
- wxT-ized strings
- more verbose output where needed
2022-03-03 01:02:00 +01:00
Tomasz Wlostowski
b6fc96c1d5
pcbnew: check for null SETTINGS in RATSNEST_VIEW_ITEM (prevents crash in the P&S debug tool)
2022-03-03 01:02:00 +01:00
Seth Hillbrand
2fafa55647
Maintain width of converted tracks
2022-03-02 10:45:53 -08:00
Seth Hillbrand
7e836ae27a
Select the copper layer before processing
...
If we are converting to tracks, the copper layer needs to be selected
before any other elements are processed, otherwise, we end up with the
default undefined layer
Fixes https://gitlab.com/kicad/code/kicad/issues/11025
(cherry picked from commit 9396735733
)
2022-03-02 10:41:44 -08:00
Jeff Young
513486b0ec
Overhaul show no-net indicators logic.
...
It doesn't appear that it was ever finished the first time around.
Fixes https://gitlab.com/kicad/code/kicad/issues/11020
2022-03-02 18:28:39 +00:00
Jeff Young
6b806bbe9c
Make sure Cleanup handles shapes other than segments.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10955
2022-03-02 18:28:39 +00:00
Seth Hillbrand
4d6c2e4868
Update end item before moving on track/via change
...
The move even dereferences m_enditem for logging and perhaps other
actions. We need to ensure that the end item has not been invalidated
before taking this action
Fixes https://gitlab.com/kicad/code/kicad/issues/10732
(cherry picked from commit 901c330478
)
2022-03-02 09:23:15 -08:00
Jeff Young
495b42c39f
Fix logic error. Footprint is sometimes the item and sometimes its parent.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10949
2022-03-01 21:18:01 +00:00
Jeff Young
298940e3d3
Switch zone auto-fill default to false.
2022-03-01 19:27:00 +00:00
Jeff Young
0677ef6510
Default isolated copper DRC violation to a warning.
2022-03-01 19:21:09 +00:00
Jeff Young
1966972fc1
Retire no-pads warning in favour of defaulting to area-based remove islands strategy.
2022-03-01 19:19:18 +00:00
Jeff Young
c4143b0ff6
Reconcile two different printing bug fixes.
...
a9f092b370
6f5cb1f97d
Fixes https://gitlab.com/kicad/code/kicad/issues/11004
2022-03-01 17:28:37 +00:00
Jeff Young
bbfbfc2cd2
High-contrast mode: don't render vias that don't cross high-contrast layer.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/8740
2022-03-01 16:00:28 +00:00
Jeff Young
843a56c4e4
Implement two-staged zone priority: assigned priority followed by UUID.
2022-03-01 14:53:35 +00:00
Jeff Young
914e706023
Replace zone-with-no-pads test with isolated copper test.
...
The later is far more discriminating.
Fixes https://gitlab.com/kicad/code/kicad/issues/11009
2022-03-01 12:02:17 +00:00
Jeff Young
661488e932
Be more cognizant of multi-layer items.
2022-03-01 12:02:17 +00:00
Jeff Young
a4a3f6ff74
Fix zone/connectivity deadlock.
2022-03-01 12:02:17 +00:00
Seth Hillbrand
fab78af176
Remove TEDIT
...
This marker is not used in KiCad and creates merge conflicts when two
different users edit the same file
2022-03-01 00:25:44 +00:00
Jeff Young
58b8d63ff8
Draw boundary based on first zone layer.
2022-02-28 21:40:36 +00:00
Jeff Young
69a6033905
Hysteresis for track netnames.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10416
2022-02-28 21:11:01 +00:00
jean-pierre charras
aa0787f2b4
Gerber plotter: fix broken plot of SHAPE_LINE_CHAIN with arcs.
...
Also simplify SHAPE_T::POLY plot.
Fixes #10989
https://gitlab.com/kicad/code/kicad/issues/10989
2022-02-28 18:10:16 +01:00
Jeff Young
1f16092e29
Infobar warning if symbol loading was cancelled.
...
Also makes sure the progress dialog is closed when we're done reading
symbols (it used to stay up for much of the symbol editor initialization).
Also makes sure that any cancel in the preLoad step is honoured in the
sync step. (The preload is done because it is multi-threaded and therefore
faster than the single-threaded sync.)
Also makes sure that individual threads pay attention to the cancellation,
not just the GUI thread.
Fixes https://gitlab.com/kicad/code/kicad/issues/8372
2022-02-27 17:06:08 +00:00
Jeff Young
d299ddbc7e
Cleanup.
2022-02-27 12:05:39 +00:00
jean-pierre charras
8de4f762e1
svg importer: fix a crash when importing some files with no graphic item
2022-02-27 09:59:42 +01:00
jean-pierre charras
a178de8744
FP editor: fix crash when trying to export a footprint to the board editor.
2022-02-27 08:38:19 +01:00
Jeff Young
ae85f57577
Drop a knee between tracks to a single item when dragging.
...
This prevents the disambiguation menu from coming up when we don't
really care which element we start the drag on.
Fixes https://gitlab.com/kicad/code/kicad/issues/10745
2022-02-26 22:54:23 +00:00
Jeff Young
2c6a2c3479
Repair tab order in Footprint Properties dialog.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10978
2022-02-26 16:41:22 +00:00
jean-pierre charras
e61c48fbf2
DIALOG_BOARD_STATISTICS: Reset the drill count list before recalculations.
...
Fixes #10984
https://gitlab.com/kicad/code/kicad/issues/10984
2022-02-26 17:03:48 +01:00
Jeff Young
89c14f01f7
Repair algorithm to avoid slow movement issue.
...
This goes back to the previous code for this one part.
Fixes https://gitlab.com/kicad/code/kicad/issues/10976
2022-02-26 15:58:44 +00:00
jean-pierre charras
0e00ca31ea
APPEARANCE_CONTROLS: fix missing update when toggling a layer view.
...
Fixes #10977
https://gitlab.com/kicad/code/kicad/issues/10977
2022-02-26 10:36:57 +01:00
Seth Hillbrand
c9746fb34b
Handle list double-click without shortcuts
...
The LIST_DCLICK event can be fired by spacebar or enter in GTK. This
conflicts with using the spacebar to reset local coordinates. Instead,
we capture the double-click event manually to add the footprint to the
board
Fixes https://gitlab.com/kicad/code/kicad/issues/5714
Fixes https://gitlab.com/kicad/code/kicad/issues/10633
(cherry picked from commit ff6f398607
)
2022-02-25 16:53:27 -08:00
Seth Hillbrand
535ea800c0
Honor modifier keys in diambiguation
...
Needs to be reset for the new action before selecting elements at a
point.
Fixes https://gitlab.com/kicad/code/kicad/issues/9712
(cherry picked from commit a30ad0b54a
)
2022-02-25 16:16:15 -08:00
Steffen Mauch
78620347c8
Fixing Eagle refs that do not work with KiCad
...
KiCad has stricter requirements for what consititutes an annotated
symbol. This checks for and corrects annotations that begin with '#',
do not begin with a non-numeric character or do not end with a number
2022-02-25 23:42:47 +00:00
Jeff Young
714c65275c
Initial focus for Get and Place Footprint.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10230
2022-02-25 21:54:38 +00:00
Seth Hillbrand
283aaff2df
Use board polygon instead of bbox for size
...
Board BBox uses the visible size of the board, which includes edge cut
thickness. This is not appropriate for the Board characteristics.
Using the outline polygon gives accurate results and falls back to a
bounding box in the case where the outline is invalid
Fixes https://gitlab.com/kicad/code/kicad/issues/10972
(cherry picked from commit 54f621c570
)
2022-02-25 11:14:54 -08:00
jean-pierre charras
a7b8a1446b
fix minor compil warnings.
2022-02-25 14:26:37 +01:00
Jeff Young
bc51c89c90
Reconcile zone-auto-fill with undo.
2022-02-25 13:05:49 +00:00
jean-pierre charras
77f1aad77e
Fix incorrect conversion from lines to rect in fp editor.
...
Fixes #10965
https://gitlab.com/kicad/code/kicad/issues/10965
2022-02-25 12:41:57 +01:00
Seth Hillbrand
3ac121620d
Handle negative arc angles
...
Plotter expects the arc angles to be positive, so check and flip before
plotting if we have track arcs that might be negative angles
Fixes https://gitlab.com/kicad/code/kicad/issues/10968
2022-02-24 17:27:08 -08:00
Jeff Young
5c54f40eae
Layer visibilities aren't stored in project for footprint editor.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10953
2022-02-25 00:08:49 +00:00
Jeff Young
639fdb915a
Implement real layer test for visibility.
2022-02-24 21:32:43 +00:00
Jeff Young
d65f9ad2d8
Implement multi-layer stitching via logic.
2022-02-24 21:32:43 +00:00
Jeff Young
369f53bb19
Better DRC checking when placing vias.
2022-02-24 21:32:43 +00:00
Jeff Young
b7be42375d
Add an infobar warning when trying to fill a zone which is not connected.
2022-02-24 21:32:43 +00:00
jean-pierre charras
c924b0155e
DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS: fix a wx alert.
2022-02-24 19:33:29 +01:00
Greg Davill
429c311ec3
action_plugin: Remove duplicated entry in UndoList
2022-02-24 18:31:16 +00:00
Jeff Young
d465eb6425
ADDED: automatic zone refilling.
...
This is for the out-of-box experience for novice users. It is presumed
that folks with larger more complicated boards will turn it off.
Fixes https://gitlab.com/kicad/code/kicad/issues/6413
2022-02-24 18:16:45 +00:00
Jeff Young
f076d07e9e
Fix asserts.
2022-02-24 18:16:45 +00:00
jean-pierre charras
8ef4ef8d96
fp texts are not upright when footprint rot is not n*90deg
...
Fixes #10882
https://gitlab.com/kicad/code/kicad/issues/10882
2022-02-24 09:08:09 +01:00
Jeff Young
d2069e1548
Copy Pad_Master when copying BOARD_DESIGN_SETTINGS.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10932
2022-02-23 18:11:27 +00:00
Jeff Young
cb16ad7557
Debounce layer visibility buttons and fix issues with FP Editor.
2022-02-23 17:52:08 +00:00
Jeff Young
a36bc27e6d
Fix a couple of asserts.
2022-02-23 17:38:51 +00:00
Jeff Young
08df5c0b01
Handle hidden layers in FP Editor.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10946
2022-02-23 15:31:07 +00:00
Jeff Young
6e35406015
Fix copy/pasta.
2022-02-23 12:21:07 +00:00
Jeff Young
41f6e634c6
Partially integrate grid snapping with constraints.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10941
2022-02-22 22:19:55 +00:00
jean-pierre charras
6d5d6d7302
PCB_EDIT_FRAME: do not forget to pass wxIdleEvent to other clients.
2022-02-22 19:51:32 +01:00
Jeff Young
e6c617b74d
Respect ERROR_OUTSIDE when inflating polygons.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10896
2022-02-21 15:19:46 +00:00
Jeff Young
79c7859052
Apply a19d9105f0
to zone case as well.
...
Also improves on the previous comments.
Fixes https://gitlab.com/kicad/code/kicad/issues/10922
2022-02-21 13:48:34 +00:00
Jeff Young
d9d23dd06b
Commenting.
2022-02-21 12:26:59 +00:00
Jeff Young
5544dd8018
Don't call GetLayer() on a multi-layer object.
2022-02-21 00:08:43 +00:00
Jeff Young
aa2c8e9b0c
A more discerning un-flashed-connectivity test.
2022-02-20 23:49:02 +00:00
Jeff Young
78ae3d286a
Fix merge damage.
2022-02-20 21:25:50 +00:00
Jeff Young
fad4c135fa
Use only a physical connection to determine flashing of pads.
...
Checking for proper nets just confuses things when the nets are set
wrongly for some reason. This way we generate clearer DRC errors.
Fixes https://gitlab.com/kicad/code/kicad/issues/10645
2022-02-20 20:54:56 +00:00
Jeff Young
866fade4ab
Remove unnecessary validations.
...
Not sure if this will fix the bug or not as I can't reproduce it, but
I'd say odds are pretty good.
Fixes https://gitlab.com/kicad/code/kicad/issues/10467
2022-02-20 20:54:47 +00:00
Thomas Pointhuber
52a2d52bf0
altium: Parse solder and paste mask settings of tracks and arcs
2022-02-20 20:18:40 +01:00
jean-pierre charras
5efd29d6f4
Optimize DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS: a time consuming call (OnModify())
...
was made for each item change.
It is now made only once.
Fixes #10905
https://gitlab.com/kicad/code/kicad/issues/10905
2022-02-20 20:07:33 +01:00
Jeff Young
df3291c59d
Fix nullptr error (no router tool in footprint editor).
2022-02-20 16:56:53 +00:00
Jeff Young
f18aae679c
Use router to update message panel when routing.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10068
2022-02-20 16:50:30 +00:00
jean-pierre charras
d2cf68bcdd
Plotters: add plot Arcs using EDA_SHAPE or center, start point and end point.
...
It avoid trying to calculate arc angles (start, end or arc angle) that
frequently create issues due to reverse Y axis, plot mirrored and/or
angle normalization with different criteria.
Fixes #10914
https://gitlab.com/kicad/code/kicad/issues/10914
2022-02-20 17:17:20 +01:00
Jeff Young
85805b95ba
Cancel or commit pad edit mode when switching footprints.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10209
2022-02-19 19:36:19 +00:00
Thomas Pointhuber
8ef7252330
altium: Don't use string concatenation for paths pointing in the compound file
...
* std::vector do not need to be split apart again
* supports backslash in footprint names
2022-02-19 16:46:20 +01:00
Jeff Young
6ce63d66e8
On-the-fly language updating for appearance panel & selection filter.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10040
2022-02-19 14:59:51 +00:00
Jeff Young
86988225c3
Exclude some fab attrs from library parity check.
...
Also excludes zone outline hatching, which is just a visualization
property.
Fixes https://gitlab.com/kicad/code/kicad/issues/10903
2022-02-19 14:59:50 +00:00
Thomas Pointhuber
86c025eb30
altium: Fix parsing of zones which use the KEEP_OUT_LAYER
2022-02-19 14:37:05 +01:00
jean-pierre charras
b184b43431
PCB_DIM_ALIGNED and DIALOG_DIMENSION_PROPERTIES: fix bad text rotation.
...
Fixes #10901
https://gitlab.com/kicad/code/kicad/issues/10901
2022-02-19 10:24:44 +01:00
Seth Hillbrand
a19d9105f0
Fix SolderBridge check to only check across multiple
...
We should not generate an error when overlapping a single copper element
with a soldermask that is not associated with copper.
Fixes https://gitlab.com/kicad/code/kicad/issues/10906
2022-02-18 11:47:28 -08:00
Seth Hillbrand
f0e4448a9d
Remove broken call to normalize outlines
...
We should never be editing the user's outlines for them. This creates
broken zones that are hard to repair. In this case, there was also a
secondary zone with no outline that would crash the system
Fixes https://gitlab.com/kicad/code/kicad/issues/10904
(cherry picked from commit f0d7a09af9
)
2022-02-18 09:31:52 -08:00
jean-pierre charras
7de0159e0e
pcbnew: fix incorrect calculation of the board thickness from board stackup.
...
dielectric sub layers were not taken in account.
Fixes #10899
https://gitlab.com/kicad/code/kicad/issues/10899
2022-02-18 18:09:16 +01:00
Jeff Young
6f6cf995ba
Don't ask for layer of multi-layer item.
2022-02-18 14:53:10 +00:00
Jeff Young
1ee3ce45e8
Don't ask for layer of multi-layer objects.
2022-02-18 14:19:13 +00:00
Jeff Young
89907a18ce
Don't ask for layer of multi-layer object.
2022-02-18 13:30:40 +00:00
Jeff Young
ce0233577b
Don't try to fetch layer of multi-layer objects.
2022-02-18 13:20:36 +00:00
Jeff Young
81bed9ab96
Add zone margin when subtracting other graphics and zones.
...
It was already added for pads and tracks, but not the other objects.
Fixes https://gitlab.com/kicad/code/kicad/issues/10896
2022-02-18 13:20:36 +00:00
Jeff Young
e09ecd8380
Don't ask for layer of multi-layer objects.
2022-02-18 13:20:36 +00:00
jean-pierre charras
2fddc9daf3
Pcbnew: fix missing connectivity update when adding an item.
...
Skipping connectivity update when adding an item is possible only when loading a file
Fixes #10879
https://gitlab.com/kicad/code/kicad/issues/10879
2022-02-18 13:24:14 +01:00
Jeff Young
8ee81e0fc4
Fix plotting of PCB arcs.
2022-02-18 12:14:38 +00:00
Jeff Young
5efa354f0f
Add asserts to flush out incorrect uses of GetLayer().
2022-02-18 12:14:38 +00:00
Seth Hillbrand
3a29d94c0a
Prevent merging tracks across pads
...
When merging co-linear tracks, we should maintain the existing break if
it exists on pads, vias and other connection points
2022-02-17 19:43:04 -08:00
Jeff Young
8f670552a6
Allow Rule Areas on all physical layers.
...
Required to do things like modify silk_clearance rules.
2022-02-17 23:59:09 +00:00
Jeff Young
4966e2ebc2
Fix collapsing name column in Net Inspector.
2022-02-17 23:59:09 +00:00
Jeff Young
bc24002be7
Don't print clearance lines.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10883
2022-02-17 23:59:09 +00:00
Seth Hillbrand
cf88b9aaec
Maintain connectivity while cleaning tracks/vias
...
When merging segments that loop back on each other, we need to merge
them in such a way to to keep the resulting endpoints connected to the
original adjoining endpoints
Fixes https://gitlab.com/kicad/code/kicad/issues/10780
(cherry picked from commit 8e9d44942f
)
2022-02-17 15:24:54 -08:00
Jeff Young
8d19b52aed
Line stroking for 3D view.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10887
2022-02-17 18:02:56 +00:00
qu1ck
b53b68c686
Fix double loading plugins and sys.path entires multiplying
2022-02-17 17:41:52 +00:00
jean-pierre charras
e140298878
GERBER_JOBFILE_WRITER: allows all *_User layers to be listed in *gbrjob file.
2022-02-17 15:22:18 +01:00
Jeff Young
662fb40605
Slightly cleaner impl.
2022-02-17 12:48:29 +00:00
jean-pierre charras
529d598c36
GERBER_JOBFILE_WRITER: fix missing handling of User_1 to User_9 user layers.
...
Fixes #10878
https://gitlab.com/kicad/code/kicad/issues/10878
2022-02-17 11:41:23 +01:00
jean-pierre charras
5a9fb08778
zone_filler_tool: fix crash due to a null pointer use in zone filler.
...
Fixes #10875
https://gitlab.com/kicad/code/kicad/issues/10875
2022-02-17 09:21:14 +01:00
qu1ck
a041492736
SWIG mappings for all shapes
2022-02-16 20:58:52 +00:00
Jeff Young
b1bd8421e0
Performance: remove associated triangle sets when removing outline.
...
This saves us having to re-triangulate at the end of zone filling.
2022-02-16 17:00:54 +00:00
Jeff Young
327ddad79f
Performance: get rid of rawPolys / finalPolys distinction.
...
(The final fractured polys are required, and we don't really ever use
the raw polys anyway, so they were removed.)
2022-02-16 15:33:12 +00:00
Jeff Young
08383e923c
Formatting.
2022-02-16 14:18:25 +00:00
Jeff Young
ca095896cb
Performance: multi-thread CN_ZONE_LAYER RTree generation.
2022-02-16 14:11:09 +00:00
Jeff Young
3b292a4941
Cleanup and code clarity.
2022-02-16 12:00:18 +00:00
Jeff Young
7ddd3137a3
While flags are in prefs, actual clearance values are in board setup.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10852
2022-02-15 22:15:53 +00:00
Thomas Pointhuber
fc5772ad92
altium: Extend test-suite to support FP_ZONE validation
2022-02-15 21:42:03 +01:00
Jeff Young
72a389e612
Performance: check line ends first before doing collision.
2022-02-15 19:19:03 +00:00
Jeff Young
2172810600
Performance: better sharing of zone fills.
2022-02-15 19:19:03 +00:00
Jeff Young
d8c4f2cb09
Performance improvements for zone filler.
2022-02-15 19:19:02 +00:00
Jeff Young
8e26946567
Don't shrink progress reporter when message changes; only grow.
2022-02-15 19:19:02 +00:00
Mikolaj Wielgus
9fae9e8afc
Fix sizing of the two last columns in drill statistics table
2022-02-15 17:19:11 +01:00
Jeff Young
5c9e718407
Performance enhancements for connectivity.
...
1) Generate SHAPE_POLY_SET triangulation by outline so they can be
shared between connectivity system and other clients.
2) Don't add items to connectivity when reading board; we're going
to do a total rebuild anyway.
3) Use multithreading when caching triangulation.
2022-02-15 12:20:34 +00:00
Jeff Young
98b9c6e2a1
Better progress reporting and a slight performance boost on commit.
2022-02-15 12:20:34 +00:00
Jeff Young
d2de114d21
More performance optimizations.
2022-02-15 12:20:34 +00:00
Mikolaj Wielgus
7632c0cf6f
Fix board statistics drill grid column sizing
...
And remove the horizontal scrollbar.
2022-02-15 01:40:53 +01:00
jean-pierre charras
a455dd8815
Fix issue for stand alone python scripts, when running without project.
2022-02-14 18:58:55 +01:00
Seth Hillbrand
d2dc1f4623
Format string for translation
...
(cherry picked from commit 6147e997ff
)
2022-02-14 09:19:02 -08:00
jean-pierre charras
876061369b
Fix some Pcbnew crashes due to null pointers
2022-02-14 13:46:05 +01:00
jean-pierre charras
0eddbe02c1
DIALOG_NETLIST_IMPORT: minor fix
2022-02-14 07:53:00 +01:00
Jeff Young
d07910de06
Improve performance of checkZoneZoneConnection.
2022-02-14 01:15:06 +00:00
Tomasz Wlostowski
018f4531a5
Fixes in the SVG import polygon postprocessing:
...
- don't drop subsequent polys when a non-filled primitive is imported 'in between'
- fix missing holes (also related to the interleaving of stroke and filled shapes, depending on the software that wrote the SVG file)
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10813
2022-02-14 00:54:31 +01:00
Graham Keeth
4442f76add
update custom rule syntax help to make diff pair rule examples clearer
2022-02-13 13:47:18 -05:00
Jeff Young
fe7e72538e
Don't force user to be overly pedantic when writing diffpair rules.
2022-02-13 18:16:13 +00:00
Jeff Young
022e7385f9
Beautify the Rule Area Properties dialog.
2022-02-13 18:16:13 +00:00
jean-pierre charras
bff97df5f9
Fix a compil warning, at least on my msys install.
2022-02-13 16:26:05 +01:00
jean-pierre charras
cdd32df3a0
Import netlist: fix issues: do not read netlist before it is selected.
...
Now the netlist must be explicitly selected and read instead of beeing
read during dialog creation.
It also avoid a useless netlist read when closing the dialog or trying
to change the netlist filename.
2022-02-13 16:04:38 +01:00
Jeff Young
b7c9a1ad55
Fix repaints getting done after the wrong dialog.
2022-02-13 13:06:35 +00:00
Jeff Young
c4e133fdf7
Auto reduction and std::shared_ptr cover types reduction.
...
And a performance optimization or two resulting from above. (Using
const& intead of copying std::shared_ptrs.)
2022-02-13 12:04:03 +00:00
Jeff Young
90f6edad61
Move connectivity algo to collision-based routines.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/1800
Fixes https://gitlab.com/kicad/code/kicad/issues/1769
2022-02-13 00:35:11 +00:00
Jeff Young
a2ca8cf413
Improve SNR.
2022-02-12 18:38:11 +00:00
Jeff Young
8dcc933fc3
Don't use bounding box cache during insideArea.
...
For starters we can't rely on it having been updated, but we also
cache the entire result so there's no huge cost-savings anyway.
Fixes https://gitlab.com/kicad/code/kicad/issues/10821
2022-02-12 18:38:11 +00:00
jean-pierre charras
e742eea7ed
DIALOG_NON_COPPER_ZONE and DIALOG_RULE_AREA_PROPERTIES: add option to set the pitch
...
of hatches around the zone outlines
2022-02-12 18:57:03 +01:00
jean-pierre charras
d553d620c1
DIALOG_COPPER_ZONE: add option to set the pitch of hatches around the zone outlines
...
This parameter exists since the beginning, but never show in this dialog
2022-02-12 18:57:02 +01:00
Thomas Pointhuber
81b4229e12
altium: Improve test-coverage of *.PcbLib import functionality
...
* Add test-code for pads
* Move test-code into board_test_utils.cpp for reuse, one method per object
* Add a real (rather small) Altium footprint for testing purposes
2022-02-12 16:50:25 +01:00
Jeff Young
93c7046a77
Return nominal pad shape when a specific layer isn't specified.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10755
2022-02-11 22:09:22 +00:00
Jeff Young
00934fdd84
Move GUI queries in PLUGIN to a callback.
...
Also makes sure legacy zone fills get deleted and re-filled (since
just dropping the outline will change them).
2022-02-11 22:09:22 +00:00
Jeff Young
300ee022fa
Drop unsupported fills. No reason to keep them around.
...
Also removes the long-dead segment fill data structures.
2022-02-11 22:09:22 +00:00
dsa-t
68655540eb
Clamp cursor to limits of coordinates representation
...
Also improves large distance handling.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8846
2022-02-11 16:42:52 +00:00
Jeff Young
3deaf902bb
Retire the V5 zone fill algorithm.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10578
2022-02-11 13:10:52 +00:00
Jeff Young
50a4d610a6
Be cognizant of flashed layers when generating pad shapes.
2022-02-11 13:10:52 +00:00
Jeff Young
6e063247e5
Move CN_VISITOR from HitTest() to Collide().
...
The former isn't sufficiently aware of layer differences (such as for
pads with some layers unflashed).
2022-02-11 13:10:52 +00:00
Jeff Young
082c6f5bd6
Make sure plotter uses default font when specified.
2022-02-10 20:33:06 +00:00
木 王
261b1df47f
fix-npth
2022-02-10 10:06:59 +00:00
Thomas Pointhuber
3f36e7d725
altium: Start with a test-suite to validate that *.PcbLib footprints are correctly imported
...
The test simply loads every footprint of a library, and compares all elements with an equivalent
KiCad footprint. This allows us to quickly spot regressions in the altium and kicad footprint importer,
and any code in-between. This test is only a demo, as the checks are still incomplete and quite a few
tests are missing.
It has to be noted that mask expansion is not supported rigt now by the altium importer, thus the
reference footprint is adjusted to keep the test happy.
2022-02-09 22:34:04 +01:00
Jeff Young
ca56de7816
Show DRC overflows in both tab titles and number badges.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10617
2022-02-09 17:04:32 +00:00
Wayne Stambaugh
06e00c7957
Fix shadow variable compile warning in text DRC provider.
2022-02-08 09:26:12 -05:00
Jeff Young
3b5474f190
Don't punt on TrueType char thickness; analyze it.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10740
2022-02-08 14:10:37 +00:00
Jeff Young
137edbe3f3
Add disclaimer for TrueType fonts to thickness test.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10740
2022-02-08 14:10:37 +00:00
Jeff Young
3c5ae6d317
Don't let zone cutout on different layer confuse us about intersections.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10583
2022-02-08 14:10:37 +00:00
Jeff Young
091055fa1d
Don't count track as a pre-existing connection.
2022-02-08 14:10:37 +00:00
jean-pierre charras
534dc1ba8a
DRC dialog: very minor enhancement: add a busy cursor during tests.
2022-02-08 07:33:01 +01:00
Seth Hillbrand
51d7b49067
Don't halt expansion on zero-length
...
We avoid counting endpoints for tracks that have no length
2022-02-07 13:53:42 -08:00
Jeff Young
5ce559176d
Overhaul the font metrics calcs for overbar, italics and bboxes.
2022-02-07 17:36:40 +00:00
Seth Hillbrand
162545ddf0
Validate arc output when editing
...
Handles checking output of the arc to ensure we don't end up generating
an invalid arc. Also keeps the limit of the arc angle to be (360,360)
excluding 0.
Fixes https://gitlab.com/kicad/code/kicad/issues/10070
(cherry picked from commit 8fc831cbc2
)
2022-02-07 08:55:53 -08:00
jean-pierre charras
2485648a54
Fix typo in a copy/paste and a minor compil warning
2022-02-07 17:32:19 +01:00
Jeff Young
e59aaf05c6
Make sure that GetConnectedItems searches from the root item.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10583
2022-02-06 19:43:25 +00:00
Jeff Young
a60aa68b3a
Don't enforce a max of 4 for minimum-spoke-count.
...
See comments in code.
Fixes https://gitlab.com/kicad/code/kicad/issues/10583
2022-02-06 19:43:25 +00:00
Thomas Pointhuber
79f80c4cd7
altium: Fix Reference and Description parsing of footprint
2022-02-06 16:24:07 +01:00
Marek Roszko
d9c04da407
Sprinkle in some make_unique
2022-02-05 21:26:36 -05:00
Marek Roszko
0a5ddb8d40
Add some vector reservations
2022-02-05 21:12:29 -05:00
Marek Roszko
41f54349a5
Replace inserts/push_backs with emplace in some spots
2022-02-05 19:53:31 -05:00
Jeff Young
34a9a165c9
More wide-string declarations.
2022-02-05 22:26:31 +00:00
Jeff Young
b2e3f03222
More wide-string declarations.
2022-02-05 22:03:04 +00:00
jean-pierre charras
f8ff104003
Fix a compil issue.
2022-02-05 21:29:44 +00:00
Jeff Young
7ccac79192
More wxString wide literals.
2022-02-05 21:29:34 +00:00
Jeff Young
9582457fef
Be explicit about literal wide-strings.
2022-02-05 20:40:21 +00:00
Roberto Fernandez Bautista
290354e3f6
CADSTAR: Fix potential nullptr dereferencing bug
...
Don't assume the footprint will have the pad index that the file references.
2022-02-05 19:20:56 +00:00
Marek Roszko
b9f1aaf029
Fix typoed test condition for TH no hole pads PVS V501
2022-02-05 11:31:56 -05:00
Marek Roszko
193dee11e8
Add missing null check PVS V595
2022-02-05 11:25:09 -05:00
Marek Roszko
8588bea4b2
Avoid potential divide by zero in footprint spreading PVS V609
2022-02-05 11:23:05 -05:00
Marek Roszko
a7ebfc31f9
Fix some leaking objects identified by PVS Studio V773
2022-02-05 11:16:11 -05:00
Seth Hillbrand
57df1b469a
Allow dialogs to force evaluation of UNIT_BINDER
...
When setting previous values, we don't get the "OnFocus" event, so the
evaluation would not get triggered by simply repeating (using the
keyboard)
Fixes https://gitlab.com/kicad/code/kicad/issues/10752
(cherry picked from commit 4c81307391
)
2022-02-04 10:04:54 -08:00
Jeff Young
42917874dd
Add duplicated items to parent group.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10155
2022-02-04 14:26:57 +00:00
Jeff Young
4cc1ced2f3
Log an undo item when filling zones.
...
If we wanted to put it into the parent's undo item, then the *parent*
would need to not start a new undo record. Not starting one in the
zone filler tries to add it to the *previous* change, not to the parent
change.
Fixes https://gitlab.com/kicad/code/kicad/issues/10091
2022-02-04 13:45:32 +00:00
Jeff Young
93c3e6bd16
Clean up formatting.
2022-02-04 13:43:57 +00:00
Jeff Young
8d3e1639d0
Update text variables when they change.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10734
2022-02-04 12:52:46 +00:00
Marek Roszko
ca7840334c
Mark some limits as constexpr
...
gcc doesn't need it and computes during compile regardless, but experimenting in godbolt, both clang and MSVC actually do need it or else it's partially computed at runtime
2022-02-04 07:50:13 -05:00
Seth Hillbrand
917845cf00
Ensure we can version scripting properly
...
Adds Version() and FullVersion() calls to support reporting version to
scripts and scripting window
Fixes https://gitlab.com/kicad/code/kicad/issues/10079
(cherry picked from commit 0a13f15a9d
)
2022-02-03 15:59:10 -08:00
Jeff Young
b9eb3e9b05
Be more explicit about string conversions.
2022-02-03 23:07:41 +00:00
Seth Hillbrand
6905cfb95b
Update error message to match new arc dialog
...
We now provide arc end points and interior angle, so we cannot check for
null radius in the same fashion. Instead, the starpoint==endpoint
indicates a zero radius
Fixes https://gitlab.com/kicad/code/kicad/issues/10714
(cherry picked from commit ef94f31204
)
2022-02-03 14:32:23 -08:00
Seth Hillbrand
168ad58eef
Convert strings to wide when using wxString routines
...
WxString does not allocate space for wide strings needed during
conversion unless the string is explicitly wide. This can cause buffer
over/underflow
Fixes https://gitlab.com/kicad/code/kicad/issues/10605
(cherry picked from commit 7601a3385f
)
2022-02-03 13:08:33 -08:00
Seth Hillbrand
92dc06ac9d
Don't convert KIID on the fly
...
Converting to string on save prevent unneeded ops
(cherry picked from commit 901685f01b
)
2022-02-03 10:35:31 -08:00
jean-pierre charras
a970acd0bc
Fix some issues related to new textboxes and python:
...
- Fix duplicate class names returned by GetClass().
- replace MTEXT name (in GetClass) by better name (FP_TEXT, FP_TEXTBOX...)
- Add missing Cast_to_PCB_TEXTBOX and Cast_to_FP_TEXTBOX
2022-02-03 13:55:37 +01:00
Seth Hillbrand
a2f845a41c
Handle invalid pads more gracefully
...
Pads generated outside of KiCad may have self-intersecting polygons that
simplify to multiple sets. We handle this by adding multiple primitives
for such polygons and limiting our fracture calls to only polygons that
have holes
Fixes https://gitlab.com/kicad/code/kicad/issues/10712
(cherry picked from commit 6d84acfacd
)
2022-02-02 13:40:07 -08:00
Jeff Young
c8d14ade65
Only run starved-thermals checks when pad is actually connected to zone.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10583
2022-02-02 13:09:27 +00:00
jean-pierre charras
27c25debea
teardrops: fix a not very good shape for not round targets after code change.
2022-02-02 13:31:29 +01:00
Steffen Mauch
61b2b0ff0c
EAGLE plugin: use specified RATIO value for text size calculation
2022-02-01 17:58:09 +00:00
jean-pierre charras
e560e765e6
PCB_TEXT::Rotate(): ensure the final orientation is -180 ... +180 deg
2022-02-01 18:07:14 +01:00
Jeff Young
bebfbce9b2
Move pcb file rep of text_boxes to strokes.
2022-02-01 16:29:59 +00:00
Jeff Young
0faf3a8bf5
Get rid of FP_TEXTBOX::ViewBBox(). We want to inherit FP_SHAPE's.
2022-02-01 12:49:28 +00:00
Jeff Young
63a3b1e20a
Estimate outline font thickness for DRC readability checks.
2022-02-01 12:01:04 +00:00
Jeff Young
1f8c29c395
Coverity fixup.
2022-02-01 12:01:04 +00:00
Seth Hillbrand
56d204c4c9
Revise transferDataToPad to return False on failure
...
When the data doesn't allow the pad to be drawn, we return false and
skip the redraw/update steps. This allows updating with invalid values
while typing
Fixes https://gitlab.com/kicad/code/kicad/issues/10684
2022-01-31 17:02:10 -08:00
Seth Hillbrand
803675195d
Be more diligent in preventing drag line errors
...
They can happen even when there are no collisions, so we need to reset
the 'ok' flag before using the line again.
Fixes https://gitlab.com/kicad/code/kicad/issues/9555
(cherry picked from commit 833ce19221
)
2022-01-31 16:13:53 -08:00
Seth Hillbrand
098e8f7d9b
Revert "cmake: adding KICAD_MACOSX_APP_BUNDLE option"
...
This reverts commit ea9f960cc1
.
Reverted for updates as this currently breaks kicad-mac-builder
2022-01-31 15:57:56 -08:00
Jeff Young
f3cd36d1d7
Bring EEschema textboxes in line with PCBNew's.
...
Also adds Border checkboxes and fixes a bunch of bugs.
2022-01-31 21:46:40 +00:00
Jeff Young
5739505aa3
TextBoxes for PCBNew.
2022-01-31 20:00:47 +00:00
Jeff Young
60bcfd1bf1
Bug fixes in arc & textbox printing.
...
Also removal of the no-longer-used clipping code from GR*.
2022-01-31 20:00:47 +00:00
jean-pierre charras
c494274b2e
export D356 netlist: fix incorrect id for pads type connectors.
...
these pads are similar to SMD pads and should have the same id.
Fixes #10694
https://gitlab.com/kicad/code/kicad/issues/10694
2022-01-31 19:53:02 +01:00
Jonathan Haas
7b01530eca
EDA_ANGLE: use existing Normalize180 function here
2022-01-31 18:16:49 +00:00
jean-pierre charras
f846f6f704
PCB_CONTROL::unfilledZoneCheck(): skip rule areas: they are not filled by definition.
...
Fixes #10691
https://gitlab.com/kicad/code/kicad/issues/10691
2022-01-31 17:01:52 +01:00