Marek Roszko
eb33c33f15
Rename EDA_DRAW_MODE_T to PLOT_MODE
2020-10-15 19:30:07 -04:00
Marek Roszko
1538d737e7
Split out FILL_T to its own header to avoid spreading eda_item everywhere
2020-10-14 21:51:23 -04:00
Marek Roszko
f59551d6ad
Remove painter.h from eda_text.h
2020-10-14 19:18:38 -04:00
Marek Roszko
12d21e34e2
Remove trigo.h from eda_text.h
2020-10-13 23:37:48 -04:00
Marek Roszko
b2e9f6987d
Split base_struct into eda_item and eda_rect
2020-10-13 21:24:50 -04:00
Jeff Young
1703729269
Require explicit decl of maxError and errorLocations.
...
This should reduce both performance issues and clearance issues.
2020-10-13 13:49:07 +01:00
jean-pierre charras
380534807b
Plotters: better support of filled circles having a thickness set to 0.
...
Setting a line thickness = 0 for graphic objects (circle, rect, line) is
allowed but creates issues for circles that were plotted a non filled shapes
but having a outline thickness = 0.
2020-10-12 11:30:43 +02:00
jean-pierre charras
34f47b3806
Add support of AP macro for chamfered round rect pads.
2020-10-11 12:53:45 +02:00
jean-pierre charras
213a74cbe6
Gerber, Dialog plot: add option to disable Aperture Macro use.
...
Some broken Gerber readers cannot handle Aperture Macros without errors
although this feature exists since the beginning of RS274X format.
2020-10-10 16:42:21 +02:00
jean-pierre charras
f60954c232
Gerber export: add support for flashed chamfered rect (with no rounded corner) pads
2020-10-09 16:47:34 +02:00
jean-pierre charras
2aa357c872
Gerber export: fix incorrect size or orient of flashed oval and round Rect
...
shapes when they are not horizontal or vertical.
2020-10-08 14:48:34 +02:00
jean-pierre charras
00fea5006e
Gerber plotter: fix a bug in a aperture macro calculation
2020-10-08 13:24:28 +02:00
jean-pierre charras
61f1f7d948
Gerber, aperture macros: use different apertures primitives in macro defs.
...
To avoid issues with broken Gerber readers use aperture macros with shapes
without rotation when more than one primitive is required.
In many gerber readers, rotation of a set of primitives is broken
(do not follow Gerber requirements)
2020-10-06 11:08:07 +02:00
jean-pierre charras
12ecccd0f3
Gerber output: disable use of aperture macros until some issues are fixed.
2020-10-05 10:54:38 +02:00
jean-pierre charras
e76736b7bf
Fix a few Coverity warnings
2020-10-03 12:47:41 +02:00
jean-pierre charras
0cca2a0ad2
Rect, Round Rect, Oval, Trapezoid (rotated) pads now use flashed apertures.
...
Complex shapes are plot using regions.
The old code is still available, just in case...
2020-10-02 10:19:45 +02:00
jean-pierre charras
6b958ff4e0
Move specialized plotter classes from plotter.h to specific plotter_xx.h
...
plotter.h contains now only a header common to all plotters.
The code does not actually change, but it allows modifying a specific plotter
without recompiling most of kicad files.
2020-09-27 09:54:39 +02:00
Marek Roszko
de7a1b647c
Use a local tmp file for plotting
...
Fix #5238
2020-08-20 16:23:51 +00:00
jean-pierre charras
1973153368
Gerber plotter: ensure the gerber region for a round rect pad is always closed.
...
Due to rounding issues, sometimes (especially for rotated pads) the region
(4 segments+4 arcs) was incorrectly closed (1 unit (nanometer) mismatch between
start point and end point.
Although it does not create bad shape, its breaks the round rect pad identification
in CAM tools.
start point and end point are now the same.
2020-06-12 10:22:19 +02:00
Jeff Young
bcea2019d4
Unify support for line width magic cookies.
...
They were added for the Gerber plotter but once there there's the
expectation by others that they'll work.
2020-05-13 17:56:47 +01:00
Jeff Young
10614a9ebc
Implement changes for Sketch Pads to Fab Layers.
...
Includes adding Fab Layers to default text & graphic settings.
Fixes https://gitlab.com/kicad/code/kicad/issues/1885
Fixes https://gitlab.com/kicad/code/kicad/issues/2274
2020-05-01 18:49:42 +01:00
Ian McInerney
99dcadf7e6
Introduce new KI_FALLTHROUGH macro
...
Annotate purposeful fallthroughs in switch statements with the
KI_FALLTHROUGH macro.
2020-04-25 00:44:09 +01:00
Seth Hillbrand
819f28daf5
Revert part of 9c8941e04
...
This accidentally changed gerber plotting behavior, resulting in invalid
aperture sizes
Fixes https://gitlab.com/kicad/code/kicad/issues/4232
2020-04-20 15:42:23 -07:00
Jeff Young
2b6089240a
Change super/subscript syntax to ^{foo} and _{foo}.
2020-04-18 21:04:41 +01:00
Jeff Young
9c8941e040
Remove a bunch of globals.
2020-04-16 17:34:46 +01:00
jean-pierre charras
de7154e8e9
Gerber plotter: Non horiz or vertical oval pads: better plot output:
...
These pads were plotted as a segment. This is not the right way.
Pads must be flashed or plotted as regions, not painted.
They are now plotted as Gerber regions round rectangle pads.
These regions are similar to flashed pads.
2020-03-27 10:34:41 +01:00
jean-pierre charras
9cb3333d05
Gerber plotter: plot round rectangle pads using a region with arcs.
...
Previously, the region was a usual polygon with arc approximated by segment.
Using a region with arcs is a better way because it allows CAM tools to
identify this region as a round-rect pad.
A side effect is a better shape and smaller files, however not really noticeable in fact.
2020-03-20 19:45:05 +01:00
jean-pierre charras
08f0e8d6e8
Pcbnew, Gerber output: always generates Aperture Attributes.
...
Previously, for historical reasons, they were added only if
Include Netlist Attributes option was on.
But Aperture Attributes have nothing to do with Netlist Attributes, and good
Gerber files must include them.
2020-03-12 16:57:13 +01:00
jean-pierre charras
465ffff162
Gerber plots: Add initial G01 command to the header,
...
to ensure linear interpolation mode.
To avoid issues, an interpolation mode must be set before first D01 command.
2020-02-03 17:55:19 +01:00
Ian McInerney
f896043067
Fix comments for switch statement fall throughs
...
This cleans up all GCC warnings (-Wimplicit-fallthrough=2) about
implicitly falling through switch cases.
2020-01-11 19:16:32 +00:00
Ian McInerney
13b6028e1b
Refactor all math into a new kimath library
...
* Split up the thirdparty code into the thirdparty folder (#3637 )
* Create a new kimath static library containing all the math functions
This is part of cleaning the build system for #1906 .
2020-01-07 17:12:59 +00:00
jean-pierre charras
24cd80ef3e
Gerber plotter: modify G02 and G03 commands.
...
They are now in a specific block and no longer combined with an other command.
(combining these commands with an other command (D01 or D02) is deprecated)
Fixes #3677 | https://gitlab.com/kicad/code/kicad/issues/3677
2019-12-18 11:35:28 +01:00
Seth Hillbrand
c4d853c1e8
SHAPE_LINE_CHAIN: Remove element access
...
This is the first step to allowing non-segments in the line chain.
External routines cannot be allowed to change the line chain without
going through the internal routines. To accomplish this, we remove the
Vertex() and Point() access routines and only leave the const versions.
Transformations are given for both points as well as the chain itself.
2019-12-12 13:54:48 +00:00
Seth Hillbrand
c6f5df134c
Minor speed cleanup
...
This adjusts iterators to use const reference when only used for
copy. It also ensures pre-allocation of vectors when size is known
ahead of time.
2019-12-05 14:20:59 -08:00
Seth Hillbrand
b5f021ff9f
Cleanup: Replace push_back with emplace_back
...
In cases where we create a new item and immediately push into a
container, the emplace idiom is faster and more efficient.
2019-12-05 13:41:21 -08:00
jean-pierre charras
51ed01d765
GERBER_PLOTTER: small change in code to manage the current selected aperture.
...
Avoid using an iterator to store this aperture because iterators can be invalided
when modifying a list.
Enhancements in gerber_placefile_writer.
2019-11-04 14:33:10 +01:00
jean-pierre charras
65bf669387
Refinements in gerber placefile writer: allows adding board edge cuts in file.
...
Use a pad bounding box for footprints having no valid courtyard defined.
Refinement also in Gerber files when plotting oval pads.
2019-11-01 18:12:26 +01:00
jean-pierre charras
8a4ba87fba
Gerber output: Fix incorrect zones outline thickness in filled areas.
...
Fixes: lp:1848929
https://bugs.launchpad.net/kicad/+bug/1848929
2019-10-20 21:15:31 +02:00
jean-pierre charras
846397c692
Fix compil warning
2019-10-19 15:44:40 +02:00
jean-pierre charras
f892ebbb49
Fix issues in Gerber attributes
2019-10-19 11:26:29 +02:00
jean-pierre charras
b9202e81bc
Fix Gerber plot pad oval for pad orientation not n*90 degrees.
...
Use now a Gerber region that support TO attributes like flashed pads.
2019-10-19 11:26:29 +02:00
jean-pierre charras
47f9c505c5
Gerber plot: better handling of polygonal pad shapes plotting
...
update GBR_CMP_PNP_METADATA.
2019-10-19 11:26:29 +02:00
jean-pierre charras
4b2d801fec
Gerber file export: avoid duplicate corner when creating polygons (regions in Gerber dialect)
...
Fixes: lp:1847714
https://bugs.launchpad.net/kicad/+bug/1847714
2019-10-11 20:59:23 +02:00
jean-pierre charras
ac2373ae16
Gerber plotter: add support of standard aperture regular polygon as flashed shape.
...
Standard apertures are circle, rect, oblong and polygon (regular polygonal shapes with 3 to 12 vertices)
The support of the standard aperture type polygon was missing in Gerber plotter.
2019-10-02 17:33:06 +02:00
jean-pierre charras
a1fe8cfa5a
Minor changes: cleanup code and prepare code to add more attributes to Object Attributes (.TO)
2019-09-18 11:48:49 +02:00
jean-pierre charras
64b5e8bee2
Minor fix and enhancement code.
2019-09-15 11:10:53 +02:00
Jeff Young
a25368cc6b
Improve spelling.
...
The groundwork here is thanks to kunda1.
Fixes: lp:1831510
* https://bugs.launchpad.net/kicad/+bug/1831510
2019-08-20 19:14:05 +01:00
Seth Hillbrand
ac435ecd68
Moving further arc approximations down
...
This corrects an issue with fill segments-per-circle and moves the error
to segmetns calculation down in a number of functions to expose the
single value for approximation
2019-05-22 14:35:17 -07:00
jean-pierre charras
d259459a14
Pcbnew: add a new primitive pad shape: chamfered round rect pad.
...
Allows 0 to 4 chamfered corners, not only one.
A custom shape allow this kind of shape. However because it is a primitive,
it is easier to edit and it support thermal reliefs.
2019-03-11 10:26:15 +01:00
jean-pierre charras
e850a482d1
Gerber output: fix a potential minor issue in a G04 line comment.
...
In gbr files only ASCII7 chars are allowed.
However, in a comment line a UTF8 string is used. It should not create issues, but it is incorrect.
2019-01-27 10:14:16 +01:00
jean-pierre charras
f6aed7c99a
Gerber plotter: rename UseX2Attributes() to UseX2format, and fix incorrect/outdated comments.
2018-12-09 10:23:07 +01:00
jean-pierre charras
7f20c55ed6
Pcbnew, Plot dialog, Gerber format: Enable or disable adding net metadata both in X1 and X2 format. Previously, this option was existing only in X2 format. Should be existing in both formats.
...
A bit of cleaning code related to this option.
2018-12-09 08:38:23 +01:00
jean-pierre charras
79e784455c
Gerber plotter: remove a G01 useless command, and ensure this command exists in plot polygon.
2018-12-01 18:52:27 +01:00
jean-pierre charras
1ebee39973
Gerber X1 format: add more structured comments in file.
2018-05-17 17:32:35 +02:00
jean-pierre charras
d1cab6ec62
Gerber X1 plot files: prepare adding more structured comments (aperture and object attributes)
...
structured comments are lines starting by "G04 #@!" and are therefore Gerber X1 comments.
But these comments contain X2 attributes.
2018-05-17 17:32:35 +02:00
jean-pierre charras
93e75af388
Rename plot_auxiliary_data.h file to gbr_metadata.h, according to the class names defined by this file
2018-05-17 08:07:29 +02:00
jean-pierre charras
2ff74cb3fc
Add support for .gbrjob new file format (JSON format) in Gerbview
...
Add experimental code to generate .gbrjob files in the new JSON file format
2018-03-19 15:14:20 +01:00
jean-pierre charras
5d72aebd22
Fix code after renaming files
2018-01-29 16:40:22 +01:00
jean-pierre charras
e499d337d8
rename files: update filenames in sources
2018-01-28 19:12:26 +01:00
jean-pierre charras
5868202c28
rename files, mainly files for plotter control
2018-01-28 18:13:27 +01:00