diff --git a/lib/solvers/MspConnectionPairSolver/MspConnectionPairSolver.ts b/lib/solvers/MspConnectionPairSolver/MspConnectionPairSolver.ts index 48b46c9..8fa458b 100644 --- a/lib/solvers/MspConnectionPairSolver/MspConnectionPairSolver.ts +++ b/lib/solvers/MspConnectionPairSolver/MspConnectionPairSolver.ts @@ -74,7 +74,20 @@ export class MspConnectionPairSolver extends BaseSolver { } } - this.queuedDcNetIds = Object.keys(netConnMap.netMap) + // Only queue nets that have direct connections (traces). + // Nets connected solely via netConnections (net labels) should not + // produce MSP pairs – they receive net labels instead of traces. + const directNetIds = new Set(Object.keys(directConnMap.netMap)) + this.queuedDcNetIds = Object.keys(netConnMap.netMap).filter((netId) => { + // A net qualifies for tracing if at least one of its pins appears + // in the direct-connection map under the same global net. + const allIds = netConnMap.getIdsConnectedToNet(netId) as string[] + const pins = allIds.filter((id) => !!this.pinMap[id]) + return pins.some((pinId) => { + const dcNet = directConnMap.getNetConnectedToId(pinId) + return dcNet != null && directNetIds.has(dcNet) + }) + }) } override getConstructorParams(): ConstructorParameters< diff --git a/tests/examples/__snapshots__/example01.snap.svg b/tests/examples/__snapshots__/example01.snap.svg index 293bf05..8f364a3 100644 --- a/tests/examples/__snapshots__/example01.snap.svg +++ b/tests/examples/__snapshots__/example01.snap.svg @@ -49,6 +49,9 @@ y-" data-x="-4" data-y="-0.5" cx="67.72277227722776" cy="356.03960396039605" r=" + + + @@ -73,9 +76,6 @@ y-" data-x="-4" data-y="-0.5" cx="67.72277227722776" cy="356.03960396039605" r=" - - - @@ -94,6 +94,9 @@ y-" data-x="-4" data-y="-0.5" cx="67.72277227722776" cy="356.03960396039605" r=" + + + - + + + + - + diff --git a/tests/examples/__snapshots__/example15.snap.svg b/tests/examples/__snapshots__/example15.snap.svg index fa7b2fb..8bf97bb 100644 --- a/tests/examples/__snapshots__/example15.snap.svg +++ b/tests/examples/__snapshots__/example15.snap.svg @@ -335,13 +335,25 @@ y-" data-x="-2.025" data-y="-2.7" cx="318.5204755614267" cy="526.0237780713342" - + - + - + + + + + + + + + + + + + @@ -812,28 +824,16 @@ y-" data-x="-2.025" data-y="-2.7" cx="318.5204755614267" cy="526.0237780713342" - - - - - - - + - + - + - - - - - - - + @@ -890,13 +890,25 @@ y-" data-x="-2.025" data-y="-2.7" cx="318.5204755614267" cy="526.0237780713342" - + + + + + + + + + + + + + - + - +