从设计意图建立 CAD,而不是从一个模型文件开始
现在要设计一个轴承安装座:外廓 80×60 mm,厚度 12 mm,中心有直径 22 mm 的轴承通孔,四个安装孔位于 (±30,±20) mm,孔径 4.5 mm,顶部沉孔直径 8 mm、深 3 mm,外轮廓四个角半径 6 mm。这些数值是本文的演示设计,实际轴承配合、公差、紧固件规格与强度需要按选型另行确定。
CAD 的工作不只是堆出一个形状。设计者先确定基准平面、尺寸和约束,再按依赖关系建立特征:矩形实体 → 外角圆角 → 中心通孔 → 安装孔与沉孔。中心孔与板中心重合,四孔关于中心对称,孔位距相邻外边保持 10 mm。这些关系决定尺寸修改后哪些部分跟着改变。若只拖动一个三角网格上的顶点,孔的直径、同轴与对称关系并不会自动成立。
传统 CAD 中,二维草图需要通过水平、垂直、重合、对称和尺寸约束消除不希望存在的自由度,再拉伸成实体。下面用 CadQuery 把相同的设计关系写成确定性参数代码,便于在仓库里重建。脚本是设计定义,STEP 是交换几何,GLB 是展示派生物;三个文件各自承担不同职责。
# 可运行的完整入口:examples/stage-03-model-rendering/user_code/build_cad.py
# Python + CadQuery 2.6.1,尺寸单位 mm。
length, width, thickness = 80.0, 60.0, 12.0
part = (cq.Workplane("XY").box(length, width, thickness)
.edges("|Z").fillet(6.0)
.faces(">Z").workplane().hole(22.0)
.faces(">Z").workplane()
.pushPoints([(-30,-20),(-30,20),(30,-20),(30,20)])
.cboreHole(4.5, 8.0, 3.0))
cq.exporters.export(part, "bearing-block.step")box 建立板实体,edges('|Z') 选择平行 Z 的四条竖边,因此圆角改变 XY 外轮廓;faces('>Z') 选择顶部平面,孔特征以这张面建立工作平面。四个点把安装关系一次写清。沉孔由较大的浅孔和较小的贯通孔形成阶梯。改变特征顺序或面选择条件,会改变后续操作读取的拓扑对象;复杂参数修改后要重新确认所选面,而不能把早期面索引当作永久身份。
CadQuery在这里提供参数化建模 API,OpenCASCADE 几何内核完成实体与拓扑运算。本文的脚本与资产由本站生成,未借用外部零件的 CAD 建模历史。生成脚本还导出尺寸、孔径、沉孔与实体检查报告,供后续转换核对。
CAD 实体先通过检查,才进入 STEP 交换链路
这个零件的外表面由平面、圆柱面与圆角曲面构成。B-rep(Boundary Representation,边界表示)用拓扑结构组织曲面:顶点是连接端点,边是曲线的一段,wire 是面边界环,face 是被环裁剪的曲面,shell 组合各面,闭合 shell 围成 solid。中心孔并不需要被“画黑”;面上的内边界与贯通圆柱面真实定义了空洞。
连续曲面与边界曲线要在几何容差内一致。错误的布尔操作、重合面、开口壳或过小圆角可能让实体不再有效。颜色材质无法修复这些几何问题,三角化成功也不等于实体可制造。因此脚本在导出前检查 isValid()、实体数量与体积,导出后重新导入 STEP 再核对有效性、实体数量、包围盒和体积。
assert part.val().isValid()
assert len(part.solids().vals()) == 1
cq.exporters.export(part, "bearing-block.step")
restored = cq.importers.importStep("bearing-block.step")
assert restored.val().isValid()
assert len(restored.solids().vals()) == 1
box = restored.val().BoundingBox()
# 核对 box.xlen / ylen / zlen 为 80 / 60 / 12 mm。
# 核对 restored.Volume() 与导出前一致,允许明确的数值容差。STEP 保留可交换的几何与拓扑,文件中的单位必须被读取。把 STEP 导回 CAD 可能得到可编辑的实体,却不会自动恢复本脚本中的参数名、特征顺序和草图约束。本例保留源脚本来保证设计可重建,保留 STEP 来支持跨工具交换,保留哈希与几何报告来保证转换对象可追溯。
轴承座的孔与沉孔都是实际几何。下面加载的就是脚本生成的 STEP,浏览器通过 Worker 中的 OpenCASCADE WASM 三角化,再显示统计、网格与源 B-rep 面。先旋转到顶部看沉孔,再翻到底部确认安装孔贯通。切线框后比较圆柱内壁的三角片;改变偏差参数并重新生成,圆孔与圆角的离散密度会发生变化。
按需加载几何内核 · 本地浏览器处理
加载公开模型 · 约 10.6 MB