Jon Evans
ccba4b1462
Pcbnew: don't show project warning on stackup pages
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/5568
2021-02-27 14:28:24 -05:00
Jeff Young
14e670408e
Fix some bugs in rule examples and add some more examples.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7744
Fixes https://gitlab.com/kicad/code/kicad/issues/6884
2021-02-27 19:21:41 +00:00
Jon Evans
d269778cd4
PNS: disable smart pads in walkaround if posture is forced
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7710
2021-02-27 13:48:01 -05:00
Wayne Stambaugh
5ca25a609e
Pcbnew: fix shadow variable in expression evaluator.
2021-02-27 12:09:06 -05:00
Seth Hillbrand
f952434aee
Replace "pours" with "fill" in Rule Area
...
KiCad terminology refers to copper "Fill" rather than copper "Pour".
Also adds some tooltips for the various options
Fixes https://gitlab.com/kicad/code/kicad/issues/7740
2021-02-27 08:32:05 -08:00
Seth Hillbrand
bcc3767c2a
FABMASTER: Fill both kinds of silk polys
...
Silkscreen polygons are always filled (I think) in FABMASTER. Other
layer polygons are not
2021-02-27 06:58:04 -08:00
Jon Evans
eae9e954c3
Hide BOARD internals that shouldn't be wrapped from swig
2021-02-27 08:54:21 -05:00
Jeff Young
6d6765cdaf
Improve DRC status reporting.
...
1) Don't report on tests not run.
2) Don't cancel subsequent tests because the current test didn't
have any constraints
3) Exit a little bit quicker when cancelled
Fixes https://gitlab.com/kicad/code/kicad/issues/7724
2021-02-27 13:44:45 +00:00
Jeff Young
4ede4e061e
More DRC performance work.
...
Push DRC zone RTrees into BOARD so that they can also be used by
insideArea.
All these caches are a bit of an encapsulation leak, but they make a
significant impact on performance.
Fixes https://gitlab.com/kicad/code/kicad/issues/7720
2021-02-27 11:45:04 +00:00
Seth Hillbrand
283d176cdc
Use std::locale::classic() globally
...
This is a better alternative when imbuing streams
2021-02-26 17:21:55 -08:00
Seth Hillbrand
5d352d2373
FABMASTER: Enforce KiCad limits on line width
...
We require unfilled polygons to have positive width
2021-02-26 17:16:54 -08:00
Seth Hillbrand
7e0168a99d
FABMASTER: Process newer outline tag
...
Allegro uses the subclass "DESIGN_OUTLINE" in newer version for their
edge cuts instead of just "OUTLINE". This handles both.
Fixes https://gitlab.com/kicad/code/kicad/issues/7735
2021-02-26 17:06:56 -08:00
Seth Hillbrand
c9b39aaaed
FABMASTER: Process REFDES position
...
The reference designator is stored separately with the Tracks, so we
need to extract position/size data from it there and match back to the
components later.
Fixes https://gitlab.com/kicad/code/kicad/issues/7733
2021-02-26 17:04:21 -08:00
Marek Roszko
b82fcbcad6
More exception var disuse warnings
2021-02-26 19:30:58 -05:00
Seth Hillbrand
75c525af4f
FABMASTER: Handle polygons better
...
Polygons in non-etch layers need special handling to ensure they get
treated the same.
Fixes https://gitlab.com/kicad/code/kicad/issues/7731
2021-02-26 14:01:04 -08:00
Seth Hillbrand
2d5015c217
FABMASTER: Try harder to figure out nets
...
Find all intersecting points both forward and back between the filled
areas and the outlines in order to determine the proper net assignment
for the zones
Also creates rule areas for special zones instead of filled zones
Fixes https://gitlab.com/kicad/code/kicad/issues/7732
2021-02-26 13:06:06 -08:00
jean-pierre charras
b31bf1e40f
Always store via drill value in .kicad_pcb file.
...
Old boards were using UNDEFINED_DRILL_DIAMETER value in file for via drill when
the via drill value was the netclass value.
Recent boards always set the via drill to the actual value, but now we need
to be sure always store the drill value, because netclass value is not stored
in the board file. Otherwise the drill value of some (old) vias can be unknown
2021-02-26 20:57:43 +01:00
Seth Hillbrand
73dd93701a
FABMASTER: demote odd graphics warning
...
Drill layers have many different shapes in FABMASTER. These are not
used for board information, so we can ignore them.
2021-02-26 11:37:21 -08:00
Seth Hillbrand
ae2a9ef538
Use std::locale::classic static local
...
Prevents performance issues when creating new locales under MSVC
2021-02-26 11:37:21 -08:00
Seth Hillbrand
103dde67f6
FABMASTER: Handle rotated/flipped custom pads
...
The rotate mirror actions need to line up with the expectation.
FABMASTER keeps elements board-referenced while KiCad has some elements
referenced to the board and some referenced to the footprint
2021-02-26 11:37:21 -08:00
Seth Hillbrand
ff1300d13b
FABMASTER: Preallocate vectors
...
Reserves memory for vector elements based on file size. This helps
reduce the number of re-allocations needed when reading large files
2021-02-26 11:37:21 -08:00
Jeff Young
f226373324
Add cache for insideArea() and insideCourtyard().
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7720
2021-02-26 19:22:25 +00:00
Jeff Young
cb830f74b7
Bounding box caching comments.
2021-02-26 18:03:51 +00:00
Jeff Young
d523129929
Minor performance improvements.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7720
2021-02-26 17:58:08 +00:00
Jeff Young
c716313a24
Fix footprint hittesting. (How in the world did that compile?)
2021-02-26 17:44:36 +00:00
Jeff Young
c7a71b44e5
Zones must be entirely inside for insideCourtyard.
...
This is a huge performance win as otherwise we're doing *lots* of
shape collisions with ground planes.
Fixes https://gitlab.com/kicad/code/kicad/issues/7720
2021-02-26 17:19:48 +00:00
Jeff Young
22005299af
Remove old hacks for UTF8 mode.
...
wxWidgets' UTF8 mode wasn't thread-safe, so we had to put mutex's on
a bunch of string operations, which meant that we couldn't return
references to strings. Now that we no longer use UTF8 mode anywhere
(and the mutex's were removed long ago), using references is a big
performance win in some places.
2021-02-26 17:19:48 +00:00
Jeff Young
86aaa2e9cb
Rationalize footprint bounding boxes and cache all of them.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7720
2021-02-26 13:50:27 +00:00
jean-pierre charras
da005bd2a6
Pcbnew, plot files: fix very poor shape of trapezoid pads having a non null
...
clearance on mask or solder mask layers.
2021-02-26 10:36:04 +01:00
Seth Hillbrand
c15a9e60d4
Used cached footprints without check in preview
...
Between the time the user loads the footprint preview in cvpcb or Add
Footprint in pcbnew, we don't need to verify cache integrity to display
the footprint. We use the cache copy when displaying until we close the
selection window and re-open. This limits our need to iterate over the
full directory on every footprint display.
Alternate solutions for v7 should include looking into libfswatch for
change detection
2021-02-25 15:46:52 -08:00
Jeff Young
b36e1c741d
Fix insidious bug which resets layer of SOLID when marking collision.
...
It's supposed to be setting the layer of the collsion display object,
not the host object, but there's a typo.
Fixes https://gitlab.com/kicad/code/kicad/issues/7712
2021-02-25 23:39:48 +00:00
Jeff Young
75032f3acd
Use the more-constrained layer when running rules.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7639
2021-02-25 22:58:07 +00:00
Seth Hillbrand
54539d2cd7
Calculate timestamp the same way both times
...
Timestamps were checked using a different routine than they were
generated with, leading to the cache always being out of date.
This uses the same routine for both. While it iterates over the
directory twice during the initial load, this will never be dominant
Fixes https://gitlab.com/kicad/code/kicad/issues/7711
2021-02-25 14:36:49 -08:00
Tomasz Wlostowski
87ea540953
Fix whitespace errors
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
c79610e132
router: post-rebase fixes
2021-02-25 17:18:23 +01:00
Marek Roszko
6948cdd8ef
router: Fix return type within pointInside2
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
9bdfc13155
router: improve locality of post-shove optimization
...
Fixes : #4359
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
e1d4bb777c
router: use new LINE::Walkaround in the walkaround algo
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
045d02f818
router: add strict/loose area restriction constraint. WIP
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
24574aa2f5
router: first insert intersections, then build graph in Walkaround()
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
61e75a838b
router: replace large stack variables with std::array
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
028f209126
router: more robust LINE::Walkaround() implementation
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
e9c55cd0e3
router: if the drag anchor is not reachable by the mouse, use the closest point on dragged trace for optimizer restriction
...
Fixes : #4056
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
a141ed3444
router: feed view size change events to the router engine
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
12dfb541fc
router: expose current view area to the router algorithms so that the optimizer could know not to mess with traces/vias not currently visible to the user (wip)
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
2831c7d24c
router: fix compile error in DRAGGER
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
b67e5768a6
router: feature to save debug event log & board dump for easier recreation of router bugs and misbehaviours
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
ebdc68ac1d
router: correctly handle line width in PREVIEW_ITEMs
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
34c037684b
router: partially migrate SHOVE algorithm to use new DEBUG_DECORATOR
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
0e6cf3f56e
router: fix board edge clearance queries
...
Fixes : #7254
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
4574f52eac
router: DRAGGER::CurrentNode() should always return non-null value
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
e221b11e3b
GRID_HELPER: fixed arithmetic issue in segment snap distance check disguised as 'excessive optimization' by the dragger in the router
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
325300bd76
router: don't use compound pad shapes if pad contains a single primitive shape
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
a4bd2ad8c6
router: drag in walkaround mode now works
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
f84836f51e
router: factor out POSTURE_SOLVER to more generic MOUSE_TRAIL_TRACER class
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
af95235f47
router: report debug log events from DRAGGER
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
0306d16748
router: make post-drag optimization less intrusive
...
Fixes : #5918
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
14ce7a0ad7
router: implement area constraint in optimizer
2021-02-25 17:18:23 +01:00
Tomasz Wlostowski
64cf593ee9
router: debug points now have variable size
2021-02-25 17:18:23 +01:00
Jeff Young
b8c95345d0
Make sure reporters have a better default path than /bin.
2021-02-25 15:05:26 +00:00
Jeff Young
caa18c8e16
Fix bugs in diffPair hole-to-hole logic and add rule resolution.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7697
2021-02-25 14:23:02 +00:00
Jeff Young
2c009906e5
Set unprinted layer colors to background.
...
This allows our Black&White special cases to still work when the
hole annular rings aren't being printed.
Fixes https://gitlab.com/kicad/code/kicad/issues/7692
2021-02-25 14:23:02 +00:00
Jon Evans
bba7fae104
Coverity fixes
2021-02-24 22:55:11 -05:00
Jeff Young
c077612163
Make sure custom shaped pad primitives get their parents set.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7696
2021-02-24 22:53:58 +00:00
Jeff Young
d384316335
Fix some layout issues in board stackup pane.
...
Also decided the extra paramaters on the right weren't working out
on smaller screens and so moved Board Finish to its own panel.
2021-02-24 21:42:00 +00:00
Jeff Young
fa89263c8f
Push hole-to-hole min processing down a level.
...
Also removes adding the track width to the via gap, which was
never right.
Fixes https://gitlab.com/kicad/code/kicad/issues/7173
2021-02-24 21:42:00 +00:00
Seth Hillbrand
0bab025832
Fixup toolchaining for immediate mode
...
The move tool can stack on others, so when we re-enter the previous tool
this caused another immediate action. We flag re-entry in the tool
stack to check for this and avoid unexpected tool starts
2021-02-24 10:44:54 -08:00
Jon Evans
3d7c202192
Fix pad clearance bounding box and initial display
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7673
2021-02-23 22:15:39 -05:00
Jon Evans
887ad1c30d
CHANGED: Copper layer count is now set on physical stackup page
...
REMOVED: Board layer stackup presets that were not very useful
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6765
2021-02-23 21:31:12 -05:00
Jon Evans
d087ede21d
Don't show ratsnest on layers hidden by contrast mode
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7667
2021-02-23 20:07:46 -05:00
Jon Evans
aedc65f20f
Fix footprint editor default grid
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7659
2021-02-23 20:07:46 -05:00
Seth Hillbrand
0518d9c546
Add more force-immediate tools
2021-02-23 17:05:03 -08:00
Seth Hillbrand
005622027f
Add component/footprint is always immediate
...
When a user clicks on the "Add Component", "Add Power" or "Add Footprint"
icon, they want to add the item. Requiring an extra click on the screen
before selecting the component/footprint is not needed.
2021-02-23 16:15:31 -08:00
Jeff Young
f30eab422e
Don't allow footprint text item columns to be resized.
...
We auto-size them in the code and doing both produces nothing but a
mess.
Also improves the auto-sizing for the layers drop-down (particularly
needed for the new, somewhat longer, layer names.
Fixes https://gitlab.com/kicad/code/kicad/issues/7671
2021-02-23 17:46:15 +00:00
Jeff Young
b48071015b
Don't reset focus flag yet on non-GTK platforms. It's required.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7671
2021-02-23 17:46:15 +00:00
Seth Hillbrand
154d56b4f4
If items exist on the "Rescue" layer, prompt user
...
Don't allow Rescue items to enter the board design. This prompts the
user to either delete them or move them to the Comments layer.
2021-02-23 09:25:00 -08:00
Jeff Young
7f892669cc
Consistent punctuation.
2021-02-23 12:46:27 +00:00
Jeff Young
b1943bf6b6
Don't shout at the user.
2021-02-23 12:45:37 +00:00
Jeff Young
a3b9e8ddb4
Round 2 of Worksheet -> Drawing Sheet.
2021-02-23 11:57:44 +00:00
Seth Hillbrand
2013a801d1
Fix zone merge undo
...
Also remove an implicit zone merge that was happening when the user
edited the zone parameters. This appears to have been a feature but it
happened without a) telling the user and b) having the option to prevent
it.
Fixes https://gitlab.com/kicad/code/kicad/issues/7661
2021-02-22 15:45:17 -08:00
Seth Hillbrand
b484c0787b
Disable commands in SingleTop
...
We cannot do forward/reverse annotation in Single Top mode because we
depend on shared memory access. This disables the menu options in this
case and replaces the toolbar update pcb icon with the import netlist,
which is more appropriate for single top mode
Fixes https://gitlab.com/kicad/code/kicad/issues/7637
2021-02-22 14:49:13 -08:00
Seth Hillbrand
bac7b3e77a
Protect against dynamic_cast
...
Items might not be FOOTPRINT, in which case the dynamic_cast will return
nullptr. Check for this in the subfunction
2021-02-22 10:12:54 -08:00
Seth Hillbrand
26995b10fb
Fix uninitialized ptr
2021-02-22 10:07:40 -08:00
Jeff Young
cad5198ab7
Worksheet -> (industry standard) Drawing Sheet.
2021-02-22 17:35:46 +00:00
Seth Hillbrand
a6263fc595
Remove superfluous "Rebuild Ratsnest" button
...
This happens when clicking OK already and there is nothing to change
before then.
2021-02-22 09:16:20 -08:00
david-beinder
c1aa50e522
Notify control when removing items without parent
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7441
2021-02-22 14:00:13 +00:00
Roberto Fernandez Bautista
09ebfcd650
CADSTAR Importer: Fix Code Style
...
- Rename member variable names to use the 'm_' prefix
- Rename a few object types that clashed with KiCad object names, such
as BOARD and SCHEMATIC, to avoid the use of '::' to access the KiCad
objects.
- Remove some unused code.
2021-02-22 13:24:00 +00:00
Jon Evans
67f16110af
Fix netlist QA after API changes in 8a12aa4e
2021-02-21 20:30:57 -05:00
Jeff Young
ba2d0cdd62
Nullptr safety.
2021-02-22 01:14:06 +00:00
Jon Evans
68b81c8271
Don't copy footprint text along with the footprint
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7647
2021-02-21 19:59:16 -05:00
Jon Evans
6fa0ac45af
Re-enable custom grid settings for Pcbnew
...
Add a reset button that will only show up if the user
edits the JSON configuration for grids. This is a temporary
measure until we have a real grid editor GUI in V7.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7595
2021-02-21 15:33:13 -05:00
Jeff Young
2d28ed8eda
Move canvas backend selection to Preferences.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7630
2021-02-21 20:12:43 +00:00
Jon Evans
3bc9d7b95e
Rework GAL layer enum to fix visibility import from legacy boards
2021-02-21 13:41:43 -05:00
jean-pierre charras
fbf12cb85c
microwave tools: use ShowQuasiModal instead of ShowModal to display WX_TEXT_ENTRY_DIALOG dlgs
...
In some cases ShowModal does not work fine with our events handlers, at least on Windows.
Fixes #7641
https://gitlab.com/kicad/code/kicad/issues/7641
2021-02-21 16:01:53 +01:00
jean-pierre charras
8beeb368d2
Scripting: Fix missing utf8 to unicode string conversion in swig file
...
So non ASCII7 chars in .py filenames were non working, especially on Windows.
Fixes #5507
https://gitlab.com/kicad/code/kicad/issues/5507
2021-02-21 11:38:10 +01:00
Seth Hillbrand
8a12aa4e3a
Handle unit changes in the netlist
...
Each symbol unit in eeschema has a unique identifier. But we don't have
a unique identifier for the entire symbol. So changing which symbol
instance was unit A (our default base for matching), changed the UUID
that we were using to match the footprints.
This commit adds all UUIDs to the netlist, allowing us to match symbol
to footprint without worrying about which unit is referenced.
This still does not handle changing different units on different sheets.
Fixes https://gitlab.com/kicad/code/kicad/issues/7604
2021-02-20 20:11:49 -08:00
Mikolaj Wielgus
2a9d76f1e3
Pcbnew: Fix snapping segment traces and graphics when initiating move
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4746
2021-02-20 20:29:43 +00:00
Jeff Young
a6c5c40f02
Fix another case of treating a modal return result as a bool.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7629
2021-02-20 18:22:34 +00:00
Jeff Young
9dacd4abb7
Don't allow footprint children in groups outside their footprint.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7625
2021-02-20 18:09:56 +00:00
Marek Roszko
622baa6531
Silence more unused exception var warnings
2021-02-20 12:01:51 -05:00