← mecheval / task / f3-cap-snap-bottle-01
Snap-fit cap over a retention bead F · F3 · f3-cap-snap-bottle-01
fit · cap · snap-fit · axisymmetric · image-conditioned · form-lock
Prompt
Reference images of a bottle neck are attached. The neck has a retention bead — an annular bump (12mm OD over a 3mm height) — between a 10mm-OD lower neck and a 10mm-OD upper stub. Design a snap-fit cap that pushes down over the bead from above and is captured by it: in the as-installed pose, the cap's internal retention lip must sit just below the bead so that pulling the cap upward forces the lip to climb back over the bead. Requirements: - Single solid, single-root .vcad. - The cap's main internal bore must clear the 12mm bead with 0.1–0.4mm radial clearance (so a main bore diameter of 24.2–24.8mm). - At the open bottom of the cap (below the main bore, opposite the closed roof), the bore must narrow to an internal retention lip whose diameter is 0.3–0.7mm smaller than the bead diameter (so a lip inner diameter of 23.3–23.7mm). The lip should be 0.8–1.5mm tall. - The cap's outer diameter must be ≤ 28mm. - The cap's overall height (axial extent) must be ≤ 12mm. - The wall thickness everywhere must be ≥ 1.5mm. Output the cap in the host frame: neck axis is +Z, lower-neck base at z=0, bead at z=20..23, stub at z=23..27. Place the cap so its open bottom is at z=19 and the retention lip captures the bead from below — i.e. the lip's narrow inner section sits at roughly z=19..20.5.
Checks
0
valid_solid{
"type": "valid_solid"
}1
interference_volume{
"type": "interference_volume",
"host": "host_geometry",
"max_mm3": 80
}2
contact_area{
"type": "contact_area",
"host": "host_geometry",
"epsilon_mm": 0.5,
"min_mm2": 50
}3
envelope{
"type": "envelope",
"max_mm": [
28.5,
28.5,
12.5
]
}4
pull_retention_geometric{
"type": "pull_retention_geometric",
"host": "host_geometry",
"direction": [
0,
0,
1
],
"displacement_mm": 3,
"min_interference_gain_mm3": 15
}5
pull_force{
"type": "pull_force",
"host": "host_geometry",
"force_n": 5,
"direction": [
0,
0,
1
],
"duration_sec": 0.25,
"max_drift_mm": 100000
}6
dfm{
"type": "dfm",
"rules": [
"min_wall_1.5mm",
"no_undercut"
]
}Anti-cheese
{
"max_solid_count": 1,
"min_accessory_volume_mm3": 300
}
Limits
{
"max_tokens": 60000,
"max_wallclock_sec": 240,
"max_tool_calls": 60
}
Runs (0)
no runs yet for this task