From 83e64f1c16edd6a87dc515fcf24910dac2d70903 Mon Sep 17 00:00:00 2001 From: Rishabh Gupta Date: Mon, 10 Feb 2025 20:37:36 +0530 Subject: [PATCH] fix: pcb_trace_id unique for the same wire segment --- .../convert-dsn-session-to-circuit-json.ts | 11 +---------- tests/dsn-pcb/convert-session-to-circuit-json.test.ts | 9 ++++++++- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/lib/dsn-pcb/dsn-json-to-circuit-json/convert-dsn-session-to-circuit-json.ts b/lib/dsn-pcb/dsn-json-to-circuit-json/convert-dsn-session-to-circuit-json.ts index fa7067e..0f3f5a1 100644 --- a/lib/dsn-pcb/dsn-json-to-circuit-json/convert-dsn-session-to-circuit-json.ts +++ b/lib/dsn-pcb/dsn-json-to-circuit-json/convert-dsn-session-to-circuit-json.ts @@ -68,7 +68,6 @@ export function convertDsnSessionToCircuitJson( } const sessionElements: AnyCircuitElement[] = [] - const routeSegments: Array = [] // Process nets for vias and wires for (const net of dsnSession.routes.network_out.nets) { @@ -87,18 +86,10 @@ export function convertDsnSessionToCircuitJson( // Process wires and vias together in routes net.wires?.forEach((wire, wireIdx) => { if ("path" in wire) { - routeSegments.push( - ...convertWiringPathToPcbTraces({ - wire, - transformUmToMm, - netName: net.name, - }), - ) - const traces = convertWiringPathToPcbTraces({ wire, transformUmToMm, - netName: net.name, + netName: `${net.name}_${wireIdx}`, }) // Update trace IDs to maintain proper linkage diff --git a/tests/dsn-pcb/convert-session-to-circuit-json.test.ts b/tests/dsn-pcb/convert-session-to-circuit-json.test.ts index 8883f8f..83bf6f6 100644 --- a/tests/dsn-pcb/convert-session-to-circuit-json.test.ts +++ b/tests/dsn-pcb/convert-session-to-circuit-json.test.ts @@ -1,5 +1,4 @@ import { convertCircuitJsonToPcbSvg } from "circuit-to-svg" -import { convertDsnJsonToCircuitJson } from "../../lib/dsn-pcb/dsn-json-to-circuit-json/convert-dsn-json-to-circuit-json.ts" import { expect, test } from "bun:test" import { parseDsnToDsnJson, @@ -21,6 +20,7 @@ import pcbDsnFile from "../assets/freerouting-sessions/circuit1.dsn" with { import { circuitJsonToTable } from "../debug-utils/circuit-json-to-table.ts" import { sessionFileToTable } from "../debug-utils/index.ts" import Debug from "debug" +import { su } from "@tscircuit/soup-util" test("convert session to circuit json", async () => { const debug = Debug("tscircuit:dsn-converter") @@ -33,6 +33,13 @@ test("convert session to circuit json", async () => { sessionJson, ) + const pcb_traces = su(circuitJsonFromSession).pcb_trace.list() + const pcb_traces_by_id = [ + ...new Set(pcb_traces.map((trace) => trace.pcb_trace_id)), + ] + + expect(pcb_traces_by_id.length).toBe(3) + if (debug.enabled) { circuitJsonToTable( circuitJson,