参数化 CAD 建模与导出

SKILL开发

原名 参数化 CAD 建模(text-to-cad / cad 0.10.0) · 标识 text-to-cad

开发 未标注权限 许可证不明确
安装这个技能

用 build123d 编写 Python 模型脚本,在常驻服务中构建并导出 STEP、STL、3MF 等格式,还能出图量测,覆盖零件装配、机构运动学与动画。

一句话选型结论

按资料字段整理

参数化 CAD 建模与导出是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_7ce48f6f/text-to-cad-cadgen
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_7ce48f6f仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量10.5 KBSKILL.md 原文大小,越大说明说明书写得越细

能做什么

0 项能力
上游给出的能力概览与适用场景
参数化零件建模导出三维模型文件出图与尺寸量测

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
参数化 CAD 建模与导出当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

10.5 KB
模型实际读到的说明书原文,来自技能仓库

参数化 CAD 建模(text-to-cad / cad 0.10.0)

一个模型就是一个 Python 函数;运行它的脚本会在 text-to-cad 的常驻服务器里重建模型,
你打开的页面随之更新。文件是导出动作,按需才写。

环境准备(一次性)

cad 命令(Windows 上为 cad.cmd)驱动一个常驻服务器:第一次运行会启动它,之后每次
cad run / cad export / cad snapshot / cad inspect 都走这个服务器。服务器在
127.0.0.1 本地运行,不需要联网账号。

方式 A — 官方安装脚本(用户机器上推荐)

curl -fsSL https://texttocad.dev/install.sh | sh
# Windows PowerShell:irm https://www.texttocad.dev/install.ps1 | iex

装好后 ~/.local/bin/cad(cad.cmd)即可用。若刚装完报找不到命令,等 5 秒重试,
最多一分钟。

方式 B — 本机托管运行时(离线 / 沙箱)

本技能使用 ~/.workbuddy/cadgen-runtime/venv 这个本机托管的
Python 3.14 venv(已装 cad[build123d]==0.10.0 + cad-server==0.10.0)。用技能启动器
scripts/cadgen.py 即可,它优先用这个 venv 里的 cad.exe:

python scripts/cadgen.py --check     # 报告 cad 命令位置、版本与服务器状态
python scripts/cadgen.py --doctor    # 注册安装并启动服务器(首次需要)

无论哪种方式,安装后都要跑一次 cad doctor(或 cadgen.py --doctor):
它注册安装、写 cad 启动器、并启动服务器。把遥测关掉:

"venv/Scripts/python.exe" -m cad_server.cli telemetry off

> 本技能锁定的版本是 0.10.0(cad 与 cadgen 别名同版本)。scripts/cadgen.py --pin
> 可打印该版本。版本只由启动器持有,文档不必在每个调用点重复写版本。

写模型并运行

零件或装配是一个无参函数,用 @model 装饰(或用文件装饰器,见下),返回 build123d 形状。
尺寸是普通辅助函数的参数,每个配置各是一个 @model;多个模型共享的常量放在它们 import 的
模块里。调用它会在服务器里构建并返回一个文档:带 .id、.url、.shape(构建出的形状)和
.export(...)。例:src/bracket.py:

import build123d as bd
from cad import model


def bracket_body(width, thickness, bore):
    body = bd.Box(width, 20, thickness)
    hole = bd.Cylinder(bore / 2, thickness)
    body = body - hole
    body.label = "bracket"
    body.color = "#4a6fa5"
    return body


@model
def bracket():
    return bracket_body(40, 6, 8)


@model
def bracket_wide():
    return bracket_body(60, 6, 8)


if __name__ == "__main__":
    bracket()
    bracket_wide()
cad run src/bracket.py

每次 __main__ 里的调用会打印该模型如何构建、其下的增量(零件数、包围盒、关节、序列)、
文档 id: 与页面 view:。把页面链接给用户一次(见「展示模型」),之后的命令都用这个 id。

  • 运行脚本就是重建:它不写任何文件,只是把模型在热服务器里重放。@model 只声明,
    真正的调用放在 if __name__ == "__main__": 下,这样别的脚本也能 import 这些模型。
  • import build123d as bd,属性式使用(bd.Box)。import 是惰性的:内核在 Worker 里
    首次用到时才加载。module 顶层不要写 bd.Align.CENTER 这类惰性内核属性——把用到它们的
    元组下沉进函数体,否则一 import 就加载内核。
  • 颜色是 sRGB:part.color = "#4a6fa5" 或 0–255 整数;from bd_materials import metals
    后用 part.material = metals.aluminum() 赋原生材料。
  • 输入是体体内的 read_step / read_xbf / read_mesh,以及 Python 自己打开的文件,
    都按字节追踪。用调用组合项目模型,不要去读项目导出的文件。
  • 模型单位是毫米,+Z 朝上。

围绕导出文件的项目(0.7 风格)

如果一个项目本来就以导出的文件为中心(用户要求迭代文件本身、或有消费文件的下游),可以让脚本
每次运行直接写文件:用 @step("相对路径.step") 文件装饰器代替 @model(路径相对脚本)。
本技能支持的写法:

import build123d as bd
from cad import step, stl


@step("box_30x20x10.step")
@stl("box_30x20x10.stl")
def box_30x20x10():
    body = bd.Box(30, 20, 10, align=(bd.Align.CENTER, bd.Align.CENTER, bd.Align.CENTER))
    body.label = "box_30x20x10"
    return body


if __name__ == "__main__":
    box_30x20x10()

cad run box_30x20x10.step.py 会一次性写出 .step 与 .stl。校验就读文件本身:
cad snapshot / cad inspect 指向该路径,或在检查脚本里 read_step。代价是每次迭代都要重算
文件的几何与重读页面,且文件不记录模型来源(Quick Edit 无法回写到代码)。默认仍推荐 @model
+ cad export。

导出文件(按需)

文件是对服务器持有文档的一次动作,不是模型的一部分:不改代码、不重建,随写随有。在用户要文件时
才写:

cad export "$ID" STEP/bracket.step STL/bracket.stl GLB/bracket.glb 3MF/bracket.3mf

有固定交付物的项目可以写一个 exports.py,import 各模型并对每个调用 export(x, path, ...);
运行它就重写全部交付物(见 Exports)。

xbf 是 text-to-cad 自有文档(Save As),仅在「不带代码分享模型」或「用 read_xbf 在别的项目
里组合」时才导出。厂商 STEP 转一次 xbf(cad export vendor/motor.step vendor/motor.xbf),
之后用 read_xbf 读,比反复解析 STEP 快得多。

审阅与量测

跑完模型,先读它的输出行和下面的增量,发现与意图矛盾先改掉。用户给的数字,要在模型体体内用
assert 量测几何(包围盒、距离、体积)来核对,或用 cad inspect——不要复述常量,也不要在
调用之后的代码里读(见 Inspection)。

cad snapshot "$ID" tmp/review.png
cad snapshot "$ID" tmp/top.png --camera top --display hidden-line

cad snapshot 按查看器的方式用 OCCT 渲染文档,只写 PNG。选项决定画法:相机(--camera top)、
显示、网格、姿态(--pose open)、尺寸。它展示布局与外观,不标尺寸。

需要解析几何引用时,用 cad inspect:

cad inspect "$ID" "bracket/face 7"

它用 JSON 回答该引用指代什么、放在哪:元素的规范 ref、类别、序号与名称,内核事实(面的面积、
质心、半径;边长与端点),以及 made_by——写出它的函数、文件与行号;装配的体积与质量。按
made_by 改代码,或在体内用 build123d 的选择器(body.faces().sort_by(bd.Axis.Z)[-1])选中
同一元素(见 Inspection)。

展示模型

在 WorkBuddy 里没有托管的 CAD 查看器页面,按以下方式把模型交给用户:

  • STEP / STL 文件:用 present_files 作为交付物给出路径,不要截图查看器来自证;
    用户会在 FreeCAD 里打开 STEP,用渲染器看 STL。
  • 快照图:cad snapshot 生成的 PNG 用 present_files 展示,用于人工核对布局/外观/姿态。
  • 装配/机构:对每个改动涉及的零件出一张快照即可,不要习惯性地多角度出图;大模型就只框选
    改动涉及的零件,而不是整模型出图。

每个创建或改动的模型、每个导出的文件、跑过的检查及其结果、未覆盖的检查、所有假设与偏离,都是
你回复里要交代的内容。

参考文档

主题 文件
模型契约(@model / @step、运行、输入、引用) model-contract
build123d 建模(体素、草图、孔、倒角/圆角、布尔、定位、颜色/材料) build123d-modeling
导出 STEP/STL/GLB/3MF/xbf、exports.py、模型页 vs 文件页 exports
检查与校验:量测、干涉、引用解析语法、检查脚本 inspection-and-validation
运动学:joints、cad.ap242 机构状态与配对 kinematics
动画:cad.gltf 的 animation() animation
定位:子零件放置、坐标系与对齐 positioning
项目布局:多模型/多文件工程组织 project-layout
快照审阅:cad snapshot 出图与标注、Quick Edit 视图 snapshot-review

更新本技能

上游发布在 https://github.com/earthtojake/text-to-cad 。升级时:

  1. 改 scripts/cadgen.py 顶部的 PIN 到新版本(同时是 cad 与 cadgen 别名版本)。
  2. 按上游 skills/cad/ 重新拉取 SKILL.md 与 references/ 九篇文档(逐字 + 顶部中文导读)。
  3. 升级本机托管运行时:在 ~/.workbuddy/cadgen-runtime/venv 里
    uv pip install "cad[build123d]==<新版本>" "cad-server==<新版本>",再 cad doctor。
  4. 把 7 个用户模型脚本(*.step.py)按本文件「写模型并运行」迁移到新契约。
  5. bump 技能版本号(frontmatter version 与 CHANGELOG),重新打包发布。

> 本技能的「对外包自洽」约定:发布包仅描述当前 v0.10.0 契约与 cad 命令,不提及
> 0.4.x / 0.7.x 旧契约的迁移细节,也不引用内部维护用的私有术语。

常见问题

5 问
答案由本站依据条目字段整理
参数化 CAD 建模与导出怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_7ce48f6f/text-to-cad-cadgen。安装方式为未标注。装完刷新技能列表或重开客户端。

参数化 CAD 建模与导出支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

参数化 CAD 建模与导出权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

参数化 CAD 建模与导出收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

参数化 CAD 建模与导出用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。