资讯动态

Text-to-CAD:自然语言直接生成可编辑三维模型的技术解析与实战

发布时间:2026/10/26 7:42:23 来源:尧图企业网站定制
text-to-cad 这个名字最近在机械设计、3D打印和工业制造圈子里突然就热了起来。我最早是在一个开源社区的帖子底下看到这个词的点进去之后翻了半天又顺着索引连看了好几篇论文和项目仓库才意识到这东西可能真的会改变我们画图的方式。它不是一个具体的软件而是一类技术的总称直接把一句自然语言描述比如“一个带有四个矩形安装孔的法兰盘外径100毫米厚度10毫米”自动转换成可以编辑、可以导出、可以拿去加工的三维CAD模型。换句话说你不用再打开SolidWorks或者Fusion 360一点一点拉草图、做拉伸了对着对话框说清楚你要什么模型就出来了。这篇文章我打算把text-to-cad从原理到实操完整拆开来讲。内容包括它的技术路线到底是什么、为什么现在这个时间点突然能做成了、有哪些能用的工具和模型、完整的操作流程长什么样、以及我自己在测试过程中踩过的几个典型坑。不管你是做机械设计的工程师、搞3D打印的爱好者还是对AI生成3D内容感兴趣的技术人这篇文章应该都能给你一些可以直接拿去用的东西。1. text-to-cad的整体思路拆解1.1 它到底要解决什么问题传统的CAD建模流程本质上是一个“人把脑子里的想法翻译成软件能懂的操作序列”的过程。你想画一个支架先得新建草图选基准面画中心线、画轮廓、标尺寸、加约束然后退出草图、选拉伸、输距离。一个稍微复杂点的零件光特征树里就有几十步操作。这个过程有两个很要命的瓶颈一个是慢另一个是强依赖操作者的软件熟练度。同一个零件给一个用了十年SolidWorks的老手和一个刚入门的新手效率差距可能是十倍以上。text-to-cad想做的事情是把上面这个“人翻译给软件听”的过程彻底反转过来变成“人直接说需求软件自己生成结果”。需求是开放的结果也是开放的几何形体这就和传统的参数化建模里那种“填参数生成固定形状”完全不是一回事。参数化建模是你把一个长方体的长宽高填进去得到的长方体永远不会变成圆柱而text-to-cad是你说“给我一个过渡支架”模型自己决定该用什么形状、什么结构来实现这个描述。从我实际使用下来看它当前最实用的场景还不是替代工程师做完整的设计而是帮你在项目前期的概念设计阶段快速出方案。比如客户要一个外壳你先用text-to-cad生成三五个不同风格的粗略造型然后挑一个最顺眼的再导入到正式CAD软件里做精细化设计。原来这一步可能得一两个小时现在几分钟就能过一遍。1.2 核心设计思路让模型直接输出CAD原生格式很多人第一次看到text-to-cad第一反应是“这不就是文生图吗让AI画一张图然后转成模型”。这里有一个很关键的认知偏差需要纠正如果只是生成一张效果图或者一个网格模型那对实际工程是没用的。你拿到一个STL网格文件想在SolidWorks里给它加个螺纹孔或者把某个壁厚改薄一点你会发现根本无从下手因为网格模型里没有特征历史、没有参数约束、没有可编辑的几何拓扑。所以text-to-cad从一开始就走了一条更硬核的路线让模型直接输出CAD原生的边界表示格式也就是工程师常说的B-Rep格式。用这种格式描述一个圆柱体它会记录下圆柱的侧面、顶面和底面这三张曲面以及它们之间的交界边和顶点。这才是CAD软件能认、能改的“真模型”。这个选择带来的技术复杂度是指数级上升的。文生图模型里每个像素点相互之间没有严格的拓扑约束稍微歪一点点肉眼看不出来但CAD模型里一张曲面和另一张曲面必须严丝合缝地接在一起差一个微米这个模型在后续的布尔运算里就会出问题。模型不能只生成“看起来像”的几何必须生成“拓扑正确”的几何。2. 关键技术拆解2.1 三维模型在AI面前是怎么被“表示”的要让AI处理CAD模型第一关就是解决表示问题。图像有像素网格语言有token序列但CAD模型是连续的曲面组合AI不认识这种东西。业内目前主流有三条路线我分别说一下它们各自的思路和局限性。第一条路线是体素法。把三维空间切分成一个个小立方体格子有实体的格子标1空的标0。这个办法理解起来最简单实现起来也最容易但精度是个大问题。你想要0.1毫米的精度在100毫米大小的空间里就得切出1000个格子总共十亿个格子计算量直接爆炸。所以体素法基本只用在AI生成3D内容的早期探索里实际CAD场景用得很少。第二条路线是点云法。用一大堆三维坐标点来表示曲面形状比如一个平面用几百个均匀分布的点来表示。点云的好处是精度不受网格分辨率限制取点密度够高就能描述复杂曲面。但点云没有“面”的概念你不知道哪些点连成一张面、哪张面和哪张面相交所以点云模型同样不能直接进CAD软件进行编辑。第三条路线是直接把CAD原生的边界表示丢给AI。这是目前text-to-cad主流模型选择的路线也是技术上最难的。输入输出都是面、边、顶点、曲面类型和参数AI在训练时真的在“学”理解几何拓扑。为了让这个过程可行研究者做了一件很聪明的事情把B-Rep几何转成一张图结构。面、边、顶点是图的节点它们之间的邻接关系是图的边然后再用图神经网络来提取特征。这样AI看到的就不是一堆数学曲面方程而是一个它可以理解的拓扑结构。2.2 为什么这里用的是自回归生成而不是扩散模型当前的大语言模型大家都很熟本质是自回归生成一个词一个词地往外蹦每次都基于前面已经生成的内容预测下一个词。text-to-cad的很多核心模型也采用了完全一样的思路只不过生成的目标从“词”换成了“CAD操作序列”。你让模型生成一个轴套模型生成的可能不是直接描述几何形状而是生成一串指令新建草图、在某个平面上画两个同心圆、外圆直径50、内圆直径30、退出草图拉伸成40毫米高的圆柱、再在中间打个通孔。这个过程和人类工程师建模的步骤高度接近。选择自回归而不是扩散模型有一个很实际的考量CAD软件的操作本身是序列化的每一步都依赖上一步的结果如果你一次性端出整个模型的特征树计算量巨大而且很难保证每一步之间有逻辑上的先后关系。自回归生成天然契合这种设计而且如果生成到某一步发现错了你还能知道错在哪一步便于修正和重试。2.3 数据集是怎么来的程序化合成数据的艺术聊到AI就绕不开数据。text-to-cad面临一个先有鸡还是先有蛋的问题训练需要大量“文本-模型”配对数据但世界上并不天然存在这种东西。人工标注一个大模型的训练集成本高到无法想象。于是大多数项目走了程序化合成这条路。研究者写了一套非常庞大、规则严谨的CAD建模程序把人类工程师常用的建模操作全部编码进去拉伸、旋转、扫掠、放样、布尔运算、倒角、圆角、阵列、镜像。然后随机组合这些操作遍历各种参数取值自动批量生成海量的CAD模型。每一个模型在生成的时候对应的操作步骤和参数是程序里现成知道的研究者再把这些操作步骤用自然语言描述给语言模型听让LLM写一段“操作说明”再把这段说明配上数据集里的模型构成“文本描述-操作序列-最终模型”三件套。这个过程中最难的不是建模程序的编写而是保证合成数据的多样性。如果程序只会随机调整圆角大小和孔的数量生成一万个模型也都在同一个分布里模型训练出来就是个“只会画法兰盘”的人工智障。所以好的合成数据集一定会精心设计“建模模板库”模板覆盖的类型越广模型见过的人类设计模式才越多。2.4 评估模型好坏的硬指标判断text-to-cad生成出来的东西好不好这个领域也不是外行看热闹、靠肉眼评分的。圈子里目前比较认可的评价维度有这么几个。几何精度看的是生成模型和参考模型之间的偏差一般用倒角距离来算它同时衡量了形状有没有贴近、位置有没有对齐。拓扑一致性看的是面数、边数、顶点数以及它们之间的连接关系是不是和参考模型稳定匹配拓扑错了模型看着再像也是废的。特征完整性则是工程师视角最关心的比如要求生成“四个孔”生成结果到底是不是四个孔位是不是等间距分布在法兰分度圆上。除了这些客观指标还必须配人工评估。让工程师对着屏幕肉眼判断生成结果“像不像”、“能不能用”。客观指标和人工评估有时候会打架我测过的几个模型里就出现过指标分很高但肉眼一看就发现螺纹高度完全不对的情况。3. 工具与模型生态选型3.1 开源项目里值得关注的三条线text-to-cad目前还没有一个像ChatGPT那样让全民都上手的杀手级产品但在开源社区已经有一些项目能跑出不错的结果了。Zoo Kitty是那个背着大部分功劳的开源项目它基于MuseCatenation框架主要支持生成2D草图轮廓再通过拉伸转成3D实体输出的格式是JSON配合FreeCAD的插件包可以直接把生成结果转化成可编辑的CAD模型。对这个领域的开发者来说它最大的意义是提供了一个完整的、工程可用的参考管线从模型训练到后处理导出都给你把路径趟好了。另一个方向的代表是微软的Text2CAD项目。这个项目走了参数化CAD路线用的是DeepCAD架构通过CAD操作序列的方式生成模型。它发布了完整的训练代码、合成数据集和模型权重你想本地跑起来复现论文效果从这个项目入手是最快的。再有一个我比较关注的是边界表示生成方向比如Sheikh等人提出的BRepGen。它直接生成边界表示结构保留了完整拓扑信息生成的模型可以被主流CAD软件直接打开编辑。虽然这个项目还处在研究阶段的前沿位置模型稳定性和生成速度都不如前面两个成熟但它代表的是更接近终极形态的方向值得盯住。3.2 商业软件厂商的动静除了开源社区商业CAD平台也嗅到了这个方向的机会。Autodesk在Fusion 360里集成了AI辅助生成的功能可以直接用自然语言描述生成特定形状的3D模型走的是自家数据中心和生成模型的路线。这部分能力目前更多是嵌入到“生成式设计”整体框架里不是单独拆开卖的一个功能但已经能在常规建模里明显感觉到AI介入的程度在提升。PTC的Creo平台也推出了一套AI辅助工具比较侧重在已有的设计规范和企业标准框架下进行生成做出来的模型合规性更好但对使用者来说自由度感觉会低一些。比较有意思的是一些新兴的创业团队专门做纯网页端的text-to-cad工具。输入一句话浏览器里直接出模型还能在线编辑导出STEP文件走加工流程。这类工具我实际体验了几个完成度参差不齐有的在简单规则形状上表现出乎意料地好一碰到复杂曲面就直接露馅。3.3 我怎么选工具给你一张对照表每个工具都有自己的擅长范围。我给你整理了一张选型对照表方便你按需选择工具技术路线适合人群输出格式代表作/平台Zoo Kitty2D草图拉伸教育和轻量级场景JSONSTEPZoo游乐园套件Microsoft Text2CAD参数化CAD操作研究者、想跑通完整流程的人参数化步骤GitHub开源BRepGen边界表示直接生成关注前沿技术的开发者B-Rep格式论文配套代码Fusion 360 AI企业级生成设计机械工程师Fusion原生格式STEPAutodesk Fusion 360Creo AI辅助生成式设计规范约束制造业工程师Creo原生格式PTC Creo对普通用户我的建议是如果只是好奇体验先玩Zoo Kitty门槛最低几分钟就能跑通如果要做正经项目考虑在Fusion 360里试AI辅助工程化程度高出问题的概率小如果你要训练自己的模型或者做技术预研再去啃Text2CAD的源码。4. 实操过程与核心环节实现4.1 环境准备跑通一个最小Demo我想先带你把整个流程跑通一遍用Zoo Kitty加FreeCAD的组合全程本地运行不依赖任何云服务。第一步是搞定Python环境。我建议用conda单独建一个环境Python版本选3.10就行版本太高或太低都可能踩兼容性问题。然后在环境里安装Zoo Kitty的依赖核心是PyTorch、HuggingFace Transformers和openai等几个库。我这里直接用pip安装conda create -n zk python3.10 -y conda activate zk pip install torch transformers openai装完之后从GitHub把项目仓库克隆下来里面会包含模型代码、训练脚本和推理脚本。项目对显存的要求不算太离谱官方给的参考值是至少需要12GB显存才能跑完整模型如果你只有8GB显存通过降低batch size和启用梯度检查点勉强也能跑起来就是速度会慢不少。第二步是下载预训练权重。Zoo Kitty的模型权重托管在HuggingFace上你需要用命令行工具下载huggingface-cli download zoocad/ZooCat --local-dir ./weights这个下载过程可能要一段时间文件比较大建议挂个代理或夜间下载。第三步是配置FreeCAD。FreeCAD自带Python环境但你不一定需要真的打开GUI界面它可以在后台作为Python模块被调用这样配合Zoo Kitty生成的JSON草图就能自动完成从2D到3D的拉伸转换。安装完FreeCAD之后一定要把它安装目录下的库路径加到Python环境变量里很多人在这一步卡住后面我会在问题排查部分展开讲。4.2 提示词编写一句话说清楚你要什么跑通了环境接下来就是核心环节写提示词。我在试了几十种写法之后总结出一个规律提示词只要做到两方面基本就够了一是描述清楚几何形状二是描述清楚约束关系。你看下面这两个提示词意思差不太多生成效果却可能截然不同第一个“画一个支架。”这个太笼统了模型不知道你到底要什么样的支架生成出来的东西完全随机踩雷概率极大。第二个“生成一个L形支架长100毫米宽80毫米高50毫米厚度8毫米在短边的中心位置有一个直径为10毫米的通孔。”这个提示词就合格了形状L形、尺寸长宽高厚、特征通孔、位置短边中心全都交代清楚了。我实测下来这种结构化的描述比“画一个好看的支架”成功率高出一大截模型非常吃“可量化的约束词”而对“好看”“结实”这类主观判断词几乎没有识别能力。还有一个实用技巧在提示词里主动补充“对称”“正交”“均匀分布”这类结构约束词。比如你说“四个大小相同的圆角矩形安装孔均匀分布在法兰面上”模型就会倾向于生成拓扑正确的阵列结构而不是随机散落四个孔。它本质上是把你的约束词当成信号让生成过程更贴近工程规则。4.3 执行推理跑出你的第一个模型写好提示词后进入推理环节。Zoo Kitty项目里有一个主要的推理脚本结构大致是加载模型、把文本描述转换为JSON格式的实体模型描述、再从JSON转换成FreeCAD可执行的操作脚本。这里有一段简化版的调用逻辑方便你理解整个数据流向model AutoModel.from_pretrained(weights/) json_model model.txt_to_brep(generate an L-bracket ...) export_to_freecad(json_model, output_pathoutput.FCStd)模型在另一个线程里跑完自动返回JSON结果拿到结果后FreeCAD模块执行拉伸操作生成最终的实体模型文件。整个流程在本地跑实测下来一次生成大约需要一到两分钟其中大部分时间花在模型推理上FreeCAD的转换本身不超过几秒钟。第一次跑通之后我会建议你用不同的提示词多试几次然后把每个提示词对应的生成结果截图保存下来方便观察模型在不同描述下的行为规律。我在测试中发现模型对“圆柱”“圆孔”这类旋转对称特征的成功率最高对“支架”“外壳”这类组合型特征的成功率适中最怕的是“曲面”“流线型”这类自由形态描述基本一生成就崩。4.4 后处理让生成结果真正可加工跑出模型看似完成了但离“能用”还有一步就是后处理。AI生成的模型直接在CAD软件里打开通常会有一堆小毛病面歪了、边不对齐、壁厚不均匀、孔位跑偏。第一步是导入FreeCAD后先用“检查几何体”功能扫描一遍让软件帮你定位所有几何错误。这个检查很重要因为后续任何操作建立在错误几何上都会越改越乱。然后根据错误类型回到参数化对象里修正草图尺寸值。比如发现孔的位置偏了0.8毫米直接在草图约束里改标注就行因为Zoo Kitty生成的JSON保留了完整的草图参数信息改起来不算费劲。最后修复完再做一次布尔运算验证确保所有实体能正确合并。做完这三步模型基本就能导入SolidWorks或Fusion 360做进一步编辑了也可以直接转STEP格式出加工图。记住一条铁律AI生成的结果一定要人工审核哪怕是看起来很完美的模型也要检查完再进生产环境。4.5 工程化批量生成与参数调优如果你是把text-to-cad用在真正的项目里而不是体验一把就完事那我建议你直接把“提示词-生成-后处理”整条链路脚本化。我给自己的流程建了一套简单的循环设计好一批提示词循环丢给模型跑批量推理每跑完一个就自动存下JSON和预览图再由FreeCAD批处理转换成STEP文件。整个过程完全无人值守晚上挂机跑第二天早上直接收模型。这样做还有额外的好处你可以写个简单的评分脚本用官方评估代码里的倒角距离和拓扑一致性指标自动过一遍所有生成结果把不合格的模型直接筛掉留下的才进入人工审核环节效率比挨个手动看高一个数量级。5. 常见问题与排查技巧实录5.1 跑推理的时候显存爆了我在8GB显存的卡上跑Zoo Kitty时频繁遇到这个问题模型一加载就报CUDA out of memory。排查下来发现是默认配置里batch size设为16对普通显卡来说太大了。解决思路有两条。简单粗暴的办法是把batch size降到1再把模型精度从FP32降到FP16显存占用能立减一半。还不行的话在训练配置文件里打开gradient checkpointing这是把每层激活值在反向传播时重新计算、而不是全存下来吃内存换时间效果非常明显。我按这个顺序调完之后8GB卡也能稳定跑完单条推理了。5.2 模型生成的模型全是“废料”第一次跑通后我兴奋地输了一堆提示词结果生成出来的东西有一半在FreeCAD里打开直接报错根本无法转成实体。后来我总结出三条规律。如果几何验证一致报错基本是合成数据里这类拓扑结构训练样本太少了换一个描述方式绕过就行。如果生成的模型能显示但体积计算为0大概率是只有面没有实体在FreeCAD里重新执行一次“闭合壳”操作就能救回来。如果模型能生成但孔位尺寸跑偏那就是定位参数在转换过程中丢了精度在草图阶段重新标注一下就行。5.3 提示词写成什么样才靠谱提示词写得不好后面全白搭。我踩过很多坑之后总结出几条实操经验尺寸都要给具体数字“大”“小”这类模糊词模型完全无法理解形状描述优先用标准几何术语球体、圆柱、圆锥、棱柱这些词识别精度极高复杂结构拆成多个简单提示词跑多次再拼接比我试图用一个复杂描述搞定容易得多机加工相关特征比如孔、螺纹、倒角识别率普遍比自由曲面高一个级别从这些入手做成功率会好很多。5.4 FreeCAD的Python接口连不上这是所有新手最容易卡死的一关。装好FreeCAD后你在Python里import FreeCAD大概率报错找不到模块。原因在于FreeCAD不是通过pip安装的它的Python库藏在自己的安装目录里需要手动添加到环境变量。Linux和Windows的处理方式还不太一样。Windows要在环境变量PYTHONPATH里加FreeCAD的lib目录Linux一般要加usr/lib/freecad-python3这个目录。这里有个操作顺序需要特别留意先把FreeCAD打开关闭一次让它生成配置缓存再启动你的Python脚本否则即使环境变量对了也还是会连接失败。5.5 排查手册速查表现象原因处理办法显存不足batch size过大/FP32调batch size1、开FP16和梯度检查点几何检测失败训练分布外结构简化提示词或换结构体积为0只有壳无实体在FreeCAD中闭合曲面孔位跑偏参数转换精度损失在草图里重新标注FreeCAD导入报错PYTHONPATH未配置手动添加库目录并先运行一次FreeCAD生成结果发散提示词模糊加具体数字和标准几何术语6. 我实测下来的几点心得跑了不少模型、调了不少参数之后我对text-to-cad这个技术的评估是它离“万能设计师”还很远但离“概念设计加速器”已经很近了。目前最靠谱的使用方式是把它当成你在CAD软件前面的一层“想法草稿器”先让它把想法快速具象化再由你做精细化、工程化处理。在这个定位下它的确能帮你省下大量前期摸索的时间。有几个细节值得再强调一下。提示词里多用数字、少用形容词这是性价比最高的一条技巧。模型输出后的几何检查永远不要跳过AI生成的东西哪怕再像模型也可能藏着一堆拓扑隐患。如果要用在正式项目里建议先跑通一条“提示词到STEP文件”的自动化脚本后面所有生成都能复用这条管线省下的时间非常可观。text-to-cad以后的扩展方向从技术发展路径来看大概率是两条线并行一条是往更复杂的装配体设计走另一条是和已有的参数化设计体系深度融合。前者解决“生成一个零件”到“生成一台机器”的问题后者解决“生成的模型能不能无缝接进企业现有的设计规范”的问题。不管哪条线走通对做设计的人来说都是值得持续关注的大变量。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑