24#include <wx/bmpbuttn.h>
25#include <wx/clntdata.h>
26#include <wx/rearrangectrl.h>
103 m_editFrame( aEditFrame ),
104 m_defaultPenSize( m_editFrame, m_hpglPenLabel, m_hpglPenCtrl, m_hpglPenUnits ),
105 m_trackWidthCorrection( m_editFrame, m_widthAdjustLabel, m_widthAdjustCtrl, m_widthAdjustUnits ),
139 wxArrayInt plotAllLayersOrder;
140 wxArrayString plotAllLayersChoicesStrings;
141 std::vector<PCB_LAYER_ID> layersIdChoiceList;
151 plotAllLayersChoicesStrings.Add( layerName );
152 layersIdChoiceList.push_back( layer );
155 plotAllLayersOrder.push_back( order );
157 plotAllLayersOrder.push_back( ~order );
162 int checkColSize = 22;
163 int layerColSize = textWidth + 15;
175 wxStaticBox* allLayersLabel =
new wxStaticBox(
this, wxID_ANY,
_(
"Plot on All Layers" ) );
176 wxStaticBoxSizer* sbSizer =
new wxStaticBoxSizer( allLayersLabel, wxVERTICAL );
179 wxDefaultPosition, wxDefaultSize,
180 plotAllLayersOrder, plotAllLayersChoicesStrings, 0 );
188 for(
size_t idx = 0; idx < layersIdChoiceList.size(); idx++ )
190 wxString& txt = plotAllLayersChoicesStrings[idx];
199 wxBoxSizer* bButtonSizer;
200 bButtonSizer =
new wxBoxSizer( wxHORIZONTAL );
203 wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW | 0 );
204 m_bpMoveUp->SetToolTip(
_(
"Move current selection up" ) );
207 bButtonSizer->Add(
m_bpMoveUp, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 3 );
210 wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW | 0 );
211 m_bpMoveDown->SetToolTip(
_(
"Move current selection down" ) );
214 bButtonSizer->Add(
m_bpMoveDown, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 5 );
216 sbSizer->Add( bButtonSizer, 0, wxALL | wxEXPAND, 3 );
218 bmiddleSizer->Insert( 1, sbSizer, 1, wxALL | wxEXPAND, 5 );
229 { wxID_APPLY,
_(
"Generate Drill Files..." ) },
230 { wxID_CANCEL,
_(
"Close" ) } } );
233 GetSizer()->Fit(
this );
234 GetSizer()->SetSizeHints(
this );
416 == PLOT_TEXT_MODE::DEFAULT );
437 wxCommandEvent cmd_event;
550 int knownViolations = 0;
561 if( !
m_job && ( knownViolations || exclusions ) )
590 [&]( wxRearrangeList* aList,
PCB_LAYER_ID aLayer ) ->
int
592 for(
int ii = 0; ii < (int) aList->GetCount(); ++ii )
607 while( currentPos > idx )
619#define ID_LAYER_FAB 13001
620#define ID_SELECT_COPPER_LAYERS 13002
621#define ID_DESELECT_COPPER_LAYERS 13003
622#define ID_SELECT_ALL_LAYERS 13004
623#define ID_DESELECT_ALL_LAYERS 13005
624#define ID_STACKUP_ORDER 13006
634 menu.Append(
new wxMenuItem( &menu,
ID_LAYER_FAB,
_(
"Select Fab Layers" ) ) );
636 menu.AppendSeparator();
640 menu.AppendSeparator();
644 menu.Bind( wxEVT_COMMAND_MENU_SELECTED,
645 [&]( wxCommandEvent& aCmd )
647 switch( aCmd.GetId() )
655 if( ( layermask & fab_layer_set ).any() )
709 menu.AppendSeparator();
710 menu.Append(
new wxMenuItem( &menu,
ID_STACKUP_ORDER,
_(
"Order as Board Stackup" ) ) );
712 menu.Bind( wxEVT_COMMAND_MENU_SELECTED,
713 [&]( wxCommandEvent& aCmd )
715 switch( aCmd.GetId() )
717 case ID_SELECT_ALL_LAYERS:
718 for( unsigned i = 0; i < m_plotAllLayersList->GetCount(); i++ )
719 m_plotAllLayersList->Check( i, true );
723 case ID_DESELECT_ALL_LAYERS:
724 for( unsigned i = 0; i < m_plotAllLayersList->GetCount(); i++ )
725 m_plotAllLayersList->Check( i, false );
729 case ID_STACKUP_ORDER:
731 LSEQ stackup = m_editFrame->GetBoard()->GetEnabledLayers().SeqStackupForPlotting();
732 arrangeAllLayersList( stackup );
733 m_plotAllLayersList->Select( -1 );
776 bool scale1 = (
m_scaleOpt->GetSelection() == 1 );
788 std::function<bool( wxString* )> textResolver =
789 [&]( wxString* token ) ->
bool
799 wxDirDialog dirDialog(
this,
_(
"Select Output Directory" ),
path );
801 if( dirDialog.ShowModal() == wxID_CANCEL )
804 wxFileName dirName = wxFileName::DirName( dirDialog.GetPath() );
807 wxString defaultPath = fn.GetPathWithSep();
809 wxFileName relPathTest;
811 relPathTest.Assign( dirDialog.GetPath() );
814 if( relPathTest.MakeRelativeTo( defaultPath ) )
816 msg.Printf(
_(
"Do you want to use a path relative to\n'%s'?" ), defaultPath );
818 wxMessageDialog dialog(
this, msg,
_(
"Plot Output Directory" ),
819 wxYES_NO | wxICON_QUESTION | wxYES_DEFAULT );
821 if( dialog.ShowModal() == wxID_YES )
822 dirName.MakeRelativeTo( defaultPath );
866 case PLOT_FORMAT::SVG:
867 case PLOT_FORMAT::PDF:
900 case PLOT_FORMAT::POST:
922 case PLOT_FORMAT::GERBER:
949 case PLOT_FORMAT::HPGL:
972 case PLOT_FORMAT::DXF:
1000 case PLOT_FORMAT::UNDEFINED:
1015static bool setDouble(
double* aResult,
double aValue,
double aMin,
double aMax )
1022 else if( aValue > aMax )
1033static bool setInt(
int* aResult,
int aValue,
int aMin,
int aMax )
1040 else if( aValue > aMax )
1077 tempOptions.
SetDXFPlotUnits( sel == 0 ? DXF_UNITS::INCH : DXF_UNITS::MM );
1080 tempOptions.
SetTextMode( PLOT_TEXT_MODE::DEFAULT );
1083 PLOT_TEXT_MODE::NATIVE );
1115 msg.Printf(
_(
"HPGL pen size constrained." ) );
1127 msg.ToDouble( &tmpDouble );
1133 msg.Printf(
_(
"X scale constrained." ) );
1139 msg.ToDouble( &tmpDouble );
1145 msg.Printf(
_(
"Y scale constrained." ) );
1164 cfg->m_Plot.check_zones_before_plotting =
m_zoneFillCheck->GetValue();
1171 msg.Printf(
_(
"Width correction constrained. The width correction value must be in the"
1172 " range of [%s; %s] for the current design rules." ),
1202 LSET selectedLayers;
1204 for(
unsigned i = 0; i <
m_layerList.size(); i++ )
1211 LSET disabledCopperLayers =
LSET::AllCuMask() & ~m_editFrame->GetBoard()->GetEnabledLayers();
1214 wxArrayInt plotOnAllLayers;
1219 size_t count = plotOnAllLayers.GetCount();
1221 for(
size_t i = 0; i < count; i++ )
1223 int index = plotOnAllLayers.Item( i );
1226 commonLayers.push_back( client_layer );
1234 selectedLayers = selectedLayers | disabledCopperLayers;
1243 dirStr.Replace( wxT(
"\\" ), wxT(
"/" ) );
1272 EndModal( wxID_OK );
1291 DisplayError(
this,
_(
"No layer selected, Nothing to plot" ) );
1298 std::function<bool( wxString* )> textResolver =
1299 [&]( wxString* token ) ->
bool
1309 wxFileName outputDir = wxFileName::DirName(
path );
1316 msg.Printf(
_(
"Could not write plot files to folder '%s'." ), outputDir.GetPath() );
1368 wxArrayInt plotOnAllLayers;
1373 size_t count = plotOnAllLayers.GetCount();
1375 for(
size_t i = 0; i < count; i++ )
1377 int index = plotOnAllLayers.Item( i );
1380 commonLayers.push_back( client_layer );
1384 pcbPlotter.
Plot( outputDir.GetPath(), layersToPlot, commonLayers,
1414 std::function<bool( wxString* )> textResolver = [&]( wxString* token ) ->
bool
1424 if( !wxDirExists(
path ) )
1426 DisplayError(
this, wxString::Format(
_(
"Directory '%s' does not exist." ),
path ) );
1430 wxLaunchDefaultApplication(
path );
1464 m_hideDNP->Enable( aEvent.IsChecked() );
constexpr EDA_IU_SCALE pcbIUScale
constexpr EDA_IU_SCALE unityScale
wxBitmapBundle KiBitmapBundle(BITMAPS aBitmap, int aMinHeight)
constexpr BOX2I KiROUND(const BOX2D &aBoxD)
wxString m_ColorTheme
Active color theme name.
BASE_SET & set(size_t pos)
Container for design settings for a BOARD object.
int GetSmallestClearanceValue() const
int m_SolderMaskExpansion
int GetLineThickness(PCB_LAYER_ID aLayer) const
Return the default graphic segment thickness from the layer class for the given layer.
Information pertinent to a Pcbnew printed circuit board.
bool ResolveTextVar(wxString *token, int aDepth) const
const MARKERS & Markers() const
const wxString & GetFileName() const
const wxString GetLayerName(PCB_LAYER_ID aLayer) const
Return the name of a aLayer.
PROJECT * GetProject() const
BOARD_DESIGN_SETTINGS & GetDesignSettings() const
const LSET & GetEnabledLayers() const
A proxy function that calls the corresponding function in m_BoardSettings.
wxCheckBox * m_frontFPPropertyPopups
wxStaticText * m_DRCExclusionsWarning
wxCheckBox * m_backFPPropertyPopups
wxTextCtrl * m_fineAdjustXCtrl
wxBoxSizer * bmiddleSizer
wxStaticBoxSizer * m_PDFOptionsSizer
wxCheckBox * m_disableApertMacros
wxChoice * m_coordFormatCtrl
wxCheckBox * m_DXF_plotModeOpt
wxChoice * m_SVGColorChoice
wxStaticText * m_staticTextPlotFmt
STD_BITMAP_BUTTON * m_browseButton
wxTextCtrl * m_outputDirectoryName
wxSpinCtrl * m_svgPrecsision
wxTextCtrl * m_fineAdjustYCtrl
wxCheckBox * m_plotPadNumbers
wxStaticBoxSizer * m_HPGLOptionsSizer
wxCheckBox * m_useAuxOriginCheckBox
wxStaticBoxSizer * m_PSOptionsSizer
STD_BITMAP_BUTTON * m_openDirButton
wxCheckBox * m_plotPSNegativeOpt
wxCheckBox * m_SVG_fitPageToBoard
wxCheckBox * m_DXF_plotTextStrokeFontOpt
wxCheckBox * m_useGerberExtensions
wxCheckBox * m_plotSheetRef
wxBoxSizer * m_SizerSolderMaskAlert
wxCheckBox * m_generateGerberJobFile
wxRadioButton * m_crossoutDNP
wxButton * m_sdbSizer1Apply
wxCheckBox * m_useGerberX2Format
wxCheckListBox * m_layerCheckListBox
wxCheckBox * m_plotMirrorOpt
wxStaticBoxSizer * m_svgOptionsSizer
wxCheckBox * m_forcePSA4OutputOpt
wxCheckBox * m_useGerberNetAttributes
wxCheckBox * m_sketchPadsOnFabLayers
wxCheckBox * m_subtractMaskFromSilk
wxBoxSizer * m_PlotOptionsSizer
wxChoice * m_DXF_plotUnits
wxStaticBoxSizer * m_SizerDXF_options
wxCheckBox * m_pdfMetadata
wxChoice * m_drillShapeOpt
wxRadioButton * m_hideDNP
wxCheckBox * m_zoneFillCheck
wxStaticBoxSizer * m_GerberOptionsSizer
WX_HTML_REPORT_PANEL * m_messagesPanel
wxChoice * m_PDFColorChoice
wxChoice * m_plotFormatOpt
A dialog to set the plot options and create plot files in various formats.
static LSET s_lastAllLayersSet
DIALOG_PLOT(PCB_EDIT_FRAME *aEditFrame)
void OnRightClickLayers(wxMouseEvent &event)
static LSEQ s_lastAllLayersOrder
The plot on all layers ordering the last time the dialog was opened.
JOB_EXPORT_PCB_PLOT * m_job
PCB_PLOT_PARAMS m_plotOpts
STD_BITMAP_BUTTON * m_bpMoveUp
void onPlotAllListMoveUp(wxCommandEvent &aEvent)
void OnChangeDXFPlotMode(wxCommandEvent &event) override
int m_widthAdjustMinValue
UNIT_BINDER m_trackWidthCorrection
void onBoardSetup(wxHyperlinkEvent &aEvent) override
void OnRightClickAllLayers(wxMouseEvent &event)
void onSketchPads(wxCommandEvent &event) override
void Plot(wxCommandEvent &event) override
wxString m_DRCWarningTemplate
void setPlotModeChoiceSelection(OUTLINE_MODE aPlotMode)
wxRearrangeList * m_plotAllLayersList
void onPlotAllListMoveDown(wxCommandEvent &aEvent)
void onRunDRC(wxCommandEvent &event) override
void arrangeAllLayersList(const LSEQ &aSeq)
void onOpenOutputDirectory(wxCommandEvent &event) override
void OnSetScaleOpt(wxCommandEvent &event) override
PCB_EDIT_FRAME * m_editFrame
STD_BITMAP_BUTTON * m_bpMoveDown
void CreateDrillFile(wxCommandEvent &event) override
void onDNPCheckbox(wxCommandEvent &event) override
UNIT_BINDER m_defaultPenSize
PLOT_FORMAT getPlotFormat()
static LSET s_lastLayerSet
The plot layer set that last time the dialog was opened.
void transferPlotParamsToJob()
int m_widthAdjustMaxValue
void onOutputDirectoryBrowseClicked(wxCommandEvent &event) override
void OnGerberX2Checked(wxCommandEvent &event) override
void SetPlotFormat(wxCommandEvent &event) override
void SetupStandardButtons(std::map< int, wxString > aLabels={})
bool m_plotGraphicItemsUsingContours
bool m_useBoardPlotParams
bool m_useProtelFileExtension
bool m_includeNetlistAttributes
bool m_disableApertureMacros
bool m_pdfFrontFPPropertyPopups
@ ALL_LAYERS_SEPARATE_FILE
@ ONE_PAGE_PER_LAYER_ONE_FILE
The most traditional output mode KiCad has had.
bool m_pdfSingle
This is a hack to deal with cli having the wrong behavior We will deprecate out the wrong behavior,...
bool m_pdfBackFPPropertyPopups
bool m_sketchDNPFPsOnFabLayers
LSEQ m_plotOnAllLayersSequence
Used by SVG & PDF.
bool m_sketchPadsOnFabLayers
DRILL_MARKS m_drillShapeOption
Used by SVG/DXF/PDF/Gerbers.
bool m_crossoutDNPFPsOnFabLayers
bool m_hideDNPFPsOnFabLayers
bool m_mirror
Common Options.
bool m_subtractSolderMaskFromSilk
LSEQ m_plotLayerSequence
Layers to include on all individual layer prints.
double m_trackWidthCorrection
void SetConfiguredOutputPath(const wxString &aPath)
Sets the configured output path for the job, this path is always saved to file.
virtual wxString GetSettingsDialogTitle() const
PROJECT & Prj() const
Return a reference to the PROJECT associated with this KIWAY.
Instantiate the current locale within a scope in which you are expecting exceptions to be thrown.
LSEQ is a sequence (and therefore also a set) of PCB_LAYER_IDs.
LSET is a set of PCB_LAYER_IDs.
LSEQ UIOrder() const
Return the copper, technical and user layers in the order shown in layer widget.
LSEQ SeqStackupForPlotting() const
Return the sequence that is typical for a bottom-to-top stack-up.
static LSET AllCuMask(int aCuLayerCount=MAX_CU_LAYERS)
Return a mask holding the requested number of Cu PCB_LAYER_IDs.
static const LSET & AllTechMask()
Return a mask holding all technical layers (no CU layer) on both side.
virtual const PCB_PLOT_PARAMS & GetPlotSettings() const
Return the PCB_PLOT_PARAMS for the BOARD owned by this frame.
PCBNEW_SETTINGS * GetPcbNewSettings() const
virtual void SetPlotSettings(const PCB_PLOT_PARAMS &aSettings)
The main frame for Pcbnew.
void ShowBoardSetupDialog(const wxString &aInitialPage=wxEmptyString)
void OnModify() override
Must be called after a board change to set the modified flag.
A helper wxWidgets control client data object to store layer IDs.
PCB_LAYER_ID Layer() const
void SetData(PCB_LAYER_ID aId)
PCB_LAYER_ID_CLIENT_DATA()
PCB_LAYER_ID_CLIENT_DATA(PCB_LAYER_ID aId)
bool Plot(const wxString &aOutputPath, const LSEQ &aLayersToPlot, const LSEQ &aCommonLayers, bool aUseGerberFileExtensions, bool aOutputPathIsSingle=false, std::optional< wxString > aLayerName=std::nullopt, std::optional< wxString > aSheetName=std::nullopt, std::optional< wxString > aSheetPath=std::nullopt)
static void PlotJobToPlotOpts(PCB_PLOT_PARAMS &aOpts, JOB_EXPORT_PCB_PLOT *aJob, REPORTER &aReporter)
Translate a JOB to PCB_PLOT_PARAMS.
Parameters and options when plotting/printing a board.
PLOT_FORMAT GetFormat() const
void SetDrillMarksType(DRILL_MARKS aVal)
bool GetUseAuxOrigin() const
LSEQ GetPlotOnAllLayersSequence() const
bool GetHideDNPFPsOnFabLayers() const
void SetLayerSelection(const LSET &aSelection)
void SetOutputDirectory(const wxString &aDir)
int GetWidthAdjust() const
void SetSketchPadsOnFabLayers(bool aFlag)
void SetUseGerberX2format(bool aUse)
DXF_UNITS GetDXFPlotUnits() const
void SetA4Output(int aForce)
PLOT_TEXT_MODE GetTextMode() const
bool GetCrossoutDNPFPsOnFabLayers() const
bool GetSketchDNPFPsOnFabLayers() const
void SetPlotOnAllLayersSequence(LSEQ aSeq)
void SetDXFPlotPolygonMode(bool aFlag)
void SetAutoScale(bool aFlag)
double GetHPGLPenDiameter() const
unsigned GetSvgPrecision() const
void SetPlotFrameRef(bool aFlag)
void SetSketchDNPFPsOnFabLayers(bool aFlag)
bool m_PDFMetadata
Generate PDF metadata for SUBJECT and AUTHOR.
unsigned GetBlackAndWhite() const
bool GetCreateGerberJobFile() const
void SetPlotPadNumbers(bool aFlag)
bool GetDXFPlotPolygonMode() const
void SetSketchPadLineWidth(int aWidth)
bool GetSvgFitPagetoBoard() const
LSET GetLayerSelection() const
wxString GetOutputDirectory() const
int GetScaleSelection() const
bool SetHPGLPenDiameter(double aValue)
bool m_PDFFrontFPPropertyPopups
Generate PDF property popup menus for footprints.
void SetScale(double aVal)
void SetDisableGerberMacros(bool aDisable)
void SetScaleSelection(int aSelection)
void SetFineScaleAdjustX(double aVal)
void SetMirror(bool aFlag)
void SetBlackAndWhite(bool blackAndWhite)
void SetGerberPrecision(int aPrecision)
void SetSubtractMaskFromSilk(bool aSubtract)
bool GetSketchPadsOnFabLayers() const
void SetHideDNPFPsOnFabLayers(bool aFlag)
bool GetSubtractMaskFromSilk() const
int GetGerberPrecision() const
double GetFineScaleAdjustY() const
void SetUseGerberProtelExtensions(bool aUse)
bool GetPlotPadNumbers() const
DRILL_MARKS GetDrillMarksType() const
bool GetUseGerberX2format() const
void SetDXFPlotUnits(DXF_UNITS aUnit)
void SetColorSettings(COLOR_SETTINGS *aSettings)
bool IsSameAs(const PCB_PLOT_PARAMS &aPcbPlotParams) const
Compare current settings to aPcbPlotParams, including not saved parameters in brd file.
void SetIncludeGerberNetlistInfo(bool aUse)
void SetCreateGerberJobFile(bool aCreate)
bool GetIncludeGerberNetlistInfo() const
bool m_PDFSingle
Generate a single PDF file for all layers.
void SetNegative(bool aFlag)
double GetFineScaleAdjustX() const
void SetPlotMode(OUTLINE_MODE aPlotMode)
void SetUseAuxOrigin(bool aAux)
bool m_PDFBackFPPropertyPopups
on front and/or back of board
void SetTextMode(PLOT_TEXT_MODE aVal)
void SetSvgFitPageToBoard(int aSvgFitPageToBoard)
bool GetUseGerberProtelExtensions() const
void SetSvgPrecision(unsigned aPrecision)
bool GetPlotFrameRef() const
void SetCrossoutDNPFPsOnFabLayers(bool aFlag)
void SetFormat(PLOT_FORMAT aFormat)
bool GetDisableGerberMacros() const
void SetFineScaleAdjustY(double aVal)
OUTLINE_MODE GetPlotMode() const
void SetWidthAdjust(int aVal)
virtual SETTINGS_MANAGER & GetSettingsManager() const
The backing store for a PROJECT, in JSON format.
wxString m_PcbLastPath[LAST_PATH_SIZE]
MRU path storage.
virtual PROJECT_FILE & GetProjectFile() const
virtual const wxString AbsolutePath(const wxString &aFileName) const
Fix up aFileName if it is relative to the project's directory to be an absolute path and filename.
A pure virtual class used to derive REPORTER objects from.
virtual REPORTER & Report(const wxString &aText, SEVERITY aSeverity=RPT_SEVERITY_UNDEFINED)
Report a string with a given severity.
T * GetAppSettings(const char *aFilename)
Return a handle to the a given settings by type.
COLOR_SETTINGS * GetColorSettings(const wxString &aName="user")
Retrieve a color settings object that applications can read colors from.
wxString StringFromValue(double aValue, bool aAddUnitLabel=false, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE) const
Converts aValue in internal units into a united string.
virtual long long int GetValue()
Return the current value in Internal Units.
void Enable(bool aEnable)
Enable/disable the label, widget and units label.
virtual void SetValue(long long int aValue)
Set new value (in Internal Units) for the text field, taking care of units conversion.
void SetFileName(const wxString &aReportFileName)
Set the report full file name to the string.
REPORTER & Reporter()
Return the reporter object that reports to this panel.
const wxString ExpandEnvVarSubstitutions(const wxString &aString, const PROJECT *aProject)
Replace any environment variable & text variable references with their values.
wxString ExpandTextVars(const wxString &aSource, const PROJECT *aProject, int aFlags)
bool EnsureFileDirectoryExists(wxFileName *aTargetFullFileName, const wxString &aBaseFilename, REPORTER *aReporter)
Make aTargetFullFileName absolute and create the path of this file if it doesn't yet exist.
void DisplayInfoMessage(wxWindow *aParent, const wxString &aMessage, const wxString &aExtraInfo)
Display an informational message box with aMessage.
void DisplayError(wxWindow *aParent, const wxString &aText)
Display an error or warning message box with aMessage.
This file is part of the common library.
static bool setDouble(double *aResult, double aValue, double aMin, double aMax)
static bool setInt(int *aResult, int aValue, int aMin, int aMax)
PCB_LAYER_ID_CLIENT_DATA * getLayerClientData(const wxRearrangeList *aList, int aIdx)
#define ID_SELECT_ALL_LAYERS
#define ID_DESELECT_COPPER_LAYERS
#define ID_DESELECT_ALL_LAYERS
#define ID_SELECT_COPPER_LAYERS
Classes used to generate a Gerber job file in JSON.
bool IsCopperLayer(int aLayerId)
Test whether a layer is a copper layer.
PCB_LAYER_ID
A quick note on layer IDs:
This file contains miscellaneous commonly used macros and functions.
KICOMMON_API wxString StringFromValue(const EDA_IU_SCALE &aIuScale, EDA_UNITS aUnits, double aValue, bool aAddUnitsText=false, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
Return the string from aValue according to aUnits (inch, mm ...) for display.
KICOMMON_API wxSize GetTextSize(const wxString &aSingleLine, wxWindow *aWindow)
Return the size of aSingleLine of text when it is rendered in aWindow using whatever font is currentl...
bool contains(const _Container &__container, _Value __value)
Returns true if the container contains the given value.
PGM_BASE & Pgm()
The global program "get" accessor.
DRILL_MARKS
Plots and prints can show holes in pads and vias 3 options are available:
PLOT_FORMAT
The set of supported output plot formats.
Plotting engines similar to ps (PostScript, Gerber, svg)
std::vector< FAB_LAYER_COLOR > dummy
#define TO_UTF8(wxstring)
Convert a wxString to a UTF8 encoded C string for all wxWidgets build modes.
constexpr double IUTomm(int iu) const
double ps_fine_width_adjust
bool check_zones_before_plotting
Definition of file extensions used in Kicad.