From ebb74fcc2b1bf7045d576a2b667ff1e0f7d15d2f Mon Sep 17 00:00:00 2001 From: Jeff Young <jeff@rokeby.ie> Date: Tue, 18 Sep 2018 20:37:00 +0100 Subject: [PATCH] Honour diff-pair dimension changes while routing. --- include/board_design_settings.h | 42 ++++++++++++++++++++++++++++ pcbnew/router/pns_sizes_settings.cpp | 4 +++ 2 files changed, 46 insertions(+) diff --git a/include/board_design_settings.h b/include/board_design_settings.h index ce3946c9a4..58cc0d0413 100644 --- a/include/board_design_settings.h +++ b/include/board_design_settings.h @@ -582,6 +582,48 @@ public: return m_useCustomDiffPair; } + /** + * Function GetCurrentDiffPairWidth + * @return the current diff pair track width, according to the selected options + * ( using the default netclass value or a preset/custom value ) + * the default netclass is always in m_DiffPairDimensionsList[0] + */ + inline int GetCurrentDiffPairWidth() const + { + if( m_useCustomDiffPair ) + return m_customDiffPair.m_Width; + else + return m_DiffPairDimensionsList[m_diffPairIndex].m_Width; + } + + /** + * Function GetCurrentDiffPairGap + * @return the current diff pair gap, according to the selected options + * ( using the default netclass value or a preset/custom value ) + * the default netclass is always in m_DiffPairDimensionsList[0] + */ + inline int GetCurrentDiffPairGap() const + { + if( m_useCustomDiffPair ) + return m_customDiffPair.m_Gap; + else + return m_DiffPairDimensionsList[m_diffPairIndex].m_Gap; + } + + /** + * Function GetCurrentDiffPairViaGap + * @return the current diff pair via gap, according to the selected options + * ( using the default netclass value or a preset/custom value ) + * the default netclass is always in m_DiffPairDimensionsList[0] + */ + inline int GetCurrentDiffPairViaGap() const + { + if( m_useCustomDiffPair ) + return m_customDiffPair.m_ViaGap; + else + return m_DiffPairDimensionsList[m_diffPairIndex].m_ViaGap; + } + /** * Function SetMinHoleSeparation * @param aValue The minimum distance between the edges of two holes or 0 to disable diff --git a/pcbnew/router/pns_sizes_settings.cpp b/pcbnew/router/pns_sizes_settings.cpp index 18ead5f729..3e06c9c987 100644 --- a/pcbnew/router/pns_sizes_settings.cpp +++ b/pcbnew/router/pns_sizes_settings.cpp @@ -168,6 +168,10 @@ void SIZES_SETTINGS::ImportCurrent( BOARD_DESIGN_SETTINGS& aSettings ) m_trackWidth = aSettings.GetCurrentTrackWidth(); m_viaDiameter = aSettings.GetCurrentViaSize(); m_viaDrill = aSettings.GetCurrentViaDrill(); + + m_diffPairWidth = aSettings.GetCurrentDiffPairWidth(); + m_diffPairGap = aSettings.GetCurrentDiffPairGap(); + m_diffPairViaGap = aSettings.GetCurrentDiffPairViaGap(); }