71 "net for skew tuning. Make sure the names of the nets belonging " 72 "to a differential pair end with either _N/_P or +/-." ) );
83 SOLID* padA =
nullptr;
84 SOLID* padB =
nullptr;
144 if(
const LINE* l = dyn_cast<const LINE*>( item ) )
145 PNS_DBG(
Dbg(), AddLine, l->CLine(),
BLUE, 10000,
"tuned-path-skew-p" );
150 if(
const LINE* l = dyn_cast<const LINE*>( item ) )
165 status =
_(
"Too long: skew " );
168 status =
_(
"Too short: skew " );
171 status =
_(
"Tuned: skew " );
178 status += wxT(
"/" );
Base class for PNS router board items.
ROUTER * Router() const
Return current router settings.
wxString MessageTextFromValue(EDA_UNITS aUnits, int aValue, bool aAddUnitLabel, EDA_DATA_TYPE aType)
Convert a value to a string using double notation.
MEANDER_SKEW_PLACER(ROUTER *aRouter)
const ITEM_SET AssembleTrivialPath(ITEM *aStart, std::pair< JOINT *, JOINT * > *aTerminalJoints=nullptr, bool aFollowLockedSegments=false)
Assemble a trivial path between two joints given a starting item.
Implementation of conversion functions that require both schematic and board internal units.
const DIFF_PAIR AssembleDiffPair(SEGMENT *aStart)
TUNING_STATUS m_lastStatus
long long int m_lastLength
LINKED_ITEM * m_initialSegment
const ITEM_SET AssembleTuningPath(ITEM *aStart, SOLID **aStartPad=nullptr, SOLID **aEndPad=nullptr)
Like AssembleTrivialPath, but follows the track length algorithm, which discards segments that are fu...
Represents a track on a PCB, connecting two non-trivial joints (that is, vias, pads,...
NODE * Branch()
Create a lightweight copy (called branch) of self that tracks the changes (added/removed items) wrs t...
int m_currentWidth
Meander settings.
void Remove(ARC *aArc)
Remove an item from this branch.
int m_padToDieLength
Width of the meandered trace(s).
long long int lineLength(const ITEM_SET &aLine) const
Calculate the total length of the line represented by an item set (tracks and vias)
NODE * m_world
Total length added by pad to die size.
bool doMove(const VECTOR2I &aP, ITEM *aEndItem, long long int aTargetLength)
#define PNS_DBG(dbg, method,...)
DEBUG_DECORATOR * Dbg() const
void SetFailureReason(const wxString &aReason)
Single track length matching/meandering tool.
const wxString TuningInfo(EDA_UNITS aUnits) const override
Return a string describing the status and length of the tuned traces.
VECTOR2I getSnappedStartPoint(LINKED_ITEM *aStartItem, VECTOR2I aStartPoint)
VECTOR2I m_currentStart
Current world state.
long long int m_coupledLength
MEANDER_SETTINGS m_settings
The current end point.
bool Start(const VECTOR2I &aP, ITEM *aStartItem) override
Function Start()
bool OfKind(int aKindMask) const
Return true if the item's type matches the mask aKindMask.
const ENTRIES & CItems() const
int Width() const
Return true if the line is geometrically identical as line aOther.
LINKED_ITEM * GetLink(int aIndex) const
Erase the linking information. Used to detach the line from the owning node.
const LINE AssembleLine(LINKED_ITEM *aSeg, int *aOriginSegmentIndex=nullptr, bool aStopAtLockedJoints=false, bool aFollowLockedSegments=false)
Follow the joint map to assemble a line connecting two non-trivial joints starting from segment aSeg.
long long int currentSkew() const
long long int origPathLength() const override
current routing start point (end of tail, beginning of head)
Push and Shove diff pair dimensions (gap) settings dialog.
bool Move(const VECTOR2I &aP, ITEM *aEndItem) override
Function Move()