七个可打印件全部通过连通性检查,旋转模拟全行程零侵入。 这一页是打印前的完整交代:改了什么、为什么、每一条是怎么被验证的。
验证结论(全部为实测,非估计)
八个件(含内部承力链) 单一连通体 ✅ 碎片 0
俯仰 ±50° 最小间隙 6.19 mm @ -50° 侵入点数 0
左右 ±150° 间隙恒定 27.72 mm,极差 0.0000 mm
最不利组合 pitch -50° / pan +30° -> 6.13 mm
承力链五检 螺丝刀通道 / 壳 / 相机 / 视锥 / 立柱禁区 —— 全空
喇叭背腔 开口率 97.6%,连续通带 30 mm
切面∩经线肋 空(改前 62.784 cm³)
★ 加入承力链后,抬头方向的间隙从 30.13 降到 21.42 mm ★ 后横梁向后伸出,抬头时会摆下来 —— 这正是不建模就看不到的东西。仍然安全。
蓝 q0 含大眼睛 · 红 q1 含左耳罩 · 绿 q2 含后梁板 · 黄 q3 含右耳罩。缝面上的定位销可见。
旧代码切在 0/90/180/270,有两个致命问题,都是布尔实测证实的:
| 问题 | 实测 |
|---|---|
| 每一刀正对着一条经线肋 | 肋 ∩ 切面薄片 = 62.784 cm³ |
| 同时正对全部四个接口 | 耳罩(0/180)、眼睛(90)、后梁(270) 全被劈成两半 |
旧注释写着「切面正好走在两条肋之间」—— 那句话是错的,从来没验证过。
现在肋加了 RIB_PHASE=22.5° 相位,切面移到 45 的倍数,两个问题同时消失,
而且每一块正好完整包住一个接口:
q0 45..135 眼睛
q1 135..225 左耳罩
q2 225..315 后梁板
q3 315.. 45 右耳罩
每条缝 3 个高度(z = 66 / 84 / 122,正好在纬线箍上),每处一套 Ø4 定位销 + M3 螺丝。销负责对齐(打印件靠手摸对不齐曲面),螺丝负责夹紧。
每一块的
起始面(θ 小的那面) -> 长销 + 螺丝过孔 + 沉头
结束面(θ 大的那面) -> 销孔 + 热熔螺母孔
第 q 块的起始面 正好对上 第 q-1 块的结束面,绕一圈自洽
装配顺序:q0 -> q1 -> q2 -> q3,最后一条缝自然闭合
拼接高度不能随便选。加厚垫只有 24 mm 宽,够不到 22.5° 外的经线肋,全靠纬线箍接住。
第一版取了 z=46,而 q0 的主体从 z=63 才开始(下前方被相机视锥切光)——
销悬在空中,quarter0 变成 6 个散件。代码里现在有 assert 钉住
JOIN_Z ⊂ HOOP_Z。
你说:「内部的横梁还没有做好…从相机到云台、到头部横梁、到头的后盖内侧, 这部分有很多尺寸当时都量了,但你都没有做在里边。」
这句是对的。V13 之前只有一块 beam_plate(挂壳的孔位),
真正承力的那条链从来没进过 V13 —— 它一直只活在 v12 里。
而 V13 的 CB_HOLE_X = 33.25 恰恰是从这条链推出来的:
ARM_X_O = max(叉臂外侧 29.85, 螺丝刀通道 35.75) = 35.75
CB_W = 2×35.75 + 7 + 6 = 84.5
挂壳螺母 x = ±(CB_W/2 − 9) = ±33.25 ;z = 抬高 14 ± 6 = 8/20 (+50 → 58/70)
也就是说 V13 一直在用这条链的【结论】,却没有它的【实体】 —— 所以从来没验证过它装不装得进 V13 这个更高、带肋的新头。现在移植进来了。
相机 (Gemini 90 × 30 × 25→22 梯形)
↑ 两颗 M3,从【后方】穿过,拧进相机,最大入深 4(★ 不许超 ★)
云台耳板 (厚 6,高 12.5,孔心距 44.5,孔 Ø3;中间 36 是禁区)
↑ core_link 法兰贴在耳板【后表面】,厚 4 → 新螺丝 = 原螺丝 10 + 4 = 14
core_link 法兰 → Z 字形悬臂 → 后横梁 (84.5 × 7 × 20)
↓ 4 个 M3 热熔螺母 x = ±33.25,z = 58 / 70
后盖内侧 (V13 的 beam_plate)

core_link 等轴测

侧视 · Z 字形
链 + 现有件参考体(灰):左=相机,下=Ø80 立柱与 Ø20 俯仰关节
操作者原话:「螺丝刀很难直的插进去然后转」。原来法兰后面紧跟一段横向过渡杆, 正好挡在螺丝轴线后方。改成:往后伸 9 → 拐 90° 往上抬 14 → 再往后伸到横梁。 于是螺丝轴线正后方一格材料都没有,Ø12 的螺丝刀能一路捅到螺丝头。 横梁上另外还开了两个 Ø13 的对穿孔作冗余。
| # | 问题 | 实测 | 处理 |
|---|---|---|---|
| 1 | 坐标错位 4mm:v12 的 y 原点是【耳板后表面】,
V13 的是【俯仰轴】,CB_REAR_Y = −56 是直接抄过来的 |
链算出横梁在 −52,壳按 −56 建 | CB_REAR_Y 改为由链推导,不再手写 |
| 2 | 拼缝加厚垫撞上后横梁 | 0.168 cm³ ×2 @ z 59–73(JOIN_Z[0]=66 ± 7) |
头壳给内部横梁让位(1.2mm 间隙)—— 承力件在先,罩子在后 |
| 3 | 一条 assert 从来没生效过 | POD_YC/POD_FIX_R/POD_ZC 定义在它后面,
openscad 报 unknown 然后跳过 |
挪到常量之后。看不见输入的 assert 不是保护,是错觉 |
两个模型对相机位置的锚点不同:
| 依据 | 相机后表面 | |
|---|---|---|
| V12 | 相机背面贴耳板,耳板厚 = 螺丝长 10 − 相机螺纹深 4 = 6 | y = 6 |
| V13 | 操作者实测「相机向前凸约 40」 | y = 10 |
两者都成立的唯一解释:耳板后表面不在俯仰轴上,而在轴前 4mm。 旁证很强 —— 按这个换算之后,三段正好首尾相接:
法兰 y 0 .. 4 (法兰厚 4)
云台耳板 y 4 .. 10 (耳板厚 6)
相机 y 10 .. 40 (相机厚 30)
⚠ 这个 4 仍然是【推得】的,不是量的。代码里标了 CHAIN_DY,
如果实际是 0,改这一个数,整条链和后梁板会自动跟着走。
| 检查 | 问什么 | 结果 |
|---|---|---|
driverclash | 螺丝刀能不能够到螺丝头 | 空 —— 拆得下来 |
clclash_head | 与头壳打不打架 | 空 |
clclash_cam | 侵不侵入相机实际包络 | 空 |
clclash_cone | 挡不挡相机视锥 | 空 |
clclash_ko | 进不进立柱禁区 | 空 |
其中两条一开始都是假阳性,判据本身错了:
clclash_cam 用 cam_body() 当探针 —— 但它沿 y 多留了 40mm 的宽松禁区,
法兰落在里面是合理的。改用真实包络 90×30×25 后为空。driverclash 探针一路捅到相机,必然撞上法兰自己(而法兰必须在那儿,
螺丝就是穿过它的)。改成只测到螺丝头所在的法兰后表面。RIM_Z=26 撞 CYL_Z0=26、底部扫掠棱与内壳面相切)。把导出的 STL 逐顶点(44,472 个,含内部承力链)绕俯仰轴/竖轴旋转,量与立柱实体
{r ≤ 40, z ≤ 0} 的最小距离。
| 俯仰角 | 最小间隙 | 侵入点数 |
|---|---|---|
| −50°(最低头) | 6.19 mm | 0 |
| −25° | 13.00 mm | 0 |
| 0° | 27.72 mm | 0 |
| +25° | 32.43 mm | 0 |
| +50°(最抬头) | 21.42 mm | 0 |
| −60°(超出行程,测余量) | 2.19 mm | 0 |
左右 pan ±150°:间隙恒定 27.72 mm,极差 0.0000 mm —— 实测证实 pan 轴与立柱同心, 印证了你说的「立柱就在轴的正下方,对称的」。

−50° 6.19 mm

−25° 13.00 mm

0° 27.72 mm

+25° 32.43 mm

+50° 21.42 mm
蓝=骨架 橙=相机框/领结 灰=Ø80 立柱 + Ø20 俯仰关节 + Gemini 335 本体
操作者拿到实件后的原话:「头梁后面那几个螺丝,在后背方向的壳上找不到能打得通的螺丝孔……
后头壳上没有一个跟头梁锁紧的平面……我看到后头壳上有四个洞,四个洞都没贯穿,被内部结构挡住了。」
后来又指出:「这四个孔目前只是从后面单面可以刺进去,不能从另一面出来」,
以及「他们俩就是一个东西,我从始至终只有 core_link」。全部属实。
翻出最早那版(提交 42d0e96)的原话:
「后梁接口 —— 操作者找不到它,所以这一版做成一块显眼的实心板」
「让人看得见」被当成了几何要求。板被放到 y=−86(壳外),还加了 hull()
过渡颈往外扩去够壳 —— 那就是实件上摸到的突兀长方体。此后所有尺寸都围着这个错误位置推导,
彼此自洽,所以从来没有报过错。assert 守的是「推导是否一致」,不是「前提是否正确」;
前提错了,越自洽越危险。
core_link 后横梁上的 4 个孔 = 热熔螺母盲孔(从后表面往前钻 6mm) 孔位 x = ±33.25,而两条悬臂占 x 32.25 … 39.25 → 孔正好在悬臂正后方,就算钻穿也会撞上它
两个原因叠在一起,所以它天生出不来。
8-23 我加了个 beam_ext(加长件),理由是「core_link 已打印不能改,
造块加长板去够后脑勺」。操作者手上根本没有这个件。它还带来一个死结:
两侧螺丝方向相反,装配顺序怎么排都解不开 —— 那是个由多余零件凭空造出来的假问题。
beam_ext 已整个删除,打印清单从 8 件回到 7 件。
「把后背板上那四个螺丝孔往中心轴内侧移一到两厘米,这样它就能贯穿整个后背板, 螺钉从后背板的内侧往后头盖骨走。……然后把这几个孔往后脑勺那部分加大直径 extrude, 直接连在后脑勺上。」
| 项 | 改前 | 改后 |
|---|---|---|
| 孔位 x | ±33.25(悬臂正后方,盲孔) | ±18(内移 15.25mm,真通孔) |
| 螺母在哪 | core_link 里(盲孔) | 头壳凸台里 |
| 螺丝方向 | 壳外 → 里(被拼缝垫挡) | 腔内 → 后(穿横梁进凸台) |
| 头壳外表面 | 4 个贯穿孔 | 一个孔都没有 |
| 连接件 | 板 + beam_ext 加长件 | 4 根 Ø12 凸台(与壳一体)+ 加强筋 |
| x=±33.25 | x=±18 | |
|---|---|---|
| 前方是否撞悬臂 | 撞(悬臂 32.25–39.25) | 空的,可贯穿 ✅ |
| 螺丝最深处半径 | 落在拼缝垫的 r≥46 圈里 | r=38.5,够不到垫 ✅ |
| 离 315° 拼缝余量 | — | 4 mm,不会被切开 ✅ |
凸台 Ø12,y = −83.33 … −52,长 31.33 mm
其中埋进壳壁 3.2mm(整个壁厚) → 与壳一体,不是搭上去的
根部落点 289.8°,最近经线肋 292.5°(覆盖 289.1–295.9°)→ 正压在肋上
前端 −52 = core_link 后横梁后表面 −52 → 顶住,无缝
螺丝 头在 −45(横梁前表面)→ 穿横梁 7mm → 进凸台 6mm
加强筋 5mm 厚,连接同侧两根柱子,后端埋进壳壁 → 受力从弯矩变成拉压
还有一处不易察觉的:给 core_link 让位的间隙槽(core_link_envelope)
后沿在 y=−53.2,正好会削掉凸台顶端 1.2mm,留一条缝 —— 那样螺丝拧紧只是在把两个件掰弯。
已让这道槽避开凸台。
这是操作者教的:「你实在不知道该怎么建模的时候,就把那个螺丝在里边做出来,
看他会不会贯穿、会不会交点。如果不交点那就是对的,如果交点肯定就有问题,
最后再出图的时候把这些螺丝删掉。」
照做:Ø3 螺杆 + Ø5.5 螺帽建成实体,与 core_link ∪ 整个头壳求交 ——
solid OpenSCAD_Model endsolid OpenSCAD_Model ← 45 字节空文件,面数 0 → 四条通道零干涉,全部打通
这个判据比看渲染图可靠得多。今晚渲染图三次都没提示过任何异常, 而布尔和连通性脚本每次都抓到了。
操作者试装:「quarter 之间的卡扣卡不起来 —— 衔接杆的宽度大于洞的宽度太多,卡不进去。」 名义间隙只有 0.35mm,FDM 打出来销偏大、洞偏小,直接过盈。
操作者的修法(聪明在改动只落在本来就要重打的两片上): 左右两片(q1/q3)已经打好,一个字不动; 前片 q0 和后片 q2 的销做小(Ø4.0→Ø3.4)、洞做大(Ø4.35→Ø4.85)。 四条缝全部受益:
| 缝 | 位置 | 配对 | 间隙 旧→新 |
|---|---|---|---|
| 45° | 前片右 | q0 新销 3.4 → q3 旧洞 4.35 | 0.35 → 0.95 |
| 135° | 前片左 | q1 旧销 4.0 → q0 新洞 4.85 | 0.35 → 0.85 |
| 225° | 后片左 | q2 新销 3.4 → q1 旧洞 4.35 | 0.35 → 0.95 |
| 315° | 后片右 | q3 旧销 4.0 → q2 新洞 4.85 | 0.35 → 0.85 |
销只管对位,压紧靠缝上的螺丝 —— 松一点没坏处,插不进才是致命的。 q1/q3 的 STL 逐字节未变(MD5 校验),已打印的两片继续有效。
| 版本 | 错在哪 | 谁抓到的 |
|---|---|---|
| 原始 | 板放在壳外(源头是一句注释) | 操作者,摸实件 |
| 修复① | 改球壳环带,半径方向写反(65.8 而非 51.8) | check_parts 报 连通体 2 |
| 修复② | 用球去裁圆柱段,切出 0.002 cm³ 细条 | check_parts 报 碎片 1 |
| 修复③ | 平板只在两侧边缘搭住,中间悬空;且造了多余的 beam_ext | 操作者:「单纯用螺栓去衔接,这不是很危险吗?」 |
| 修复④ | 凸台+加强筋,孔内移到 ±18 | 通过 |
全部由改完的源码重新出图,不是旧图。 前两张是这次修的地方,看后壳内侧那块贴着壳弯的板,以及贯穿壳体的四个孔。
core_link;红=螺丝。
凸台从后脑壳长出来,一路顶到 core_link 后横梁的后表面;
螺丝从横梁前表面(腔内侧)往后拧进凸台。头壳外表面一个孔都没有。









EXT_LEN 必须 = CB_REAR_Y − BM_Y0(不许顶穿后壳)写完立刻抓到我自己的两个错:板宽 90.5 穿出球面、球面反算 58.6 包不住孔。 看不见输入的 assert 不是保护,是错觉 —— 这几条是能报出来的那种。
① 眼圈那圈孔原来装不了任何东西。操作者:「眼睛一圈留的孔太靠里面, 被肋条挡住了,外面加不了东西」。实测确实如此:
头前表面 y = 38
眼圈凸出到 y = 42 (凸出 4mm)
而那圈孔在 y = 32 -> 在头表面【里面 6mm】,正好埋在肋条里
已挪到 y = 40,落在凸出那 4mm 的中间,从外面直接够得到(装胡子之类的)。
加了 assert 钉住:孔位必须在头前表面之外。
② 肋条外表面加了皮肤安装孔。操作者:「肋条框架外面要不要加一点, 以后好打印好皮肤卡上去,不然我以后打了皮肤也装不上去」。
原来肋笼外表面是光的曲面,皮肤只能靠粘。粘的问题不是丑,是拆不下来 —— 以后要动内部的相机线、喇叭、屏幕,都得先把皮肤撕掉,撕一次废一次。
| 项 | 值 | 为什么 |
|---|---|---|
| 数量 | 8 条肋 × 3 圈 = 24 个 | 沿经线肋打,不打在箍上 —— 肋是连续的,箍被相机切口和底部扫掠断过好几处;而且肋沿曲面走,皮肤按肋分块天然对得上 |
| 高度 | z = 72 / 100 / 128 | 都在圆柱段(26–136)上,避开纬线箍 |
| 规格 | Ø2.5 深 4.5(M3 自攻底孔) | 肋只有 7 宽、壳壁 3.2 厚,埋不下 6mm 热熔螺母 |
加了 assert:底孔深度不许超过壳壁,钻穿了就是一排漏光漏灰的通孔。
连通性复检:5/5 全部单一连通体、碎片 0(frame 245.401 / q0 63.041 / q1 43.741 / q2 88.877 / q3 44.507 cm³)。
你说「眼睛下面要装胡子,得往上挪」—— 实测证实,而且比看上去糟:
改前 相机顶面 62.0,眼睛下沿 56.0 -> 胡子空间 = −6 mm【重叠】
眼睛上沿 116.0 = 圆柱顶 -> 已经顶到天花板,一毫米都上不去
| 项 | 改前 | 改后 |
|---|---|---|
眼睛中心 EYE_ZC | 86 | 104(上移 18 = 一个箍间距) |
圆柱顶 CYL_Z1 | 116 | 136 |
| 纬线箍 | 46/66/84/122 | 46/66/84/122/142(间距不变,圆柱长了补一道) |
| 胡子空间 | −6 mm | +12 mm |
| 头总高 | 178 | 198 |
改前只有一个 18×9 的显示窗 —— 屏幕模块(20×10 带 PCB 和排线)放不进去, 而且一个穿线孔都没有。
| # | 开口 | 尺寸 | 用途 |
|---|---|---|---|
| ① | 显示窗 | 18 × 9 透到正面 | 只露屏幕可视区 |
| ② | 屏幕沉槽 | 24 × 14 深 2.6,从背面挖 | 模块整个坐进去、正面齐平 |
| ③ | 排线槽 | 7 mm 宽,开到板边 | 排线直出不打折 |
| ④ | 穿线孔 | Ø12 ×1(屏下方)+ Ø8 ×2(左右) | 喇叭线及其它 |
底板厚 4 → 5,挖完 2.6 深的沉槽还留 2.4 mm(有 assert 守着)。

正视 · 眼睛已上移

等轴测
左右我搞反过,已改。代码里之前从来没有定义过 +x 是哪一侧,
我只是在注释里断言了一句,那是没有依据的。现在把约定写死:
−x 是相机的右侧,FR_OPEN_SIDE = -1。
这条比看起来重要:vr_extras.py:44 原文
HEAD_PAN_LIMITS = ±150 deg. Bounded by the depth camera's CABLE, not a stop.
—— 左右旋转的极限本来就是被这根线卡住的,不是机械限位。线出不去 = pan 行程直接缩水。
| 第一版 | 第二版 | 定稿 | |
|---|---|---|---|
| 侧别 | +x(错) | −x | −x |
| 截面 | 44 × 36(凭空定) | 42 × 37 | 42 × 25.8=相机剖面 |
| 沿 x | 90 mm 一路外扫 | 40 mm | 40 mm |
| 后果 | 削掉不该动的东西 | 把领结翅膀切成三块 | 通孔,翅膀完整 |
第二版为什么还错:相机框端面上有料的只有两条 3.5 mm 的窄边(z 33.1–36.6 / 62.4–65.9), 洞高 37 → z 31–68,把这两条边全吃掉,翅膀就没有任何东西连着了(实测掉下来 3.361 cm³)。 所以 z 方向一毫米余量都不能给:洞高 = 框的内开口 = 相机剖面本身。现在有 assert 钉住。
箍是完整的圈,肋是完整的经线 —— 结构本身不碎。 你在整只骨架上看到的「碎块」是叠在上面的接口:拼缝加厚垫 ×12、耳罩台 ×2、后梁板、 相机视锥切口、大眼睛。碎的是接口,不是结构。
头骑在 Ø80 立柱上方,相机(灰色横条)+领结框(橙)当下巴挂在前下方。
你问「悬空的碎片你想怎么办呢」。答案不是「我下次注意看」—— 渲染图看不出连通性:一颗悬在空中的销和长在本体上的销,图上一模一样。
所以写了 02-hardware/robot-head/v13-frame-first/check_parts.py:
导出每个会被打印的件,做并查集连通分析,任何件只要不是单一连通体、
或存在 <0.05 cm³ 的碎片,就判不合格并打印碎片的包围盒。
连通性检查 generate_head_v13.scad 碎片阈值 0.05 cm³
──────────────────────────────────────────────────────
frame ✅ 主体 245.725 cm³ 连通体 1 碎片 0
quarter0 ✅ 主体 63.071 cm³ 连通体 1 碎片 0
quarter1 ✅ 主体 43.837 cm³ 连通体 1 碎片 0
quarter2 ✅ 主体 88.978 cm³ 连通体 1 碎片 0
quarter3 ✅ 主体 44.603 cm³ 连通体 1 碎片 0
cam_frame ✅ 主体 53.323 cm³ 连通体 1 碎片 0
core_link ✅ 主体 22.450 cm³ 连通体 1 碎片 0 ← 内部承力链
──────────────────────────────────────────────────────
✅ 7/7 个件都是单一连通体,没有碎片
| # | 缺陷 | 实测 | 根因 |
|---|---|---|---|
| 1 | quarter0 是 6 个散件 | 0.162 cm³ 悬空销 | 拼接高度 z=46 在 q0 的材料之下 |
| 2 | 4 片零体积退化面 | z=26.0 整 | RIM_Z=26 与 CYL_Z0=26 共面 |
| 3 | 两粒碎屑 | 0.001 cm³ @ z≈35 | 底部扫掠的离散棱与内壳面相切 |
| 4 | beam_ext 是 3 块 | 两块 8.237 cm³ | 螺丝柱离侧壁差 2.5 mm,四根柱悬在盒子中间 |
| 5 | cam_frame 是 2–3 块 | 0.663 / 3.361 cm³ | 出线口比相机框还高,切断端面上下边 |
另外底部原来有 4 根悬空细腿(取消下缘那圈之后,肋从最低的箍 z=46 一路伸到 26, 20 mm 没东西拉住)—— 已把肋笼底裁到最低那道箍。
每一个数都是从模型 echo 导出的(PART="dims"),不是手抄 ——
手抄必然和代码漂移。
| 组 | 项 | 值 | 备注 |
|---|---|---|---|
| 头体 | 半径 HEAD_R | 62 | mm |
| 头宽 = 2R | 124 | mm | |
| 圆柱段 z | 26 .. 136 | mm | |
| 半球顶 DOME_TOP | 198 | mm | |
| 圆心后偏 HEAD_YC | -24 | mm | |
| 壁厚 SHELL_T | 3.2 | mm | |
| 骨架 | 经线肋 平面数 RIB_N | 4 | 绕一圈 8 条 |
| 肋相位 RIB_PHASE | 22.5 | deg ★新增★ | |
| 肋宽 RIB_W | 7 | mm | |
| 纬线箍 z | [46, 66, 84, 122, 142] | mm 宽 8,共 5 道 | |
| 实心顶盖 z > | 158 | mm | |
| 实心下缘 z < | 22 | mm | |
| 四等分 | 切面角度 | 45 +90q -> 45/135/225/315 | deg ★改★ |
| 拼缝间隙 QSEG_GAP | 0.15 | mm 每侧,合缝 0.3 | |
| 拼接 | 高度 JOIN_Z | [66, 84, 122] | mm 每缝 3 处 |
| 眼睛 | 下沿 / 相机顶 / 胡子空间 | 74 / 62 / 12 | mm ★改★ |
| 拼接 | 加厚垫 跨缝宽 x 径深 x 高 | 24 x 16 x 14 | mm |
| 定位销 Ø x 伸出 / 埋入 | 4 x 7 / 6 | mm | |
| 销孔 Ø | 4.35 | mm 单边配合 0.175 | |
| 销 / 螺丝 所在半径 | 57 / 50 | mm | |
| 螺丝 | M3 过孔Ø3.4 沉头Ø7.1 螺母孔Ø4.2x6 | mm | |
| 耳罩 | 外形 (锁死) | 67.2 见方 | mm |
| 4 固定孔半径 (锁死) | 29 | mm | |
| 中心 (y, z) | -14, 82 | mm | |
| 通风窗 | 46 x 46 | mm | |
| 台壁 x 范围 | 50 .. 57 | mm 厚 7 | |
| 眼睛 | 通光孔 EYE_D | 48 | mm |
| 外径 = D + 2×RIM | 60 | mm | |
| 中心高 EYE_ZC | 104 | mm 在圆柱段上 | |
| 侧面挂载孔 | 8 x Ø2.5 深5 | mm | |
| 后梁 | 板 宽x高x厚 | 100.5 x 42 x 7 | mm ★定死★ |
| 板 y 位置 | -82 .. -75 | mm | |
| 过渡颈 y / 宽 / 高 | -64 / 72 / 56 | mm ★改★ | |
| 4 孔 x = +- | 33.25 | mm z = 58 / 70 | |
| 走线窗 | 46 x 22 | mm | |
| 相机 | Gemini 335 本体 | 90 x 30 x 25 | mm |
| 底面高 CAM_BOT_Z | 37 | mm 由 SWEEP 决定 | |
| 承力链 | 坐标换算 Δy / Δz | 4 / 50 | mm Δy 为【推得·待确认】 |
| 云台孔心距 L_HOLE | 44.5 | mm ★操作者实测★ | |
| 中间禁区 KEEPOUT_W | 36 | mm ★实测★ 这段不许放东西 | |
| 现有孔径 | Ø3 | mm ★实测★ => M3 | |
| 耳板 厚 / 高 | 6 / 12.5 | mm 厚=螺丝长10−相机螺纹深4【推得】 | |
| 原螺丝 长 / 新螺丝长 | 10 / 14 | mm ★实测+法兰厚★ | |
| 相机螺纹最大入深 | 4 | mm ★实测·不许超★ | |
| 法兰 厚 / 高 / 内缘 | 4 / 12.5 / 18.5 | mm 高≤12.5 内伸≤5 是操作者硬约束 | |
| 悬臂 x / 截面 | ±35.75 / 7x15 | mm x 取 max(叉臂 29.85, 螺丝刀 35.75) | |
| Z 字形 后伸 / 抬高 | 9 / 14 | mm 抬高是为了让开螺丝刀 | |
| 悬臂总长 ARM_LEN | 56 | mm ★操作者定★ 46->56 | |
| 后横梁 宽x厚x高 | 84.5 x 7 x 20 | mm 宽由悬臂 x 推导 | |
| 横梁 y 位置 | -52 .. -45 | mm ★CB_REAR_Y 由此推导★ | |
| 挂壳螺母 x / z | ±33.25 / 58、70 | mm 与 beam_plate 由 assert 锁死 | |
| 螺丝刀通道 Ø | 12 | mm 横梁上另有对穿孔 Ø13 冗余 | |
| 壳与横梁间隙 CL_CLR | 1.2 | mm | |
| 叉臂 半宽 / 顶面 | 23.85 / 47 | mm ★照片估·待实测★ | |
| 约束 | 俯仰行程 SWEEP | +-50 | deg 实测 |
| 立柱 Ø / 关节 Ø | 80 / 20 | mm 实测 | |
| 底部开口扫掠 Ø | 132 | mm |
全部为上面那次检查实际验证过的同一批文件(不是另外导出的)。
| 件 | 体积 | 含什么 | 下载 |
|---|---|---|---|
| quarter0 | 63.07 cm³ | 大眼睛(含屏幕沉槽/排线槽/穿线孔) | STL |
| quarter1 | 43.84 cm³ | 左耳罩安装台 | STL |
| quarter2 | 88.98 cm³ | 后梁板 | STL |
| quarter3 | 44.60 cm³ | 右耳罩安装台 | STL |
| cam_frame | 53.32 cm³ | 相机框=领结,含出线口 | STL |
| core_link | 22.45 cm³ | ★ 内部承力链 ★ 相机 → 云台耳板 → 后横梁 → 后盖内侧。整个头挂在它上面 | STL |
| frame(整只,不分块) | 245.73 cm³ | 只用来看整体,一般不打这个 | STL |
PIN_FIT 重打一块,别硬敲check_parts.py 再切片所有体积、连通体数、间隙均为实测导出,非估计值。 渲染由 z-buffer 直接绘制导出的 STL(OpenSCAD 在这台 Jetson 上无头渲染会段错误)。 尺寸表由模型 echo 直接生成。