diff --git a/common/plotters/GERBER_plotter.cpp b/common/plotters/GERBER_plotter.cpp index 73a040248e..d4b0826c96 100644 --- a/common/plotters/GERBER_plotter.cpp +++ b/common/plotters/GERBER_plotter.cpp @@ -1252,7 +1252,7 @@ void GERBER_PLOTTER::FlashPadCircle( const wxPoint& pos, int diametre, OUTLINE_M SetCurrentLineWidth( USE_DEFAULT_LINE_WIDTH ); - Circle( pos, diametre - m_currentPenWidth, FILL_T::NO_FILL, DO_NOT_SET_LINE_WIDTH ); + Circle( pos, diametre, FILL_T::NO_FILL, DO_NOT_SET_LINE_WIDTH ); } else { @@ -1372,10 +1372,8 @@ void GERBER_PLOTTER::FlashPadRect( const wxPoint& pos, const wxSize& aSize, formatNetAttribute( &gbr_metadata->m_NetlistMetadata ); SetCurrentLineWidth( USE_DEFAULT_LINE_WIDTH ); - Rect( wxPoint( pos.x - (size.x - GetCurrentLineWidth()) / 2, - pos.y - (size.y - GetCurrentLineWidth()) / 2 ), - wxPoint( pos.x + (size.x - GetCurrentLineWidth()) / 2, - pos.y + (size.y - GetCurrentLineWidth()) / 2 ), + Rect( wxPoint( pos.x - ( size.x / 2 ), pos.y - ( size.y / 2 ) ), + wxPoint( pos.x + ( size.x / 2 ), pos.y + ( size.y / 2 ) ), FILL_T::NO_FILL, GetCurrentLineWidth() ); } else @@ -1445,7 +1443,6 @@ void GERBER_PLOTTER::FlashPadRoundRect( const wxPoint& aPadPos, const wxSize& aS 0.0, 0, 0, GetPlotterArcHighDef(), ERROR_INSIDE ); SetCurrentLineWidth( USE_DEFAULT_LINE_WIDTH, &gbr_metadata ); - outline.Inflate( -GetCurrentLineWidth()/2, 16 ); std::vector< wxPoint > cornerList; // TransformRoundRectToPolygon creates only one convex polygon @@ -1657,7 +1654,6 @@ void GERBER_PLOTTER::FlashPadCustom( const wxPoint& aPadPos, const wxSize& aSize if( aTraceMode != FILLED ) { SetCurrentLineWidth( USE_DEFAULT_LINE_WIDTH, &gbr_metadata ); - polyshape.Inflate( -GetCurrentLineWidth()/2, 16 ); } std::vector< wxPoint > cornerList; diff --git a/common/plotters/HPGL_plotter.cpp b/common/plotters/HPGL_plotter.cpp index eb8397cf3c..9c96575ed4 100644 --- a/common/plotters/HPGL_plotter.cpp +++ b/common/plotters/HPGL_plotter.cpp @@ -2,7 +2,7 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2017 Jean-Pierre Charras, jp.charras at wanadoo.fr - * Copyright (C) 2020-2021 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 2020-2022 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -486,7 +486,7 @@ void HPGL_PLOTTER::PlotPoly( const std::vector& aCornerList, FILL_T aFi m_current_item->content << hpgl_end_polygon_cmd; // Close, fill polygon and draw outlines m_current_item->pen_returns = true; } - else if( aWidth > 0 ) + else if( aWidth != 0 ) { // Plot only the polygon outline. for( unsigned ii = 1; ii < aCornerList.size(); ii++ ) @@ -659,10 +659,10 @@ void HPGL_PLOTTER::FlashPadCircle( const wxPoint& pos, int diametre, // if filled mode, the pen diameter is removed from diameter // to keep the pad size radius -= KiROUND( penDiameter ) / 2; - } - if( radius < 0 ) - radius = 0; + if( radius < 0 ) + radius = 0; + } double rsize = userToDeviceSize( radius ); diff --git a/common/plotters/PS_plotter.cpp b/common/plotters/PS_plotter.cpp index b99e7dc0a2..e5dc3308cb 100644 --- a/common/plotters/PS_plotter.cpp +++ b/common/plotters/PS_plotter.cpp @@ -2,7 +2,7 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2017 Jean-Pierre Charras, jp.charras at wanadoo.fr - * Copyright (C) 2020-2021 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 2020-2022 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -127,13 +127,7 @@ void PSLIKE_PLOTTER::FlashPadCircle( const wxPoint& aPadPos, int aDiameter, else // Plot a ring: { SetCurrentLineWidth( USE_DEFAULT_LINE_WIDTH ); - int linewidth = GetCurrentLineWidth(); - - // avoid aDiameter <= 1 ) - if( linewidth > aDiameter-2 ) - linewidth = aDiameter-2; - - Circle( aPadPos, aDiameter - linewidth, FILL_T::NO_FILL, linewidth ); + Circle( aPadPos, aDiameter, FILL_T::NO_FILL, GetCurrentLineWidth() ); } SetCurrentLineWidth( USE_DEFAULT_LINE_WIDTH ); @@ -152,15 +146,6 @@ void PSLIKE_PLOTTER::FlashPadRect( const wxPoint& aPadPos, const wxSize& aSize, else SetCurrentLineWidth( USE_DEFAULT_LINE_WIDTH ); - size.x -= GetCurrentLineWidth(); - size.y -= GetCurrentLineWidth(); - - if( size.x < 1 ) - size.x = 1; - - if( size.y < 1 ) - size.y = 1; - int dx = size.x / 2; int dy = size.y / 2; @@ -203,9 +188,6 @@ void PSLIKE_PLOTTER::FlashPadRoundRect( const wxPoint& aPadPos, const wxSize& aS else { SetCurrentLineWidth( USE_DEFAULT_LINE_WIDTH ); - size.x -= GetCurrentLineWidth(); - size.y -= GetCurrentLineWidth(); - aCornerRadius -= GetCurrentLineWidth() / 2; } @@ -243,8 +225,6 @@ void PSLIKE_PLOTTER::FlashPadCustom( const wxPoint& aPadPos, const wxSize& aSize else { SetCurrentLineWidth( USE_DEFAULT_LINE_WIDTH ); - size.x -= GetCurrentLineWidth(); - size.y -= GetCurrentLineWidth(); } @@ -283,23 +263,6 @@ void PSLIKE_PLOTTER::FlashPadTrapez( const wxPoint& aPadPos, const wxPoint *aCor else { SetCurrentLineWidth( USE_DEFAULT_LINE_WIDTH ); - int w = GetCurrentLineWidth(); - - // offset polygon by w - // coord[0] is assumed the lower left - // coord[1] is assumed the upper left - // coord[2] is assumed the upper right - // coord[3] is assumed the lower right - - /* Trace the outline. */ - cornerList[0].x += w; - cornerList[0].y -= w; - cornerList[1].x += w; - cornerList[1].y += w; - cornerList[2].x -= w; - cornerList[2].y += w; - cornerList[3].x -= w; - cornerList[3].y -= w; } for( int ii = 0; ii < 4; ii++ ) diff --git a/common/plotters/plotter.cpp b/common/plotters/plotter.cpp index 2830cf87e0..77b3f57312 100644 --- a/common/plotters/plotter.cpp +++ b/common/plotters/plotter.cpp @@ -2,7 +2,7 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2017 Jean-Pierre Charras, jp.charras at wanadoo.fr - * Copyright (C) 2017-2021 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 2017-2022 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -486,7 +486,7 @@ void PLOTTER::sketchOval( const wxPoint& pos, const wxSize& aSize, double orient } deltaxy = size.y - size.x; /* distance between centers of the oval */ - radius = ( size.x - width ) / 2; + radius = size.x / 2; cx = -radius; cy = -deltaxy / 2; RotatePoint( &cx, &cy, orient );