Commit 7c5feb61 authored by charras's avatar charras
Browse files

pcbnew: insulated islands in copper pour removed

parent 2ffa0897
Loading
Loading
Loading
Loading
+12 −0
Original line number Original line Diff line number Diff line
@@ -5,6 +5,18 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with
Please add newer entries at the top, list the date and your name with
email address.
email address.


2008-oct-11 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+pcbnew:
    More about copper zones filled without grid (by polygons)
    Currently for tests only (work in progress).
    now working
        thermal reliefs.
        texts on copper zones.
        Removing insulated copper islands.
    currently : not implemented:
        trapezoidal pads

2008-oct-07 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
2008-oct-07 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
================================================================================
+pcbnew:
+pcbnew:
+1 −1
Original line number Original line Diff line number Diff line
@@ -570,7 +570,7 @@ enum main_id {
	ID_POPUP_PCB_PLACE_ZONE_OUTLINES,
	ID_POPUP_PCB_PLACE_ZONE_OUTLINES,
	ID_POPUP_PCB_DRAG_ZONE_OUTLINE_SEGMENT,
	ID_POPUP_PCB_DRAG_ZONE_OUTLINE_SEGMENT,
	ID_POPUP_PCB_PLACE_DRAGGED_ZONE_OUTLINE_SEGMENT,
	ID_POPUP_PCB_PLACE_DRAGGED_ZONE_OUTLINE_SEGMENT,
	ID_POPUP_ZONE_UNUSED3,
	ID_POPUP_PCB_REMOVE_FILLED_AREAS,
	ID_POPUP_ZONE_UNUSED4,
	ID_POPUP_ZONE_UNUSED4,


	ID_POPUP_PCB_DELETE_MARKER,
	ID_POPUP_PCB_DELETE_MARKER,
+1 −0
Original line number Original line Diff line number Diff line
@@ -143,6 +143,7 @@ set(PCBNEW_SRCS
    zones_by_polygon.cpp
    zones_by_polygon.cpp
    zones_convert_brd_items_to_polygons.cpp
    zones_convert_brd_items_to_polygons.cpp
    zone_filling_algorithm.cpp
    zone_filling_algorithm.cpp
    zones_polygons_insulated_copper_islands.cpp
    zones_test_and_combine_areas.cpp
    zones_test_and_combine_areas.cpp
    )
    )


+7 −1
Original line number Original line Diff line number Diff line
@@ -101,6 +101,12 @@ public:


    EDA_Rect GetBoundingBox();
    EDA_Rect GetBoundingBox();


    /**
     * Function Test_For_Copper_Island_And_Remove__Insulated_Islands
     * Remove insulated copper islands found in m_FilledPolysList.
     * @param aPcb = the board to analyse
     */
    void Test_For_Copper_Island_And_Remove_Insulated_Islands( BOARD* aPcb );


    /**
    /**
     * Function DrawWhileCreateOutline
     * Function DrawWhileCreateOutline
+17 −0
Original line number Original line Diff line number Diff line
@@ -68,6 +68,7 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
    case ID_POPUP_PCB_STOP_CURRENT_EDGE_ZONE:
    case ID_POPUP_PCB_STOP_CURRENT_EDGE_ZONE:
    case ID_POPUP_PCB_DELETE_ZONE_LAST_CREATED_CORNER:
    case ID_POPUP_PCB_DELETE_ZONE_LAST_CREATED_CORNER:
    case ID_POPUP_PCB_FILL_ALL_ZONES:
    case ID_POPUP_PCB_FILL_ALL_ZONES:
    case ID_POPUP_PCB_REMOVE_FILLED_AREAS:
    case ID_POPUP_PCB_PLACE_ZONE_CORNER:
    case ID_POPUP_PCB_PLACE_ZONE_CORNER:
    case ID_POPUP_PCB_PLACE_ZONE_OUTLINES:
    case ID_POPUP_PCB_PLACE_ZONE_OUTLINES:
    case ID_POPUP_PCB_EDIT_ZONE_PARAMS:
    case ID_POPUP_PCB_EDIT_ZONE_PARAMS:
@@ -543,6 +544,22 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event )
        Fill_All_Zones( &dc );
        Fill_All_Zones( &dc );
        break;
        break;
    
    
    case ID_POPUP_PCB_REMOVE_FILLED_AREAS: // Remove all zones :
        if( m_Pcb->m_Zone )
        {
            m_Pcb->m_Zone->DeleteStructList();
            m_Pcb->m_Zone = NULL;
            m_Pcb->m_NbSegmZone = 0;
        }
        for( int ii = 0; ii < m_Pcb->GetAreaCount(); ii++ )
        {
            ZONE_CONTAINER* zone_container = m_Pcb->GetArea( ii );
            zone_container->m_FilledPolysList.clear();;
        }
        GetScreen()->SetModify();
        DrawPanel->Refresh();
        break;

    case ID_POPUP_PCB_FILL_ZONE:
    case ID_POPUP_PCB_FILL_ZONE:
        DrawPanel->MouseToCursorSchema();
        DrawPanel->MouseToCursorSchema();
        Fill_Zone( &dc, (ZONE_CONTAINER*) GetCurItem() );
        Fill_Zone( &dc, (ZONE_CONTAINER*) GetCurItem() );
Loading