跳转至

CAD-Assistant: Tool-Augmented VLLMs as Generic CAD Task Solvers

会议: ICCV 2025
arXiv: 2412.13810
代码: https://github.com/dimitrismallis/CAD-Assistant
领域: 多模态视觉语言模型
关键词: CAD Agent, 工具增强, VLLM, 几何推理, FreeCAD

一句话总结

提出CAD-Assistant,首个面向通用CAD任务的工具增强视觉大语言模型框架,通过集成CAD专用工具集(草图参数化器、渲染模块、约束检查器等)和FreeCAD Python API,在零样本设置下超越了监督式任务特定方法。

研究背景与动机

计算机辅助设计(CAD)领域长期面临自动化瓶颈。现有研究集中在固定工作流(如3D逆向工程、CAD生成等),通用CAD智能体仍然几乎空白。尽管VLLM在多领域展现了强大能力,但在CAD场景中面临三大核心挑战:

几何推理能力不足:VLLM难以准确理解渲染对象的语义、空间排列和基本体的定位

CAD命令效果不可预测:高级CAD操作(倒角、圆角、几何约束等)对模型拓扑的影响复杂且非直觉,VLLM无法可靠预测

缺乏实际CAD交互:现有方法无法与CAD软件直接交互,生成的设计无法被验证

工具增强(Tool-Augmentation)已被证明能有效缓解基础模型的短板,但在CAD领域尚未被探索。本文正是填补这一空白。

方法详解

整体框架

CAD-Assistant采用"规划器-环境-工具集"的三组件架构。每个时间步 \(t\),规划器分析当前上下文生成计划 \(p_t\) 和动作 \(a_t\)(Python代码),动作在环境中执行并返回反馈,驱动下一步迭代:

\[p_t \leftarrow \mathcal{P}(x_0; c_{t-1}, \mathcal{T})$$ $$a_t \leftarrow \mathcal{P}(p_t; c_{t-1}, x_0, \mathcal{T})$$ $$(f_t, e_t) \leftarrow \mathcal{E}(a_t; e_{t-1}, \mathcal{T}, x_0)\]

其中 \(x_0\) 为多模态用户查询,\(c_t\) 为上下文,\(f_t\) 为代码执行输出,\(e_t\) 为CAD设计的新状态。过程持续迭代直到规划器生成TERMINATE信号。

关键设计

  1. VLLM规划器(Planner)

    • 采用GPT-4o作为核心规划器
    • 接受多模态输入(文本、草图、绘制命令、3D扫描)
    • 生成Python代码形式的动作(而非自然语言指令),可直接使用FreeCAD API
    • 通过上下文拼接机制 \(c_{t+1} \leftarrow \text{concat}(f_t, \{c_s\}_{s=1}^t)\) 维持长期记忆
  2. CAD专用工具集(7种工具)

    • Python:逻辑运算和动作格式化
    • FreeCAD集成:通过Python API直接调用CAD软件
    • Sketch Parameterizer:基于Davinci模型将手绘草图图像转为参数化CAD草图
    • Sketch Recognizer:渲染草图并可视化参数,供规划器理解2D几何
    • Solid Recognizer:渲染3D CAD模型并标注参数,增强3D理解
    • Constraint Checker:分析几何约束的应用效果,判断约束是否破坏几何完整性
    • Crosssection Extractor:从3D网格生成截面图像,用于3D扫描的逆向工程
  3. 几何推理增强策略

    • 参数化策略:point-based表示优于SGPBench的implicit表示(精度从0.674提升到0.748)
    • 序列化策略:schema-embedded格式(JSON, 0.748)优于tabular格式(HTML/CSV/Markdown, ~0.71)
    • 渲染增强:精确渲染(0.754)优于文本描述(0.748),也优于手绘草图(0.616)
    • 过参数化:冗余参数集与point-based相比精度几乎无损(0.747 vs 0.748),但某些任务可能受益

损失函数 / 训练策略

CAD-Assistant是无训练(training-free)框架,不需要任何微调或优化。其核心依赖: - 工具的docstring作为使用说明 - 零样本提示(zero-shot prompting)为主,少样本(5-shot)可进一步提升 - 通过FreeCAD几何求解器验证约束的正确性 - 通过多模态反馈(渲染图像 + JSON参数)进行迭代修正

实验关键数据

主实验

任务 指标 CAD-Assistant GPT-4o Baseline 监督方法 提升
2D CQA (SGPBench) Accuracy 0.791 0.686 - +15.3%
3D CQA (SGPBench) Accuracy 0.857 0.782 - +9.6%
Auto-constraining PF1 0.979 0.693 0.706 (Vitruvion) +38.7%
Auto-constraining CF1 0.484 0.274 0.238 (Vitruvion) +103.4%
手绘草图参数化 Accuracy 0.784 - 0.789 (Davinci) 接近
手绘草图参数化 CD↓ 0.680 - 1.184 (Davinci) -42.6%

消融实验

配置 PF1 CF1 说明
无工具+无docstring (0-shot) 0.726 0.318 基线
+多模态识别器 (MMrecog) 0.747 0.329 渲染辅助理解
+约束检查器 (ConstrCheck) 0.979 0.484 关键提升来源
完整+5-shot 0.981 0.514 少量示例有帮助
完整+5-shot+docstring 0.984 0.529 最佳配置

关键发现

  • 工具增强最关键的贡献来自约束检查器,它使智能体能评估约束应用后的几何变化,避免破坏性操作
  • GPT-4 mini从工具增强获得的收益有限(2D: 0.614 vs 0.594),说明强大的VLLM是工具增强发挥作用的前提
  • 人工评估显示98.5%的工具使用是有效的,少数错误主要来自FreeCAD API的不正确调用
  • 失败案例分析显示大部分错误来自VLLM推理错误(如混淆梯形与三角形)

亮点与洞察

  • 通用性设计:无需训练,通过docstring即可扩展新工具,不受现有CAD数据集命令集的限制
  • 实际CAD交互:生成的FreeCAD代码可编辑、可解释、可直接用于生产
  • 多模态输入支持:从文本描述到手绘草图、3D扫描、绘制命令,覆盖多种使用场景
  • 评估框架贡献:定义了通用CAD智能体的评估标准,整合多个现有CAD基准

局限与展望

  • 依赖闭源GPT-4o作为规划器,成本高且无法本地部署
  • JSON序列化在复杂大型设计中可能产生过长上下文
  • 当前评估以2D草图和简单3D模型为主,工业级复杂CAD模型的能力未充分验证
  • 工具集固定(7种),可探索更多专业工具(如有限元分析、公差分析)

相关工作与启发

  • 与CadVLM/CADLLM等微调方法形成对比,展示了无训练范式的竞争力
  • 工具增强范式可推广至其他工程软件交互场景(如EDA、仿真)
  • Vitruvion在大规模数据上训练却不如零样本的CAD-Assistant,说明约束求解器的反馈至关重要

评分

  • 新颖性: ⭐⭐⭐⭐ CAD领域首个工具增强VLLM框架,填补了重要空白
  • 实验充分度: ⭐⭐⭐⭐ 覆盖CQA/约束推理/草图参数化三大任务,含human evaluation和失败分析
  • 写作质量: ⭐⭐⭐⭐⭐ 框架描述清晰,工具设计动机充分,可视化丰富
  • 价值: ⭐⭐⭐⭐⭐ 对CAD自动化和AI辅助设计具有变革性意义,实践价值极高

相关论文