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
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
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
Jeff Young
86cb57f4a7
Cherry-pick TEXT_ATTRIBUTES and EDA_ANGLE from rockola/kicad-strokefont
2021-12-28 22:15:20 +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
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
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
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
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
ef10b36948
Add mask-to-copper clearance parameter and rename mask margin.
2021-12-24 12:36:41 +00:00
Jeff Young
a48867ea01
Solder mask integrity testing.
...
ADDED DRC test for solder mask aperture bridging copper from different
nets.
ADDED visualization of minimum web width processing for solder masks.
ADDED allow_soldermask_bridges property for footprints.
Fixes https://gitlab.com/kicad/code/kicad/issues/2183
Fixes https://gitlab.com/kicad/code/kicad/issues/1792
2021-12-23 22:31:14 +00:00
Jeff Young
32721755bf
Hook up zone-pad connections to custom rules.
...
ADDED zone_connection constraint.
ADDED thermal_relief_gap and thermal_spoke_width constraints.
ADDED angle override for thermal relief spokes in Pad Properties.
Fixes https://gitlab.com/kicad/code/kicad/issues/4067
2021-12-23 22:30:26 +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
e26341d424
Cleanup.
2021-12-23 20:36:18 +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
Jeff Young
4b6bf3095a
Radial dimensions.
...
ADDED radial type dimensions.
Fixes https://gitlab.com/kicad/code/kicad/issues/2056
2021-12-23 19:34:54 +00:00
Jeff Young
0a609dd48d
Add footprint library checking to DRC.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/6821
2021-12-23 19:18:45 +00:00
Seth Hillbrand
bd0fbea044
Handle 360° arcs on import as circles
...
KiCad breaks a bit when dealing with 360° arcs, so convert them to
circles on import. The break happens when converting to polygons for
viewing, the arc is passed from start->mid->end format to
center->start->angle format. At 360°, the angle is normalized to 0
2021-12-18 18:44:20 +00:00
Jeff Young
a17a58203b
Preserve legacy dimension information.
2021-12-17 23:31:37 +00:00
Jeff Young
699ba78b74
Fix legacy (pre-sexpr) board importer.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/10025
2021-12-17 17:21:31 +00:00
Roberto Fernandez Bautista
8caf62803d
Avoid unnecessary newlines and extra spaces when saving polygon shapes
...
Also minor formatting / code style fixes.
2021-12-03 22:04:55 +00:00
Jeff Young
ba6ae4fa9b
Kicad has many plugins. This one is for the pcb.
2021-11-25 12:56:46 +00:00
Tomasz Wlostowski
90157db537
PCB_PARSER: add timeout for of 100 ms for refreshing the progress window.
...
The previously used line number threshold was causing (on some systems) severe slowdown in loading
due to relatively long redraw time of the progress bar window.
2021-11-21 17:33:59 +01:00
Jeff Young
9d587e3e6e
Import Eagle rects, polys and circles with 0 width as filled.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/9639
2021-11-14 23:50:05 +00:00
Thomas Pointhuber
591fbf6383
altium: use arc angle to determine winding direction
2021-11-14 14:45:07 +01:00
Wayne Stambaugh
80c5b1efb1
File formatting improvements and fixes.
...
Symbol library IDs included the library nickname which is incorrect
and meaningless since it will be overwritten by the symbol library
table code. This is not a file format change as there are no behavioral
differences.
2021-11-13 12:57:18 -05: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
Roberto Fernandez Bautista
13f081549c
CADSTAR PCB: Use all User layers when mapping documentation layers
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9577
2021-11-10 21:47:22 +00:00
Roberto Fernandez Bautista
ad2e780a2c
CADSTAR PCB: Correctly load pads with holes
...
If the THROUGH_HOLE attribute isn't set, it just means that the pads
are only present on one side of the board, but there can still be a
plated / non-plated hole.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9579
2021-11-10 21:21:32 +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
6cc6f06a9a
Millimetres -> Millimeters
2021-11-08 15:56:51 -08:00
Seth Hillbrand
6569337d27
Haching -> Hatching
2021-11-08 15:56:51 -08:00
Seth Hillbrand
81fc7c71d1
Handle blind/buried vias in Eagle import
...
Don't sanitize layers before setting type
Fixes https://gitlab.com/kicad/code/kicad/issues/9557
2021-11-08 12:46:54 -08:00
Roberto Fernandez Bautista
6aa7602c32
CADSTAR PCB: Reverse anticlockwise arcs before adding to the chain
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9533
2021-11-05 17:13:02 +00:00
Roberto Fernandez Bautista
8314251fa1
CADSTAR PCB: Force white silkscreen and green soldermask
...
We don't know the actual colour from the design, but this is the most
common used in the industry.
2021-11-05 17:13:02 +00:00
Roberto Fernandez Bautista
b2db24f275
CADSTAR PCB: Don't invert Text Angle for mirrored text
...
It matches the original cadstar when we don't invert
2021-10-30 18:14:23 +01:00
Jeff Young
4fe025909d
Fix centered rotated text in Pcbnew Eagle importer.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/9466
2021-10-27 14:38:42 +01:00
Jeff Young
e12f9a194d
Fix Eagle arc importing.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/9466
2021-10-27 02:36:43 +01:00
Seth Hillbrand
0c99c99e12
Do not assign priorities to rule areas
...
As noted by @jeffyoung, we shouldn't set priorities to rule areas as
this can expose unexpected issues
Related to https://gitlab.com/kicad/code/kicad/-/issues/7776
2021-10-26 11:16:04 -07:00
Jeff Young
5b9519da6c
Fix arc formatting in Fabmaster import.
2021-10-26 17:52:10 +01: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
57f907f6e7
Make sure PCB_PARSER is fully initialized between footprints.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/9424
2021-10-19 17:14:04 +01:00
Seth Hillbrand
10ac675905
Fix shadowing
2021-10-18 09:00:24 -07:00
Roberto Fernandez Bautista
99442350a4
CADSTAR PCB: Fix loading of arc tracks following recent PCB_ARC changes
...
We no longer have any knowledge of the original start/end of the arc,
since SetArcAngleAndEnd swaps the start and end to ensure the arc is
always clockwise at the end.
Adds a method EDA_SHAPE::EndsSwapped() to notify whether the start/end
point of the shape were swapped.
2021-10-17 17:57:51 +01:00
Roberto Fernandez Bautista
e867a4fd27
CADSTAR PCB: Fix Zone fill priorities
...
The algorithm now correctly determines fill priorities when the zone
outlines are close together and within the minimum clearance between
zones.
2021-10-16 21:50:56 +01:00
Jeff Young
f9861b4a6c
Finish arc rework and push out to file formats.
2021-10-15 12:45:43 +01: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
Roberto Fernandez Bautista
43e59b0ea7
CADSTAR PCB: Correctly handle associated pad ids and PCB Only pads
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9372
2021-10-11 18:30:20 +01:00
Roberto Fernandez Bautista
7a71ebf9ac
CADSTAR PCB: Load all three net properties into a single Netclass
...
The final netclass name will be a bit long but it will allow for custom
DRC rules to individually target each of the three properties available
in CADSTAR:
- Route Code (which specifies width of the track in min, max, opt)
- Net class (only used in signal integrity analysis)
- Spacing class (for specifying clearance requirements between classes)
2021-10-10 22:16:08 +01:00
Roberto Fernandez Bautista
ac3ade874e
CADSTAR PCB: Set Copper-to-Hole clearance as 0
...
Testing suggests that CADSTAR doesn't actually have any clearance to the
hole (other than electrical clearance to the barrel of the padstack/
viastack).
This removes a large amount of DRC violations on imported designs.
2021-10-10 00:20:13 +01:00
Roberto Fernandez Bautista
eb7d0fdf8a
CADSTAR PCB: Use board clearance + additional isolation as zone clearance
...
Copper-to-copper clearance is too onerous and results in large amount
of DRC errors for the majority of imported designs.
2021-10-10 00:18:36 +01:00
Roberto Fernandez Bautista
f4ff01a5ab
CADSTAR PCB: Copy default netclass settings when creating new ones
...
Ensures that the global clearance is preserved in the newly created
netclass.
2021-10-09 23:10:55 +01:00
Roberto Fernandez Bautista
8f74085ca4
CADSTAR PCB: Handle older boards without construction layers
...
Use KiCad default stackup for older CADSTAR boards that do not
define any dielectric layers between the electrical layers.
Also fix default stackup calculation to ensure finished board thickness
is 1.6mm
2021-10-09 21:26:16 +01:00
Roberto Fernandez Bautista
33a3cfc87b
CADSTAR PCB: Update Board Design Settings to notify that a stackup exists
...
Also update thickness of the PCB
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9307
2021-10-09 20:33:14 +01:00
Roberto Fernandez Bautista
e80a1c2679
CADSTAR PCB: Don't load items on invalid layers
...
This was happening in two cases:
- Loading documentation symbols (CADSTAR on purpose defines these in an
invalid layer)
- When an item was in a "layer set" such as ALLELEC or ALLLAYER - need to
make sure we remove the copper layers that are not active in the design
2021-10-09 20:07:23 +01:00
Roberto Fernandez Bautista
677166f0b8
CADSTAR PCB: Rule Areas have zero width
...
Cadstar areas have a line width but this is only for display purposes.
Instead CADSTAR uses the center line when determining whether a DRC
violation occurred.
2021-10-08 21:27:32 +01:00
Roberto Fernandez Bautista
2dfbd42be6
CADSTAR PCB: Legacy netclass and design settings loading is required
2021-10-08 20:48:10 +01:00
Roberto Fernandez Bautista
ae0229b7c9
CADSTAR PCB: Add imported nets to the imported netclass.
2021-10-08 20:25:09 +01:00
Roberto Fernandez Bautista
58fc4f512d
CADSTAR PCB: Don't create zero width tracks
...
Fixes a bug in the route offsetting part of the import
that was resulting in zero-width tracks being imported.
2021-10-08 20:25:09 +01:00
Roberto Fernandez Bautista
16b61e47cd
CADSTAR PCB: Clear arcs from polys before boolean ops (e.g. zone fills)
2021-10-08 20:25:09 +01:00
Roberto Fernandez Bautista
fb588da875
CADSTAR PCB: Fix loading of thermal relief gap in zones
...
We were loading as solid fill when the relief gap was exactly the
same as the minimum width.
Also we can do better than just load as solid fill when it is smaller:
we can instead just use the minimum width and at least it still will
have thermal reliefs.
2021-10-08 17:39:08 +01:00
Roberto Fernandez Bautista
cb47bf25c0
CADSTAR PCB: Actually load the original route code as a KiCad NETCLASS
...
We weren't actually loading it into the design settings even though
everything else was already being correctly loaded.
2021-10-07 22:13:06 +01:00
Seth Hillbrand
9a8d1246cc
We don't keep a CHANGELOG.TXT
...
Direct interested readers to AUTHORS.TXT instead.
2021-10-05 19:46:53 -07:00
Seth Hillbrand
548e5f49bd
Clean up unused variable usage
...
Unused variables in function calls can be commented out. Unused
return variables get a new routine `ignore_unused()` that silences the
warnings with zero overhead.
2021-10-05 10:00:30 -07:00
Jeff Young
f606679164
Proper numeric sorting for intersheet refs.
...
Also expunges the horrifically named std::remove and std::remove_if
(neither of which remove anything).
2021-10-01 18:29:21 +01:00
Jeff Young
6b25099df7
Read/write lock status for fp text.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/9325
2021-09-25 20:37:56 +01:00
Jeff Young
04aff93248
Eagle doesn't use netclass clearance so make them the board clearance.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/2442
2021-09-20 21:31:19 +01:00
Jeff Young
f66654247a
Read netclasses when importing Eagle projects.
...
Also creates a DRU file with the various netclass-to-netclass
clearance rules from the Eagle clearance matrix.
Fixes https://gitlab.com/kicad/code/kicad/issues/1774
2021-09-20 12:38:56 +01:00
Jeff Young
b84d1456d5
KIFACE_I -> KIFACE_BASE.
2021-09-14 23:45:14 +01:00
Roberto Fernandez Bautista
625e56676a
Add progress reporting to CADSTAR Schematic & PCB importers
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8685
2021-09-11 17:50:19 +01:00
jean-pierre charras
d2bff137ee
.kicad_pcb file: fix incorrect keyword stored for some (not all) PAD properties.
...
( a copy-paste error? )
Fixes #9102
https://gitlab.com/kicad/code/kicad/issues/9102
2021-09-06 09:15:18 +02:00
jean-pierre charras
ee5f9034f7
pcb parser: ensure the parser is reinitialized before parsing a new fp file
...
Because the same parser is used to read all footprint files of a library,
the parser must be reinitialized (internal variable cleared) before reading
a new file, otherwise the previous parser state is applied to the next file.
Fixes #7627
https://gitlab.com/kicad/code/kicad/issues/7627
2021-08-26 19:38:20 +02:00
Jeff Young
2b3477ca28
Handle RGBA conversion to hexadecimal format for wxWidgets 3.0
2021-08-25 02:40:17 +01:00
Jeff Young
a02ea1609b
A more robust solution to the 3D color opacity issue.
...
(This also fixes a typo in the previous fix that assigned the opacities
backwards.)
2021-08-24 11:24:25 +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
21f2b235ce
Rework stackup colors a bit to support opacity for 3D viewer.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/9012
2021-08-23 20:00:17 +01:00
Jeff Young
fec34e8dd8
Get rid of an extraneous layer parameter.
...
Also adds a bit of nullptr safety.
2021-08-23 20:00:17 +01:00
Jeff Young
41619ebbe2
Decouple PROGRESS_REPORTER interface from implementations.
2021-08-14 21:05:49 +01:00
Jeff Young
54942a1401
Fix typos that would result in fp zone setting written into pads.
2021-08-08 18:12:29 +01:00
Jeff Young
46bdce2747
Don't allow pads in groups in the board editor.
...
Bad stuff happens, including crashes.
2021-08-04 13:55:42 +01:00
Jeff Young
0f5a8f87d3
Add writing of pad primitive polys with arcs, and fix a bug in reading.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/8827
2021-08-01 10:47:00 +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
Jeff Young
f221220fe2
Rename layer ids file.
...
It hasn't had anything to do with colors or visibility for some time
now.
2021-07-29 16:03:25 +01:00
Jeff Young
46338403e7
Unwrap some std::library typedefs.
2021-07-28 22:16:38 +01:00
Wayne Stambaugh
369d813a32
Pass std::string by reference instead of on the stack where applicable.
2021-07-27 13:30:05 -04:00
Wayne Stambaugh
37b200cb3e
Pass wxString objects by reference instead of on the stack.
2021-07-27 08:41:27 -04:00
Wayne Stambaugh
8fd83cbb95
Pass wxPoint objects by reference instead of on the stack.
2021-07-26 15:35:33 -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