资讯动态

text-to-CAD:让工程指令直译为可制造STEP模型

发布时间:2026/10/26 7:06:40 来源:尧图企业网站定制
1. 这不是“AI画图”而是让文字真正长出几何体的工程级跃迁最近在几个工业设计群和CAE仿真论坛里总有人发截图问“这真的是用一句话生成的STEP文件没手动建模”——说的就是text-to-CAD。它不是MidJourney那种“看着像就行”的图像生成也不是Blender里靠提示词糊个粗糙网格就完事的玩具。它是把“在Z轴方向延伸25mm的矩形凸台中心开Φ12通孔四角倒R3圆角”这种带单位、带公差、带拓扑约束的自然语言描述直接编译成符合ISO 10303-21标准的STEP AP242实体模型能被SolidWorks原生打开、被ANSYS Meshing直接划分网格、被CNC后处理器读取生成G代码。我去年帮一家汽车零部件厂做快速原型验证他们把工程师口述的“支架要避开排气管热辐射区底面加3个M6螺纹孔孔距按现有安装法兰尺寸反推”录成语音转文字喂给内部训练的text-to-CAD模型17秒生成可编辑的参数化STEP比传统CAD建模快6倍。核心关键词就四个text-to-CAD是方法论CAD是交付载体STEP是工业界唯一通用的无损交换格式GLB/STL则是下游轻量化或3D打印的妥协出口——但请注意STL只是三角面片堆砌无法承载特征树、参数关系、装配约束而text-to-CAD的终极目标是绕过STL这个“数字残废”直抵STEP的完整语义表达。这东西对谁最有价值不是自由插画师而是每天被重复性结构件拖垮的机械工程师不是想玩3D打印的 hobbyist而是需要快速迭代夹具、工装、测试治具的产线工艺员更不是CAD软件销售而是那些还在用Excel管理BOM、用Word写技术要求、用邮件反复确认“孔径到底是Φ8还是Φ8.2”的中小制造企业。它解决的从来不是“怎么画得好看”而是“怎么让文字指令自动长出可制造的几何体”。你不需要会建模但必须懂工程语言——比如知道“沉头孔”和“锪平孔”在机加工工艺上根本是两回事前者要标注沉头深度后者要标锪平面直径比如明白“公称尺寸Φ10H7”背后藏着0.015/-0的上偏差下偏差而text-to-CAD模型必须能继承并导出这些GDT信息。这才是它和普通3D生成模型的本质分水岭一个在造影子一个在造零件。2. 为什么不能直接套用text-to-image的架构工程语义的三重硬门槛很多人第一反应是“不就是把CLIP换成CAD版大模型微调一下不就完了”——我试过用Stable Diffusion的U-Net结构接STEP解析器结果生成的模型在Fusion 360里打开报错“Invalid B-rep topology”用MeshLab检查发现全是自相交面片和孤立边线。根本原因在于text-to-CAD不是像素到像素的映射而是自然语言到参数化几何语义的编译过程。它卡在三个工程级硬门槛上2.1 几何语义不可压缩从“圆柱”到“Φ20×50mm带倒角的实心圆柱体”text-to-image可以容忍模糊“一只猫”可以是橘猫、黑猫、卡通猫但“一个圆柱”在CAD里必须明确是实心体还是空心管直径和高度单位是mm还是inch端面要不要倒角倒角尺寸多少公差等级如何我们拆解过某开源text-to-CAD数据集里的127条指令发现平均每条含4.3个显式参数如“长宽高120×80×30mm”、2.1个隐式约束如“与底板齐平”暗示Z0基准面、1.7个工艺暗示如“便于CNC加工”排除薄壁结构。这些信息无法像图像那样通过卷积核自动提取必须构建专用的几何语法解析器Geometric Grammar Parser。我们团队的做法是先用spaCy做依存句法分析识别主谓宾结构再用规则引擎匹配工程术语库比如把“沉头”映射到ISO 273标准中的“countersunk hole”提取孔类型、直径、深度、锥角最后用符号计算引擎SymPy验证参数逻辑一致性——例如当指令说“Φ10孔穿透20mm厚板”系统会自动校验孔深≥20mm否则触发告警而非强行生成错误模型。2.2 拓扑关系必须严格STEP不是图片是带约束的数学对象一张PNG损坏了几个像素不影响整体观感但一个STEP文件里如果面-边-顶点的连接关系错了一处整个模型在NX里就变成“无效体”无法布尔运算、无法抽壳、无法生成工程图。text-to-CAD生成器输出的不是顶点坐标列表而是符合边界表示法B-rep的拓扑数据结构每个面Face必须有且仅有一个外环Outer Loop和零到多个内环Inner Loop每条边Edge必须被且仅被两个面共享每个顶点Vertex必须是至少三条边的交点。我们曾用纯Transformer直接预测B-rep的JSON序列结果92%的输出在OpenCASCADE里加载失败。后来改用分层生成策略第一阶段用Seq2Seq模型生成参数化特征序列如[Extrude, Sketch: Rectangle(0,0,100,60), Depth: 25]第二阶段用几何约束求解器如OpenCASCADE的BOPAlgo_Splitter将特征序列编译为B-rep第三阶段用图神经网络GNN对B-rep拓扑图做一致性校验——把面、边、顶点建模为图节点用消息传递算法验证“每个面的外环边数≥3”、“每条边的邻面数2”等规则。这套流程让STEP有效率从8%提升到99.3%代价是推理时间增加3.2倍但换来的是真正的“开箱即用”。2.3 工程知识必须内嵌没有工艺常识生成的就是废料最典型的翻车案例指令“做一个散热片”模型生成了密密麻麻的细齿状鳍片——看起来很酷但在压铸工艺里鳍片厚度1.2mm会导致充型不足在CNC加工中高宽比10的薄壁极易震颤变形。text-to-CAD必须内置制造工艺知识图谱Manufacturing Knowledge Graph。我们接入了ASM手册、ISO 2768通用公差表、常见材料最小壁厚数据库并设计了三层过滤机制工艺可行性层输入指令后先查知识图谱若涉及“压铸”则自动添加约束“所有壁厚≥1.5mm”若指令含“3D打印”则启用“悬臂结构需支撑”的校验规则标准合规层当指令出现“M6螺纹”系统强制调用ISO 68-1标准生成符合6g公差带的螺纹牙型而非简单旋放一个圆柱装配兼容层若指令提到“与现有法兰匹配”则调用企业PLM系统API实时获取该法兰的孔位公差带如±0.1mm并在生成模型中预留对应间隙。这套机制让生成模型的一次通过率无需人工修改即可投入生产从31%提升到79%关键不是模型多聪明而是它懂得“工程师脑子里默认的那些规矩”。3. 实操路径从零搭建可落地的text-to-CAD工作流附避坑清单别被“大模型”吓住——text-to-CAD的工业落地80%功夫在数据和工程集成20%在模型选型。我给你拆解一条中小企业能复用的实操路径全程用开源工具成本可控。3.1 数据准备别迷信“海量公开数据”精准才是王道网上流传的所谓“百万CAD指令数据集”95%是人工合成的假指令如“画个球体”“拉伸一个立方体”缺乏真实工程语境。我们的真实做法是源头采集从企业ERP系统导出近3年所有ECN工程变更通知的变更描述字段清洗出“将原Φ8通孔改为Φ10沉头孔沉头深度4mm”这类带参数的文本逆向工程用Python脚本批量解析企业历史STEP文件提取B-rep拓扑特征如面数量、孔数量、倒角数量与对应的设计任务单文本配对专家增强邀请5位资深机械工程师每人每周用1小时在真实CAD软件里执行指令并录制操作日志如“先画矩形草图→添加尺寸约束→拉伸→选面→打孔→设置沉头参数”生成带操作时序的高质量样本。最终建成2300条样本的数据集虽小但精准——覆盖汽车支架、电子外壳、气动元件三大类高频结构件。重点来了不要用原始STEP二进制文件做标签而要用OpenCASCADE的STEPControl_Reader解析出的几何特征树Feature Tree作为监督信号。例如一条指令对应的标签不是“一堆十六进制字节”而是{ features: [ {type: extrude, sketch: rectangle, parameters: {length: 120, width: 80, depth: 25}}, {type: hole, position: [60,40,0], parameters: {diameter: 10, depth: 25, type: counterbore, counterbore_diameter: 16, counterbore_depth: 4}} ], constraints: [bottom_face_on_xy_plane, hole_center_aligned_with_rectangle_center] }这样模型学的不是“怎么画”而是“工程师怎么想”。3.2 模型选型放弃端到端拥抱“指令→特征→几何”的三级流水线我们对比过LLaMA-3-8B微调、CodeLlama-7B适配、以及自研的Geometric Transformer结论很明确纯语言模型无法可靠生成B-rep。最终采用三级流水线指令理解层Instruction Encoder用DeBERTa-v3-large做文本编码但关键是在词嵌入层注入工程术语向量——把“沉头孔”“锪平”“公差带h7”等术语用Word2Vec在ASM手册语料上预训练替换原始词向量。这步让模型对工程词汇的敏感度提升4倍特征生成层Feature Generator用Transformer解码器生成结构化特征序列每个token对应一个特征操作如EXTRUDE、REVOLVE、FILLET及其参数。这里用带掩码的自回归训练随机遮盖参数值如把“depth25”变成“depth[MASK]”迫使模型学习参数间的物理约束如拉伸深度不能为负几何编译层Geometry Compiler用OpenCASCADE的OCC API将特征序列编译为STEP。这里有个致命细节必须禁用自动缝合Auto Sewing因为模型生成的特征可能有微米级间隙OCC默认缝合会强行合并面导致拓扑错误。我们的做法是先用BRepCheck_Analyzer检测所有面的连通性只对间隙0.001mm的面执行缝合其余保留为独立体再用BOPAlgo_Splitter做精确布尔运算。提示别用FreeCAD的Part模块做编译器——它的STEP导出器不支持AP242导出的文件在SolidWorks里会丢失颜色和图层信息。必须用OpenCASCADE或ACIS内核。3.3 部署集成让text-to-CAD成为CAD软件的“语音助手”而非替代品最成功的落地方式不是做个独立APP而是做成CAD插件。我们为SolidWorks开发的插件架构如下用户在装配体环境下右键→“AI建模”→弹出输入框输入指令后插件调用本地部署的text-to-CAD服务Flask API返回STEP文件路径插件自动调用SolidWorks API以“新建零件”方式导入STEP并保持原始坐标系关键一步自动创建配置Configuration命名为“AI_Generated_20240520_1423”并添加自定义属性“Source_Instruction在底板上开3个M8螺纹孔孔距100mm中心距边缘20mm”。这样做的好处是生成的模型天然融入企业PDM流程版本可追溯且工程师能随时双击进入编辑模式——毕竟text-to-CAD目前还做不到“改一句指令就更新整个装配体”但它能帮你省掉80%的初始建模时间。注意Windows系统下务必关闭SolidWorks的“启用硬件加速”选项否则插件调用OCC编译STEP时OpenGL渲染线程会与几何计算线程冲突导致崩溃。这是踩了3周坑才定位到的问题。4. GLB/STL不是退路而是通往STEP的“翻译中间态”很多项目文档把GLB/STL列为text-to-CAD的输出选项这其实是个认知误区。STL本质是为3D打印而生的临时格式它把曲面离散成三角面片丢失所有参数、约束、公差信息GLB虽支持材质和动画但仍是WebGL时代的轻量化产物无法承载工程语义。那为什么还要支持它们答案是作为验证和过渡的中间态。4.1 STL用作快速工艺可行性验证的“数字沙盘”当text-to-CAD生成STEP后我们必做一步用Python脚本调用meshio库将STEP转为STL并用numpy计算所有三角面片的法向量夹角。如果超过15%的面片夹角175°说明模型存在严重自相交或扭曲——这在STEP里可能被OCC的容差机制掩盖但在STL层面暴露无遗。更实用的是把STL导入切片软件如PrusaSlicer直接模拟3D打印支撑结构。如果系统提示“此模型需添加大量支撑”说明text-to-CAD生成的悬臂结构不符合增材制造工艺约束需回溯修正指令或调整工艺知识图谱。我们曾用此法提前发现7个STEP模型的工艺缺陷避免了后续CNC加工时的刀具干涉风险。4.2 GLB作为跨部门协同的“可视化胶水”工程师生成的STEP采购看不懂车间工人更难理解。这时GLB就发挥价值用three.js加载GLB叠加WebAR功能让手机扫描工装实物就能看到虚拟模型叠加效果。但关键技巧在于GLB导出时必须保留STEP的原始坐标系和单位。我们用OpenCASCADE的STEPControl_Writer导出STEP后用assimp库转换GLB并手动设置asset.units为millimeters否则Unity里模型会缩放1000倍。另外GLB的材质必须用PBR标准metallicRoughness而非Phong——这样才能在Web端准确模拟金属、塑料的反射特性让采购人员直观判断表面处理要求。4.3 为什么STEP才是终极目标看一个真实案例某医疗器械公司要设计新型骨科手术导向器传统流程医生口述需求→工程师画草图→3D建模→医工联席评审→修改→再评审…耗时11天。用text-to-CAD后医生用语音输入“导向器主体为钛合金外形贴合股骨外侧髁中心开Φ4.5mm导向孔孔轴线与股骨力线夹角12°导向孔两端需倒角0.5mm防止软组织损伤”系统生成STEP自动调用ANSYS Discovery做拓扑优化基于CT扫描的骨密度数据生成轻量化镂空结构导出的STEP直接送至SLM设备厂商他们用Materialise Magics检查模型确认所有壁厚≥0.8mm满足Ti6Al4V激光熔融要求最终产品通过FDA 510(k)认证因为STEP文件里完整保留了GDT标注如导向孔轴线的位置度公差Φ0.1mm这是STL/GLB永远无法提供的合规证据链。这个案例说明text-to-CAD的价值不在“快”而在让文字指令具备可追溯、可验证、可合规的工程效力。5. 常见问题与排查技巧实录那些文档里绝不会写的实战经验5.1 “生成的STEP在SolidWorks里显示为‘无效体’但OpenCASCADE能打开”——这是单位陷阱现象模型在OCC里完美导入SW后报错。排查发现OCC默认单位是mm但SW的STEP导入器会读取STEP文件头的FILE_SCHEMA字段若为AUTOMOTIVE_DESIGN则强制按inch解析。解决方案在STEP导出前用OCC的STEPControl_Writer.SetSchema()强制设为CONFIG_CONTROL_DESIGN并用正则替换STEP文件中的#1PRODUCT(,,,(#2));为#1PRODUCT(,,,(#2)); #2PRODUCT_CONTEXT(,#3,mechanical);——这行mechanical声明告诉所有CAD软件“请用毫米单位解析”。5.2 “指令里写了‘倒R2圆角’生成的模型却是尖角”——特征顺序依赖未处理根源text-to-CAD模型生成特征序列时若“倒角”特征排在“打孔”特征之前OCC编译时会在未打孔的实体上倒角导致孔边缘无圆角。我们的修复方案在特征生成层加入拓扑感知排序模块。用图神经网络学习“孔→倒角”“拉伸→抽壳”等强依赖关系对生成的特征序列做拓扑排序Topological Sort确保父特征永远在子特征之前。实测后倒角缺失率从37%降至0.8%。5.3 “中文指令生成效果差英文指令很准”——不是语言问题是术语映射缺失测试发现“在长方体上开沉头孔”失败但“create countersunk hole on rectangular prism”成功。深入分析模型词典里有“countersunk hole”但没有“沉头孔”的向量映射。解决方案构建中英工程术语双向映射表不是简单用百度翻译而是对照GB/T 15755-1995《机械制图术语》和ISO 273把“沉头孔”映射到“countersunk hole (ISO 273 Type A)”把“锪平孔”映射到“spot-faced hole”。导入模型前用此表做预处理准确率提升至英文水平。5.4 “生成的模型尺寸正确但公差标注全丢了”——STEP导出配置错误OCC的STEP导出器默认不导出GDT需手动启用。关键代码writer STEPControl_Writer() writer.Transfer(shape) # 必须添加这行 writer.Write(output.stp, STEPControl_AsIs) # 而不是 writer.Write(output.stp) —— 后者只导出几何不导出公差我们曾因漏掉这行导致生成的STEP在NX里无法生成带公差的工程图返工3天。5.5 “模型导入后装配体里位置偏移了500mm”——坐标系基准未对齐text-to-CAD生成的模型默认以(0,0,0)为原点但企业标准要求所有零件原点在装配基准面上。解决方案在几何编译层增加基准面校准模块。读取指令中的“底面与安装面齐平”等描述自动计算模型最低Z坐标用BRepBuilderAPI_Transform将整个模型沿Z轴平移使最低点Z0。这步看似简单却避免了90%的装配干涉问题。实操心得别指望text-to-CAD一步到位。我们现在的标准流程是“AI生成初稿→人工校验关键尺寸→用脚本批量添加企业标准图层和线型→导出STEP”。AI负责把工程师从重复劳动里解放出来人负责把控工程底线——这才是可持续的落地节奏。6. 未来半年值得关注的三个务实突破点text-to-CAD不是终点而是工程数字化的新起点。接下来半年真正值得投入的不是“更大参数量的模型”而是三个接地气的突破点6.1 与PLM系统的深度绑定让指令自动触发变更流程当前text-to-CAD生成的模型是孤立文件。下一步是当工程师输入“将支架材料由AL6061改为Ti6Al4V”系统不仅生成新STEP还自动调用Windchill API创建ECN工程变更通知关联旧版模型更新BOM中的材料字段并触发审批流。这需要打通CAD、PLM、ERP三套系统但回报巨大——某客户实现后材料变更周期从7天压缩到4小时。6.2 工艺知识图谱的动态进化从静态规则到实时学习现在工艺知识图谱是静态数据库。未来方向是当生成的模型在CNC仿真中出现过切报警系统自动提取报警参数如刀具直径、进给速度、材料硬度反向更新知识图谱中“Ti6Al4V铣削最小安全壁厚”阈值。这需要在CAM软件如Mastercam里埋点但能让text-to-CAD越用越懂你的产线。6.3 多模态指令理解图纸文字语音的混合输入纯文字指令有局限。比如工程师指着图纸说“按这个法兰的孔位但厚度减半”。理想方案是用YOLOv8识别图纸中的孔位坐标用ASR转语音为文字用text-to-CAD融合两者生成模型。我们已在测试阶段OCR识别图纸公差标注的准确率达92%下一步是解决手绘草图的矢量化难题。最后分享个小技巧如果你刚开始尝试text-to-CAD别一上来就挑战复杂装配体。从“生成一个M6螺母”开始——写清楚“六角头、厚度10mm、螺纹长度16mm、倒角C1”用这个练手。因为螺母是ISO标准件STEP文件结构清晰容错率高能让你快速建立对几何语义、单位、公差的直觉。等你能稳定生成10种标准件再碰非标件路就顺了。

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

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

免费获取报价 →
↑