[cad-linux] STEP

  • From: Christopher Sean Morrison <brlcad@xxxxxxx>
  • To: cad-linux@xxxxxxxxxxxxx
  • Date: Tue, 06 Apr 2010 10:55:10 -0400

>Actually if someone here could give a brief explanation
>of how step works and good docs to look at, it might
>be pretty useful...

STEP is a detailed specification that intently covers the entire product 
design, development, and manufacturing pipeline for product model data.  What 
that basically means is that  it's meant to cover anything and everything 
related to CAD/CAM/CAE/PDM/PLM.

In order to support such a big range of information, STEP is broken up into 
many "application protocol" parts that describe a particular subdomain.  For 
example, one of those parts covers how to describe 3D hierarchical CAD 
geometry.  Another part covers how to write STEP data out to a file.  Another 
part covers simple 2D drawings. Another covers how to validate whether a STEP 
file contains CSG entities.  And so on..

In all, there are presently about two-dozen well-defined application protocols 
covering mechanical design, manufacturing, domain-specific information 
(architectural, electric, piping, ships, ..), and product life cycle support 
that are of immediate interest from a CAD perspective.  There are about 100 
application protocol parts in all that have been identified to cover all 
domains including testing and validation.  Wikipedia actually provides a very 
decent overview:

http://en.wikipedia.org/wiki/ISO_10303
http://en.wikipedia.org/wiki/List_of_STEP_(ISO_10303)_parts
http://en.wikipedia.org/wiki/ISO_10303-21
http://en.wikipedia.org/wiki/ISO_10303-22
 
The STEP file format is basically a markup language like XHTML but instead of 
using XML and describing web content, it uses a markup language called Express 
and describes CAD data.  So basically, you implement an Express parser to read 
files in.  Once you read in files, you implement processing support for your 
data types.  From there, you do what you like in your own application.

NIST did most of the hard work by implementing an Express parser and STEP 
processing layer that basically provides an open source implementation of the 
core parts needed for CAD purposes.  As we've already made a slew of fixes and 
enhancements to their code for BRL-CAD's STEP support, we've taken over 
maintainership for future development.

Cheers!
Sean


Other related posts: