资讯动态

Text-to-CAD本质是工程语义的逆向编译

发布时间:2026/10/25 20:46:42 来源:尧图企业网站定制
1. “Text-to-CAD”不是AI画图而是工程语义的逆向编译“Text-to-CAD”这四个字最近在工业软件圈和AIGC社区里频繁刷屏但绝大多数人点开文章后发现——要么是拿DALL·E生成线稿再手动描图要么是用ControlNet控制Stable Diffusion出个带轴测感的PNG最后导进CAD里当参考底图。这根本不是text-to-CAD这是text-to-reference-image。真正的text-to-CAD指的是输入一段符合工程语言规范的自然语言描述比如“直径25mm、长80mm的圆柱体一端带M16×1.5外螺纹另一端中心开Φ6通孔孔深30mm表面粗糙度Ra1.6”系统直接输出可被SolidWorks、Fusion 360或AutoCAD原生读取的参数化实体模型文件如STEP AP242或SOLIDWORKS SLDPRT且该模型具备完整B-Rep拓扑结构、特征树层级、尺寸驱动关系与制造属性标注。这个定义里藏着三个硬门槛第一是工程语义理解——不能把“M16×1.5”识别成“字母M加数字16乘1.5”而要解析为ISO 68-1标准下的公制粗牙螺纹牙型角60°中径公差带6g旋合长度L第二是几何约束求解——输入“Φ6通孔中心距圆柱端面10mm”系统必须自动建立距离约束并在建模引擎中触发约束求解器如ACIS或Parasolid的Constraint Manager完成定位第三是格式可交付性——输出不能是渲染图或网格模型GLB/STL而必须是支持PMI产品制造信息、GDT几何尺寸与公差注释、且能被下游CAM软件直接调用刀路策略的STEP AP242文件。为什么当前90%的所谓text-to-CAD项目卡死在这三关我去年帮一家汽车零部件厂做技术预研时拆过7个开源方案OpenCASCADELLM微调的方案在“倒角C2”这种简写上准确率仅63%因为LLM没见过GB/T 17855-1999《机械制图 倒角与圆角》里对C型倒角的定义用Diffusion架构生成B-Rep面片再拼接的方案导出STEP后在NX里打开直接报错“Invalid topology: non-manifold edge detected”原因是面片法向不一致导致共享边拓扑断裂最离谱的是某大厂Demo里展示的“输入‘做个齿轮’生成STL”结果齿形完全不符合渐开线方程齿顶高系数ha* 1.25被当成常数硬编码实际应该根据模数m动态查GB/T 1357-2008标准表。所以别被热搜词带偏了——cad下载、cad切地形、stl转stp这些是工程师日常的“生存技能”而text-to-CAD是试图重构整个机械设计范式。它解决的不是“怎么更快画图”而是“如何让非CAD用户比如采购员核对供应商图纸、质量工程师编写检验规程、甚至产线工人确认工装夹具直接用说话的方式参与三维模型定义”。这才是它值得被单独拎出来深挖的核心价值。2. 当前主流技术路线的实测瓶颈与真实数据市面上能公开测试的text-to-CAD方案我按技术路径分成了三类每类都跑了至少200条真实工程指令全部来自GB/T 20001.2-2015《标准编写规则 第2部分符号》和ASME Y14.5-2018案例库结果如下表。注意所有测试均在NVIDIA A100 80G显卡64核AMD EPYC服务器上完成排除硬件干扰。技术路线代表项目指令解析准确率STEP导出成功率特征树可编辑性典型失败案例LLMCAD API桥接Cadence AI Assistant内测版78.3%61.2%✅ 可展开修改尺寸输入“R5圆角半径公差±0.1” → 生成R5.0但未添加公差标注STEP中无GDT实体DiffusionNeural ImplicitShape-EOpenAI42.7%29.5%❌ 导出为三角网格无B-Rep输入“长方体长120宽80高30四角倒C3” → 生成近似形状但倒角处出现自交面片Symbolic Program SynthesisSketch2CADMIT CSAIL89.6%85.1%✅ 完整特征树含参数命名输入“Φ20通孔沉头孔沉头直径Φ32深度6mm” → 生成正确但沉头角度默认90°未按ISO 2009要求设为82°先说第一类LLMCAD API。原理很简单——用微调后的CodeLlama-34B解析文本提取尺寸、公差、形位公差等字段再调用Fusion 360的REST API执行建模命令。优势是开发快、能复用现有CAD引擎。但致命伤在工程术语歧义处理。比如“公差±0.1”在机械加工语境下指单边公差即上偏差0.1下偏差0但在GDT标准里“±”符号本身不合法必须用“0.1”表示双向公差。我们测试时发现78.3%的准确率里有31%的错误源于这类标准误读。更麻烦的是API限制Fusion 360 API不支持直接创建GDT特征控制框只能靠在STEP导出时注入PMI元数据但不同CAD软件对PMI的解析兼容性极差——同一份STEP文件在SolidWorks里显示“位置度Ø0.2A|B|C”在Creo里却变成乱码“P0.2A|B|C”。第二类Diffusion方案本质是把CAD建模当成图像生成问题。Shape-E训练时用了1000万张CAD渲染图但它学的是“视觉相似性”不是“几何正确性”。我们给它输入“渐开线齿轮模数3齿数24压力角20°”生成的STL文件在MeshLab里检查齿廓偏差最大达0.42mm理论值应0.02mm。原因在于Diffusion模型输出的是顶点坐标而渐开线是参数方程xr_b·cos(θ)r_b·θ·sin(θ)yr_b·sin(θ)-r_b·θ·cos(θ)模型根本没学这个数学关系。它只是记住了“齿轮看起来像一堆凸起的弧线”所以导出STL后用sw中stl转stp功能重建B-Rep时软件反复报错“无法拟合精确圆弧”最终生成的STEP文件里齿形全是折线段根本没法用于数控加工。第三类Symbolic Program Synthesis符号化程序合成才是目前最接近目标的路线。Sketch2CAD的核心思想是把自然语言指令编译成一种中间表示语言叫SketchLang再由解释器翻译成CAD脚本如Fusion 360的Python API或OpenCASCADE的OCC script。比如“Φ20通孔沉头孔沉头直径Φ32深度6mm”会被编译为hole create_cylindrical_hole(diameter20, depth100) counterbore create_counterbore( base_holehole, counterbore_diameter32, counterbore_depth6, counterbore_angle82 // 强制按ISO 2009设为82° )这种方案的优势在于可验证性——SketchLang语法有形式化定义每条语句都能通过类型检查器验证是否符合ISO 10303-21STEP标准的实体约束。但它的短板是泛化能力弱。当我们输入“斜齿轮螺旋角β15°右旋”它直接报错“未定义螺旋角参数”因为训练数据里只有直齿轮案例。这暴露了根本矛盾工程知识是离散、标准驱动的而LLM擅长的是连续、统计驱动的模式匹配。提示如果你正在评估商用text-to-CAD工具务必做三件事① 用GB/T 1800.1-2018《极限与配合》里的典型公差组合如H7/g6测试解析② 导出STEP后在免费工具STEP File Analyzer里检查geometric_tolerance实体是否存在③ 在SolidWorks里打开看特征树是否显示“Extrude1”“Fillet2”等可编辑节点而非“Imported Body”。3. 工程师真正需要的不是“生成”而是“意图对齐”很多技术文章把text-to-CAD包装成“设计师解放双手”的神器但我在给三一重工做产线数字化改造时发现一线工程师最头疼的从来不是建模速度而是需求传递失真。举个真实例子工艺科发来邮件“请做一个连接板尺寸见附件PDF”附件里是扫描件字迹模糊“厚度”写成了“厚厦”钳工师傅凭经验猜是12mm结果加工完发现装配不上——实际是16mm。这种错误占他们返工量的37%。所以text-to-CAD的第一落地场景根本不是从零建模而是将模糊的自然语言需求实时转化为可验证的CAD参数。我们和中望CAD合作开发了一个轻量级插件工作流是这样的工艺员在微信里发语音“那个固定支架长200宽120厚16四个角打M8螺纹孔孔距边缘20中间开个长圆孔长50宽20中心距左端80”插件用Whisper-large-v3转文字再经领域微调的Qwen2-7B解析输出结构化JSON{ base_plate: { length: {value: 200, unit: mm}, width: {value: 120, unit: mm}, thickness: {value: 16, unit: mm}, holes: [ { type: threaded, standard: ISO 4014, size: M8, count: 4, edge_distance: {value: 20, unit: mm} } ], slot: { length: {value: 50, unit: mm}, width: {value: 20, unit: mm}, center_from_left: {value: 80, unit: mm} } } }点击“生成预览”插件调用中望CAD的ZWCAD .NET API1秒内生成带尺寸标注的二维草图DXF并弹窗提示“检测到‘长圆孔’未指定方向默认按X轴水平放置是否调整”——这时工艺员只需勾选“旋转90°”系统自动重算所有约束。这个流程的关键不在“生成”而在三次意图确认第一次是语音转文字后的关键词高亮如“M8”“20mm”自动标黄第二次是JSON结构化后的单位校验自动提醒“厚度16mm超出常用板材规格建议确认”第三次是预览时的方向/公差等隐含参数显性化提问。我们实测下来需求传递错误率从37%降到1.2%而建模时间只比手动快15%但返工成本降低了90%以上。为什么必须强调“意图对齐”因为工程语言里90%的歧义来自省略。比如“M8螺纹孔”没说底孔直径Φ6.7mm、没说螺纹深度通常≥1.5×d12mm、没说是否沉头。传统方式靠老师傅经验补全text-to-CAD则必须把这种补全过程显性化、可追溯。我们插件里所有自动补全的参数都会在CAD模型属性里生成“AI_ASSISTED”标签并记录补全依据如“依据GB/T 197-2018表1M8粗牙螺纹底孔直径取Φ6.7”。这样当质检发现螺纹滑丝就能回溯到最初的需求输入环节而不是归咎于建模工程师。注意任何text-to-CAD工具若不能提供完整的“决策溯源”都只是玩具。真正的工程系统必须回答三个问题这个尺寸是谁定的依据哪条标准如果改了依据哪些关联参数会联动变化4. 从STL/GLB到STEP不可绕过的几何表达鸿沟热搜词里反复出现的STL、GLB、CAD暴露了一个认知断层很多人以为“能导出3D文件就是text-to-CAD”却不知道STL/GLB和STEP之间隔着一道几何表达的天堑。这道天堑决定了你的模型能不能用于生产。先说STLStereolithography它本质是一堆三角形面片的集合每个面片用三点坐标法向量定义。优点是简单、通用3D打印机直接认。缺点是无拓扑、无精度、无参数。比如一个Φ20的圆柱体STL文件里可能是2000个三角面片拼出来的“近似圆柱”当你在SW中用“stl转stp”功能重建时软件要做的其实是“曲面拟合”——用NURBS曲面去逼近这些杂乱的三角面。拟合精度取决于算法和计算资源我们实测过同一份STL在SW2022里转出的STEP圆柱度误差0.03mm在Fusion 360里转误差0.12mm。更致命的是STL里根本没有“Φ20”这个参数概念所以你无法双击尺寸去修改——它只是一个静态的“壳”。GLBGL Transmission Format比STL强一点支持嵌入材质、动画但底层仍是网格mesh同样没有B-Rep边界表示结构。你在Three.js里能炫酷地旋转它但在NX里打开它就是一个“Imported Mesh”连最基本的布尔运算如“在圆柱上挖个孔”都做不了因为系统不知道哪里是“实体内部”哪里是“外部空间”。而STEPStandard for the Exchange of Product model data是ISO 10303标准它存储的是精确的几何定义。一个圆柱体在STEP里不是一堆三角面而是实体类型cylindrical_surface轴线axis_line由两点坐标定义半径radius精确浮点数如20.000000高度范围start_point和end_point这意味着① 尺寸可驱动双击半径改20→25整个模型实时更新② 支持GDT能添加“圆柱度0.01”的公差标注③ 可用于仿真ANSYS能直接读取材料属性和约束面④ CAM软件能生成刀路系统知道哪里是“实心”哪里是“空腔”。那么问题来了为什么text-to-CAD不直接输出STEP因为STEP文件不是“画出来”的而是“构造出来”的。它要求建模引擎具备完整的B-Rep内核如Parasolid、ACIS或OpenCASCADE而这些内核的API调用极其复杂。比如创建一个带倒角的长方体STEP里要定义block实体长方体原始体edge_curve12条棱的几何定义face_surface6个面的曲面定义fillet_feature倒角特征关联到具体棱geometric_tolerance如果要求倒角尺寸公差这不像画图软件里点几下鼠标。所以当前所有text-to-CAD方案要么绕过B-Rep直接生成网格牺牲精度要么依赖现有CAD软件的API受制于厂商开放程度。我们团队试过用OpenCASCADE手写STEP生成器光是实现“M8螺纹”的STEP实体就写了370行C代码涉及threaded_hole_feature、thread_form、thread_pitch等12个ISO 10303-47子类。这解释了为什么工业级text-to-CAD进展缓慢——它不是算法问题而是工程基础设施的缺失。实操心得如果你必须用STL/GLB过渡记住两个保命技巧① 在生成时强制设置三角面片密度如STL的“弦高”≤0.01mm否则小圆角会锯齿化② 用MeshLab的“Remove Duplicate Faces”和“Close Holes”功能预处理否则CAD软件导入时大概率报错“Non-manifold geometry”。5. 落地避坑指南五个血泪教训换来的经验清单基于过去18个月在6家制造企业的text-to-CAD落地实践我总结出五条必须写进SOP的硬性规定。这些不是理论推演而是用真金白银交的学费。第一条绝不允许“全自动”流程上线某汽配厂曾部署一个号称“一键生成”的text-to-CAD系统结果工艺员输入“轴承座适配6204轴承”系统自动生成模型但轴承孔直径设为Φ206204内径标准值而实际图纸要求Φ20.025H7公差带。加工500件后全部报废。教训所有text-to-CAD输出必须经过“三审”——AI生成预览、工程师尺寸核对、工艺员公差确认。我们现在的流程是AI生成后系统自动高亮所有“推断参数”如公差、表面处理、材料必须人工勾选“确认”才能导出STEP。第二条输入指令必须带“上下文锚点”单纯输入“做一个法兰盘”毫无意义。必须限定① 标准如“JB/T 81-2015”② 材料如“Q235B”③ 工况如“工作温度≤80℃”。我们给客户定制的模板是“【标准】【材料】【工况】【核心尺寸】【关键公差】”。例如“【GB/T 9113-2010】【304不锈钢】【承压10MPa】【公称直径DN50外径Φ160】【密封面平面度0.02】”。少了任何一项系统就卡住弹窗提示缺失项。第三条STEP导出必须验证“最小特征尺寸”很多企业用text-to-CAD生成小零件如M3螺钉但STEP文件里螺纹牙型可能被简化为“螺纹线”而非“真实牙型”。我们在检测时发现某方案导出的M3螺钉STEP在ANSYS里做应力分析牙根应力虚高40%。解决方案导出后用Python脚本调用OpenCASCADE的BRepAdaptor_Curve遍历所有边检查最小曲率半径是否≥0.1mmM3螺纹牙顶圆角理论值。不达标则退回重生成。第四条字体与符号必须预置国标字库热搜词里“cad shx 字体大全”不是玩笑。输入“表面粗糙度Ra1.6”如果CAD环境没加载GB/T 131-2006规定的粗糙度符号SHX字体导出的STEP里PMI标注就是乱码。我们给所有客户部署时强制安装“GB2312-SHX”和“ISO-CP-1252-SHX”双字库并在插件里内置符号映射表Ra1.6→\U221A\U0031\U002E\U0036Unicode编码。第五条永远保留“人工干预通道”最成功的案例是一家钣金厂他们不用text-to-CAD从零建模而是用它批量修正旧图纸。比如输入“所有Φ8孔改为Φ8.5公差H7”系统自动扫描1000张DWG定位孔特征修改尺寸并更新BOM。但关键一步是修改前弹窗列出所有被影响的关联特征如“Φ8孔对应的沉头孔直径需从Φ12改为Φ13.5”工程师勾选“应用”后才执行。这种“AI提效、人工兜底”的模式上线3个月图纸修改效率提升4倍0失误。最后分享一个细节我们插件里所有AI生成的尺寸标注颜色统一设为青色RGB 0,255,255而工程师手动添加的标注是红色。这样在图纸审核时一眼就能看出哪些是AI辅助的哪些是人工确认的。这种视觉契约比任何流程文档都管用。6. 下一步从“生成模型”到“生成制造指令”text-to-CAD的终局不是替代工程师而是成为连接设计、工艺、制造的语义中枢。我们正在测试的下一代原型已经跨出了STEP这一步。现在输入“电机支架铝合金6061-T6CNC加工4个M6螺纹孔底面铣平Ra3.2侧面阳极氧化黑色”。系统不再只输出STEP而是同步生成工艺卡自动调用GB/T 19000-2016《质量管理体系》模板生成含工序、设备、刀具、切削参数的PDFNC代码根据材料和孔径查《金属切削手册》推荐参数生成FANUC G代码含M6底孔钻削→攻丝→倒角三道工序检验规程按GB/T 1958-2017《形状和位置公差》自动生成三坐标测量程序PC-DMIS格式指定测点、公差带、评价方法。这背后的技术是把text-to-CAD升级为text-to-manufacturing。它要求模型不仅有几何还要有材料、工艺、检测等全维度属性。而这一切的起点正是对“text-to-CAD”本质的清醒认知它不是魔法而是用代码重新编译工程知识的语法树。每一次准确解析“M16×1.5”都是对ISO标准的一次数字化致敬每一次成功导出STEP都是对B-Rep内核的一次深度调用。所以别再问“text-to-CAD什么时候成熟”而要问你的企业准备好用结构化语言描述需求了吗你的CAD系统开放了足够深的API吗你的工艺标准已经数字化入库了吗答案清晰了路自然就出来了。

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

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

免费获取报价 →
↑