案例

CAD 图纸转 3D 模型 AI Agent

基于 LangGraph 的 DXF 到 Blender 建模 Agent,覆盖 CAD 解析、LLM 建模规划、Human-in-the-loop 确认、执行适配器和验证反馈循环。

工作流
5 个 LangGraph 节点
parse、plan、confirm、execute、validate 组成显式状态流。
执行层
BlenderTool 双适配器
Background 和 MCP 两种运行方式共享同一工具接口。
复核边界
Human-in-the-loop
建模计划必须经过确认、修改或重做路径后才能执行。
验证结果
16/16 单元测试通过
核心状态流、解析、工具抽象和验证逻辑具备可复查证据。

这个项目把 CAD 图纸转 3D 模型拆成可追踪的 Agent 工作流,而不是让模型一次性生成结果。重点是状态边界、工具权限、人工确认和验证反馈都能被单独解释。

MVP 范围被限定在单房间建筑实体:墙体、门窗、柱等结构先进入 DXF 解析,再由 LLM 生成 Blender 操作计划,用户确认后才进入执行和验证。

图文说明

Agent 工作流

README 展示 parse、plan、confirm、execute、validate 五节点状态图,以及 DXF → cad_features → Blender 操作 → 验证反馈的完整链路。详见 github.com/sheengoa/cad-to-3d-agent。

CAD 图纸转 3D 模型 AI Agent 的状态流信息图
DXF 解析、建模规划、人工确认、Blender 执行和验证反馈构成可追踪的 Agent 状态流。

项目定位

这个项目不是通用 CAD 建模平台,而是一个公开可复现的 Agent 工程样本。它用 DXF 图纸到 Blender 模型的链路展示解析、规划、工具调用、人工确认和验证反馈如何被拆成稳定的状态节点。

状态节点
5
parse、plan、confirm、execute、validate 形成显式工作流。
适配器
2
Background 与 MCP 共用 BlenderTool 抽象。

问题背景

CAD 转 3D 的难点不只在生成模型,还在每一步都可能失败:图层命名不稳定、几何解释有歧义、LLM 规划可能遗漏实体,Blender 执行也可能因为参数或环境问题中断。

  • 输入侧需要把 DXF 几何整理为 LLM 能理解的 cad_features。
  • 规划侧需要输出可审查的操作计划,而不是一段不可执行的自然语言建议。
  • 执行侧需要把高成本建模动作放在人工确认之后。

边界与约束

  1. 建模计划必须经过 Human-in-the-loop 节点确认。
  2. Agent 层不能绑定单一 Blender 运行方式。
  3. 验证失败要回流到规划节点,而不是只返回一个失败状态。

系统架构

  1. 01

    Parse

    使用 ezdxf 读取 DXF,提取几何并整理为 cad_features。

  2. 02

    Plan

    让 LLM 基于建筑语义生成结构化 Blender 操作计划。

  3. 03

    Confirm

    把计划交给用户确认、修改、重做或取消。

  4. 04

    Execute

    通过 BlenderTool 适配器执行创建墙体、门窗、材质和保存文件等动作。

  5. 05

    Validate

    结合几何硬校验和 LLM 语义复核判断模型是否可用。

关键实现

规划节点不是输出一段建议,而是输出操作级动作:创建墙体、放置门窗、设置材质、保存文件。执行器只需要检查参数和顺序,不需要重新理解整段需求。

  • 输入保持为 DXF 几何和建筑语义特征。
  • 输出保持为可审查、可修改的 Blender 操作计划。
  • 失败反馈回到规划节点,而不是直接结束流程。

技术取舍

项目没有把重点放在覆盖所有 CAD 规范,而是先把单房间链路做成可解释、可测试、可失败回滚的工作流。这个取舍让作品集证据集中在 Agent 工程能力,而不是被大量边缘格式吞没。

  • 用 LangGraph 表达显式状态流,牺牲一点简单脚本速度,换取节点职责和失败路径清晰。
  • 用 LLM 做建筑语义识别,减少早期对 CAD 图层命名规则的硬编码。
  • 用 BlenderTool 抽象隔离执行环境,让 Background 与 MCP 适配器可以共享操作语义。

验证方式

验证被拆成几何硬校验和 LLM 语义软校验。前者检查实体数量、尺寸和文件输出,后者复核模型是否符合建筑常识和输入意图。

  1. 验证通过时输出最终模型和过程记录。
  2. 验证失败时把原因写回状态,触发有限次数的重新规划。
  3. 每次失败都保留上下文,便于说明错误来自解析、规划还是执行。

结果与证据

仓库提供 Agent 骨架、DXF 解析、规划确认、Blender 执行和验证闭环的代码证据。README 里展示五节点状态图、运行步骤和本地复现说明。

单元测试
16/16 PASS
覆盖状态流、解析、工具抽象和验证逻辑。
能力证据
Agent 工作流
状态管理、工具边界、人工复核和反馈闭环都能被单独审阅。

复盘与下一步

这次实现证明了把 Agent 拆成状态节点比一次性提示词更适合作品集说明:每个节点都有输入输出、失败条件和可替换边界,面试时也能沿着图纸到模型的链路解释工程判断。

  • 下一步可以扩大 DXF 样例覆盖,验证不同图层命名和尺寸单位对解析结果的影响。
  • 可以把验证报告结构化输出,便于对比每轮重新规划的改动。
  • 如果继续产品化,需要补充更强的预览和人工编辑入口,而不是只依赖文本确认。

相关笔记