feat(arm): P04顶缘改R3圆角+竖直前壁消除刀刃状凸起,并带上承压面R35圆腔等未提交改动
用户截图圈的"非常尖的凸起"实测是顶面前沿一条刀刃:2026-10-04 把前脸改成与顶面 相切的 Hermite 弧面,但只有 9.0mm 的 Y 预算却要吸收 120.5mm 落差,90° 转弯全挤在 起点——离开顶面 0.28mm 就转到 45°,起始曲率半径 0.571mm,Y=164.32 处顶面与前脸之间 料厚只剩 0.027mm。2026-10-05 的起点加密又抹掉了第一段 57° 折线那层意外钝化。 且历次只碰前缘一条棱,顶面左缘(X=11.5)与后缘(Y=91.5)仍是 89° 直棱。 现改为常规形状:顶面 -> 前侧 R3 圆角 -> 竖直前壁 Y=164.5 直落到 Z=566 -> Hermite (两端切线沿 -Z,G1) 顺收到 (155.5,526);顶面后缘对称再倒 R3,弧心切点按背面那条 0.24° 斜线取值以免露出台阶。crest 不再是独立最外凸点,尖从根上消失。 代价与核验:P04 体积 276.2 -> 296.2 cm3(+20.0,填掉原内凹腔);Y 最大仍 164.5, 与 P03 止脱环 R36.5/顶646.5 的齐平不变;13/13 单实体、静态干涉 8/8 零、97 颗螺钉。 J1 扫掠半径由 51.6 增至 57.2mm,动态行程数据(collide.json/travel.json)待重扫。 同时带上上一轮未提交的改动:承压面让位腔改 R35 圆腔、主腔统一 BAY_R=30.50、 M2/M3 前端压盖与围挡敞口侧切除、build_viewer 三副本逐个写盘(避免浏览器独占锁 导致"改了源码网页没变")。
This commit is contained in:
+38
-12
@@ -82,6 +82,24 @@ SEAT_R = R35_SEAT # 35.0 承压面段腔口 = 外壁
|
||||
SEAT_TOP = 1.0 # 圆腔顶端越过电机尾端面 1mm(吃掉开口处残片)
|
||||
BORE_Z0 = 5.5 # 座孔起点:R35 圆腔挖到此处,与 R30.15 座孔相接
|
||||
|
||||
# ---------------------------------------------------------------- 电机腔统一半径
|
||||
# 【2026-10-05f 接缝整改】腔内壁此前有 4 个互相打架的半径,逐层都能实测到台阶:
|
||||
# R35(承压面) -> R30.15(座孔) -> R30.25(前端定位) -> R30.50(前端盖让位)
|
||||
# 每一处单看都有理由,合在一起却让内壁变成「圆-台阶-圆-台阶-圆」,从腔里看全是横向接缝。
|
||||
#
|
||||
# 实测依据(scratch/probe_motor_env.py,剖切取 Rmax,112 层):
|
||||
# 电机本体从 z=0.43 到 z=55.9 **全程 R30.14~30.15 的正圆**,全程无任何台阶。
|
||||
# 即电机根本没有需要让位的形状变化 —— 那些台阶全是零件自己凭空造出来的。
|
||||
#
|
||||
# 故统一取 BAY_R = 30.50 = CB_R:
|
||||
# - 比电机实测最大半径 30.15 单边大 0.35(直径 0.7),打印件足以塞进去;
|
||||
# - 前端盖让位本来就是 30.50,沿用它可省掉一处台阶;
|
||||
# - 比 R30.15 座孔大 0.35,换来的是内壁从 z=-2.6 一直到前端只有一段正圆。
|
||||
# 代价:R30.15 座孔原本的单边 0.15 滑配变成 0.35,电机在座孔里的径向游隙变大。
|
||||
# 但电机前后已被后端板 4xM3x10 + 前端压盖 4xM3x8 双向面压夹死(见 motor_front_clamp),
|
||||
# 径向游隙不影响定位,倾倒自由度已归零。
|
||||
BAY_R = 30.50
|
||||
|
||||
PARTS = []
|
||||
CENTS = {}
|
||||
|
||||
@@ -279,15 +297,18 @@ class Joint:
|
||||
1. 方腔半宽 32.2 < 外壁 R35,在四个方位留下一圈 2.8mm 环形台肩;
|
||||
2. 方腔对角 45.5 > R35,四个角把外壁咬穿,形成四个凸角。
|
||||
两者叠加使内壁呈"圆—方—圆"三段,与同族零件的整体圆弧语言不一致。
|
||||
现改为**单一 R35 圆腔从承压面一直挖到座孔起点 BORE_Z0(=5.5)**,
|
||||
与其上的 R30.15 座孔正交相接,内壁成为两段同心正圆(仅一处正常台阶),
|
||||
承压面到外壁之间再无任何凸起或方角。P04 走自己那套刀具,本来就无方腔。
|
||||
|
||||
【2026-10-05f 承压面段也并进主腔,全腔只剩一段正圆】
|
||||
去掉方腔后内壁还剩两段:R35(承压面段 z=-2.6..5.5)+ R30.15 座孔(z>5.5),
|
||||
接缝处仍是一道 4.85mm 深的横向台阶。加上前端定位 R30.25、前端盖让位 R30.50,
|
||||
实测内壁依次是 35.0 / 30.5 / 30.2 / 30.5 / 30.2 —— 四道台阶(scratch/bay_step_profile.py)。
|
||||
根因是**电机根本没有那么多形状变化**:实测电机 STEP 全程 R30.15 正圆,
|
||||
那些半径全是零件自己造的。
|
||||
现改为**单一 BAY_R 圆柱从承压面一直挖到前端盖外**,
|
||||
SEAT_R / BORE_R / CB_R 三把刀合并成一把,承压面 -> 前端内壁全程一段正圆,
|
||||
接缝归零。承压面仍是 R35 的完整平圆盘(SEAT_TOP 段保留,只是不再往上延伸)。
|
||||
"""
|
||||
c = [cyl(BORE_R, BORE_Z0, COVER_Z - 3.5), cyl(CB_R, COVER_Z - 3.5, COVER_Z + front_pad),
|
||||
# 承压面段 + 尾部过渡段:SEAT_R(=R35 外壁) 圆腔,从承压面一路挖到座孔起点。
|
||||
# 取满 R35 才能让承压面与外壁齐平成一个平面;取小于 R35 就会留下
|
||||
# 一圈凸起的"围挡"(见 docstring)。
|
||||
cyl(SEAT_R, -REAR_SEAT, BORE_Z0)]
|
||||
c = [cyl(BAY_R, -REAR_SEAT, COVER_Z + front_pad)]
|
||||
return shape.cut(*[self.L(s) for s in c])
|
||||
|
||||
def rear_mount_holes(self, shape, t_plate=8.0, hole_d=2.8, cb_d=5.5, cb_depth=4.0):
|
||||
@@ -309,10 +330,15 @@ class Joint:
|
||||
cuts.append(self.L(cb))
|
||||
return shape.cut(*cuts)
|
||||
|
||||
def front_collar_pocket(self, shape, r_bore=30.25, z0=50.0, z1=56.5):
|
||||
"""Cut front locating collar pocket for the motor front rim."""
|
||||
p = cyl(r_bore, z0, z1)
|
||||
return shape.cut(self.L(p))
|
||||
# 【2026-10-03i】front_collar_pocket 已整段删除。
|
||||
# 它切的是 cyl(r_bore, z0=50.0, z1=56.5),而 Joint.pocket 切的是
|
||||
# cyl(BAY_R, -REAR_SEAT, COVER_Z+front_pad) —— 同半径、且完全是后者的子集。
|
||||
# 两次「同半径圆柱布尔相减」不会多挖掉材料,却会让 OCC 在腔壁上留下一条
|
||||
# s=50.0 的零宽棱:实测 P05 的 R30.500 腔壁裂成 5090.5 + 493.9 两张面,
|
||||
# P06 同样在 50.0 处裂开,而没调它的 P04/P08 腔壁是完整一张。
|
||||
# 这条棱在着色渲染里就是横穿腔内的一道线 —— 属于纯自找的接缝。
|
||||
# 前端定位环本身(前段 r30.5..35 的 6mm 环墙)不受影响:
|
||||
# 它由各零件自己的 lower_block / front_* 圆柱构成,不再靠这刀掏内孔。
|
||||
|
||||
def pinch(self, shape, fracs=(0.26, 0.58, 0.86), r_out=48.0, n=2):
|
||||
"""Radial M3 pinch screws through the boss wall onto the housing."""
|
||||
|
||||
Reference in New Issue
Block a user