← 全部报告
2026-08-22robot-head v12 后延 +10mm

头部 v12 · 后延版

后伸悬臂 ARM_LEN 46 → 56, 后壳跟着后移 10mm。这一页是完整的装配说明:七件三视图、衔接面怎么接、 每颗螺丝多大、热熔螺母怎么装。

★ 2026-08-23 · 猫耳重画(操作者:「有点太假了,能不能有弧度」)

原来是 hull 三个圆 = 纯三角形,几何感太强。 真猫耳的形状特征是两条曲线的组合:外缘饱满外凸、内缘弧度略小 —— 这一强一弱的不对称才是猫耳和三角形的根本区别。现在用二次贝塞尔重画轮廓。

装在头上 · 正面
装在头上 · 正面
单件 主视
单件 主视

调了三版才对,每版错在哪

版本参数结果
v1外凸 0.30 / 内凹 0.16,控制点在 h×0.5 弧度过头 —— 整个变成半圆,耳尖被吃掉
v2收到 0.13 / 0.07,但用了 offset(−r) offset(+r) 倒圆 耳尖被磨掉 —— 变成水滴/钟形。猫耳的辨识度恰恰在那个尖
v3去掉 offset,只在耳根叠小圆;外凸 0.11、内缘也给 0.05 正弧 对了。只鼓外缘会让耳朵整体歪向一侧像帆,两侧都给弧才自然

耳高 34→38(加弧度后视觉变矮,补回来)。

还踩了一个连通性的坑:耳朵前倾 14° + 外撇 14° 之后,根部飘离了底座平面 —— 实测 4 个连通体(两只耳 + 两个底座各自独立)。修法是让耳朵整体下沉 CAT_SINK = 2.0 埋进底板,并把底板加宽到覆盖耳根。 复验2 个连通体(左右各一只)、check_mesh PASS

★ 2026-08-23 · 喇叭四角孔用上了(操作者卡尺实测)

操作者问「我的音响四个角上有铰孔,这个孔有被用上吗?不然怎么穿螺丝」。 查下来:没用上 —— SPK_HOLE_SPAN 这个常量只定义了, 全文再没被任何几何引用过。原设计是让喇叭靠耳罩与头壳夹持,不用螺丝。

关键:目测值是错的

孔中心距来源
原值43照片目测(仓库里自己标着「装之前请量」)
实测41.5操作者卡尺

差 1.5mm —— 按目测值做柱子必然对不上。所以之前操作者说「用不上就别管」时, 没有硬做是对的:那一步做了就是白打一个 55g 的件。

孔是腰形的,这一点很重要

实测:短径 4mm、长径 6mm,长轴指向喇叭中心。 这是厂家给的安装容差 —— 柱心距只要落在 41.5±1 就能装上。 短径 4 也直接决定了螺丝规格:M3(Ø3)单边留 0.5mm,正好。

加上的柱子

参数理由
柱心间距41.5实测值,四角布置
柱外径 / 内孔Ø6.0 / Ø2.5M3 自攻底孔,壁厚 1.75
柱高4.0喇叭框厚 25,柱子埋在角孔里,压不到振膜
让开磁体磁体 Ø40(半径 20),柱心到中心 29.3

这四个柱是可选的:不拧螺丝时喇叭仍靠夹持工作,和以前完全一样。 但侧窗打通后背面少了支撑,若装完发现喇叭晃或有共振,拧上 4 颗 M3×8 即可 —— 不用重打耳罩。多出的料只有 0.4 cm³。

耳罩现在 45.0 cm³ ≈ 56 g(原始 62.0 cm³ / 77 g,仍省 27%)

做的时候踩的坑:第一版把柱子放进 difference() 的 union 侧,结果口袋的挖除(从 y=POD_WALL 起整块掏掉 50.4×50.4) 把柱子连根削平 —— 实测柱区只剩 y 2.1..2.6,一层皮。 正确做法是在挖完口袋之后再 union,让柱子长在已经挖好的口袋底上。 复验柱区 y 2.6..6.6,完整 4mm ✓

★ 2026-08-23 · 操作者连抓三个 bug,两个是致命的

操作者看图后提了三个疑问。三个全部属实,其中两个会让零件根本装不上

① 「头顶那个槽好像被封起来了」—— 对,槽根本没挖出来

dovetail_prism 里写成 rotate([-90,0,0])linear_extrude —— 旋转之后拉伸方向和轮廓所在平面对不上, 燕尾被拉到了错误方向。求交实测残留 1.535 cm³(正好是槽该在的位置)。

已重写:轮廓画在 x-z 平面,用 rotate([90,0,0]) 把拉伸方向摆到 y。复验求交为空 ✓

② 「两侧装音响的地方没看到任何孔,真能装上去吗?」—— 装不上

8 个耳罩螺母孔一个都没打出来。钻孔用 rotate([0, sx>0 ? 90 : -90, 0]), 而 OpenSCAD 的 cylinder 默认沿 +z,rotate([0,90,0]) 是把轴转到 +x —— 从 x=+61.5 往 +x 钻,方向朝壳外,根本没进壳。两边都反了。

之前左右那两个孔看着"通",纯属巧合 —— 它们正好落在侧窗边缘被窗吃掉了。

已改成 sx>0 ? -90 : 90。复验八个孔求交全空 ✓

③ 「音响壳会不会太厚?打一个要两个多小时」—— 对,省了 28%

体积重量
原来62.0 cm³77 g
四角挖除后55.1 cm³68 g(仅省 11%)
再掏空口袋外围44.6 cm³55 g(省 28%)

外形 67×67×29.6 装 50mm 喇叭,口袋周围每边 8.6mm 全是实心料。 只挖四角不够,真正的大头是口袋外围那一圈。现在从贴壳面往里掏 20mm, 只保留:外缘 3mm 边框 + 四个孔位周围 R7.5 的柱 + 口袋自身的壁。 受力全在孔柱上,削掉的部分不承力。

减料后的耳罩 · 朝内面
减料后的耳罩 · 朝内面 · 绿色大方块是喇叭口袋(依然整面敞开),四角削掉,四个孔位周围留柱,外缘一圈薄边框

一条方法论:判断「通没通」只能用布尔求交

这三个 bug 里有两个是"看起来通、实际堵着"。我试过的其他验证方法全部失效

唯一可靠的是:拿一块填满目标区域的探针与零件求交,交集为空 = 真通。 这一轮所有"通透性"结论都是这么验的。

★ 2026-08-23 · 操作者抓到一个真 bug:侧窗根本没打通

操作者问「为什么我看到前后两个头壳的侧面还是实体」。他是对的。 我上一轮只验了源码里的窗口参数,没在成品 STL 上验证通透性

根因:侧窗在 shell_common()确实挖开了, 但紧接着 internal_bosses() 又 union 了一块 耳罩补强垫 70×70×3 贴在内壁上 —— 而侧窗只有 46×46, 完全落在垫子范围内,挖开又被填回去了

实锤(拿一块填满窗口、贯穿侧壁厚度的探针与壳求交):

窗口内的材料
修改前6.075 cm³ 实心堵着
修改后空 —— 完全打通 ✓

修法:补强垫改成环形,只保留四个螺母柱周围一圈,中间让开侧窗。 螺母柱的补强作用一点没丢(受力全在柱子周围)。前后壳都已复验:求交为空。

顺带记一条方法论:我试过的两种验证方法都不可靠 —— 截面法(窗内窗外点数一样,因为把窗框边也数进去了)、正交侧视渲染(那是轮廓剪影不是表面)。 判断「通没通」只能用布尔求交:交集为空 = 真通。

前脸新开口 · 20 × 10mm

相机窗上沿在 z = +13,间隙取 15mm(1~2cm 的中值),开口中心 z = 33,占 z 28..38, 居中、圆角 2.5(直角开口在壳上是应力集中点,也不好看)。离壳顶还有 34mm。

前壳正面
前壳正面 · 大的是相机窗,上方居中那个圆角小口就是新开的 20×10

布尔求交复验:开口内材料 = 空 ✓ 顶点实测 x ±10.0 / z 28.0..38.0,与设计值精确一致 ✓

猫耳 · 插上去的配件

装在头上
装在头上 · 外撇 14°、前倾 14°、耳尖圆钝
单件
单件 · 底下就是通用燕尾底座 —— 任何配件都用这一套接口
参数为什么
耳高 / 耳根宽34 / 32 高宽比 ≈1.06。第一版 42/30(比 1.4)装上去像恶魔角不像猫;真猫耳接近 1.0
耳尖圆角R4.01.6 太尖 —— 圆钝才可爱
前倾 / 外撇14° / 14° 竖直的耳朵呆板;不外撇像兔子不像猫
耳片厚 / 内耳窝3.4 / 凹 1.2前倾后最大悬垂约 25°,不用支撑

燕尾槽改小 + 加盖板 —— 回答「会不会太醒目」

操作者问得对,量下来第一版有两个毛病:

第一版现在
槽口尺寸12 × 34 ×29 × 26 ×2
占顶面比例7.9%4.6%
两槽间距 / 中心46 / y=−14(偏中偏后) 78 / y=+2(两侧肩部、靠前)

位置那条比尺寸更重要:原来间距只有 46、中心偏后,猫耳插上去是 「头顶正中偏后的两根天线」,不像耳朵。挪到 x ±39(头宽 121 的两侧肩部)才对。 同时让开了顶部散热槽(y 方向间隔 7.4mm、x 方向 2.25mm,都验算过)。

盖板 V12_sock_cover
盖板 V12_sock_cover · 不插配件时插上它,槽口"消失"。胶囊形薄片,比方角柔和

新增下载

五件全部 check_mesh PASS。六项干涉检查全空。 核心连接件 core_link 仍然一个字节没动

★ 2026-08-23 · 三块电路板的固定(按操作者实测尺寸)

板不是两块,是三块,尺寸差别很大:

尺寸孔距摆法
蓝牙板85 × 25长向 73(实测) 竖装,板面朝后,靠一块从后壁长出来的立板承托
竖插小板长 19.5 插在蓝牙板背面、与之垂直,跟着蓝牙板走,无独立固定点,但给它留了 19.5mm 净空
HU-00470 × 28长向 60(实测) 平放在底面,四柱高 8mm(板底离壳内底 8mm,下面能过线)

为什么必须分层 —— 两块大板都平放是装不下的

并排:85 + 70 = 155 > 腔内净宽 116.2 ✗
前后:25 + 28 + 间隙 = 56,但实心底面只有 30mm 深(y −56..−26,再往前是云台叉臂开口) ✗

腔内高度有 95mm 之前完全没用上。所以 HU-004 躺底面、蓝牙板竖起来,分两层。

后壁 ──┬─ 后横梁 y −56..−49, z 4..24 │ ├─ 竖插小板 y −49..−26 插在蓝牙板背面 │ ├─ 蓝牙板 85×25 竖装 板面 y = −26, z 0..25 │ 距后横梁 23mm ✓ 距相机背面 26mm ✓ │ └─ HU-004 70×28 平放 板面 z = −17.6,后横梁在其上方 21mm ✓

蓝牙板贴后部竖装还有个附带好处:天线离金属件远,信号更好

后壳内部
后壳内部 · 中间大立板是蓝牙板靠背(两个腰形柱),底部几个腰形柱是 HU-004,左侧竖槽是给后伸悬臂的避让槽

短向孔距未测 → 做成腰形槽

你给的 73 和 60 都是长向孔距。短向(板宽方向)的孔距还没有, 所以四个柱位都做成 ±4mm 的腰形槽,装的时候能对得上。

HU_SPAN_S = 20(暂估) BT_SPAN_S = 17(暂估) BOARD_SLOT = 4

量到之后把两个 *_SPAN_S 填实、BOARD_SLOT 改 0,就变成精准圆孔。

★ 核心连接件一个字节都没动 —— 已核验

操作者已经在打 V12_core_link(+10mm 那版),所以这轮的约束是 只能改壳,不能改梁

仓库件与 Space 上已发布件 md5 一致:7a271bddd4316e78ccb2970d13fb7074
git 中该文件无未提交改动 ✓

过程中确实撞上了:蓝牙板的立板侵入核心件的两条后伸悬臂 0.515 cm³ (x ±32.2..39.2 / y −48..−45 / z 6.5..21.5)。 解决办法是让立板避让,不是改梁 —— 在立板和侧肋上开了两个沿 y 贯穿的通槽。 复验 立板 ∩ core_link = 空

这一轮踩的五个坑(都写进源码注释了)

  1. 柱基准面用错:写成 SH_BOT + SH_T(壳的底), 柱子悬在腔外 → 4 个游离体
  2. 柱落在云台叉臂开口上:底面 y −26..14 是空的 → 又 2 个游离体。板后移到 y=−42 才有实心底
  3. 蓝牙柱悬空:四根柱吊在 y −35..−26 的半空,后壁在 −56,隔着 21mm 空气 → 4 个游离体。改成先从后壁长立板,柱再从立板长出来
  4. 立板撞悬臂:见上,开避让槽解决
  5. 两处共面退化:侧肋后端正好落在后壁内面上;HU 柱底面正好落在腔内底面上。 刚好贴着同一个平面不是「贴合」,是退化 —— 各扎进去 1mm 就干净了。 这个坑本文件里已经是第三、第四次踩(之前是三角肋和口袋块),同一条规律

五个都是先看连通体数量、再看网格边界边才发现的 —— 渲染图上悬空的柱子和长好的看起来一模一样。

本轮验证

五项干涉:clash / 禁区 / 桥∩壳 / 耳罩∩壳 / 耳罩∩相机 全空 ✓
立板 ∩ core_link 空 ✓
网格:shell_rear PASS(watertight / 单壳 / 0 边界边)· shell_front PASS

★ 2026-08-22 晚 · 第二轮改动(三件事,均不碰受力路径)

① 侧窗对正喇叭 —— 打通背腔

先更正一个我说错的判断。我起初说「喇叭背腔几乎为零」, 实测不对:壳侧壁本来就有散热开窗,和喇叭背面重叠 30.4 × 28.2 = 857 mm²,占喇叭背面 2540mm² 的 34%

真正的问题是没对正:侧窗中心在 z = +22(壳几何中心), 而喇叭中心在 z = +8,差 14mm —— 喇叭上半边通、下半边闷着

改前改后
窗中心z=+22(壳中心)z=+8(喇叭中心)
窗尺寸30.7 × 3446 × 46
喇叭背面开通比例34%(偏上半边)整个背面

46 是上限:耳罩固定孔在 ±29,孔柱 11×12 的内缘在 23.5,46/2 = 23 —— 刚好让开 0.5mm。

意义:喇叭背面直通头内约 890 cm³ 的大腔,等于给它配了个大密闭箱, 低音会明显好转、大音量不易失真。顺便把走线也解决了 —— 线可以直接从背腔进头内,不必挤耳罩底部那个 12×8mm 的小口。

② 头内电路板固定柱 · M3 × 8 根

两块板各四根柱。柱高 8mm —— 板底离壳内底 8mm,下面能过线。 柱顶烫 M3 热熔螺母,板用 M3×6 加尼龙垫片压住。

参数说明
BOARD_XC±30左右各一块
BOARD_YC−42都在后壳侧
BOARD_SPAN_X / Y40 × 26★ 待你给实际孔距
BOARD_POST_H / D8 / Ø7柱高 / 柱径

跨距 40×26 是暂定值,把板的实际长宽和固定孔间距给我,改两个数即可。

做这个踩了两个坑,都写进源码注释了:

  1. 柱的基准面第一版写成 SH_BOT + SH_T —— 那是壳的底往上一个壁厚,柱子悬在腔外面,出来 4 个游离体 (其中 2 个还被侧窗切成负体积)。正确的是腔内底面 SH_ZC − (SH_H − 2·SH_T)/2 = −25.6
  2. 改对基准面后仍有 2 个游离:壳底在 y −26..14 有一个给云台叉臂让位的大开口, 内侧那排柱正好落在洞上。板整体后移到 y = −42 才落在实心底上。

两次都是先看连通体数量再看图才发现的 —— 渲染图上悬空的柱子看起来和长好的一模一样。

③ 头顶配件插座 · 两个燕尾滑槽

操作者:「头顶上做两个卡扣,可以插打印的帽子之类的」。做成燕尾滑槽

参数
槽口宽(顶面,窄边)12 mm
槽底宽(里面,宽边)17 mm
深 / 长6 / 34 mm
两槽中心距46 mm
配合间隙 / 定位凸点0.25 / 0.6 mm

用法:配件从后往前推入,燕尾锁住上下和左右,只剩前后一个自由度; 槽底那颗 0.6mm 弹性凸点在到位时「咔」一下定位。拔的时候直接往后抽。

为什么不用磁铁:磁铁要埋、要对极性、贴不牢容易掉;燕尾是纯打印件,零外购

顶面 · 两条燕尾槽
顶面 · 两条燕尾槽 · 在原有散热槽两侧,避开了它们
配套插件 V12_top_key
配套插件 V12_top_key · 两个燕尾插脚 + 一块 2.4mm 粘接板。打一个,粘在你任何帽子/配件底下
改动后的后壳 · 立体
改动后的后壳 · 立体

本轮验证

六项干涉:clash / 禁区 / 桥∩壳 / 耳罩∩壳 / 耳罩∩相机 全空 ✓
      chk_cradle 0.0013 cm³ 零厚贴面(已知遗留,非本次引入)
网格:shell_rear / shell_front / top_key 全部 PASS、单实体 ✓

受力路径一个字节没动 —— 三项都只改壳,核心连接件与法兰、悬臂、后横梁全部不变。

本轮要重打的件

核心连接件 core_link 不用重打(如果你已经在打 +10mm 那版的话)。

整体怎么拼

爆炸图
爆炸图 · 深灰=现有黑色支架与相机,蓝=后壳,青=前壳,紫=线夹,两侧深灰=耳罩

连接链条,从机器人往外:

现有黑色支架(刻 LIXIN,两耳各一孔) │ ② 2× 结构螺丝,从支架那侧穿过来,拧进相机自己的安装孔 V12_core_link 短法兰 ── L 折弯向外 ── 后伸悬臂 ×2(本次 +10)── 后横梁 │ ③ 4× M3×10 → 后横梁上 4 个热熔螺母 V12_shell_rear(后壳) │ ④ 4× M3×12 → 接缝面 4 个热熔螺母 V12_shell_front(前壳) ├ ⑤ 2× M3×8 → 前壳内底凸台 → V12_cradle(相机托,±6mm 长圆槽) ├ ⑥ 1× M3×8 → 后壳内底 → V12_cable_clip(线夹) └ ⑦ 每边 2× M3×35 → 壳侧壁热熔螺母 → V12_ear_pod(耳罩,内含喇叭)

衔接面到底是怎么接的 —— 三种,别混

  1. ② 号:借用相机自己的螺丝孔,不新打孔。 操作者实测「相机是通过后面两个孔、螺丝从后方穿过,云台的孔是打到相机里的」—— 所以这两个孔本来就不是空的。新件是插在中间的: 叠层变成「支架 → 核心件短法兰 → 相机」,用更长的同规格螺丝穿过三层。 长度按原螺丝加上法兰厚度来配,不要算绝对值。法兰厚 12.5mm 是操作者给的上限。
  2. ③④⑥⑦ 号:热熔螺母。塑料件上直接攻螺纹会滑牙,所以孔里烫一颗黄铜螺母。 孔径 Ø4.2 × 深 6(模型里已经留好),配 M3 热熔螺母(外Ø4.0 长6)
  3. ⑤ 号:长圆槽,不是圆孔。相机托上是 ±6mm 的长圆槽 —— 相机前后位置可以调,拧紧前对好焦平面再锁。

贴合面本身不靠螺丝抗弯。整机 350g 绕安装螺丝的最坏力矩只有 0.32 kgf·cm, 是由法兰的贴合面以力偶顶住的,接触压强约 0.012 MPa —— PLA 抗压是 50 MPa 量级。 螺丝只负责把两个面压在一起。

螺丝清单 · 按真实比例画

下面每张图都是 1mm = 6px 的等比示意(不是网图,避免失真)。 头型建议用内六角圆柱头(cap head):头径小、能沉进凸台、拧的时候不打滑。

编号规格数量拧进哪里
与相机原螺丝同规格,长度 = 原长 + 法兰厚
间隙孔按 Ø3.4(M3) 做;若手绘那个 4.5 是孔径 → 改 M4
2相机自身的安装螺纹孔
M3 × 104后横梁的热熔螺母
M3 × 124后壳接缝面的热熔螺母
M3 × 82前壳内底凸台
M3 × 81后壳内底
M3 × 354壳侧壁(每边 2 颗,穿过耳罩)
M3 × 8 (⑤⑥)
M3 × 10 (③ 核心件→后壳)
M3 × 12 (④ 后壳→前壳)
M3 × 35 (⑦ 耳罩,最长的那种)

热熔螺母(这个是关键,别买错)

M3 热熔螺母 · 外Ø4.0 长6 滚花外壁 · 内 M3 螺纹

要买的是「M3 热熔螺母 / heat-set insert,外径 Ø4.0、长 6mm」, 外壁有滚花(菱形或竖纹都行),黄铜色。不要买外径 5.0 的那种 —— 模型上的孔是 Ø4.2。

怎么烫:烙铁调 200~230°C,换上和螺母内孔差不多的头(或直接用尖头顶住螺母上端面), 垂直压进 Ø4.2 的孔,慢,感到到底就停,趁塑料没凝固前用平面(比如钢尺)压一下让端面齐平。 歪了就废 —— 螺母歪 2° 后面螺丝就对不上另一件的过孔。可以先在 V12_fit_test 上练两颗。

三视图 · 核心连接件(本次改动的件)

主视
主视
侧视
侧视 · Z 字形:法兰后先平伸,再抬高让开螺丝刀通道,最后接后横梁
俯视
俯视 · 两条悬臂走在叉臂外侧 —— 内侧会撞叉臂和螺丝刀通道
立体
立体 · 后横梁上 4 个 Ø4.2 热熔螺母孔;两端短法兰上是 ② 号螺丝的过孔

84.5 × 56.0 × 30.2 mm ≈15 g PLA+

三视图 · 后壳(跟着后移的件)

主视
主视
侧视
侧视
立体
立体

121.0 × 58.3 × 99.8 mm ≈67 g PLA+ / PETG

前壳(几何未变,供对照)

前壳 · 主视
前壳 · 主视 · 分件面固定在 SPLIT_Y=0,所以前壳不受后延影响
中央剖视
中央剖视 · 红色为核心连接件,可以看到它怎么穿过壳体接到相机

下载 · 七个件

本次只有前两个要重打,其余五件几何未变。

重量材料摆放
core_link15 gPLA+(唯一受力件) 按建模朝向:件的 Z 朝上、U 形开口朝上 —— 悬臂长轴躺在层平面里,弯矩不拉层间
shell_rear67 gPLA+ / PETG开口朝上平放
shell_front37 gPLA+ / PETG开口朝上平放
ear_pod ×242 g/个PLA+ / PETG口袋朝上
cradle3 gPLA+平放
cable_clip0.5 gPLA+平放

装配顺序(有一步会松开相机,别搞反)

  1. 七件打完,先在 fit_test 上练两颗热熔螺母
  2. 所有热熔螺母烫好:后横梁 4 · 后壳接缝 4 · 后壳内底 1 · 前壳内底 2 · 壳侧壁每边 2
  3. 装 core_link —— 这一步会松开相机:拆 ② 号原螺丝时用手托住相机, 把核心件短法兰插进「支架 ↔ 相机」之间,换上更长的同规格螺丝拧回去
  4. 后壳 ← 核心件(③ 4×M3×10)
  5. 相机托进前壳(⑤ 2×M3×8,长圆槽先别锁死,对好焦再锁);线夹进后壳(⑥ 1×M3×8)
  6. 前壳 ← 后壳(④ 4×M3×12)
  7. 喇叭放进耳罩口袋,耳罩上壳(⑦ 每边 2×M3×35)—— 壳壁把喇叭封住,喇叭本身不需要单独的螺丝

装完必测:torque on,把 pitch 停在最费力的角度读 Present_Load别超 80%。手臂上已经因为持续过载掉过一次扭矩。

本次改动的验证与遗留