|
| 1 | +************************************************* |
| 2 | + |
| 3 | +NOTE: this tarball is the scl3-2_cygwin.tar.bz2 |
| 4 | +tarball described below, with the change of binary |
| 5 | +names for cygwin in the makefiles removed and this |
| 6 | +file inserted. |
| 7 | +The text below is the text form of the contents of: |
| 8 | + |
| 9 | +http://www.statik.tu-cottbus.de/fileadmin/project_dth/scl/ |
| 10 | + |
| 11 | +as retreived Mar. 7, 2009 |
| 12 | + |
| 13 | +************************************************* |
| 14 | + |
| 15 | + |
| 16 | +NIST STEP Class Library (SCL) |
| 17 | + |
| 18 | + * What is SCL? |
| 19 | + * Platform issues |
| 20 | + * Installation |
| 21 | + * Testing and using SCL |
| 22 | + |
| 23 | +What is SCL? |
| 24 | + |
| 25 | +SCL is basically a toolbox to build interfaces between |
| 26 | +application programs and STEP data repositories. The |
| 27 | +latter can be STEP physical files (SPF as defined by |
| 28 | +ISO 10303-21) or object-oriented database systems, of |
| 29 | +which two products are supported by SCL. |
| 30 | + |
| 31 | +SCL was written by NIST for the U.S. government and is |
| 32 | +therefore not subject to copyright. You may study it, |
| 33 | +modify it, redistribute it, create free or non-free |
| 34 | +software with it. For more information about SCL and in |
| 35 | +order to get its original distribution, please refer to |
| 36 | +the official SCL site at NIST: |
| 37 | +http://www.mel.nist.gov/msidstaff/sauder/SCL.htm. |
| 38 | + |
| 39 | +WSTEP, a free SCL port to Windows is available at |
| 40 | +http://www.bauv.unibw-muenchen.de/~bauv1/download/WStep/ |
| 41 | +(ported by Stefan Schwarz). |
| 42 | +Platform issues |
| 43 | + |
| 44 | +The original SCL source distribution cannot be cleanly |
| 45 | +un-archived on case-insensitive file systems like Windows' |
| 46 | +NTFS because of a name conflict. Here is a source archive |
| 47 | +with the conflicting file renamed: |
| 48 | +scl3-2.tar.bz2. |
| 49 | +Tar.bz2 archives can be unpacked with bzip2 and tar or |
| 50 | +with the Windows program 7-Zip. |
| 51 | + |
| 52 | +SCL is mainly written in C++, but it also contains C |
| 53 | +sources, lex and yacc sources (compatible to flex and |
| 54 | +bison) and csh and sh scripts. The C++ sources, written |
| 55 | +in the 1990s, are not fully compliant to ANSI/ISO C++. |
| 56 | +Here is a patch that updates base parts of SCL to |
| 57 | +ANSI/ISO C++ (only the SPF interface, not the complete |
| 58 | +database system interfaces or the dataprobe GUI). |
| 59 | +The patch also addresses some problems with newer |
| 60 | +UNIX-like systems: |
| 61 | +scl3-2_isocpp.diff |
| 62 | + |
| 63 | +There are furthermore some issues with the configure |
| 64 | +script and some makefiles which are addressed by the |
| 65 | +following patch. This patch also adds a macro that is at |
| 66 | +least required for gcc: |
| 67 | +scl3-2_build.diff |
| 68 | + |
| 69 | +These patches were tested with gcc 3.3 under Linux, Mac |
| 70 | +OS X, as well as Windows with Cygwin. Cygwin is a UNIX-like |
| 71 | +environment for Windows with complete GNU toolchain. Some |
| 72 | +further modifications are necessary to build SCL under |
| 73 | +Cygwin: |
| 74 | +scl3-2_build_cygwin.diff |
| 75 | + |
| 76 | +A source archive with the three patches already applied |
| 77 | +is provided here for your convenience: |
| 78 | +scl3-2_cygwin.tar.bz2. |
| 79 | + |
| 80 | +Remaing problem: The p21 file scanner of SCL currently |
| 81 | +does not allow for comments within the parameter list of |
| 82 | +data records. Only comments outside of data records are |
| 83 | +accepted. |
| 84 | + |
| 85 | + DISCLAIMER: Use at your own risk. |
| 86 | + The patches are incomplete, may be incorrect, and are |
| 87 | + not endorsed by NIST. |
| 88 | + |
| 89 | +Installation |
| 90 | + |
| 91 | +Install Linux, or Cygwin on Windows, or Fink on Mac OS X. |
| 92 | +In either case you need the packages gcc-core, gcc-g++, |
| 93 | +binutils, make, bison, yacc, sed, tcsh, tar, bzip2. |
| 94 | + |
| 95 | +Under Linux or Mac OS X, unpack scl3-2.tar.bz2. Apply the |
| 96 | +first two patches: |
| 97 | + |
| 98 | + tar xfj ~/scl3-2.tar.bz2 |
| 99 | + cd scl3-2 |
| 100 | + patch -p1 < ~/scl3-2_isocpp.diff |
| 101 | + patch -p1 < ~/scl3-2_build.diff |
| 102 | + |
| 103 | +Under Windows + Cygwin, unpack scl3-2_cygwin.tar.bz2, do |
| 104 | +not apply patches: |
| 105 | + |
| 106 | + tar xfj ~/scl3-2_cygwin.tar.bz2 |
| 107 | + cd scl3-2 |
| 108 | + |
| 109 | +Build fedex, fedex_plus, exppp, mkProbe and a simple demo |
| 110 | +called p21read with the command |
| 111 | + |
| 112 | + ./configure --with-arch=local |
| 113 | + |
| 114 | +This takes less than 2 minutes on a 1.6 GHz PC. The results |
| 115 | +are installed under "scl3-2/local/". Add the following |
| 116 | +lines to ~/.bashrc: |
| 117 | + |
| 118 | + MANPATH="${MANPATH}:~/scl3-2/man" |
| 119 | + PATH="${PATH}:~/scl3-2/local/bin" |
| 120 | + |
| 121 | +(Note: Instead of "local", you should use a more descriptive |
| 122 | +name like "arch-cygwin" in the configure command and PATH |
| 123 | +variable if you build for multiple architectures on the same |
| 124 | +filesystem.) |
| 125 | + |
| 126 | +Testing and using SCL |
| 127 | + |
| 128 | +In order to build the Class Library and p21read for another |
| 129 | +EXPRESS schema like IFC 2x2, use the following command. ( |
| 130 | +Note: You need a syntactically corrected version of the |
| 131 | +schema: ifc2x2a1.exp.) |
| 132 | + |
| 133 | + mkProbe -i -p ~/ifc2x2a1.exp ifc2x2 |
| 134 | + |
| 135 | +mkProbe builds and installs the library and p21read under |
| 136 | +"scl3-2/local/Probes/ifc2x2/". This takes about 2 minutes on |
| 137 | +a 1.6 GHz PC with Linux but 12 minutes on a 2.8 GHz PC with |
| 138 | +Windows + Cygwin. The resulting executable is 5...20 MB big, |
| 139 | +depending on the platform and whether you strip debug symbols |
| 140 | +off of it. If you want to build only the library, not p21read, |
| 141 | +omit -p from the mkProbe call. |
| 142 | + |
| 143 | +Test p21read with some IFC data: |
| 144 | + |
| 145 | + ~/scl3-2/local/Probes/ifc2x2/p21read_ifc2x2 in.ifc out.ifc |
| 146 | + |
| 147 | +assumed you provide an existing file "in.ifc". P21read simply |
| 148 | +reads the file in.ifc, checks it, and writes its content back |
| 149 | +into out.ifc. |
| 150 | + |
| 151 | +Besides p21read, SCL comes with some other tiny demonstrators |
| 152 | +which are built by the above configure command and installed |
| 153 | +beneath "local/testbuild/": The demo tstatic creates instances |
| 154 | +of entities in a compiled example EXPRESS schema, populates |
| 155 | +their attributes, and prints them like they would appear in a |
| 156 | +STEP file. The demo treg looks for all entities (classes) |
| 157 | +contained in a compiled EXPRESS schema, creates an instance of |
| 158 | +each entity with random attribute data, and creates a STEP file |
| 159 | +of them. The demo tio reads objects from a STEP file, then reads |
| 160 | +this file again and appends the objects to the existing model, |
| 161 | +and writes the doubled model out to a STEP file. |
| 162 | + |
| 163 | +While the demo tstatic works only with the provided example |
| 164 | +schema, the demos p21read, treg, and tio work with any EXPRESS |
| 165 | +schema you build a STEP Class Library for. Tstatic uses early |
| 166 | +bound access functions, while the other demos use only late |
| 167 | +bound access functions. |
| 168 | + |
| 169 | +Stefan Richter, LS Statik & Dynamik |
| 170 | +created 09 Jan 2005, updated 01 Mar 2006 |
0 commit comments