kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #08855
[PATCH] Plot scripting
Here's the patch, it applies cleanly to 3677
Riepilogating:
- Removed the filename from BASE_SCREEN; for pcbnew it goes in the
BOARD, eeschema keeps it in the SCH_SCREEN, gerbview (and the 3D
viewer) only keeps a default filename for dialogs;
- The DXF drivers honours the 'aux origin' option; also added a sysvar
expliciting that's a metric design (DXF are exported in mm);
- The PLOTTER object now keeps inside the IUs per decimil passed during
viewport establishment: it needs it to properly draw the border frame;
also it get static methods and an utility function to retrieve the
default filename for a plotfile (depending on the driver)
- Fixed a silly typo in the HPGL generator output;
- Decoupled the worksheet drawing/plotting from BASE_SCREEN;
- Removed struct PCB_Plot_Options and g_pcb_plot_options from gerbview
since it's not implemented anyway;
- PostscriptTextMode become PlotTextMode since it's used by PDF and DXF
too; in the same way the A4 paper is honoured by all the drivers
supporting scaling and paper size (i.e. PS, PDF and HPGL); NOTE:
should be tested more XD
- Removed m_printBorderAndTitleBlock from PCB_BASE_FRAME since it was
not referenced in any useful way;
- Removed the plot routines from the PCB_BASE_FRAME and put in
procedural code; also there is only one entry point instead of one for
each plot driver; this also causes the removal of files
plot{gerb,hpgl,ps,dxf}.cpp; most of the plot setup now happen in
PlotSetupPlotter
- Enable different colours for references and values on silk screen
plots;
- Refactored the drill marks code (the mark code was duplicated for vias
and pad holes)
- Accessors for PCB_PLOT_PARAMS and private members;
- Fixed the interlock between the plot frame and the plot scale options
in the plot dialog;
- Factored out the 'gerber extension' switch: it was asking to be pulled
out:P also pulled out the plot filename handling functions;
- The PLOT_CONTROLLER class, obviously!
- Added a catch for std::exception in pcbnew.i; it's not used at the
moment (I added it when we where discussing error handling) but it
should be at least a useful parachute for python-called code;
TODO:
- Think about error handling and output decoupling for python called
code; also the issue with 'deleted' object
- Make a 'better' example script since it's actually my first python
code ever... the current one is (necessarily) convoluted and probably
not idiomatic
- Interface the other exporters, esp. the drill generator (I consider
the current 'white holes' for DXF an hack)
--
Lorenzo Marcantonio
Logos Srl
Attachment:
plot_script.diff.gz
Description: application/gunzip
Follow ups