CONTENTS目录
INTRODUCTION一、导语:一个被反复观察到的断层
过去两年,围绕文本到CAD的讨论出现了一个高度一致的观察:给系统一段描述“一个带四个M6沉头孔、外径80mm、壁厚6mm的法兰盘”,多数具备B-Rep输出能力的系统可以给出拓扑完整、尺寸可参数化、能直接在SolidWorks或UG/NX里打开并修改的实体。但如果把描述换成“一台两级圆柱齿轮减速器,含输入轴、中间轴、输出轴、箱体与端盖,要求齿轮啮合正确、轴承可装配、箱体可开合”,生成结果往往在导入后立刻暴露问题:配合面不重合、轴线不同轴、齿轮啮合侧隙为负、连杆机构在运动仿真中报干涉。
这个断层不是偶然的工程噪声,而是当前技术路线的结构性特征。笔者认为,把它简单归因为“模型不够大”“数据不够多”是危险的,因为它掩盖了一个更本质的问题:零件生成与装配生成在数学结构上不是同一类问题。零件生成的核心是“在给定约束下构造一个几何体”,装配生成的核心是“在一组几何体之间建立一组彼此相容的约束,并保证该约束系统可解且解具有工程意义”。前者是构造性问题,后者是约束满足问题(Constraint Satisfaction Problem, CSP)与运动学可行性问题的叠加。
本文不试图给出“某系统已经解决”的结论,而是试图回答三个可检验的问题:第一,断层的确切位置在哪里,能否用可量化的层级刻画;第二,现有研究与方法各自覆盖了哪些层级、遗漏了哪些层级;第三,跨越该边界需要满足什么判据,按当前进展大致处于什么阶段。全文以“约束可满足性”为主线,所有章节围绕这条主线展开。
BACKGROUND二、背景与问题定义:Text-to-CAD到底在生成什么
2.1 概念界定:从文本到可编辑B-Rep
Text-to-CAD指以自然语言(可附带草图、尺寸表、约束说明)为输入,输出计算机辅助设计可用的三维模型表示的方法总称。按输出表示可分为三类:网格表示(mesh)、程序化表示(如CAD命令序列、构造实体几何CSG树)与边界表示(B-Rep)。三者的工程价值差异巨大:网格便于渲染与3D打印,但不可参数化编辑;程序化表示可重放为实体,但对命令序列的正确性要求极高;B-Rep以面、边、顶点及其拓扑关系描述实体,是SolidWorks、UG/NX、CATIA等工业内核的原生表示,因而“可编辑”这一工程诉求基本等价于“输出合法B-Rep”。
需要强调的是,B-Rep的“合法”有严格定义:它要求实体是流形(manifold)、封闭(watertight)、面片之间拓扑一致、无自交。一个在视觉上“看起来像”的模型,可能在B-Rep层面存在微小缝隙或非流形边,导入内核后无法缝合为实体。这是“能看”与“能用”的第一道分水岭。
2.2 装配体的工程定义:不只是多个零件放在一起
在机械设计语境下,装配体(assembly)至少包含四层信息:零件几何、零件间的装配约束(配合,mate)、装配层级结构(子装配、标准件库引用)、以及运动学关系(关节类型、驱动、自由度)。工程上“装配体可用”意味着:约束求解器能求得唯一或有限个合法位形;运动仿真中机构按预期运动且无干涉;BOM与层级结构可维护。这四层信息中,只有第一层与零件生成同构,后三层都是零件生成不涉及的新问题。
2.3 问题的工程表现:三类典型失败
在工程实践中,装配级生成的失败通常表现为三类。第一类是配合失效:生成的两零件配合面在几何上并不接触或存在穿透,导致配合约束无法建立或建立后求解失败。第二类是自由度异常:约束数量与类型不当,造成过约束(over-constrained)或欠约束(under-constrained),前者使求解器无解,后者使装配体在仿真中“散架”。第三类是运动干涉:静态位形下无干涉,但在运动范围内出现零件穿透,这在连杆、齿轮、凸轮等联动机构中尤为常见。
这三类失败对应三个不同的技术短板:几何精度、约束推理、运动学验证。把它们混为一谈,是很多评测与宣传口径失真的根源。笔者认为,任何关于“装配级Text-to-CAD是否可行”的讨论,都必须先声明讨论的是哪一类失败。
FRAMEWORK三、分析主线:约束可满足性的四个层级
为把“单零件行、装配体崩”的模糊观察转化为可分析、可评测的结构,本文提出一个四层级框架。该框架不是对现有方法的分类,而是对“一个装配级生成结果要成立必须满足什么”的逐层拆解。每一层都有明确的数学对象与可检验判据。
这四个层级是包含关系而非并列关系:L1不成立则一切免谈;L2不成立则L3无法建立;L3不成立则L4无从谈起。当前零件级生成基本稳定在L1,部分方法触及L2;装配级生成的主要失败集中在L3与L4。这一判断与公开评测中“单件成功率显著高于装配成功率”的现象一致,也解释了为何“零件能改、装配就崩”。
SINGLE PART四、单零件为何“行”:几何可解性的工程解释
4.1 程序化表示把“生成”转化为“命令序列预测”
单零件生成之所以先取得进展,一个重要原因是主流技术路线把几何生成问题转化成了序列预测问题。以CAD命令序列(如草图、拉伸、倒角、打孔的有序操作)为中间表示,模型只需预测一个合法的命令序列,再由内核执行得到B-Rep。这一转化的关键优势是:合法性由内核保证,模型不必直接输出面片坐标。DeepCAD等工作系统性地建立了这一范式,其核心贡献在于把CAD构造过程建模为命令序列并配套构建大规模数据集。
笔者认为,这一范式的成功有明确的边界条件:命令序列的每一步只依赖当前草图平面与已有实体,构造过程是“局部可验证”的。一旦问题变成多实体协同,局部可验证性就被破坏——每个零件的命令序列单独合法,不代表它们放在一起合法。
4.2 标准件与简单零件的“低约束熵”特征
标准件(螺栓、轴承、法兰、型材)与简单零件(轴、盘、支架)在约束层面具有低熵特征:几何由少量参数决定,特征类型有限且高度重复,配合面通常是规则平面、圆柱面或其组合。这类零件的文本描述本身信息量充足,歧义小,生成结果对参数误差不敏感。工程上,标准件还大量存在于公开零件库中,模型可以通过检索与参数化复用而非纯生成获得,这进一步压低了失败率。
4.3 可编辑性的真实含义与隐性成本
“可编辑”常被当作一个二元属性宣传,但工程上它是有成本的。一个B-Rep实体可编辑,意味着它的特征树或参数化历史可被理解与修改。若输出的是“无历史”的静态B-Rep,工程师改一个孔径需要重新做特征识别,成本可能高于重画。因此,单零件生成的工程价值高度依赖输出是否携带可理解的构造历史。这一点在装配级会被进一步放大:装配约束往往引用零件的特征(如“孔1的轴线”),若特征不可稳定引用,配合就无法建立。
关于CAD命令序列与B-Rep生成的基础性工作,可参考DeepCAD项目页与论文(arXiv:2105.09492),以及后续在命令序列鲁棒性上的改进工作。这些工作共同说明:L1的稳定是有条件的稳定。
ASSEMBLY FAILURE五、装配体为何“崩”:四类失效机理拆解
5.1 机理一:几何误差在配合面上的累积与放大
单零件允许的几何误差,在装配中会被配合关系放大。以孔轴配合为例,若孔的实际位置相对名义位置偏移δ,轴的位置也偏移δ,则装配后同轴度误差可达2δ量级;若配合为过盈或小间隙,误差直接转化为装配失败。更隐蔽的是,生成模型往往在视觉上“贴合”,但B-Rep面之间存在微米级缝隙或重叠,内核在建立配合时判定为“不接触”,导致配合约束无法创建。这类失败在L1看似通过、在L2暴露。
笔者认为,几何误差的根源不只是生成精度,还包括“生成时未以装配为约束”。零件级生成的目标是“这个零件像不像”,装配级生成的目标应是“这个零件与其他零件能否配合”。目标函数不同,误差的分布就不同。
5.2 机理二:约束系统的组合爆炸与可解性判定
装配约束可形式化为一组关于零件位姿的方程。设装配体含n个零件,每个零件位姿为6自由度(刚体),则总自由度6n;每个配合约束消去若干自由度。约束系统可解的必要条件之一是约束之间线性无关且不冲突。工程上,配合类型(重合、同轴、平行、垂直、距离、角度)对应不同的约束方程,其组合数量随零件数呈组合增长。对含数十个零件的整机,可能的配合组合是天文数字,逐一验证不可行。
更麻烦的是过约束与欠约束的判定本身是NP难问题的实例。工程CAD内核通常用数值求解器(如基于牛顿迭代的最小二乘)处理,遇到冲突时给出“过约束”提示,但定位冲突源仍需人工。生成模型若不具备约束推理能力,输出的配合集合很可能在数值上不可解。这是L3失败的主因。
5.3 机理三:运动学可行性与干涉的时序性
即使静态约束可解,联动机构仍可能在运动中干涉。干涉是位形的函数:机构在驱动范围内扫过一系列位形,任一离散或连续位形下两零件体积相交即为干涉。齿轮啮合、连杆机构、凸轮机构的干涉判定还涉及侧隙、间隙与运动副的实际几何。生成模型若只验证静态位形,就会漏掉这类失败。L4的验证需要运动学仿真,而仿真本身依赖正确的关节类型与驱动定义——这又回到L3。
5.4 机理四:工程语义缺失导致的“可解但不可用”
还有一类失败不表现为求解报错,而表现为工程上不可接受:配合方向反了、标准件选型错误、装配顺序不可行、公差链未考虑。这类问题的根源是文本描述与工程语义之间的鸿沟——自然语言很少显式给出配合类型、基准体系与公差要求。生成模型若只追求几何与约束的数值可解,可能给出“数学上成立、工程上荒谬”的结果。笔者认为,这是最容易被评测指标掩盖的一类失败,也是装配级生成真正走向工程应用必须跨越的语义层。
TECH ROADMAP六、技术路线图谱:从零件生成到装配级生成
6.1 路线一:命令序列与程序化生成
该路线以CAD操作序列为中间表示,模型学习“从描述到操作序列”的映射,由内核执行得到实体。其优势是合法性由内核保证、输出天然带构造历史;局限是序列长度随复杂度增长,长序列的错误累积显著,且难以表达装配约束。近年有工作尝试把装配操作也纳入序列(如“插入零件—建立配合”),但序列空间急剧膨胀,训练数据稀缺。
6.2 路线二:B-Rep原生生成与扩散模型
以B-Rep的面、边、顶点及其拓扑为生成对象,直接输出几何。扩散模型在点云与网格生成上的成功被迁移到B-Rep,代表性工作如BrepGen等探索了B-Rep的层次化生成。该路线的理论吸引力在于直接面向工业原生表示,但B-Rep的拓扑约束(如边的两个相邻面)使生成过程必须满足组合合法性,训练与采样成本高。本文评述:该路线在L1上有前景,但对L3/L4没有直接贡献,除非与约束求解器联合。
6.3 路线三:装配约束推理与场景图方法
把装配体表示为场景图(零件为节点、配合为边),用图神经网络或大模型推理配合关系,再交由约束求解器验证。该路线直接针对L2/L3,是当前最接近“装配级”的技术方向。其关键挑战是配合关系的组合空间与求解反馈的利用——如何把求解器的失败信号回传为生成模型的训练信号,是能否闭环的核心。公开工作中,围绕装配配合预测与约束求解的研究正在增加,但大规模、多机构、带运动验证的基准仍然稀缺。
6.4 路线四:大模型作为“装配规划器”+ 工具调用
让大语言模型承担装配规划(分解子装配、选择标准件、给出配合意图),把几何构造与约束求解交给专业工具(CAD内核、求解器、运动仿真)。该路线的工程可行性最高,因为它不要求模型“会画图”,只要求它“会规划并调用正确工具”。局限在于规划的正确性依赖模型对工程语义的理解,且工具调用的错误处理需要工程封装。笔者认为,这是短期内最现实的落地形态,也是本文第九节操作路径的基础。
DATA & CASES七、关键数据与案例:公开基准与工程实测
7.1 数据集与预处理:本文引用的公开资源
讨论Text-to-CAD的数据,绕不开几个公开资源。ABC数据集(包含百万级CAD模型,以STEP格式为主)是零件级生成最常用的训练与评测来源;Fusion 360 Gallery数据集提供了带构造历史的CAD序列,适合命令序列方法;DeepCAD在此基础上构建了命令序列标注。本文引用这些数据集时遵循其原始许可,并做如下预处理说明:对STEP模型统一做单位归一化(毫米)、去除重复实体、按B-Rep合法性过滤(剔除非流形与未封闭实体)、按零件复杂度分层抽样。需要说明的是,这些数据集以单零件为主,装配级标注稀缺,这是当前评测的最大短板之一。
7.2 公开评测呈现的层级落差
从公开工作报告看,零件级生成在“几何合法性”指标上已达到较高水平,而在装配级任务上,配合正确率与运动可行性指标显著偏低。需要谨慎的是,不同工作的评测口径差异很大:有的以“生成文件能被打开”为成功,有的以“约束求解通过”为成功,有的以“人工评审可用”为成功。口径不统一使得跨工作比较困难。笔者认为,这本身就是领域不成熟的表现——一个成熟的领域应有共识的分层基准。
注:表中“高/中/低”为基于公开工作与工程案例的定性整合(模拟数据),用于表达层级落差趋势,不代表精确统计。
7.3 工程案例:一次减速器装配的失败复盘
以两级圆柱齿轮减速器为例,按当前方法生成零件后,常见失败链条如下:齿轮与轴生成成功(L1通过);但齿轮内孔与轴径的名义尺寸一致,未留配合公差,导致同轴配合在求解器中判定为过盈冲突(L3失败);即便放宽配合,齿轮啮合的中心距由箱体轴承孔位置决定,若箱体孔位与齿轮参数不匹配,啮合侧隙为负(L4失败);端盖与箱体的配合面若因生成误差存在微缝,配合无法建立(L2失败)。这条链条说明:装配失败往往不是单点,而是多层级连锁。
关于齿轮与轴类零件的参数化生成与装配,可参考主流CAD厂商的二次开发文档与教程,例如SolidWorks API文档(help.solidworks.com)与Siemens NX Open文档(docs.sw.siemens.com),这些资料对理解“配合在API层面如何被创建与求解”很有帮助。
COMPARISON八、对比与局限:现有方法的边界条件
8.1 方法对比的维度选择
比较不同方法时,若只看“生成质量”会失真。本文主张按四个维度比较:覆盖层级、对求解器的依赖、数据需求、工程可维护性。覆盖层级决定能解决哪类问题;对求解器的依赖决定是否需要工程封装;数据需求决定冷启动成本;工程可维护性决定输出能否被工程师接手修改。按此四维,命令序列方法在可维护性上占优,场景图方法在覆盖层级上占优,大模型规划在冷启动上占优。
8.2 共同局限:缺少装配级基准与失败反馈闭环
现有方法的共同局限有二。其一是缺少公认的装配级基准:零件级有ABC等大规模数据集,装配级缺少带配合标注、运动定义与失败标签的公开数据。其二是失败反馈未闭环:约束求解器能报“过约束”,但这一信号很少被系统性地回传为训练信号。笔者认为,这两个局限互为因果——没有基准就难以系统收集失败,没有失败数据就难以训练能规避失败的模型。
8.3 边界条件:哪些场景已经可用,哪些仍不可用
基于上述分析,可以给出较明确的边界判断。已经可用的场景:标准件选型与参数化、单零件改型、简单两件配合(如轴孔、板件螺栓连接)、以检索复用为主的装配。仍不可用的场景:多机构联动(连杆、齿轮系、凸轮)、含公差链的精密装配、需要装配顺序规划的整机、对运动干涉敏感的场景。介于两者之间的场景:中等复杂度子装配(如电机+联轴器+泵头),在人工介入下可部分使用。
PLAYBOOK九、可操作路径:分阶段落地方法步骤
本节给出可执行的落地路径,按“先约束后生成、先验证后扩展”的原则组织。路径不追求端到端自动化,而追求在现有工具链上把失败率压到工程可接受水平。
9.1 步骤一:建立分层验收标准
在引入任何生成工具前,先定义四层验收:L1用内核缝合与流形检查;L2用配合特征命名与引用稳定性检查;L3用约束求解器求解并记录冲突;L4用运动仿真扫掠并记录干涉。每层给出通过/失败与失败原因码。这一步的成本很低,但能避免“看起来能用”的误判。
9.2 步骤二:以标准件库与参数化模板为底座
优先复用而非生成:螺栓、轴承、型材、法兰等标准件从库中检索并按参数实例化;常用零件(轴、齿轮、端盖)建立参数化模板。生成模型只负责“非标件”与“改型”。这一策略直接降低L1/L2的失败率,因为库与模板的几何与特征命名是稳定的。
9.3 步骤三:把装配意图显式化
不要让模型从自然语言里“猜”配合。用结构化中间表示(如JSON)显式描述:零件清单、基准体系、配合类型与引用特征、关节类型与驱动范围。自然语言只用于生成这份中间表示,几何与约束由工具执行。这一步把L3从“隐式猜测”变成“显式可验证”。
{
"assembly": "two_stage_gear_reducer",
"parts": [
{"id": "shaft_in", "type": "template:shaft", "params": {"d": 25, "L": 180}},
{"id": "gear_1", "type": "template:spur_gear", "params": {"m": 2, "z": 24}},
{"id": "bearing_1", "type": "library:6205"}
],
"mates": [
{"type": "concentric", "a": "gear_1.bore_axis", "b": "shaft_in.axis"},
{"type": "coincident", "a": "gear_1.face_left", "b": "shaft_in.shoulder"},
{"type": "gear_mesh", "a": "gear_1", "b": "gear_2", "backlash_mm": 0.08}
],
"joints": [
{"type": "revolute", "part": "shaft_in", "axis": "shaft_in.axis", "range_deg": [-180, 180]}
]
}
上述中间表示的思路与主流CAD的API模型一致,可参考SolidWorks API与NX Open的配合创建接口。关于装配约束求解的工程实践,Autodesk Fusion 360的装配文档(help.autodesk.com)提供了较清晰的配合类型与求解行为说明,适合作为工程对照。
9.4 步骤四:约束求解前置与失败回传
在生成几何之前,先用简化几何(包围盒、轴线、基准面)验证约束系统可解;求解失败时记录冲突集,作为下一轮生成的约束修正信号。这一“先解约束、后生成几何”的顺序,能把L3失败挡在几何生成之前,显著降低返工成本。
9.5 步骤五:运动仿真扫掠与干涉检查
对含运动的子装配,按驱动范围离散扫掠(建议步长按最小特征尺寸的1/10取),逐位形做体积干涉检查;对齿轮与凸轮,额外检查侧隙与轮廓干涉。把干涉位形与零件对记录下来,回传为约束或几何修正。工程上可借助CAD自带运动仿真或开源工具链完成。
9.6 步骤六:人工评审与知识沉淀
保留人工评审环节,重点检查工程语义:配合方向、标准件选型、装配顺序、公差链。把评审中发现的失败模式沉淀为规则或微调数据。笔者认为,这一环节不是过渡措施,而是长期必要的——工程语义的完整性很难由纯数据驱动方法保证。
CRITERIA十、跨越判据与时间预判
10.1 跨越的判据:可解、可动、可维护
本文主张用三条判据定义“跨过边界”:其一,生成的装配体在主流内核的约束求解器下可解,且冲突可定位;其二,在给定驱动范围内运动仿真无干涉,自由度符合设计意图;其三,输出带稳定的特征命名与层级结构,工程师可在其上做参数化修改而不必重画。三条同时满足,才算真正跨越;只满足第一条,只能算“能打开”。
10.2 时间预判:分场景而非一刀切
时间预判必须分场景。笔者认为:简单两件配合与标准件装配,当前已基本可用,剩余是工程封装问题;中等复杂度子装配(含少量运动副),在未来两到三年内有望在人工介入下稳定可用;多机构联动整机(齿轮系、连杆系、含公差链的精密装配),受限于装配级基准缺失与约束推理难度,短期内难以实现端到端自动生成,更现实的形态是“大模型规划+工具求解+人工评审”的人机协同。任何宣称整机端到端已解决的表述,都应以本文三条判据逐项核验。
CONCLUSION十一、结论与展望
回到文章开头的问题:这个边界什么时候能真正跨过去?本文的答案是:边界的位置是清楚的——它在L3约束可满足性与L4运动学可行性之间;跨越的条件也是清楚的——可解、可动、可维护三条判据同时成立。当前的技术进展在L1/L2上已较扎实,L3有场景图与大模型规划两条可行路线,L4仍缺少系统性的生成侧方法。因此,跨越不会是单点突破,而是“约束推理+求解验证+工程语义”三块短板的同步补齐。
对从业者而言,务实的策略是:不要等待端到端系统,而是按第九节路径,用“约束先行、分层验证、人工兜底”的方式把现有能力用起来,并在使用中积累分层失败数据。这些数据既是工程资产,也是推动方法迭代的燃料。对研究者而言,最紧迫的基础设施是装配级公开基准——没有它,讨论“装配级Text-to-CAD是否可行”将长期停留在口径之争。
REFERENCES十二、参考文献与拓展资源
12.1 主要参考文献(8–9篇)
- Wu R, Xiao C, Zheng C. DeepCAD: A Deep Generative Network for Computer-Aided Design Models. ICCV, 2021. arXiv:2105.09492
- Xu X, et al. BrepGen: A B-rep Generative Diffusion Model with Structured Latent Geometry. ACM Transactions on Graphics, 2024.
- Willis K D D, et al. Fusion 360 Gallery: A Dataset and Environment for Programmatic CAD Construction from Human Design Sequences. ACM Transactions on Graphics, 2021.
- Koch S, et al. ABC: A Big CAD Model Dataset for Geometric Deep Learning. CVPR, 2019.
- Jones B, et al. Automate: A Dataset and Learning Approach for Automatic Mating of CAD Assemblies. ACM Transactions on Graphics, 2021.
- Wang K, et al. CAD-MLLM: Unifying Multimodality-Conditioned CAD Generation. arXiv, 2024.
- SolidWorks API Help. Dassault Systèmes. help.solidworks.com
- Siemens NX Open Documentation. Siemens Digital Industries Software. docs.sw.siemens.com
- Autodesk Fusion 360 Help: Assemblies and Joints. help.autodesk.com
12.2 拓展资源与教程链接
- arXiv cs.GR 最新图形学预印本:跟踪CAD生成方向的新工作。
- DeepCAD 官方代码仓库:命令序列生成的参考实现。
- Fusion 360 Gallery Dataset:带构造历史的CAD序列数据。
- SolidWorks 装配配合教程(视频):理解配合类型与求解行为。
- NX 装配约束教程(视频):工程对照参考。
- Open CASCADE (OCCT):开源B-Rep内核,适合做L1/L2验证实验。
12.3 数据与预处理说明
本文引用的ABC、Fusion 360 Gallery、DeepCAD数据均按其原始许可使用。预处理包括:单位统一为毫米;剔除未封闭与非流形实体;按零件复杂度分层抽样;对命令序列数据做长度截断与填充。装配级数据因公开资源稀缺,本文未做大规模统计,相关“趋势”表述为基于公开工作与工程案例的整合估计(模拟数据),已在正文标注。

