Commit 6e78a592 authored by Dick Hollenbeck's avatar Dick Hollenbeck
Browse files

more amazing free eagle_plugin work

parent afdf5258
Loading
Loading
Loading
Loading
+5 −5
Original line number Original line Diff line number Diff line
@@ -84,8 +84,6 @@ MODULE::MODULE( BOARD* parent ) :
MODULE::MODULE( const MODULE& aModule ) :
MODULE::MODULE( const MODULE& aModule ) :
    BOARD_ITEM( aModule )
    BOARD_ITEM( aModule )
{
{
    BOARD_ITEM* newItem;

    m_Pos = aModule.m_Pos;
    m_Pos = aModule.m_Pos;
    m_LibRef = aModule.m_LibRef;
    m_LibRef = aModule.m_LibRef;
    m_Layer  = aModule.m_Layer;
    m_Layer  = aModule.m_Layer;
@@ -116,7 +114,7 @@ MODULE::MODULE( const MODULE& aModule ) :
    m_Value->SetParent( this );
    m_Value->SetParent( this );


    // Copy auxiliary data: Pads
    // Copy auxiliary data: Pads
    m_Pads.DeleteAll();
    // m_Pads.DeleteAll();


    for( D_PAD* pad = aModule.m_Pads;  pad;  pad = pad->Next() )
    for( D_PAD* pad = aModule.m_Pads;  pad;  pad = pad->Next() )
    {
    {
@@ -126,10 +124,12 @@ MODULE::MODULE( const MODULE& aModule ) :
    }
    }


    // Copy auxiliary data: Drawings
    // Copy auxiliary data: Drawings
    m_Drawings.DeleteAll();
    // m_Drawings.DeleteAll();


    for( BOARD_ITEM* item = aModule.m_Drawings;  item;  item = item->Next() )
    for( BOARD_ITEM* item = aModule.m_Drawings;  item;  item = item->Next() )
    {
    {
        BOARD_ITEM* newItem;

        switch( item->Type() )
        switch( item->Type() )
        {
        {
        case PCB_MODULE_TEXT_T:
        case PCB_MODULE_TEXT_T:
@@ -146,7 +146,7 @@ MODULE::MODULE( const MODULE& aModule ) :
    }
    }


    // Copy auxiliary data: 3D_Drawings info
    // Copy auxiliary data: 3D_Drawings info
    m_3D_Drawings.DeleteAll();
    // m_3D_Drawings.DeleteAll();


    for( S3D_MASTER* item = aModule.m_3D_Drawings;  item;  item = item->Next() )
    for( S3D_MASTER* item = aModule.m_3D_Drawings;  item;  item = item->Next() )
    {
    {
+3 −1
Original line number Original line Diff line number Diff line
@@ -100,6 +100,7 @@ public:
    D_PAD( MODULE* parent );
    D_PAD( MODULE* parent );


    // Do not create a copy constructor.  The one generated by the compiler is adequate.
    // Do not create a copy constructor.  The one generated by the compiler is adequate.
    // D_PAD( const D_PAD& o );


    void Copy( D_PAD* source );
    void Copy( D_PAD* source );


@@ -478,7 +479,8 @@ 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;
    ZoneConnection m_ZoneConnection;
    int m_ThermalWidth, m_ThermalGap;
    int         m_ThermalWidth;
    int         m_ThermalGap;
};
};


#endif  // PAD_H_
#endif  // PAD_H_
+289 −131

File changed.

Preview size limit exceeded, changes collapsed.

+24 −3
Original line number Original line Diff line number Diff line
@@ -34,13 +34,30 @@


#include <boost/property_tree/ptree_fwd.hpp>
#include <boost/property_tree/ptree_fwd.hpp>
#include <boost/ptr_container/ptr_map.hpp>
#include <boost/ptr_container/ptr_map.hpp>
#include <time.h>
#include <map>




class MODULE;
class MODULE;
typedef boost::ptr_map< std::string, MODULE >   MODULE_MAP;
typedef boost::ptr_map< std::string, MODULE >   MODULE_MAP;




struct ENET
{
    int         netcode;
    std::string netname;

    ENET( int aNetCode, const std::string& aNetName ) :
        netcode( aNetCode ),
        netname( aNetName )
    {}

    ENET() :
        netcode( 0 )
    {}
};

typedef std::map< std::string, ENET >           NET_MAP;

/*
/*
#include
#include
namespace boost {
namespace boost {
@@ -79,6 +96,9 @@ public:


    BOARD* Load( const wxString& aFileName, BOARD* aAppendToMe,  PROPERTIES* aProperties = NULL );
    BOARD* Load( const wxString& aFileName, BOARD* aAppendToMe,  PROPERTIES* aProperties = NULL );


    const wxString& GetFileExtension() const;

/*
    void Save( const wxString& aFileName, BOARD* aBoard, PROPERTIES* aProperties = NULL );
    void Save( const wxString& aFileName, BOARD* aBoard, PROPERTIES* aProperties = NULL );


    wxArrayString FootprintEnumerate( const wxString& aLibraryPath, PROPERTIES* aProperties = NULL);
    wxArrayString FootprintEnumerate( const wxString& aLibraryPath, PROPERTIES* aProperties = NULL);
@@ -94,8 +114,7 @@ public:
    void FootprintLibDelete( const wxString& aLibraryPath, PROPERTIES* aProperties = NULL );
    void FootprintLibDelete( const wxString& aLibraryPath, PROPERTIES* aProperties = NULL );


    bool IsFootprintLibWritable( const wxString& aLibraryPath );
    bool IsFootprintLibWritable( const wxString& aLibraryPath );

*/
    const wxString& GetFileExtension() const;


    //-----</PUBLIC PLUGIN API>-------------------------------------------------
    //-----</PUBLIC PLUGIN API>-------------------------------------------------


@@ -106,6 +125,8 @@ public:


private:
private:


    NET_MAP         m_pads_to_nets;

    MODULE_MAP      m_templates;    ///< is part of a MODULE factory that operates
    MODULE_MAP      m_templates;    ///< is part of a MODULE factory that operates
                                    ///< using copy construction.
                                    ///< using copy construction.
                                    ///< lookup key is libname.packagename
                                    ///< lookup key is libname.packagename
+3 −1
Original line number Original line Diff line number Diff line
@@ -1892,7 +1892,8 @@ void LEGACY_PLUGIN::loadTrackList( TRACK* aInsertBeforeMe, int aStructType )
    {
    {
        // read two lines per loop iteration, each loop is one TRACK or VIA
        // read two lines per loop iteration, each loop is one TRACK or VIA
        // example first line:
        // example first line:
        // "Po 0 23994 28800 24400 28800 150 -1\r\n"
        // e.g. "Po 0 23994 28800 24400 28800 150 -1"  for a track
        // e.g. "Po 3 21086 17586 21086 17586 180 -1"  for a via (uses sames start and end)


        const char* data;
        const char* data;
        char* line = m_reader->Line();
        char* line = m_reader->Line();
@@ -1943,6 +1944,7 @@ void LEGACY_PLUGIN::loadTrackList( TRACK* aInsertBeforeMe, int aStructType )
        int         layer, type, flags, net_code;
        int         layer, type, flags, net_code;


        // parse the 2nd line to determine the type of object
        // parse the 2nd line to determine the type of object
        // e.g. "De 15 1 7 0 0"   for a via
        sscanf( line + SZ( "De" ), " %d %d %d %lX %X", &layer, &type, &net_code, &timeStamp, &flags );
        sscanf( line + SZ( "De" ), " %d %d %d %lX %X", &layer, &type, &net_code, &timeStamp, &flags );


        if( aStructType==PCB_TRACE_T && type==1 )
        if( aStructType==PCB_TRACE_T && type==1 )