| name | DrawIO图表绘制专家 |
| description | 当用户需要绘制DrawIO图表时使用,包括:UML图(时序图、用例图、类图、活动图、包图、通信图)、BCE图、VOPC图等各类系统设计图表 |
DrawIO图表绘制完整指南
概述
这个Skill提供完整的DrawIO图表绘制能力,支持多种UML和系统设计图表类型。能够根据用户需求生成符合DrawIO标准的XML格式文件,可直接在DrawIO中打开使用。
核心能力
✅ UML图表 - 时序图、用例图、类图、活动图、包图、通信图
✅ 架构图 - BCE图(Boundary-Control-Entity)、VOPC图
✅ 通用图表 - 流程图、架构图、思维导图等
✅ 专业规范 - 统一配色方案、标准元素样式、清晰布局
图表类型决策树
第一步:确定用户需求的图表类型
问题:用户想要展示什么?
用户需求分析
│
├─ 展示对象之间的时间顺序交互?
│ └─ 【时序图 Sequence Diagram】
│ 关键词:时序、交互、消息传递、调用流程、API调用
│ → 使用 drawio-sequence-diagram.md
│
├─ 展示系统功能和参与者关系?
│ └─ 【用例图 Use Case Diagram】
│ 关键词:用例、功能、参与者、系统边界、actor
│ → 使用 drawio-use-case.md
│
├─ 展示类的结构和关系?
│ └─ 【类图 Class Diagram】
│ 关键词:类、属性、方法、继承、关联、OOP
│ → 使用 drawio-class-diagram.md
│
├─ 展示业务流程或算法流程?
│ └─ 【活动图 Activity Diagram】
│ 关键词:流程、活动、决策点、泳道、workflow
│ → 使用 drawio-activity-diagram.md
│
├─ 展示系统的模块化结构/架构分层?
│ └─ 【包图 Package Diagram】
│ 关键词:包、模块、架构、分层、依赖关系
│ → 使用 drawio-pkg.md
│
├─ 展示对象间的协作关系(强调关系而非时序)?
│ └─ 【通信图/协作图 Communication Diagram】
│ 关键词:协作、通信、对象关系、消息编号
│ → 使用 drawio-communication.md
│
├─ 展示BCE架构(边界-控制-实体)?
│ └─ 【BCE图】
│ 关键词:BCE、boundary、control、entity、三层架构
│ → 使用 drawio-bce.md
│
├─ 展示VOPC相关内容?
│ └─ 【VOPC图】
│ 关键词:VOPC、[根据实际用途补充]
│ → 使用 drawio-vopc.md
│
└─ 其他自定义图表需求?
└─ 【通用图表】
关键词:流程图、架构图、思维导图、拓扑图
→ 使用 drawio-agents.md
各图表类型详细说明
1. 时序图 (Sequence Diagram)
使用场景:展示系统组件之间按时间顺序的交互过程
适用于:
- API调用流程
- 用户操作流程
- 系统间消息传递
- 异步通信流程
详细文档:drawio-sequence-diagram.md
关键特点:
- 生命线表示对象存在时间
- 消息箭头表示调用方向
- 激活框表示对象处理时间
- 支持同步/异步消息
2. 用例图 (Use Case Diagram)
使用场景:展示系统功能和外部参与者的关系
适用于:
- 需求分析
- 系统功能概览
- 用户角色定义
- 功能边界划分
详细文档:drawio-use-case.md
关键特点:
- Actor表示外部参与者
- 椭圆表示用例
- 包含include/extend关系
- 系统边界框
3. 类图 (Class Diagram)
使用场景:展示面向对象系统的类结构和关系
适用于:
- 代码结构设计
- 数据模型设计
- 接口定义
- 继承关系展示
详细文档:drawio-class-diagram.md
关键特点:
- 类的属性和方法
- 继承、实现、关联关系
- 访问修饰符(+、-、#)
- 多重性标记
4. 活动图 (Activity Diagram)
使用场景:展示业务流程或算法的执行流程
适用于:
- 业务流程建模
- 算法流程展示
- 并行处理流程
- 决策分支流程
详细文档:drawio-activity-diagram.md
关键特点:
- 起始/结束节点
- 活动节点
- 决策/合并节点
- 泳道(职责划分)
5. 包图 (Package Diagram)
使用场景:展示系统的模块化结构和依赖关系
适用于:
详细文档:drawio-pkg.md
关键特点:
- 包的层次结构
- 包之间的依赖关系
- 导入/导出关系
- 命名空间管理
6. 通信图/协作图 (Communication Diagram)
使用场景:展示对象之间的协作关系(强调关系而非时序)
适用于:
- 对象协作模式
- 消息传递关系
- 系统交互概览
- 替代时序图(强调关系)
详细文档:drawio-communication.md
关键特点:
- 对象节点
- 带编号的消息
- 关联关系
- 相比时序图更紧凑
7. BCE图 (Boundary-Control-Entity)
使用场景:展示BCE三层架构设计
适用于:
- 软件架构设计
- 三层架构展示
- 职责分离设计
- MVC模式变体
详细文档:drawio-bce.md
关键特点:
- Boundary层(界面层)
- Control层(控制层)
- Entity层(实体层)
- 清晰的职责划分
8. VOPC图
使用场景:[根据实际用途描述]
详细文档:drawio-vopc.md
9. 通用图表
使用场景:其他不属于标准UML的自定义图表
适用于:
- 流程图
- 系统架构图
- 网络拓扑图
- 思维导图
- 组织结构图
详细文档:drawio-agents.md
关键特点:
- 灵活的元素组合
- 自定义样式
- 适应各种场景
- 通用配色方案
统一配色规范
所有图表类型遵循统一的配色方案,确保视觉一致性:
主色系
| 颜色名称 | 颜色代码 | 用途 |
|---|
| 主色调 | #3366CC | 主要组件、界面层、参与者 |
| 副色调1 | #22D3EE | 服务层、次要功能组件 |
| 副色调2 | #27BC9F | 控制层、可选功能 |
| 副色调3 | #6FA3FF | 数据层、子流程容器 |
| 副色调4 | #8B5CF6 | 特殊组件、第三方集成 |
| 强调色 | #EF4444 | 错误、异常、警告 |
文本颜色
- 深色背景上:
#FFFFFF(白色)
- 浅色背景上:
#333333(深灰)
- 标准字体大小:16
线条样式
- 实线:正常调用、关联关系
- 虚线:返回消息、依赖关系(
dashed=1)
- 箭头:表示方向性
自动导出能力(本地优先)
能力目标
在生成 .drawio 文件后,可按用户意图自动导出 png/svg/pdf,并且默认不依赖管理员权限。
触发规则
- 用户提到“导出 / png / svg / pdf / 预览”时:启用自动导出。
- 用户提到“重叠检查 / 自动修复 / 布局优化”时:启用可选自检修复。
运行策略
- Provider 固定为本地链路:
local-cli -> user-node(可选显式配置)
- 禁止远程导出(不上传
.drawio 数据)
- 默认参数:
formats=png,svg
png_scale=4
provider=auto
auto_fix=false
max_iterations=2
脚本入口
- 预检:
python scripts/drawio_preflight.py
- 引导安装:
python scripts/drawio_bootstrap.py --non-admin
- 导出:
python scripts/drawio_export.py --input <file.drawio> --output-dir outputs --formats png,svg --png-scale 4
- 自检:
python scripts/drawio_layout_check.py --input <file.drawio>
详细说明见:
base/drawio-export-cross-platform.md
base/drawio-environment-setup.md
base/drawio-auto-fix.md
工作流程
标准绘图流程
-
需求分析
- 理解用户要表达的内容
- 确定图表类型(参考决策树)
- 识别关键元素和关系
-
选择文档
- 根据图表类型加载对应的详细文档
- 阅读该类型图表的规范和示例
-
生成XML代码
- 按照规范创建DrawIO XML结构
- 应用统一配色方案
- 确保元素ID唯一性
- 合理布局元素位置
-
质量检查
- 验证XML格式正确性
- 检查颜色使用是否符合规范
- 确认布局清晰无遮挡
- 验证所有关系连接正确
-
输出文件
- 保存为.drawio文件
- 如用户要求导出,执行本地自动导出(默认
png,svg)
- 如用户要求自动修复,执行可选自检与最多2轮修复
- 提供导入说明
- 说明图表要点
输出规范
文件命名
[图表类型]-[主题描述].drawio
示例:
sequence-user-login.drawio(用户登录时序图)
usecase-order-system.drawio(订单系统用例图)
class-user-model.drawio(用户模型类图)
导出文件命名
[图表类型]-[主题描述].[格式]
示例:
sequence-user-login.png
sequence-user-login.svg
usecase-order-system.pdf
XML结构规范
<mxfile host="65bd71144e">
<diagram name="图表名称" id="唯一ID">
<mxGraphModel dx="1800" dy="1104"
grid="1" gridSize="10"
guides="1" tooltips="1"
connect="1" arrows="1"
fold="1" page="1"
pageScale="1"
pageWidth="1400" pageHeight="1200"
math="0" shadow="1">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
</root>
</mxGraphModel>
</diagram>
</mxfile>
质量标准
✅ 格式正确 - 可被DrawIO直接打开
✅ 布局合理 - 元素无重叠,间距适当
✅ 颜色规范 - 严格遵循配色方案
✅ 标签清晰 - 中文标签不超过10字
✅ 关系明确 - 连接线清晰,箭头方向正确
✅ 符合规范 - 遵循对应UML标准(如适用)
✅ 导出可用 - 导出脚本可在本地完成 png/svg 产物生成
✅ 策略合规 - 无管理员权限、无远程上传
快速参考
何时使用哪种图表?
| 需求 | 推荐图表 | 原因 |
|---|
| 展示API调用流程 | 时序图 | 清晰展示调用顺序和时间关系 |
| 需求分析阶段 | 用例图 | 快速理解系统功能和参与者 |
| 代码设计阶段 | 类图 | 详细设计类结构和关系 |
| 业务流程优化 | 活动图 | 清晰展示流程和决策点 |
| 系统架构规划 | 包图 | 展示模块化和依赖关系 |
| 对象协作设计 | 通信图 | 强调对象间的协作关系 |
| 三层架构设计 | BCE图 | 清晰划分职责层次 |
| 自定义需求 | 通用图表 | 灵活适应各种场景 |
常见问题
Q: 时序图和通信图有什么区别?
A: 时序图强调时间顺序,通信图强调对象关系。同样的交互用时序图表达更直观,用通信图更紧凑。
Q: 如何选择包图还是类图?
A: 包图用于高层次的模块设计,类图用于详细的类结构设计。包图是宏观的,类图是微观的。
Q: 活动图和流程图有什么区别?
A: 活动图是UML标准,支持泳道、并行流程等高级特性。流程图更通用,适合简单流程。
Q: 必须严格遵循配色方案吗?
A: 是的。统一配色确保所有图表视觉一致,提升专业性和可读性。
基础知识
DrawIO文件结构
详细的DrawIO基础操作和元素定义请参考:drawio-basics.md
关键概念
- mxCell: DrawIO中的基本元素
- vertex: 顶点元素(节点、形状)
- edge: 边元素(连接线)
- geometry: 元素的位置和尺寸
- style: 元素的样式属性
使用示例
示例1:创建用户登录时序图
用户请求:"帮我画一个用户登录的时序图"
处理流程:
- 识别关键词"时序图" → 加载
drawio-sequence-diagram.md
- 识别参与者:用户、前端、后端、数据库
- 识别消息流:输入账号密码 → 发送请求 → 验证 → 返回结果
- 应用时序图规范生成XML
- 使用统一配色方案
- 输出
sequence-user-login.drawio
示例2:创建电商系统用例图
用户请求:"画一个电商系统的用例图,包括用户、管理员、商品管理、订单管理"
处理流程:
- 识别关键词"用例图" → 加载
drawio-use-case.md
- 识别参与者:用户(左侧)、管理员(右侧)
- 识别用例:浏览商品、下单、支付、商品管理、订单管理
- 建立关联关系
- 应用用例图规范
- 输出
usecase-ecommerce-system.drawio
注意事项
⚠️ 重要提醒
- 唯一ID:每个元素必须有唯一的ID,避免冲突
- 坐标系统:DrawIO使用像素坐标,注意元素不要超出画布
- 连接关系:edge元素的source和target必须指向有效的vertex ID
- 样式属性:style字符串中各属性用分号分隔
- 中文编码:确保XML文件使用UTF-8编码
- 线条避让:注意连接线不要穿过其他元素
- 字体大小:标准字体大小为16,保持一致性
总结
这个Skill提供了完整的DrawIO图表绘制能力,覆盖9种常用图表类型。通过决策树快速确定图表类型,加载对应的详细规范,生成符合标准的DrawIO文件。
核心优势:
- 📊 全面覆盖常用UML和系统设计图表
- 🎨 统一的专业配色方案
- 📐 严格的规范和标准
- 🔄 清晰的工作流程
- ✅ 高质量的输出
开始使用时,只需告诉我您想画什么图,我会自动选择合适的图表类型并生成专业的DrawIO文件!
版本: 1.0.0
最后更新: 2024-12-20
维护者: DrawIO Skill Team