Seth Hillbrand
1e5ba6f1b1
Replace DIM() macro
...
The standard DIM() macro was not typesafe as it happily deferred errors
to runtime that can be caught at compile time. Replacing it with a
generic C++11 constexpr allows for typecasting, comparison and compile
time error checking.
2019-01-06 08:43:12 -08:00
Seth Hillbrand
c92424898c
pcbnew: Replace magic number segment counts
...
Where we set 32 segments per circle, the magic number is replaced by the
same value as the common define ARC_APPROX_SEGMENTS_COUNT_HIGH_DEF
2019-01-03 17:21:10 -08: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
619e13dc2d
Fix D_PAD::BuildPadShapePolygon() incorrect calculation for custom pad shapes.
...
Fixes: lp:1784340
https://bugs.launchpad.net/kicad/+bug/1784340
2018-07-30 16:56:59 +02:00
jean-pierre charras
ce9cc4ea38
plot board: fix a stupid bug created by commit dfa91752
2018-05-29 19:51:50 +02:00
jean-pierre charras
dfa9175209
Fix incorrect mask size for rectangular and trapezoid pads.
...
Fixes: lp:1773926
https://bugs.launchpad.net/kicad/+bug/1773926
Fixes: lp:1773961
https://bugs.launchpad.net/kicad/+bug/1773961
2018-05-29 13:45:45 +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
144549ebca
Pcbnew, plot: Fix: masks derived from custom pad shape have incorrect margin.
...
Fixes: lp:1771526
https://bugs.launchpad.net/kicad/+bug/1771526
2018-05-16 18:26:43 +02:00
jean-pierre charras
e57cd291ff
class BOARD: rename m_Zone to m_SegZoneDeprecated to avoid mistakes in code.
...
m_Zone is a fully deprecated list of SEG_ZONE items (similar to TRACK), used to fill copper zones in *very old* boards.
it is even unlikely there are still boards that use them.
So it should be removed one day.
2018-05-13 08:39:36 +02:00
Seth Hillbrand
bd5eee50f4
Unify correction factor calculations
2018-04-23 16:43:13 -07:00
Carsten Schoenert
a11714b1a4
fix misspelled 'an other' -> 'another'
2018-04-08 13:24:37 -04:00
jean-pierre charras
602d9e1972
Fix a missing init in gerber plot script demo.
...
Fixes: lp:1759071
https://bugs.launchpad.net/kicad/+bug/1759071
2018-03-27 13:42:51 +02:00
jean-pierre charras
5d72aebd22
Fix code after renaming files
2018-01-29 16:40:22 +01:00
jean-pierre charras
4c5bd01887
Rename a few files
2018-01-28 22:02:31 +01:00
jean-pierre charras
e499d337d8
rename files: update filenames in sources
2018-01-28 19:12:26 +01:00
Jeff Young
45386ccbf3
Honor SMALL_DRILL_SHAPE option when plotting DXF.
...
Fixes: lp:1566744
* https://bugs.launchpad.net/kicad/+bug/1566744
2018-01-27 17:33:37 +01:00
Tomasz Włostowski
f34b86d39e
pcbnew: made zone filling algorithm thread-safe.
...
- moved zone filling algo outside ZONE_CONTAINER class
- const'ified methods that don't need to modify zone's properties
- cleanup: m_FillMode -> enum
2017-12-05 14:54:57 +01:00
jean-pierre charras
bdc6a5950b
rename plot_common.h to class_plotter.h, a better name, consistent with other class definitions.
2017-11-16 15:53:30 +01:00
Tomasz Włostowski
b945d2a708
cleanup: replace CLASS_MIRE with CLASS_PCB_TARGET for naming clarity
2017-11-03 20:02:06 +01:00
Tomasz Włostowski
32185ddcd3
Multiple improvements concerning colors, configuration handling and legacy features in pcbnew:
...
- support for background color setting
- removed several global config settings (such as g_Drc_On)
- wrapped most of global config settings in PCB_GENERAL_SETTINGS class
- reorganized PCB general options dialog to clearly mark which options concern only the legacy canvas
- new GAL feature for legacy users: double-click (or E) to change track width available as an option.
Fixes: lp:1530543
* https://bugs.launchpad.net/kicad/+bug/1530543
Fixes: lp:1707145
* https://bugs.launchpad.net/kicad/+bug/1707145
2017-08-04 16:06:57 +02:00
jean-pierre charras
557e69f72a
Fix many minor issues in dialog plot and plot DXF options.
2017-07-31 20:05:32 +02:00
jean-pierre charras
2d5607a11d
Fix issues in plot functions, when used from python scripts.
2017-07-25 11:49:16 +02:00
Maciej Suminski
f3fbce9560
Code formatting and clean-up
2017-06-23 15:43:13 +02:00
Tomasz Włostowski
3b16d3cffe
further DLIST/Iterators cleanup, some code formatting
2017-06-23 11:12:37 +02:00
Eldar Khayrullin
0af5695e51
Pcbnew: add option to plot DXF lines in outline mode.
...
Add option to plot dialog to plot DXF layers *.Cu, *.Adhes, *.Paste, and
*.Mask in outline mode or line mode.
Fixes lp:1643330
https://bugs.launchpad.net/kicad/+bug/1643330
2017-04-25 08:24:55 -04:00
Jon Evans
3ec28e2acf
Refactor layer enumerations to all live in the same place
2017-03-30 16:01:48 -04:00
Maciej Suminski
0dc88bb4cf
Changed COLOR4D defines to static consts
2017-02-22 17:35:00 +01:00
Jon Evans
a52250a91e
Change from EDA_COLOR_T to COLOR4D globally; arbitrary color support
...
eeschema now supports arbitrary colors for all object types, and
pcbnew does in GAL canvas. When switching from GAL to legacy canvas,
pcbnew will convert colors to the nearest legacy color.
2017-02-22 17:35:00 +01:00
jean-pierre charras
3ffa37c8b9
Fixes: lp:1650524 (Trapezoidal pad solder mask is incorrect when the minimal solder mask width is 0)
...
https://bugs.launchpad.net/kicad/+bug/1650524
2016-12-18 13:03:15 +01:00
jean-pierre charras
6d6542e133
Gerber file generation: in X1 format, in header, use structured comments instead of basic comments.
...
(a structured comment starts by "G04 #@! " followed by a X2 attribute, and is a comment for old Gerber readers)
2016-11-30 17:48:31 +01:00
jean-pierre charras
4ee344e150
Gerber files: Enable net attributes options in plot Gerber dlg and fix net attribute for "no net" tracks and vias (netcode <= 0).
2016-10-23 19:43:31 +02:00
jean-pierre charras
6edee2ae1d
Prepare Plot Gerber file to include advanced aperture and net attributes.
...
This option is not yet activated because the net attributes are not yet fully fixed by Ucamco, in Gerber file format specifications.
(To activate it, see dialog_plot.cpp, line 43)
2016-09-19 13:01:36 +02:00
jean-pierre charras
6d1e904334
Code cleanup: Remove outdated decimils to/from iu defines and conversion functions (decimils are no more in use since a long time).
...
Remove convert_from_iu.h file, only used for one define, and containing brokenand duplicate defines. Only convert_to_biu.h is now used.
2016-06-05 13:49:25 +02:00
jean-pierre charras
4a838fb8c3
Pcbnew: Add rounded rect pad shape.
2016-04-06 20:15:49 +02:00
jean-pierre charras
2284228c35
HPGL plot dialog: remove no more in use Pen Overlap parameter. Fix incorrect polygon fill by setting the hpgl pen thickness in hpgl file. Add filled circle (previously, a circle was never filled)
2016-02-11 13:14:46 +01:00
jean-pierre charras
178cf0dc25
Polygon calculation (zones filling): use fast mode when possible (in fact most of time) and strictly simple polygon option only in critical cases (in fact in plot Gerber functions mainly).
...
In polygon calculations (combining polygons, fracture) the mode of calculation (fast or strictly simple polygon option) as no more a default value, because choosing the best mode is better to optimize the calculation time.
2015-12-15 21:21:25 +01:00
jean-pierre charras
21d700facc
Replace "module" by "footprint" in a few messages.
2015-11-17 17:18:00 +01:00
Tomasz Wlostowski
2088b5296e
Fix bug when plotting DXF board outline.
2015-09-09 11:51:02 -04:00
jean-pierre charras
4fc230b773
Rework on Enum PAD_SHAPE_T, PAD_DRILL_SHAPE_T and PAD_ATTR_T (see rev 6008) : the new and better names are now used in Kicad code and existing python scripts.
...
PAD_SHAPE_T and PAD_ATTR_T still have a double definition (new names and old names) to be sure python scripts are nor broken by the change.
PAD_DRILL_SHAPE_T does not have a double definition, because it is unlikely oblong holes are used in python scripts.
Double definitions will be removed in the (next) future.
2015-08-23 21:40:33 +02:00
jean-pierre charras
4b4d9d9770
Plot solder mask layer: fix incorrect margin of zones drawn on this layer (zone areas were slighly larger than the actual areas)
...
Fix a few minor and very minor other issues: coverity warnings and compil warning.
2015-08-01 12:20:23 +02:00
Tomasz Wlostowski
63b35f40a7
Removed all dependencies on boost::polygon except for bitmap2component. Replaced almost all instances of CPOLYGONS_LIST with SHAPE_POLY_SET.
2015-07-27 21:45:57 +02:00
Maciej Suminski
d2ebf688f9
Reverted commits that remove boost::polygon dependency (need more testing).
2015-07-14 22:23:13 +02:00
Tomasz Wlostowski
41c753b05d
Removed all dependencies on boost::polygon except for bitmap2component. Replaced almost all instances of CPOLYGONS_LIST with SHAPE_POLY_SET.
2015-07-14 13:36:24 +02:00
jean-pierre charras
85bc2ae015
Rework on Gerber plot functions: add X2 attributes in J5 version. Minor code cleaning.
2015-03-25 14:07:05 +01:00
jean-pierre charras
b1cd42cf08
Pcbnew: simplify draw code in default canvas and plot functions by removing the plot LINE option, which is not existing in all plotters, not existing in opengl/cairo canvas, and not usefull in default canvas.
2015-02-02 09:06:39 +01:00
jean-pierre charras
479af2a7a8
Pcbnew, export Solder masks in Gerber Format: fix not working export when the solder mask minimal width is not 0 (the exported shapes were the same as if the vule = 0) with boost version >= 1.56
...
This is due to the fact the boost::pylygon function resize ( a inflate/deflate function) used for calculations does not work with boost version >= 1.56.
Use Clipper inflate/deflate function instead. It is faster and works fine.
2014-12-01 15:54:33 +01:00
jean-pierre charras
35c591166f
Pcbnew: fix Bug #1391561 (PCBNew segfaults on BOM creation). Does not happen on all platforms. Could be due to use of data just previoulsy deleted.
...
Very minor other changes.
2014-11-14 08:25:17 +01:00
jean-pierre charras
f5fd471dd9
Pcbnew: fix Bug #1392087 ( adhesive layer plot broken ).
2014-11-13 09:00:28 +01:00
jean-pierre charras
7b5318ff64
Fix minor issues about translated strings and coding style. Add comment relative to file function info in X1 gerber file format.
2014-10-31 19:59:37 +01:00
jean-pierre charras
5a38d2b657
Rework on env. variable KISYS3DMOD. Until now, was used in different files using different ways, so no consistency between files.
...
code cleanup.
2014-08-24 09:05:07 +02:00
unknown
84a985f8af
Pcbnew: Commit patch (with very minor changes) about SVG file export with the layers ordered from bottom to top. ( bug 1286646 ), from Thiadmer Riemersma.
2014-08-10 16:15:02 +02:00
jean-pierre charras
ab58dbfced
Pcbnew: Rework on Gerber ouput: allows choice between format 4.5 and 4.6. Fix a minor issue in Gerber layers attributes.
...
fix print issue when printing each layer on a separate page.
2014-07-04 16:22:38 +02:00
Dick Hollenbeck
1e7495e634
merge
2014-06-30 00:46:18 -05:00
Dick Hollenbeck
06bf0821b9
fix LSET() constructors, formatting
2014-06-29 15:33:29 -05:00
Dick Hollenbeck
4578ea8b9e
1) Add 32 Cu Layers.
...
2) Change from legacy Cu stack to counting down from top=(F_Cu or 0).
The old Cu stack required knowing the count of Cu layers to make
sense of the layer number when converting to many exported file types.
The new Cu stack is more commonly used, although ours still gives
B_Cu a fixed number.
3) Introduce class LSET and enum LAYER_ID.
4) Change *.kicad_pcb file format version to 4 from 3.
5) Change fixed names Inner1_Cu-Inner14_Cu to In1_Cu-In30_Cu and their
meanings are typically flipped.
6) Moved the #define LAYER_N_* stuff into legacy_plugin.cpp where they
can die a quiet death, and switch to enum LAYER_ID symbols throughout.
7) Removed the LEGACY_PLUGIN::Save() and FootprintSave() functions.
You will need to convert to the format immediately, *.kicad_pcb and
*.kicad_mod (=pretty) since legacy format was never going to know
about 32 Cu layers and additional technical layers and the reversed Cu
stack.
2014-06-24 11:17:18 -05:00
jean-pierre charras
9ee8dac056
Pcbnew, python console: make it not dockable (workaround to avoid the fact accelerator keys which are used in the main menu are not sent to the console, in docked mode).
...
Minor cosmetic enhancement.
2014-06-19 08:26:53 +02:00
Tomasz Wlostowski
4121c27269
Clang-alike lightweight RTTI for pcbnew + type casting cleanup.
2014-06-06 11:44:21 +02:00
jean-pierre charras
d54ade9403
Rework on DXF export.
2014-05-17 21:29:15 +02:00
Lorenzo Marcantonio
3f2c0e1a8d
TRACK/SEGVIA cleanup
...
- SEGVIA becomes VIA
- Drill size moved from TRACK to VIA
- Removed shape from TRACK, becomes ViaType in VIA
- GetTrace becomes GetTrack, for uniformity
- Some minor constification and typo fixes
2014-04-25 08:00:04 +02:00
jean-pierre charras
4374e25219
Plot functions: some enhancements in mirror mode (Pcbnew specific): boards are mirrored horizontally, and the page layout is no more mirrored, and therefore is always readable.
2013-12-06 19:31:15 +01:00
jean-pierre charras
bb39956057
Fix minor bugs in cleanup dialog options and plot solder mask function (thanks to Lorenzo to locate these bugs)
2013-09-18 21:21:11 +02:00
jean-pierre charras
9af4ea4014
Add pl_editor_doc.icns, from Orson. Fix Bug #1217504 (bad look of Module Properties Dialog, 3D fields).
...
Add Dick's workaround in plot_board_layers.cpp to try to avoid crash in solder mask calculations, due to a bug in boost::polygon, in resize function.
2013-08-28 09:23:14 +02:00
Dick Hollenbeck
efb34166ea
*) retain grid origin in the BOARD and save it in legacy and kicad board files.
...
*) add hotkey for setting the grid origin as 'S', in board editor, module editor.
*) re-position the function interface for cursor movement from BASE_SCREEN into
class EDA_DRAW_FRAME. This is a prelude to getting rid of BASE_SCREEN or
splitting it up.
2013-08-03 00:15:23 -05:00
jean-pierre charras
2e6969fe96
More work on CPOLYGONS_LIST class.
2013-05-08 20:20:58 +02:00
jean-pierre charras
b2a76062c7
All: use CPOLYGONS_LIST, a typedef of std::vector<CPolyPt> to handle a Corners Polygons List.
...
This is a starting point of some code enhancements relative to polygons in Pcbew and 3D viewer.
2013-05-03 19:51:10 +02:00
Lorenzo Marcantonio
78e41187b3
Moved utilities for angles in trigo.h
...
New conversion routines and sin/cos implementation for angles in decidegrees
2013-05-02 20:06:58 +02:00
jean-pierre charras
4ac7dd5845
3D viewer: Modify yhe way board items shapes are built:
...
* All items shapes are converted to polygons.
* Polygons are merged layer by layer (for calculation time reasons,zones are not merged)
* for copper layers, vias and pads holes are substracted from polygons (but, for calculation time reasons, not inside zones areas).
* the look is better, mainly when displaying the copper thickness
* solder and paste layers are now shown in 3D viewer.
* the code was seriously cleaned (but still needs to be enhanced).
* Note this is a work in progress which needs refinements.
2013-05-01 21:01:14 +02:00
Lorenzo Marcantonio
9fd79dfa91
Implemented the LAYER_NUM typedef (LAYER was already taken as a class name...) to represent a layer number.
2013-03-31 15:27:46 +02:00
Lorenzo Marcantonio
e0303a4558
- New typedef LAYER_MSK to encapsulate a layer bitmap
...
- Renamed ReturnMaskLayer to GetLayerMask (since it's a plain getter)
2013-03-30 18:24:04 +01:00
Wayne Stambaugh
7d0ec1a138
More encapsulation work.
...
* Complete encapsulation of the MODULE class.
* Complete encapsulation of the EDA_TEXT class.
* Encapsulate most of the ZONE_CONTAINER class.
* Add pcbcommon library as a dependency for reSWIGging the scripting
support. This should cover most dependency cases.
2013-03-18 15:36:07 -04:00
Dick Hollenbeck
eed97c549d
plotter output file being left open fix.
2013-02-06 09:21:37 -06:00
Heikki Pulkkinen
3e18fa422c
protect data in class_track.h, switch to using member accessors
2013-01-12 18:04:00 -06:00
jean-pierre charras
ac41e7009e
Pcbnew: plot solder mask layer with min width value specified: algorithm modified to reduce artifacts.
2012-12-03 15:27:34 +01:00
jean-pierre charras
703293fa30
Add a min width parameter to plot solder mask layers.
2012-11-05 21:20:34 +01:00
Marco Mattila
efa0286f26
Do not force vias to be substracted from silkscreen in pcbnew gerber plot
2012-10-28 22:51:47 +02:00
jean-pierre charras
621a43c4ad
Eeschema: always stores sheet filename in unix-like notation, and fix a bug when editing sheet file name.
...
Pcbnew: add PDF format for drill map generation.
Plotter classes: tweaking code.
2012-10-13 20:54:33 +02:00
jean-pierre charras
5fa61ecd25
Finishing code cleaning in plot functions.
2012-09-25 09:49:29 +02:00
jean-pierre charras
2d49ced742
Pcbnew: fix compil warning and a minor bug in plot negative (frame fer plotted in white therefore not visible).
...
minor code cleaning
2012-09-24 18:03:03 +02:00