关注下方“公众号”,获取更多开源资讯
导读
CAD 是现代制造设计的核心工具,但从工程图纸到可编辑的参数化 3D 模型,仍高度依赖工程师反复建模、验证和修正。现有自动 CAD 方法大多走“open-loop、one-shot”路线:模型一次性生成完整代码,若出现几何偏差、拓扑缺陷或运行错误,系统很难像工程师一样继续定位问题并局部修复。
论文提出 IterCAD,一个面向 CAD 生成与编辑的多模态闭环 Agent,把任务建模为 Agent 与可执行 CAD sandbox 的多轮交互,覆盖 Drawing-to-Code、Text-to-Code、Interactive Editing三类任务。基于 28K SFT 轨迹、2K hard Drawing-to-Code RL 样本、8×A100 训练,IterCAD 在 IterCAD-Draw 上把 Agentic Workflow 的无效率降到 0.30%、AUC-TR 提升到 0.61;在 IterCAD-Edit 上达到 1.00% IR,显著优于同底座 Qwen3.5-4B 的 63.00% IR。
文章信息
-
标题:IterCAD: An Iterative Multimodal Agent for Visually-Grounded CAD Generation and Editing -
作者:Tao Hu、Jiaxin Ai、Licheng Wen、Xueheng Li、Shu Zou、Siqi Li,等 -
机构:上海人工智能实验室、中国科学技术大学、上海科技大学、武汉大学、澳大利亚国立大学、浙江大学、复旦大学 -
项目:https://github.com/gumyr/build123d
一、背景与挑战
工程师做 CAD 设计很少“一步到位”。真实流程通常是先根据图纸或需求生成初版模型,再通过编译报错、几何预览、尺寸对齐和局部修改不断修正。论文指出,当前 CAD 自动化方法与这一实践存在错位:多数方法直接从文本、图片或工程图中生成完整 CadQuery / Python 程序,缺少中间验证与自我修复机制。
这种 open-loop 范式在工业 CAD 中尤其脆弱。CAD-Coder、CADrille 等代码生成式方法能输出可执行参数化脚本,但容易出现细小几何不一致、拓扑缺陷或运行错误;这些问题看似局部,却会导致模型不可执行或产生明显视觉伪影。已有多轮方法尝试用执行环境反馈来修复,但反馈信号通常很粗:编译器只能告诉代码是否能运行,无法判断几何逻辑是否正确;Chamfer Distance 等点云距离只能给出全局形状差异,难以定位是哪个 2D 草图尺寸、倒角、壳体或拓扑实体出了问题。
评测协议也存在“幸存者偏差”。传统 CAD 指标通常只在成功执行的代码上计算几何距离,无法执行的样本被排除在均值之外,导致系统真实鲁棒性被高估。对于制造设计场景来说,能否生成合法代码与几何是否精确同样重要;如果一个模型经常运行失败,即使少数成功样本 Chamfer Distance 很低,也不能说明它适合工业使用。
图片来源于原论文
二、IterCAD 框架与闭环交互机制
IterCAD 的核心思想是把 CAD 生成改写为 Agent 与 CAD sandbox 的多轮交互。系统不再一次性给出最终程序,而是在每一轮输出一个结构化 action:先用 <thinking>给出反馈诊断、几何推理与修改计划,再输出 CadQuery 代码块或 <DONE>完成标记。Sandbox 负责执行代码,并返回编译、渲染与几何反馈,Agent 再根据历史轨迹继续修正。
图片来源于原论文
论文将 IterCAD 统一到三类设计任务中:第一类是 Drawing-to-Code,输入带正交视图与尺寸标注的多视图工程图 ,输出可执行 CadQuery 程序;第二类是 Text-to-Code,根据自然语言需求 生成参数化模型;第三类是 Interactive Editing,给定已有源程序 与增量编辑指令,在保留无关结构的前提下完成局部修改。
在第 轮,Agent 观察完整交互历史:
其中 是系统提示, 是初始参考上下文,可以是工程图、文本需求或源代码; 是第 轮生成的代码, 是 CAD sandbox 返回的多模态反馈。这样的历史保留机制让 Agent 能基于先前失败原因进行有证据的局部修改,而不是每一轮盲目重写。
Sandbox 的反馈不止是编译日志。论文强调,IterCAD 利用 OCCT kernel 将生成的 solid 投影为标准正交视图,并从底层几何中直接计算线性尺寸、弧半径等显式标注,作为视觉反馈 。这使 Agent 可以对照原始工程图检查“哪里不一致”,更接近工程师用图纸校验模型的方式。
三、数据构建、训练方案与评价指标
IterCAD 的数据构建分为 CAD pairs 和 expert trajectories 两层。CAD pairs 覆盖三类数据:Drawing-Code pairs、Text-Code pairs 和 Edit-Code pairs。Drawing-Code pairs 通过定义高级操作空间合成复杂零件,并用 SolidWorks COM 接口生成符合标准的多视图工程图;Text-Code pairs 基于 Text2CAD 原始描述,经过 LLM 标准化文本并转成 CadQuery 代码,再用 sandbox 与 Chamfer Distance 过滤;Edit-Code pairs 则从已验证脚本出发,通过参数扰动、顶点错置、特征替换等方式构造有缺陷的源代码,并配套编辑指令与目标代码。
图片来源于原论文
用于冷启动 SFT 的 expert trajectories 由 Qwen3-VL-235B-A22B-Instruct 在 IterCAD 协议下滚动生成。每条轨迹由需求分析、CadQuery 代码、sandbox feedback 多轮组成,并以 <DONE>自终止。论文用三道过滤保留高质量轨迹:格式合规检查剔除不符合 reasoning-code schema 的输出;逻辑一致性检查剔除推理与动作或反馈矛盾的轨迹;几何正确性检查要求最终程序能执行且满足
。
训练采用两阶段方案。第一阶段是 progressive cold-start SFT,先用专家轨迹 建立工程规格到可执行 CadQuery 程序的基本映射,再用 on-policy rollout 收集当前策略常见失败,由更强教师模型根据环境反馈与渲染观察合成修正动作,得到 。SFT 目标为:
第二阶段是 geometry-aware RL。论文采用 GSPO 做序列级策略优化:对同一个设计规格 采样 条轨迹,并基于组内 reward 标准化计算优势:
奖励由几何精度、格式合规和多轮进展三部分组成:
其中 将 Chamfer Distance 映射到 区间; 要求每个中间轮次都包含结构化 reasoning trace 与可执行代码块,并以完成标记正确结束; 奖励至少两轮可执行、初始轮几何有效、CD 单调下降并低于阈值 的轨迹。
为解决多轮 RL 中的 credit assignment 问题,论文提出 Geometry-Viable Prefix Masking(GVPM)。当轨迹出现 次连续 runtime error,或连续 个有效轮次 CD 停滞且仍高于质量门限 时,系统确定 prefix boundary:
评价方面,论文构建 IterCAD-Bench,包含 1K drawing-to-code tasks和 200 local editing tasks;外部还评测 Text2CAD Bench 的 8,046 multimodal parts和 CADPrompt Bench 的 200 expert instructions。核心指标包括 Invalid Ratio(IR)、Mean / Median Chamfer Distance、Average Turn,以及论文提出的 CD-TR Curve 与 AUC-TR。CD-TR 在阈值 下定义为:
无效样本仍保留在分母中,并在所有阈值下贡献零召回,从而消除幸存者偏差。AUC-TR 则在固定 log-scale CD tolerance 范围内积分并归一化到 :
四、实验结果与对比
训练配置方面,IterCAD 使用 28K SFT trajectories,其中20K expert DS1用于代码生成基础能力,8K on-policy DS2用于迭代修正;RL 阶段使用2K hard Drawing-to-Code samples。模型从Qwen3.5-4B初始化,使用 Swift 在8 张 NVIDIA A100 GPU上训练;SFT 训练3 epochs,学习率 ;GSPO RL 使用 group size ,学习率 ,最大交互轮数 ;奖励权重设为 、 ,GVPM 的触发窗口 。
IterCAD-Draw 结果显示,闭环 Agent 对工程图反推 CAD 代码非常关键。Direct Inference 设置下,IterCAD 的 IR 为 6.50%,AUC-TR 为 0.54,优于 GPT-5 的 28.10% IR / 0.41 AUC-TR,也优于 GLM-4.6v 的 27.50% IR / 0.36 AUC-TR。与同底座 Qwen3.5-4B 相比,IterCAD 将 IR 从 95.30%降至 6.50%,AUC-TR 从 0.03提升到 0.54。
|
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| IterCAD | 6.50 | 0.54 | 0.30 | 0.61 | 5.09 | 2.48 |
IterCAD-Edit 也体现出训练范式对局部编辑能力的帮助。IterCAD 的 IR 为 1.00%,AUC-TR 为 0.54,Mean CD 为 7.52,平均 2.34 轮完成;同底座 Qwen3.5-4B 的 IR 为 63.00%,AUC-TR 为 0.18,平均 4.49 轮。GPT-5 在编辑任务上 AUC-TR 最高,达到 0.79,IR 为 0.50%,但 IterCAD 在无效率和交互效率上已经接近 GPT-5,并显著超过多数开源模型。
图片来源于原论文
消融实验清晰展示了每个训练组件的作用。
|
|
|
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| IterCAD-Full |
|
|
|
|
0.30 | 0.61 | 5.09 | 2.48 |
难度分层结果进一步证明 IterCAD 不是只学会简单 sketch-and-extrude。IterCAD-Draw 中 Easy 与 Hard 各 500 个样本,Hard 涉及 holes、blind cuts、Boolean combinations、shell、fillet、chamfer、through-cuts 等复杂操作。
定性案例展示了闭环反馈的实际价值。Figure 10 中,IterCAD 初始 Drawing-to-Code 尝试因 CadQuery 不支持 polar方法失败,随后根据 sandbox 报错改用 workplane().center(x,y)和三角函数定位,继续修正圆盘、中心孔和四个外围孔。Figure 11 中,Text-to-CAD 初始代码生成了偏移圆柱并漏掉同心通孔,IterCAD 根据反馈将外圆柱和内孔放到同一中心工作平面上。
五、总结与思考
IterCAD 对制造设计自动化的意义,在于把 CAD Agent 从“生成一段代码”推进到“能在工程反馈中持续修正”。工业 CAD 不是单纯的 3D 形状生成,真正重要的是代码可执行、参数可编辑、尺寸能对齐、几何拓扑稳定。论文用工程图作为视觉锚点、用 CAD sandbox 返回编译和几何反馈,再用 CD-TR / AUC-TR 把失败样本纳入评测,解决了以往只看成功样本几何距离的偏差。
从结果看,小底座模型经过面向 CAD 的闭环训练后,可以在代码有效性和几何收敛上超过更大的通用模型。IterCAD 基于 Qwen3.5-4B,却在 IterCAD-Draw Agentic Workflow 中达到 0.30% IR和 0.61 AUC-TR,而 Qwen3.5-35B-A3B 仍为 37.50% IR和 0.36 AUC-TR。这对产业落地有直接启示:CAD 自动化不能只依赖更大模型,还需要可执行环境、工程图反馈、几何奖励和面向多轮修正的数据。
论文也指出了边界。IterCAD 主要聚焦单零件参数化建模和特定 drawing standards,距离大型装配级协同设计仍有距离;当前指标依赖 Chamfer Distance,难以完整表达 keyways、bearing fits、thread specifications 等高层机械语义与制造意图;虽然模型能生成可执行代码,但有时会优先追求短期几何收敛,产生 hard-coded、层次结构不够清晰的实现,不利于工程师后续维护。下一步如果要进入真实 CAD/CAE/CAM 生产链路,需要把闭环几何修正扩展到装配关系、设计树可维护性、制造约束和团队协作语义。
Coovally 团队在视觉算法开发中也在实践 AI 编码工具与 Agent 工作流。如果您对 AI 辅助开发的落地经验感兴趣,欢迎评论区交流~
© THE END
转载请联系本公众号获得授权
分享、点赞与在看,至少帮我拥有一个~

