genDrillMapFile: reduce the pen width used to plot oval shapes (better look)
From master branch
This commit is contained in:
parent
d13179f9e4
commit
87c8688f70
|
@ -113,7 +113,7 @@ void PSLIKE_PLOTTER::FlashPadOval( const VECTOR2I& aPadPos, const VECTOR2I& aSiz
|
||||||
if( aTraceMode == FILLED )
|
if( aTraceMode == FILLED )
|
||||||
ThickSegment( a + aPadPos, b + aPadPos, size.x, aTraceMode, nullptr );
|
ThickSegment( a + aPadPos, b + aPadPos, size.x, aTraceMode, nullptr );
|
||||||
else
|
else
|
||||||
sketchOval( aPadPos, size, orient, -1 );
|
sketchOval( aPadPos, size, orient, USE_DEFAULT_LINE_WIDTH );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -55,9 +55,31 @@ inline double diameter_in_mm( double ius )
|
||||||
|
|
||||||
|
|
||||||
// return a pen size to plot markers and having a readable shape
|
// return a pen size to plot markers and having a readable shape
|
||||||
inline int getMarkerBestPenSize( int aMarkerDiameter )
|
// clamped to be >= MIN_SIZE_MM to avoid too small line width
|
||||||
|
static int getMarkerBestPenSize( int aMarkerDiameter )
|
||||||
{
|
{
|
||||||
return aMarkerDiameter / 10;
|
int bestsize = aMarkerDiameter / 10;
|
||||||
|
|
||||||
|
const double MIN_SIZE_MM = 0.1;
|
||||||
|
bestsize = std::max( bestsize, pcbIUScale.mmToIU( MIN_SIZE_MM ) );
|
||||||
|
|
||||||
|
return bestsize;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// return a pen size to plot outlines for oval holes
|
||||||
|
inline int getSketchOvalBestPenSize()
|
||||||
|
{
|
||||||
|
const double SKETCH_LINE_WIDTH_MM = 0.1;
|
||||||
|
return pcbIUScale.mmToIU( SKETCH_LINE_WIDTH_MM );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// return a default pen size to plot items with no specific line thickness
|
||||||
|
inline int getDefaultPenSize()
|
||||||
|
{
|
||||||
|
const double DEFAULT_LINE_WIDTH_MM = 0.2;
|
||||||
|
return pcbIUScale.mmToIU( DEFAULT_LINE_WIDTH_MM );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -171,7 +193,7 @@ bool GENDRILL_WRITER_BASE::genDrillMapFile( const wxString& aFullFileName, PLOT_
|
||||||
plotter->SetColorMode( false );
|
plotter->SetColorMode( false );
|
||||||
|
|
||||||
KIGFX::PCB_RENDER_SETTINGS renderSettings;
|
KIGFX::PCB_RENDER_SETTINGS renderSettings;
|
||||||
renderSettings.SetDefaultPenWidth( pcbIUScale.mmToIU( 0.2 ) );
|
renderSettings.SetDefaultPenWidth( getDefaultPenSize() );
|
||||||
|
|
||||||
plotter->SetRenderSettings( &renderSettings );
|
plotter->SetRenderSettings( &renderSettings );
|
||||||
|
|
||||||
|
@ -474,7 +496,16 @@ bool GENDRILL_WRITER_BASE::plotDrillMarks( PLOTTER* aPlotter )
|
||||||
aPlotter->Marker( pos, hole.m_Hole_Diameter, hole.m_Tool_Reference - 1 );
|
aPlotter->Marker( pos, hole.m_Hole_Diameter, hole.m_Tool_Reference - 1 );
|
||||||
|
|
||||||
if( hole.m_Hole_Shape != 0 )
|
if( hole.m_Hole_Shape != 0 )
|
||||||
|
{
|
||||||
|
aPlotter->SetCurrentLineWidth( getSketchOvalBestPenSize() );
|
||||||
|
// FlashPadOval uses also the render settings default pen size, so we need
|
||||||
|
// to initialize it:
|
||||||
|
KIGFX::RENDER_SETTINGS* renderSettings = aPlotter->RenderSettings();
|
||||||
|
int curr_default_pensize = renderSettings->GetDefaultPenWidth();
|
||||||
|
renderSettings->SetDefaultPenWidth( getSketchOvalBestPenSize() );
|
||||||
aPlotter->FlashPadOval( pos, hole.m_Hole_Size, hole.m_Hole_Orient, SKETCH, nullptr );
|
aPlotter->FlashPadOval( pos, hole.m_Hole_Size, hole.m_Hole_Orient, SKETCH, nullptr );
|
||||||
|
renderSettings->SetDefaultPenWidth( curr_default_pensize );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
aPlotter->SetCurrentLineWidth( -1 );
|
aPlotter->SetCurrentLineWidth( -1 );
|
||||||
|
|
Loading…
Reference in New Issue