forked from 1b-agent/fieldcraft-upstream
Engine: mesh.mirror reflects meshed bodies across a plane
The bodies' elements are reflected across a datum plane (or a point and normal) with fieldcraft_mesh::mirror and joined on it. The image is tagged as the design's body at the reflected place (found by volume and centroid, or named in `as`), its faces with that body's faces under them, so sets by face name reach both halves. Half a bar meshed hex8 or hex20 and mirrored has the whole bar's node and element counts and volume, and its bending deflection to 1e-12; tet4 and tet10 mirror valid and conforming. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UhhZMBTviDQxZvwnyP89fo
This commit is contained in:
1 parent
9fc8e27933
commit
0f99a1c687
6 files changed
+387
-3
No files matched your search
@@ -710,6 +710,12 @@ pub const CELLS: &[Field] = &[
|
||||
TOLERANCE,
|
||||
];
|
||||
|
||||
pub const MIRROR: &[Field] = &[
|
||||
json("plane", "Plane").req().hint(r#""Datum" or {"point": [x, y, z], "normal": [nx, ny, nz]}"#),
|
||||
references("bodies", "Bodies", C::Body).hint("every meshed body"),
|
||||
json("as", "Images").hint(r#"{"body": "image body"}; default: the design's body at the reflected place"#),
|
||||
];
|
||||
|
||||
pub const HEX_OCTREE: &[Field] = &[
|
||||
BODY,
|
||||
SURFACE,
|
||||
|
||||
Reference in new issue
Block a user