#step #cad #stp #file-reader

bin+lib iso-10303

A Rust crate for generating STEP reader code

7 releases (breaking)

0.5.0 May 28, 2021
0.4.1 May 27, 2021
0.4.0 Jan 31, 2021
0.3.0 Oct 12, 2020
0.0.0 Sep 4, 2020

#1987 in Parser implementations


Used in 2 crates

MIT license

350KB
2.5K SLoC

Crates.io Docs

A rust crate for reading STP/STEP CAD files.

STEP (Stadndard for Exchange of Product model) is a standard for describing product data and is formally defined in ISO-10303.

Design

Schema files are written in EXPRESS language. We write an EXPRESS parser to read a schema defination, then generate a Rust code file which contains data type definations, trait impls and a reader to read stp files.

Run example:

cargo run --features=gencode --bin gencode schemas/example.exp examples/family/reader.rs
cargo run --example family

Generate reader code:

cargo run --release --features=gencode --bin gencode schemas/AP214E3_2010.exp parts/src/ap214.rs Ap214
cargo run --release --features=gencode --bin gencode schemas/AP203E2_November_2008.exp parts/src/ap203.rs Ap203
cargo build --workspace

Generate dot graph:

cargo run --release --features=gengraph --bin gengraph schemas/AP214E3_2010.exp graphs/ap214.dot
cargo run --release --features=gengraph --bin gengraph schemas/AP214E3_2010.exp graphs/curve.dot Curve

STEP related resources:

Dependencies

~5MB
~85K SLoC