forked from 1b-agent/fieldcraft-upstream
demo video: a horizontal cantilever, checked against beam theory
The demo used the corpus I-beam, which is extruded along z and so stood upright. A new corpus part, cantilever-i-beam, is the same section on the YZ plane extruded along x, web upright: a sweep along a horizontal axis for the meshers, and a cantilever that bends downward on screen. The i-beam part is unchanged (its corpus row and the meshing tests keep it). The demo clamps it at x = 0 and loads the free end with 1000 N in -z through a kinematic coupling, and now checks the solution against beam theory and stops when it is off: tip deflection (bending plus shear) within 3 %, root bending stress (stress_xx along the top flange, extrapolated to the root, nodes from the Abaqus deck) within 2 %. docs/meshing/corpus.md regenerated with the new part. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NmAttHhUZTokgPeEJia8sm
This commit is contained in:
1 parent
025c826dd4
commit
357de3f7a5
5 files changed
+121
-40
No files matched your search
@@ -17,20 +17,27 @@ It honours `CARGO_TARGET_DIR`.
|
||||
What it does:
|
||||
|
||||
1. Builds `fieldcraft`, `fieldcraft-cli` and the testkit's `corpus` tool (release).
|
||||
2. Writes the corpus I-beam (`tests/corpus/i-beam`) as a `.solidcraft` design to a temporary
|
||||
folder with `corpus --part i-beam --design`.
|
||||
2. Writes the corpus cantilever I-beam (`tests/corpus/cantilever-i-beam`: 40 x 40 mm, 3 mm
|
||||
flanges, a 2 mm web upright, 200 mm long along x) as a `.solidcraft` design to a temporary
|
||||
folder with `corpus --part cantilever-i-beam --design`.
|
||||
3. Starts the app with `--control PORT` and `fieldcraft-cli mcp --connect 127.0.0.1:PORT`, and
|
||||
speaks MCP (JSON-RPC over stdio) to it. Every step is an MCP tool call: `open` the design,
|
||||
`mesh` (`hex_sweep`, 4 mm), `batch` (steel, a solid section, the root clamp, a kinematic
|
||||
coupling of the free end to a reference point loaded with 1000 N), `check_model`, `solve`
|
||||
coupling of the free end at x = 200 mm to a reference point loaded with 1000 N down, −z), `check_model`, `solve`
|
||||
(`static`), and `show_results` for the von Mises contours and the deformed shape, its `scale`
|
||||
stepped from 1 to 150 and back. Every picture is the MCP `screenshot` tool with
|
||||
`source: window` (the whole window drawn offscreen, `ui.capture`), turned to the `iso` or
|
||||
`right` view by its `view` argument.
|
||||
`front` view by its `view` argument.
|
||||
4. Encodes the pictures at 10 frames per second, each held for its stage, into the MP4 (H.264,
|
||||
1280 px) and the GIF (960 px, its own palette), and prints the tip deflection and the peak
|
||||
von Mises stress.
|
||||
|
||||
The theme is the app's default (dark). Beam theory for the same beam gives a tip deflection of
|
||||
0.143 mm in bending plus about 0.034 mm in shear (0.177 mm) and a root bending stress of 45 MPa;
|
||||
the clamped root adds a local peak above that.
|
||||
The theme is the app's default (dark).
|
||||
|
||||
The script checks the solution against beam theory and stops when it is off. Tip deflection:
|
||||
P L³ / 3 E I = 0.1429 mm in bending plus P L / G A_web = 0.0335 mm in shear, 0.1763 mm; the
|
||||
solution gives 0.1764 mm (within 3 %). Root bending stress: P L c / I = 45.0 MPa
|
||||
(I = 88 871 mm⁴); the solution's stress_xx on the top flange, fitted along the beam between one
|
||||
depth from either end and extrapolated to the root, gives 44.8 MPa (within 2 %). At the root
|
||||
itself the clamp, which stops the section's Poisson contraction, adds a local peak (62 MPa
|
||||
stress_xx, 56 MPa von Mises) that beam theory does not have.
|
||||
Reference in new issue
Block a user