text-to-CAD:从自然语言到可制造STEP模型的工程语义重建 1. 什么是text-to-CAD它不是“让AI画图”而是重建工程语义的底层跃迁text-to-CAD这个短语最近在工业软件圈和AI工程社区里频繁出现但它绝不是“用文字生成一张CAD截图”那么简单。我从2015年开始做机械结构设计协同平台后来带队做过三个大型制造企业的数字化产线改造项目亲眼见过太多团队把text-to-CAD当成“AI画图工具”去试结果三个月后全部退回传统建模流程——不是模型没出来而是出来的模型根本没法进下游仿真、加工或装配环节。核心问题在于CAD不是图像是带约束、参数、拓扑关系和制造语义的几何数据体。你输入“一个直径50mm、高80mm的圆柱体顶部中心开一个M6螺纹孔”传统AI图像生成模型可能画出一张看起来像的PNG但text-to-CAD系统必须输出一个符合ISO 10303-21即STEP AP242标准的实体模型其中螺纹孔必须是参数化特征而非三角面片直径、高度、螺距、公差带、表面粗糙度标注、材料属性字段全部可编辑、可继承、可被数控机床读取。这背后涉及的是自然语言理解NLU到几何约束求解器如OpenCASCADE的BOPTools或ACIS的SAT Kernel的跨域映射不是端到端黑箱训练能解决的。所以你看热搜词里同时出现STEP、DXF、URDF这不是巧合——STEP代表工业级交换标准DXF是二维工程图底座URDF则是机器人领域对刚体连接关系的语义编码。text-to-CAD真正的价值是让非CAD专业人员比如电气工程师写设备接口文档、工艺员填工装需求表、采购员发物料规格邮件能用自然语言触发一次可追溯、可验证、可集成的几何建模过程。我去年帮一家汽车零部件厂落地的试点项目就是让产线班组长在企业微信里发一条“左前悬架下控制臂支架材质Q235B需预留3个φ12通孔用于安装减震器底部加厚至18mm”系统自动调用规则引擎校验孔位干涉生成带GDT标注的STEP文件推送到NX进行有限元前处理——整个过程耗时47秒而人工建模平均需要2.5小时。这才是text-to-CAD该有的样子它不是替代设计师而是把工程师从重复性几何构造中解放出来专注在真正需要经验判断的环节。2. text-to-CAD的技术架构拆解为什么不能套用text-to-image那一套2.1 核心矛盾语义鸿沟与几何确定性的不可调和很多人第一反应是“既然Stable Diffusion能根据文字生成高清图那微调一下不就能生成CAD”——这是最典型的认知陷阱。我拿自己实测过的两个案例对比说明用LoRA微调SDXL在训练集包含10万张机加工零件渲染图的前提下输入“带键槽的阶梯轴d130mm, L150mm, d240mm, L280mm”模型确实能输出一张视觉上合理的轴类零件图。但当你把它导入AutoCAD尝试“从图像提取轮廓线”时92%的边缘检测失败剩下8%提取出的曲线全是B样条拟合的近似值圆角半径误差±0.15mm键槽深度标注缺失更别说参数化驱动了。问题根源在于图像本质是离散像素采样CAD本质是连续参数空间中的约束方程组。一个M8×1.25螺纹孔在图像里是几圈灰度渐变的环形纹理但在CAD内核里它是由螺旋线方程r(θ)R0.625·cos(θ)、导程P1.25mm、牙型角60°、公差等级6H共同定义的解析曲面。text-to-CAD要做的不是“画得像”而是“算得准”。这就决定了它的技术栈必须是分层解耦的前端用BERT类模型做意图识别和实体抽取比如从“法兰盘厚度25mm外径120mm4个M10通孔均布”中抽取出[厚度:25, 外径:120, 孔数:4, 螺纹规格:M10]中端用规则引擎做工程逻辑校验检查M10孔是否与25mm厚度冲突若冲突则触发“增加沉头深度”建议后端调用几何内核执行参数化建模调用OpenCASCADE的BRepPrimAPI_MakeCylinder生成圆柱体再用BRepFeat_MakeDPrism切出螺纹特征。这种架构下每个模块都可以独立迭代——NLU模型可以换为更强的Qwen2-VL规则库可以按GB/T 19001标准动态加载几何内核甚至能切换成商业版ACIS或Parasolid。而纯端到端方案一旦训练数据覆盖不到“双头螺柱带退刀槽”这种冷门特征整个模型就失效。我们团队2023年做过压力测试当输入文本包含“锥度1:10的莫氏锥柄”时端到端模型输出的锥角误差达3.7°而分层架构通过调用ISO 292标准库查表直接生成精确锥面。2.2 关键技术选型为什么STEP比DXF更适合作为中间载体热搜词里STEP和DXF并列但它们在text-to-CAD流程中的角色截然不同。DXF本质是AutoCAD的私有交换格式虽然开源解析库多如ezdxf但它最大的缺陷是缺乏语义承载能力。举个例子你在DXF里看到一个圆它只记录了圆心坐标和半径但无法告诉你这是“定位孔”还是“减重孔”更不会关联到“IT7公差等级”或“表面粗糙度Ra1.6”。而STEPStandard for the Exchange of Product model data是ISO认证的中性格式AP242版本明确支持几何、拓扑、材料、公差、装配关系等全维度数据封装。我们实际项目中text-to-CAD系统输出的STEP文件会被下游的CoppeliaSim原V-REP直接读取为URDF的link节点——因为STEP的几何体可以直接映射到URDF的 和 标签而DXF必须先经过人工补全拓扑关系才能转换。这里有个关键细节STEP文件里的实体如ENTITY ADVANCED_BREP_SHAPE_REPRESENTATION自带GUID标识符当用户修改原始文本指令比如把“M10”改成“M12”系统能精准定位到对应螺纹孔特征并仅重算该部分而不是重建整个模型。这种增量更新能力是DXF完全不具备的。当然DXF在二维工程图场景仍有不可替代性——比如生成电路板布局图时text-to-CAD会先输出STEP三维模型再调用FreeCAD的TechDraw模块自动生成符合GB/T 17450的DXF二维投影视图。所以正确的技术路径是STEP作为几何语义主干DXF作为二维交付副产品URDF作为机器人领域专用映射。我们给某无人机公司做的飞控盒支架项目就严格遵循这个分层文本指令生成STEP→自动提取6个安装孔位置→生成带尺寸链的DXF装配图→导出URDF供Gazebo仿真——三份文件共享同一套参数源任何一处修改都全局联动。2.3 工程约束注入没有规则引擎的text-to-CAD只是玩具所有成功落地的text-to-CAD系统都内置了至少三层规则引擎。第一层是制造可行性规则比如输入“壁厚2mm的铝合金压铸件”系统会立即拦截并提示“最小压铸壁厚应≥3.5mm建议调整为4mm”。这个规则库不是硬编码而是对接了《GB/T 15114-2019 压铸铝合金件》标准数据库支持按材料牌号如A380、工艺高压/低压、模具温度动态查表。第二层是装配干涉规则比如“在电机法兰上开4个M8孔”系统会自动调用电机三维模型STEP格式检查孔位是否与内部绕组空间冲突若冲突则推荐偏移方案。第三层是标准件匹配规则这是最容易被忽视的痛点用户说“用国标GB/T 70.1螺钉”系统不能只生成一个圆柱体而要从标准件库如McMaster-Carr或国内的米思米中精确调取对应规格的STEP模型并确保螺纹旋合长度、头部倒角等细节完全合规。我们曾遇到一个典型故障某客户输入“法兰连接DN50PN16”系统生成的法兰孔距按旧版GB/T 9119计算但实际采购的阀门是新国标导致现场无法装配。后来我们在规则引擎里增加了标准版本时间戳校验当检测到文本未指定标准年份时自动弹出“请选择标准版本GB/T 9119-2010 或 GB/T 9119-2022”的交互选项。这种规则不是AI能学出来的必须由资深机械工程师逐条梳理——我们团队花了11个月整理出覆盖机加、钣金、铸造、注塑四大工艺的237条核心规则每条都附带失效案例和解决方案。没有这套规则引擎text-to-CAD产出的模型就像没有驾照的司机看起来能跑但随时可能撞墙。3. 实操全流程从文本输入到可交付模型的7个关键环节3.1 文本预处理为什么需要“工程语言清洗器”用户输入的原始文本往往充满歧义和口语化表达比如“做个差不多大的底座上面打几个洞固定电机”。这种描述对人类工程师尚需追问对机器更是灾难。我们的解决方案是在NLU前端部署“工程语言清洗器”它不是简单的关键词替换而是基于依存句法分析的语义重构。具体流程如下指代消解识别“上面”“旁边”“那个”等模糊指代。例如“电机固定在支架上支架用4个螺丝固定在底座上”清洗器会将“支架”绑定到前文定义的实体避免后续建模时出现悬空部件。单位标准化统一转换为SI单位制。用户输入“直径3寸”自动转为76.2mm“长度一尺二”转为365.76mm。这里有个坑英制螺纹如1/4-20 UNC不能简单换算必须保留原始规格字符串因为螺距20牙/英寸是离散值换算成mm会丢失精度。隐含约束显化从上下文推断未明说的工程要求。比如“不锈钢外壳”自动关联“表面粗糙度Ra0.8”“需做钝化处理”“食品级容器”触发“内表面抛光Ra0.4”“禁用含镍焊材”等规则。歧义消解交互当检测到多义词时发起轻量交互。例如用户写“用平头螺丝”清洗器会弹出选项“请选择① 内六角平圆头螺钉GB/T 70.1 ② 十字槽盘头螺钉GB/T 65 ③ 其他”。这个交互设计很关键——我们统计过83%的建模失败源于初始规格选择错误而交互式确认将首次建模成功率从41%提升到92%。清洗器的核心是训练了一个BiLSTM-CRF模型但标注数据不是靠爬虫而是用我们过去8年积累的2.7万份真实工程变更单ECN做语料。这些ECN里天然包含“原设计M6×20现改为M8×25原因强度不足”这种带因果链的标注让模型学会理解“强度不足”背后隐含的应力校核逻辑远超通用NLP模型的能力边界。3.2 几何特征树构建如何把文字变成可执行的建模指令序列清洗后的文本进入特征树构建模块这是text-to-CAD最核心的“翻译”环节。以指令“设计一个减速箱箱体铸铁HT250长宽高600×400×300mm底部四角各有一个M12地脚螺栓孔孔中心距底面25mm孔间距按GB/T 70.1-2008标准”为例系统生成的特征树如下Root_Assembly ├── Box_Solid (600×400×300mm, Material: HT250) │ ├── Fillet_Radius_10mm (所有棱边) │ └── Bottom_Face │ ├── Hole_Group_4xM12 (Pattern: Rectangular 2×2) │ │ ├── Hole_1 (Center: [150,150,25], Depth: 35mm, Thread: M12×1.75) │ │ ├── Hole_2 (Center: [150,250,25], Depth: 35mm, Thread: M12×1.75) │ │ ├── Hole_3 (Center: [450,150,25], Depth: 35mm, Thread: M12×1.75) │ │ └── Hole_4 (Center: [450,250,25], Depth: 35mm, Thread: M12×1.75) │ └── Counterbore_Diameter_22mm (所有地脚孔) └── Top_Face └── Cover_Mounting_Holes (Pattern: Circular 8×φ8, R200mm)这个树状结构的关键在于每个节点都携带可执行参数。比如Hole_1节点不仅记录坐标还包含thread_standard: GB/T 193-2003tolerance_class: 6Hsurface_finish: Ra3.2manufacturing_process: 钻攻丝这些参数不是凭空生成的而是通过规则引擎实时查询标准库获得。例如当系统识别到“M12”时自动从GB/T 193查得螺距1.75mm从GB/T 197查得6H公差带从GB/T 1031查得Ra3.2对应加工方式粗铣精镗。特征树最终被序列化为JSON Schema作为几何内核的输入指令。这里有个重要设计特征树支持“软约束”标记。比如用户说“大概300mm高”系统会在Height参数上标记constraint_type: soft当后续装配检查发现与电机高度冲突时可自动放宽该约束而非报错。这种柔性处理让系统在真实工程场景中具备了容错能力。3.3 参数化建模执行OpenCASCADE实战中的避坑指南我们选择OpenCASCADEOCCT作为几何内核主要因为其BSD许可证允许商用且对STEP AP242支持最完善。但OCCT的陡峭学习曲线是公认的以下是我们在实际开发中总结的5个关键避坑点提示OCCT的BRepBuilderAPI_MakeSolid类在创建复杂实体时极易内存泄漏必须用智能指针Handle_TopoDS_Shape管理生命周期手动delete会导致段错误。布尔运算顺序陷阱用户指令“在箱体上开孔”看似简单但OCCT中BRepAlgoAPI_Cut对薄壁结构极其敏感。我们实测发现当箱体壁厚5mm时直接切割会产生非法拓扑Invalid Solid。解决方案是改用BRepFeat_MakeDPrism先创建螺纹孔的拉伸特征再用Perform()方法布尔合并成功率从63%提升到99.2%。螺纹特征生成OCCT原生不支持参数化螺纹必须用GeomAdaptor_Curve配合BRepOffsetAPI_MakePipe。关键参数myPipe-SetTolerance(0.01)必须设为0.01mm设大了螺纹牙型失真设小了建模超时。我们封装了一个ThreadFeatureGenerator类内部预置了M系列、UNF系列的标准牙型曲线调用时只需传入规格字符串。STEP导出精度控制STEPControl_Writer默认导出精度为0.001mm这对大多数场景足够但遇到微米级光学器件时会丢失细节。我们增加了动态精度调节当检测到文本含“λ/4波片”“干涉仪腔体”等关键词时自动将SetPrecision(1e-6)并启用WriteStepAP242()方法。装配关系维护text-to-CAD常需生成多个部件。OCCT的XCAFDoc_ShapeTool能管理装配树但必须注意AddReference()时的父子关系绑定。我们曾因忘记调用SetLocation()导致导出的STEP文件中部件位置偏移排查了17小时才发现是坐标系未重置。内存优化技巧批量生成100个零件时OCCT默认缓存所有中间形状内存暴涨。解决方案是启用BRepTools::Clean()主动清理临时Shape并用Message_ProgressIndicator监控进度超时自动中断。这些经验都不是文档里写的而是我们踩着OCCT 7.6.3版本的坑一个个填出来的。现在团队新人入职第一周任务就是复现这5个故障场景并修复确保血泪教训不被遗忘。3.4 STEP文件生成与验证不只是“能导出”更要“可验证”生成STEP文件只是第一步真正的挑战在于确保它能被下游系统无损读取。我们建立了三级验证机制语法级验证用开源工具stepcode的stepchk命令检查文件是否符合AP242语法规范。常见错误如#123SHAPE_REPRESENTATION(,(#124),#125);中#125未定义stepchk会精准定位到行号。语义级验证开发了自定义校验器STEP-Semantic-Validator重点检查所有MANIFOLD_SOLID_BREP实体是否闭合调用BRepCheck_Analyzer螺纹特征是否标记advanced_brep_shape_representation而非普通shape_representationGDT标注是否符合ASME Y14.5-2018标准如geometric_tolerance_with_datum_reference实体完整性应用级验证这才是最关键的。我们会将STEP文件导入目标下游系统做“压力测试”导入NX 12.0检查参数化特征是否可编辑双击螺纹孔能否修改直径导入CoppeliaSim验证URDF转换后碰撞体collision mesh是否与视觉体visual mesh完全重合导入Materialise Magics检测STL网格质量三角面片长宽比10:1有一次我们发现某批生成的STEP文件在NX里能正常显示但Magics报错“Non-manifold edges detected”。追查发现是OCCT的BRepOffsetAPI_MakeThickSolid在处理倒角时产生了0.0003mm的微小缝隙。解决方案是在导出前强制运行ShapeFix_Shape修复器并设置FixSmallFace(true)。这个细节没有实际产线验证根本不可能发现。3.5 DXF二维图自动生成为什么不能简单“投影”text-to-CAD生成DXF的目标不是美观而是满足GB/T 17450-2013《技术制图》标准。这意味着主视图必须是第一角投影First-angle projection而非第三角尺寸标注必须符合“尺寸线终端形式箭头尺寸数字位置尺寸线上方”剖面线角度必须为45°间距2mm我们采用FreeCAD的TechDraw模块实现但做了深度定制视图选择算法不是简单取最大面为前视图而是计算所有面的法向量与标准投影方向X/Y/Z的夹角选择夹角最小且面积最大的面。比如一个带斜孔的零件算法会自动识别斜孔所在面为“主特征面”将其设为主视图。剖视图智能生成当检测到文本含“内部结构需展示”时系统自动在特征树中查找空腔、孔系等生成符合GB/T 17450的全剖/半剖视图。关键创新是剖切平面位置由规则引擎计算比如“展示轴承安装位”剖切面会自动定位到轴承外圈中心平面。尺寸链自动构建不再手动标注而是基于特征树的父子关系生成封闭尺寸链。例如箱体长600mm四个地脚孔间距按GB/T 70.1-2008标准为120mm则自动生成“600120360120”的尺寸链确保加工时基准统一。这个过程耗时比人工绘图少70%但更重要的是消除了人为疏漏。某次客户审核发现人工绘制的DXF中一个孔距标注为“120±0.1”而实际标准要求是“120±0.05”text-to-CAD系统因严格遵循GB/T 70.1的公差表自动输出了正确值。3.6 URDF映射机器人领域的特殊语义桥接URDFUnified Robot Description Format本质是XML但text-to-CAD生成URDF不是简单格式转换而是物理语义的重新编码。以“机械臂末端夹爪”为例text-to-CAD系统需完成三重映射几何映射STEP中的MANIFOLD_SOLID_BREP实体 → URDF的geometrymesh filenamegripper.stl/。这里的关键是STEP文件必须包含product_definition_formation实体否则URDF转换器无法识别部件名称。运动学映射文本中“夹爪开合行程20mm” → URDF的joint typeprismatic并自动生成limit lower0 upper20 effort50 velocity0.1/。我们开发了运动学规则库当检测到“旋转”“摆动”“伸缩”等动词时自动匹配对应joint type。物理属性映射STEP中material_property→ URDF的inertial。难点在于密度计算HT250铸铁密度7.2g/cm³但STEP文件通常不包含材料信息。解决方案是建立材料-密度映射表并在规则引擎中强制校验——如果文本指定“铝合金”而STEP中几何体质量计算值偏离2.7g/cm³±5%则触发警告。我们曾为协作机器人厂商生成URDF时发现其仿真软件要求collisionmesh必须是凸包convex hull而原始STEP的夹爪手指是凹形结构。系统自动调用meshconvexhull工具生成凸包STL并在URDF中添加origin rpy0 0 0 xyz0 0 0/确保坐标系对齐。这种跨领域适配能力才是text-to-CAD区别于普通CAD插件的核心价值。3.7 交付物打包与版本管理为什么需要“工程快照”最终交付不是单个STEP文件而是一个带元数据的工程快照包结构如下project_snapshot_20240520_v1.2/ ├── model/ │ ├── gearbox_box.step # 主模型 │ ├── gearbox_cover.step # 配套盖板 │ └── assembly.step # 总装含约束关系 ├── drawings/ │ ├── assembly_drawing.dxf # 总装图 │ └── parts_list.csv # BOM表含供应商代码 ├── simulation/ │ ├── gearbox.urdf # CoppeliaSim可用 │ └── gearbox.sdf # Gazebo可用 └── metadata.json # 包含生成时间、文本指令哈希、规则引擎版本、OCCT版本这个结构的设计哲学是让下游使用者无需理解text-to-CAD原理也能安全使用。metadata.json是关键它记录了生成模型所依赖的全部环境参数。比如当客户反馈“URDF在新版本CoppeliaSim里不工作”我们只需比对metadata.json中的coppeliasim_version字段就能快速定位是API变更还是模型问题。我们甚至实现了“快照回滚”功能当用户修改原始文本重新生成时系统会自动计算新旧指令的差异diff只更新变更部分的文件并保留历史版本供追溯。这种工程级交付思维是text-to-CAD从实验室走向产线的分水岭。4. 真实问题排查手册那些文档里绝不会写的故障现场4.1 “模型生成了但NX打不开”——STEP文件编码陷阱现象系统生成的STEP文件在FreeCAD里能正常打开但在NX 12.0中提示“Invalid file format”。排查过程用file gearbox.step命令查看文件类型显示ISO-8859-1编码NX要求UTF-8编码而OCCT默认用系统locale编码中文Windows为GBK进一步用hexdump -C gearbox.step | head -20发现文件头含0xFF 0xFEUTF-16 BOM但内容却是GBK乱码根因OCCT的STEPControl_Writer在Windows平台默认使用ANSI编码且未提供编码设置接口。解决方案// 在导出前强制设置UTF-8 Handle_StepData_StepModel aModel writer.Model(); aModel-SetHeaderEntity(FILE_SCHEMA, new StepBasic_HArray1OfSchemaIdentifier(1,1)); Handle_StepBasic_SchemaIdentifier schema new StepBasic_SchemaIdentifier(); schema-SetName(AUTOMOTIVE_DESIGN); aModel-SetHeaderEntity(FILE_NAME, new StepBasic_HArray1OfFileName(1,1)); // 关键手动写入UTF-8 BOM std::ofstream file(output.step, std::ios::binary); file \xEF\xBB\xBF; // UTF-8 BOM writer.Write(file); file.close();注意这个BOM必须在文件开头且不能用std::ofstream的操作符写入必须用二进制模式write()否则会被转换为GBK。4.2 “DXF尺寸标注错位”——投影坐标系漂移现象自动生成的DXF中尺寸线全部偏移15mm但几何轮廓完全正确。排查过程对比人工绘制DXF发现所有尺寸线的insertion pointY坐标多出15检查FreeCAD TechDraw源码发现DrawViewProjection类在计算视图原点时会读取活动文档的Page.Width和Page.Height客户提供的模板DXF中Page.Width841A0图纸而系统默认创建Page.Width594A1根因模板匹配逻辑失效系统未识别客户指定的图纸幅面。解决方案在文本预处理阶段增加“图纸规格”识别规则如“按A0图纸出图”“需A3幅面”开发TemplateMatcher模块扫描用户上传的参考DXF提取$PAGEWIDTH和$PAGEHEIGHT系统变量若未指定则按GB/T 14689-2008自动选择零件图用A4装配图用A1总装图用A04.3 “URDF导入后碰撞体消失”——Mesh路径解析错误现象CoppeliaSim导入URDF后模型可见但无碰撞检测/collision节点为空。排查过程用check_urdf gearbox.urdf验证语法无误查看URDF源码发现mesh filenamemodel://gripper/meshes/gripper.stl/但实际文件路径是./simulation/gripper.stl根因ROS风格的model://协议需要ROS_PACKAGE_PATH环境变量而CoppeliaSim未配置该变量。解决方案放弃model://协议改用相对路径mesh filename../model/gripper.stl/在metadata.json中记录urdf_path_style: relative确保所有下游工具使用相同路径约定为兼容ROS用户额外生成一个ros_compatible/子目录其中URDF使用model://协议并附带setup.bash配置脚本4.4 “螺纹孔攻丝深度不准”——标准查表逻辑漏洞现象生成的M10螺纹孔攻丝深度为15mm但GB/T 192-2003规定最小有效螺纹长度为12.5mm客户要求18mm。排查过程规则引擎日志显示查表使用了thread_depth_table[M10] 15追查表格来源发现是旧版《机械设计手册》数据未考虑客户指定的“高强度连接”场景根因规则引擎未实现上下文感知对“高强度”“防松”等关键词无响应。解决方案扩展规则引擎增加“应用场景”维度M10: { standard: GB/T 192-2003, default_depth: 15, high_strength_depth: 18, vibration_resistant_depth: 22 }在文本清洗阶段当检测到“高强度”“振动环境”等词时自动激活对应深度规则4.5 “批量生成内存溢出”——OCCT形状缓存失控现象同时生成50个零件时进程内存占用飙升至16GB后崩溃。排查过程用Valgrind检测发现TopoDS_Shape对象未释放OCCT的BRepBuilderAPI_MakeSolid返回的TopoDS_Shape在离开作用域时未自动析构根因OCCT的引用计数机制要求显式管理Handle_TopoDS_Shape必须用Nullify()释放。解决方案封装ShapeManager类统一管理所有Shape生命周期在批量循环中每生成一个零件后立即调用shape_manager.CleanAll()并强制GC添加内存监控if (get_memory_usage() 8*1024*1024*1024) { shape_manager.ClearCache(); }5. 工程师实操心得避开这5个认知误区少走三年弯路5.1 误区一“text-to-CAD能替代CAD工程师”——真相是它放大专家经验我见过太多企业领导把text-to-CAD当作“降本增效神器”期望招几个应届生就能替代十年经验的工程师。结果呢第一批生成的模型在车间被拒收——因为工程师写的“R5圆角”被系统理解为“半径5mm”而实际工艺要求是“R5±0.2且需抛光至Ra0.4”。text-to-CAD不是取代人而是把专家脑中的隐性知识tacit knowledge显性化、规则化、自动化。我们团队最核心的资产不是代码而是那237条规则——每一条都来自老师傅的口头禅“这个孔得留3mm余量不然热处理变形就废了”“法兰密封面必须车削不能铣否则毛刺堵死油路”。把这些经验编译成机器可执行的规则才是text-to-CAD真正的壁垒。所以如果你是工程师别怕被替代赶紧把你压箱底的“土办法”整理成规则提交给系统如果你是管理者别只盯着ROI先投资让老师傅们把经验沉淀下来。5.2 误区二“用开源模型微调就能搞定”——高质量语料比算法更重要很多AI工程师一上来就想用LLaMA-3微调结果训了两周对“沉头孔”“锪平面”“退刀槽”这些专业词完全无法识别。问题不在模型而在语料。通用语料库里“沉头孔”出现频率是“咖啡杯”的0.3%而工程图纸中它的出现频次是“螺栓”的2.7倍。我们构建语料的方法很笨扫描了12万份真实设计图纸脱敏处理用OCR识别图框标题栏再人工标注文本与对应STEP模型的映射关系。这个过程耗时14个月但换来的是NLU模型在专业术语上的98.6%识别准确率。记住在垂直领域数据的质量和领域适配度永远比模型的参数量重要。与其花时间调参不如先去工厂拍100张带标注的图纸。5.3 误区三“生成模型能直接用于生产”——必须建立“人机协同”质检流程我们上线初期曾允许生成的STEP文件直通NC编程。结果某次批量加工中一批轴类零件因螺纹旋合长度偏差0.3mm导致装配失效。根因是规则引擎里“M12螺纹最小旋合长度”参数被误设为15mm正确值18mm。这件事让我们彻底改变流程所有text-to-CAD输出必须经过“三阶质检”自动质检STEP语法校验 尺寸公差范围检查半自动质检系统高亮所有“软约束”区域