mcpField
U
uniwire

uniwire

远程服务
uniwire.sh科研与教育4今天更新

关于 uniwire

uniwire 是一种开放格式及 Python 库,用于以数据描述电气装置,再验证规则并生成单线图和多线图。它面向需要可审阅、便于比较设计变更的电气设计人员,并提供命令行、Python、Web 查看器和面向助手的工具。

主要功能

  1. 01用 JSON 或 Python 描述装置
  2. 02验证结构和电气规则
  3. 03生成单线图与多线图
  4. 04导出 SVG、PDF、物料清单和线缆表
  5. 05支持 NF C 15-100、IEC 60364 等规则配置
  6. 06通过稳定 ID 编辑模型

适用场景

  1. 01按选定规则检查电气装置
  2. 02从文本设计生成电气图
  3. 03整理物料清单和线缆明细
  4. 04通过文本差异审阅设计变更

MCP 相关

uniwire 提供 stdio MCP 服务 `uniwire-mcp` 和托管 MCP 端点。其助手工具还可生成模型参考卡、结构提纲并按 ID 编辑。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.uniwire.sh/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

14
参数类型必填说明
langstring否
levelstring否

详细介绍

uniwire

电气图,以代码描述。

用于描述电气装置的开放标准,以及配套的 Python 参考库,可对其进行验证、按规则检查,并绘制单线图和多线图。

CI PyPI Python License: Apache-2.0

你可以在 *.uniwire.json 文件或 Python 代码中描述装置(电源、保护器件、电缆、负载、PLC),uniwire 随后会生成图纸。无需坐标,也无需 CAD 文件:只需一个便于审阅和比较差异的文本文件。

功能

  • 单线图和多线图来自同一份文档:多线图视图会根据单线图数据推导出每根导线(L1、L2、L3、N、PE、PEN),无需额外输入。
  • 53 种节点类型:公用电网、变压器、发电机、UPS、光伏、电池、逆变器;断路器、RCD、RCBO、熔断器、隔离开关、接触器、电机启动器、转换开关、SPD、保护继电器、仪用互感器、绝缘监测仪;母线、配电板、端子排;照明、插座、供暖设备、电机、电动汽车充电器、模块化 PLC 等。
  • 树结构 + 链接:电力树是主干;转换、母线联络、进线、接地、控制、联锁、跳闸、测量和数据总线均为链接。系统会自动推导端子/连接节点图,并支持 CIM、IFC 和 IEC 61850 SCL 映射。
  • 封闭类型与带单位后缀的字段:in_A、idn_mA、section_mm2、p_kW;未知字段会报错(例如会捕获用 calibre 代替 in_A 的情况),扩展内容放在 ext 中。模板只需声明一次设备。
  • 规则配置:core(始终启用)、nfc15100(法国住宅)、iec60364(电缆载流量),enedis(接入法国公共电网),以及 PLC 一致性检查。
  • 物料清单:任何节点或 PLC 模块均可添加结构化的 product 引用(制造商、部件编号、系列、配件),并汇总导出为 CSV(uniwire bom)。
  • 导线和电缆标记:可按视图设置标记规则(手动、顺序、按电位、按模式);标记会绘制在多线图上,并可导出 CSV:导线清单(uniwire wires)、导线标记清单(uniwire markers)、电缆明细表(uniwire cables);uniwire marks --write 可固定标记。
  • 颜色模式:导线可使用 IEC 60445 或北美颜色,也可按相位、电源、状态或电压等级着色。
  • 图纸:纸张尺寸、子树视图、自动拆分图纸并添加交叉引用、电路明细表、外壳框架、标题栏、修订记录和备注。SVG 输出具有确定性,便于比较差异;多页 PDF 提供图纸间的可点击链接。
  • 英语和法语渲染,通过每份文档的 meta.lang 选择。
  • 大模型工具:根据模型生成的参考卡片(uniwire card)、包含稳定 ID 的文本大纲(uniwire describe)、基于 ID 的编辑(uniwire patch)、MCP 服务(uniwire-mcp,stdio),以及托管的 MCP 端点 https://mcp.uniwire.sh/mcp;另提供供助手使用的 llms.txt(包含完整参考卡片)。ChatGPT、Claude、Cursor 和 VS Code 的设置方法: 在助手中使用 uniwire;详情请参阅 大模型工具。

图库

法国住宅,TT,单线图
法国住宅,TT(NF C 15-100),单线图
德国住宅,TN-C-S,采用导线颜色的多线图
德国住宅,TN-C-S,采用导线颜色的多线图
办公楼主低压开关柜
办公楼,主低压开关柜
中压/低压变电站,1000 kVA
中压/低压变电站,1000 kVA
备用发电机,自动转换开关,负载切除
备用发电机,ATS,负载切除
电动机控制中心,带导线标记的多线图
电动机控制中心,带导线标记的多线图

全部 52 个示例都在 examples/ 中,并列于 文档;可在网页查看器中打开任意示例。

安装

pip install uniwire                 # validation, rules, SVG rendering, bill of materials, exports
pip install "uniwire[pdf]"          # + PDF output (reportlab)
pip install "uniwire[mcp]"          # + MCP server (uniwire-mcp)
pip install "uniwire[iec81346]"     # + optional IEC 81346-2 class table (separate CC BY-SA 4.0 data package)

需要 Python 3.10 或更高版本。唯一必需的依赖项是 pydantic。

快速入门

JSON 文档:

{
  "$schema": "https://uniwire.sh/schema/v1/uniwire.schema.json",
  "uniwire": "1.0.0",
  "profiles": ["nfc15100"],
  "meta": { "title": "Small house", "lang": "en" },
  "installation": { "earthing": "TT", "system": "1P+N", "un_V": 230 },
  "templates": { "C16": { "type": "breaker", "in_A": 16, "curve": "C" } },
  "sources": [
    { "type": "grid", "label": "Utility", "children": [
      { "type": "main_breaker", "ref": "-Q0", "range_A": "15-45", "in_A": 45, "idn_mA": 500, "selective": true,
        "children": [
          { "type": "rcd", "ref": "-Q1", "in_A": 40, "idn_mA": 30, "rcd_type": "A", "children": [
            { "type": "breaker", "ref": "-Q11", "use": "C16", "cable": { "cores": "3G", "section_mm2": 1.5 },
              "children": [ { "type": "lighting", "label": "Lighting", "points": 6 } ] },
            { "type": "breaker", "ref": "-Q12", "in_A": 20, "curve": "C", "cable": { "cores": "3G", "section_mm2": 2.5 },
              "children": [ { "type": "socket", "label": "Sockets", "points": 8 } ] }
          ] }
      ] }
    ] }
  ]
}

树表示电力流(电源、保护设备、负载);树之外的内容(转换开关、母线联络、控制和数据连接)都放在 links 中。

uniwire validate house.uniwire.json                 # schema + integrity
uniwire check house.uniwire.json                    # rule profiles (exit code 1 on errors)
uniwire render house.uniwire.json                   # SVG sheets in out/house/
uniwire render house.uniwire.json -f pdf -o house.pdf
uniwire render house.uniwire.json --kind multi-line # multi-line power diagram
uniwire bom house.uniwire.json -o house.bom.csv     # bill of materials
uniwire wires house.uniwire.json                    # wire list (also: markers, cables, marks)
uniwire card                                        # reference card for assistants

同一安装的 Python 写法:

from uniwire.build import *

with Installation("Small house", earthing="TT", system="1P+N", un="230 V", profiles=["nfc15100"]) as inst:
    with Grid("Utility"), MainBreaker("-Q0", "15-45 A", idn="500 mA", selective=True):
        with RCD("-Q1", "40 A", "30 mA", type="A"):
            Breaker("-Q11", "C16", cable="3G1,5") >> Lighting("Lighting", points=6)
            Breaker("-Q12", "C20", cable="3G2,5 18 m") >> Socket("Sockets", points=8)

for finding in inst.check():
    print(finding)
inst.save("house.uniwire.json")
inst.render("house.pdf")

with 会将一个元素设为其中创建的所有内容的父级,>> 用于串联元素;额定值和电缆按图纸上的写法表示("C16"、"3G2,5 18 m")。请参阅 代码优先 API和 Python API 与 CLI。

路线图

  • 端子、端子排和导线:UEP-0001, 面向 2.0 格式的草案(命名端口、作为对象的端子排、导线和电缆、电势)。
  • 控制原理图:基于命名端口构建的线圈、带交叉引用的辅助触点、端子图和导线编号。
  • 导出:DXF 图纸、用于潮流和短路研究的 pandapower 网络。

欢迎提出想法和格式提案:请参阅 CONTRIBUTING.md。

贡献

欢迎提交错误报告、示例、规则、符号和翻译。请阅读 CONTRIBUTING.md(开发环境设置、测试、 uniwire 改进提案)以及 行为准则。请私下报告安全问题, 详见 SECURITY.md。

许可证

  • 代码、CLI 和 JSON Schema:Apache License 2.0。
  • 规范文本:CC BY 4.0: 可在任何软件中自由实现。
  • 可选数据包 uniwire-data-iec81346(IEC 81346-2 类别表):CC BY-SA 4.0,单独分发 (pip install "uniwire[iec81346]")。

第三方声明请参阅 NOTICE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。