10 releases
0.2.3 | Feb 18, 2023 |
---|---|
0.2.2 | Jan 9, 2022 |
0.2.1 | Mar 12, 2021 |
0.1.5 | Feb 6, 2021 |
#786 in Math
Used in 2 crates
(via trussx)
21KB
395 lines
About
This package provides utilities for a variety of different structural shapes. Currently, the following are included:
- Rods
- Rectangular bars
- Pipes
- Box Beams
- I-Beams
- Composite Shapes
Usage
Here are some basic examples of usage
use structural_shapes::StructuralShape;
let x = StructuralShape::new_rod(1.0).with_cog(0.0, 1.0);
println!("cross sectional area: {:?}", x.area().value);
println!("area moment of inertia: {:?}", x.moi_x().value);
println!("polar moment of inertia: {:?}", x.polar_moi().value);
You can also create composite shapes that are composed of more than one primitive:
use structural_shapes::{CompositeShape, StructuralShape};
let x = CompositeShape::new()
.add(StructuralShape::new_rod(2.0).with_cog(2.0, 0.0))
.add(StructuralShape::new_rod(2.0).with_cog(-2.0, 0.0));
println!("cross sectional area: {:?}", x.area().value);
println!("area moment of inertia: {:?}", x.moi_x().value);
println!("polar moment of inertia: {:?}", x.polar_moi().value);
Dependencies
~1.5MB
~29K SLoC