Commit Graph

13067 Commits

Author SHA1 Message Date
Jeff Young f3cd36d1d7 Bring EEschema textboxes in line with PCBNew's.
Also adds Border checkboxes and fixes a bunch of bugs.
2022-01-31 21:46:40 +00:00
Jeff Young 5739505aa3 TextBoxes for PCBNew. 2022-01-31 20:00:47 +00:00
Jeff Young 60bcfd1bf1 Bug fixes in arc & textbox printing.
Also removal of the no-longer-used clipping code from GR*.
2022-01-31 20:00:47 +00:00
jean-pierre charras c494274b2e export D356 netlist: fix incorrect id for pads type connectors.
these pads are similar to SMD pads and should have the same id.
Fixes #10694
https://gitlab.com/kicad/code/kicad/issues/10694
2022-01-31 19:53:02 +01:00
Jonathan Haas 7b01530eca EDA_ANGLE: use existing Normalize180 function here 2022-01-31 18:16:49 +00:00
jean-pierre charras f846f6f704 PCB_CONTROL::unfilledZoneCheck(): skip rule areas: they are not filled by definition.
Fixes #10691
https://gitlab.com/kicad/code/kicad/issues/10691
2022-01-31 17:01:52 +01:00
markus-bonk a8486c5296 Fix warning: declaration shadows a previous local [-Wshadow]. 2022-01-31 10:41:51 +00:00
Alex e9ffea83fd Cross-probing: Do not center/zoom on empty BBox 2022-01-31 10:17:59 +03:00
jean-pierre charras 419010ec46 teardrop: add filtering to skip teardrops when pad/vias and tracks have similar sizes 2022-01-30 15:39:28 +01:00
jean-pierre charras 3a66f33d96 TEARDROP_MANAGER: add option to add teardrops on pads in zones. 2022-01-30 15:39:27 +01:00
jean-pierre charras cc2a897e2b very minor fix 2022-01-30 09:08:21 +01:00
jean-pierre charras aef665b1e2 PCB_TARGET: add missing TransformShapeWithClearanceToPolygon() method.
Fixes #10653
https://gitlab.com/kicad/code/kicad/issues/10653
2022-01-29 18:19:22 +01:00
Seth Hillbrand ad84b62b63 Prevent multiple single-point line solutions
Suggested by @rivimey, we test the case where both lines return singular
point lines and prevent them leaking into our drag solution

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

(cherry picked from commit 38a4894d92)
2022-01-29 07:07:29 -08:00
jean-pierre charras 43f5a7c746 DIALOG_PLOT: use a short living quasimodal dialog instead of a long living window.
In this case, a quasimodal dialog is the right way.
Fixes #10650
https://gitlab.com/kicad/code/kicad/issues/10650
2022-01-29 13:14:22 +01:00
Seth Hillbrand c01e2dcfec Fix large memory leak in DRC
All elements get effective shapes, many of which get triangulated.  This
memory needs to be freed when destroying the tree

(cherry picked from commit c2707f3cc0)
2022-01-28 17:08:33 -08:00
Seth Hillbrand 16e802aff4 Don't count zero-length as duplicate
We were checking for duplicate tracks by looking to see if the two
tracks had two shared points.  A null track always matched this case,
which removed the valid track.  We solve this by avoiding null tracks in
the duplicate checker.  They are removed separately in the null track
stage.

This also fixes a GTK-specific tree issue where we require the
BeforeReset()/AfterReset() calls instead of Cleared() to prevent GTK
from dereferencing a parent after freeing

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

(cherry picked from commit 8753051db6)
2022-01-28 16:34:34 -08:00
Davide Gerhard ea9f960cc1 cmake: adding KICAD_MACOSX_APP_BUNDLE option
ADDED: with cmake KICAD_MACOSX_APP_BUNDLE option the user can disable
the macOS app bundle creation when compiling on macOS. This permit to
use/install KiCad like any other *nix platform (/usr/bin, /usr/share,
ecc.). By default, cmake build the app bundle.
2022-01-28 15:49:37 -08:00
Seth Hillbrand 7277fd6218 Don't allow degenerate lines in dragger
If walkaround returns an invalid line, don't consider it for a track

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

(cherry picked from commit 8ae304dcca)
2022-01-28 15:19:06 -08:00
Jeff Young 0036f44e37 Support (and save/recall) zoom in/out in Custom Rules editor.
Fixes https://gitlab.com/kicad/code/kicad/issues/5796
2022-01-28 21:38:15 +00:00
jean-pierre charras 5b8eb8f9ec SVG plotter rework: use mm as units in file. Remove useless inch option.
Use 4 digits in mantissa as default and when exporting SVG.
Allow 0 as line width: this is the right value to draw filled shapes with no outline thickness.
2022-01-28 19:33:51 +01:00
jean-pierre charras 901a9387e9 Fix python fp wizards according to last kicad code changes, especially EDA_ANGLE 2022-01-28 19:33:51 +01:00
Seth Hillbrand d32a72ddde Fix PCAD arc import 2022-01-28 10:20:18 -08:00
markus-bonk 09886bac38 Fix missing pcbcommon dependency declaration.
The pcbnew_navlib library didn't have a proper dependency chain. It
relies on headers that come from pcbcommon.
2022-01-28 12:21:42 +00:00
markus-bonk 233b537170 Fix code style. 2022-01-28 12:21:42 +00:00
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