evnchn-agentic/connector-cap

GitHub: evnchn-agentic/connector-cap

基于照片逆向工程的商用机器人接口面板 3D 打印保护盖帽,展示了从像素重建毫米级尺寸并验证的完整参数化 CAD 流程。

Stars: 0 | Forks: 0

# 接口盖帽 —— 基于照片的逆向工程 *这个机器人是一个廉价的商业设备 —— 没有 CAD,没有图纸,只有一个需要盖子的嵌入式接口面板。所以,在没有东西可以下载的情况下,你该怎么做就怎么做:在信用卡旁边拍下面板的照片,利用信用卡已知的尺寸作为标尺,并在 CAD 中从像素开始重建了这块面板。这就是逆向工程的过程 —— 包括叠加打印检查和左右方向混淆的失误。* ![造型流畅的盖帽,已安装就位 —— XT60 电源接入,数据线从狭窄的槽口穿过](https://static.pigsec.cn/wp-content/uploads/repos/cas/c5/c548f3d36b9863a52290ecbadb0c527a86630f315598fca0e9beec0923eee7a7.jpg) ## 这是什么 一个可 3D 打印的**保护盖帽**,用于某款商用机器人的嵌入式接口面板。该设备出厂时不提供 CAD 和标注尺寸的图纸(这是一款低端商业型号 —— 那种“测量然后打印”*就是*流程的设备,因为没有任何资料可以获取),因此该盖帽是在 [build123d](https://github.com/gumyr/build123d) 中通过参数化建模构建的,基于**从照片中还原的测量数据**,随后通过 1:1 的纸质叠加与真实部件进行了比对验证。 采用 [`agentic-3d-modeling`](https://github.com/evnchn-agentic/agentic-3d-modeling) 规范构建 —— 每一个尺寸都是经过检查的*数值*,绝非凭目测。 ## 发展历程 ### 阶段 0 —— 没有 CAD,没有卡尺,只有一部手机 面板位于一个凹槽内,带有三个接口和两颗面板螺丝。没有任何现成的图纸,而且当时我手里甚至没有实物部件 —— 只有照片。整个问题就变成了:*你如何从一张 JPEG 图片中提取出真实的毫米尺寸?* ### 阶段 1 —— 信用卡就是一把免费的标尺 一张 ISO/IEC 7810 ID-1 标准的卡片尺寸精确为 **85.60 × 53.98 mm** —— 因此在画面中放入一张这样的卡片,对其颜色进行阈值处理,对色块进行标注,你就得到了一个像素到毫米的比例尺。分别在 X 轴和 Y 轴上对该比例进行交叉验证,因为透视畸变会导致它们不一致 —— 而这种不一致就是有用的数据,而非噪点。 ### 阶段 2 —— 什么都别信;以 1:1 比例打印模型并将实物放在上面对比 像素在边缘处会产生欺骗。因此,模型会输出一份**真正的 1:1 PDF**(`figsize = mm / 25.4`,坐标轴固定在页面上,*没有*“适应页面大小”的缩放,角落里还有一个 10 mm 的校验条)。以 100% 比例打印,将实物部件放在上面,以毫米为单位读取误差。它所揭示的修正是**按轴向而非统一进行的** —— 屏幕/打印的叠加会使每个轴向产生不同的拉伸 —— 因此需要对每个轴进行独立修正。 ![模型输出的 1:1 叠加图 —— 盖帽轮廓、螺丝中心、电源和数据窗口,以及一个 10 mm 的校验条。以 100% 比例打印,将真实的面板放在上面,读取误差值](https://static.pigsec.cn/wp-content/uploads/repos/cas/7b/7b3ae9526f3e76bc06275b1effcb311d1e27636e5d24771a9f85f5ba47c1780a.png) ### 阶段 3 —— 对盖帽进行建模(免支撑技巧) 一个薄壁外壳(没有边缘凸缘 —— 整块实心看起来就像“一坨”东西),一个用于电源连接器的倒角窗口,一个用于数据线的槽口,以及 **M2 沉头螺丝**。值得借鉴的打印技巧是:每个沉孔底部都会留有一层 **0.2 mm 的膜**,这样打印机就能在悬空处*桥接*出一个平面,而不是勉强去打印悬空的天花板 —— 之后你再把这 0.2 mm 钻穿即可。垂直的螺丝孔打印出来往往偏小且呈多边形,因此需要铰孔,不能直接信任建好的模型尺寸。 ![盖帽的剖面图 —— 薄壁外壳,带有 0.2 mm 桥接膜的沉孔底部,以及倒角的接口窗口](https://static.pigsec.cn/wp-content/uploads/repos/cas/2e/2ef0f98d1fced2acc64257fbf2224df212b632565bf72dafb989c7b4e4b4f64a.png) ### 阶段 4 —— 一份源码生成两个变体 一个参数化脚本,两种输出:一个带有完整数据接口窗口、用于测试台工作的 **dev**(开发版)盖帽,以及一个带有细长、隐蔽的走线槽、使外观更整洁的 **sleek**(流畅版)盖帽。它们之间的切换只需修改一行标志位,而不需要分叉文件。 ![Dev 版盖帽 —— 完整的 XT60 + 数据接口窗口,用于测试台工作](https://static.pigsec.cn/wp-content/uploads/repos/cas/46/4625da2e9bb101d35f55c03438960a7e88fc2deaae67f9522e5e60cad351b708.jpg) ### 经验之谈 - **左右朝向是头号陷阱。** 根据物理叠加图映射左右 + 翻转方向时,屡次踩坑 —— 一个 X 轴对称轮廓的 Y 轴镜像*看起来*像是旋转了 180°,但会悄无声息地将倒角和螺丝置于错误的边缘。仅对与移动边缘相关的部分进行镜像;基于边缘的特征**不可**镜像。 - **绕线方向决定了拉伸方向。** 一个顺时针绕线的切割轮廓会在不知情的情况下朝反方向拉伸,导致布尔运算失效 —— 这一点只能通过断言每次切割后体积是否*减少*来捕获。 *范围:这是用于商用机器人面板的通用盖帽 —— 故意省略了具体的地点和使用者。流程笔记(验证循环、易错点)位于 [`agentic-3d-modeling`](https://github.com/evnchn-agentic/agentic-3d-modeling) 技能库中;这是一个真实的案例,其中照片缩放、叠加检查和朝向问题都带来了真实的教训。* ## 文件 `build_cap.py`(参数化模型 → STEP/STL + 剖视图/等测视图/可打印性视图) · `cap_dev` / `cap_sleek`(`.step`/`.stl`) · `scale1to1.py`(1:1 叠加 PDF) · `measure_drawing.py`(信用卡比例轮廓提取)。
标签:3D打印, build123d, CAD建模, 云资产清单, 硬件配件, 逆向工具, 逆向工程