Commit Graph

13468 Commits

Author SHA1 Message Date
Marek Roszko 5bb2cdf73d Revert "Stop leaking submenu items"
This reverts commit 34c70a51ea.
2022-04-10 22:33:43 -04:00
Marek Roszko 34c70a51ea Stop leaking submenu items
Our menu bar code is interestingly complex. But we were throwing away newly made menu items to the void in the cases of constructed on the fly submenus
2022-04-10 22:04:48 -04:00
Jeff Young 29eb5931c2 Be more careful with forced cursor positions.
Fixes https://gitlab.com/kicad/code/kicad/issues/9977
2022-04-10 23:14:57 +01:00
Jeff Young 32a2490677 Prefer -90 to 270 for text rotation in dialog boxes.
Fixes https://gitlab.com/kicad/code/kicad/issues/9868
2022-04-10 22:43:44 +01:00
Jeff Young 1dae5eb7c4 A better blob vs web detector.
Since we're in a deflated state, a long web *could* still have a very
small area.  So check max extents instead.
2022-04-10 19:48:45 +01:00
Jeff Young 1a2e0d8226 Apply the min-width-by-min-width test to islands after pruning.
We're looking for minimum *web* width.  A blob does not a web make.

Fixes https://gitlab.com/kicad/code/kicad/issues/6907
2022-04-10 18:21:31 +01:00
Jeff Young 2663ad5340 Implement Eagle text variables.
Also fixes two bugs:
1) subsequent text items that are marked >NAME or >VALUE will now get
imported as text items with ${REFERENCE} or ${VALUE} (instead of overwriting
the previous text item)

2) we no longer (accidentally) capitalize all text items.

Fixes https://gitlab.com/kicad/code/kicad/issues/11321
2022-04-10 17:29:47 +01:00
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