Allow plotting of multiple board layers per plot in Python.

Since the always plot the edge cuts layer  option was deprecate,
the ability to plot multiple board layers was exposed through the
PLOT_CONTROLLER object.

Added the interactive plot information which was overlooked during
version 7 development.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/13841
This commit is contained in:
Wayne Stambaugh 2023-02-14 09:49:20 -05:00
parent 03484aedbc
commit eb83f76bff
2 changed files with 27 additions and 1 deletions

View File

@ -489,7 +489,22 @@ bool PLOT_CONTROLLER::PlotLayer()
// Fully delegated to the parent
PlotOneBoardLayer( m_board, m_plotter, ToLAYER_ID( GetLayer() ), GetPlotOptions() );
PlotInteractiveLayer( m_board, m_plotter );
return true;
}
bool PLOT_CONTROLLER::PlotLayers( const LSEQ& aLayerSequence )
{
LOCALE_IO toggle;
// No plot open, nothing to do...
if( !m_plotter )
return false;
// Fully delegated to the parent
PlotBoardLayers( m_board, m_plotter, aLayerSequence, GetPlotOptions() );
PlotInteractiveLayer( m_board, m_plotter );
return true;
}

View File

@ -3,7 +3,7 @@
*
* Copyright (C) 2012 Lorenzo Marcantonio, <l.marcantonio@logossrl.com>
* Copyright (C) 2015 Jean-Pierre Charras, jp.charras at wanadoo.fr
* Copyright (C) 1992-2021 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright (C) 1992-2023 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@ -88,6 +88,15 @@ public:
*/
bool PlotLayer();
/**
* Plot a sequence of board layer IDs in the given order.
*
* @param aLayerSequence is the sequence of layer IDs to plot.
*
* @return true if the layers plotted correctly othewise false.
*/
bool PlotLayers( const LSEQ& aLayerSequence );
/**
* @return the current plot full filename, set by OpenPlotfile
*/
@ -111,6 +120,8 @@ public:
*/
bool GetColorMode();
PLOTTER* GetPlotter() { return m_plotter; }
private:
int m_plotLayer;
PCB_PLOT_PARAMS m_plotOptions;