用途:在 tscircuit/schematic-trace-solver 仓库中处理原理图走线求解器的可视化,适用于修改求解器 visualize() 或 preview() 输出、添加调试图形、生成 SVG 快照等场景。
主要能力:使用 graphics-debug 的 GraphicsObject 构建求解器调试图、SVG 快照和无头产物。可视化类型(GraphicsObject、Point、Line、Rect、Circle、Text)应从 graphics-debug 导入,不要在仓库文档、测试或工具中重新定义这些形状。渲染通过 getSvgFromGraphicsObject 与 getPngBufferFromGraphicsObject 完成,建议使用白色背景以获得稳定产物。
仓库已有辅助工具:tests/fixtures/matcher.ts 的 toMatchSolverSnapshot 将求解器语义输出转为 Circuit JSON 并用 circuit-to-svg 渲染,默认隐藏输入飞线;convertSolverOutputToCircuitJson.ts 构建快照 Circuit JSON;getLastStepGraphicsObject.ts 与 getLastStepSvg.ts 用于取最后一步;lib/testing/PipelineStageDebugRunner.ts 按阶段写出 PNG/SVG/graphics JSON,scripts/debug-pipeline-stages.ts 是其 CLI 包装。
使用方式:优先使用聚焦的求解器 SVG 快照而非大范围转储;仅在测试关注内部候选、失败几何或分阶段调试状态时,才直接对 solver.visualize() 调用 getSvgFromGraphicsObject。多步图形只看最终阶段可用 getLastStepSvg(solver.visualize())。更新快照命令为 BUN_UPDATE_SNAPSHOTS=1 bun test。无头阶段调试命令为 bun run debug:pipeline tests/assets/example01.json,支持 --out、--stop-after、--no-json、--svg、--step-pngs 等选项,产物包括 logs.txt、stageNN-stageName.png 及可选的 graphics.json。注意流水线可能重复使用同一求解器名,需以阶段编号区分。
选择视图:内部状态、候选、失败几何、阶段进度用求解器原生 visualize();最终合并输出用 SchematicTracePipelineSolver.visualize();原始输入几何、元件、引脚、直接连接用 visualizeInputProblem(inputProblem)。
限制:SVG 背景保持白色;颜色、标签、线宽、透明度和步进值对快照敏感。本资料未提供收费、平台或价格信息。