feat: query directional elastic modulus from validated material cards (#998)
* feat: validate physical material cards with sources and conditions * feat: query directional elastic modulus from physical material cards * fix: register physical material validation labels in complete locales * fix: register directional elasticity labels in complete locales * Add German and Korean labels for the material property commands --------- Co-authored-by: bherbruck <[email protected]>
This commit is contained in:
1 parent
377e12a059
commit
52fb5ac0e6
11 files changed
+228
-7
No files matched your search
+3
-2
@@ -1,6 +1,6 @@
|
||||
# Features
|
||||
|
||||
SolidCraft's commands by area, generated by `cargo xtask features` from the command registry (`solidcraft-cli commands`). **344 commands.** Planned (registered, not built yet): 6. Every command runs the same way from the toolbar, a script, `solidcraft-cli exec <id> '<json>'`, the control channel and MCP; parameters are in the [command reference](book/src/reference/commands.md) (`cargo xtask book`). Status and plans: [ROADMAP](../ROADMAP.md).
|
||||
SolidCraft's commands by area, generated by `cargo xtask features` from the command registry (`solidcraft-cli commands`). **345 commands.** Planned (registered, not built yet): 6. Every command runs the same way from the toolbar, a script, `solidcraft-cli exec <id> '<json>'`, the control channel and MCP; parameters are in the [command reference](book/src/reference/commands.md) (`cargo xtask book`). Status and plans: [ROADMAP](../ROADMAP.md).
|
||||
|
||||
## Sketch (99)
|
||||
|
||||
@@ -432,7 +432,7 @@ SolidCraft's commands by area, generated by `cargo xtask features` from the comm
|
||||
|---|---|---|
|
||||
| Delete Face | `face.delete` | SOLID › MODIFY |
|
||||
|
||||
## `material.*` (6)
|
||||
## `material.*` (7)
|
||||
|
||||
| Command | Id | Toolbar |
|
||||
|---|---|---|
|
||||
@@ -442,6 +442,7 @@ SolidCraft's commands by area, generated by `cargo xtask features` from the comm
|
||||
| Edit Physical Material | `material.edit` | – |
|
||||
| Delete Physical Material | `material.delete` | – |
|
||||
| Validate Physical Material Data | `material.properties.validate` | – |
|
||||
| Directional Elastic Modulus | `material.properties.directional` | – |
|
||||
|
||||
## `mesh.*` (1)
|
||||
|
||||
|
||||
@@ -125,3 +125,37 @@ specimen properties and graded design values. No handbook data/table is bundled.
|
||||
The [Khronos PBR material model](https://www.khronos.org/gltf/pbr) is a reference for
|
||||
the separate optical track. No third-party code, engineering dataset or asset is
|
||||
added by this implementation.
|
||||
|
||||
## Directional elasticity query
|
||||
|
||||
`material.properties.directional {card, direction: [x,y,z]}` reports Young's modulus
|
||||
in Pa for a uniaxial, small-strain constitutive test along a material-local direction.
|
||||
It returns the safely normalized direction, declared axes (`null` for isotropy), and
|
||||
the full validation/source/condition report. It neither assigns axes to a body nor
|
||||
predicts a part's displacement, failure, strength or safety factor. No solver or
|
||||
render capability is enabled. Missing elasticity refuses instead of inventing data.
|
||||
|
||||
For orthotropy, let n=(x,y,z) be the unit direction. With engineering shear
|
||||
compliance 1/G and the reciprocal Poisson convention above:
|
||||
|
||||
```
|
||||
1/E(n) = x^4/E1 + y^4/E2 + z^4/E3
|
||||
+ x²y²(1/G12 - 2 nu12/E1)
|
||||
+ y²z²(1/G23 - 2 nu23/E2)
|
||||
+ z²x²(1/G31 - 2 nu31/E3).
|
||||
```
|
||||
|
||||
This follows by applying stress sigma = n tensor n, computing strain with the
|
||||
symmetric compliance, then contracting n with strain and n. The implementation
|
||||
uses a Cholesky sum of squares for the normal contribution, avoiding cancellation
|
||||
between the positive diagonal and negative coupling terms. Shear contributions
|
||||
are also nonnegative. Isotropy returns E directly, independent of orientation.
|
||||
|
||||
Input directions must contain exactly three finite numbers and be nonzero; arbitrary
|
||||
magnitude is allowed. Max-component scaling avoids overflow or underflow while
|
||||
normalizing very large or tiny vectors. Unrepresentable compliance/modulus refuses;
|
||||
this finite-precision check does not establish a condition-number certificate.
|
||||
The card's test conditions still apply; changing direction does not extrapolate
|
||||
temperature, moisture, process, rate, damage or nonlinear behavior. Synthetic analytic
|
||||
tests cover principal axes, the isotropic limit and off-axis shear/coupling terms.
|
||||
No physical dataset or external implementation is included.
|
||||
Reference in new issue
Block a user