• 首页
  • 使用指南
    上传指南安装指南
  • API文档
    开发指南API调用API参考
  • 相关网站
    嘉立创EDA嘉立创社区开源广场
  • 编辑器
    在线编辑器(专业版)桌面客户端
  • 扩展管理
  • 登录注册
嘉立创产业服务站群

电子产业

logo

嘉立创PCB

PCB、FPC制造服务

logo

嘉立创SMT

一站式PCBA服务平台

logo

嘉立创激光钢网治具

激光钢网&治具制造

logo

嘉立创EDA

国产PCB设计工具

机械产业

logo

嘉立创FA

机械/电气零部件一站式商城

logo

嘉立创3D打印

树脂、尼龙、金属3D打印服务

logo

嘉立创CNC机械智造

机加件一件起订,3天交货

更多服务

嘉立创CAM

国产线路板CAM软件

Forface 3D

SaaS化3D技术服务平台

硬创社

好玩的硬件交流社区

供应商合作

一站式阳光采购平台

· EDA扩展广场
首页

使用指南

上传指南安装指南

API文档

开发指南API调用API参考

相关网站

嘉立创EDA嘉立创社区开源广场

编辑器

在线编辑器(专业版)桌面客户端
登录注册

流程图生成器(Flowchart Gen)

Q5082v1.0.0
(0)Apache-2.0
从结构化 Spec JSON 自动生成流程图 / 系统框图,直接绘制到原理图页(原生 sch_* 图元,非贴图)。采用 mermaid/dagre 式「数据层 / 布局层 / 渲染层」三段式架构:三车道(L/C/R)+ rank 自动分层布局、左右侧总线正交布线、回边虚线回路、统一框尺寸与间距、文字超框自动缩字号、边标签多候选碰撞探测防遮挡(右上优先自动降级)。侧边面板含三大页签:① Spec 框图(JSON 编辑 / 加载示例 / 一键绘制 / 撤销 / SVG 导出)② Mermaid(DSL 编辑 + 渲染预览 + PNG/SVG 导出,引擎 base64 内联、离线可用)③ 关于与帮助(使用说明 + AI 提示词一键复制)。内置「CH32L103 固件代码构建」示例,适合硬件系统框图、状态机、构建流程图的一键落图。
详情
更改日志
历史版本
评论

流程图生成器(Flowchart Gen)

Q5082
(0)Apache-2.0
详情
更改日志
历史版本
评论

流程图生成器(flowchart-gen)· 立创EDA Pro 扩展

从结构化 Spec 自动生成流程图并绘制到原理图页。采用数据驱动设计,借鉴 mermaid / dagre 的「数据层 / 布局层 / 渲染层」三段式架构,并内置「CH32L103 固件代码构建」示例。

本扩展对应「路线 B」:专业版扩展插件(pro-api-sdk + extension.json + 打包 .eext)。


目录结构

lceda_extension/
├── extension.json            # 扩展清单(注册原理图头部菜单)
├── package.json              # 构建脚本(build / debug)
├── tsconfig.json
├── .npmrc                    # 国内 npm 镜像
├── src/
│   ├── index.ts              # 入口:导出 openFlowchartPanel(打开面板;含 iframe→宿主 绘制桥)
│   └── flowchart/
│       ├── types.ts          # 数据模型(SpecNode / SpecEdge / Spec / PlacedNode ...)
│       ├── layout.ts         # 布局层:自动测量文字→定框→分层定位→正交走线
│       ├── draw.ts           # 渲染层:坐标 → eda.sch_* 原理图图元
│       └── spec.ts           # 数据层:内置 BUILD_FLOWCHART 示例
├── iframe/
│   └── panel.html            # 侧边面板:粘贴自定义 SPEC JSON 生成
├── images/
│   └── logo.png
└── build/
    ├── packaged.js           # 生产构建(打包到 build/dist/)
    └── debug.js              # 监听热重建

同源 SVG 生成器见 ../hardware/flowchart_gen.py,可独立产出 code_build_flowchart_v2.svg(已通过自校验:0 穿越、0 文字溢出)。两条路线共用同一套布局参数。


功能演示

一键落图效果

生成示例

「CH32L103 固件构建系统」示例:粘贴 JSON → 点「生成」 → 流程图直接绘制到原理图页(原生 sch_ 图元),统一框尺寸、统一间距、边标签智能防遮挡。

侧边面板三页签

面板演示

  • Spec 框图:JSON 编辑 → 加载示例 → 一键生成 → 撤销上次 → 生成图片(SVG 预览/复制)
  • Mermaid:DSL 编辑 → 渲染预览 → 下载 PNG / 复制 SVG(引擎离线内置)
  • 关于与帮助:使用说明 + AI 生成提示词模板一键复制

各页签状态截图

页签截图
Spec 框图(初始)
Spec 框图(生成图片预览)
Mermaid 预览(渲染完成)
关于与帮助

演示图通过 URL 参数 ?demo=svg|mm|help 自动触发对应操作(用户正常打开面板不触发,仅用于自动化截图)。


环境要求

  • Node.js ≥ 20.5.0(pro-api-sdk 要求)
  • 嘉立创EDA专业版(启用 pro-api,engines eda ^2.3.0)
  • 网络连接(首次 npm install)

构建

cd lceda_extension
npm install          # 安装 esbuild / typescript / pro-api-types
npm run build        # 产出可安装扩展包于 ./build/dist/

首次 npm run build 会在 extension.json 中自动写入 UUID。


安装到嘉立创EDA专业版

  1. 打开嘉立创EDA专业版 → 右上角「扩展」→「本地扩展」/「管理扩展」。
  2. 选择本项目的 lceda_extension/build/dist/ 目录(即打包产物根,内含 extension.json 与 dist/)。
  3. 安装后启用;在原理图页顶部菜单出现「流程图生成器」分组,仅一个菜单项:
    • 打开流程图面板... —— 打开侧边面板,可「加载示例」或粘贴任意 Spec JSON 后点「生成」。 (面板本身可在任意页打开;但「生成」绘制到原理图需要处于已激活的原理图文档页。)

Spec 数据格式

{
  "nodes": [
    { "id": "start", "label": "开始", "type": "start", "rank": 0, "lane": "C" }
    // type: start|end|proc|io|build|decision|product
    // lane: L(左) | C(中) | R(右)   rank: 自上而下层级
    // label 多行用 \n 分隔
  ],
  "edges": [
    { "from": "a", "to": "b", "label": "可选", "kind": "fwd" }
    // kind: fwd(正向) | back(回边, 红色虚线回路)
  ],
  "subgraphs": [
    { "label": "构建子步骤", "members": ["pre","compile","asm","link"] }
  ]
}

坐标单位说明(重要)

原理图坐标单位 = 10 mil = 0.01 inch(PCB 为 1 mil)。布局引擎输出的坐标已是 原理图单位,直接喂给 eda.sch_* API 即可,无需额外换算;如需缩放可调整 draw.ts 中的 SCALE 常量(默认 1),文字尺寸由 FS_SCALE(默认 1.6)放大以保证可读性。


渲染层所用 API(均返回 Promise,需 await)

API用途
eda.sch_PrimitiveRectangle.create(...)矩形节点 / 子图容器(圆角、虚线 lineType=1)
eda.sch_PrimitivePolygon.create(...)菱形判定框 / 箭头三角
eda.sch_PrimitiveText.create(...)文字(alignMode=5 居中)
eda.sch_PrimitiveWire.create(...)正交走线(多边段)
eda.sys_IFrame.openIFrame(...)打开侧边面板(路径自扩展根起,如 /iframe/panel.html)

注:sch_PrimitivePolygon / sch_PrimitiveText / sch_PrimitiveWire 在官方文档中标记为 BETA,签名可能随版本调整,请留意 pro-api-types 更新。


自定义 / 扩展

  • 新增流程图:在 src/flowchart/spec.ts 增加一个 Spec 常量,并在 src/index.ts 注册 新的 registerFn(同步在 extension.json 的 headerMenus.sch[].menuItems 增加一项)。
  • 调整布局:修改 src/flowchart/layout.ts 的 LANE_X / ROW_H / RANK_GAP / COL_GAP / PAD_* 等常量;改动会同步反映到 SVG 生成器(保持两者参数一致)。
  • 面板 UI:编辑 iframe/panel.html(原生 HTML/CSS/JS,无需编译)。

打包为 .eext(一键生成可分发包)

.eext 本质是一个 ZIP,内部根目录需含 extension.json。在 npm run build 之后:

npm run pack        # 产出 build/flowchart-gen-1.0.0.eext

build/package-eext.js 用纯 Node 的 archiver 实现,跨平台(Windows / macOS / Linux 均可)。 生成后可直接在嘉立创EDA专业版「扩展 → 从本地文件安装」选择该 .eext。

若你的机器有 PowerShell,也可手动等价操作:Compress-Archive -Path build\dist\* -DestinationPath build\flowchart-gen-1.0.0.eext -Force


面板里粘贴的 JSON 从哪来?

「打开流程图面板…」的用途是:不重新编译,就能把任意一张流程图画到原理图。 面板里「生成」按钮需要一份符合 Spec 结构的 JSON,数据来源有三种:

  1. 点「加载示例」(最省事):面板自动填入内置的 BUILD_FLOWCHART(即 code_build_flowchart_v2.svg 那张「CH32L103 固件代码构建」图),直接点「生成」即可,无需自己写。
  2. 参考示例文件手写:本仓库 example-spec.json 就是上面那份「示例」的原始 JSON。 按相同结构改 nodes / edges / subgraphs 即可描述你自己的流程图(schema 见下文「Spec 数据格式」)。
  3. 让我帮你整理:把你的硬件框图 / 状态机描述给我,我将其整理成 Spec JSON 文件, 你存成 .json 后粘贴进面板即可(或我直接更新 example-spec.json / src/flowchart/spec.ts)。

一句话:JSON 是你对「流程图长什么样」的文本化描述(一个迷你 DSL),不是从别处自动抓取的数据。 面板的「加载示例」按钮内置了同一张「代码构建」示例,点「生成」即可绘制,无需重新编译扩展。


许可

Apache-2.0

更改日志(Changelog)

[1.0.0] — 2026-09-02 · 首发版本

核心功能

  • Spec → 原理图一键落图:粘贴结构化 Spec JSON(nodes / edges / subgraphs),自动生成流程图并绘制到当前原理图页,全部使用 eda.sch_* 原生图元(矩形 / 多边形 / 文字 / 导线),可正常编辑、复制、导出。
  • 三段式架构:数据层 / 布局层 / 渲染层分离(借鉴 mermaid / dagre),布局引擎纯数据驱动,新增图类型无需改渲染代码。
  • 自动分层布局:三车道(L 左 / C 中 / R 右)× rank 自上而下分层;节点类型 start / end / proc / io / build / decision / product;支持 subgraphs 子图容器(虚线圆角分组)。
  • 正交布线:左右侧总线走廊(busX / rBusX)汇聚跨列连线;同 rank 直连;kind: "back" 回边走红色虚线回路;所有连线端点带箭头。

侧边面板(三个页签)

  • Spec 框图:Spec JSON 编辑(带加载示例 / 清空)、一键生成、撤销上次绘制、生成图片(SVG 快照预览 + 一键复制 SVG 源码)。
  • Mermaid:Mermaid DSL 文本编辑 + 渲染预览 + 下载 PNG / 复制 SVG,用于快速预览与图片导出(不参与原理图图元落位)。Mermaid 引擎以 base64 内联打包,完全离线可用,兼容立创EDA Pro webview(仅允许内联脚本)的环境限制。
  • 关于与帮助:详细使用说明、Spec 数据格式文档,以及「AI 生成提示词」模板(Spec 模式 / Mermaid 模式)一键复制,可直接粘贴给 AI 对话生成合规 JSON。

布局与布线质量(多轮迭代修复)

  • 统一框尺寸与间距:所有节点框固定 160×64(BOX_W × BOX_H),行间距恒定 20(RANK_GAP),视觉整齐划一。
  • 文字超框自动缩字号:节点文字过长时 fitTextToBox 自动按宽度 / 高度约束缩字号兜底,保证文字严格包含在框内。
  • 坐标系零偏移:屏幕坐标(Y 向下)→ EDA 原理图坐标(Y 向上翻转 + 10mil 单位)精确换算,矩形锚点(左上角)、文字锚点(中心对齐)全部按官方 API 语义对齐,框与文字零错位。
  • 边标签防遮挡:标签位置多候选碰撞探测(右上 → 右 → 右下 → 左上 → 左逐级降级),检测对象覆盖节点框、全部折线、末端箭头与已放置标签;同 rank 边标签自动落两列间空白区,跨 rank 边标签落行间隙走廊,压框 / 压线零容忍。
  • 回边防穿越:回边走独立环路路径,避免与正向边重叠。

工程化与质量保障

  • build/verify_full.js 完整几何自检:标签 × 节点框求交、标签 × 折线最短距离、折线穿非端点框三项检查,示例图全绿(0 压框 / 0 穿框 / 0 压线)。
  • build/verify_svg.js SVG 路径回归:0 NaN 箭头、0 连线穿框。
  • 一键构建打包:npm run build && npm run pack → 可分发 .eext(纯 Node 跨平台)。

内置示例

  • 「CH32L103 固件代码构建」流程图(主机 → Type-C → VBUS → HUB → MCU → 外设全链路),可直接点「加载示例」体验。

后续计划(Roadmap)

  • Mermaid 源码 → Spec JSON 的自动转换
  • 更多节点样式主题(配色 / 线宽可配置)
  • 生成结果分组选择(一键框选本次生成的全部图元)
暂无数据
暂无数据

评论

在登录或注册后才可以进行评论操作
全部评论(1)
按时间排序|按热度排序

类型

Other

关键词

flowchart流程图diagram框图系统框图状态机自动布局正交布线SVGSPEC

扩展信息

版本v1.0.0
发布者

498016A

发布时间2026-09-02 17:11:36
名称

flowchart-gen

UUID

773b0c8033cd061029ac0db923c47a94

适用EDA版本:^3.2.0
报告

报告滥用

相关链接

主页:https://pro.lceda.cn
反馈:https://lceda.cn/page/feedback?originPage=other
logo

政策条款

服务条款隐私政策项目授权许可协议作出贡献感谢名单

软件版本

专业版标准版教育版私有化部署版

解决方案

专业版编辑器标准版编辑器桌面客户端API接口文档格式

使用帮助

用户论坛专业版教程标准版教程专业版更新标准版更新

关于我们

团队介绍相关报道关于公司联系我们合作联系
EDA公众号
EDA公众号
开源公众号
开源公众号
开源硬件交流群
开源硬件交流群
版权所有 - 深圳创电优选科技有限公司 粤ICP备2026007863号粤公网安备44030402002736号增值电信业务经营许可证粤B2-20201198ISO/IEC隐私政策用户协议