structural-shapes 0.2.0

Common structural shapes
Documentation

Build Status Crates.io docs.rs

About

This package provides utilities for a variety of different structural shapes. Currently, the following are included:

  • Pipes
  • Box Beams
  • I-Beams
  • Rods
  • Composite Shapes

Usage

Here are some basic examples of usage

 fn main() {
    let x = structural_shapes::Rod{radius: 1.0, center_of_gravity: (0.0, 1.0)};
    println!("cross sectional area: {:?}", x.area());
    println!("moment of inertia: {:?}", x.moi_x());
 }

You can also create composite shapes that are composed of more than one primitive:

fn main() {
    let mut x = CompositeShape::default();
    x.add(StructuralShape::Rod {
        radius: 2.0,
        center_of_gravity: (2.0, 0.0),
    });
    x.add(StructuralShape::Rod {
        radius: 2.0,
        center_of_gravity: (-2.0, 0.0),
    });
    println!("cross sectional area: {:?}", x.area());
    println!("moment of inertia: {:?}", x.moi_x());
}