1.1 What is STEP and ST-Developer?
The Standard for the Exchange of Product Model Data (STEP) is a family of ISO international standards that describe how to represent and exchange digital product information. In 1983, STEP merged earlier national efforts such as IGES, VDAFS, and SET. The first parts of STEP were published in 1994, including the EXPRESS information modeling language and the first application protocol, AP203, for exchanging BREP mechanical CAD geometry. Additional parts followed to address new technolgies, like Part 28 XML exchange (ISO 10303-28), and engineering information such as machine-tool control with STEP-NC AP238 (ISO 10303-238).
ST-Developer is a set of software tools to build, operate and maintain your STEP, IFC, CIS/2 and EXPRESS-defined tools, translators and databases. It contains programming bindings for C++, C, and Java, plus tools for testing data sets against verification rules and constraints, browsing through the contents of your data sets, building information models, and more.
The STEP Standard
Digital product data must contain enough information to cover a product's entire life cycle, from design to analysis, manufacture, quality control testing, inspection and product support functions. In order to do this, STEP must cover geometry, topology, tolerances, relationships, attributes, assemblies, configuration and more.
To accomplish this ambitious goal, STEP is a multi-part ISO standard. Many parts are complete and published, while more are under development. These parts cover technology, such as testing procedures, file formats and APIs, as well as content, such as geometry, features, PDM, and other industry-specific information. The key aspect of STEP is extensibility. STEP is built on a formal language that describes the structure and correctness conditions of any engineering information that needs to be exchanged.
Industry experts use this language, called EXPRESS, to detail the information required to describe products of that industry. These "Application Protocols" form the bulk of the standard, and are the basis for STEP product data exchange. In addition, the EXPRESS language can document constraints as well as data structures. These formal constraints are an explicit correctness standard for the digital product data.
Figure 1.1 shows the structure of the STEP standard. Infrastructure parts, such as the exchange file format (Part 21), are separate from industry-specific application protocols, such as the drafting AP (Part 202, also called AP202). The industry-specific portion is open-ended. APs are available for mechanical design, drafting, analysis, process planning, CNC machining, shipbuilding, architecture and building construction, with more APs in development.
Some key reasons why STEP is important:
- STEP is a standard that can grow. It is based on a language (EXPRESS) and can be extended to any industry. A standard that grows will not be outdated as soon as it is published.
- The EXPRESS language describes constraints as well as data structure. Formal correctness rules will prevent conflicting interpretations. STEP SDKs use these descriptions to create more robust, maintainable systems.
- STEP is international, and was developed by users, not vendors. User-driven standards are results-oriented, while vendor-driven standards are technology-oriented. STEP has, and will continue to, survive changes in technology and can be used for long-term archiving of product data.
ST-Developer
ST-Developer ships with pre-built STEP AP Class Libraries, ROSE C++ and Java class libraries for many STEP APs and other models like CIS/2 and IFC. You can start programming immediately, just by linking against the appropriate library. The ST-Developer programming libraries are:
- ROSE C++ Library -- For demanding CAD and data exchange applications. C++ classes generated from EXPRESS schemas mean fast access, and strong compiler type checking helps to build reliable applications. The ROSE library provides many advanced object search and traversal features such as USEDIN, early and late-bound access, greater control over STEP physical file handling, and AP interoperability extensions. Refer to the ROSE Library Reference Manual for more information.
In addition, ST-Developer ships with several extension libraries for ROSE applications, such as the Part 28 library for reading and writing XML, the Part 21 filter library for working on very large STEP Part 21 files out of memory, and the ROSE Log Window library for status messages in GUI applications.
- SDAI C Library -- Build applications using a small set of straightforward C functions to manipulate STEP data. No application protocol-specific structures or classes are used. Refer to the SDAI C Library Reference Manual for more information on SDAI C applications.
- ST-Developer for Java Library -- Using the EXPRESS compiler, you can build applications using Java classes. Strong compiler type checking helps to build reliable applications. Refer to the ST-Developer Java Library Reference Manual for more information.
- STEP AP and other Schema Libraries -- ST-Developer ships with pre-built ROSE C++ and Java class libraries for many STEP APs and other information models like CIS/2 and IFC. You can start programming immediately, just by linking against the appropriate library.
ST-Developer also includes a set of related tools, to perform various tasks on STEP data and EXPRESS definitions. This manual documents the following tools:
- EXPRESS Compiler -- Produce C++ definitions from EXPRESS information models, then use these classes with the ROSE library to build application software or object-oriented databases.
- EXPRESS-G Tools -- Construct EXPRESS-G diagrams from any EXPRESS information model, such as those in STEP, display, rearrange, and print them using a graphical editor.
- STEP Conformance Testing Tools -- Check STEP data sets for adherence to the STEP Application Protocols using these tools. These systematically evaluate EXPRESS constraints and derived attributes to verify that a data set is correct.
- Source Management Tools -- Manage and extend C++ class files, create makefiles, and perform other software development tasks.
- IGES and AUTO-CAD DXF Converters -- Use these file format converters to convert data from systems that produce IGES or DXF files into STEP physical exchange files and vice-versa.
1.2 Getting Started
The ST-Developer Release Notes contain setup instructions for each platform. In general, you must make sure that the ST-Developer tools can find support files. On Windows systems, the support files are installed when ST-Developer is installed.
ST-Developer for Windows includes the ST-Developer Control Panel, a graphical front-end to the tools described in this manual. This is available on the Start menu and has icons corresponding to each of the ST-Developer tools..
Each of these tools is described in detail in the subsequent chapters of this manual. When a tool is run from the control panel, any text printed by the tool will appear in the Output Pane . You can browse this output and copy it onto the clipboard for later use.
When a tool such as the EXPRESS compiler produces an error message with a file name and line number, you can double click on this message in the output box. The control panel will start the Windows Notepad editor, load the file into it and highlight the line where the error or warning condition was found.
On UNIX platforms, you tell the ST-Developer tools where to find support files using a special "logicals" file. This is normally run as part of your shell login scripts to set the variables.
On UNIX platforms, there are separate versions of this file for different shells. The Rose_Logicals file sets variables using the csh syntax, while the Rose_Logicals.sh file sets them using Bourne/Korn syntax. You should use them as follows. Replace /usr/local/steptools with the name of the ST-Developer installation directory:
% source /usr/local/steptools/Rose_Logicals # CSH users
% set path=($path $ROSE_BIN) # set path
$ . /usr/local/steptools/Rose_Logicals.sh # Bourne/Korn users
$ PATH=$PATH:$ROSE_BIN # set path
1.3 Manual Organization
This manual describes the executable tools included with ST-Developer. Consult the ROSE Library Reference Manual, SDAI C Library Reference Manual and ST-Developer Java Library Reference Manual for more information on the ST-Developer programming language bindings.
This manual is divided into the following sections:
- Part One: EXPRESS Tools
- Part Two: EXPRESS-G Tools
- Part Three: Conformance and Editing Tools
- Part Four: Data Management and Development Tools
Each section describes the command line and GUI tools, with examples, screen shots, and a complete listing of all options.
Font Conventions
Within the body of a paragraph, tools, functions, keywords, and filenames are denoted with bold san-serif font, such as librose.a or /usr/local/bin . Function names are shown with trailing parenthesis, such as findDomain() or name() . When referring to a C++ member function, the C++ scope notation is used, such as RoseDesign::save() or RoseObject::domain() .
We describe environment variable settings using either UNIX convention ( $VAR ) or the DOS/Windows convention ( %VAR% )
Arguments for command-line tools are shown in a fixed-width font as below. The tool name is shown in bold. Optional arguments are shown in square brackets. An ellipsis ( . . . ) indicates that an argument can be repeated as needed.
expfront [options] expfile1 [expfile2 ...]
Function prototypes are listed with each parameter on a separate line and the function name set off in bold as shown below. Optional parameters are listed in standard C++ notation showing the default value.
RoseAggregate * findObjects( RoseAggregate * list_to_fill, RoseDesign* design = <Current> );
Occasionally, functions must be described in a parameterized manner, with angle brackets indicating the parameterized portion of the function definition. For example, the following prototype is used for the RoseObject getInteger() , getString() , getObject() , etc. functions:
<type_ref> get<name>( RoseAttribute * att );
Programming examples are shown in a separate paragraph, in a fixed-width font:
/* Create a point using the default constructor
* and use the update methods to set its values.
*/
Point * point1 = pnew Point;
point1->x (1.0);
point1->y (0.0);
/* Create points using a different constructor,
* that fills in the values in one step. */
Point * point2 = pnew Point (2.5, 4.0);
Point * point3 = pnew Point (5.0, 0.0);
Sample terminal sessions are shown in the same format, and the command prompt is indicated with a percent sign (%).
% expfront -classes geometry_schema.exp
% cd classes
% mkmakefile geometry
% make
References
The ISO STEP standards documents are the ultimate reference for the EXPRESS language and the application protocols. These documents should be available from your national standards body or directly from ISO.
The following publications may be of interest to readers looking for additional information on the STEP standard, or the EXPRESS information modeling language:
- J. Owen, STEP: An Introduction , Information Geometers (47 Stockers Avenue, Winchester SO22 5LB, United Kingdom), 1993.
- D. Schenck and P. Wilson, Information Modeling the EXPRESS Way , Oxford University Press, New York, 1994.
If you have questions regarding the installation or use of ST-Developer or any other STEP Tools product, please contact us via electronic mail at:
support@steptools.com
In addition, you may wish to visit the STEP Tools Web Site at:
http://www.steptools.com/
This site has support files, tutorials, demos, sources for various documents, and other helpful material.