说句得罪人的:文生 CAD 生成的是「草图」不是「设计」,离生产力还差一个参数化【免费下载链接】text-to-cadGive your agent CAD superpowers.项目地址: https://gitcode.com/GitHub_Trending/tex/text-to-cad过去两年,「文生 CAD」大概是硬件圈最性感的叙事之一:不用画图、不用学软件,敲一句「19 齿直齿轮」——几分钟后一个符合工程外形的 STEP 文件就躺在你面前。Zoo 的 Text-to-CAD 引爆了这场讨论,随后 YC W25 背景的 AdamCAD 拿到 410 万美元融资,海外媒体开始报道「把文本描述转换成可打印 3D 模型」的开源多智能体系统,国内社区则忙着总结「5 分钟零门槛建模」的教程。热闹是真的,但我要先泼一盆冷水:这类工具生成的,绝大多数是「草图」,不是「设计」。原因很简单。设计不只是「长得对的几何」,而是意图、约束、可编辑性与可追溯性的集合——一个能改、能迭代、能验证、能进制造流程的活体。而大多数文生 CAD 产品给你的是快照:一句 prompt 换一个静态模型,换句话重来一遍,输出的东西既没有特征树,也没有参数,更没法放进装配里约束。本文不想停留在情绪上,我结合开源项目 earthtojake/text-to-cad(一个把 CAD 能力封装成 Agent Skills 的插件仓库,口号是 "Give your agent CAD superpowers.")的源码,逐层拆解「生成模型」与「工程设计」之间的那道真实鸿沟,以及为什么参数化是那道分水岭。先看清楚:文生 CAD 现在到底能做什么把市面上的方案粗分两派,各看能力边界。第一派:提示词直出几何(Zoo 系)。典型形态是社区教程里反复出现的 text-to-cad-ui:SvelteKit 前端 + Three.js 实时预览 + 云端 API,自然语言进、B-rep 出,支持 STL/STEP/GLTF 导出。它的价值真实存在:对创客、教育演示、客户需求验证来说,从「脑子里有个想法」到「手里有个 3D 文件」的链路被压缩到几分钟,这确实是传统 CAD 学习曲线给不了的体验。第二派:把 CAD 变成 Agent 的技能(text-to-cad 系)。这个仓库走的是另一条路——不替你做几何,而是给 AI 代理一套完整的、可执行的建模工作流。安装后,代理拥有 12 个左右的技能,覆盖从建模到制造的全链路:CAD 建模、STEP 零件检索、工程图纸、DXF 排样、URDF/SRDF/SDF 机器人描述、DFM/DFAM 可制造性检查、G-code 切片,甚至直接对接 SendCutSend 钣金下单和 Bambu Lab 打印机(见 skills/ 下的技能矩阵)。两派的差异从各自的「能」与「不能」里立刻显现。先说共同的短板——这也是「草图」二字的来历:一次性输出,没有编辑语义。提示词生成的模型是结果不是过程。你说「把孔从 6mm 改成 8mm」,它大概率重新生成一个模型,而不是在原模型上改一个特征。网格不是几何。很多工具吐的是 STL 网格。网格可以看、可以打印,但不可测量、不可做布尔运算、不可参与装配约束。这个仓库的 DFM 技能在 skills/dfm/SKILL.md 里把话说得很直白:「Prefer exact STEP/B-rep measurements for radii and analytic faces. If only a mesh is available, record its resolution and approximation limits. A screenshot supports a suspected issue, not a measured pass/fail.」——截图只能佐证怀疑,测量才是判定依据。这就是「草图」与「图纸」的技术本质区别。非确定性。同一个 prompt 换一次生成,输出的拓扑可能完全不一样。你没法对它做版本 diff,也没法审阅「这次改了什么」。从「能出模型」到「可编辑、可迭代」:参数化是那道鸿沟现在看第二派仓库怎么回答上述问题。答案浓缩在一个词:把设计写进源码,让一切可参数化、可重跑、可追溯。在 skills/cad/SKILL.md 里,一个「模型」被明确定义为「一个带参数化装饰函数的普通 Python 脚本,返回 build123d 形状」。看仓库里真实的零件——models/examples/src/l_bracket.py:BASE_LENGTH = 80.0 BASE_WIDTH = 50.0 BASE_THICKNESS = 8.0 HOLE_DIAMETER = 6.0 BASE_HOLE_LOCATIONS = ((-25.0, -10.0), (25.0, -10.0)) TRANSITION_FILLET = 2.0 @step(out="../STEP/l_bracket.step") def l_bracket(): """Return the L-bracket model in millimeters.""" with bd.BuildPart() as bracket: bd.Box(BASE_LENGTH, BASE_WIDTH, BASE_THICKNESS, align=(bd.Align.CENTER, bd.Align.CENTER, bd.Align.MIN)) ...再比如 models/examples/src/centrifugal_impeller.py:BLADE_COUNT = 12、BLADE_BACKWARD_SWEEP_ANGLE = radians(45.0)、BLADE_THICKNESS = 3.0——叶片数量、后掠角、厚度全部显式化为常量。这就是参数化最朴素也最核心的形态:设计决策被写进变量,改一行、重跑一次、输出跟着变。相比之下,提示词生成器给你的是一张一次性「照片」,这里给你的是随时可修订的「配方」。光有零件级参数还不够,真正的工程难题在装配。仓库里这个问题的答案是「typed mates」——见 packages/cadgen/src/cadgen/kinematics.py:KINEMATICS = { "mates": [ cadgen.revolute("elbow", parent="#upper_arm", child="#forearm", axis="#forearm.pivot_bore", limits=(0, 150)), ], "couplings": [cadgen.couple("curl", {"mcp": 50, "pip": 70, "dip": 40})], "poses": {"open": {"jaw": 40}, "closed": {"jaw": 0}}, } @step(out="../STEP/arm.step", kinematics=KINEMATICS) def arm(): ...注意它的设计取舍:运动副是纯数据(revolute/slider/cylindrical/fastened),求值是一次对运动副树的正向运动学折叠,「没有框吸附、没有求解器,闭链明确不在范围内」。这不只是实现细节——它意味着装配关系像参数一样被固化、可重放、可验证,而不是靠某次生成的运气。仓库的演示语料库(models/README.md)里,mars_rover 概念车带 27 个运动副、7 个耦合、4 个姿态;f14d 整机由 10 个子系统按 occurrence 顺序链接,改一个子零件、重跑父装配,整机联动更新。参数化的威力不止于几何本身,它像多米诺一样推倒了下游的每一张「派生文档」:工程图纸是派生态。skills/engineering-drawing/SKILL.md 开宗明义:「An engineering drawing is a DOCUMENT derived from a part」——三视图、隐藏线、中心线、尺寸全部从几何投影得到,「图上没有一笔是手绘的,没有一个数字是你手输的(除非你刻意覆盖)」。改模型、重跑图纸脚本,尺寸自动跟着动。图纸跟随模型,而不是模型将就图纸——这正是生产环境要的东西。可制造性检查给「证据」。skills/dfm/SKILL.md 要求每条发现都带「测量值、单位、版本、测量方法、引用的规则来源」,并且明确「没有发现 ≠ 可制造性通过」。这不是滤镜式的提示,而是对着真实 B-rep 几何量出来的。机器人描述被当作约束建模。skills/urdf/SKILL.md 写着「Treat URDF work as constrained kinematic modeling, not just XML writing」,强制在写文件前建立坐标系、关节、单位、假设台账,并强制cadgen urdf validate后才算完成。把这些连起来看,仓库的架构哲学在 packages/cadgen/README.md 里被写成「设计法则」:生成物与源码完全独立(删光所有.py渲染结果不变)、写出器字节确定性(同一模型必然产出同一批字节)、STEP/DXF 是纯几何,语义信息全部住在 sidecar 里。这些法则共同保证一件事:设计意图有一个唯一权威的存放处——源码;一切产物(STEP、图纸、网格、URDF)都是它的派生结果,可以随时推倒重算。这跟「生成一个模型就完事」是两种完全不同的工程世界观。它的真正归宿:辅助创意,还是替代设计?那么问题来了:文生 CAD 究竟会取代设计师,还是只是新的草图工具?我的判断是:两条路都有人走,但只有一条通向生产力。分场景看会更清楚:场景一:灵感、原型、教学、客户沟通——mesh 就够。这里 Zoo 系工具是当之无愧的主角。「一句话出模型、5 分钟上手」的传播热度货真价实,因为这类场景的验收标准就是「看得见、摸得着、聊得来」。模型是一次性的没关系,反正它本来就是用来沟通的。场景二:工程交付、制造、装配——必须回到参数化源头。要出 DFM 报告、要出带公差和孔标注的图纸、要排 DXF 钣金下料、要生成打印路径,起点必须是可编辑、可验证的参数化几何。这个仓库展示的正是一条从「一句话需求」到「可制造工件」的完整链路:代理先写可追溯的源码模型 → 产出 STEP → 派生工程图纸 → 跑 DFM 检查 → 对接 SendCutSend / G-code / Bambu 打印。每一步都有真实文件与命令可查,而不是黑盒生成。关于 AI 的角色,真正的结论是:AI 是「候选生成器 + 检索引擎」,不是「设计者」。设计 = 意图 + 约束 + 变更历史。意图和约束必须有人表达(哪怕用自然语言),而变更历史必须落在某个可 diff、可审阅、可回滚的载体上——在 text-to-cad 这里,载体就是源码与参数。AI 的价值在于把「意图 → 参数化源码」这一步做得越来越快、越来越准,然后把「验证闭环」交还给工程师。至于市场信号:AdamCAD 获得 410 万美元融资、开源多智能体文生 CAD 论文被海外 3D 打印媒体关注,说明资本与研究者都在往「AI 原生 CAD」挤。但融资热度是一回事,生产力兑现是另一回事——如果产品停留在「生成好看的结果」,它收获的永远是好奇心;只有补上参数化交互、可编辑语义和验证闭环,它才第一次摸到生产工具的门槛。说句得罪人的结论:如果文生 CAD 的终局是「一句话出模型」,那它产出的永远是草图;当它把语言变成可执行、可参数化、可制造验证的设计源码时,它才真正成为设计工具。目前最接近这条路的开源实践之一,就是把 CAD 封装成 Agent 技能、让「源码即设计、派生即文档」的 text-to-cad 系方案——毕竟,「草图」解决的是从无到有,而「设计」解决的是从有到对,后者才配叫生产力。【免费下载链接】text-to-cadGive your agent CAD superpowers.项目地址: https://gitcode.com/GitHub_Trending/tex/text-to-cad创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
说句得罪人的:文生 CAD 生成的是「草图」不是「设计」,离生产力还差一个参数化【免费下载链接】text-to-cadGive your agent CAD superpowers.项目地址: https://gitcode.com/GitHub_Trending/tex/text-to-cad过去两年,「文生 CAD」大概是硬件圈最性感的叙事之一:不用画图、不用学软件,敲一句「19 齿直齿轮」——几分钟后一个符合工程外形的 STEP 文件就躺在你面前。Zoo 的 Text-to-CAD 引爆了这场讨论,随后 YC W25 背景的 AdamCAD 拿到 410 万美元融资,海外媒体开始报道「把文本描述转换成可打印 3D 模型」的开源多智能体系统,国内社区则忙着总结「5 分钟零门槛建模」的教程。热闹是真的,但我要先泼一盆冷水:这类工具生成的,绝大多数是「草图」,不是「设计」。原因很简单。设计不只是「长得对的几何」,而是意图、约束、可编辑性与可追溯性的集合——一个能改、能迭代、能验证、能进制造流程的活体。而大多数文生 CAD 产品给你的是快照:一句 prompt 换一个静态模型,换句话重来一遍,输出的东西既没有特征树,也没有参数,更没法放进装配里约束。本文不想停留在情绪上,我结合开源项目 earthtojake/text-to-cad(一个把 CAD 能力封装成 Agent Skills 的插件仓库,口号是 "Give your agent CAD superpowers.")的源码,逐层拆解「生成模型」与「工程设计」之间的那道真实鸿沟,以及为什么参数化是那道分水岭。先看清楚:文生 CAD 现在到底能做什么把市面上的方案粗分两派,各看能力边界。第一派:提示词直出几何(Zoo 系)。典型形态是社区教程里反复出现的 text-to-cad-ui:SvelteKit 前端 + Three.js 实时预览 + 云端 API,自然语言进、B-rep 出,支持 STL/STEP/GLTF 导出。它的价值真实存在:对创客、教育演示、客户需求验证来说,从「脑子里有个想法」到「手里有个 3D 文件」的链路被压缩到几分钟,这确实是传统 CAD 学习曲线给不了的体验。第二派:把 CAD 变成 Agent 的技能(text-to-cad 系)。这个仓库走的是另一条路——不替你做几何,而是给 AI 代理一套完整的、可执行的建模工作流。安装后,代理拥有 12 个左右的技能,覆盖从建模到制造的全链路:CAD 建模、STEP 零件检索、工程图纸、DXF 排样、URDF/SRDF/SDF 机器人描述、DFM/DFAM 可制造性检查、G-code 切片,甚至直接对接 SendCutSend 钣金下单和 Bambu Lab 打印机(见 skills/ 下的技能矩阵)。两派的差异从各自的「能」与「不能」里立刻显现。先说共同的短板——这也是「草图」二字的来历:一次性输出,没有编辑语义。提示词生成的模型是结果不是过程。你说「把孔从 6mm 改成 8mm」,它大概率重新生成一个模型,而不是在原模型上改一个特征。网格不是几何。很多工具吐的是 STL 网格。网格可以看、可以打印,但不可测量、不可做布尔运算、不可参与装配约束。这个仓库的 DFM 技能在 skills/dfm/SKILL.md 里把话说得很直白:「Prefer exact STEP/B-rep measurements for radii and analytic faces. If only a mesh is available, record its resolution and approximation limits. A screenshot supports a suspected issue, not a measured pass/fail.」——截图只能佐证怀疑,测量才是判定依据。这就是「草图」与「图纸」的技术本质区别。非确定性。同一个 prompt 换一次生成,输出的拓扑可能完全不一样。你没法对它做版本 diff,也没法审阅「这次改了什么」。从「能出模型」到「可编辑、可迭代」:参数化是那道鸿沟现在看第二派仓库怎么回答上述问题。答案浓缩在一个词:把设计写进源码,让一切可参数化、可重跑、可追溯。在 skills/cad/SKILL.md 里,一个「模型」被明确定义为「一个带参数化装饰函数的普通 Python 脚本,返回 build123d 形状」。看仓库里真实的零件——models/examples/src/l_bracket.py:BASE_LENGTH = 80.0 BASE_WIDTH = 50.0 BASE_THICKNESS = 8.0 HOLE_DIAMETER = 6.0 BASE_HOLE_LOCATIONS = ((-25.0, -10.0), (25.0, -10.0)) TRANSITION_FILLET = 2.0 @step(out="../STEP/l_bracket.step") def l_bracket(): """Return the L-bracket model in millimeters.""" with bd.BuildPart() as bracket: bd.Box(BASE_LENGTH, BASE_WIDTH, BASE_THICKNESS, align=(bd.Align.CENTER, bd.Align.CENTER, bd.Align.MIN)) ...再比如 models/examples/src/centrifugal_impeller.py:BLADE_COUNT = 12、BLADE_BACKWARD_SWEEP_ANGLE = radians(45.0)、BLADE_THICKNESS = 3.0——叶片数量、后掠角、厚度全部显式化为常量。这就是参数化最朴素也最核心的形态:设计决策被写进变量,改一行、重跑一次、输出跟着变。相比之下,提示词生成器给你的是一张一次性「照片」,这里给你的是随时可修订的「配方」。光有零件级参数还不够,真正的工程难题在装配。仓库里这个问题的答案是「typed mates」——见 packages/cadgen/src/cadgen/kinematics.py:KINEMATICS = { "mates": [ cadgen.revolute("elbow", parent="#upper_arm", child="#forearm", axis="#forearm.pivot_bore", limits=(0, 150)), ], "couplings": [cadgen.couple("curl", {"mcp": 50, "pip": 70, "dip": 40})], "poses": {"open": {"jaw": 40}, "closed": {"jaw": 0}}, } @step(out="../STEP/arm.step", kinematics=KINEMATICS) def arm(): ...注意它的设计取舍:运动副是纯数据(revolute/slider/cylindrical/fastened),求值是一次对运动副树的正向运动学折叠,「没有框吸附、没有求解器,闭链明确不在范围内」。这不只是实现细节——它意味着装配关系像参数一样被固化、可重放、可验证,而不是靠某次生成的运气。仓库的演示语料库(models/README.md)里,mars_rover 概念车带 27 个运动副、7 个耦合、4 个姿态;f14d 整机由 10 个子系统按 occurrence 顺序链接,改一个子零件、重跑父装配,整机联动更新。参数化的威力不止于几何本身,它像多米诺一样推倒了下游的每一张「派生文档」:工程图纸是派生态。skills/engineering-drawing/SKILL.md 开宗明义:「An engineering drawing is a DOCUMENT derived from a part」——三视图、隐藏线、中心线、尺寸全部从几何投影得到,「图上没有一笔是手绘的,没有一个数字是你手输的(除非你刻意覆盖)」。改模型、重跑图纸脚本,尺寸自动跟着动。图纸跟随模型,而不是模型将就图纸——这正是生产环境要的东西。可制造性检查给「证据」。skills/dfm/SKILL.md 要求每条发现都带「测量值、单位、版本、测量方法、引用的规则来源」,并且明确「没有发现 ≠ 可制造性通过」。这不是滤镜式的提示,而是对着真实 B-rep 几何量出来的。机器人描述被当作约束建模。skills/urdf/SKILL.md 写着「Treat URDF work as constrained kinematic modeling, not just XML writing」,强制在写文件前建立坐标系、关节、单位、假设台账,并强制cadgen urdf validate后才算完成。把这些连起来看,仓库的架构哲学在 packages/cadgen/README.md 里被写成「设计法则」:生成物与源码完全独立(删光所有.py渲染结果不变)、写出器字节确定性(同一模型必然产出同一批字节)、STEP/DXF 是纯几何,语义信息全部住在 sidecar 里。这些法则共同保证一件事:设计意图有一个唯一权威的存放处——源码;一切产物(STEP、图纸、网格、URDF)都是它的派生结果,可以随时推倒重算。这跟「生成一个模型就完事」是两种完全不同的工程世界观。它的真正归宿:辅助创意,还是替代设计?那么问题来了:文生 CAD 究竟会取代设计师,还是只是新的草图工具?我的判断是:两条路都有人走,但只有一条通向生产力。分场景看会更清楚:场景一:灵感、原型、教学、客户沟通——mesh 就够。这里 Zoo 系工具是当之无愧的主角。「一句话出模型、5 分钟上手」的传播热度货真价实,因为这类场景的验收标准就是「看得见、摸得着、聊得来」。模型是一次性的没关系,反正它本来就是用来沟通的。场景二:工程交付、制造、装配——必须回到参数化源头。要出 DFM 报告、要出带公差和孔标注的图纸、要排 DXF 钣金下料、要生成打印路径,起点必须是可编辑、可验证的参数化几何。这个仓库展示的正是一条从「一句话需求」到「可制造工件」的完整链路:代理先写可追溯的源码模型 → 产出 STEP → 派生工程图纸 → 跑 DFM 检查 → 对接 SendCutSend / G-code / Bambu 打印。每一步都有真实文件与命令可查,而不是黑盒生成。关于 AI 的角色,真正的结论是:AI 是「候选生成器 + 检索引擎」,不是「设计者」。设计 = 意图 + 约束 + 变更历史。意图和约束必须有人表达(哪怕用自然语言),而变更历史必须落在某个可 diff、可审阅、可回滚的载体上——在 text-to-cad 这里,载体就是源码与参数。AI 的价值在于把「意图 → 参数化源码」这一步做得越来越快、越来越准,然后把「验证闭环」交还给工程师。至于市场信号:AdamCAD 获得 410 万美元融资、开源多智能体文生 CAD 论文被海外 3D 打印媒体关注,说明资本与研究者都在往「AI 原生 CAD」挤。但融资热度是一回事,生产力兑现是另一回事——如果产品停留在「生成好看的结果」,它收获的永远是好奇心;只有补上参数化交互、可编辑语义和验证闭环,它才第一次摸到生产工具的门槛。说句得罪人的结论:如果文生 CAD 的终局是「一句话出模型」,那它产出的永远是草图;当它把语言变成可执行、可参数化、可制造验证的设计源码时,它才真正成为设计工具。目前最接近这条路的开源实践之一,就是把 CAD 封装成 Agent 技能、让「源码即设计、派生即文档」的 text-to-cad 系方案——毕竟,「草图」解决的是从无到有,而「设计」解决的是从有到对,后者才配叫生产力。【免费下载链接】text-to-cadGive your agent CAD superpowers.项目地址: https://gitcode.com/GitHub_Trending/tex/text-to-cad创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考