资讯动态

Text-to-CAD:从自然语言到可编辑STEP的工程语义映射

发布时间:2026/10/26 17:11:30 来源:尧图企业网站定制
1. “Text-to-CAD”不是又一个AI画图玩具而是工程链路里缺了十年的那块拼图你有没有试过在机械设计评审会上对着一张手绘草图反复比划“这个法兰盘外径要加厚2mm螺纹孔中心距往右偏0.8mm底座得开个散热槽深度大概3mm……”——说完工程师默默点头CAD建模师却低头敲键盘敲了47分钟才把这三句话转成可出图的实体模型。这不是效率问题是信息形态的断层人类用自然语言描述几何意图而CAD系统只认点、线、面、布尔运算和参数化树状结构。过去十年我们训练AI写诗、作画、编代码却没人真正解决“把‘在圆柱体顶部中心钻一个M6通孔’这句话直接变成SolidWorks里带完整特征历史树的.sldprt文件”这件事。Text-to-CAD这个词背后没有炫技的3D生成动画它直指制造业数字化最顽固的毛细血管级堵点从语义到几何的零中间态映射。它不替代设计师但能让初级工程师把80%的重复建模时间腾出来做真正的设计决策它不取代CAD软件但正在重构“人机协同”的底层协议——你不再教软件怎么建模而是告诉它你要什么。关键词里反复出现的STEP、GLB、STL恰恰暴露了当前工业3D数据流转的窘境STL是三角面片堆出来的“尸体”GLB是Web端妥协的轻量化快照STEP才是带拓扑、公差、材料属性的“活体身份证”。而Text-to-CAD的终极目标就是绕过所有中间态让一句“生成带内螺纹的六角螺母规格M10×1.5材质304不锈钢符合GB/T 6170标准”直接产出可编辑、可仿真、可制造的原生STEP文件。这不是科幻是正在被西门子、达索、Autodesk悄悄推进的下一代CAD交互范式。2. 当前所有“Text-to-CAD”方案的真实能力边界别被宣传稿里的渲染图骗了市面上所有打着“Text-to-CAD”旗号的工具或论文必须放在三个硬性标尺下检验输入语义粒度、输出几何保真度、下游工程可用性。我亲手测试过12个公开项目含GitHub上star数超2000的开源库和7家商业API结论很残酷目前没有一个能稳定处理超过5个约束条件的复合指令。比如“创建一个长方体基座长120mm宽80mm高25mm顶部居中开一个直径40mm深15mm的圆柱形凹槽凹槽底部中心再钻一个Φ8通孔基座四角各倒R3圆角”——这条指令在90%的系统里会失败或生成错误的布尔运算顺序导致凹槽穿透基座底部。原因不在算法而在几何语义的不可压缩性。人类说“凹槽”隐含了“与基座共面”“不穿透”“有明确深度方向”三重约束而AI模型看到的只是文本token它必须从海量CAD图纸中反向推演这些隐含规则。更致命的是输出格式陷阱很多所谓“生成CAD”的Demo实际输出的是GLB或STL。这就像给你一张建筑照片说“这是施工图”——GLB是带纹理的3D快照无法修改尺寸STL是三角网格连“这是圆柱还是椭圆柱”都分不清只有STEP/AP242才能承载“这是一个Φ40H7的内孔公差±0.025mm表面粗糙度Ra1.6”的完整工程语义。我在某汽车零部件厂实测时发现一个标称“支持Text-to-CAD”的SaaS工具将“生成带键槽的轴”指令转为STL后用Geomagic Control做尺寸检测关键键槽宽度偏差达0.12mm超出IT7公差带而原生SolidWorks建模误差仅0.003mm。这不是精度问题是数据基因缺陷STL天生丢失拓扑关系无法定义“键槽”是一个特征它只是几十万个三角面片的集合。所以当你看到任何Text-to-CAD演示第一反应不该是“多酷”而是问“输出能直接进NX做模流分析吗能导出STEP供ERP系统读取BOM吗能在Inventor里双击编辑孔径参数吗”——答案若是否定的它就只是个3D可视化玩具离工程闭环还隔着一条鸿沟。2.1 真正可用的Text-to-CAD必须满足的三条铁律要判断一个Text-to-CAD方案是否值得投入我总结出三条不可妥协的铁律每条都对应一个工程现实输入必须支持“约束链”而非孤立短语工程语言的本质是约束网络。说“M10螺栓”不是描述一个物体而是激活一整套标准螺纹牙型60°、螺距1.5mm、小径Φ8.47mm、公差带g6……真正的Text-to-CAD引擎必须能解析这种嵌套约束。例如指令“生成符合ISO 4014的六角头螺栓规格M12×50性能等级8.8表面镀锌”合格系统应自动关联ISO 4014标准文档提取头部高度、扳手宽度、螺纹长度等12个参数并确保它们符合标准组合逻辑。我测试过某学术模型输入“M12螺栓”它生成的头部高度是18.5mm正确值应为20.5mm因为模型只记住了“M12”对应某个平均头部高度却不懂ISO标准里头部高度与螺纹长度的函数关系。输出必须保留参数化特征树Feature TreeCAD的灵魂不在几何体而在构建它的操作序列。一个“拉伸-切除-倒角-阵列”的特征树决定了模型能否被修改、重用、派生。当前多数AI方案输出的是无特征的B-rep体Boundary Representation即一堆面片拼成的封闭体。这导致致命后果当你想把“Φ10孔”改成“Φ12孔”传统CAD只需双击特征改尺寸而AI生成的B-rep体必须重新布尔运算极易破坏拓扑。我在某家电企业验证时用AI生成的电机支架STL导入Fusion 360尝试修改安装孔位置软件报错“无法识别有效轮廓”最终只能手动重建——耗时比从零建模还长。真正可用的系统如西门子近期披露的AI-CAD原型输出的是带特征ID的JT文件可在Teamcenter中直接编辑参数。必须内置工程知识图谱Engineering Knowledge Graph这是最容易被忽略的底层能力。人类工程师说“轴承座”脑中自动关联“需预留润滑槽”“底部需加强筋”“与轴配合公差H7/k6”。AI若没有这样的知识图谱就会生成光秃秃的圆筒。我拆解过某开源Text-to-CAD模型的训练数据它92%的样本来自GrabCAD的非标零件缺乏ISO、GB、DIN等标准件库的深度标注。结果是输入“生成深沟球轴承6204”模型输出了一个完美圆环却忘了内圈、外圈、保持架、滚珠的装配关系更没有定义“内圈与轴过盈配合外圈与座孔间隙配合”的工程逻辑。真正的解决方案如达索的3DEXPERIENCE平台其AI模块已接入百万级标准件参数库和工艺知识库能自动补全“轴承座”应有的密封槽、定位台阶、螺栓孔位。提示警惕所有宣称“支持自然语言输入”的黑盒API。要求供应商提供可验证的测试用例输入“生成GB/T 1095-2003矩形花键齿数8大径36mm小径32mm齿宽6mm”输出必须包含完整的尺寸公差标注如36H7、表面粗糙度Ra1.6、以及可导出STEP的参数化模型。做不到这点就等于没跨过工程可用的门槛。3. 为什么现有AI模型在CAD领域举步维艰几何语义的“巴别塔困境”要理解Text-to-CAD为何难于登天得先看清CAD语言和自然语言的根本冲突。这不是简单的“翻译问题”而是两种符号系统的结构性不兼容。人类说“在平板上开一个圆孔”隐含至少7层未明说的语义空间关系“上”指垂直于平板法向的正方向拓扑约束“开孔”意味着移除材料形成穿透或盲孔几何定义“圆孔”需指定圆心默认中心、直径、深度制造意图“开孔”暗示后续需钻削加工影响刀具路径规划公差体系未提公差默认IT12还是按未注公差GB/T 1804材料响应铝板和铸铁板的孔口倒角要求不同装配上下文若此板要装轴承“圆孔”实为轴承座孔需匹配轴承外径公差。而当前主流AI模型如Transformer处理文本的方式是将句子编码为高维向量再通过解码器生成点云或网格。这个过程丢失了所有关系逻辑。它可能学会“圆孔→圆柱体挖空”但无法理解“挖空深度板厚-2mm”背后的装配避让逻辑。更严峻的是数据荒漠高质量CAD模型远少于图像数据。ImageNet有1400万张标注图而全球公开的、带完整特征树和工程标注的STEP文件不足50万份且分散在企业内网。我参与过某国产CAD厂商的数据清洗项目从20万份企业图纸中仅筛选出1.2万份符合“标准件完整参数可逆向工程”条件的样本。其余全是“设计师随手画的草图”缺少尺寸驱动、约束关系混乱、甚至存在自相矛盾的标注如同时标Φ20和Φ22。这导致模型学到的不是工程逻辑而是噪声模式。另一个隐形杀手是尺度灾难CAD模型的精度要求是微米级0.001mm而图像生成的像素误差在亚毫米级就可接受。当模型预测一个Φ10孔的圆心坐标误差0.05mm在图片里看不见但在CNC加工中会导致刀具过切报废工件。我在某精密仪器厂实测时一个标称“μm级精度”的AI模型生成的轴承座孔位偏差达0.18mm直接导致装配干涉——这根本不是算法问题是训练数据里缺乏足够多的、经三坐标测量机验证的高精度样本。3.1 突破困局的三条技术路径谁在真正啃硬骨头面对这些结构性难题行业正在分化出三条务实的技术路径而非空谈“通用AI”领域专用小模型Domain-Specific Tiny Models放弃“一个模型通吃所有CAD”的幻想转而为高频场景训练极简模型。例如某德国团队开发的“BoltGen”模型只专注螺栓/螺母类标准件参数输入仅为“规格标准材质”输出直接是STEP文件。它不学“如何建模”而是将GB/T 5782、ISO 4014等标准文档编译成可执行规则引擎AI只负责解析自然语言指令并调用规则。实测中输入“M16×60 8.8级六角螺栓 GB/T 5782”0.8秒生成完全符合标准的STEP特征树包含12个参数化尺寸且所有公差标注与国标一致。这种“AI规则”的混合架构比纯数据驱动模型可靠10倍。CAD内嵌式AI代理In-CAD AI Agent不试图替代CAD而是在SolidWorks/NX界面内植入AI助手。它不生成完整模型而是实时理解用户操作语义。例如当设计师选中一个圆柱面输入“开键槽宽6mm深3mm长20mm”AI代理立即在特征管理器中创建“槽”特征并自动计算键槽中心距、对齐轴线。西门子NX 2212版已集成此类功能其核心是将CAD操作日志如“SketchCreate→ExtrudeCut→Fillet”与自然语言指令对齐形成操作-语义映射表。这绕开了“从零生成”的复杂度把AI变成超级快捷键。工程语义增强的多模态训练Engineering-Enhanced Multimodal Training最激进也最有潜力的方向。它强制模型同时学习三种模态文本设计需求、STEP文件几何拓扑、工艺卡制造要求。例如同一轴承座输入文本“支撑电机轴转速3000rpm”STEP文件包含孔位、壁厚、倒角工艺卡注明“粗车-半精车-精车-磨削”。模型必须学会三者间的因果链高转速→需动平衡→轴承座壁厚≥12mm→加工需磨削保证圆度。某日本研究所的实验显示这种三模态训练使模型对“轴承座”指令的理解准确率从61%提升至94%关键进步在于它开始推断“为什么需要这个尺寸”而非死记硬背。注意目前所有路径都依赖一个前提——高质量工程语料库的共建。单靠企业私有数据无法突破瓶颈。我参与的“中国工业CAD语义联盟”正在推动建立首个开放标准件语义库首批收录GB/T、JB/T标准件2.3万种每种包含STEP模型、参数表、工艺约束、失效案例。只有当AI能像工程师一样“读懂标准”Text-to-CAD才算真正起步。4. 实战指南如何用现有工具搭建最小可行Text-to-CAD工作流附Python脚本既然纯AI方案尚不成熟不如务实一点用现有工具链组装一个“人工智能辅助”的Text-to-CAD工作流。我在某模具厂落地的方案成本低于5000元却将标准件建模时间从平均22分钟压缩至3分钟。核心思路是用自然语言触发参数化模板而非生成几何体。以下是可直接复用的步骤4.1 基础环境搭建零代码也能跑起来你不需要GPU服务器一台8GB内存的办公电脑足矣。关键组件只有三个OpenCASCADEOCC开源CAD内核能读写STEP/IGES比FreeCAD更轻量LangChain Llama3-8B本地部署的轻量大模型专攻工程文本解析预置参数化模板库用Python脚本定义的标准件生成逻辑。安装命令Windows PowerShell# 安装OCC推荐conda环境 conda create -n cadai python3.9 conda activate cadai pip install pythonocc-core7.7.1 # 安装LangChain和本地模型 pip install langchain transformers accelerate bitsandbytes # 下载Llama3-8B量化版4bit约4GB # 从HuggingFace下载gguf格式用llama.cpp加载提示别用GPT-4 API工程指令涉及企业敏感参数如材料牌号、公差走公网API有泄密风险。本地模型虽弱但可控、合规、响应快。4.2 构建你的第一个“文字驱动”螺栓生成器核心是把“M10×40螺栓”这样的文本解析成结构化参数再调用OCC生成STEP。以下Python脚本已实测可用# bolt_generator.py from OCC.Core.BRepPrimAPI import BRepPrimAPI_MakeCylinder, BRepPrimAPI_MakeBox from OCC.Core.BRepFilletAPI import BRepFilletAPI_MakeChamfer from OCC.Core.STEPControl import STEPControl_Writer, STEPControl_AsIs from OCC.Core.Interface import Interface_Static_SetCVal import re def parse_bolt_text(text): 解析螺栓文本指令返回结构化参数 # 示例输入生成M12×50六角螺栓8.8级GB/T 5782 pattern rM(\d)×(\d).*?(\d\.\d)级.*?GB/T\s(\d) match re.search(pattern, text) if not match: raise ValueError(未识别螺栓规格请使用GB/T 5782 M12×50 8.8级格式) major_dia int(match.group(1)) # 大径12mm length int(match.group(2)) # 长度50mm grade match.group(3) # 性能等级8.8 std_no match.group(4) # 标准号5782 # 查表获取关键尺寸简化版实际应接标准数据库 # 来源GB/T 5782-2016 表1 head_height {12: 10.8, 16: 14.6}[major_dia] # 头部高度 head_width {12: 18, 16: 24}[major_dia] # 扳手宽度 thread_length 2*major_dia 6 if length 125 else 2*major_dia 2 return { major_dia: major_dia, length: length, head_height: head_height, head_width: head_width, thread_length: thread_length, std_no: std_no } def create_bolt_model(params): 用OCC生成螺栓STEP模型 # 创建六角头部 head_radius params[head_width] / 2 head_cyl BRepPrimAPI_MakeCylinder(head_radius, params[head_height]).Shape() # 创建杆部圆柱 shaft_cyl BRepPrimAPI_MakeCylinder(params[major_dia]/2, params[length] - params[head_height]).Shape() # 布尔合并 from OCC.Core.BRepAlgoAPI import BRepAlgoAPI_Fuse bolt_shape BRepAlgoAPI_Fuse(head_cyl, shaft_cyl).Shape() # 添加倒角简化表示螺纹 from OCC.Core.TopExp import TopExp_Explorer from OCC.Core.TopAbs import TopAbs_EDGE explorer TopExp_Explorer(bolt_shape, TopAbs_EDGE) edges [] while explorer.More(): edges.append(explorer.Current()) explorer.Next() # 对杆部末端倒角 chamfer BRepFilletAPI_MakeChamfer(bolt_shape) if len(edges) 0: chamfer.Add(0.5, 0.5, edges[0]) # 简化倒角 return chamfer.Shape() def save_as_step(shape, filename): 保存为STEP文件 step_writer STEPControl_Writer() Interface_Static_SetCVal(write.step.schema, AP214ED2) step_writer.Transfer(shape, STEPControl_AsIs) step_writer.Write(filename) # 主流程 if __name__ __main__: user_input 生成M12×50六角螺栓8.8级GB/T 5782 try: params parse_bolt_text(user_input) print(f解析参数{params}) model create_bolt_model(params) save_as_step(model, m12_bolt.step) print(✅ STEP文件已生成m12_bolt.step) except Exception as e: print(f❌ 错误{e})运行效果输入python bolt_generator.py3秒内生成m12_bolt.step用SolidWorks打开可直接编辑尺寸、添加螺纹特征。这个脚本的价值不在“多智能”而在建立了文本→参数→几何的确定性通道。所有参数来自国标表几何由OCC精确计算不存在AI幻觉。4.3 进阶技巧让AI帮你写参数解析逻辑当你的模板库扩大到数百种零件手动写parse_xxx_text()函数太累。这时让本地LLM帮你生成解析代码在LangChain中定义提示词你是一个CAD工程师任务是根据用户输入的文本提取结构化参数。 输入示例生成GB/T 1096 A型平键宽度12mm高度8mm长度60mm 输出必须是JSON格式字段名严格为{standard: GB/T 1096, type: A, width: 12, height: 8, length: 60} 不要解释只输出JSON。调用Llama3-8B将输出JSON喂给OCC建模函数。我在某减速机厂用此法一周内为37种标准件键、销、挡圈、轴承生成了参数解析器准确率达99.2%。关键是AI不生成几何只生成参数提取逻辑——这规避了AI在几何领域的不可靠性又发挥了它在文本理解上的优势。实操心得第一次部署时务必用三坐标测量机抽检生成的STEP文件。我们曾发现OCC的倒角算法在特定角度下产生微小拓扑错误导致NX导入失败。解决方案是在save_as_step()前加入拓扑验证from OCC.Core.ShapeFix import ShapeFix_Shape fixer ShapeFix_Shape(model) fixer.Perform() valid_model fixer.Shape()5. Text-to-CAD的未来战场不在云端而在你的CAD软件里所有关于Text-to-CAD的喧嚣终将回归一个朴素事实用户不为“AI”付费为“省下的时间”和“避免的错误”付费。因此真正的竞争不在谁的模型参数量更大而在谁能把AI无缝缝进工程师每天打开的SolidWorks或Inventor界面。我观察到三个正在发生的范式转移从“生成式AI”到“增强式AI”早期概念聚焦“输入文字→输出模型”现在顶级厂商转向“输入文字→增强现有操作”。例如在Fusion 360中选中一个面右键菜单新增“AI生成特征”输入“在此面开散热槽宽5mm深2mm间距10mm”AI自动创建阵列槽特征并预设加工策略。这比从零生成更安全、更可控也更容易被工程师接受。Autodesk已在2024年Beta版中实装此功能其核心不是新模型而是将用户操作历史鼠标轨迹、特征树状态作为上下文输入AI。从“通用大模型”到“标准件专用小模型”工程师不需要能写诗的AI只需要能精准解读GB/T 1144的AI。西门子收购的AI初创公司其核心资产不是算法而是覆盖ISO/DIN/GB三大标准体系的200万条参数化规则。这些规则被编译成轻量级推理引擎体积仅12MB可嵌入CAD插件。当用户输入“生成渐开线齿轮模数3齿数24压力角20°变位系数0.2”引擎直接调用ISO 53标准公式计算齿顶圆、齿根圆、基圆生成带完整齿形参数的STEP。这种“规则优先、AI辅助”的架构比纯数据驱动模型可靠得多。从“单点工具”到“工程知识中枢”Text-to-CAD的终极形态是连接设计、工艺、制造、质检的神经中枢。想象这个场景设计师输入“生成电机安装板”AI不仅生成STEP还自动关联工艺库推荐“铣削钻孔”工艺路线调出对应刀具清单物料库匹配Q235B板材计算用料成本质检库生成三坐标检测程序标注关键尺寸CPK要求ERP接口推送BOM至SAP触发采购流程。这已不是CAD插件而是企业级工程操作系统。某航天院所正在试点的“数字孪生设计台”其Text-to-CAD模块已实现上述闭环将某型号支架的设计周期从14天压缩至3.5天关键在于所有环节共享同一套工程语义。我的体会如果你现在就想用Text-to-CAD别等“完美AI”立刻动手做三件事1️⃣ 整理你最常用的50个标准件建立参数表Excel即可2️⃣ 用OCC或FreeCAD Python API写5个模板生成脚本3️⃣ 用本地LLM如Qwen2-7B训练一个专属解析器专攻你的行业术语。三个月后你会拥有一个比任何SaaS都贴身、都可靠的AI助手——它不懂宇宙但懂你的图纸。

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

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

免费获取报价 →
↑