mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-09-14 02:03:12 +02:00
Implement min pen width for SCH plotting jobs.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/19398
This commit is contained in:
parent
dc4708cdb7
commit
e741d46770
@ -72,6 +72,7 @@ JOB_EXPORT_SCH_PLOT::JOB_EXPORT_SCH_PLOT( bool aOutputIsDirectory ) :
|
||||
m_blackAndWhite( false ),
|
||||
m_pageSizeSelect( JOB_PAGE_SIZE::PAGE_SIZE_AUTO ),
|
||||
m_useBackgroundColor( true ),
|
||||
m_minPenWidth( 847 /* hairline @ 300dpi */ ),
|
||||
m_HPGLPenSize( 1.0 ),
|
||||
m_HPGLPaperSizeSelect( JOB_HPGL_PAGE_SIZE::DEFAULT ),
|
||||
m_PDFPropertyPopups( true ),
|
||||
@ -101,6 +102,9 @@ JOB_EXPORT_SCH_PLOT::JOB_EXPORT_SCH_PLOT( bool aOutputIsDirectory ) :
|
||||
m_params.emplace_back( new JOB_PARAM<bool>( "use_background_color",
|
||||
&m_useBackgroundColor, m_useBackgroundColor ) );
|
||||
|
||||
m_params.emplace_back( new JOB_PARAM<int>( "min_pen_width",
|
||||
&m_minPenWidth, m_minPenWidth ) );
|
||||
|
||||
m_params.emplace_back( new JOB_PARAM<double>( "hpgl_pen_size",
|
||||
&m_HPGLPenSize, m_HPGLPenSize ) );
|
||||
|
||||
|
@ -88,6 +88,7 @@ public:
|
||||
bool m_blackAndWhite;
|
||||
JOB_PAGE_SIZE m_pageSizeSelect;
|
||||
bool m_useBackgroundColor;
|
||||
int m_minPenWidth;
|
||||
double m_HPGLPenSize; // for HPGL format only: pen size
|
||||
JOB_HPGL_PAGE_SIZE m_HPGLPaperSizeSelect;
|
||||
bool m_PDFPropertyPopups;
|
||||
|
@ -198,6 +198,7 @@ void DIALOG_PLOT_SCHEMATIC::initDlg()
|
||||
m_colorTheme->SetSelection( 0 );
|
||||
|
||||
m_plotBackgroundColor->SetValue( m_job->m_useBackgroundColor );
|
||||
m_defaultLineWidth.SetValue( m_job->m_minPenWidth );
|
||||
m_penWidth.SetDoubleValue( m_job->m_HPGLPenSize );
|
||||
m_HPGLPaperSizeSelect = static_cast<HPGL_PAGE_SIZE>( m_job->m_HPGLPaperSizeSelect );
|
||||
m_plotPDFPropertyPopups->SetValue( m_job->m_PDFPropertyPopups );
|
||||
@ -215,9 +216,9 @@ void DIALOG_PLOT_SCHEMATIC::initDlg()
|
||||
{
|
||||
default:
|
||||
case SCH_PLOT_FORMAT::POST: m_plotFormatOpt->SetSelection( 0 ); break;
|
||||
case SCH_PLOT_FORMAT::PDF: m_plotFormatOpt->SetSelection( 1 ); break;
|
||||
case SCH_PLOT_FORMAT::SVG: m_plotFormatOpt->SetSelection( 2 ); break;
|
||||
case SCH_PLOT_FORMAT::DXF: m_plotFormatOpt->SetSelection( 3 ); break;
|
||||
case SCH_PLOT_FORMAT::PDF: m_plotFormatOpt->SetSelection( 1 ); break;
|
||||
case SCH_PLOT_FORMAT::SVG: m_plotFormatOpt->SetSelection( 2 ); break;
|
||||
case SCH_PLOT_FORMAT::DXF: m_plotFormatOpt->SetSelection( 3 ); break;
|
||||
case SCH_PLOT_FORMAT::HPGL: m_plotFormatOpt->SetSelection( 4 ); break;
|
||||
}
|
||||
|
||||
@ -445,6 +446,7 @@ void DIALOG_PLOT_SCHEMATIC::OnPlotAll( wxCommandEvent& event )
|
||||
{
|
||||
m_job->m_blackAndWhite = !getModeColor();
|
||||
m_job->m_useBackgroundColor = m_plotBackgroundColor->GetValue();
|
||||
m_job->m_minPenWidth = m_defaultLineWidth.GetIntValue();
|
||||
m_job->m_HPGLPenSize = m_penWidth.GetDoubleValue();
|
||||
|
||||
// m_job->m_HPGLPaperSizeSelect = m_HPGLPaperSizeSelect;
|
||||
|
@ -264,6 +264,7 @@ int EESCHEMA_JOBS_HANDLER::JobExportPlot( JOB* aJob )
|
||||
std::unique_ptr<SCH_RENDER_SETTINGS> renderSettings = std::make_unique<SCH_RENDER_SETTINGS>();
|
||||
InitRenderSettings( renderSettings.get(), aPlotJob->m_theme, sch, aPlotJob->m_drawingSheet );
|
||||
renderSettings->SetDefaultFont( aPlotJob->m_defaultFont );
|
||||
renderSettings->SetMinPenWidth( aPlotJob->m_minPenWidth );
|
||||
|
||||
std::unique_ptr<SCH_PLOTTER> schPlotter = std::make_unique<SCH_PLOTTER>( sch );
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user