From 0ceb90dfe19812b4c06a93e1c61987c681d0e4e2 Mon Sep 17 00:00:00 2001 From: Cirilo Bernardo Date: Sun, 28 Dec 2014 10:09:35 -0500 Subject: [PATCH] Fix bug in IDF exporter when circles and arcs have zero radius. (fixes lp:1371656) --- pcbnew/exporters/export_idf.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/pcbnew/exporters/export_idf.cpp b/pcbnew/exporters/export_idf.cpp index 4d6debd5aa..683ad38c44 100644 --- a/pcbnew/exporters/export_idf.cpp +++ b/pcbnew/exporters/export_idf.cpp @@ -76,6 +76,10 @@ static void idf_export_outline( BOARD* aPcb, IDF3_BOARD& aIDFBoard ) { case S_SEGMENT: { + if( ( graphic->GetStart().x == graphic->GetEnd().x ) + && ( graphic->GetStart().y == graphic->GetEnd().y ) ) + break; + sp.x = graphic->GetStart().x * scale + offX; sp.y = -graphic->GetStart().y * scale + offY; ep.x = graphic->GetEnd().x * scale + offX; @@ -89,6 +93,10 @@ static void idf_export_outline( BOARD* aPcb, IDF3_BOARD& aIDFBoard ) case S_ARC: { + if( ( graphic->GetCenter().x == graphic->GetArcStart().x ) + && ( graphic->GetCenter().y == graphic->GetArcStart().y ) ) + break; + sp.x = graphic->GetCenter().x * scale + offX; sp.y = -graphic->GetCenter().y * scale + offY; ep.x = graphic->GetArcStart().x * scale + offX; @@ -102,6 +110,9 @@ static void idf_export_outline( BOARD* aPcb, IDF3_BOARD& aIDFBoard ) case S_CIRCLE: { + if( graphic->GetRadius() == 0 ) + break; + sp.x = graphic->GetCenter().x * scale + offX; sp.y = -graphic->GetCenter().y * scale + offY; ep.x = sp.x - graphic->GetRadius() * scale;