Seth Hillbrand
969e85daa3
pcbnew: Standardize zone fills threading
...
This is a boyscouting commit to standardize the threading of zone fills.
We do not need to join threads after their completion, instead we simply
allow them to clean up their memory without blocking the user. This
also sets the maximum number of threads that may be created to the
number of zones being filled. More than this will only leave un-used
threads being created and immediately killed.
We also include the connectivity search as a phase in the fill progress
reporter. This was the case before but did not utilize the correct
maxsize, leading to stalled progress bar.
2018-09-21 12:44:20 -07:00
Seth Hillbrand
47fac8a259
Removing some unused code
2018-09-20 12:52:53 -07:00
Jeff Young
c90a3efea2
Change KIDIALOG hashing algorithm to __FILE__ + __LINE__.
...
Using Title + Message wasn't working for all the dialogs which
did substitutions in the message (which was a lot of them).
Fixes: lp:1789348
* https://bugs.launchpad.net/kicad/+bug/1789348
2018-08-29 23:38:23 +01:00
jean-pierre charras
d9d005190a
Zone filler: fix a recent bug that forgot items on edge_cut when filling a copper zone.
...
Fixes: lp:1789067
https://bugs.launchpad.net/kicad/+bug/
2018-08-28 09:49:11 +02:00
Jeff Young
0e3919e7aa
Fix DRC & zone filling for copper text in footprints.
...
Also improves handling of copper edges in footprints and of text
and track locations in DRC markers.
Also adds DRC for tracks & zones.
Fixes: lp:1762474
* https://bugs.launchpad.net/kicad/+bug/1762474
Fixes: lp:1788268
* https://bugs.launchpad.net/kicad/+bug/1788268
2018-08-24 10:56:13 +01:00
Jeff Young
99db5cb543
Allow for reduced nagging with wider use of KIDIALOG.
...
(cherry picked from commit c2dd5df)
2018-07-17 15:13:53 +01:00
Seth Hillbrand
ee34aab07a
Async hardening
...
There are three related changes here to harden our handling of threads
in the footprint async loader.
1) Footprint async loader explicitly aborts any remaining loader threads
on exit.
2) We protect the thread join by a mutex
3) We do not pause during no-wait routines
2018-06-04 15:08:40 -07:00
jean-pierre charras
e57cd291ff
class BOARD: rename m_Zone to m_SegZoneDeprecated to avoid mistakes in code.
...
m_Zone is a fully deprecated list of SEG_ZONE items (similar to TRACK), used to fill copper zones in *very old* boards.
it is even unlikely there are still boards that use them.
So it should be removed one day.
2018-05-13 08:39:36 +02:00
Jeff Young
a31017bc9c
Check zone fills before plotting.
...
Also adds a "Draft Plot" button for those who wish to sidestep
zone checking (which can be slow).
Fixes: lp:1712579
* https://bugs.launchpad.net/kicad/+bug/1712579
2018-05-05 23:40:40 +01:00
Maciej Suminski
684f085ac5
Coverity fixes
...
CIDs:
dereference before null check:
175439 @ drc.cpp
uninitalized field:
175435 @ point_editor.cpp
174162 @ zone_filler.cpp
163188 @ footprint_info_impl.cpp
logically dead code:
155146 @ pcb_editor_control.cpp
2018-05-04 14:06:08 +02:00
Jeff Young
e84e5606c9
Fix compiler warning.
2018-04-17 15:06:38 +01:00
Jeff Young
f83ebb316e
Don't refill if zone fills aren't out-of-date.
2018-04-09 17:04:51 +01:00
Jeff Young
05dae96275
Move zone out-of-date check to the right place.
...
Fixes: lp:1760097
* https://bugs.launchpad.net/kicad/+bug/1760097
2018-04-09 15:09:47 +01:00
Jeff Young
d54a252eaa
Check zone fills for being out-of-date during DRC.
2018-04-09 11:05:14 +01:00
Jeff Young
fbf10e941b
Switch zone fillets to absolute-error algorithm.
...
And some general cleanup to related constants, etc.
2018-03-23 12:46:17 +00:00
jean-pierre charras
d52491c715
Custom pads: allows solid connection to zones.
...
The 2 options are now: no connection and solid connection
2018-03-11 20:39:29 +01:00
jean-pierre charras
51fe063524
Circle to polygon conversion: a few enhancements:
...
* Remove duplicate code
* fix incorrect formulas is some places
* add comments
2018-03-09 13:28:47 +01:00
Seth Hillbrand
218f66a08b
Fix sign comparison warning
2018-03-05 09:20:19 -08:00
Jeff Young
c77d13292b
Reinstate multi-threading in zone filler.
2018-03-03 17:41:53 +00:00
Jon Evans
8c1847f7ab
Don't allow ZONE_FILLER::Fill to run more than once at a time
2018-02-23 09:43:23 -05:00
jean-pierre charras
4012aa70da
Fix a few minor Coverity warnings
2018-02-15 10:16:17 +01:00
Jeff Young
f68bf33cd3
Implement progress reporter for cvpcb footprint loading.
...
Fixes: lp:1676910
* https://bugs.launchpad.net/kicad/+bug/1676910
2018-02-13 20:21:38 -05:00
Maciej Suminski
86566fc142
Fix a hang-up during zone filling
...
On OpenMP single core systems only the first thread launched. It means
that only the UI updating thread was running, without the one
responsible for actual computation. It is fixed by enforcing at least
two threads.
2018-02-09 14:26:06 +01:00
jean-pierre charras
81642dddd1
Track polygon clearance: use the new TransformOvalClearanceToPolygon function, to avoid underestimation of clearance areas.
...
(issue already found for oval pads)
Add some comments.
2018-01-21 11:32:37 +01:00
jean-pierre charras
67a152ee8d
zone filler: fix incorrect calculation of segments when filling zones with segments.
...
The calculation was made too early, before removing insulated islands.
Note: filling zones with segments is an old option, not very useful:
using only polygons has never created issues in gerber files.
2018-01-14 09:51:32 +01:00
Jon Evans
47b8b6dc6a
Fix typo causing isolated thermal removal to not work
...
Fixes: lp:1741265
* https://bugs.launchpad.net/kicad/+bug/1741265
2018-01-06 16:55:02 +01:00
jean-pierre charras
2398d5ef8b
DIALOG_EDIT_COMPONENTS_LIBID: enhancement in orphan automatic remap:
...
add dialog to choose the right candidate when more than one is found
2017-12-16 14:50:37 +01:00
Tomasz Włostowski
75b21d010b
pcbnew: more thread (and nested wx event loop) safety for the zone filling/connectivity algo
2017-12-14 23:49:46 +01:00
Tomasz Włostowski
eed924fe45
Fixed zone filling crash & thermal stubs inconsistency
...
Fixes: lp:1737557
* https://bugs.launchpad.net/kicad/+bug/1737557
Fixes: lp:1737542
* https://bugs.launchpad.net/kicad/+bug/1737542
Fixes: lp:1737541
* https://bugs.launchpad.net/kicad/+bug/1737541
2017-12-14 01:29:08 +01:00
Maciej Suminski
f19aed9d5c
Workaround for OSX freeze when filling zones in GAL
...
More details:
https://lists.launchpad.net/kicad-developers/msg32306.html
2017-12-11 10:39:58 +01:00
jean-pierre charras
cdad02336d
fix minor compil warnings
2017-12-05 18:02:53 +01:00
Tomasz Włostowski
7ad436c7aa
pcbnew: now PROGRESS_REPORTER should work in multi-threaded context under Windows...
2017-12-05 14:54:57 +01:00
Tomasz Włostowski
f34b86d39e
pcbnew: made zone filling algorithm thread-safe.
...
- moved zone filling algo outside ZONE_CONTAINER class
- const'ified methods that don't need to modify zone's properties
- cleanup: m_FillMode -> enum
2017-12-05 14:54:57 +01:00
Tomasz Włostowski
fdd5023aee
pcbnew: factored out ZONE_FILLER to a separate file
2017-12-05 14:54:57 +01:00