void ZONE_SETTINGS::ExportSetting( ZONE_CONTAINER& aTarget, bool aFullExport ) const { aTarget.SetFillMode( m_FillMode ); aTarget.SetZoneClearance( m_ZoneClearance ); aTarget.SetMinThickness( m_ZoneMinThickness ); aTarget.SetArcSegmentCount( m_ArcToSegmentsCount ); aTarget.SetThermalReliefGap( m_ThermalReliefGap ); aTarget.SetThermalReliefCopperBridge( m_ThermalReliefCopperBridge ); aTarget.SetPadConnection( m_PadConnection ); aTarget.SetCornerSmoothingType( m_cornerSmoothingType ); aTarget.SetCornerRadius( m_cornerRadius ); aTarget.SetIsKeepout( GetIsKeepout() ); aTarget.SetDoNotAllowCopperPour( GetDoNotAllowCopperPour() ); aTarget.SetDoNotAllowVias( GetDoNotAllowVias() ); aTarget.SetDoNotAllowTracks( GetDoNotAllowTracks() ); if( aFullExport ) { aTarget.SetPriority( m_ZonePriority ); aTarget.SetNet( m_NetcodeSelection ); aTarget.SetLayer( m_CurrentZone_Layer ); aTarget.Outline()->SetLayer( m_CurrentZone_Layer ); } // call SetHatch last, because hatch lines will be rebuilt, // using new parameters values aTarget.Outline()->SetHatch( m_Zone_HatchingStyle, Mils2iu( 20 ), true ); }
void PCB_POLYGON::AddToBoard() { int i = 0; if( m_outline.GetCount() > 0 ) { ZONE_CONTAINER* zone = new ZONE_CONTAINER( m_board ); m_board->Add( zone, ADD_APPEND ); zone->SetTimeStamp( m_timestamp ); zone->SetLayer( m_KiCadLayer ); zone->SetNetCode( m_netCode ); // add outline int outline_hatch = ZONE_CONTAINER::DIAGONAL_EDGE; for( i = 0; i < (int) m_outline.GetCount(); i++ ) { zone->AppendCorner( wxPoint( KiROUND( m_outline[i]->x ), KiROUND( m_outline[i]->y ) ), -1 ); } zone->SetZoneClearance( m_width ); zone->SetPriority( m_priority ); zone->SetHatch( outline_hatch, zone->GetDefaultHatchPitch(), true ); if ( m_objType == wxT( 'K' ) ) { zone->SetIsKeepout( true ); zone->SetDoNotAllowTracks( true ); zone->SetDoNotAllowVias( true ); zone->SetDoNotAllowCopperPour( true ); } else if( m_objType == wxT( 'C' ) ) { // convert cutouts to keepouts because standalone cutouts are not supported in KiCad zone->SetIsKeepout( true ); zone->SetDoNotAllowCopperPour( true ); } //if( m_filled ) // zone->BuildFilledPolysListData( m_board ); } }