evnchn-agentic/power-board-enclosure
GitHub: evnchn-agentic/power-board-enclosure
一款基于单应性变换从厂家照片逆向测绘尺寸、用 build123d 参数化生成的 Raspberry-Pi 堆叠电源板 3D 打印外壳,在实物到货前即可完成设计与打印。
Stars: 0 | Forks: 0
# 电源板外壳 —— 在电路板到货前就已构建完成
*我需要为我还没收到的一款电源板制作一个外壳。所以我仅凭手头仅有的
东西 —— 厂家的尺寸图和一张照片 —— 就把它建出来了,我利用电路板自身的
Raspberry-Pi 安装孔作为单应性锚点,将照片转换为真实的毫米尺寸。
等电路板终于到货时,外壳刚好完美契合。*

## 这是什么
这是一个 3D 打印的 **底座与盖板外壳**,适用于现成的、可堆叠于 Raspberry-Pi 的电源
板(约 65×56 毫米的电路板,6–24 V → 5 V 降压,M2.5 Pi 安孔位)。整个过程都是在
**尚未拿到实物电路板之前进行的逆向工程**,随后在
[build123d](https://github.com/gumyr/build123d) 中使用
[`agentic-3d-modeling`](https://github.com/evnchn-agentic/agentic-3d-modeling) 规范进行了参数化建模。

## 探索历程
### 阶段 0 —— 没有电路板,也没有卡尺
当时电路板还在邮寄途中。我手头只有厂家的规格图和一张俯视
照片。因此,外壳必须完全依靠这些资料来设计。
### 阶段 1 —— 安装孔就是一把现成的尺子
支持堆叠的 Pi 电路板都共享 **Raspberry-Pi 安装孔位:58×49 毫米,Ø2.7 (M2.5),内缩 3.5 毫米**。这四个孔构成了一个精确、已知的矩形 —— 这是一个完美的 **4 点单应性锚点**。在照片中检测出这四个孔的中心,求解单应性矩阵(通过 numpy DLT),将图像校正为以毫米为单位的真实俯视图,然后直接读取电路板轮廓和接口的 X 坐标。在此场景下,经典 CV 胜过训练模型:具有确定性、亚毫米级精度,且无需数据集。
### 阶段 2 —— 照片无法提供的信息
校正后的照片能提供 X 和 Y 坐标,但 **无法提供接口相对于 PCB 的高度**。这些数据是通过按部件类型(接线端子、DC 圆孔插口、USB-C、排针)查找数据手册获得的。高度只是 *估算值*,这正是下一阶段的全部原因。
### 阶段 3 —— SAFE(安全)与 BEAUTIFUL(美观)(仅凭一个布尔值)
该模型通过一个标志位输出两个版本:
- **SAFE** —— 前后壁一直敞开至边缘。对高度误差具有包容性,不会发生短路或干扰,
并且 **在电路板到货之前即可打印**。当你的接口高度全靠猜测时,就该运行这个版本。
- **BEAUTIFUL** —— 在估算高度处为每个接口提供紧密的独立开口,适用于已拿到
实物电路板并确认了具体数值的情况。

### 阶段 4 —— 互不冲突的装配设计
底座 + 螺纹固定盖板,全程使用 M2 螺丝,电路板置于符合 58×49 孔位的四个支撑柱上。盖板
螺丝固定在 **置于腔体 *外部* 的四个边角安装耳上** —— 因为内壁内部的柱体会与电路板发生干涉。盖板带有定位唇边,并在接线端子螺钉上方开设了螺丝刀操作槽。

### 诚实之言
基于数据手册估算的高度进行设计,等同于在根据你并未完全信任的数字进行设计 —— 因此
SAFE 版本不是备用方案,它是 *默认选择*,而紧密贴合的 BEAUTIFUL 版本则要等到
实物电路板能验证这些估算值后才会派上用场。使用 PETG 打印;SAFE 外壳一次试装就完美契合。
*该电路板是常规通用零件,外壳也能独立使用 —— 此处不涉及任何部署上下文。
使用 [`agentic-3d-modeling`](https://github.com/evnchn-agentic/agentic-3d-modeling)
规范构建。*
## 文件
`build_box.py`(参数化模型 → STEP/STL + 视图)·
`box_safe` / `box_beautiful` / `box_lid`(`.step`/`.stl`)。
标签:3D打印, build123d, CAD建模, 单应性变换, 参数化设计, 计算机视觉, 逆向工具