diff --git a/pcbnew/router/pns_kicad_iface.cpp b/pcbnew/router/pns_kicad_iface.cpp index 33d301098e..b8993a7ac2 100644 --- a/pcbnew/router/pns_kicad_iface.cpp +++ b/pcbnew/router/pns_kicad_iface.cpp @@ -29,10 +29,7 @@ #include #include #include -#include - -#include -#include +#include #include #include @@ -805,8 +802,15 @@ bool PNS_KICAD_IFACE::syncZone( PNS::NODE* aWorld, ZONE_CONTAINER* aZone ) if( !poly.IsTriangulationUpToDate() ) { - wxFAIL_MSG( wxString::Format( "Zone triangulation failed for %s", - aZone->GetSelectMenuText() ) ); + wxString msg = wxString::Format( _( "Malformed keep-out zone at (%d, %d) " + "cannot be handled by the track layout tool.\n%s\n" + "Please verify it is not a self-intersecting polygon." ), + aZone->GetPosition().x, aZone->GetPosition().y, aZone->GetSelectMenuText() ); + + KI_DIALOG dlg( nullptr, msg ); + dlg.Type( KI_DIALOG::WARNING ).Title( _( "Malformed keep-out zone" ) ).DoNotShowCheckbox(); + dlg.ShowModal(); + return false; }