Commit b536b1cf authored by Marco Mattila's avatar Marco Mattila
Browse files

Add module and pad local parameters for pad-zone connections (thermal, solid etc.) in pcbnew.

parent bcd66579
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -68,6 +68,7 @@ MODULE::MODULE( BOARD* parent ) :
    m_LocalSolderMaskMargin  = 0;
    m_LocalSolderMaskMargin  = 0;
    m_LocalSolderPasteMargin = 0;
    m_LocalSolderPasteMargin = 0;
    m_LocalSolderPasteMarginRatio = 0.0;
    m_LocalSolderPasteMarginRatio = 0.0;
    m_ZoneConnection = UNDEFINED_CONNECTION; // Use zone setting by default


    m_Reference = new TEXTE_MODULE( this, TEXT_is_REFERENCE );
    m_Reference = new TEXTE_MODULE( this, TEXT_is_REFERENCE );


@@ -101,6 +102,7 @@ MODULE::MODULE( const MODULE& aModule ) :
    m_LocalSolderMaskMargin = aModule.m_LocalSolderMaskMargin;
    m_LocalSolderMaskMargin = aModule.m_LocalSolderMaskMargin;
    m_LocalSolderPasteMargin = aModule.m_LocalSolderPasteMargin;
    m_LocalSolderPasteMargin = aModule.m_LocalSolderPasteMargin;
    m_LocalSolderPasteMarginRatio = aModule.m_LocalSolderPasteMarginRatio;
    m_LocalSolderPasteMarginRatio = aModule.m_LocalSolderPasteMarginRatio;
    m_ZoneConnection = aModule.m_ZoneConnection;


    // Copy reference and value.
    // Copy reference and value.
    m_Reference = new TEXTE_MODULE( *aModule.m_Reference );
    m_Reference = new TEXTE_MODULE( *aModule.m_Reference );
@@ -216,6 +218,7 @@ void MODULE::Copy( MODULE* aModule )
    m_LocalSolderMaskMargin         = aModule->m_LocalSolderMaskMargin;
    m_LocalSolderMaskMargin         = aModule->m_LocalSolderMaskMargin;
    m_LocalSolderPasteMargin        = aModule->m_LocalSolderPasteMargin;
    m_LocalSolderPasteMargin        = aModule->m_LocalSolderPasteMargin;
    m_LocalSolderPasteMarginRatio   = aModule->m_LocalSolderPasteMarginRatio;
    m_LocalSolderPasteMarginRatio   = aModule->m_LocalSolderPasteMarginRatio;
    m_ZoneConnection                = aModule->m_ZoneConnection;


    // Copy reference and value.
    // Copy reference and value.
    m_Reference->Copy( aModule->m_Reference );
    m_Reference->Copy( aModule->m_Reference );
+6 −1
Original line number Original line Diff line number Diff line
@@ -38,7 +38,7 @@
#include <class_board_item.h>
#include <class_board_item.h>


#include <class_text_mod.h>
#include <class_text_mod.h>

#include "zones.h"


class LINE_READER;
class LINE_READER;
class EDA_3D_CANVAS;
class EDA_3D_CANVAS;
@@ -121,6 +121,8 @@ public:
                                                   ///< value of pad size
                                                   ///< value of pad size
    // The final margin is the sum of these 2 values
    // The final margin is the sum of these 2 values


    ZoneConnection m_ZoneConnection;

public:
public:
    MODULE( BOARD* parent );
    MODULE( BOARD* parent );


@@ -193,6 +195,9 @@ public:
    double GetLocalSolderPasteMarginRatio() const { return m_LocalSolderPasteMarginRatio; }
    double GetLocalSolderPasteMarginRatio() const { return m_LocalSolderPasteMarginRatio; }
    void SetLocalSolderPasteMarginRatio( double aRatio ) { m_LocalSolderPasteMarginRatio = aRatio; }
    void SetLocalSolderPasteMarginRatio( double aRatio ) { m_LocalSolderPasteMarginRatio = aRatio; }


    void SetZoneConnection( ZoneConnection aType ) { m_ZoneConnection = aType; }
    ZoneConnection GetZoneConnection() const { return m_ZoneConnection; }

    int GetAttributes() const { return m_Attributs; }
    int GetAttributes() const { return m_Attributs; }
    void SetAttributes( int aAttributes ) { m_Attributs = aAttributes; }
    void SetAttributes( int aAttributes ) { m_Attributs = aAttributes; }


+13 −0
Original line number Original line Diff line number Diff line
@@ -70,6 +70,7 @@ D_PAD::D_PAD( MODULE* parent ) :
    m_LocalSolderMaskMargin  = 0;
    m_LocalSolderMaskMargin  = 0;
    m_LocalSolderPasteMargin = 0;
    m_LocalSolderPasteMargin = 0;
    m_LocalSolderPasteMarginRatio = 0.0;
    m_LocalSolderPasteMarginRatio = 0.0;
    m_ZoneConnection = UNDEFINED_CONNECTION; // Use parent setting by default


    // set layers mask to default for a standard pad
    // set layers mask to default for a standard pad
    m_layerMask = PAD_STANDARD_DEFAULT_LAYERS;
    m_layerMask = PAD_STANDARD_DEFAULT_LAYERS;
@@ -303,6 +304,7 @@ void D_PAD::Copy( D_PAD* source )
    m_LocalSolderMaskMargin  = source->m_LocalSolderMaskMargin;
    m_LocalSolderMaskMargin  = source->m_LocalSolderMaskMargin;
    m_LocalSolderPasteMargin = source->m_LocalSolderPasteMargin;
    m_LocalSolderPasteMargin = source->m_LocalSolderPasteMargin;
    m_LocalSolderPasteMarginRatio = source->m_LocalSolderPasteMarginRatio;
    m_LocalSolderPasteMarginRatio = source->m_LocalSolderPasteMarginRatio;
    m_ZoneConnection = source->m_ZoneConnection;


    SetSubRatsnest( 0 );
    SetSubRatsnest( 0 );
    SetSubNet( 0 );
    SetSubNet( 0 );
@@ -440,6 +442,17 @@ wxSize D_PAD::GetSolderPasteMargin()
}
}




ZoneConnection D_PAD::GetZoneConnection() const
{
    MODULE* module = (MODULE*) GetParent();

    if( m_ZoneConnection == UNDEFINED_CONNECTION && module )
        return module->GetZoneConnection();
    else
        return m_ZoneConnection;
}


void D_PAD::DisplayInfo( EDA_DRAW_FRAME* frame )
void D_PAD::DisplayInfo( EDA_DRAW_FRAME* frame )
{
{
    MODULE*     module;
    MODULE*     module;
+5 −1
Original line number Original line Diff line number Diff line
@@ -36,7 +36,7 @@
#include <pad_shapes.h>
#include <pad_shapes.h>
#include <PolyLine.h>
#include <PolyLine.h>
#include <param_config.h>       // PARAM_CFG_ARRAY
#include <param_config.h>       // PARAM_CFG_ARRAY

#include "zones.h"


class LINE_READER;
class LINE_READER;
class EDA_3D_CANVAS;
class EDA_3D_CANVAS;
@@ -266,6 +266,9 @@ public:
     */
     */
    wxSize GetSolderPasteMargin();
    wxSize GetSolderPasteMargin();


    void SetZoneConnection( ZoneConnection aType ) { m_ZoneConnection = aType; }
    ZoneConnection GetZoneConnection() const;

    /* Reading and writing data on files */
    /* Reading and writing data on files */
    int ReadDescr( LINE_READER* aReader );
    int ReadDescr( LINE_READER* aReader );


@@ -530,6 +533,7 @@ private:


    double      m_LocalSolderPasteMarginRatio;  ///< Local solder mask margin ratio value of pad size
    double      m_LocalSolderPasteMarginRatio;  ///< Local solder mask margin ratio value of pad size
                                                ///< The final margin is the sum of these 2 values
                                                ///< The final margin is the sum of these 2 values
    ZoneConnection m_ZoneConnection;
};
};


#endif  // PAD_H_
#endif  // PAD_H_
+12 −2
Original line number Original line Diff line number Diff line
@@ -80,7 +80,7 @@ ZONE_CONTAINER::ZONE_CONTAINER( const ZONE_CONTAINER& aZone ) :
    m_FillMode = aZone.m_FillMode;               // Filling mode (segments/polygons)
    m_FillMode = aZone.m_FillMode;               // Filling mode (segments/polygons)
    m_priority = aZone.m_priority;
    m_priority = aZone.m_priority;
    m_ArcToSegmentsCount = aZone.m_ArcToSegmentsCount;
    m_ArcToSegmentsCount = aZone.m_ArcToSegmentsCount;
    m_PadOption = aZone.m_PadOption;
    m_PadConnection = aZone.m_PadConnection;
    m_ThermalReliefGap = aZone.m_ThermalReliefGap;
    m_ThermalReliefGap = aZone.m_ThermalReliefGap;
    m_ThermalReliefCopperBridge = aZone.m_ThermalReliefCopperBridge;
    m_ThermalReliefCopperBridge = aZone.m_ThermalReliefCopperBridge;
    m_FilledPolysList = aZone.m_FilledPolysList;
    m_FilledPolysList = aZone.m_FilledPolysList;
@@ -856,7 +856,7 @@ void ZONE_CONTAINER::Copy( ZONE_CONTAINER* src )
    m_ZoneMinThickness = src->m_ZoneMinThickness;
    m_ZoneMinThickness = src->m_ZoneMinThickness;
    m_FillMode = src->m_FillMode;               // Filling mode (segments/polygons)
    m_FillMode = src->m_FillMode;               // Filling mode (segments/polygons)
    m_ArcToSegmentsCount = src->m_ArcToSegmentsCount;
    m_ArcToSegmentsCount = src->m_ArcToSegmentsCount;
    m_PadOption = src->m_PadOption;
    m_PadConnection = src->m_PadConnection;
    m_ThermalReliefGap = src->m_ThermalReliefGap;
    m_ThermalReliefGap = src->m_ThermalReliefGap;
    m_ThermalReliefCopperBridge = src->m_ThermalReliefCopperBridge;
    m_ThermalReliefCopperBridge = src->m_ThermalReliefCopperBridge;
    m_Poly->m_HatchStyle = src->m_Poly->GetHatchStyle();
    m_Poly->m_HatchStyle = src->m_Poly->GetHatchStyle();
@@ -882,6 +882,16 @@ bool ZONE_CONTAINER::SetNetNameFromNetCode( void )
}
}




ZoneConnection ZONE_CONTAINER::GetPadConnection( D_PAD* aPad ) const
{
    if( aPad == NULL || aPad->GetZoneConnection() == UNDEFINED_CONNECTION )
        return m_PadConnection;
    else
        return aPad->GetZoneConnection();

}


wxString ZONE_CONTAINER::GetSelectMenuText() const
wxString ZONE_CONTAINER::GetSelectMenuText() const
{
{
    wxString text;
    wxString text;
Loading