← all reports
Blade v4 rebuilt 2026-08-21 parametric in length

Blade v4 Parametric

Four operator instructions went into this revision, and one of them broke a documented constraint — which the constraint then caught, in the form of a 120 mm build whose tip collapsed to zero thickness. Length is now a free parameter that holds the mount fit intact.

01 — Download

Repo: 02-hardware/compliant-gripper-long-jaw/, branch fix/gpu-inference-and-tunnel-auth-20260821, commit e5043f3. The 100 and 120 mm files are proof the parameterisation works — they are not a recommendation to print.

!

2026-08-22 晚:两项改动,此前下载的文件全部作废

① 摩擦花纹换成菱形点阵,铺到尖端、盖住凸起平台。原横齿停在 d=21.5, 而凸起从 d=15 开始 —— 抓杯的主接触斑整块是光面,最需要摩擦的地方反而没有。
② 另出四档软化件(见 09 节),应对 TPU 98A 太硬。
凸起段仍是 15 mm(官方件实测值)。当日曾改到 18 补偿 98A 压不塌, 复议后回退:18 不是实测值;且平台是沿刀身加长的,抓小物体时接触点在尖端 那一小块,多出的 3 mm 碰不到 —— 对症的是花纹铺到凸起,不是加长平台。

Checked before release — 2026-08-21, on this exact file

Every line below was measured off Blade_v4_final.stl as uploaded here.

CheckTargetMeasured
check_meshwatertight, 1 shellPASS, 1 shell
Inner-rail hook — must be a square 90° cutstep at d = 153.395 mm step @ d=15.25
Outer rail — parabola, no step anywheremonotone0.912 → 0.372, no jump
Hole spacing10.000 mm9.987 (facets)
Hole centre → bottom face2.500 mm2.493 (facets)
Hole diameterØ2.800 mmØ2.798
Solid width at z = −26 (load path)> 20 mm27.399 mm
Tip thickness at d = 1 mm> 02.214 mm
Rib cavitiesreach the foot17, lowest z = −23.37
Cavity tip-side wallfollows the rib45.2°/47.0° — rib angles

The 9.987 / 2.493 / Ø2.798 readings are the polygonal facets of a Ø2.8 cylinder measured as though it were a true circle — nominal values in the source are exactly 10.000, 2.500 and Ø2.800. The 100 and 120 mm builds pass the same list.

02 — The tip curve: three attempts

Two were rejected by eye before the right one

AttemptShapeWhy it was wrong
Steptooth jumps to 0Left a ledge — measured as a 3.4 mm jump between d=12 and 13. 「不是这样突然往里凹进去一下」
smoothstep u²(3−2u)S-curveZero slope at both ends forces an inflection in the middle and leaves a flat plateau after the draw-in. Smooth, but it reads as an S. 「尖端是平滑 S 形收进去, 这个不对吧」
Parabola u²continuous draw-inRoot end: f=0 and f′=0, tangent to the rail, no kink. Tip: f=1 at maximum slope — drawing in the whole way, no plateau. Constant second derivative, so no inflection. 「平滑内收整体是类似抛物线的感觉」

Both rails use the same parabola; only the span differs — the inner rail over 12 mm, the outer over 20 mm. That keeps the separate spine treatment asked for earlier: the grip face turning at a station is the design, the load-bearing spine turning at the same station is a stress raiser. Spreading the spine's bend over 20 mm piles material up through the turn instead of thinning it there.

03 — Drawing

12.0 12.8 20.0 89.0 总长 9.99 2ר2.80 2.49 孔心→底面 28.00 装配脚 ← 抓取面 Blade v4 · 侧视 · mm · 轮廓与尺寸均取自成品 STL 尖端三段 12.0 内梁 平台 + 90° 钩 12.8 尖端实心 · 边界顺肋 20.0 外梁 抛物线内收 最靠尖端空腔两边 45.1° / 47.0° — 都是肋角
Millimetres, traced from the shipping mesh. Grip face on the left. The two draw-in spans are marked separately — inner rail 12 mm, outer 20 mm.

04 — Renders

凸起平台 — 菱形点阵铺满
凸起平台 — 菱形点阵铺满 — 抓杯的主接触斑。改前整块光面:横齿停在 d=21.5,而凸起从 d=15 开始
尖端 — 凸起段 15 mm
尖端 — 凸起段 15 mm — 平台 d=0..15 到 90° 钩,实测跳 3.395 mm @ d=15.25;外梁仍是抛物线
刀身花纹
刀身花纹 — DIA_H=0.35 薄薄一层,节距 2.0,隔行错开半节距 → 菱形而非方格
钩面特写(内侧)
钩面特写(内侧) — 钩面两侧各留 0.6 节距空带 —— 锥体骑在 90° 棱上会让 CGAL 崩溃
侧视 — 扇形全貌
侧视 — 扇形全貌 — 肋向内延长线交于一点;根部水平边界不变
根部
根部 — 补实顶与第一条肋 0.000°
等轴测
等轴测 — 整体
四分之三
四分之三 — 总长 89.0 mm,宽 23.2 mm
安装孔
安装孔 — Ø2.80,孔距 10.000,孔心距底面 2.500
脊背
脊背 — 外梁连续无折角

05 — Ribs reach 10 mm further down

Two more ribs, not the same ribs slid downward

「靠近底部实心的范围太多了, 可能用肋条至少覆盖掉1cm」

 BeforeAfter
Lowest rib cavityz = −14z = −23.37 (boundary now horizontal)
Rib cavity count1117
Solid width at z = −2627.445 mm27.399 mm
ROOT_SOLID_LEN / ROOT_FILL10 / 120 / 2

Ribs are now a true fan: every rib's inward extension passes through one focus, solved from two constraints — the first visible rib is parallel to the foot (0.000° measured) and the tip rib sits at 47°. The spacing between rib angles shrinks from 4.4° to 1.6° toward the tip: dense at the root, opening toward the tip. Before this, the layout was a uniform ramp (2.410° per rib, no focus) and the lowest visible rib sat at 8.46°.

!

The last row is a safety line, not a statistic

The archive records ROOT_SOLID_LEN = 4 once squeezing the solid width at z = −26 down to 7.47 mm, leaving a narrow neck at the highest-stress point. It is now driven to 0, but ROOT_FILL's wedge still guards the junction — measured 27.325 mm. Re-measure this after any change to length or to those two parameters. Below 20 mm, back it out.

06 — Length is a parameter

One quantity had to be back-solved, or nothing else holds

RAIL_SLOPE means "outward drift per unit arc length". As a constant, a longer blade keeps drifting: S_LEN 83 → 114 moved the tip rail from −2.96 to +1.09 and took the whole mating face with it, voiding the fit against the mount. It is now solved from a fixed tip position instead:

_R = (X_TIP_RAIL - X_IN) / S_LEN
RAIL_SLOPE = _R / sqrt(1 - _R²)        # gives 0.1316 at S_LEN=83, measured 0.1317
S_LENTotalTip rail xTip thicknessWidth
8388.97−6.5601.7323.00
93.899.89−6.5541.6523.00
114120.25−6.5411.5423.00

Tip rail x holds to 0.02 mm across a 31 mm change in length. That column is the test. Total length tracks the target; width and tip thickness stay put; rib count rises.

A constraint that had been written down wrong

The rule used to read TIP_SOLID_LEN > LIP_BLEND_OUT. It came from a real failure — a mid-revision build collapsed to tip thickness 0.000, which check_mesh passed and only the dimensional check caught. But that build's outer rail was a smoothstep, which is not tangent at its root end and cannot close out cleanly. The length was the coincidence; the curve shape was the cause.

Tested rather than argued: a part with TIP_SOLID_LEN = 14 against LIP_BLEND_OUT = 20 — the old rule violated outright — passes check_mesh, measures the same tip thickness as the conservative version, and shows zero extra loops at the tip. The real condition is “the outer transition curve is tangent at its root end”, which the parabola satisfies. Ribs now reach 9 mm further toward the tip.

07 — The cavity boundary follows the last rib

Not a flat cut across the blade

「尖端实心部分的边界可以按照最靠近的那个肋条来, 就是边界顺着肋条的形状」

The tip-side edge of the rib cavity used to sit at S_LEN − TIP_SOLID_LEN, a plane perpendicular to the blade. Ribs land on RIB_S0 + n·RIB_PITCH, and the two generally do not coincide — leaving a short rib-less stub whose tip-side wall was that flat plane. It reads on a render as though the part had been sliced off square.

S_RIB_END = S_LEN - TIP_SOLID_LEN;
S_CAV_TIP = RIB_S0 + floor((S_RIB_END - RIB_S0) / RIB_PITCH) * RIB_PITCH;

Snapped to the last rib station — and, since 2026-08-22, actually cut by two half-spaces rather than merely aligned: the tip end by the last rib's own plane, the root end by a horizontal plane parallel to the foot (the operator caught both: the root edge was slanted at 7.5°, and the tip still leaked a 1 mm slanted sliver). Four traps, each found by measuring: a cut plane alone only shortens the slanted face — the stock must first extend past the cut; the extension must run along the sweep direction or the kink itself reads as a 7.5° edge; the horizontal cut must sit at the outer corner of the body's bottom section (cutting at the first rib's top left a void — z=−24 width collapsed to 1.94 mm before this was caught); and Z_ROOT_TOP, the fill target and the fan's anchor rib must all be solved together. After the fix: zero 7.5° edges anywhere, root boundary 0.000°, z=−24 width 27.18 mm, all three lengths.

Full breakdown of what scales, what is pinned to the mount or to the cup, and a thirteen-item check to run after changing length: Parametric Design Rules.

08 — Print

Unchanged from the previous pack, and these are the original designer's 3MF settings rather than recommendations: TPU, 0.20 mm layers, 6 wall loops, 25% grid infill, 240 °C / 35 °C bed, supports off, laid flat with the 10 mm face on the bed so the layer lines run across the bending direction. Two pieces. The sleeve differs: TPU 85A, 225 °C, 4 loops, textured face upward.

!

Still worth checking before committing plastic

The sleeve costs 18.68 mm of jaw opening across the pair and nobody has confirmed a 90 mm cup still fits. HOLE_DX and FLATTEN also remain at 0 — the first waits on a single-number reading of the original blade, the second on the A and T measurements.

09 — 四档软化件(应对 TPU 98A)

料硬 4~8 倍,就把结构做柔同样的倍数

背景与实测见 为什么这一版硬得弯不动

WALL_T / RIB_T / PITCH实测内梁实测外梁实测肋厚肋数最薄处软化
base2.0 / 1.6 / 4.02.452.052.85175.1 条线1.0×
A1.6 / 1.2 / 4.01.891.632.24174.1 条≈2.1×
B1.4 / 1.2 / 4.51.671.432.20153.6 条≈2.6×
C1.2 / 1.0 / 5.01.371.221.91133.1 条≈4.4×
D1.0 / 0.9 / 5.51.191.021.68102.5 条≈6.7×

五档 check_mesh 全 PASS 水密单壳。安全项四档全部不变: 尖端 d=1 厚 2.214 mm、z=−26 实心宽 27.40 mm(安全线 20)、钩面跳 3.616 mm。 梁变薄没有动到受力最大的根部 —— 那里是实心补实段,不受 WALL_T 影响。

!

D 档打印前必看

D 档最薄处只有 2.5 条线宽(0.4 喷嘴)。半条线放不下,有些切片器会 直接漏打薄壁,梁会断。打之前在切片预览里逐层确认,并打开 Detect thin wall(Orca)/ Print Thin Walls(Cura)。

另外:改墙圈数没有用。4 圈和 6 圈对 2.0 mm 的梁字面相同(都填满), 连降到 2 圈也只软 0.4% —— 掏掉的全在中性轴上。真正的旋钮是 WALL_T

怎么选:先做挠度测量(两片装配脚压桌沿下、尖端挂同一重物、侧面量下沉), 倍数 = 旧件下沉 ÷ 新件下沉,再对号入座。想省一轮就直接打 C 档, 它覆盖最可能的区间。别直接跳 D —— 软化会牺牲夹持力上限,取刚好够的那一档。