[family-assembly] Add three_jaw_scroll_chuck - #82
Conversation
Signed-off-by: 吴嘉顺 <jiashunwu1030@gmail.com>
|
Welcome, and thanks for the family PR! Three things that answer most questions:
中文:红 ✗ 点 Details 或看 validate 报告评论;本地 |
bench2 validatethree_jaw_scroll_chuckPreviews: the |
There was a problem hiding this comment.
(Consolidates my 07-29 comment review — one review to act on.)
-
Dimension check — does every spec.py number trace to the cited datasheet? Yes: all 12 rows match the DIN 6350 table cell-for-cell (catalogue p.3048 — the same drawing attached in this PR), including jaw length A = its H row. What's wrong is the typed table in issue #81: it contradicts the drawing attached right above it — "height" (50…260) appears in no row of that table (D is 32.5…135), "bolt circle" is off on all 12 rows (58 vs 63 … 580 vs 586), "center bore" on 7 of 12 (12 vs 15 at size 74 … 210 vs 240 at 630). Fix the issue body; keep the spec, and name its columns physical-quantity + symbol per #100 (
height_D,bore_E). Also shipNOTES.md— REVIEWING.md §4 requires it on a table-driven family. -
Assembly validity check — the 9 bodies are separate parts: they may touch, but no two may share volume, so I measured every pairwise intersection volume (must be 0). Non-zero at every size:
- body∩jaw 4,876–73,401 mm³ (~12–15 % of a jaw): the guideway
.box()atpart.py:252-256keeps the defaultcentered=True, which centres z too — the slots spanz ∈ [−1.5·guide_depth, −0.5·guide_depth], buried inside the body, never opening the front face (also why your front views show no radial slots). You already usecentered=(True,True,False)correctly atpart.py:74— single slip. Also bound travel vs slot length incheck(): at size 400 clamp 191 the jaw overruns the slot's outer end. - body∩scroll 1,122–105,941 mm³: scroll ID
max(1.12E, 0.19A)< cavity IDmax(E+0.08A, 0.22A)on all 12 rows (E/A ≤ 0.38), so the plate always overlaps the central sleeve. - scroll∩pinion ≤753 mm³ (the 12-gon's +Z vertex pierces the plate underside); at 630, body∩cover = 78,612 mm³ — register B=545 exceeds the cover disc 0.84·A=529 (B/A runs 0.70–0.865, so the proportion doesn't dominate the catalog column; assert it in
check()). - jaw∩jaw at small opening:
check()boundsjaw_open_fractionto [0,1] but never relatesclamp_dtojaw_width— jaws collide when clamp_d ≤ 0.577·jaw_width (reachable in hard, row 8 f ≲ 0.105: 6,170 mm³ measured). At the other end the jaws overhang the chuck OD (your own bbox column: 425.5 on a 400 chuck). Bound both incheck().
- body∩jaw 4,876–73,401 mm³ (~12–15 % of a jaw): the guideway
-
Mechanism check — a scroll chuck works as: square key turns a pinion → its bevel teeth mesh a crown ring on the scroll's back → scroll rotates → the Archimedean spiral on its front engages rack teeth under each jaw → three jaws feed radially in their guideways together. So each interface must exist and be engaged (interleaved or touching — not floating, not fused). None is:
- scroll→jaw: four concentric broken rings vs six straight grooves pitched by jaw_length, floating 0.6–4.9 mm apart — concentric rings give zero radial feed. Make it one coarse spiral + concentric-arc grooves at the same pitch, interleaved 1–2 mm.
- pinion→scroll: the scroll's back is smooth, nothing to mesh — add a toothed ring at the pinion radius, tangent with clearance.
- retention: jaws sit in open slots with nothing holding them axially (needs a two-tier slot + T-foot); the scroll floats 33–80 mm from the cover that should sandwich it; pinions have 1.3–6 mm radial air, no journal fit.
Enclosed scroll/pinions are invisible in all four benchmark views — whether internals should be scored bodies is a maintainer call.
|
Recommend take 1min to read: https://en.wikipedia.org/wiki/Lathe |
The scroll plate now carries a true Archimedean thread on its face (pitch from the BB jaw table's D band) and a straight-bevel crown ring on its back; the three radial pinions are straight-bevel gears meshing that ring with a shared pitch-cone apex on the chuck axis (tan(delta) = Zw/Zp, Zw solved per row and kept a multiple of 3 so all three pinions stay in phase). Jaw undersides carry arc teeth at the local spiral gap radii, giving the real 1/3-pitch stagger between the three jaws. Guideways are two-tier T-slots open through the face, the scroll is axially sandwiched with running clearance, pinions seat in stepped journal bores, the DIN register is a rear recess, and mounting holes are blind from the back. Params renamed to quantity+symbol (BenchCAD-org#100) with jaw table D/E added as catalog rows; NOTES.md documents the symbol map and every derived proportion. Measured on all 12 catalog rows at both A1 extremes: 9 solids, zero pairwise intersection volume, spiral-jaw interleave gap = design clearance, crown-pinion backlash 0.18-1.6 mm. bench2 validate passes. Signed-off-by: BenchCAD <benchcad@users.noreply.github.com>
|
Pushed a rework of the internals (and updated the body to match). The previous scroll plate carried four broken concentric rings on a smooth-backed disc, and the pinion was a 12-sided prism — concentric rings give zero radial feed and there was nothing anywhere to mesh, so the modelled chuck could not work. On a real scroll chuck the drive is: key → radial bevel pinion → bevel crown ring on the scroll's back → flat Archimedean spiral on its face → arc teeth under each jaw (the DURO-M cutaway on catalogue p.3035 shows exactly this; a scroll-plate spare part shows the two faces well: https://www.carbideanddiamondtooling.com/Scroll-Plate-for-3-Inch-Scroll-Chuck--ID-658-7-887-303_p_423521.html). What changed: the scroll face is now a true Archimedean thread (pitch taken from the BB jaw table's D band), its back carries a straight-bevel crown ring, and the pinions are straight-bevel gears meshing it with the shared pitch-cone apex on the chuck axis (tan δ = Z_w/Z_p; Z_w solves the axial budget per row and rounds to a multiple of 3 so all three pinions are in phase — Z_w 45–84, δ ≈ 75–82° across the 12 sizes). Jaw undersides carry arc teeth at the local spiral gap radii, which reproduces the real ⅓-pitch stagger between jaws 1/2/3. Also fixed from the earlier review: guideways are two-tier T-slots that actually open through the face (the old cut was z-centred and buried inside the body), the scroll is sandwiched with running clearance instead of floating tens of mm, pinions seat in stepped journal bores, the DIN register is a recess rather than a boss, mounting holes are blind from the back so the front face stays clean, and the jaw noses are narrowed per the BB plan view — which is also what lets three jaws meet at clamp_d = 2 mm without touching. Measured on all 12 rows at both A1 extremes: 9 solids each, zero pairwise intersection volume across all 36 body pairs, spiral↔jaw interleave gap equal to the design running clearance (0.20–0.54 mm by size), crown↔pinion backlash 0.18–1.6 mm. bench2 validate passes. Spec params renamed to quantity+symbol per #100 ( |
Family
three_jaw_scroll_chuck—family-assemblyOfficial manufacturer references — copied from Family Issue #81
Only the two primary review references are reproduced here; the complete reference set remains in Issue #81.
RÖHM DURO-M product and cutaway reference (the cutaway on the right page shows the drive train this PR models: key → radial bevel pinion → bevel ring on the scroll back → spiral → jaw teeth)
Primary DIN 6350 dimensional drawing and table
Generated — benchmark views (what the model sees)
Image below —
preview_views.png: four benchmark viewing directions used by the model.Generated — easy / medium / hard samples
Image below —
preview.png: easy samples are the top row, medium samples are the middle row, and hard samples are the bottom row.Extremes — smallest & largest sampled instances
Image below —
preview_extremes.png: the smallest sampled instance is the top row, and the largest sampled instance is the bottom row.Three-view + iso — hard example
Image below —
preview_hard_zoom.png: front/side/top/iso of a hard example (the benchmark views are all diagonal isos).Per-part renders (assembly evidence)
Image below —
preview_parts.png: every component in isolation next to the assembly — body, cover, scroll plate from both sides (spiral face / crown ring), jaw from both sides (steps / underside arc teeth), bevel pinion.How it's parameterized
catalog_indexis discrete and maps one-to-one to all 12 official DIN 6350 cylindrical-centre-mount catalogue rows, sizes 74–630.outer_dia_A,register_dia_B,register_depth_C,height_D,bore_E,bolt_circle_F,mount_thread_G,key_square_K; jaw BBjaw_length_A…jaw_step_H, including the previously unused BB rowsjaw_serration_D(drives the scroll thread pitch) andjaw_tongue_E(drives the T-flange height).refine()copies the selected row's values verbatim; no dimensions are mixed across rows.jaw_open_fractionis the only continuous operating-state parameter:clamp_d = grip_min_A1 + jaw_open_fraction × (grip_max_A1 − grip_min_A1).part.py:_layout(mirrored incheck()): crown tooth count Z_w solves the axial budget and rounds up to a multiple of 3 (so all three pinion meridians are in phase), module m = 2·R_ring/Z_w, tan δ_wheel = Z_w/Z_p with Z_p = 12, shared pitch-cone apex on the chuck axis. Z_w ranges 45–84, δ_wheel ≈ 75–82° across the rows. Details and every proportion:NOTES.md.check()also bounds nose collision (clamp_d ≥ 0.16·jaw_width_B), guideway engagement (≥ 30 % of jaw length) and spiral engagement (≥ 2 pitches); all 12 rows stay feasible over their full published A1 range.Engagement verification (all 12 rows × A1 extremes)
Measured with OCC boolean/extrema probes on every row at
jaw_open_fraction0.15 and 0.85:bench2 validate three_jaw_scroll_chuck→ PASS (12-row coverage, distinct difficulties, 9 non-degenerate solids per instance).Visible modeling simplifications and constraints
NOTES.mdlists every derived proportion.Checklist
bench2 validate three_jaw_scroll_chuckpasses locallypreview.png,preview_views.png,preview_extremes.png,preview_hard_zoom.png,preview_parts.pngregenerated from the current geometry and manually inspectedfamily.jsondeclares"solids": 9; every sampled body is non-degeneratePARAM_SPEC.sourceandcheck()rule cites the catalogue or an honest proportion/operating-state derivationdesigns/three_jaw_scroll_chuck/Sources used