Commit Graph

13193 Commits

Author SHA1 Message Date
markus-bonk 8663a399ac Move pcbnew_navlib compilation into pcbcommon.
Although pcb_base_frame.cpp is in the pcbnew source tree, it is compiled
and included in pcbcommon.lib. Because pcb_base_frame has a dependency
on pcbnew_navlib, the latter also needs to be included in pcbcommon to
avoid linkage issues.

The superfluous references to pcbnew_navlib in the qa projects have been
removed.
2022-01-28 12:21:42 +00:00
markus-bonk b263e89dfe Enable 3D mouse support in Footprint viewer.
The 3D mouse support is  moved from PCB_EDIT_FRAME to PCB_BASE_FRAME.
This allows all PCB_BASE_FRAME derived windows to have 3D mouse enabled
2D navigation support.
2022-01-28 12:21:42 +00:00
markus-bonk 8e43409d27 Invoke correct base method in PCB_BASE_EDIT_FRAME::handleActivateEvent.
The base class of PCB_BASE_EDIT_FRAME is PCB_BASE_FRAME. Invoking
EDA_DRAW_FRAME::handleActivateEvent in the PCB_BASE_EDIT_FRAME override
will skip the definition in PCB_BASE_FRAME.
2022-01-28 12:21:42 +00:00
markus-bonk be58ab679b Fix coding style policy violations and CMake version.
Fix violations of 4.2.2 Function Definitions and 4.2.3 Control
Statements.
Set the minimum CMake version required to build to 3.1.
Removed the Visual Studio solution and project files.
2022-01-28 12:21:42 +00:00
markus-bonk 91d261d735 Fix "Error loading editor" when no 3Dconnexion driver installed. 2022-01-28 12:21:42 +00:00
markus-bonk 87d7bdbd5e * PCB_EDIT_FRAME: Implement SpaceMouse navigation and command export for 3D-viewer.
Added full support for using a 3Dconnexion device in PCB_EDIT_FRAME. Commands are exported and can be assigned to 3D mouse buttons. Any limitations to the functionality are limitations of the installed 3Dconnexion driver for the device and OS.

Use build option KICAD_USE_3DCONNEXION (default = ON) to control whether the SpaceMouse support is compiled into the solution.
2022-01-28 12:21:42 +00:00
jean-pierre charras 2345e09a12 Pcbnew, export svg: Fix incorrect saving of layer set. 2022-01-27 13:03:00 +01:00
Thomas Pointhuber 744bc0bd18 altium: Fix pcb arc import using a hack with PCB_SHAPE as intermediate object
It would be nice to not use the workaround with PCB_SHAPE, but better than creating wrong geometries in the first place. This should be improved when I'm more in the mood to think about geometric.
2022-01-25 22:24:01 +01:00
Thomas Pointhuber 5a2f351f28 altium: Refactor shape based region parsing to make it reusable for footprint import 2022-01-25 21:54:25 +01:00
jean-pierre charras f651e31965 Fix minor compil and Coverity warnings. 2022-01-25 12:52:13 +01:00
Jeff Young e5d5ee07f0 Resolve textvars in plot directory.
Fixes https://gitlab.com/kicad/code/kicad/issues/10405
2022-01-23 18:14:07 +00:00
Jeff Young f3a583e490 Formatting & comment cleanup. 2022-01-23 18:14:07 +00:00
Jeff Young 8838a3cb81 When focusing on Unconnected Items use ratsnest endpoints.
(instead of item centers)

Fixes https://gitlab.com/kicad/code/kicad/issues/9233
2022-01-23 18:14:07 +00:00
jean-pierre charras be99240c8c Fix strings and update French translation 2022-01-23 13:22:32 +01:00
jean-pierre charras 712b304da7 Teardrop: Simplify code. 2022-01-23 12:57:40 +01:00
jean-pierre charras 1b42152ba0 Teardrops: store parameters in BOARD_DESIGN_SETTINGS. 2022-01-23 10:57:08 +01:00
Jeff Young 29841ba315 Bring ERC & DRC dialogs into parity.
Fixes https://gitlab.com/kicad/code/kicad/issues/9350
2022-01-22 22:27:41 +00:00
Jeff Young f8d6bf4cc9 Hide text items which are required on a single-item delete.
Fixes https://gitlab.com/kicad/code/kicad/issues/9973
2022-01-22 22:27:41 +00:00
Jeff Young 407660201e Expand text vars in titleblock before exporting.
Fixes https://gitlab.com/kicad/code/kicad/issues/10197
2022-01-22 15:54:34 +00:00
Jeff Young de49f5090d Formatting (and auto reduction). 2022-01-22 12:16:07 +00:00
jean-pierre charras 5449a92878 PCB_POINT_EDITOR: fix missing init of PAD pos0 after changing the PAD draw pos.
Fixes #10558
https://gitlab.com/kicad/code/kicad/issues/10558
2022-01-22 10:23:55 +01:00
Tomasz Wlostowski 441e5fd486 router: don't reject non-45 degree lines in the LINE_PLACER 2022-01-22 00:28:11 +01:00
Tomasz Wlostowski ce28525172 router: include arc approximation tollerance in arc hull clearance calculation
fixes: https://gitlab.com/kicad/code/kicad/-/issues/10470
2022-01-22 00:28:11 +01:00
Jeff Young 09d0f6e17c Map zone layers before checking their visibility.
Fixes https://gitlab.com/kicad/code/kicad/issues/10509
2022-01-21 23:26:10 +00:00
Steffen Mauch 55b782d66e pcbnew: EAGLE importer does map value to wrong layer if nothing is defined in original EAGLE footprint
Fixes https://gitlab.com/kicad/code/kicad/issues/10311
2022-01-21 21:14:40 +00:00
Jeff Young d5a2059c21 Error messages for zone merging.
Also fixes a bug where zones meeting at a point would get merged
resulting in a self-intersecting zone.

Also fixes a bug where undo would not be handled correctly when zones
could not be merged.

Fixes https://gitlab.com/kicad/code/kicad/issues/10466
2022-01-21 19:55:57 +00:00
Jeff Young 7f6bc28f87 Flip arc endpoints when mirroring in FPEditor.
Fixes https://gitlab.com/kicad/code/kicad/issues/10550
2022-01-21 15:01:12 +00:00
Jeff Young 8e4369f998 Repair arrowhead angles.
Fixes https://gitlab.com/kicad/code/kicad/issues/10551
2022-01-21 14:28:17 +00:00
Jeff Young c8a50d9b50 Remove unit-less angles from VECTOR2I/D APIs. 2022-01-20 23:58:20 +00:00
Jeff Young 14006495d5 Angle cleanup. 2022-01-20 22:35:41 +00:00
Jeff Young 95caf0eff9 Fix typo in version numbers. 2022-01-20 21:10:04 +00:00
Jeff Young 4eac8d7c66 Remove unit-less angles from geometry lib APIs. 2022-01-20 21:10:04 +00:00
Jeff Young 4a05b36bc6 Prefer EDA_ANGLE to naked radians. 2022-01-20 21:10:04 +00:00
Seth Hillbrand 881af75029 Always use the project directory for default save
Fixes https://gitlab.com/kicad/code/kicad/issues/10478

(cherry picked from commit dd7029ea07)
2022-01-20 11:51:45 -08:00
jean-pierre charras 8781f46d76 Fix compil issue on Linux 2022-01-20 13:37:42 +01:00
jean-pierre charras 05c414c816 Pcbnew: fix rotation angle issue in rotate commands.
The value of this rotation was store in 2 places: the config and the editor frame.
So after changing the rotation angle from the preferences, the value in editor
frames were not updated, and the rotation angle not modified.
Now only the config value is used.
2022-01-20 10:50:26 +01:00
Jeff Young 3e7e35343a Fix bad merge between EDA_ANGLE and wxPoint changes.
Fixes https://gitlab.com/kicad/code/kicad/issues/10514
2022-01-19 23:00:23 +00:00
Jeff Young af20d46d06 Fix converting angles from tenths of a degree.
(Conversion was upside-down.)

Also fixes bugs with rotation angle increment not getting units
set and with a 0 footprint editor value overwriting a non-zero
pcb editor value (or vice versa).
2022-01-19 19:55:50 +00:00
aris-kimi 47c0672ff3 Added footprint rule area anchors
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10461
2022-01-19 18:25:20 +00:00
Jeff Young 9d5322cfdf Move rotation angle increments to UNIT_BINDER and EDA_ANGLE. 2022-01-19 15:15:33 +00:00
Jeff Young 038db715a3 Move zone hatch orientation to EDA_ANGLE. 2022-01-19 00:34:03 +00:00
Jeff Young 0091c76a6f Excise deci-degrees from UNIT_BINDER.
Fixes https://gitlab.com/kicad/code/kicad/issues/10495
2022-01-19 00:10:32 +00:00
Jeff Young 60fc75e239 Don't findnext on an empty string; show the dialog.
Fixes https://gitlab.com/kicad/code/kicad/issues/10313
2022-01-18 18:59:40 +00:00
Jeff Young 8c758aeeb5 Use superclass's copy c'tor from within subclass copy c'tor.
Fixes https://gitlab.com/kicad/code/kicad/issues/10481
2022-01-18 18:40:55 +00:00
Jeff Young f60c05fc67 Use epsilon compartor for doubles. 2022-01-18 18:40:55 +00:00
jean-pierre charras 826154d666 teardrop: rework on code 2022-01-18 17:12:17 +01:00
Jeff Young 4e493e2cbc Clean up some more deci-degrees. 2022-01-18 14:08:47 +00:00
Jeff Young f310a5b986 Excise deci-degrees from trigo. 2022-01-18 11:44:55 +00:00
Jeff Young b828355206 A bit more angle cleanup. 2022-01-18 09:48:24 +00:00
Jeff Young 8ea66ee06e Clean up angle handling in fabmaster importer. 2022-01-18 02:37:38 +00:00
Jeff Young 622f94e7b9 Angle cleanup in Altium importer. 2022-01-18 02:31:37 +00:00
Jeff Young 0218b782f4 Angle cleanup in Eagle importer. 2022-01-18 02:31:37 +00:00
Jeff Young dcaec78cc5 A bit more angle cleanup. 2022-01-18 02:18:55 +00:00
Jeff Young 180137baa4 Convert PCAD importer to EDA_ANGLE. 2022-01-18 02:05:59 +00:00
Jeff Young 8c246a761d Move EDA_ANGLE from int to double. 2022-01-17 20:57:54 +00:00
Thomas Pointhuber 010b705ecd altium: Use new Sin/Cos function 2022-01-17 20:43:41 +01:00
Thomas Pointhuber 8608c22b73 altium: Refactor fill parsing to make it reusable for footprint import 2022-01-17 19:56:47 +01:00
Thomas Pointhuber 7f667764bf altium: Refactor pad parsing to make it reusable for footprint import 2022-01-17 19:56:47 +01:00
Thomas Pointhuber efb0e9f98f altium: Refactor text parsing to make it reusable for footprint import 2022-01-17 19:56:47 +01:00
Thomas Pointhuber fe861459a7 altium: Unify arc parsing 2022-01-17 19:56:47 +01:00
Thomas Pointhuber 0b176eb5fc altium: Refactor arc parsing to make it reusable for footprint import 2022-01-17 19:56:46 +01:00
Thomas Pointhuber f5720d6e9a altium: Refactor track parsing to make it reusable for footprint import
Also refactor the code to import MULTI_LAYER items really on multiple layers.
2022-01-17 19:54:28 +01:00
Thomas Pointhuber 5aff3ef949 altium: First prototype to parse tracks of a footprint 2022-01-17 19:54:28 +01:00
Thomas Pointhuber f92c1341a2 altium: Move file loading from altium_pcb into altium_*_plugin 2022-01-17 19:54:27 +01:00
Thomas Pointhuber 0129e49b79 altium: Introduce new ALTIUM_COMPOUND_FILE object to handle file opening and searching for streams at a central place 2022-01-17 19:54:26 +01:00
Thomas Pointhuber 2cc9517cfd altium: Allow extraction of names of footprints stored in *.PcbLib file
See: https://gitlab.com/kicad/code/kicad/-/issues/10274
2022-01-17 19:51:51 +01:00
Thomas Pointhuber c6504628f0 altium: Fix Compound File Reader which returned wrong entries
It was possible that we confuse multiple files with the same name. This should not be that relevant for board and schematic import, but is important for library import!
2022-01-17 19:51:51 +01:00
Thomas Pointhuber 05e7f59550 altium: extend documentation so we can parse Altium *.PcbLib files in the future 2022-01-17 19:51:51 +01:00
Jeff Young 2defd8d911 Move show-bounding-boxes to a tool on the toolbars. 2022-01-17 11:56:40 +00:00
Jeff Young e61144d45a Finish with EDA_ANGLE. 2022-01-16 21:15:40 +00:00
Jeff Young 4b7fe5bce3 EDA_ANGLE cleanup. 2022-01-16 21:15:40 +00:00
dsa-t bc1ff6756f Cross-probing/selection for multiple items (SCH->PCB) 2022-01-16 20:29:03 +00:00
jean-pierre charras 21cdc5aec0 make dialog_teardrop_base translatable. 2022-01-16 21:09:05 +01:00
Jeff Young e84c574830 Some more EDA_ANGLE cleanup. 2022-01-16 19:16:18 +00:00
jean-pierre charras ef6ce972d6 Fix missing filtering of teardrop targets. 2022-01-16 17:20:48 +01:00
Wayne Stambaugh c154e85ebd Footprint editor: use most recently used path on footprint import.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10418
2022-01-16 09:47:08 -05:00
jean-pierre charras 5b0527bdfe Teardrop: add separate settings for round, rect shapes and tracks 2022-01-16 10:24:23 +01:00
Jeff Young 9b661aea10 EDA_ANGLE for plotters.
Also fixes a compile error in the PNS Playground.
2022-01-16 01:19:45 +00:00
Jeff Young 1539fa5af2 Move SHAPE_ARC to EDA_ANGLE. 2022-01-16 01:19:45 +00:00
hogthrob b605d6d9ae Fix issue with DXF plot not plotting small drill marks
Code was missing to convert mm to internal units for small drill mark size  in PlotLayerOutlines (which is only used in DXF Plot).  All other plot formats like PDF use PlotStandardLayer which does not have that problem.
2022-01-15 13:04:50 +00:00
Jeff Young 3f98769a77 More EDA_ANGLE.
Includes bug fix for catastrophic error in Add() for converting to
radians.

Includes bug fixes for the fact that the pcbnew test can't seem to
find the ANGLE_* objects (getting all 0's instead).
2022-01-15 01:30:04 +00:00
Jeff Young 0967cc82e2 Exclude rules which match no enabled layers.
Fixes https://gitlab.com/kicad/code/kicad/issues/10227
2022-01-15 01:30:03 +00:00
Seth Hillbrand 22a77d3556 Move EDA_ANGLE to KiMath lib
KiMath should only depend on itself not on other elements in the tree
2022-01-14 17:12:24 -08:00
jean-pierre charras bc77a1e2dd drc_test_provider_library_parity: fix a crash due to a incorrect if()...else() logic.
The incorrect logic allowed execution of the else sequence when it should not be executed.
2022-01-14 18:17:27 +01:00
Jeff Young 07013d00e1 More EDA_ANGLE. 2022-01-14 16:08:19 +00:00
Jeff Young 1b19ff5f42 More EDA_ANGLE changes. 2022-01-14 16:08:19 +00:00
Jeff Young 037dfb6e01 Move FP_TEXT::KeepUpright() to EDA_ANGLE. 2022-01-14 16:08:19 +00:00
Jeff Young 5176512de3 Move PCBNew rotation increment to EDA_ANGLE. 2022-01-14 16:08:19 +00:00
Jeff Young c9487bad18 Move BOARD_ITEM::Rotate() to EDA_ANGLE. 2022-01-14 16:08:19 +00:00
Jeff Young abd3f5bc2b Move footprints to EDA_ANGLE. 2022-01-14 16:08:18 +00:00
Jeff Young d485eb2514 Move pads to EDA_ANGLE. 2022-01-14 16:08:18 +00:00
Jeff Young e048e51f5d Improve SNR of EDA_ANGLE stuff. 2022-01-14 16:08:18 +00:00
Jon Evans d3d2ebe349 Do not check key states for non-key events in TryBefore
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10127

(cherry picked from commit 2306d00c89)
2022-01-13 22:31:39 -05:00
Jon Evans eac1936303 PNS: Do not clear layer pairs when importing new sizes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10225

(cherry picked from commit 20bbf9b179)
2022-01-13 20:38:08 -05:00
Jon Evans 3011ae1d51 PNS: Do not allow smart pads when in 90-degree mode
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10386

(cherry picked from commit cf4d46b24d)
2022-01-13 20:38:01 -05:00
qu1ck 33a4c9b08e FOOTPRINT::GetProperty() swig extension 2022-01-13 21:08:52 +00:00
Wayne Stambaugh a77b5649cc Footprint editor: fix Eagle plugin footprint library layer mapping bug.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10354
2022-01-12 20:51:45 -05:00
Tomasz Wlostowski 79fe0bf456 router: use VIA::PushoutForce() for via push force calculation in the shove algorithm
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/10317
2022-01-13 00:43:27 +01:00
Tomasz Wlostowski 4d0a317e3d router: fix via force propagation for vias where hole clearance > copper clearance 2022-01-13 00:42:50 +01:00
Tomasz Wlostowski 2aee47487a pcbnew: consider worst case hole-to-hole clearance in GetBiggestClearanceValue() 2022-01-13 00:42:08 +01:00
dana 8373180cbb Handle Unicode clipboard data in pcbnew and symbol editor
Fixes #10323
2022-01-12 17:15:47 +00:00
jean-pierre charras cf11abda3d Fix test_drc_regressions.cpp: disable tests that need a footprint library
DRCE_LIB_FOOTPRINT_ISSUES and DRCE_LIB_FOOTPRINT_MISMATCH imply a library
but the test cases do not have a library.
2022-01-12 15:57:41 +01:00
jean-pierre charras ea3efac2b6 drc/drc_test_provider_library_parity.cpp: protect against null pointer use.
qa tests, test_solder_mask_bridging.cpp: filter not relevant DRC tests
2022-01-12 14:41:11 +01:00
Jeff Young 8c6c87eaf4 Separate footprint lib issues from footprint mismatch issues.
Fixes https://gitlab.com/kicad/code/kicad/issues/10132
2022-01-11 22:28:24 +00:00
Jeff Young 6ccfec0553 Layer handling for copper sliver exclusions.
Fixes https://gitlab.com/kicad/code/kicad/issues/10147
2022-01-11 22:28:24 +00:00
Frank Zeeman f063c00bf1 Fix gr_arc indentation level 2022-01-11 21:03:45 +00:00
Roberto Fernandez Bautista de7158b80e Include Footprints within Groups when re annotating duplicates
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10329
2022-01-11 20:51:03 +00:00
Jeff Young 267eca28cd Font support for global edit text & graphics dialogs. 2022-01-11 15:34:24 +00:00
Jeff Young 8f7d2dd06a More VECTOR2D -> VECTOR2I and wxPoint cleanup. 2022-01-11 14:20:14 +00:00
Seth Hillbrand acf2e1601c Fix copy-paste error
(cherry picked from commit 8dca61ce9c)
2022-01-11 06:08:38 -08:00
Seth Hillbrand 70b0ac15ea Handle arcs in global track width changes
Also add defensive code against invalid indices

Fixes https://gitlab.com/kicad/code/kicad/issues/10325

(cherry picked from commit bd7841bf96)
2022-01-10 17:20:22 -08:00
Marek Roszko fcfe42d67c Continue the war on wxPoint 2022-01-10 19:52:26 -05:00
Jeff Young 21790fcab7 Fix a pair of dereference-freed-pointers in DRC.
Fixes https://gitlab.com/kicad/code/kicad/issues/10335
2022-01-10 21:06:03 +00:00
jean-pierre charras 4cdfd14f25 Fix a compil issue. 2022-01-10 21:03:22 +01:00
Seth Hillbrand fade00a2b8 Remove default hotkey for toggle zone display
It is too easy to accidentally hide your zones and the 'A' hotkey is
intuitively mapped to Add Footprint, to match Add Symbol in eeschema.

This won't change current hotkey customizations but will help prevent
future user error.  Users can still map the action to a hotkey if the
new toggle is useful to their workflow

(cherry picked from commit 4d899d7820)
2022-01-10 11:52:41 -08:00
jean-pierre charras ac78d51b14 Teardrops: better dialog, and better code 2022-01-10 20:04:41 +01:00
jean-pierre charras 5644f236d8 Allow teardrops only if advanced config define AllowTeardrops=1 2022-01-10 20:04:41 +01:00
jean-pierre charras d42514ad30 Add code and dialog to create/add/remove teardrops, step 1 2022-01-10 20:04:40 +01:00
Seth Hillbrand 6165fd2be5 Fix FP circle validity check
Radius is encoded by m_endX

Fixes https://gitlab.com/kicad/code/kicad/issues/10337

(cherry picked from commit 4907b90215)
2022-01-10 10:54:45 -08:00
jean-pierre charras cfe93e34a2 PCB_BASE_FRAME::FocusOnItem(): avoid extremely long calculation time for zones.
The algo used to calculate a focus point on a zone can be *extremely* time
consuming when using the filled areas in zone (can be matter of minutes and more).
So we use now only the zone outlines usually having not a lot of vertices.
2022-01-10 18:14:19 +01:00
Jeff Young 73a2984963 Fixes for rotated footprint text. 2022-01-10 15:30:19 +00:00
Jeff Young 236feeb592 Cleanup GRText APIs, 3D Viewer <-> board APIs, and Plotter APIs.
Also fixes a bug where outline fonts weren't being handled for footprint
text in 3D Viewer, and a copy/paste error in stroke font handling for
both PCB and footprint text in 3D Viewer.

Fixes https://gitlab.com/kicad/code/kicad/issues/10319
2022-01-10 14:17:11 +00:00
Jeff Young 2563518f3a Fix compile error. 2022-01-10 14:05:21 +00:00
jean-pierre charras c24985e8cf drc_test_provider_sliver_checker.cpp: skip very small vertices when testing.
Very small vertices (length <= 2 or 3 iu) are frequent in filled areas, and
create false positive detections because one cannot calculate a meaningful
orientation of these vertices.
2022-01-10 11:50:29 +01:00
Jeff Young 7d032f9c2f Outline font rendering for Cairo, plotter, printer and 3D viewer.
Fixes https://gitlab.com/kicad/code/kicad/issues/10319
2022-01-10 01:54:28 +00:00
Jeff Young 76368af7b9 Font cleanup and bug fixes. 2022-01-09 18:33:53 +00:00
Wayne Stambaugh f379c49084 Pcbnew: honor footprint exclude from BOM setting.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10297
2022-01-09 11:27:34 -05:00
Jeff Young 2fea9e7513 Fix bone-headed copy/paste error formatting gr_poly and fp_poly. 2022-01-09 11:44:06 +00:00
Jeff Young 3c60b92472 Add custom rule examples from Martin Straub. 2022-01-09 11:34:20 +00:00
Jon Evans 974a66ddec Ensure LIB_TREE cleans up while frame still exists
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10266

(cherry picked from commit 76f21d950d)
2022-01-08 17:32:42 -05:00
Jeff Young e3328e54c4 Fix view switcher on Mac.
Solution for MSW/GTK still isn't great.
2022-01-08 22:23:44 +00:00
Jeff Young 27c967421c Commenting and "auto" reduction. 2022-01-08 16:47:45 +00:00
Jeff Young aef2a3fca4 Default font for eeschema. 2022-01-08 16:47:45 +00:00
Jeff Young eb58d7e44c Text glyph caches and bug fixes.
1) Unify metrics between stroke and outline fonts
2) Unify handling of rotation and mirroring
3) Bug fixes in collision handling
4) Use of VECTOR2I (instead of VECTOR2D) for world-coordinates
5) Generate outline font overbar with rounded ends and fix rotation
bugs
6) Generate wxEVT_CHOICE events from FONT_CHOICE::SetFontSelection
7) Change text-item PNS SOLIDs to use compound shapes
2022-01-08 16:47:45 +00:00
Jeff Young 72340fcee2 Implement router and DRC collisions for outline fonts. 2022-01-08 16:47:45 +00:00
Jeff Young a2030a5956 GUI for font selection. 2022-01-08 16:47:45 +00:00
Ola Rinta-Koski 72b69e8d7f File format changes for fonts. 2022-01-08 16:47:45 +00:00
jean-pierre charras 9c29cc945c prepare teardrops, round 2 2022-01-08 16:56:41 +01:00
jean-pierre charras 2b20a58615 Zone fill: fix an issue that uses thermal spoke width as thermal gap.
Fixes #10300
https://gitlab.com/kicad/code/kicad/issues/10300
2022-01-08 14:24:14 +01:00
jean-pierre charras 33dbe92deb drc_test_provider_mechanical_clearance: add missing handling of SHAPE_T::RECT
test_ee_item.cpp: add missing call to ClearFieldsAutoplaced();
2022-01-08 10:49:47 +01:00
Seth Hillbrand 4a16c603e9 Don't bind to Alt+Tab
The Alt key is not usable by programs under Windows and Alt+Tab is
reserved on both MSW and Linux.  Instead, we use the Shift modifier to
determine which preset to open
2022-01-07 15:35:46 -08:00
Seth Hillbrand 26c0a78947 Plot pads in layer color
v6 pads are not allowed to be a different color from the rest of the
copper layer, so don't query the GAL layer for a color

Fixes https://gitlab.com/kicad/code/kicad/issues/10293

(cherry picked from commit bfca928900)
2022-01-07 08:56:22 -08:00
jean-pierre charras 53770fec68 Ensure thermal spoke widths are smaller than the pad size (fix a regression)
This is needed to create good thermal reliefs, and ensure the DRC about
thermal spoke count works.
Fixes #10246
https://gitlab.com/kicad/code/kicad/issues/10246
2022-01-07 16:38:27 +01:00
jean-pierre charras 534d635dd4 DIALOG_DRC: avoid use UNDEFINED_LAYER when select or activate a physical layer.
Although strangely it did not create issues on Linux, it does not work on Windows
2022-01-07 12:53:10 +01:00
Seth Hillbrand 4f874057ab DRC scripting: load project from board if possible
s_SettingsManager is not always initialized when the WriteDRCReport is
run.  We should first attempt to extract the project from the actual
board being checked.  Failing that, we fall back to the static settings manager and then exit if we don't have a project associated.

Fixes https://gitlab.com/kicad/code/kicad/issues/10221

(cherry picked from commit 78e737b9d8)
2022-01-06 11:51:05 -08:00
jean-pierre charras 7fa451dc93 Thermal reliefs: fix incorrect calculation
commit eeef655 did not fix the calculations.
2022-01-06 09:00:29 +01:00
Steffen Mauch 82f147ecef pcbnew: EAGLE plugin is case sensitive to >VALUE / >NAME
Fixes https://gitlab.com/kicad/code/kicad/issues/10253
2022-01-05 12:51:02 +00:00
Steffen Mauch a5307c6f59 pcbnew: fixing eagle_plugin with empty class names
Fixes #10229
https://gitlab.com/kicad/code/kicad/issues/10229
2022-01-05 12:19:53 +00:00
jean-pierre charras eeef65533a Pad Thermal Reliefs: fix spoke incorrect angle for rotated pads.
Fixes #10251
https://gitlab.com/kicad/code/kicad/issues/10251
2022-01-05 11:19:43 +01:00
jean-pierre charras c8d6ad0714 Pcbnew, dimensions fix params incorrectly saved for ortho dim
Fixes #10254
https://gitlab.com/kicad/code/kicad/issues/10254
2022-01-05 10:57:32 +01:00
Marek Roszko cc5003a919 Update python for the pad wxSize switch 2022-01-04 23:28:06 -05:00
Jon Evans bf38cb56b7 Handle footprint shapes in polygon creation
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10259

(cherry picked from commit f9d8ec6137)
2022-01-04 21:31:47 -05:00
Jon Evans 4be56825bb Fix creating polygons from footprint rule areas
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10257

(cherry picked from commit e9b91b6fab)
2022-01-04 21:31:40 -05:00
Marek Roszko 726d873c53 Tear down the wxPoint trigo helpers 2022-01-04 21:23:11 -05:00
Marek Roszko e4dbfcd92d Swap out some wxSize for VECTOR2I 2022-01-04 20:42:27 -05:00
Marek Roszko 98ee6c5f85 Cleanup some wx/gdicmn.h includes 2022-01-04 20:32:27 -05:00
Seth Hillbrand e6b5cb3a5c Fix missing FOOTPRINT cast in swig
Fixes https://gitlab.com/kicad/code/kicad/issues/10236

(cherry picked from commit ca8cf14dff)
2022-01-04 11:09:51 -08:00
Thomas Pointhuber de39bffd90 altium: Fix board outline import with arcs using SHAPE_LINE_CHAIN instead of a hack 2022-01-04 19:10:33 +01:00
jean-pierre charras c2b54faceb CvPcb: fix crash due to a null pointer: pcbconfig() can return null.
CvPcb has no config option and pcbconfig() returns nullptr.
In this case use default settings.
Fixes #10250
https://gitlab.com/kicad/code/kicad/issues/10250
2022-01-04 14:51:32 +01:00
Seth Hillbrand ed35f4bfc5 Fix pad snapping in renumber pads
Snap shouldn't be looking for other items in this routine or using the
grid

Fixes https://gitlab.com/kicad/code/kicad/issues/10238

(cherry picked from commit ed9a3deb57)
2022-01-03 19:39:04 -08:00
Marek Roszko ac715d2e51 Scoop up some more wxPoint instances 2022-01-03 20:00:53 -05:00
Jeff Young 6f52edd618 Replace accidental delete of ExpandNode calls. 2022-01-04 00:46:08 +00:00
Seth Hillbrand 2a0e4a8324 Catch errors from `load()`
Loading footprints may throw in some cases.  We need to catch these
nicely without breaking out of the full loading process

Fixes https://gitlab.com/kicad/code/kicad/issues/10213

(cherry picked from commit 1874ad2f7e)
2022-01-03 15:31:14 -08:00
Jeff Young e21fa31f64 Rip out rest of macHack architecture. 2022-01-03 22:09:56 +00:00
Jeff Young b70cf1473f Allow solder mask aperture objects to inherit nets during DRC.
The issue is that object A (the solder mask aperture object) can
bridge objects B and C which have different nets.  Since we only do
object-to-object compares we don't find this.  By allowing object A
to inherit the first net it collides with (either object B's or
object C's), we'll generate a violation with the second collision.

Fixes https://gitlab.com/kicad/code/kicad/issues/10189
2022-01-03 20:58:01 +00:00
jean-pierre charras dde629330d Pcb plot: fixcrash due to a null pointer
Fixes #10223
https://gitlab.com/kicad/code/kicad/issues/10223
2022-01-03 15:11:42 +01:00
jean-pierre charras 5879227ee2 Update footprint wizards after changes wxPoint->VECTOR2I 2022-01-03 11:43:15 +01:00
qu1ck 356cddd474 Template for vector<VECTOR2I> in swig 2022-01-02 21:33:58 +00:00
Jon Evans 60c0891c5f Exit router and invoke edit tool when attempting to drag an arc track
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10208

(cherry picked from commit 45182febaf)
2022-01-02 16:10:50 -05:00
Jon Evans 0e2f79ad8d Fix highlighting color logic when net colors are active
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10157

(cherry picked from commit 134b09004b)
2022-01-02 12:11:58 -05:00
Jon Evans 41e8606fe6 Fix saving of existing appearance presets
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10166

(cherry picked from commit c52421869a)
2022-01-02 12:11:52 -05:00
Jeff Young 0365c6bf4b Coverity fixes. 2022-01-02 14:57:03 +00:00
Jeff Young 89c0f8e297 Move to new font engine. 2022-01-02 14:57:03 +00:00
Simon Richter d25fe17b28 Bump minimum required CMake version to 3.11
Signed-off-by: Marek Roszko <mark.roszko@gmail.com>
2022-01-01 21:35:08 -05:00
Marek Roszko 7d671cff1e Scoop up some more wxPoints 2022-01-01 21:06:40 -05:00
Seth Hillbrand 410ed8a071 Prevent ops on empty selection
Fixes https://gitlab.com/kicad/code/kicad/issues/10164

(cherry picked from commit bd75cffff3)
2022-01-01 15:29:18 -08:00
Tomasz Wlostowski dafa8ec671 pcbnew: fix incorrect type cast in DRC_TEST_PROVIDER_TEXT_DIMS
FP_TEXT cannot be casted to PCB_TEXT for obvious reasons, but what I don't understand is why downcasting to EDA_TEXT also crashes due to incorrect vtable method pointer (Clang10/Linux here).

I leave this as a curiosity for whoever knows C++.
2022-01-01 22:42:16 +01:00
Jeff Young dc2e93cd0f Fix setting/fetching angle out of footprint angle control.
Fixes https://gitlab.com/kicad/code/kicad/issues/10176
2022-01-01 20:46:45 +00:00
Marek Roszko c91d3e3cf9 Remove some more wxPoint 2022-01-01 14:12:20 -05:00
Marek Roszko ea613cf448 Another batch of point changes 2022-01-01 13:17:12 -05:00
Marek Roszko d1552c3fec Some more wxPoint removal 2022-01-01 12:11:21 -05:00
Marek Roszko c4c56de708 Neurotically update position wxPoint usages 2022-01-01 11:55:51 -05:00
Marek Roszko 347e03363a Convert wxPoint/wxSize starting from EDA_RECT usages 2022-01-01 11:30:33 -05:00
jean-pierre charras b1384d97a3 Pcbnew, drawing sheet: use "First Page" option to draw/plot it.
Some items can be drawn only on the first page or only on the other pages.
a board has only a first page.
2022-01-01 09:29:18 +01:00
Wayne Stambaugh d634b33c34 Preference dialog fixes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10139
2021-12-31 14:59:46 -05:00
Tomasz Wlostowski 01d1f8723c SVG_IMPORT_PLUGIN: enable postprocessing of polygons with degeneracy and holes
Fixes https://gitlab.com/kicad/code/kicad/-/issues/6739
2021-12-31 17:05:50 +01:00
Tomasz Wlostowski 3fce15f442 GRPAHICS_IMPORTER_BUFFER: forgot to store the indices of the paths belonging to a compound shape 2021-12-31 17:04:16 +01:00
Tomasz Wlostowski e1f32f13a2 pcbnew: SVG importer support for even-odd fill rule 2021-12-31 17:04:16 +01:00
Tomasz Wlostowski 5d87b37f52 pcbnew: GRAPHICS_IMPORTER can now recognize multi-path shapes (and postprocess polygons with holes into Kicad-compatible fractured polysets) 2021-12-31 17:04:16 +01:00
Ian McInerney f744ddd11d Fix copy-paste error in PNS mouse trail tracer
And also fix indentation of control flow.
2021-12-31 00:04:11 +00:00
Ian McInerney 0e9cfd0af2 Add missing initialization values to variables
Flagged by Coverity.
2021-12-30 23:42:06 +00:00
Marek Roszko e75d283007 Remove the unused updateui in the selection filter base 2021-12-30 11:13:56 -05:00
Erwan Rouault dc98419d85 pcbnew: Add via height support in drc length
Fixes https://gitlab.com/kicad/code/kicad/-/issues/10135

(cherry picked from commit 11c967b259)
2021-12-30 09:35:10 -05:00
Jon Evans 992952e3d5 Tune connectivity progress reporter
We don't need quite as many updates, this helps speed a little

See https://gitlab.com/kicad/code/kicad/-/issues/10154

(cherry picked from commit 0ec440805d)
2021-12-30 09:20:41 -05:00
jean-pierre charras 480a548171 PCB_PAINTER: do not show track arc clearance when not needed
fix also a minor compil warning.
Fixes #10137
https://gitlab.com/kicad/code/kicad/issues/10137
2021-12-30 09:21:35 +01:00
Mark Roszko 44dc602d6b Yeet wxPoint/wxSize out of PLOTTER 2021-12-29 19:02:50 +00:00
Jeff Young ccb94fd1a7 APIs for passing KIFONT::FONT pointers around.
Also some clean-up and bug fixes.
2021-12-29 17:32:19 +00:00
Jeff Young dd6cd7d184 Pull some more improvements in from rockola/kicad-strokefont.
This one is primarily about pushing TEXT_ATTRIBUTES in to the GAL
API, but it also includes adding EDA_ANGLE signatures to some trig
routines to ease integration.
2021-12-29 17:32:19 +00:00
Marek Roszko 3f711b8958 Add win32 VERSION_INFO resource blocks for the DLLs 2021-12-28 23:54:27 -05:00
Jeff Young 86cb57f4a7 Cherry-pick TEXT_ATTRIBUTES and EDA_ANGLE from rockola/kicad-strokefont 2021-12-28 22:15:20 +00:00
Wayne Stambaugh 7b1b96c933 Fix broken tree book selection in paged dialogs.
This only affected the tree controls that only parented sub-pages.  Do
not use the dialog ctor to select the initial page.  Queuing a page
changed event to fire after the dialog is shown is the proper solution.
2021-12-28 09:43:57 -05:00
Jacob Mealey 987a6e125b fix in pcbnew/python/swig/units.i ... added error handling
Added error handling in unit conversions for the pcbnew python bindings.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/10081
2021-12-28 07:09:27 +00:00
Marek Roszko 38842647b8 Use the correct parent for the root node placeholders of board setup 2021-12-27 19:05:51 -05:00
Marek Roszko 7550bd6d4f Use the correct parent for the new Formatting page 2021-12-27 19:03:19 -05:00
Jeff Young 3a8ffd40b8 Fix dimension drawing bug. 2021-12-26 17:30:21 +00:00
Jeff Young 4c6e54b3ea Cleanup. 2021-12-26 17:30:14 +00:00
Jeff Young 0915eb2209 Be more agnostic about specific class hierarchy used to impl dimensions.
Fixes https://gitlab.com/kicad/code/kicad/issues/10123
2021-12-26 17:14:44 +00:00
Jeff Young ab583a32f9 Better layer handling for DRC markers.
Fixes https://gitlab.com/kicad/code/kicad/issues/10126
2021-12-26 15:06:12 +00:00
Jeff Young 5e4a704155 Remove some more duplicated preferences.
Fixes https://gitlab.com/kicad/code/kicad/issues/10112
2021-12-26 13:37:28 +00:00
Jeff Young eac65635be Redraw items when clearance annotations change.
Fixes https://gitlab.com/kicad/code/kicad/issues/10112
2021-12-26 13:37:28 +00:00
Marek Roszko 3dd8c57bdd Fix race condition with ShowEventCounters on Windows 2021-12-26 08:29:54 -05:00
Jeff Young 70b3600e5b Check footprint text items for changes when updating.
Fixes https://gitlab.com/kicad/code/kicad/issues/10111
2021-12-25 17:32:55 +00:00
dsa-t d105e773a1 Update columns when height changes too 2021-12-25 15:26:43 +00:00
Alex bc146db06d Net inspector changes 2021-12-25 15:26:43 +00:00
Alex 45c50535c5 Use GetUnobscuredSize in dialogs/panels 2021-12-25 15:26:43 +00:00
Jeff Young 933b82495d Use ISO 128-2 values for dashed line defaults. 2021-12-25 14:00:57 +00:00
Jeff Young 03a5bd5319 Handle flipped footprints in library compare algorithm.
Also fixes a bug where line styles weren't taken into account.

Fixes https://gitlab.com/kicad/code/kicad/issues/10107
2021-12-25 13:41:59 +00:00
Jeff Young 09b7e0b72b ADDED Exclude Footprint from Courtyard Requirement.
Fixes https://gitlab.com/kicad/code/kicad/issues/9881
2021-12-24 21:10:28 +00:00
Jeff Young d649b288a6 Swap out autoplace rotation costs for private footprint layers.
Fixes https://gitlab.com/kicad/code/kicad/issues/2291

Fixes https://gitlab.com/kicad/code/kicad/issues/5391
2021-12-24 21:10:28 +00:00
Jeff Young fa908e1f98 Dimensions for footprints.
Fixes https://gitlab.com/kicad/code/kicad/issues/8441
2021-12-24 21:10:28 +00:00
Jeff Young dabc75bee8 Source 3D dimensions from board stackup.
Also includes a performance improvemnt by caching the 3D model matrices.
2021-12-24 21:10:28 +00:00
Jeff Young 2538ad16aa Handle router collisions with filled shapes. 2021-12-24 21:10:28 +00:00
Jeff Young ed79f6e511 Clean up some TODOs. 2021-12-24 21:10:28 +00:00
Jeff Young da11574a19 Remove dead code. 2021-12-24 21:10:28 +00:00
Jeff Young 29c942816e Reduce duplication of settings. 2021-12-24 21:10:28 +00:00
Jeff Young b4c5e64db2 Exclusions for Unconnected Items; Markers & exclusions for Parity checks
Fixes https://gitlab.com/kicad/code/kicad/issues/5589

Fixes https://gitlab.com/kicad/code/kicad/issues/5504
2021-12-24 21:10:28 +00:00
Jeff Young e363a0eedc ADDED Edit Text and Graphics Properties for Footprint Editor.
Fixes https://gitlab.com/kicad/code/kicad/issues/9650
2021-12-24 18:13:21 +00:00
Jeff Young c3552a940a Make sure standard OK/Cancel buttons respond to current language.
Fixes https://gitlab.com/kicad/code/kicad/issues/9635
2021-12-24 18:13:11 +00:00
Jeff Young 6cec58cf75 Add field access to custom DRC rules.
ADDED getField() method to custom DRC rules.
2021-12-24 18:13:00 +00:00
Jeff Young c6d4a9f0b2 Button bar for PCBNew Text Properties dialog. 2021-12-24 17:39:00 +00:00
Jeff Young 23194dbe54 User-settable high-contrast dimming factor.
ADDED user-settable high-contrast dimming factor.

Fixes https://gitlab.com/kicad/code/kicad/issues/6922
2021-12-24 17:38:55 +00:00
Jeff Young a6dd1bf09b Implement Reset to Defaults for all preferences panels. 2021-12-24 17:38:39 +00:00
Jeff Young ceceda37cc No more long-lived parsers.
We've had too many bugs from improper re-initialization.

Fixes https://gitlab.com/kicad/code/kicad/issues/9429
2021-12-24 17:11:18 +00:00
Jeff Young 6c05e5d1a8 Implement user viewports.
ADDED popup to Appearances palette where users can define viewports
for later selection.

Fixes https://gitlab.com/kicad/code/kicad/issues/2271
2021-12-24 17:11:14 +00:00
Jeff Young 58d4ac2a97 Keep netnames on tracks within the viewport when possible.
Fixes https://gitlab.com/kicad/code/kicad/issues/2032
2021-12-24 17:11:01 +00:00
Jeff Young 3f90b3e2a0 Keep line stroke params as long as layer doesn't change.
Fixes https://gitlab.com/kicad/code/kicad/issues/6210
2021-12-24 16:13:51 +00:00
Jeff Young b7e196b710 ADDED assertion constraints for user-defined DRC checks. 2021-12-24 16:13:18 +00:00
Jeff Young 4ba3937f8a Cleanup. 2021-12-24 15:43:24 +00:00
Jeff Young 9ee28ea8f5 Flatten out some more preferences. 2021-12-24 15:43:20 +00:00
Jeff Young 0332ec6016 ADDED exclude all violations of rule X.
Fixes https://gitlab.com/kicad/code/kicad/issues/5463
2021-12-24 15:42:22 +00:00
Jeff Young 5f37c2b247 Custom rule severities.
ADDED severity token to custom rule syntax.  Each rule can now define
its own severity.

Fixes https://gitlab.com/kicad/code/kicad/issues/6148
2021-12-24 15:42:22 +00:00
Jeff Young fcb013e5d7 When updating footprints indicate which were changed.
Fixes https://gitlab.com/kicad/code/kicad/issues/4203
2021-12-24 15:42:22 +00:00
Jeff Young d28714167c All the preferences, all the time.
Fixes https://gitlab.com/kicad/code/kicad/issues/7877

Fixes https://gitlab.com/kicad/code/kicad/issues/5153
2021-12-24 13:08:44 +00:00
Jeff Young f1410f0240 Line styles for PCBNew shapes.
Fixes https://gitlab.com/kicad/code/kicad/issues/2150
2021-12-24 12:36:59 +00:00
Jeff Young b2dff6fa55 Fix solder mask plotting issues.
1) Don't plot all footprint texts for each footprint graphic item.

2) Enforce min web thickness around board shapes and board text.

3) Enforce min web thickness around footprint shapes

4) Correctly handle multi-layer zones.

(1) and (4) will get cherry-picked back to 6.0, so after rebasing
won't actually appear in this changelist anymore....
2021-12-24 12:36:45 +00:00
Jeff Young ef10b36948 Add mask-to-copper clearance parameter and rename mask margin. 2021-12-24 12:36:41 +00:00
Jeff Young 3aa6d73770 Allow min/max/opt to come from different rules. 2021-12-24 12:36:37 +00:00
Jeff Young 4b6f2f0658 Add mechanical copper clearance testing for shapes.
Also includes going from distance-based neighbor exclusion to angle-
based.  (Distance doesn't work when very short segments are followed
by very long ones.)

Fixes https://gitlab.com/kicad/code/kicad/issues/2512
2021-12-24 11:40:10 +00:00
Jeff Young 1305c2177f Add a checker for copper-to-copper clearance within a single zone.
Fixes https://gitlab.com/kicad/code/kicad/issues/2512
2021-12-24 11:40:06 +00:00
Jeff Young 815c2c69e7 Support for dielectric colors in board stackup.
Fixes https://gitlab.com/kicad/code/kicad/issues/8491
2021-12-24 11:39:50 +00:00