Add Gerber job file writer in Pcbnew, and a basic reader in Gerbview. Currently disabled

Fix also very minor issues in Gerbview
This commit is contained in:
jean-pierre charras
2017-08-30 11:04:33 +02:00
parent 2e4c22f718
commit 50164e9968
30 changed files with 2134 additions and 78 deletions
+11 -7
View File
@@ -82,6 +82,7 @@ PCB_PLOT_PARAMS::PCB_PLOT_PARAMS()
m_useGerberProtelExtensions = false;
m_useGerberAttributes = false;
m_includeGerberNetlistInfo = false;
m_createGerberJobFile = false;
m_gerberPrecision = gbrDefaultPrecision;
m_excludeEdgeLayer = true;
m_lineWidth = g_DrawDefaultLineThickness;
@@ -146,14 +147,11 @@ void PCB_PLOT_PARAMS::Format( OUTPUTFORMATTER* aFormatter,
aFormatter->Print( aNestLevel+1, "(%s %s)\n", getTokenName( T_usegerberextensions ),
m_useGerberProtelExtensions ? trueStr : falseStr );
if( m_useGerberAttributes ) // save this option only if active,
// to avoid incompatibility with older Pcbnew version
{
aFormatter->Print( aNestLevel+1, "(%s %s)\n", getTokenName( T_usegerberattributes ), trueStr );
aFormatter->Print( aNestLevel+1, "(%s %s)\n", getTokenName( T_usegerberattributes ), trueStr );
if( GetIncludeGerberNetlistInfo() )
aFormatter->Print( aNestLevel+1, "(%s %s)\n", getTokenName( T_usegerberadvancedattributes ), trueStr );
}
aFormatter->Print( aNestLevel+1, "(%s %s)\n", getTokenName( T_usegerberadvancedattributes ), trueStr );
aFormatter->Print( aNestLevel+1, "(%s %s)\n", getTokenName( T_creategerberjobfile ), trueStr );
if( m_gerberPrecision != gbrDefaultPrecision ) // save this option only if it is not the default value,
// to avoid incompatibility with older Pcbnew version
@@ -228,6 +226,8 @@ bool PCB_PLOT_PARAMS::IsSameAs( const PCB_PLOT_PARAMS &aPcbPlotParams, bool aCom
return false;
if( m_useGerberAttributes && m_includeGerberNetlistInfo != aPcbPlotParams.m_includeGerberNetlistInfo )
return false;
if( m_createGerberJobFile != aPcbPlotParams.m_createGerberJobFile )
return false;
if( m_gerberPrecision != aPcbPlotParams.m_gerberPrecision )
return false;
if( m_excludeEdgeLayer != aPcbPlotParams.m_excludeEdgeLayer )
@@ -392,6 +392,10 @@ void PCB_PLOT_PARAMS_PARSER::Parse( PCB_PLOT_PARAMS* aPcbPlotParams )
aPcbPlotParams->m_includeGerberNetlistInfo = parseBool();
break;
case T_creategerberjobfile:
aPcbPlotParams->m_createGerberJobFile = parseBool();
break;
case T_gerberprecision:
aPcbPlotParams->m_gerberPrecision =
parseInt( gbrDefaultPrecision-1, gbrDefaultPrecision);