Jeff Young
c3a0621dfb
Formatting.
2025-05-12 20:28:47 +01:00
Jeff Young
b70d3586c9
Use native arcs (not approximated ones) when converting circles to polygons.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20895
2025-05-12 20:28:47 +01:00
Seth Hillbrand
4d40ea2586
Allow Arc conversion to-from tracks-graphics
2025-01-14 13:08:45 -08:00
Seth Hillbrand
0b2d4d4879
Revise Copyright statement to align with TLF
...
Recommendation is to avoid using the year nomenclature as this
information is already encoded in the git repo. Avoids needing to
repeatly update.
Also updates AUTHORS.txt from current repo with contributor names
2025-01-01 14:12:04 -08:00
Seth Hillbrand
e9bc8cfe9d
Give Clipper1 a Viking funeral
...
Clears out the last spot where we were only using Clipper1 (how'd I
miss that?) and remove all calls to the Clipper1 structures
2024-12-23 17:12:09 -08:00
JamesJCode
37a3e55bd3
Allow pcb rule areas to handle keepout and placement concurrently
...
- Implements component classes for placement rule areas and multichannel tool
- Implements property inspector properties for rule areas
- Fixes some zone member default initialisation issues
- Gates all multichannel-related imlpementation with existing adv config flag
- Removes rule area type enum, replaces with inference from keepout and
placement settings
2024-10-10 23:29:02 +01:00
Jon Evans
56e0811516
Phase 2 of padstack support
...
CHANGED: PCB file format now supports saving/loading complex padstacks
CHANGED: PTH pads are now rendered per copper layer in the copper color;
the PTH pad color is no longer used.
ADDED: support for importing complex pad stacks from Altium PCBs
Enforce padstack-aware access to pad properties across KiCad
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8182
2024-10-01 19:55:03 -04:00
John Beard
8fdb6d6e88
Feature: Exact item offset tool
...
This is a little bit like the bounding hull tool, but the
output is "exact" and it only supports the most common
source items.
By 'exact', this means that rounded corners are real arc
segments rather than polygonal approximations. Obviously,
this is rather tricky in the general case, and especially
for any concave shape or anything with a bezier in it.
Envisioned main uses:
* Creating courtyard and silkscreen offsets in footprints
* Making slots around line or arcs.
The one thing that it does not currently do, but which it might
plausibly do without reimplementing Clipper is convex polygons,
which would bring trapezoidal pad outsets for free. But that
is a stretch goal, and bounding hull can be used.
2024-09-19 06:35:43 +01:00
jean-pierre charras
9b6d167236
Convert graphic to polygon or zone: fix some issues:
...
- fix gap added twice
- add missing gap setting in DIALOG_COPPER_ZONE and DIALOG_NON_COPPER_ZONES_EDITOR
Fixes https://gitlab.com/kicad/code/kicad/-/issues/18724
2024-09-17 13:26:33 +02:00
John Beard
81c1cd9af1
Pcbnew: convert to lines should take the width of polygons if it can
...
Fixes: https://gitlab.com/kicad/code/kicad/-/issues/18713
2024-09-15 21:08:04 +01:00
Jeff Young
94f995c49e
Reduce dependency on dynamic_cast.
...
(Especially where it is no-worky on MacOS.)
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17245
2024-09-04 17:24:49 +01:00
Jeff Young
c549a214c9
Performance: don't alloc std::vector in critical areas.
...
For some history, see also aa2ad3b44c3e533cf00a5077db17fb0ee7e302eb
2024-06-21 19:07:46 +01:00
Seth Hillbrand
4c0fd6e791
Re-initialize conversion settings on failure
...
When the conversion fails, it may be the result of the settings values,
so reset them to their original values afterward
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17886
2024-05-05 07:45:30 -07:00
Jeff Young
aeb029ea6e
const& performance improvements.
2024-05-03 18:03:51 +01:00
Jeff Young
651cc5c838
Improve bounding hull error message.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/17886
2024-05-03 18:03:51 +01:00
Jeff Young
276171b85e
Handle holes in shapes when creating bounding hulls.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16347
(cherry picked from commit 0ead8a14a1ee1f63d451bbc554576585ecfe87dd)
2024-02-23 16:53:30 +01:00
Jeff Young
0cf433b28e
CONVERT_TOOL::CreateLines() doesn't use SKIP_STRUCT flag.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16930
2024-02-12 23:59:33 +00:00
Jeff Young
0890ac57dd
Improve clarity of default zone settings.
2024-02-03 13:22:16 +00:00
Jeff Young
df83e24eb7
Cleanup.
...
It's been a long time since line style was specific to plotting.
2023-11-25 13:12:45 +00:00
Jeff Young
b218617469
Honour bounding-hull setting on closed shapes and chained segments.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/16092
2023-11-16 09:07:54 +00:00
Jeff Young
fca1ad5285
Ask user if they want to delete original items after conversion.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15938
2023-10-25 00:11:08 +01:00
Seth Hillbrand
88cbbbcdae
Add error message when we cannot form a polygon
...
Explains to the user why the polygon creation failed
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15704
2023-09-20 13:42:31 -07:00
Jeff Young
cc0facdd4e
ADDED: Convert Pad to Polygon
2023-09-14 16:36:37 +01:00
jean-pierre charras
a16ab0aae1
Replace SHAPE_T::RECT by SHAPE_T::RECTANGLE: RECT creates a collision name
...
issue with a Windows header on msys2.
Change very similar to the commit 9a47b344 about class PAD_SHAPE.
No actual code change
2023-07-25 09:11:55 +02:00
Jeff Young
1218f61d0a
Implement undo/redo for footprint children.
...
Our special-cases to handle the fact that we didn't do this had far
outgrown the code necessary to actually handle it.
2023-07-15 17:37:31 +01:00
Jeff Young
be63e1824e
Create filled polygons when centerline is chosen.
2023-07-12 10:41:46 +01:00
Mike Williams
37837dc392
PCB: introduce PCB_FIELD_T
2023-06-20 18:34:52 +00:00
Jeff Young
c71cf21e2f
Use rendered text to generate bounding box for knockout text.
...
Don't open-code knockout text shape generation in several different
places.
Make sure triangulated knockout text gets clearance added when
specified.
Collapse duplicated footprint text item plot routine (they're no
longer any different from plotting pcb text items).
2023-05-28 17:20:11 +01:00
Jeff Young
6807ca6f9f
Allow text input to Convert to Polygon/Zone/Keepout.
...
Also fixes non-copper zone filler to honor fill keepouts.
Fixes https://gitlab.com/kicad/code/kicad/issues/14566
2023-04-28 17:43:08 +01:00
Jeff Young
bbd6c80507
Collapse FP_* down into their PCB_* equivalents.
2023-03-31 22:57:46 +01:00
Jeff Young
499b58f505
ADDED: user-specified gap and linewidth for bounding hull creation.
2023-02-12 23:16:45 +00:00
Jeff Young
45eae3e594
Don't Simplify() polys with arcs in them.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13134
2022-12-12 12:54:34 +00:00
Jeff Young
20791c99ac
Allow conversion of single track segments and vias.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13047
2022-12-01 17:15:29 +00:00
Jeff Young
6befa1c57e
A bit of cleanup to recent convert tool changes.
2022-12-01 14:53:13 +00:00
Jeff Young
4d8e73a630
Allow tracks as input to bounding hull generation.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13047
2022-12-01 14:53:13 +00:00
Jeff Young
98ab078905
Remember conversion strategy.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/13043
2022-11-30 14:29:16 +00:00
Jeff Young
8dbd6fee00
Go back to smaller chaining epsilon.
...
Using a large epsilon here to allow for sloppy drawing can cause
the algorithm to miss very short segments in a converted bezier.
So use an epsilon only large enough to cover for rouding errors in
the conversion.
Fixes https://gitlab.com/kicad/code/kicad/issues/12951
2022-11-30 13:26:45 +00:00
Jeff Young
8165fc6c44
Give up trying to infer what kind of polygon the user wants.
...
In many instances there are 3 valid answers: mimic linewidths, use
centerlines, and build a bounding hull.
Fixes https://gitlab.com/kicad/code/kicad/issues/12950
2022-11-28 22:12:53 +00:00
Jeff Young
ec9c6a8053
Separate creation of polygons for open and closed shapes.
...
This allows us to create a bounding hull from an open shape-line-chain,
which is useful for defining milled slots.
2022-11-27 18:29:41 +00:00
Jeff Young
3fc727bb91
Clear selection before deleting objects during conversion.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12879
2022-11-11 17:53:01 +00:00
Seth Hillbrand
c7c4439027
Allow bezier->line/poly conversion
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12778
2022-10-31 12:48:53 -07:00
Jeff Young
d16b23d16e
Name shortening and line-break reduction.
2022-10-21 18:41:39 +01:00
jean-pierre charras
6b3d36b6c3
CONVERT_TOOL: also show the "Create From Selection" menu if a array can be created
...
The "Create Array" sub-menu was recently moved to this menu, so it must me
shown as soon as an array can be created.
2022-09-07 10:53:27 +02:00
Jeff Young
c30a557810
ADDED netclass assignment from PCB canvas.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5975
2022-09-03 19:29:59 +01:00
Seth Hillbrand
f1261e71d4
Replace boost::optional with std::optional
2022-08-25 15:50:47 -07:00
Jeff Young
1871812f2b
Consolidate on a more widely used sub-type architecture.
2022-08-23 12:57:55 +01:00
Jeff Young
aa2ad3b44c
Move KICAD_T[] to std::initializer_list<KICAD_T>.
2022-08-20 10:28:11 +01:00
Jeff Young
927bc8141b
Init member variables.
2022-08-01 13:09:51 +01:00
Jeff Young
6f49b57f9b
Cleanup & performance enhancements.
2022-08-01 13:09:51 +01:00
Jeff Young
f0b9e67212
Add ignore-line-widths mode to CONVERT_TOOL.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/5911
2022-07-29 21:39:03 +01:00