2026/10/20 8:19:37

把 text-to-cad 塞进你的 AI Agent:STEP/URDF 输出接入机器人工作流保姆教程

把 text-to-cad 塞进你的 AI Agent:STEP/URDF 输出接入机器人工作流保姆教程 把 text-to-cad 塞进你的 AI AgentSTEP/URDF 输出接入机器人工作流保姆教程【免费下载链接】text-to-cadGive your agent CAD superpowers.项目地址: https://gitcode.com/GitHub_Trending/tex/text-to-cad如果说 2024 年 text-to-CAD 还停留在网页上敲一句英文、转圈等待、下载一个 STL的 Demo 阶段那么现在这个生态已经换了一副面孔。社区里围绕 Zoo Text-to-CAD 的讨论从如何在 5 分钟内生成一个 19 齿直齿轮CSDN 上的大量上手教程已经演进到一句话生成 CAD、机器人模型和工程文件——把设计能力真正放进 Agent 手里。而这个生态背后最值得研究的开源实现之一就是这个仓库text-to-cadGive your agent CAD superpowers.。它不再是一个文本生成模型的前端壳子而是一套以 Agent 为中心、本地运行的设计与制造工作流Agent 用自然语言或图片驱动 Python 源码生成三维模型导出 STEP / STL / 3MF / GLB再做可制造性检查、工程图纸甚至直接对接 3D 打印、钣金与 CNC 服务对机器人场景它还能在同一个 Agent 会话里产出 URDF / SRDF / SDF 描述文件。本文基于仓库源码把它拆成三部分Agent 化的 Skill 形态是怎么组织的、如何接入你自己的 Agent以及机器人与硬件项目里真正跑起来的工作流长什么样。一、text-to-cad 的 Agent 化能力与 Skill 形态1.1 从生成模型到交付工程文件的能力栈社区文章通常把 text-to-cad 的能力概括为语义解析 几何生成 多格式输出 实时预览四层而仓库里实际的组织方式要更进一步它把能力切成一组可被 Agent 独立调用的Skills每个 Skill 都有独立的SKILL.md契约和配套参考文档。根目录 README.md 的 Skills 清单给出了全景Skill交付物源码位置CADSTEP 为主输出可选 STL / 3MF / GLBskills/cad/SKILL.mdstep-parts螺丝、轴承、电机、连接器等标准件 STEP 检索与下载skills/step-parts/SKILL.mdEngineering Drawing带尺寸标注、视图、标题栏的工程图纸 PDFskills/engineering-drawingDXF剖面、模板、垫片等 2D DXF 图纸skills/dxfURDF / SRDF / SDF机器人结构、MoveIt 规划语义、仿真世界描述skills/urdf/SKILL.md 等DFM / DfAM钣金、CNC、注塑可制造性评审与网格可打印性检查skills/dfmG-code / Bambu Labs切片与直接发送打印任务skills/gcode这套先写可追溯源码再导出 STEP/STL/URDF 工程文件的流程正是掘金上《这可能是 AI Agent 的下一个硬核入口》一文描述的核心模式Agent 生成的是可读、可重跑、可版本化的源码而不是一次性的二进制模型。模型即 Python 脚本这一点是整套设计的基石。1.2 模型即源码step装饰器契约在 skills/cad/SKILL.md 里CAD 模型被定义为一个无参的装饰器函数 返回 build123d 形状的纯 Python 脚本。以其中的 bracket 示例为例from cadgen import build123d as bd from cadgen import step WIDTH 40.0 step(out../STEP/bracket.step) def bracket(): body bd.Box(WIDTH, 20, 6) body.label bracket return body if __name__ __main__: bracket()python src/bracket.py细看 step-generation.md 里的契约约束有几条对Agent 生成代码这件事特别关键模型无参数、一个入口一个配置参数化几何放在普通工厂函数里模型只是选择一种配置。这让缓存和增量构建成为可能——改动不触及的模型脚本不会重跑。子模型组合即 Python 组合父装配体在函数体内直接调用子模型函数子模型过期则自动重建否则从缓存加载返回的几何通过.moved()或Location * shape放置。多模型可以并行构建无需任何调度代码。依赖追踪是按结果的父模型钉住子模型的几何哈希子模型编辑后几何不变父模型依然当前。注释、常量、工厂函数的追踪粒度各不相同。输入的隐性声明模型打开的每个文件STEP、JSON、字体都被记录为构建输入改文件即过期cadgen store why可以解释一个模型为何需要重建。这意味着 Agent 在一个大装配项目里改一个子零件不需要理解整棵构建树——python src/robot.py会自动重建过期部分、链接其余部分。1.3 多格式输出与格式门format doorSkill 强调生成没有 CLI模型脚本就是工具反过来从已保存的文件导出则统一走cadgen format verb命令族——仓库称之为格式门format door。比如从 STEP 一次性转网格cadgen stl build STEP/bracket.step STL/bracket.stl cadgen 3mf build STEP/bracket.step 3MF/bracket.3mf cadgen glb build STEP/bracket.step GLB/bracket.glbTARGET [OUT]语法在所有格式间一致省略 OUT 则生成同名兄弟文件。此外cadgen step build还能对外来 STEP做规范化重写 注解重新用 OCCT 内核写出确定性字节并通过--kinematics/--materials/--animation向无源码的 STEP 附加运动学、材质与动画侧车sidecar。二、把 CAD/URDF 生成接进自定义 Agent 的步骤2.1 三种接入形态插件Plugin、Skills、MCP仓库同时支持三种形态对应不同 Agent 生态Agent 插件pluginClaude Code / Codex / Cursor / Grok Build / Gemini 直接安装插件plugin.json 定义了元数据名称 text-to-cad、版本 0.7.17、keywords 含 cad/robotics/step/urdf/sdf/gcode。插件同时带来 Skills 和本地 CAD 服务cadgen mcp服务器。纯 Skills无插件支持的 Agent用 Skills CLI 安装核心 CAD 工作流与浏览器中的 CAD Viewer 都可用只是没有 MCP 服务器。MCP 服务器任意 MCP 客户端都能挂载。仓库自带的 claude.mcp.json 就是一个最小示例{ mcpServers: { cad: { command: uvx, args: [ --no-config, --managed-python, --python, 3.13, --from, cadgen0.7.17, cadgen, mcp ], env: { CADGEN_INSTALL_CHANNEL: claude-github } } } }所有 cadgen 命令都统一通过uvx --no-config --managed-python --python 3.13 --from cadgen0.7.17 cadgen运行Skill 文档称之为cadgen的规范展开所以 Skills、MCP 服务器、构建守护进程共享同一个安装与同一个热构建守护进程。2.2 给 Agent 的一句话安装README 给出的官方推荐方式非常Agent 原生——把这句话发给你的 Agent 即可Install text-to-cad from https://github.com/earthtojake/text-to-cad自己手动装则分三类Claude Code 用claude plugin marketplace add earthtojake/text-to-cad#latestclaude plugin install text-to-cadearthtojake无插件支持的 Agent 用npx skills add earthtojake/text-to-cad#latest通用 MCP 客户端按上面 JSON 配置。首次启动会下载 CAD 运行时即 cadgen 发行版所以需要网络此后 Skills 与服务器共享同一个安装后续更新直接改cadgen版本号。2.3 Skill 内部如何引导 Agent 行为每个 Skill 的 frontmatter 里有一份description它就是 Agent 的触发条件。以 URDF 为例skills/urdf/SKILL.mdURDF robot description authoring and validation. Use when creating, editing, inspecting, validating, or debugging.urdffiles, robot links, joints, limits, inertials, visual/collision geometry, mesh references, frame conventions, or robot-description artifacts. Use the SRDF skill for MoveIt2 semantic groups ...这份描述决定了什么任务路由到哪个 SkillCAD 任务进$cad机器人结构进$urdfMoveIt 规划语义进$srdf仿真世界进$sdf2D 图纸进$dxf。而 Skill 正文则进一步约束 Agent 的执行纪律——URDF Skill 的核心规则明确写了.urdf文件是唯一事实来源必须直接编写 XML 而不是生成 Python 管线写之前先建立 frame/joint/geometry/unit 的设计台账design ledger并作为注释块嵌入文件从不凭感觉手填计算值惯性张量、质心、跨链路单位换算必须算出来每个文件交付前必须过cadgen urdf validate。这种把工程纪律写进 Agent 指令的做法是这套体系与普通生成模型 下载工具拉开差距的关键不是让大模型自由发挥而是给它一套带检查点的可执行规程。2.4 安装后立即可用的验证回路接入完成后Agent 就拥有了一条完整的生成 → 校验 → 视觉复查 → 交付回路cadgen urdf validate path/to/robot.urdf # 结构性校验一次收集全部问题 cadgen urdf validate path/to/robot.urdf --strict # 警告视为失败 cadgen urdf validate path/to/robot.urdf --json # 机器可读输出 cadgen urdf snapshot path/to/robot.urdf review.png # 无头浏览器渲染复查URDF 校验器覆盖 XML 结构、树拓扑、关节语义limits/mimic/dynamics、几何、网格引用、材质、惯性物理与拼写错误SRDF 校验器则把同目录下 robot name 匹配的 URDF 配对交叉校验规划组、链路径、状态与禁碰撞对。Skill 文档反复强调一句值得记住的话Validation is a guardrail, not spatial proof——结构性校验通过不等于空间摆放正确轴线正负号要靠 Viewer 逐关节扫描才能发现。这正是cadgen urdf snapshot CAD Viewer 的定位让 Agent 自己把模型渲染成图再看一遍。三、机器人与硬件项目的实际应用示例3.1 仓库内三个活教材juno、lyra 与 joint_playground这套工作流不是纸面文档——仓库的models/下就有三个可运行的机器人工程models/juno约 1.40 m 高的紧凑人形平台概念27 个本体自由度每条腿 6、每条臂 6、腰 1、颈 2。完整工程 juno.urdfjuno.srdf直接编写的机器人描述src/juno.py28 个 occurrence 的装配体 28 个 per-link 模型脚本。models/lyra五指的灵巧手概念16 个自由度肌腱驱动架构。每个 link 脚本同时堆叠step与threemf一次运行同时产出 STEP 零件和 URDF 引用的 3MF 网格。models/tests/joint_playground/joint_playground.urdf纯几何基元搭的关节游乐场覆盖 continuous / revolute / prismatic / mimic / fixed 等每种关节类型无需任何网格文件即可在 Viewer 里逐关节摆姿势。以 juno 为例看目录约定注意STEP/、3MF/、tmp/是生成物、不入库克隆后重跑脚本即可再生models/juno/ juno.urdf juno.srdf 直接编写的机器人描述非生成 src/ juno.py 完整的 28-occurrence 装配体 link.py x28 每个 URDF link 一个脚本step threemf lib/ 共享零件构建器 链参数规格 STEP/ 3MF/ 生成输出3.2 关键设计一份链参数CAD 与 URDF 永不漂移机器人工件最大的坑是CAD 与机器人描述对不上。juno 的解法很巧妙用src/lib/chain.py这一份共享规格同时喂给 CAD 装配体、typed mates 和 URDF/SRDF。在 models/juno/src/juno.py 里27 个自由度被声明为cadgen.revolutetyped mates轴的位置/方向来自chain.world_joint_axes()链 FK 在 authored 姿态下的世界坐标limits 是 URDF 行程减去 authored 角度SRDF 的五个组状态zero、athletic_ready、t_pose、wave_right、squat全部以 athletic 姿态为基准存成DELTA——因为 STEP 烘焙的就是 athletic ready 姿态所以每个 mate 的 rest 值即该姿态。代码里写得很直白# ZERO IS THE ARTIFACT AS WRITTEN. The STEP is baked in the athletic ready # stance, so each mates rest value is that stance: # - axis the joints world frame AT the authored pose (chain FK), which # is exactly the screw axis a product-of-exponentials FK needs; # - limits the URDF travel range minus the authored angle; # - poses each SRDF group state minus the authored angle. def _kinematics() - dict: axes chain.world_joint_axes() rest chain.athletic_ready_deg() ...产物侧models/juno/juno.urdf 的每个 link 都用3MF/link.3mf作为视觉网格scale0.001 0.001 0.001把 mm 导出换算成 URDF 的米制、CAD 实体体积属性算出的惯性张量统一假定密度使全机 35 kg、以及粗粒度 AABB 碰撞盒。URDF Skill 的 meshes.md 明确给出了这条最佳实践导出单元是 link 而非装配体每个 link 的网格要在其自身坐标系下导出这样所有visualorigin都是 identity最容易被审计。3.3 把整条工作流串起来一个典型的机器人交付流程把上面所有环节连起来一个 Agent 完成做一个六轴机械臂并交付可规划模型的典型流程是出 CAD对每个 link 编写模型脚本step(out../STEP/link.step)需要网格时堆叠threemf装配体脚本调用各 link 模型并放置运行python src/arm.py生成 STEP。检索标准件需要电机、轴承、螺丝时先过$step-parts——step-parts Skill 规定必须先查询https://api.step.parts的/v1/parts命中后下载 STEP 并核对sha256而不是直接造占位几何python scripts/download_step_part.py bearing 608zz --limit 5 python scripts/download_step_part.py M3 socket head 12 --download写 URDF按 URDF Skill 的流程先建设计台账直接编写 XML每个 link 引用已导出的网格惯性值用公式或辅助脚本算出然后cadgen urdf validate校验。补 SRDF如需 MoveIt 规划从 URDF 提取 link/joint 表规划组、末端执行器、组状态、禁碰撞全部从该表与拓扑推导cadgen srdf validate交叉校验。视觉复查cadgen step snapshot/cadgen urdf snapshot渲染成图或启动本地 CAD Viewer 逐关节扫描——这一步专门抓轴符号反了网格缩放 1000 倍这类校验器看不见的问题。收尾按 SDF Skill 的required report shape交付一份简洁报告写明跑了哪些检查、跳过了哪些、有哪些假设。3.4 硬件落地的延伸从模型到制造机器人做出来最终要落地制造而这套 Skill 生态正好把设计 → 制造闭环补齐dfam-check按工艺度量网格可打印性壁厚、悬垂、支撑体积、打印朝向dfm针对钣金/CNC/注塑给出带测量证据的评审结论gcode用 OrcaSlicer 直接切片bambu-labs把打印任务发给 Bambu Lab 打印机sendcutsend上传前先本地检查 DXF/STEP。社区文章里反复强调的5 分钟从文字到 3D 模型在仓库语境下被延伸成了从自然语言需求到可直接送去加工或仿真的工程文件。结语text-to-cad 的价值不在于AI 能画图了而在于它把 Agent 生成三维资产这件事变成了有源码、有校验、有复查、可增量构建、可对接制造的工程流程。对于机器人开发者最有吸引力的部分在models/juno、models/lyra这类工程CAD 装配体、typed kinematics 与 URDF/SRDF 共享同一份链参数规格从一句话需求到可被 MoveIt/RViz/仿真器消费的完整机器人描述Agent 可以在一个会话里端到端完成而每一步都有可执行的检查点兜底。如果要在自己的项目里起步最省力的路径是装好插件或 Skills→ 照着 models/tests/joint_playground/joint_playground.urdf 熟悉关节语法 → 打开 models/juno/src/lib/chain.py 理解一份规格喂三份产物的套路 → 然后用自然语言指挥你的 Agent 做第一版机械臂。剩下的就是让 CAD 变成 Agent 的原生输出能力之一。【免费下载链接】text-to-cadGive your agent CAD superpowers.项目地址: https://gitcode.com/GitHub_Trending/tex/text-to-cad创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考