Commit Graph

15700 Commits

Author SHA1 Message Date
Marek Roszko 67b031adab Painter base class should just live in gal instead of being in denial 2023-09-06 20:23:19 -04:00
Josue Huaroto cef0f176d3
Add Unselect all in menu 2023-09-06 23:44:39 +00:00
Marek Roszko 4d77fd48ef Shove thread_pool to core 2023-09-06 17:50:12 -04:00
John Beard 3c5052c1ac Add snaps to pad hole edges
This is often useful when measuring the distance from an
object to a pad hole edge, and also when dimensioning
holes.
2023-09-06 21:34:17 +01:00
John Beard 78c8de9b08 Fix oval pad snapping
Previously the snap points computed for oval pads didn't get all the
points correct. This breaks out the "find snap points for ovals"
into a function, reworks the logic, adds some tests.

Also adds "extremum points" when the oval isn't exactly H/V.

Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15594
2023-09-06 21:33:45 +01:00
Seth Hillbrand 1662f6aad6 Speed up footprint loading by caching
Store the COMPOUND_FILEs in a map referenced to the library name.  This
keeps the COMPOUND_FILE cache in memory rather than regenerating it each
time
2023-09-06 19:15:35 +00:00
Seth Hillbrand 1b63d11adf Speed up Altium compound file reader
Just read the footprint list once and store the cache for later use.
2023-09-06 19:15:35 +00:00
Seth Hillbrand b8b2498e0c Add support for fp cutouts in Altium libs 2023-09-06 19:15:35 +00:00
Seth Hillbrand cb3c712a9c ADDED: memberOfSheet() design rule function
Footprints that are a member of a specific sheet may be assigned
distinct rules, allowing users to group their rules based on sheet
layout
2023-09-06 19:14:00 +00:00
Seth Hillbrand f9b745f3d2 Allow multiple format image saving
- Keep original image data.  When loading JPEG, this avoid recompression
  that changes file data and decreases image quality
- Allow schematic and page layout editors to store non-PNG data as well
- Move page layout editor to store base64 instead of hex-coded data
2023-09-06 12:12:32 -07:00
Seth Hillbrand 0e382669d0 ADDED: Support for saving JPEG files in kicad_pcb
When users add an image to the board, this change keeps the original
file format when saving instead of converting the files into PNG-format,
which had the effect of making some board files much larger and slower

Fixes https://gitlab.com/kicad/code/kicad/-/issues/14892
2023-09-06 12:12:32 -07:00
Jeff Young c07e9c834f Validate new footprint / save as footprint info before exiting dialog.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13923
2023-09-06 12:49:37 +01:00
Alex Shvartzkop e09a15ae4c Altium PCB import: fix rectangular keepout fills. 2023-09-06 09:02:54 +03:00
Alex Shvartzkop 4f303a8dc2 Altium PCB import: Polygon Cutout only cuts copper fill.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15587
2023-09-06 08:43:12 +03:00
jean-pierre charras cbcaaa001c fix some Coverity and compil warnings. 2023-09-05 20:30:08 +02:00
Marek Roszko f894f7ec4c Use the right path for loading drawing sheet in pcbnew cli 2023-09-05 11:01:57 -04:00
Alex Shvartzkop a5a93f808e Populate symbol library type choices from SCH_IO_MGR list. 2023-09-05 07:19:15 +03:00
Marek Roszko b566f994bb
Flip the RegisterSettings order to avoid legacy import crashes
(cherry picked from commit 32c2135047)
2023-09-05 03:23:07 +00:00
Marek Roszko a2522a2230 Don't call .Load() and cause settings to reload from disk
RegisterSettings can load the new settings json as added by not turning off the load now parameter
2023-09-04 22:42:00 -04:00
Jeff Young ea6d64e996 Set line width when changing annotation proxy flag.
(This prevents rectangle from not getting combined into pad if
proxy flag is turned off as Clipper collapses the polygon union
because it's too small.)
2023-09-04 20:49:52 +01:00
Jeff Young 7c718db5d2 Remove dialog-based primitive editing in favour of Pad Edit Mode.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/13561
2023-09-04 20:49:52 +01:00
Jeff Young 0e26f3ab30 Allow pad number box creation in pad edit mode.
(Also fixes a bug where we'd include pad number box in pad shape.)
2023-09-04 20:49:52 +01:00
Alex Shvartzkop 3215223ee2 Move fix_board_shape.cpp to pcbcommon. 2023-09-04 22:26:47 +03:00
jean-pierre charras 2bf8602912 DIALOG_EXPORT_STEP_LOG: print the command line sent to kicad-cli in report window.
It can be useful in case of problems.
2023-09-04 19:03:04 +02:00
Jeff Young 0cde8cff1d Don't include plating thickness when drawing hole clearance lines.
We don't include it in the router, and the code didn't
differentiate between plated and non-plated holes, and it confuses
users.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15575
2023-09-04 16:06:09 +01:00
Matus Pavelek d57c5d3ad9
QFN footprint wizard - Allow different number of pads in x and y directions 2023-09-04 13:39:28 +00:00
Marek Roszko 63824487d0 Hide the unsupported Visible prop for textbox text 2023-09-04 09:28:59 -04:00
Marek Roszko 4b31de61b3 Rename txtbox props to border props 2023-09-04 09:28:59 -04:00
Jeff Young fe0fb92441 Reduce visual clutter in GAL display options. 2023-09-04 13:06:46 +01:00
Jeff Young c9fd03202a Generate an immediate refresh when loading new footprint. 2023-09-04 11:12:34 +01:00
Alex Shvartzkop 2bb457d477 Remove unused variable. 2023-09-04 07:00:23 +03:00
Alex Shvartzkop ab6a049b90 Add a routine for joining PCB shapes. 2023-09-04 06:46:24 +03:00
Alex Shvartzkop 24e0a9455e Fix a string in step exporter. 2023-09-04 06:45:25 +03:00
Alex Shvartzkop b2a0d85c84 Hide std::abs for EDA_ANGLE from Python. 2023-09-04 06:45:12 +03:00
Jeff Young 9bba8e5956 Don't allow duplication of footprint items outside of footprint editor.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15487
2023-09-03 22:04:50 +01:00
Jeff Young d27413a032 Remove up/down buttons until we implement layer ordering.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14574
2023-09-03 21:31:46 +01:00
Jeff Young 60419f542a Bug fixes for paste margins on custom-shaped pads.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15125
2023-09-03 20:43:48 +01:00
Jeff Young a24a8aaca7 Don't start a pack&move when already in an EDIT_TOOL drag or move.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15545
2023-09-03 14:03:52 +01:00
Jeff Young 624203f2e1 Don't start a router drag when already in an EDIT_TOOL drag or move.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15312
2023-09-03 14:03:52 +01:00
Josue Huaroto a8e18e2d8c
Flip Viewport when Flip board is enabled 2023-09-03 12:30:32 +00:00
aris-kimi 38748cce84
Small order change for three View menu items v2 2023-09-03 12:29:06 +00:00
Jeff Young 43862d767e Don't return separate shapes from a custom-shaped pad.
It just confuses the hull generator.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15553
2023-09-03 13:23:53 +01:00
Jeff Young 61bcf46ffe Don't show preview for lib-item loaded on to canvas. 2023-09-03 12:07:09 +01:00
Jeff Young e6b0a6abca ADDED: lib tree previews.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2418
2023-09-02 23:30:22 +01:00
Jeff Young 891583f616 Fix nullptr error. 2023-09-02 12:08:37 +01:00
Jeff Young 41e274684c Make sure pads with no net get assigned Default netclass on board open.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15562
2023-09-02 10:11:38 +01:00
Jeff Young 2d762acc7d Remove accidentally-checked-in debugging code. 2023-09-02 10:11:38 +01:00
Alex Shvartzkop 90eb59cf9f Fix saving a new footprint library.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15563
2023-09-01 23:30:27 +03:00
Jeff Young 69a1b30b8a Implement undo/redo around Pad Edit Mode changes. 2023-09-01 18:48:46 +01:00
Jeff Young aacb85bdab Make sure enum gets initialized. 2023-09-01 18:48:46 +01:00
Jeff Young 68c839b214 Stop trying to zero-out offset of custom-shaped pads.
It causes *way* to many issues.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15555
2023-09-01 18:48:46 +01:00
Marek Roszko f357e79f77 Add --define-var / -D to the cli opts for some commands
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15437
2023-08-31 21:46:37 -04:00
Marek Roszko b542539546 Add --drawing-sheet arg for various cli commands for overriding the project sheet
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15438
2023-08-31 19:53:23 -04:00
jean-pierre charras 160ec181ac dialog_export_svg: add color theme selection.
Previously, the Kicad Classic theme was always used.
2023-08-31 20:33:44 +02:00
Jeff Young 5358343023 Make button alignment consistent. 2023-08-31 17:47:28 +01:00
jean-pierre charras 0aaafc92fc Fix a compil issue with gcc created by commit 21c54f97 (gcc only) 2023-08-31 16:21:40 +02:00
Jeff Young 9a045af81f Make all debugging statments use netcode (instead of some using netname). 2023-08-31 15:15:57 +01:00
Jeff Young 05135eed66 Extra debugging info for pns regression tests. 2023-08-31 15:15:57 +01:00
Jeff Young c049e1e90d Formatting (no functional changes). 2023-08-31 15:15:57 +01:00
Marek Roszko 37717a8281 Fix other stroke types still drawing the border regardless of enable 2023-08-31 07:52:19 -04:00
Marek Roszko 21c54f9721 Add two more border props to props panel 2023-08-31 07:49:15 -04:00
jean-pierre charras 085485717c Gerber place file: change DCode size of pads others than 1 or A1 to 0.1 mm
Previously it was a round shape 0.0 mm (allowed but not visible)
Gerber Format rev 2023-08 changed it to 0.1 mm (still a round shape)
2023-08-31 11:02:50 +02:00
jean-pierre charras 5bf0689ac8 Fix typos in translatable strings.
fix also a coding style issue.
2023-08-31 10:27:36 +02:00
Marek Roszko ffbe0f36da Tweak the textbox file indentation
(layer was previously misaligned as it wasn't intended to be used on a new line
2023-08-30 22:47:10 -04:00
Marek Roszko 2e58f4ea60 Fix three spots it always failed to check if the border was enabled 2023-08-30 22:39:07 -04:00
Marek Roszko 2dcb7caacf Add an explicit border property to textboxes
This means it can remember the last border stroke between enabling/disabling the border
2023-08-30 22:33:55 -04:00
Alex Shvartzkop e128896ba6 Schematic plugins refactoring, fixes for PCB plugins.
- Move PLUGIN_FILE_DESC to common.
- SCH_PLUGIN: rename Load -> LoadSchematicFile, Save -> SaveSchematicFile.
- Use PLUGIN_FILE_DESC and CanRead* in schematic plugins.
- Return none/unknown types from Find/GuessPluginType functions.
- Iterate over file types for file wildcards.
- Clean-up header checking in IO plugins.
- Use PCB plugin list in IO_MGR::GuessPluginTypeFromLibPath.
2023-08-31 05:08:03 +03:00
Jeff Young cf14b3c233 Fix conversion to netnames in PNS_DBG output. 2023-08-31 00:25:20 +01:00
Mike Williams b8a61719c3 Grids: make overrides use existing grids (choice box) 2023-08-30 13:33:04 -04:00
Mike Williams b1a388ca69 Grids: Support X and Y for all grids, add optional names 2023-08-30 11:22:19 -04:00
Jeff Young d74e9ba040 Support SHORT_NET_NAME(pin_number) and friends on symbols.
While it's of debatable use in the schematic, some users want to
author them there so that they're then copied onto the board.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15544
2023-08-30 11:43:35 +01:00
jean-pierre charras 67d3528866 fix minor compil warnings 2023-08-30 09:09:54 +02:00
Alex Shvartzkop f8dac43325 STEP export: add short segments as circles.
Because OCC can't connect two arcs together sometimes.
2023-08-29 23:58:25 +03:00
Josue Huaroto 156288bfcf Extend boundary size of PCB_VIEW 2023-08-29 19:41:36 +00:00
Josue 94e86a69be Update RECT to RECTANGLE 2023-08-29 11:50:22 -05:00
Josue ae3a9d05b5 Remove dialog events 2023-08-29 11:50:16 -05:00
Josue 761929c052 Add OnKillFocus Event for Coordinates and Segment, Rectangle properties 2023-08-29 11:50:15 -05:00
Josue e5316fd1aa Change name: Truncate -> Round 2023-08-29 11:50:12 -05:00
Josue 54aaec3a57 Add Enter event to coordinates and Segment, Rectangle properties 2023-08-29 11:50:10 -05:00
Josue 8d7255aae3 truncate angle values in Segment properties 2023-08-29 11:50:09 -05:00
Josue 6429051750 change Rectangle property: Length to Height 2023-08-29 11:50:05 -05:00
Josue c3766bb250 Implement Length and Width for RECT 2023-08-29 11:50:02 -05:00
Josue f31a524026 add rectangle properties to UI 2023-08-29 11:49:57 -05:00
Josue 5061ca54e7 add length and angle properties to segment 2023-08-29 11:49:55 -05:00
Jeff Young f24cf2250e Make sure we have a BOARD when trying to read nets.
Also fixes a nullptr bug when trying to write nets when we don't
have a NODE.
2023-08-29 17:30:00 +01:00
Alex Shvartzkop af62e4276b Wrap FILE_LINE_READER in try-catch blocks in PCB plugins for CanRead*. 2023-08-29 19:13:55 +03:00
Jeff Young d161602e92 Don't snap a footprint (or group) to its children.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15535
2023-08-29 13:05:08 +01:00
Alex Shvartzkop a9a2d4aa7a Improve error reporting when running Python action plugins.
Python error traceback is now logged to stderr.
On Windows, a console window will pop up if wxTheApp gets destroyed,
because message dialogs crash due to hooks that wxWidgets sets up.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15520
2023-08-29 07:06:11 +03:00
Ian McInerney ba22347904 Move pcb_actions to new constructor 2023-08-29 00:19:19 +01:00
Seth Hillbrand fa15f8aa0c Fix compile error
wxMkDir's mode is required for linux but not windows (yay)
2023-08-28 14:57:28 -07:00
Roberto Fernandez Bautista 32b6deb8b1 ADDED Migrate libraries button in Footprint Library Table
Allows easy migration of legacy and non-KiCad footprint libraries
2023-08-28 22:44:10 +02:00
Roberto Fernandez Bautista f693366910 CADSTAR PCB: nullptr safety 2023-08-28 22:38:46 +02:00
Jeff Young 0d39cd5e63 Allow for offset custom-shaped pads with no holes. 2023-08-28 18:07:18 +01:00
Wayne Stambaugh e4feb8826b Coverity issue fixes. 2023-08-28 09:29:56 -04:00
jean-pierre charras f4bf3bf611 Do not use the deprecated wxWidgets wxPATH_NORM_ALL flag.
Replaced by our equivalent FN_NORMALIZE_FLAGS flag.
Fix also a typo in a string.
2023-08-28 14:37:15 +02:00
Mike Williams 3edcef0229 Grids: remove more uses of old user grid in UI
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/15515
2023-08-28 07:27:25 -04:00
Jeff Young a4d1b29b91 Remember footprint library browsers liblist width.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15500
2023-08-27 21:17:29 +01:00
Jeff Young 676c6e81a4 Custom pads with round anchors in pre-7.0 files get 90 degree spokes.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15518
2023-08-27 20:42:59 +01:00
Jeff Young a470cab7b2 Include description for page settings command. 2023-08-27 19:03:17 +01:00
jean-pierre charras 114ff054d3 STEP exporter: export track segments as thick segments with rounded end using arcs.
They are no longer exported as polygons.
Export time is slightly faster and file sizes slightly smaller.
Track arcs are still exported as polygons.
2023-08-27 19:37:41 +02:00