Commit a3f48bf2 authored by charras's avatar charras
Browse files

pcbnew Added: control of masks clearance. See changelog for more info

parent 1a4d2389
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -4,6 +4,24 @@ KiCad ChangeLog 2009
Please add newer entries at the top, list the date and your name with
email address.

2009-Nov-04 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++pcbnew
    Added: control of masks clearance
    - Solder mask clearance can be now defined at footprint and pad level
    - Solder paste clearance can be now defined as a global value
        and also at footprint and pad level.
        The clearance is defined by a constant value and a value proportional to the pad size.
        The final value is the sum of the 2 partial values
    Note: this is a work in progress:
        currently, the pad dialog is not finished and does not
        have an option to enter the mask values
    Planned:
        option to define a net clearance at pad level and footprint level,
        as an alternate value to the Netclasses values.
        this option could be useful to create fiducials, and for very small footprints.


2009-Nov-1 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++pcbnew
+39 −23
Original line number Diff line number Diff line
@@ -23,7 +23,11 @@ public:
    int    m_ViasMinDrill;                              // vias (not micro vias) min drill diameter
    int    m_MicroViasMinSize;                          // micro vias (not vias) min diameter
    int    m_MicroViasMinDrill;                         // micro vias (not vias) min drill diameter
    int    m_MaskMargin;                            // Solder mask margin
    // Global mask margins:
    int    m_SolderMaskMargin;                          // Solder mask margin
    int    m_SolderPasteMargin;                         // Solder paste margin absolute value
    double m_SolderPasteMarginRatio;                    // Solder pask margin ratio value of pad size
                                                        // The final margin is the sum of these 2 values
    int    m_LayerThickness;                            // Layer Thickness for 3D viewer

protected:
@@ -32,6 +36,7 @@ protected:
    int    m_VisibleElements;                       // Bit-mask for element category visibility

public:

    // Color options for screen display of the Printed Board:
    int m_LayerColor[32];                           // Layer colors (tracks and graphic items)

@@ -69,10 +74,12 @@ public:
    {
        if( aLayerIndex < 0 || aLayerIndex >= 32 ) //@@IMB: Altough Pcbnew uses only 29, Gerbview uses all 32 layers
            return false;

        // If a layer is disabled, it is automatically invisible
        return (bool) ( m_VisibleLayers & m_EnabledLayers & 1 << aLayerIndex );
    }


    /**
     * Function SetLayerVisibility
     * changes the visibility of a given layer
@@ -91,6 +98,7 @@ public:
        return m_VisibleElements;
    }


    /**
     * Function SetVisibleElements
     * changes the bit-mask of visible element categories
@@ -101,6 +109,7 @@ public:
        m_VisibleElements = aMask;
    }


    /**
     * Function IsElementVisible
     * tests whether a given element category is visible
@@ -114,6 +123,7 @@ public:
        return (bool) ( m_VisibleElements & 1 << aCategoryIndex );
    }


    /**
     * Function SetElementVisibility
     * changes the visibility of an element category
@@ -132,6 +142,7 @@ public:
        return m_EnabledLayers;
    }


    /**
     * Function SetEnabledLayers
     * changes the bit-mask of enabled layers
@@ -141,10 +152,12 @@ public:
    {
        // TODO; ensure consistency with m_CopperLayerCount
        m_EnabledLayers = aMask;

        // A disabled layer cannot be visible
        m_VisibleLayers &= aMask;
    }


    /**
     * Function IsLayerEnabled
     * tests whether a given layer is enabled
@@ -156,6 +169,7 @@ public:
        return (bool) ( m_EnabledLayers & 1 << aLayerIndex );
    }


    /**
     * Function GetCopperLayerCount
     * @return int - the number of neabled copper layers
@@ -165,6 +179,7 @@ public:
        return m_CopperLayerCount;
    }


    /**
     * Function SetCopperLayerCount
     * do what its name says...
@@ -175,4 +190,5 @@ public:


#endif

//  _BOARD_DESIGN_SETTING_H
+3 −4
Original line number Diff line number Diff line
@@ -287,9 +287,8 @@ public:
                            GRTraceMode     trace_mode );
    void         Genere_DXF( const wxString& FullFileName, int Layer, GRTraceMode trace_mode );
    void         Plot_Layer( PLOTTER* plotter, int Layer, GRTraceMode trace_mode );
    void         Plot_Standard_Layer( PLOTTER* plotter, int masque_layer,
                                      int garde, bool trace_via,
                                      GRTraceMode trace_mode );
    void         Plot_Standard_Layer( PLOTTER* aPlotter, int aLayerMask,
                                      bool aPlotVia, GRTraceMode aPlotMode );
    void         Plot_Serigraphie( PLOTTER* plotter, int masque_layer, GRTraceMode trace_mode );

    /** function PlotDrillMark
@@ -298,7 +297,7 @@ public:
     * redraw the drill mark on a pad or via, as a negative (i.e. white) shape in FILLED plot mode
     * @param aPlotter = the PLOTTER
     * @param aTraceMode = the mode of plot (FILLED, SKETCH)
     * @param aSmallDrillShape = true to plot a smalle drill shape, false to plot the actual drill shape
     * @param aSmallDrillShape = true to plot a small drill shape, false to plot the actual drill shape
     */
    void         PlotDrillMark( PLOTTER* aPlotter, GRTraceMode aTraceMode, bool aSmallDrillShape );

+0 −2
Original line number Diff line number Diff line
@@ -98,8 +98,6 @@ public:

    void        OnCloseWindow( wxCloseEvent& Event );
    void        OnSize( wxSizeEvent& event );
    void        OnPaint( wxPaintEvent& event );
    void        ReDraw( wxDC* DC );
    void        OnSashDrag( wxSashEvent& event );
    void        OnLoadProject( wxCommandEvent& event );
    void        OnSaveProject( wxCommandEvent& event );
+5 −20
Original line number Diff line number Diff line
@@ -281,21 +281,6 @@ void WinEDA_MainFrame::OnCloseWindow( wxCloseEvent& Event )
}


/**********************************************************/
void WinEDA_MainFrame::OnPaint( wxPaintEvent& event )
/**********************************************************/
{
    event.Skip();
}


/*******************************************/
void WinEDA_MainFrame::ReDraw( wxDC* DC )
/*******************************************/
{
}


void WinEDA_MainFrame::OnExit( wxCommandEvent& event )
{
    Close( true );
Loading