forked from stepcode/stepcode
This is the STEP (ISO10303) Class Library, which generates C++ from EXPRESS schema.
License
Ivie/StepClassLibrary
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
*********************************************************************** Step Class Library v0.5 -- http://github.com/mpictor/StepClassLibrary * What is SCL? SCL reads ISO10303-11 EXPRESS schemas and generates C++ source code that can read and write Part 21 files conforming to that schema. In addition to C++, v0.5 includes experimental support for Python. * SCL is packaged along with some other tools. See "THE NIST STEP TOOLSET", below. In particular, Data Probe requires InterViews, an obsolete UI toolkit. I (mpictor) have not had luck building the data probe with it. It may be more productive to replace InterViews with a modern toolkit such as Qt. I expect that this would be non-trivial. * Much of the work to update SCL has been done by the developers of BRL-CAD, and SCL was originally created at NIST in the 90's. * Build system uses only CMake now: configure, Makefile, and all autotools files have been removed, as has mkProbe. * Building and testing SCL - see the INSTALL file *********************************************************************** *********************************************************************** CODING STANDARDS SCL's source has been reformatted with astyle. When making changes, try to match the current formatting. The main points are: - compact (java-style) brackets: if( a == 3 ) { c = 5; function( a, b ); } else { somefunc( ); } - indents are 4 spaces - no tab characters - line endings are LF (linux), not CRLF (windows) - brackets around single-line conditionals - spaces inside parentheses and around operators - return type on the same line as the function name, unless that's too long - doxygen-style comments (see http://www.stack.nl/~dimitri/doxygen/docblocks.html) If in doubt about a large patch, run astyle with the config file misc/astyle.cfg. Download astyle from http://sourceforge.net/projects/astyle/files/astyle/ *********************************************************************** *********************************************************************** Notes/TODO items specific to the STEP libraries as included in BRL-CAD: * Original build system has been replaced with Makefile.am and configure.ac files in the style of BRL-CAD's autotools build system. * Changes have been made to src/express to get it compiling with the output of different versions of lex/flex/bison. These changes are not yet tested in terms of impact on functionality and should be a starting point for any debugging of EXPRESS parsing issues. * Of the original test code, only p21read has been incorporated into the new build system, but they are still present in src/test * Express and exppp header files have been relocated to subdirectories in include. The names of the library files being built have been altered, and clstepcore and cleditor now build as separate libraries. * Numerous minor changes have been made, mostly including stdlib and other required files. *********************************************************************** ===================================================== Much has changed since README.scl was written. However, it is reproduced in its entirety below. ===================================================== README.scl (top level README) February 1998 THE NIST STEP TOOLSET ===================== Included in this release of the NIST STEP Toolset are STEP Class Library (SCL) fedex_plus fedex_idl fedex_os Data Probe application Part 21 Reader application mkProbe script NIST EXPRESS Toolkit NIST EXPRESS Pretty Printing Toolkit The focus of our work since our last release has been on developing a reference implementation of the binding of EXPRESS to C++ and IDL as specified by STEP's Parts 23 and 26 respectively. To this we have added a persistence capability (based on the ObjectStore OODB from Object Design, Inc) and a distribution capability (based on Orbix by Iona Technologies, Ltd). We also experimented with the Open OODB from Texas Instruments and with DSOM from IBM. The STEP Class Library (SCL) and fedex_plus are used to build STEP-related applications in C++. They support STEP Parts 21 (the exchange file format), 22 (the functional specification of STEP's Standard Data Access Interface, SDAI), 23 (the C++ binding to SDAI), and 26 (the IDL interface to SDAI). fedex_plus is an application of the NIST EXPRESS Toolkit (based on STEP Part 11) which generates a C++ class library representation of an EXPRESS schema based on STEP's Part 23. The generated classes work with the STEP Class Library. The NIST EXPRESS Pretty Printing Toolkit is used to format and output EXPRESS. fedex_os is used to generate software (in addition to fedex_plus) needed to use SCL with the ObjectStore OODB. fedex_idl translates EXPRESS to the Interface Definition Language (according to Part 26) for use with Orbix. The Data Probe software and mkProbe script are used to generate schema-specific class libraries (a.k.a. "Schema Class Library"), Data Probe editors, and Part 21 file readers. mkProbe generates a C++ library representing a schema (using fedex_plus) and links the schema library with other libraries of the SCL and Data Probe to create a schema specific editor, known as a Data Probe. The Data Probe is a graphical editor for STEP data; it is used to browse and edit data instances of the objects in an EXPRESS model. It may also be used to visually browse the objects contained in the EXPRESS schema itself. Data Probes are X Windows-based and use the InterViews Toolkit from Stanford University. The Data Probe source code was designed with reusability in mind. The runtime-code uses three class libraries: the STEP Class Library (developed at NIST), the InterViews Toolkit (user interface developer's toolkit from Stanford), and a standard C++ Class Library. The NIST STEP Class Library is divided into component libraries including STEP Core, Editor, Utilities, Data Access Interface, Interviews extensions, and Probe. The STEP Core, Editor, and Utils libraries can be used without the user interface libraries (Interviews extensions and Probe) for applications needing to represent the EXPRESS data structures. At this point the Data Access Interface is a partial implementation of SDAI's Session schema. Dependencies between these modules have been minimized so that an executable program, the Data Probe, can be easily reconfigured to support different conceptual schemas. We have experimented with replacing the Interviews-based interface with a tcl interface with good success; however, it is not in our work plan to complete. If anyone is interested in extending the toolkit with a more modern interface, we would be glad to discuss it with you. The Part 21 Reader was originally developed to test whether a Schema Class built and linked without problems. It is also useful for checking Part 21 files. It displays the error messages from the STEP Class Library as a file is read. SYSTEM REQUIREMENTS =================== Depending on how you want to use the toolkit, additional pieces of software will need to be available on your local system: - UNIX SunOS 4.1.x or Solaris 5.x operating system. At NIST, the SCL including the Data Probe has been built on SunOS workstations. The SCL without the Data Probe has been built on Solaris. (We did not build the InterViews Library on Solaris.) NOTE: earlier versions of the SCL 2.1 without the Data Probe had been ported to AIX, HP, linux, and Windows NT. - a C++ compiler -- cfront version 2.1 or higher NOTE: The current SCL release has been built with SUN C/C++, and GNU's gcc/g++ compilers. Earlier versions of the SCL were built using CenterLine on SunOS and CSet++ on AIX. If you successfully port the current version to other compilers and/or operating systems (and are willing to share) please contact us (stepcl@cme.nist.gov) so that we can point others to it. - The NIST EXPRESS Toolkit -- available from NIST Included in this release; also available as: ftp.cme.nist.gov:pub/step/npttools/exptk.tar.Z - The NIST EXPRESS Pretty Printer -- available from NIST Included in this release; also available as: ftp.cme.nist.gov:pub/step/npttools/exppp.tar.Z The following components are optional: - Version 3.1 of the InterViews Toolkit from Stanford. ftp://interviews.stanford.edu:pub/3.1.tar.Z NOTE: InterViews is only needed for the Data Probe portion of the toolkit. The STEP Class Library without the Data Probe and InterViews has been built on more platforms than with these components. - Orbix version 2.0. Available from Iona Technologies: http://www.iona.com - Object Store version 4. Available from Object Design Inc.: http://www.odi.com. INSTALLATION INSTRUCTIONS ========================= Refer to the file INSTALL. In the instructions below, you will see references to the directory <ARCH_DIR>. This directory name should be interpreted as the directory which is named to reflect your compiler and/or system architecture when installing the SCL using configure: i.e. "arch.centerline" or "arch-gnu.solaris" CREATING A NEW SCHEMA CLASS LIBRARY AND/OR DATA PROBE ===================================================== The <ARCH_DIR>/bin/mkProbe script automates the process of building new Schema Class Libraries and Data Probe executables. When run with the -l option only the Schema Class Library will be created. See man page in ~scl/man. Examples Input command line output (name and location) ---------------------------------------------------- mkProbe part41.exp pt41 ./pt41/dp_pt41 mkProbe -i part101.exp dp ~scl/<ARCH_DIR>/Probes/dp/dp_dp mkProbe -l example.exp example ./example/libCexample.a mkProbe -p example.exp example ./example/p21read_example CONTENTS ======== This directory contains the following files and subdirectories. This software release includes all the NIST software needed for creating new versions of the Data Probe program. Two example schemas are included in the data directory. INSTALL - File discussing installation of SCL. README.scl - This file. src/test/README - README discussing SCL coding examples under src/test/ disclaim.txt - NIST disclaimer for this distribution. build-apps.txt - Discusses how to build applications using the STEP Class Library. whatsnew.3-1.txt- Discusses new features in the STEP Class Library and Data Probe 3.1 release. whatsnew.2-1.txt- This was the `whatsnew' file released with SCL 2.1. Most of the information is still relevant. configure - Script used to install the SCL. configure.in - File used to create the configure script using gnu's autoconf software. configure.files_notes.txt - Discusses various files used by the configure script. Makefile - Contains a default rule to build SCL using the configure installation script. <ARCH_DIR>/bin/mkProbe - Script used to generate a new Schema Class Library and/or Data Probe executable. (see CREATING A NEW SCHEMA CLASS LIBRARY AND/OR DATA PROBE) config/ - Directory containing various templates needed by the configure installation script. config/examples/ - Directory containing examples of using configure to install SCL. arch_template/ - Directory containing templates used by configure to create an architecture specific SCL installation. src/ - Source code files for the C++ libraries included in this release. src/cl* - Directories containing the source code for the C++ libraries in the STEP Class Library. These libraries are documented in the VTS Design document (see DOCUMENTATION below). They are as follows: src/clutils - utilities needed by the other libraries. src/clstepcore - "core" classes representing EXPRESS types and dictionary info. src/cldai - classes for a partial implementation of the Session schema of STEP's Standard Data Access Interface (STEP Part 23). src/cleditor - classes for managing data instances and exchange files. src/clivfasd - customizations to the Interviews class library. src/clprobe-ui - user interface classes for the Data Probe. src/clSchemas - Contain subdirectories with schema specific source code generated by the mkProbe script. src/express - Directory containing the EXPRESS Toolkit. src/exppp - Directory containing EXPRESS Pretty Printer Toolkit. src/test - Directory containing example STEP Class Library applications. src/fedex_plus - Directory containing source code and makefile for fedex_plus, fedex_idl, fedex_os <ARCH_DIR> - <ARCH_DIR> is the installer-supplied name of the directory which is created when you run configure to install SCL. (See the file INSTALL for more information.) This directory contains computer architecture-specific files. Additional arch dirs may be created to support multiple platforms or C++ compilers which all refer to the same source code under src/. The arch dir contains the subdirectories ofiles, bin, lib, and Probes. <ARCH_DIR>/ofiles/ - Directory containing object (.o) files for SCL. <ARCH_DIR>/ofiles/sdaiOrbix - Directory containing IDL files and Makefile needed to build and use SCL with Orbix. <ARCH_DIR>/lib/ - Directory containing library (.a) files for SCL. <ARCH_DIR>/Probes/ - The <ARCH_DIR>/Probes directory will contain directories for versions of the Schema Class Library and Data Probe generated using the mkProbe script with the -i option. <ARCH_DIR>/bin/ - The fedex, fedex_plus, fedex_idl, and fedex_os, exppp, and symlink executables and mkProbe, sclbuild, and setup-arch scripts are placed in this directory during installation. data/ - Directory containing sample EXPRESS files to use to create SCL applications such as the Data Probe or Part 21 Reader. Also contains data for some of the examples. bin/ - Directory containing various scripts. man/ - Directory containing man pages for the software in the release. You may look at the man page by issuing the command: nroff -man <manpagefile> or by adding this directory to your MANPATH. EXAMPLES ======== Example of creating a Data Probe -------------------------------- To create a new version of the Data Probe run the script mkProbe. For example, to create a Data Probe based on the "example_schema" EXPRESS schema included in this release, issue the following command in a directory from which you would like a subdirectory containing the new Data Probe to be created: % mkProbe ~scl/data/example/example.exp example This command creates a new version of the Data Probe in the file: % ./example/dp_example (It also creates subdirectory example/ if it does not exist already.) Examples of using the STEP Class Library ---------------------------------------- To use the Schema Class Library source code (without the Data Probe software) refer to the examples in the directory src/test. Example of a Part 21 file reader -------------------------------- To create a file reader based on STEP's Part 21 format use the mkProbe script with the -p option. % mkProbe -p ~scl/data/example/example.exp example The executable p21read_example is created. Run it as follows: % p21read_example your_part_21_file This program reads a file the name of which is supplied as an argument to the program. Any errors encountered when reading the file are reported to standard output. A summary of the file is also reported. The file is then written back out to a file the name of which may be supplied as the second argument to the program. If no name is given, "file.out" is used. FOR MORE INFORMATION ==================== SCL HOME PAGE ------------- The SCL home page is located on the world wide web at, http://www.nist.gov/scl The SCL home page will provide important, up-to-date information on the status of the SCL, new developments and fixes, links to related software and projects, and may eventually contain an FAQ sheet. SCL DOCUMENTATION ----------------- Documentation can be accessed from the SCL world wide web home page located at http://www.nist.gov/scl The following files (in postscript format) are particularly relevant: Design of a C++ Software Library for Implementing EXPRESS: The NIST STEP Class Library Data Probe User's Guide Data Probe: A Tool for EXPRESS-based Data Architecture for the Validation Testing System Software Validation Testing System Software Reusable Software Component Design Diagrams of basic SCL data structures ISO DOCUMENTATION ----------------- Copies of the International Standard documents (including STEP Part 11 the EXPRESS Language Reference Manual, Part 21 the STEP Exchange File Format, Part 22 STEP's Standard Data Access Interface, and Part 23 the C++ language binding to SDAI) can be ordered from the ISO International Organization of Standardization or your national body. The United States distribution is managed by the US Product Data Exchange Association at: U.S. Product Data Association (USPro) Trident Research Center, Suite 204 5300 International Blvd. N. Charleston, SC 29418 http://www.uspro.scra.org uspro@scra.org Ph: 803-760-3327 FAX: 803-760-3349 MAILING LIST ------------ Announcements of new releases or bug fixes will also be sent to the mailing list scl@cme.nist.gov. To be added to the scl mailing list send a request to majordomo@cme.nist.gov. Include in the body of the message: subscribe scl For additional help, include in the body of the message: help If you use a signature within your email, end your majordomo command sequence with the word "end". For example, subscribe scl end REPORTING PROBLEMS AND SUGGESTIONS ================================== We would like feedback on all parts of the software. Please let us know if you - have problems following the instructions in the README file, - have problems installing the software, - have problems compiling your own valid EXPRESS schema, or - have suggestions for improvements to the software. - really like the software :) Send your comments to stepcl@cme.nist.gov (For users of version 2, note the new mailing address of "stepcl...".) Questions about availability or accessing the software should be directed to the SOLIS administrator Gaylen Rinaudot npt-info@cme.nist.gov 301-975-3386 ACKNOWLEDGMENTS =============== The STEP Class Library (SCL) was developed by the Manufacturing Systems Integration Division at the National Institute of Standards and Technology (http://www.mel/nist.gov/msid) to support testing of the Standard for the Exchange of Product Model Data (a.k.a STEP) and validation of STEP's emerging implementation specifications. Funding for the project has come from the U.S. Department of Commerce, and the Department of Defense agencies including the Office of the Defense CALS (Continuous Acquisition and Life-Cycle Support) Executive and the Defense Advanced Research Projects Agency (DARPA). Recent enhancements were sponsored by the National Industrial Information Infrastructure Consortium (NIIIP) (http://www.niiip.org) and the NAMT Framework project (http://www.mel.nist.gov/msid/projs/97projs/framewrk.htm) of NIST's Systems Integration for Manufacturing Applications (SIMA) program (http://www.mel.nist.gov/msid/sima/sima.htm). LICENSING RESTRICTIONS and DISCLAIMERS ====================================== This software was produced by the National Institute of Standards and Technology (NIST), an agency of the U.S. government, and by statute is not subject to copyright in the United States. Recipients of this software assume all responsibility associated with its operation, modification, maintenance, and subsequent re-distribution. There is no warranty for the NIST STEP Toolkit. If the NIST STEP Toolkit is modified by someone else and passed on, NIST wants the Toolkit's recipients to know that what they have is not what NIST originally distributed. Distribution Rights 1. Anyone may copy and distribute verbatim copies of the NIST STEP Toolkit source code as received in any medium. 2. Anyone may modify their copy or copies of the NIST STEP Toolkit source code or any portion of it, and copy and distribute such modifications provided that all modifications are clearly associated with the entity that performs the modifications. !!!!!!!!!!!!!!!!!!!!!!!!!!!!DISCLAIMERS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Names of companies and products are provided in order to adequately specify procedures and equipment used. In no case does such identification imply recommendation or endorsement by the National Institute of Standards and Technology, nor does it imply that the products are necessarily the best available for the purpose. NO WARRANTY =========== NIST PROVIDES ABSOLUTELY NO WARRANTY. THE NIST STEP TOOLKIT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD ANY PORTION OF THE NIST STEP TOOLKIT PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION. IN NO EVENT WILL NIST BE LIABLE FOR DAMAGES, INCLUDING ANY LOST PROFITS, LOST MONIES, OR OTHER SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE, OR LOSSES SUSTAINED BY THIRD PARTIES, OR A FAILURE OF THE PROGRAM TO OPERATE WITH PROGRAMS NOT DISTRIBUTED BY NIST) THE PROGRAMS, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY.
About
This is the STEP (ISO10303) Class Library, which generates C++ from EXPRESS schema.
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published