build123d 在线:在浏览器里运行 build123d 代码

把 build123d 脚本贴进来,或者打开一个带代码的链接,浏览器里直接建出零件。代码里的尺寸常量变成滑块,拖一下就重建;满意了导出 STEP 或 STL。不用装 Python 和 OCP,不用注册,代码不上传。

打开 build123d 编辑器 →带示例代码打开 →

你能得到什么

脚本照原样跑

builder 模式与代数模式、选择器、Locations、joints——build123d 0.13 的写法照常能用,numpy、bd_warehouse、sympy 照常 import。

精确几何,导出 STEP / STL

建出的是真正的实体,不是网格:真平面、真圆柱、真孔。右下角一键导出 STEP(Fusion、SolidWorks、Onshape、FreeCAD 直接打开)或 STL(给切片软件)。

常量就是滑块

用 #@ 声明的旋钮,或者——没声明时——模块顶层的每个数字常量,都会变成参数卡里的滑块。拖动时改的是代码里那一行的数字,然后重建。

一句话让 AI 改

「孔改成 M4」「盖子松一点」:AI 改代码、浏览器重建,建不出来的不收,可撤销。未登录每天 2 次;存进「我的模型」后可以交给 AI agent 接着做。

报错标在你的代码行上

出错时说的是你自己代码里的第几行,并标在编辑器上,一键交给 AI 修。在 build123d 里能跑、这里却报错或形状不对的,点「报告问题」发给我们。

代码放进链接

「复制链接」把当前代码放进网址,谁打开都看到同一个零件。ChatGPT、Claude 替你写了 build123d,也可以让它直接给这样的链接。

手边没有脚本?先试试这几个

点开就在浏览器里建好;拖参数卡里的滑块改尺寸,然后导出 STEP。不用登录。

一段 AI 常写的那种脚本

代数模式,一行一个常量,没有 #@——打开后 OD、HEIGHT 这几个常量就是滑块。

"""M3 standoff with a hex nut pocket underneath. World Z-up, mm; it stands on Z=0."""
from build123d import *
from ocp_vscode import show

OD = 12.0  # outer diameter
HEIGHT = 15.0
BORE = 3.4  # M3 clearance hole
NUT_AF = 5.7  # nut across flats, plus clearance
NUT_DEPTH = 3.0

standoff = Cylinder(OD / 2, HEIGHT, align=(Align.CENTER, Align.CENTER, Align.MIN))
standoff -= Cylinder(BORE / 2, HEIGHT, align=(Align.CENTER, Align.CENTER, Align.MIN))
standoff -= extrude(RegularPolygon(NUT_AF / 2, 6, major_radius=False), amount=NUT_DEPTH)
top_outer = standoff.edges().group_by(Axis.Z)[-1].sort_by(SortBy.RADIUS)[-1]
standoff = chamfer(top_outer, 0.8)

show(standoff)
带示例代码打开 →

能跑什么、不能跑什么

能跑的和目前跑不了的,一条条列在这里。做不到的写法会直接报错并说明原因。

能跑的

  • build123d 0.13 的 API:BuildPart / BuildSketch / BuildLine 与代数模式、选择器与过滤、Locations 系列、joints,以及继承 build123d 类的写法。
  • from build123d import *、from ocp_vscode import show 原样能用。结果取 show() 给的对象,没有就取 export_* 的对象,再没有就取最后一个 3D 变量。
  • numpy、bd_warehouse(螺纹、紧固件、齿轮、管件)、sympy,以及 Python 标准库。
  • Forgent3D 自己的 model.py(from cadkit import …)也能直接打开。

目前的限制

  • CadQuery、scipy、matplotlib、shapely 不可用,直接 from OCP import … 大多也不行;报错里会给出改法。
  • export_step、export_stl 这类调用不会真写文件,导出用页面上的按钮。
  • Text() 用的是内置字体,和你本地排出来的字不一样;指定 font_path= 或写中日韩文字会报错。
  • 个别脚本会建出略有不同的形状而不报错,拿去加工前请核对尺寸。
  • 一个链接只带一个文件:import 你项目里别的 .py 会找不到,把它内联进来。

和本机装 build123d 比

本机 build123d这一页
安装pip install build123d(连带 OCP / OpenCASCADE 的 wheel)打开一个网页
看模型ocp_vscode / VS Code 插件页面自带
改参数改数字、再运行一遍滑块,写回代码里的数字
分享发 .py 文件一个带代码的链接
导出代码里调 export_step() / export_stl()页面上的 STEP / STL 按钮
第三方库pip 能装的都行numpy、bd_warehouse、sympy

用 Claude Code 或 Codex?装 Forgent3D skill

一条命令,agent 就能在你的仓库里写参数化的 build123d 模型,在本机用 Forgent3D 的 CAD 引擎构建:读回包围盒和体积、自己看三视图、导出 STEP / STL。不用装 Python 和 OCP。

npx skills add forgent3d/forgent3d-skills
Skills 页 →

常见问题

不装 Python,能在线运行 build123d 吗?

能。打开编辑器,贴代码或打开带代码的链接,浏览器里直接建出零件;拖参数、导出 STEP / STL 都在页面上完成。不用安装,不用注册。

脚本要改吗?ocp_vscode 的 show() 怎么办?

一般不用改。from ocp_vscode import show 和 show(...) 原样能用:show 给的对象就是要显示的零件;没有 show 就取 export_step 之类导出的对象,再没有就取最后一个 3D 变量。export_* 不会真写文件,导出用页面上的按钮。

能用 numpy、bd_warehouse 吗?CadQuery 呢?

numpy、bd_warehouse、sympy 和 Python 标准库都能 import。CadQuery、scipy、matplotlib、shapely 不行,直接 from OCP import … 大多也不行;报错里会说该怎么改。

代码会上传到服务器吗?

不会。构建和导出都在你的浏览器里完成,链接里 # 后面的代码也不会发给服务器。只有你主动用「AI 修改」或「报告问题」(勾着附上代码)时,代码才会发给我们。

ChatGPT、Claude 写的 build123d 代码,怎么最快看到结果?

贴进编辑器,或者让 AI 直接给一个 https://app.forgent3d.com/build123d#code=<代码> 形式的链接,点开就是建好的零件。

导出的 STEP 能在 SolidWorks、Fusion、FreeCAD 里打开吗?

能。导出的是实体,孔和圆柱面导入后就是可以选取、标注的圆柱面,不是三角网格。

延伸阅读