AgenticCAD 0.10.1:从文本需求到可追溯CAD/CAM脚本

AgenticCAD 0.10.1:从文本需求到可追溯CAD/CAM脚本封面

生成式人工智能进入工业设计后,真正困难的并不是“让模型画出一个像零件的三维图”,而是让设计结果可编辑、可核验、可制造,并能解释每一次修改从何而来。AgenticCAD 0.10.1给出了一条颇有工程意味的路线:以自然语言和交互式建模作为入口,以build123d Python脚本作为设计主记录,以Open CASCADE Technology(OCCT)的精确边界表示为几何事实,再将同一模型延伸到工程图、STEP/STL导出和面向GRBL控制器的CAM程序。

它不是把大模型包装成“自动画图按钮”,而是试图建立一条可追溯的数字线程:用户描述需求,智能体生成或修改代码;内核执行代码并返回体积、包围盒、面类型等确定性结果;浏览器显示模型并允许点选实体;手工操作也回写同一份脚本;CAM则另存为与设计关联的Python程序。对企业而言,这种“脚本是源、几何是证据、界面是视图”的结构,比只有对话记录和网格结果的文本转三维方案更接近工程软件。

AgenticCAD 0.10.1:从文本需求到可追溯CAD/CAM脚本技术图

一、核心架构:让智能体围绕确定性内核工作

AgenticCAD的前端包括three.js查看器、草图编辑器、类似Fusion的功能区和对话面板,通过WebSocket连接FastAPI服务。服务端将职责拆分为智能体会话、CAD内核、CAM内核、工程图、螺纹、零件库和脚本编辑等模块。智能体可调用进程内MCP工具:构建模型、检查几何、截取视图、读取代码和导出模型。这里的关键边界是,大模型负责提出和改写程序,真正的几何计算仍由build123d与OCCT完成。

build123d提供声明式、可组合的Python建模接口,底层依赖OCCT执行布尔运算、拉伸、旋转、倒角、圆角和拓扑查询。与模型直接输出STL三角网格相比,这条路径保留了平面、圆柱面、圆锥面、球面、圆环面和B样条曲面等解析或参数化信息。浏览器里看到的三角网格只是显示层;拾取三角形后,系统仍映射回真实B-rep面。STEP导出保留精确曲面,STL则到导出阶段才按指定公差离散化。

这种分层带来两项价值。第一,智能体的错误可以被内核拒绝:脚本语法错误、布尔运算失败或无效拓扑会形成明确异常,而不是生成一张“看起来合理”的图片。第二,几何可以接受确定性检查,例如孔径、面法向、体积、实体数量和包围盒,适合加入自动验收门槛。

二、脚本即设计主记录

AgenticCAD把一件设计定义为一份build123d脚本。顶层数值变量会被识别为参数,用户可在界面修改并触发重建;成功构建的版本进入历史目录;多实体结果可用嵌套字典表达装配层次。手工增加基本体、拉伸草图、移动实体、删除或重命名零件时,系统不是只改内存中的场景,而是通过AST或受控代码改写将操作写回脚本。

这使审查对象从不透明的会话状态变成普通文本文件。企业可以对脚本做Git版本控制、代码评审、差异比较和发布签名,也可把材料、参数范围、命名规范和设计规则写进测试。需要注意的是,可追溯不等于自动正确:如果智能体把错误意图稳定地写进脚本,结果仍然错误。因此脚本追踪必须与需求基线、几何断言和人工签核共同使用。

几何引用也是一个现实难点。OCCT模型每次重建后,面编号可能变化。项目通过面类型、中心、法向和尺寸等特征帮助重新匹配,并在点选时把几何上下文送入对话。这比在提示词中说“给上面那个面打孔”可靠得多,但仍不是完整的持久拓扑命名方案。复杂模型经历大规模布尔重构后,相似面可能产生歧义。企业试用时应重点设计回归用例,验证参数变化后孔、倒角和加工区域是否仍绑定到预期语义对象。

三、从B-rep到GRBL加工程序

AgenticCAD的CAM不是把STEP丢给另一个孤立软件,而是让加工脚本直接读取精确B-rep。系统提供截面、轮廓、毛坯减零件、竖直圆孔识别和指定面的多边形等几何接口;操作包括端面、轮廓、型腔、钻孔、2.5D自适应清料和平行3D精加工。机床JSON描述行程、主轴范围、安全高度、换刀政策和启停代码,刀具库记录平刀、球刀、V形刀、钻头及进给、下刀、步深和步距。

后处理面向GRBL,输出毫米制、绝对坐标、每分钟进给、XY平面、工件坐标系、主轴和G0/G1等常见指令,并可将圆弧轨迹拟合为G2/G3。系统还检查机床行程、主轴范围、进给钳制、切削低于毛坯底面以及多刀具与换刀策略冲突。可视化层能同时显示毛坯、工件坐标原点、快移和切削轨迹,并提供仿真滑块。

这条链路的工程意义在于,设计参数、几何选择和加工策略能留在可审计文件中。不过GRBL通常用于桌面CNC、雕刻机和轻型设备,不应把“成功生成G-code”理解为已完成生产验证。夹具、刀柄干涉、机床动力学、主轴负载、排屑、材料批次、刀具磨损、回零误差和控制器方言差异,仍需外部验证。项目明确存在能力边界,如尚不覆盖四轴、GRBL原生不具备的钻孔循环以及螺纹铣削;更重要的是,公开项目状态也不应被表述为已经完成广泛真实机床验证。

四、验证应分成四层

第一层是软件构建验证。固定Python依赖和项目版本,在隔离环境运行单元测试,覆盖内核、实体与面查询、导出、测量、脚本改写、CAM操作、后处理和API。任何提示词或模型版本更新,都不应绕过这层回归。

第二层是几何验证。企业应为试验零件建立机器可判定的验收表:外形尺寸公差、实体数量、孔数量与孔径、最小壁厚、关键面法向、体积范围、封闭性以及STEP重新导入的一致性。对拓扑引用敏感的操作,要做参数扫描,而不是只测试标称尺寸。

第三层是刀路验证。至少检查刀具直径与槽宽、最大切深、剩余料、越界、空切比例、安全高度、换刀点和工件坐标系。随后把G-code送入独立仿真器或控制器离线环境,避免同一个实现同时充当生成器与裁判。

第四层才是实体试切。应先用泡沫、蜡或软木,再进入塑料和铝材;先空运行与单段执行,再低进给切削;由有资质人员确认急停、限位、夹具、刀具伸出和防护。量具检测结果、操作员观察和最终G-code摘要应与脚本提交号关联保存。

五、参数化B-rep与重建稳定性

参数化B-rep不能只理解为“脚本里有几个可修改数字”。完整模型同时包含参数、特征依赖图、精确曲面与曲线、拓扑邻接关系以及装配坐标变换。每次改参后,OCCT会重新求交、裁剪和缝合,面与边可能分裂、合并或消失,因此验收对象应是重建后的几何事实,而不是某个历史面序号。对孔、基准面、加工口袋等长期引用对象,宜使用语义名称加几何签名:面类型、面积、质心、法向、曲率范围、相邻面类型和所属实体共同匹配;匹配出现多个候选时必须停止自动修改并要求复核。

参数应带单位、类型、上下限和约束关系。例如板长、孔径、边距和圆角半径不能作为互不相关的自由变量;应表达“孔边到外轮廓的最小距离”“圆角不超过相邻短边的一半”等派生约束。参数扫描要覆盖最小值、最大值、标称值以及会触发拓扑变化的临界邻域。每次重建后依次检查脚本执行成功、实体封闭、几何有效、预期实体数、质量属性和关键测量;若出现零面积面、极短边、非流形连接或布尔结果为空,应把该参数组合标记为无效,而不是自动导出近似网格掩盖问题。

六、设计脚本的可复现性

“同一脚本”只有在运行环境也被固定时才可复现。交付清单应记录AgenticCAD版本、Python版本、build123d与OCCT依赖版本、操作系统与架构、单位约定、容差配置、随机种子、外部零件库校验值和模型服务标识。依赖宜使用锁文件或容器镜像摘要固定,构建日志保存标准输出、异常与耗时。脚本不得依赖当前工作目录、未声明环境变量、网络上的可变资源或人工点击顺序;引用附件和标准件时使用内容哈希或受控版本号。

可重复构建还应区分源码一致与几何一致。不同内核版本可能生成拓扑编号不同但工程等价的实体,因此不宜只比较STEP文件字节。更稳妥的回归指纹包括实体数、体积、表面积、包围盒、质心、惯性矩、关键尺寸及按语义分组的面特征,并为浮点量设置与制造需求一致的容差。发布流水线可从干净环境重建两次,确认结果指纹一致,再由独立进程重新导入导出物。智能体对脚本的每次修改都应形成最小差异,提交信息关联需求编号与验收结果;提示词和聊天记录可以辅助解释,但不能代替可执行脚本及测试。

七、STEP与G-code的双重验收

STEP验收至少包含语法交换与工程语义两层。首先确认文件可被第二套CAD内核读取,单位、坐标系、实体名称和装配层次没有丢失;随后检查每个实体是否闭合、朝向一致、无自交,关键圆柱面、孔轴、基准距离和质量属性是否与源B-rep一致。对于装配件,应核对零件数量、重复实例变换、干涉和预期间隙。若下游系统会再次缝合或修复几何,还要记录修复前后的容差与形状差异,避免“成功打开”被误当作无损交换。

G-code验收应以解析后的模态状态为准,而非字符串搜索。检查单位制、绝对/增量模式、平面选择、工件坐标系、刀长或刀具假设、主轴方向与转速、进给模式、安全高度、首刀入刀、退刀、换刀停顿和程序结束状态。把整段程序展开成机器状态序列,计算每轴最小/最大坐标、快移时刀尖高度、切削段进给、圆弧中心与半径连续性,并验证任何G2/G3转换没有越过轮廓或违反控制器方言。STEP验收确认“要制造什么”,G-code验收确认“机器将怎样运动”,二者之间还需用同一坐标基准和毛坯定义建立可追踪对应。

独立仿真应从G-code反算去除体,并与目标B-rep比较过切、残料和未加工区域;不能只重放CAM内部刀路,因为后处理可能引入单位、圆弧和模态错误。验收产物应包含程序校验和、后处理器版本、机床配置、刀具表、毛坯尺寸、坐标原点和仿真报告。任何人工编辑G-code都会产生新版本,并重新执行完整检查,禁止在机床旁修改后仍沿用原签核。

八、CAM安全边界与放行机制

CAM安全必须采用纵深防御。生成阶段用工艺规则限制刀具直径、刃长、最大步深、步距、进给和主轴范围;几何阶段检查夹具、毛坯、主轴鼻端和刀柄包络;后处理阶段限制可用指令集合,并拒绝未知宏、子程序、坐标旋转或控制器不支持的循环。机床侧仍需有效限位、急停、防护和人工监护。软件仿真无法证明夹紧力充足、刀具未崩刃或工件坐标实际设置正确,因此首件必须经过装夹确认、对刀确认、空运行、单段执行和降低快移/进给倍率。

放行权限应与风险分级绑定。低风险泡沫或软材料原型可允许工程师在检查后运行;金属、高价值毛坯、薄壁、深腔或夹具间隙小的任务需要制造工程师二次签核;安全关键件和无人值守加工不应仅凭智能体输出放行。系统应把生成、审核和机床操作角色分离,保留谁批准了哪一版脚本、刀路和G-code。异常恢复也要预先定义:重启主轴、断电续跑、断刀换刀或坐标丢失都不能由语言模型临场猜测,应回到受控工艺流程。

九、许可证与数据使用边界

许可证审查不仅看仓库顶层许可证名称,还要建立软件物料清单,逐项核对AgenticCAD、Python依赖、OCCT、前端包、字体、示例零件、后处理器和模型服务条款。非商业许可下,内部试验是否构成商业用途、客户项目中的使用、向关联公司部署、托管为服务、修改后分发及嵌入产品,都可能需要不同判断;技术团队不应自行把“源码可见”解释为“可自由商用”。商业授权应以书面许可范围、用户或实例数量、地域、期限、再分发权、支持与终止条款为准,并保存对应版本证据。

还应把代码许可证与设计成果权属、训练数据条款和云模型数据政策分开审查。输入的客户图纸、STEP、参数和加工策略可能属于商业秘密,即使软件许可证允许使用,也不代表可以上传给外部模型供应商。部署需明确数据驻留、日志保留、是否用于训练、删除机制和分包商范围。生成脚本可能复现第三方零件库内容,发布前应做来源与权属检查。若许可证或数据条款尚未确认,系统只能在隔离评估环境处理非敏感样件,不得以技术验收通过替代法务批准。

十、成熟度与约束

从能力完整性看,AgenticCAD已覆盖“需求—建模—检查—工程图—CAM—导出”的端到端原型,并提供桌面应用、源代码运行方式、历史记录、零件库、设置和自动测试。0.10.1仍应按早期版本管理:适合技术评估、教学、夹具与简单零件原型,不宜未经二次验证直接进入受监管产品或无人值守生产。

其约束至少包括:智能体依赖外部模型与认证环境;单项目、单会话式架构不天然等同于企业多用户PDM;脚本执行需要安全隔离和资源限制;复杂自由曲面、超大型装配与高阶CAM不是当前主战场;拓扑重命名问题尚需严谨测试;非商业与商业使用的授权条件不同,企业必须先完成许可证审查。部署时还要考虑设计数据是否离开本地、模型供应商的数据政策、密钥管理、提示注入以及脚本执行权限。

十一、企业小试:用一个真实但低风险零件闭环

建议用四到六周完成一个受控小试。第1周选择三类零件:带孔安装板、带型腔夹具块、含圆角与多实体关系的支架。为每类零件冻结二维图、材料、关键尺寸和验收规则,并指定传统CAD/CAM结果作为对照,不追求一开始就挑战复杂曲面。

第2周建立隔离环境,固定AgenticCAD 0.10.1、Python依赖、模型标识和提示模板;禁用任意网络访问或将其限制在白名单;所有设计保存到独立Git仓库。每次运行记录输入需求、附件、生成脚本、内核摘要、STEP、CAM脚本、G-code与审核结论。

第3周由两名工程师分别完成传统流程和智能体辅助流程,比较首个合格模型时间、人工修改次数、失败构建率、关键尺寸一次通过率以及代码差异可读性。不要只统计“生成速度”,还要统计返工和审查成本。

第4周执行刀路独立仿真和软材料试切。若进入金属试切,应增加制造工程师和EHS批准。评价指标可包括碰撞为零、尺寸合格率、表面质量、总加工时间偏差、空切比例和操作员干预次数。

最后形成准入矩阵:简单棱柱零件可在人工复核后使用;涉及关键配合、薄壁、复杂装夹或高价值毛坯时只允许生成草案;安全关键件、法规件和无人值守加工暂不放行。这样,AgenticCAD的价值不在于取代工程师,而在于把需求、程序、精确几何与制造准备压缩到一条可检查、可复现的链路中。

十二、把“精确”转化为可签字的交付证据

精确B-rep的优势只有进入验收流程才会成为企业价值。建议为每次发布同时生成设计脚本、参数清单、STEP、用于预览的STL、CAM脚本、最终G-code与机器配置摘要,并用同一个版本号或提交哈希关联。STEP应在独立CAD系统中重新导入,检查实体数、单位、关键圆柱面直径、装配位置与几何有效性;G-code则应由独立解析器核对坐标范围、模态状态、主轴启停、进给值、换刀停顿和程序结束指令。两类检查分别回答“几何是否正确”和“机床指令是否受控”,不能相互替代。

参数化模型还应定义允许域。例如孔径不得超过边距约束,壁厚不得低于工艺下限,圆角半径必须小于相邻面的可用空间。对参数做边界值与组合扫描,可提前发现布尔失败、零厚度、自相交或拓扑引用漂移。对于关键尺寸,验收结果不应只来自脚本变量,还要从最终B-rep反向测量,因为变量名正确并不保证后续运算没有改变真实几何。

许可证和脚本安全同样是上线门槛。项目采用PolyForm Noncommercial 1.0.0并提供商业使用条件,企业内部评估、对外服务、嵌入产品和多用户部署是否属于许可范围,应由法务根据实际使用方式确认。智能体生成的Python代码应在最小权限沙箱中执行,限制文件系统、网络、子进程、CPU、内存和运行时间;导入的脚本、STEP及参考图片按不可信输入处理。模型密钥不得写入设计文件,外部MCP服务需要白名单和审计日志。只有当许可证、数据边界、代码执行隔离和制造签核同时闭环,“可追溯脚本”才真正具备企业可用性。

参考资料

分享到