Commit 0f885e7f authored by jean-pierre charras's avatar jean-pierre charras
Browse files

3D viewer: Add more options, to show/hide technical layers.

parent 7a5f5cb0
Loading
Loading
Loading
Loading
+20 −6
Original line number Original line Diff line number Diff line
@@ -768,20 +768,34 @@ bool Is3DLayerEnabled( LAYER_NUM aLayer )
    // check the flags
    // check the flags
    switch( aLayer )
    switch( aLayer )
    {
    {
    case DRAW_N:
    case ADHESIVE_N_BACK:
        flg = g_Parm_3D_Visu.FL_DRAWINGS;
    case ADHESIVE_N_FRONT:
        flg = g_Parm_3D_Visu.FL_ADHESIVE;
        break;

    case SOLDERPASTE_N_BACK:
    case SOLDERPASTE_N_FRONT:
        flg = g_Parm_3D_Visu.FL_SOLDERPASTE;
        break;

    case SILKSCREEN_N_BACK:
    case SILKSCREEN_N_FRONT:
        flg = g_Parm_3D_Visu.FL_SILKSCREEN;
        break;
        break;


    case SOLDERMASK_N_BACK:
    case SOLDERMASK_N_FRONT:
        flg = g_Parm_3D_Visu.FL_SOLDERMASK;
        break;

    case DRAW_N:
    case COMMENT_N:
    case COMMENT_N:
        flg = g_Parm_3D_Visu.FL_COMMENTS;
        flg = g_Parm_3D_Visu.FL_COMMENTS;
        break;
        break;


    case ECO1_N:
    case ECO1_N:
        flg = g_Parm_3D_Visu.FL_ECO1;
        break;

    case ECO2_N:
    case ECO2_N:
        flg = g_Parm_3D_Visu.FL_ECO2;
        flg = g_Parm_3D_Visu.FL_ECO;
        break;
        break;


    default:
    default:
+41 −21
Original line number Original line Diff line number Diff line
@@ -51,10 +51,12 @@ static const wxString keyShowAxis( wxT( "ShowAxis" ) );
static const wxString   keyShowZones( wxT( "ShowZones" ) );
static const wxString   keyShowZones( wxT( "ShowZones" ) );
static const wxString   keyShowFootprints( wxT( "ShowFootprints" ) );
static const wxString   keyShowFootprints( wxT( "ShowFootprints" ) );
static const wxString   keyShowCopperThickness( wxT( "ShowCopperThickness" ) );
static const wxString   keyShowCopperThickness( wxT( "ShowCopperThickness" ) );
static const wxString   keyShowCommetsLayer( wxT( "ShowCommetsLayer" ) );
static const wxString   keyShowAdhesiveLayers( wxT( "ShowAdhesiveLayers" ) );
static const wxString   keyShowDrawingsLayer( wxT( "ShowDrawingsLayer" ) );
static const wxString   keyShowSilkScreenLayers( wxT( "ShowSilkScreenLayers" ) );
static const wxString   keyShowEco1Layer( wxT( "ShowEco1Layer" ) );
static const wxString   keyShowSolderMaskLayers( wxT( "ShowSolderMasLayers" ) );
static const wxString   keyShowEco2Layer( wxT( "ShowEco2Layer" ) );
static const wxString   keyShowSolderPasteLayers( wxT( "ShowSolderPasteLayers" ) );
static const wxString   keyShowCommentsLayer( wxT( "ShowCommentsLayers" ) );
static const wxString   keyShowEcoLayers( wxT( "ShowEcoLayers" ) );


BEGIN_EVENT_TABLE( EDA_3D_FRAME, wxFrame )
BEGIN_EVENT_TABLE( EDA_3D_FRAME, wxFrame )
EVT_ACTIVATE( EDA_3D_FRAME::OnActivate )
EVT_ACTIVATE( EDA_3D_FRAME::OnActivate )
@@ -62,6 +64,7 @@ EVT_ACTIVATE( EDA_3D_FRAME::OnActivate )
EVT_TOOL_RANGE( ID_ZOOM_IN, ID_ZOOM_PAGE, EDA_3D_FRAME::Process_Zoom )
EVT_TOOL_RANGE( ID_ZOOM_IN, ID_ZOOM_PAGE, EDA_3D_FRAME::Process_Zoom )
EVT_TOOL_RANGE( ID_START_COMMAND_3D, ID_END_COMMAND_3D,
EVT_TOOL_RANGE( ID_START_COMMAND_3D, ID_END_COMMAND_3D,
                EDA_3D_FRAME::Process_Special_Functions )
                EDA_3D_FRAME::Process_Special_Functions )
EVT_TOOL( ID_TOOL_SET_VISIBLE_ITEMS, EDA_3D_FRAME::Process_Special_Functions )
EVT_MENU( wxID_EXIT, EDA_3D_FRAME::Exit3DFrame )
EVT_MENU( wxID_EXIT, EDA_3D_FRAME::Exit3DFrame )
EVT_MENU( ID_MENU_SCREENCOPY_PNG, EDA_3D_FRAME::Process_Special_Functions )
EVT_MENU( ID_MENU_SCREENCOPY_PNG, EDA_3D_FRAME::Process_Special_Functions )
EVT_MENU( ID_MENU_SCREENCOPY_JPEG, EDA_3D_FRAME::Process_Special_Functions )
EVT_MENU( ID_MENU_SCREENCOPY_JPEG, EDA_3D_FRAME::Process_Special_Functions )
@@ -170,12 +173,13 @@ void EDA_3D_FRAME::GetSettings()
                      &prms.m_DrawFlags[prms.FL_USE_COPPER_THICKNESS],
                      &prms.m_DrawFlags[prms.FL_USE_COPPER_THICKNESS],
                      false );
                      false );
        config->Read( keyShowZones, &prms.m_DrawFlags[prms.FL_ZONE], true );
        config->Read( keyShowZones, &prms.m_DrawFlags[prms.FL_ZONE], true );
        config->Read( keyShowCommetsLayer, &prms.m_DrawFlags[prms.FL_COMMENTS], true );
        config->Read( keyShowAdhesiveLayers, &prms.m_DrawFlags[prms.FL_ADHESIVE], true );
        config->Read( keyShowDrawingsLayer, &prms.m_DrawFlags[prms.FL_DRAWINGS], true );
        config->Read( keyShowSilkScreenLayers, &prms.m_DrawFlags[prms.FL_SILKSCREEN], true );
        config->Read( keyShowEco1Layer, &prms.m_DrawFlags[prms.FL_ECO1], true );
        config->Read( keyShowSolderMaskLayers, &prms.m_DrawFlags[prms.FL_SOLDERMASK], true );
        config->Read( keyShowEco2Layer, &prms.m_DrawFlags[prms.FL_ECO2], true );
        config->Read( keyShowSolderPasteLayers, &prms.m_DrawFlags[prms.FL_SOLDERPASTE], true );
        config->Read( keyShowCommentsLayer, &prms.m_DrawFlags[prms.FL_COMMENTS], true );
        config->Read( keyShowEcoLayers, &prms.m_DrawFlags[prms.FL_ECO], true );
    }
    }

}
}




@@ -195,10 +199,12 @@ void EDA_3D_FRAME::SaveSettings()
    config->Write( keyShowFootprints, prms.m_DrawFlags[prms.FL_MODULE] );
    config->Write( keyShowFootprints, prms.m_DrawFlags[prms.FL_MODULE] );
    config->Write( keyShowCopperThickness, prms.m_DrawFlags[prms.FL_USE_COPPER_THICKNESS] );
    config->Write( keyShowCopperThickness, prms.m_DrawFlags[prms.FL_USE_COPPER_THICKNESS] );
    config->Write( keyShowZones, prms.m_DrawFlags[prms.FL_ZONE] );
    config->Write( keyShowZones, prms.m_DrawFlags[prms.FL_ZONE] );
    config->Write( keyShowCommetsLayer, prms.m_DrawFlags[prms.FL_COMMENTS] );
    config->Write( keyShowAdhesiveLayers, prms.m_DrawFlags[prms.FL_ADHESIVE] );
    config->Write( keyShowDrawingsLayer, prms.m_DrawFlags[prms.FL_DRAWINGS] );
    config->Write( keyShowSilkScreenLayers, prms.m_DrawFlags[prms.FL_SILKSCREEN] );
    config->Write( keyShowEco1Layer, prms.m_DrawFlags[prms.FL_ECO1] );
    config->Write( keyShowSolderMaskLayers, prms.m_DrawFlags[prms.FL_SOLDERMASK] );
    config->Write( keyShowEco2Layer, prms.m_DrawFlags[prms.FL_ECO2] );
    config->Write( keyShowSolderPasteLayers, prms.m_DrawFlags[prms.FL_SOLDERPASTE] );
    config->Write( keyShowCommentsLayer, prms.m_DrawFlags[prms.FL_COMMENTS] );
    config->Write( keyShowEcoLayers, prms.m_DrawFlags[prms.FL_ECO] );


    if( IsIconized() )
    if( IsIconized() )
        return;
        return;
@@ -286,6 +292,10 @@ void EDA_3D_FRAME::Process_Special_Functions( wxCommandEvent& event )


    switch( id )
    switch( id )
    {
    {
    case ID_TOOL_SET_VISIBLE_ITEMS:
        Install_3D_ViewOptionDialog( event );
        break;

    case ID_RELOAD3D_BOARD:
    case ID_RELOAD3D_BOARD:
        NewDisplay();
        NewDisplay();
        return;
        return;
@@ -365,23 +375,33 @@ void EDA_3D_FRAME::Process_Special_Functions( wxCommandEvent& event )
        NewDisplay();
        NewDisplay();
        return;
        return;


    case ID_MENU3D_COMMENTS_ONOFF:
    case ID_MENU3D_ADHESIVE_ONOFF:
        g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_COMMENTS] = isChecked;
        g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ADHESIVE] = isChecked;
        NewDisplay();
        NewDisplay();
        return;
        return;


    case ID_MENU3D_DRAWINGS_ONOFF:
    case ID_MENU3D_SILKSCREEN_ONOFF:
        g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_DRAWINGS] = isChecked;
        g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_SILKSCREEN] = isChecked;
        NewDisplay();
        NewDisplay();
        return;
        return;


    case ID_MENU3D_ECO1_ONOFF:
    case ID_MENU3D_SOLDER_MASK_ONOFF:
        g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ECO1] = isChecked;
        g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_SOLDERMASK] = isChecked;
        NewDisplay();
        return;

    case ID_MENU3D_SOLDER_PASTE_ONOFF:
        g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_SOLDERPASTE] = isChecked;
        NewDisplay();
        return;

    case ID_MENU3D_COMMENTS_ONOFF:
        g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_COMMENTS] = isChecked;
        NewDisplay();
        NewDisplay();
        return;
        return;


    case ID_MENU3D_ECO2_ONOFF:
    case ID_MENU3D_ECO_ONOFF:
        g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ECO2] = isChecked;
        g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ECO] = isChecked;
        NewDisplay();
        NewDisplay();
        return;
        return;


+54 −51
Original line number Original line Diff line number Diff line
@@ -63,6 +63,12 @@ void EDA_3D_FRAME::ReCreateHToolbar()
#endif
#endif


    m_HToolBar->AddSeparator();
    m_HToolBar->AddSeparator();

    m_HToolBar->AddTool( ID_TOOL_SET_VISIBLE_ITEMS, wxEmptyString,
                         KiBitmap( read_setup_xpm ),
                         _( "Set display options, and some layers visibility" ) );
    m_HToolBar->AddSeparator();

    m_HToolBar->AddTool( ID_ZOOM_IN, wxEmptyString, KiBitmap( zoom_in_xpm ),
    m_HToolBar->AddTool( ID_ZOOM_IN, wxEmptyString, KiBitmap( zoom_in_xpm ),
                         _( "Zoom in" ) );
                         _( "Zoom in" ) );


@@ -132,13 +138,6 @@ void EDA_3D_FRAME::ReCreateVToolbar()


void EDA_3D_FRAME::ReCreateMenuBar()
void EDA_3D_FRAME::ReCreateMenuBar()
{
{
    bool full_options = true;

    // If called from the display frame of CvPcb, only some options are relevant
    if( Parent()->GetName() == wxT( "CmpFrame" ) ) {
        full_options = false;
    }

    wxMenuBar* menuBar   = new wxMenuBar;
    wxMenuBar* menuBar   = new wxMenuBar;
    wxMenu*    fileMenu  = new wxMenu;
    wxMenu*    fileMenu  = new wxMenu;
    wxMenu*    prefsMenu = new wxMenu;
    wxMenu*    prefsMenu = new wxMenu;
@@ -153,6 +152,7 @@ void EDA_3D_FRAME::ReCreateMenuBar()
    fileMenu->AppendSeparator();
    fileMenu->AppendSeparator();
    fileMenu->Append( ID_TOOL_SCREENCOPY_TOCLIBBOARD, _( "Copy 3D Image to Clipboard" ) );
    fileMenu->Append( ID_TOOL_SCREENCOPY_TOCLIBBOARD, _( "Copy 3D Image to Clipboard" ) );
#endif
#endif

    fileMenu->AppendSeparator();
    fileMenu->AppendSeparator();
    fileMenu->Append( wxID_EXIT, _( "&Exit" ) );
    fileMenu->Append( wxID_EXIT, _( "&Exit" ) );


@@ -166,9 +166,18 @@ void EDA_3D_FRAME::ReCreateMenuBar()
            _( "Show 3D &Axis" ), KiBitmap( axis3d_front_xpm ), wxITEM_CHECK );
            _( "Show 3D &Axis" ), KiBitmap( axis3d_front_xpm ), wxITEM_CHECK );
    item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_AXIS]);
    item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_AXIS]);


    // Creates grid menu
    wxMenu * gridlistMenu = new wxMenu;
    item = AddMenuItem( prefsMenu, gridlistMenu, ID_MENU3D_GRID,
           _( "3D Grid" ), KiBitmap( grid_xpm ) );
    gridlistMenu->Append( ID_MENU3D_GRID_NOGRID, _( "No 3D Grid" ), wxEmptyString, true );
    gridlistMenu->Check( ID_MENU3D_GRID_NOGRID, true );

    gridlistMenu->Append( ID_MENU3D_GRID_10_MM, _( "3D Grid 10 mm" ), wxEmptyString, true );
    gridlistMenu->Append( ID_MENU3D_GRID_5_MM, _( "3D Grid 5 mm" ), wxEmptyString, true );
    gridlistMenu->Append( ID_MENU3D_GRID_2P5_MM, _( "3D Grid 2.5 mm" ), wxEmptyString, true );
    gridlistMenu->Append( ID_MENU3D_GRID_1_MM, _( "3D Grid 1 mm" ), wxEmptyString, true );


    if( full_options )
    {
    item = AddMenuItem( prefsMenu, ID_MENU3D_USE_COPPER_THICKNESS,
    item = AddMenuItem( prefsMenu, ID_MENU3D_USE_COPPER_THICKNESS,
           _( "Show Copper Thickness" ), KiBitmap( use_3D_copper_thickness_xpm ), wxITEM_CHECK );
           _( "Show Copper Thickness" ), KiBitmap( use_3D_copper_thickness_xpm ), wxITEM_CHECK );
    item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_USE_COPPER_THICKNESS]);
    item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_USE_COPPER_THICKNESS]);
@@ -181,35 +190,29 @@ void EDA_3D_FRAME::ReCreateMenuBar()
           _( "Show Zone &Filling" ), KiBitmap( add_zone_xpm ), wxITEM_CHECK );
           _( "Show Zone &Filling" ), KiBitmap( add_zone_xpm ), wxITEM_CHECK );
    item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ZONE]);
    item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ZONE]);


        // Creates grid menu
    item = AddMenuItem( prefsMenu, ID_MENU3D_ADHESIVE_ONOFF,
        wxMenu * gridlistMenu = new wxMenu;
           _( "Show &Adhesive Layers" ), KiBitmap( tools_xpm ), wxITEM_CHECK );
        item = AddMenuItem( prefsMenu, gridlistMenu, ID_MENU3D_GRID,
    item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ADHESIVE]);
               _( "3D Grid" ), KiBitmap( grid_xpm ) );
        gridlistMenu->Append( ID_MENU3D_GRID_NOGRID, _( "No 3D Grid" ), wxEmptyString, true );
        gridlistMenu->Check( ID_MENU3D_GRID_NOGRID, true );


        gridlistMenu->Append( ID_MENU3D_GRID_10_MM, _( "3D Grid 10 mm" ), wxEmptyString, true );
    item = AddMenuItem( prefsMenu, ID_MENU3D_SILKSCREEN_ONOFF,
        gridlistMenu->Append( ID_MENU3D_GRID_5_MM, _( "3D Grid 5 mm" ), wxEmptyString, true );
           _( "Show &Silkscreen Layer" ), KiBitmap( add_text_xpm ), wxITEM_CHECK );
        gridlistMenu->Append( ID_MENU3D_GRID_2P5_MM, _( "3D Grid 2.5 mm" ), wxEmptyString, true );
    item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_SILKSCREEN]);
        gridlistMenu->Append( ID_MENU3D_GRID_1_MM, _( "3D Grid 1 mm" ), wxEmptyString, true );

        item = AddMenuItem( prefsMenu, ID_MENU3D_COMMENTS_ONOFF,
               _( "Show &Comments Layer" ), KiBitmap( edit_sheet_xpm ), wxITEM_CHECK );
        item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_COMMENTS]);


        item = AddMenuItem( prefsMenu, ID_MENU3D_DRAWINGS_ONOFF,
    item = AddMenuItem( prefsMenu, ID_MENU3D_SOLDER_MASK_ONOFF,
               _( "Show &Drawings Layer" ), KiBitmap( add_polygon_xpm ), wxITEM_CHECK );
           _( "Show Solder &Mask Layers" ), KiBitmap( pads_mask_layers_xpm ), wxITEM_CHECK );
        item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_DRAWINGS]);
    item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_SOLDERMASK]);


        item = AddMenuItem( prefsMenu, ID_MENU3D_ECO1_ONOFF,
    item = AddMenuItem( prefsMenu, ID_MENU3D_SOLDER_PASTE_ONOFF,
               _( "Show Eco&1 Layer" ), KiBitmap( tools_xpm ), wxITEM_CHECK );
           _( "Show Solder &Paste Layers" ), KiBitmap( pads_mask_layers_xpm ), wxITEM_CHECK );
        item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ECO1]);
    item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_SOLDERPASTE]);


        item = AddMenuItem( prefsMenu, ID_MENU3D_ECO2_ONOFF,
    item = AddMenuItem( prefsMenu, ID_MENU3D_COMMENTS_ONOFF,
               _( "Show Eco&2 Layer" ), KiBitmap( tools_xpm ), wxITEM_CHECK );
           _( "Show &Comments and Drawings Layer" ), KiBitmap( edit_sheet_xpm ), wxITEM_CHECK );
        item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ECO2]);
    item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_COMMENTS]);


    }
    item = AddMenuItem( prefsMenu, ID_MENU3D_ECO_ONOFF,
           _( "Show &Eco Layers" ), KiBitmap( edit_sheet_xpm ), wxITEM_CHECK );
    item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ECO]);


    SetMenuBar( menuBar );
    SetMenuBar( menuBar );
}
}
+1 −0
Original line number Original line Diff line number Diff line
@@ -115,6 +115,7 @@ private:
    void On3DGridSelection( wxCommandEvent& event );
    void On3DGridSelection( wxCommandEvent& event );
    void Process_Zoom( wxCommandEvent& event );
    void Process_Zoom( wxCommandEvent& event );
    void OnActivate( wxActivateEvent& event );
    void OnActivate( wxActivateEvent& event );
    void Install_3D_ViewOptionDialog( wxCommandEvent& event );


    // initialisation
    // initialisation
    void ReCreateMenuBar();
    void ReCreateMenuBar();
+7 −3
Original line number Original line Diff line number Diff line
@@ -33,12 +33,16 @@ enum id_3dview_frm
    ID_MENU3D_AXIS_ONOFF,
    ID_MENU3D_AXIS_ONOFF,
    ID_MENU3D_MODULE_ONOFF,
    ID_MENU3D_MODULE_ONOFF,
    ID_MENU3D_ZONE_ONOFF,
    ID_MENU3D_ZONE_ONOFF,
    ID_MENU3D_DRAWINGS_ONOFF,
    ID_MENU3D_ADHESIVE_ONOFF,
    ID_MENU3D_SILKSCREEN_ONOFF,
    ID_MENU3D_SOLDER_PASTE_ONOFF,
    ID_MENU3D_SOLDER_MASK_ONOFF,
    ID_MENU3D_COMMENTS_ONOFF,
    ID_MENU3D_COMMENTS_ONOFF,
    ID_MENU3D_ECO1_ONOFF,
    ID_MENU3D_ECO_ONOFF,
    ID_MENU3D_ECO2_ONOFF,
    ID_END_COMMAND_3D,
    ID_END_COMMAND_3D,


    ID_TOOL_SET_VISIBLE_ITEMS,

    ID_MENU3D_GRID,
    ID_MENU3D_GRID,
    ID_MENU3D_GRID_NOGRID,
    ID_MENU3D_GRID_NOGRID,
    ID_MENU3D_GRID_10_MM,
    ID_MENU3D_GRID_10_MM,
Loading