diff --git a/pcbnew/board.cpp b/pcbnew/board.cpp index 6c2b76614a..3be9b575d5 100644 --- a/pcbnew/board.cpp +++ b/pcbnew/board.cpp @@ -1703,6 +1703,13 @@ std::tuple BOARD::GetTrackLength( const TRACK& aTrack ) con length += stackup.GetLayerDistance( via->TopLayer(), via->BottomLayer() ); continue; } + else if( track->Type() == PCB_ARC_T ) + { + // Note: we don't apply the clip-to-pad optimization if an arc ends in a pad + // Room for future improvement. + length += track->GetLength(); + continue; + } bool inPad = false; SEG trackSeg( track->GetStart(), track->GetEnd() ); diff --git a/pcbnew/dialogs/dialog_net_inspector.cpp b/pcbnew/dialogs/dialog_net_inspector.cpp index a5680f08f1..950e88c949 100644 --- a/pcbnew/dialogs/dialog_net_inspector.cpp +++ b/pcbnew/dialogs/dialog_net_inspector.cpp @@ -1038,6 +1038,7 @@ std::vector DIALOG_NET_INSPECTOR::relevantConnectivityItems() const const auto type_bits = std::bitset() .set( PCB_TRACE_T ) + .set( PCB_ARC_T ) .set( PCB_VIA_T ) .set( PCB_PAD_T ); diff --git a/pcbnew/track.h b/pcbnew/track.h index ac88107509..85d99b2169 100644 --- a/pcbnew/track.h +++ b/pcbnew/track.h @@ -328,7 +328,7 @@ public: double radius = GetRadius(); double includedAngle = std::abs( GetAngle() ); - return radius * M_PI * includedAngle / 180.0; + return radius * M_PI * includedAngle / 1800.0; } EDA_ITEM* Clone() const override;