Commit Graph

13215 Commits

Author SHA1 Message Date
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