Seth Hillbrand
f1261e71d4
Replace boost::optional with std::optional
2022-08-25 15:50:47 -07:00
Jeff Young
ec51955dad
Remove vestiges of old pad locking system.
...
We now use a session preference (Allow free pads) in the board editor,
and we never supported pad locking in the footprint editor.
2022-08-23 18:02:16 +01:00
Jeff Young
a9536b5de9
CHANGED netclass assignments now done via canvas or via patterns.
2022-08-14 22:56:29 +01:00
Jeff Young
2de10080cd
Add edge and margin clearances to message panel.
2022-07-15 16:14:32 +01:00
Seth Hillbrand
a9a5136c1c
Always allow blind/buried/micro vias
...
Removes a nanny setting that prevented the use of
blind/buried/micro-vias without a checkbox. If the designer does not
want microvias in their board, they simply do not place microvias.
2022-07-12 19:47:31 -07:00
Thomas Pointhuber
406c528ab7
altium: Create region for items on the KEEP_OUT_LAYER and use new Track unit-tests
2022-04-02 18:17:19 +02:00
Jeff Young
1d66925f5f
Enable bb and/or uvias when encountering them on Altium import.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10044
2022-03-22 22:33:51 +00:00
Jeff Young
118a37f19f
Fix issues with importing NPTH pads from CircuitStudio.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10493
2022-03-22 18:08:05 +00:00
Jeff Young
3271b43d4b
Formatting.
2022-03-22 18:08:05 +00:00
Thomas Pointhuber
79aafd1bd3
altium: support keepout restrictions in Arcs, Fills and Regions
2022-03-11 19:15:58 +01:00
Thomas Pointhuber
a9ebb42ecd
altium: Parse keepout restrictions of tracks
2022-03-07 19:58:43 +01:00
Jeff Young
843a56c4e4
Implement two-staged zone priority: assigned priority followed by UUID.
2022-03-01 14:53:35 +00:00
Thomas Pointhuber
52a2d52bf0
altium: Parse solder and paste mask settings of tracks and arcs
2022-02-20 20:18:40 +01:00
Thomas Pointhuber
8ef7252330
altium: Don't use string concatenation for paths pointing in the compound file
...
* std::vector do not need to be split apart again
* supports backslash in footprint names
2022-02-19 16:46:20 +01:00
Thomas Pointhuber
86c025eb30
altium: Fix parsing of zones which use the KEEP_OUT_LAYER
2022-02-19 14:37:05 +01:00
Jeff Young
327ddad79f
Performance: get rid of rawPolys / finalPolys distinction.
...
(The final fractured polys are required, and we don't really ever use
the raw polys anyway, so they were removed.)
2022-02-16 15:33:12 +00:00
Thomas Pointhuber
fc5772ad92
altium: Extend test-suite to support FP_ZONE validation
2022-02-15 21:42:03 +01:00
Thomas Pointhuber
81b4229e12
altium: Improve test-coverage of *.PcbLib import functionality
...
* Add test-code for pads
* Move test-code into board_test_utils.cpp for reuse, one method per object
* Add a real (rather small) Altium footprint for testing purposes
2022-02-12 16:50:25 +01:00
Jeff Young
3deaf902bb
Retire the V5 zone fill algorithm.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10578
2022-02-11 13:10:52 +00:00
Thomas Pointhuber
79f80c4cd7
altium: Fix Reference and Description parsing of footprint
2022-02-06 16:24:07 +01:00
Jeff Young
b2e3f03222
More wide-string declarations.
2022-02-05 22:03:04 +00:00
Jeff Young
7ccac79192
More wxString wide literals.
2022-02-05 21:29:34 +00: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
Jeff Young
4eac8d7c66
Remove unit-less angles from geometry lib APIs.
2022-01-20 21:10:04 +00:00
Jeff Young
038db715a3
Move zone hatch orientation to EDA_ANGLE.
2022-01-19 00:34:03 +00:00
Jeff Young
622f94e7b9
Angle cleanup in Altium importer.
2022-01-18 02:31:37 +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
Jeff Young
e61144d45a
Finish with EDA_ANGLE.
2022-01-16 21:15:40 +00:00
Jeff Young
e84c574830
Some more EDA_ANGLE cleanup.
2022-01-16 19:16:18 +00: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
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
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
Marek Roszko
fcfe42d67c
Continue the war on wxPoint
2022-01-10 19:52:26 -05: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
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
c4c56de708
Neurotically update position wxPoint usages
2022-01-01 11:55:51 -05:00
Jeff Young
86cb57f4a7
Cherry-pick TEXT_ATTRIBUTES and EDA_ANGLE from rockola/kicad-strokefont
2021-12-28 22:15:20 +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
56665b9ca7
Map Altium bold dimension text to a greater text thickness.
2021-12-23 22:17:05 +00:00
Jeff Young
3c0e3610e2
Import Altium radial dimensions to KiCad radial dimensions.
...
(We converted them to KiCad leaders in 6.0 because we didn't have
radial dimensions yet.)
Fixes https://gitlab.com/kicad/code/kicad/issues/8789
2021-12-23 22:17:01 +00:00
Jeff Young
2bc86fa0a8
Shapes for schematic.
...
ADDED arc, circle and rectangle shapes for schematic. Shapes support
line styles and fill colors.
CHANGED sheet background color in Edit Text & Graphics Properties to
fill color (and it now affects shapes).
Pushed STROKE_PARAMS down into common and moved all shapes to using it
for stroke descriptions.
2021-12-23 20:36:07 +00:00
Thomas Pointhuber
591fbf6383
altium: use arc angle to determine winding direction
2021-11-14 14:45:07 +01:00
david-beinder
b46b27fe8c
Altium import: Avoid illegal filenames when writing embedded 3D models
2021-11-12 14:49:22 +00:00
david-beinder
a9b4465703
Altium import: Use UTF16 string table for PCB texts
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7948
2021-11-12 14:49:22 +00:00
Jon Evans
75d75799f7
Move to getters/setters for aux and grid origin
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8836
2021-11-08 22:36:40 -05:00
Seth Hillbrand
d44e0ab765
Limit use of non-copper layers
...
When importing, we should not use Eco1 for other purposes as the
importer uses it to place unknown layer objects. We also need to avoid
placing objects on the courtyard layers that do not relate to the layer
purpose in DRC
Fixes https://gitlab.com/kicad/code/kicad/issues/9442
2021-10-22 12:31:11 -07:00
Jeff Young
9b9e379aa0
Overhaul arc internal model to not over-specify information.
2021-10-15 12:45:43 +01:00
Jeff Young
8b08c9e53f
Shorter names before things get out of hand.
...
Also, remove comments indicating CURVE is a Bezier. Just call it a
BEZIER.
2021-10-15 12:45:43 +01:00
Jeff Young
a41944020d
Push most of PCB_SHAPE impl down in to EDA_SHAPE.
2021-10-15 12:45:43 +01:00
Jeff Young
e6ca9837a2
Clear numbers from non-numberable pads and don't run DRC on them.
...
This was also the last straw on the misnamed PAD::GetName() and
PAD::SetName(), which are now PAD::GetNumber() and PAD::SetNumber().
Fixes https://gitlab.com/kicad/code/kicad/issues/9017
2021-08-24 01:03:06 +01:00
Jeff Young
41619ebbe2
Decouple PROGRESS_REPORTER interface from implementations.
2021-08-14 21:05:49 +01:00
Jeff Young
6aaf4413b3
Fix kicad_string.h / string.cpp mismatch.
...
They don't define a KiCad string class, so the header file name was
somewhat misleading. But the fact that they didn't match definitely
made coding more difficult.
2021-07-29 16:03:25 +01:00
Wayne Stambaugh
37b200cb3e
Pass wxString objects by reference instead of on the stack.
2021-07-27 08:41:27 -04:00
Jeff Young
373f0335c8
Convert Altium radial dimensions to leaders.
...
This is because we don't yet support radial dimensions.
Also fixes a bug where we fail to read an Altium circular track. We
now convert it to a pair of 180-degree arcs.
Also fixes a bug where we were failing to import prefixes on linear
dimensions.
Fixes https://gitlab.com/kicad/code/kicad/issues/8789
2021-07-24 14:25:59 +01:00
Jeff Young
0fb864d596
Pull some name changes back from 7.0 to ease merging.
2021-07-21 20:58:59 +01:00
david-beinder
af90d47edc
Altium: Fix calculating third arc point from uninitialized memory
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8671
2021-07-20 19:13:32 +00:00
Jeff Young
01d3a88faa
Allow unnamed embedded step files in altium boards.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7898
2021-07-10 16:37:45 +01:00
Jeff Young
0116e9c94e
Silence Altium polygon-needs-at-least-3-verticies warning.
...
Too many Altium files appear to have these. Just ignore them instead.
Fixes https://gitlab.com/kicad/code/kicad/issues/8183
2021-07-04 11:02:59 +01:00
Jeff Young
a1dfc36233
More error message regularization.
2021-06-29 01:08:26 +01:00
Jeff Young
4aa8318dc2
More error message regularization.
2021-06-27 14:24:02 +01:00
Jeff Young
0dfb5fcaf9
Error message cleanup.
...
wxString::Format is redundant in a wxLogXXX call.
Error messages should generally be translatable.
Error messages should use generally consistent sentence forms.
2021-06-26 22:53:24 +01:00
Jeff Young
5c21f93803
Consistency in progress and error messages.
2021-06-26 13:23:43 +01:00
Thomas Pointhuber
e6c047896c
altium: introduce progress reporting, fix possible nullptr when reading 3D models
2021-06-26 12:54:31 +02:00
Jeff Young
096e342386
Prefix TRACK, ARC and VIA.
2021-06-11 22:07:02 +01:00
Jeff Young
16b0147af8
Prefix DIMENSION types.
2021-06-11 17:59:44 +01:00
luz paz
5f1e9bc8a7
Fix typos in source code
2021-06-10 01:24:15 +00:00
luz paz
f968fc8719
Fix source comment / documentation typos
2021-06-09 19:32:58 +00:00
Marek Roszko
10e60acf34
Clean up including of board_design_settings.h
2021-06-06 15:03:42 -04:00
Ian McInerney
4f05262705
Cleanup includes in board.h and footprint.h
2021-06-03 20:19:52 +01:00
Marek Roszko
cf2bb5692a
Remove the wxLog calls from math/util.h for now
...
This was leaking windows headers and partial wx headers to 1084 compilation units......
This also means math/util.h is leaking to 1084 compilation units which seems a bit high too.
2021-06-01 18:44:22 -04:00
Marek Roszko
03cf2b517f
Enum class PAD_ATTR_T
...
Renamed such that python stays the same
2021-05-01 10:51:54 -04:00
Marek Roszko
b243c2280d
enum class PAD_SHAPE_T
2021-05-01 08:22:35 -04:00
Marek Roszko
21fde9b629
enum class PCB_SHAPE_TYPE_T
2021-04-30 22:36:12 -04:00
WhiteChairFromIkea
a9ca1e4ebd
use "pattern" instead of "sourcelibreference" for footprints
2021-03-02 19:57:19 +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
Thomas Pointhuber
088ff5b2bb
altiium: set fill version, which allows us to do a copper pour without a line
2021-02-06 23:58:30 +01:00
Thomas Pointhuber
8ee6694c57
altium: Set smaller zone MinThickness by default to better account for missing design rules
2021-02-06 23:45:28 +01:00
Thomas Pointhuber
d444ed80a5
altium: parse Regions6 to fill zone on import
2021-02-06 23:06:59 +01:00
Seth Hillbrand
aa0db969ca
Caching ConvexHull routine
...
Stores a cache of the convex hull similar to the bounding box. Modifies
the hull based on actions to allow complex footprint graphics without delay
Fixes https://gitlab.com/kicad/code/kicad/issues/7341
2021-02-04 15:56:52 -08:00
Thomas Pointhuber
70e6d0e79f
altium: use those new fancy user definable layers and import the name from Altium
2021-01-31 11:15:08 +01:00
Thomas Pointhuber
6a9e1ecf9e
altium: Center board after import
2021-01-30 17:43:02 +01:00
Thomas Pointhuber
9f24ea0bb7
altium: fix non-copper pads. Roundrect pads were not filled and SetLocalCoord() does not transform polygons into the local coordinates, which is unexpected.
2021-01-14 22:21:05 +01:00
Jeff Young
bb232e6ac6
Unify LIB_IDs now that both are stored in sexpr files.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/6764
2020-12-18 00:30:26 +00:00
Marek Roszko
7565f60a03
Swap wxFileInputStream/wxFileOutputStream for the buffered kind
2020-12-12 18:52:02 -05:00
Ian McInerney
8c08b861ab
Cleanup some compiler and Coverity warnings
2020-11-15 21:41:38 +00:00