Compare commits

..
302 Commits
Author SHA1 Message Date
Mark Pictor 8ec8e778a6 test files not committed 2013-11-22 17:37:17 -05:00
Mark Pictor 133f503960 lazy refs thoughts 2013-11-22 17:35:14 -05:00
Mark Pictor 89d941d63c changes to lazyRefs.h - likely to be overwritten 2013-11-21 20:22:10 -05:00
Mark Pictor fe53db9cee add lazyRefs.h 2013-11-17 12:24:01 -05:00
Mark Pictor a9c13f7434 include subsuperiterators header 2013-11-17 12:24:01 -05:00
Mark Pictor 77c0b266c4 improve comments, a few other small changes that don't affect behavior 2013-11-17 12:24:01 -05:00
Mark Pictor 5ef9cc9798 default to case insensitive when searching by instance type 2013-11-17 12:24:01 -05:00
Mark Pictor 3e8050465e _mainRegistry wasn't initialized 2013-11-17 12:24:01 -05:00
Mark Pictor 45ace10eb6 warning about comparison that was always true 2013-11-17 12:24:00 -05:00
Mark Pictor a2c83eacf9 abstract class with non-virtual destructor 2013-11-17 12:24:00 -05:00
Mark Pictor 70f45a9096 use lazyInstMgr for inverse_attr3.cc 2013-11-17 12:24:00 -05:00
Mark 48c0481bc3 Merge pull request #275 from stepcode/review/subbuild
Improve application building experience when using SC as a subbuild
2013-11-16 19:03:14 -08:00
Mark Pictor a0968849bb copy to the object in ptr if it exists, else overwrite ptr contents with object pointer
Tried to delete contents of ptr if non-null, but it frequently points to a static data member - in which case
delete fails noisily.
So, check if null. if not null, use set_null() (if it exists) and operator=; otherwise, overwrite the
pointer

Also make SDAI_Enum dtor public
2013-11-14 20:26:42 -05:00
Mark Pictor e41edd42c2 use STEPattribute getters, which weren't necessary with v0.7
In v0.7, STEPattribute::ptr was public
2013-11-13 20:01:19 -05:00
Mark Pictor 9b96c73d8e Default to a debug build 2013-11-13 20:01:18 -05:00
Mark Pictor ae55ca80a3 oops, STEPattribute needs setters now that ptr is private 2013-11-13 20:01:18 -05:00
Mark Pictor 6b88e574f3 make build logic more robust - more checks, print error messages
* check whether STEPCODE_ROOT_DIR is relative or absolute
* exit with error message if that dir or the schema can't be found
2013-11-13 20:01:18 -05:00
Mark Pictor 2546685d2f oops, install inside include/ dir 2013-11-13 20:01:18 -05:00
Mark Pictor 67f8ea4574 install generated sdai headers 2013-11-13 20:01:18 -05:00
Mark Pictor 9d27eff62a if shared libs are not built, don't append -static to static lib names 2013-11-13 20:01:18 -05:00
Mark Pictor 65cdebbdfc don't set output dirs if SC_IS_SUBBUILD 2013-11-13 20:01:18 -05:00
Mark Pictor e889888ab3 static sdai libs need include paths 2013-11-13 20:01:18 -05:00
Mark ebdfab5aeb Merge pull request #274 from ramcdona/Fixes
Fix stream comparison, add RealNode and IntNode constructors which take a value
2013-11-11 14:39:18 -08:00
Rob McDonald 9ef064b411 Add helpful constructors for RealNode and IntNode 2013-11-11 10:38:29 -08:00
Rob McDonald 51f6fed3b3 Fix stream comparison when using C++ 11.
Appropriate fix suggested by Sean.
2013-11-11 10:38:24 -08:00
charliestirk 6d4f0852d4 Update AUTHORS
added Rob McDonald and Tom Thurman
2013-10-29 13:53:52 -06:00
charliestirk d1437c7761 Update AUTHORS
added Nick Reed and Tom Thurman
2013-10-29 12:59:46 -06:00
Mark a29124cf5f Merge pull request #270 from ramcdona/AP203Minimum
Ap203 minimum
2013-10-28 17:00:15 -07:00
Mark b51297af02 Merge pull request #269 from rakuco/string-clear-not-assign
Use basic_string::clear() instead of basic_string::assign(0, 0).
2013-10-28 14:39:16 -07:00
Raphael Kubo da Costa 0b0f6ce219 Use basic_string::clear() instead of basic_string::assign(0, 0).
The latter is an ambiguous call and makes the build fail with libc++:

  /s/stepcode/src/cllazyfile/sectionReader.cc:86:9: error: call to member
    function 'assign' is ambiguous
      str.assign( 0, 0 ); //clear() frees the memory
      ~~~~^~~~~~
  /usr/include/c++/v1/string:1354:19: note: candidate function
      basic_string& assign(const value_type* __s, size_type __n);
                    ^
  /usr/include/c++/v1/string:1356:19: note: candidate function
      basic_string& assign(size_type __n, value_type __c);
                    ^
  /usr/include/c++/v1/string:1360:14: note: candidate template ignored:
    disabled by 'enable_if' [with _InputIterator = int]
               __is_input_iterator  <_InputIterator>::value &&
               ^
  /usr/include/c++/v1/string:1368:13: note: candidate template ignored:
    disabled by 'enable_if' [with _ForwardIterator = int]
              __is_forward_iterator<_ForwardIterator>::value,
              ^
  /usr/include/c++/v1/string:1347:19: note: candidate function not viable:
    requires single argument '__str', but 2 arguments were provided
      basic_string& assign(const basic_string& __str);
                    ^
  /usr/include/c++/v1/string:1353:19: note: candidate function not viable:
    requires 3 arguments, but 2 were provided
      basic_string& assign(const basic_string& __str, size_type __pos,
    size_type __n);
                    ^
  /usr/include/c++/v1/string:1355:19: note: candidate function not viable:
    requires single argument '__s', but 2 arguments were provided
      basic_string& assign(const value_type* __s);
                    ^

Instead, just call clear(), which should do the same thing and, contrary to
what the comment stated, does not clear the allocated memory.
2013-10-28 00:23:24 +02:00
Rob McDonald 262610c410 Explicitly place CMakeLists for AP203 Minimum into public domain. 2013-10-27 08:01:57 -07:00
Rob McDonald 7985fad756 Reformat ap203min.cpp using astyle 2013-10-27 07:56:39 -07:00
Rob McDonald 8db7249070 Initial commit of AP203 Minimum, a tutorial for STEP, STEPcode, and AP203. 2013-10-26 23:30:02 -07:00
Mark e68db3e27c Merge pull request #268 from ramcdona/TimeStampHeaderFix
Quote time stamp in header instance - caught because ida-step crashed
2013-10-24 14:12:47 -07:00
Rob McDonald 295f4db40d Quote time stamp in header instance.
Fixes #267
2013-10-24 13:15:23 -07:00
Mark e9e9671083 Merge pull request #266 from stepcode/mp/remove-nonconformant-p21
remove nonconformant p21 files - we're down to a single failing test!
2013-10-18 17:07:30 -07:00
Mark b807ab36dd Merge pull request #265 from stepcode/review/STEPattr_ctors_shallowcopy
STEPattribute - fix copy constructor, Shallow Copy
2013-10-13 16:12:09 -07:00
Mark Pictor 9239e2865f disable a p21read multiple inheritance test; I'm not sure whether it should pass or fail 2013-10-13 19:10:45 -04:00
Mark Pictor 8fda732363 delete nonconformant part 21 files for ap210e2 2013-10-13 19:10:45 -04:00
Mark Pictor 45f58654c8 delete nonconformant part 21 files for ap227 2013-10-13 19:10:45 -04:00
Mark abda04abac Merge pull request #264 from stepcode/review/exppp2
exppp & misc
2013-10-13 14:30:03 -07:00
Mark Pictor 35c756ace6 create the correct type of aggregate so the ShallowCopy will work 2013-10-12 22:23:21 -04:00
Mark Pictor d146a62a84 update tests to work with STEPattribute class changes 2013-10-12 22:21:46 -04:00
Mark Pictor 067098a42b oops, need a way to access attr data now that ptr is protected 2013-10-12 22:20:07 -04:00
Mark Pictor 6700b1994a oops, some STEPattribute constructors didn't initialize all members 2013-10-12 08:22:59 -04:00
Mark Pictor a3ed45a65b eliminate error and warning in p21read.cc 2013-10-11 22:51:48 -04:00
Mark Pictor 4f94a13386 fix ShallowCopy(), copy constructor, destructor 2013-10-11 22:29:31 -04:00
Mark Pictor be375e08cf sameADesc() behaves like old operator==, rewrite operator== 2013-10-11 22:29:31 -04:00
Mark Pictor 217414db29 tests for copy constructor, ShallowCopy() 2013-10-11 22:29:31 -04:00
Mark Pictor 55f79cb9e6 update asStr() function - return std::string 2013-10-11 22:25:30 -04:00
Mark Pictor b79bf5fe7f some return types char * --> std::string, eliminate unnecessary const_casts 2013-10-11 22:17:49 -04:00
Mark Pictor 73790e1488 name parameters in declarations 2013-10-11 22:17:49 -04:00
Mark Pictor 610e60d2f5 don't use int as bool 2013-10-11 22:17:46 -04:00
Mark Pictor d0f4beb992 eliminate duplicate error code in STEPwrite() 2013-10-11 22:15:46 -04:00
Mark Pictor c4d6cc07fb don't use RedefiningAttr() within the class, since _redefAttr is accessible 2013-10-11 20:40:40 -04:00
Mark Pictor 108db137fb make some STEPattribute members protected - access via funcs
affects STEPfile, STEPattributeList

protected members acc funcs
2013-10-11 20:39:04 -04:00
Mark Pictor 959c9bc8d5 test_inverse_attrs2 works now because of the STEPattr copy ctor fix 2013-10-09 21:31:57 -04:00
Mark Pictor 48f1285e03 improve stepattr copy constructor
uses shallow copy, so access violations are possible
2013-10-09 21:31:57 -04:00
Mark Pictor bcd01474cd skeleton for the operators/constructors tests for STEPattribute 2013-10-09 21:31:57 -04:00
Mark Pictor 3eb5b5374f move clstepcore cpp test dir into clstepcore 2013-10-09 21:31:57 -04:00
Mark Pictor 42e88253bc check for redefine in attr being copied _from_, not to - ?!
I do not understand how this could have been right or how it did not
cause problems if wrong. Perhaps redefined attr's are used so
infrequently that it went unnoticed?
2013-10-09 21:31:57 -04:00
Mark Pictor c6f03aa43b STEPattribute member _derive: public, int -> protected, bool 2013-10-09 21:31:57 -04:00
starseeker 7a15065225 Add newlines to end of files
git-svn-id: svn://svn.code.sf.net/p/brlcad/code/brlcad/trunk@57897 2f96ce8b-6d43-0410-b8df-bffccc660ffb
2013-10-09 20:39:32 -04:00
Mark Pictor 3bcd2de347 rework lazyInstMgr.h comment like brlcad r57891 2013-10-09 20:38:29 -04:00
Mark Pictor e2c9394478 fiddle with indents some more 2013-10-02 21:06:02 -04:00
Mark Pictor 5be3204d1e change default line length from 75 to 130 2013-10-02 21:06:02 -04:00
Mark Pictor aea964b568 by default, don't print tail comments (enable with -t) 2013-10-02 21:06:02 -04:00
Mark debc95478e Merge pull request #263 from stepcode/mp/exppp2
work on exppp
2013-10-02 16:38:15 -07:00
Mark Pictor 94058f67db Partially revert "oops, abs() != fabs() - and DBL_EPSILON isn't what I thought it was"
Old commit ae8d89f852.
2013-10-02 18:36:38 -04:00
Mark Pictor 544d0047e6 warnings for signed-unsigned comparison 2013-10-02 17:15:42 -04:00
Mark Pictor 022192332e check return values for fgets, fwrite 2013-10-02 17:15:41 -04:00
Mark Pictor 5901f432a9 eliminate ineffective bool exppp_preserve_comments and unused copy_file_chunk() 2013-10-02 17:15:41 -04:00
Mark Pictor 5b36c52d77 gcc xcompile - eliminate [-Wstrict-aliasing] via reinterpret_cast 2013-10-02 17:15:41 -04:00
Mark Pictor 276e6d751e add schema exposing inverse qualified attr problem 2013-10-02 17:15:41 -04:00
Mark Pictor 0e9f0682d9 includes are case-sensitive when crosscompiling for windows on linux 2013-10-02 17:15:41 -04:00
Mark Pictor 063931aaca always sort output alphabetically; remove -a option. 2013-10-02 17:15:41 -04:00
Mark Pictor 147d39ea37 print consts in alphabetic order 2013-10-02 17:15:41 -04:00
Mark Pictor 061f6d91ea remove get_filename - won't work on windows 2013-10-02 17:15:41 -04:00
Mark Pictor 7c9f8ab0c2 fix includes, most externs for windows 2013-10-02 17:15:41 -04:00
Mark Pictor 12ad43ea4b MSVC lacks stdbool.h 2013-10-02 17:15:41 -04:00
Mark Pictor b5af88b268 silence MSVC warning 2013-10-02 17:15:41 -04:00
Mark Pictor 6b7982f816 cmake messages for user - ignore missing header messages, SC_BUILD_SCHEMA 2013-10-02 17:15:41 -04:00
Mark Pictor b0253d1d45 make empty strings print correctly 2013-10-02 17:15:41 -04:00
Mark Pictor 78e2053384 add -c option: one item per line for constants (YMMV!) 2013-10-02 17:15:41 -04:00
Mark Pictor afbf61db66 prevent some really long lines from sticking out as much 2013-10-02 17:15:41 -04:00
Mark Pictor ade977836f simple test executable for breakLongStr() 2013-10-02 17:15:41 -04:00
Mark Pictor f1c4d0f3a8 improve line wrapping 2013-10-02 17:15:40 -04:00
Mark Pictor d2f1b63a77 fix some more ws problems 2013-10-02 17:15:40 -04:00
Mark Pictor c7e0ce0a29 fixed problem where UNIQUE rule in ap210 arm was printed as "unknown expression"
also remove debugging code accidentally committed during refactor
2013-10-02 17:15:40 -04:00
Mark Pictor faa6693982 remove #if 1 ... #else ... #endif from TYPE_body_out() 2013-10-02 17:15:40 -04:00
Mark Pictor 1ff8cafb00 refactor exppp - split into many small files 2013-10-02 17:15:40 -04:00
Mark Pictor 4601594c2b improve pretty-printing of functions 2013-10-02 17:15:40 -04:00
Mark Pictor c9d100e719 this should not be a warning
libexpress crashes if warnings are suppresed for a schema where this problem occurs
2013-10-02 17:15:40 -04:00
Mark Pictor 9b1c0ff5ce exppp - rename filename buffer 2013-10-02 17:15:40 -04:00
Mark Pictor 67705a26c7 -l arg for exppp to set line length 2013-10-02 17:15:40 -04:00
Mark Pictor 1d0b829559 when a CONSTANT had a long name, no newlines would be printed in initializer lists 2013-10-02 17:15:40 -04:00
Mark Pictor 68be23e550 allows exppp output filename (or stdout) to be specified with -o
messages on stdout will corrupt a schema being printed to stdout,
so replace all printf( ... ) and fprintf( stdout, ... ) with
fprintf( stderr, ... )
2013-10-02 17:15:40 -04:00
Mark Pictor 89c428b327 cmake - don't print an OK message for each generated file
makes the build a little quieter
2013-10-02 17:15:40 -04:00
Mark Pictor 85f12e38a9 neaten up exppp.h 2013-10-02 17:15:39 -04:00
Mark Pictor 802f424670 unused macro 2013-10-02 17:15:39 -04:00
Mark Pictor c2bc4bce77 oops, 489eb58 alters behavior - thinks 'END-ISO-10303-21;' is invalid EOF
compared keyword with keyword + ';', so of course it failed
2013-09-30 20:36:09 -04:00
Mark 42ef605fb3 Merge pull request #262 from stepcode/review/cleanupexp2cxx
cleanup exp2cxx, other dirs
2013-09-22 09:17:33 -07:00
Mark 3042d902b2 Merge pull request #260 from stepcode/review/cleanup-express
Clean up src/express, src/exppp
2013-09-20 09:36:44 -07:00
Mark Pictor 335ccf9712 rename problematic merged schema so it won't stop the build 2013-09-20 12:04:13 -04:00
Mark Pictor 2b3b4521bd c++ comments in c 2013-09-18 18:03:48 -04:00
Mark Pictor 5598ea07f8 rename variable that shadowed another 2013-09-18 18:03:48 -04:00
Mark Pictor 41218fd5be unused variable 2013-09-18 18:03:48 -04:00
Mark Pictor b7beabf789 unused params in virtual member functions
- params can't be removed because they are used in that function in other class(es)
2013-09-18 18:02:37 -04:00
Mark Pictor a2661f30e3 parenthesis around assignment used as bool 2013-09-18 18:02:37 -04:00
Mark Pictor 6d98c1824c signed-unsigned comparison 2013-09-18 18:02:37 -04:00
Mark Pictor c43de6c69c initialize base class in copy constructor 2013-09-18 18:02:37 -04:00
Mark Pictor 58eb1e0ce1 fix initialization order warning 2013-09-18 18:02:37 -04:00
Mark Pictor 489eb5871f cleanup 2013-09-18 18:02:37 -04:00
Mark Pictor bb161a1441 unused parameter 2013-09-18 18:02:36 -04:00
Mark Pictor 111172a090 quell unused parameter warnings in certain functions
- only in functions that shouldn't be called or are unimplemented
- implemented some of the obvious ones, print error messages in the others
2013-09-18 18:02:36 -04:00
Mark Pictor 1e5bc0d2a4 unused var, '/*' in comment 2013-09-16 21:47:13 -04:00
Mark Pictor 62e2baa5fd warning: returning reference to temporary 2013-09-16 21:46:37 -04:00
Mark Pictor 04b1b61a68 #if -> #ifdef 2013-09-16 21:42:36 -04:00
Mark Pictor db33f94364 const discarded 2013-09-16 21:41:37 -04:00
Mark Pictor ae8d89f852 oops, abs() != fabs() - and DBL_EPSILON isn't what I thought it was 2013-09-16 17:36:19 -04:00
Mark Pictor 19df57ae26 fix some warnings in clstepcore 2013-09-15 20:14:29 -04:00
Mark Pictor 067be9027b fix most warnings in cldai 2013-09-15 20:13:48 -04:00
Mark Pictor 0064834b99 fix some warnings in exp2python 2013-09-15 20:02:34 -04:00
Mark Pictor b162ff2bd8 changes in exp2cxx broke exp2python; this fixes it 2013-09-15 19:40:47 -04:00
Mark Pictor 6372b27050 add default case that errors out 2013-09-15 19:30:38 -04:00
Mark Pictor d84a4af547 fprintf safety 2013-09-15 19:30:38 -04:00
Mark Pictor d5f538549c unused vars/args, dead code 2013-09-15 19:30:37 -04:00
Mark Pictor 64b99cf01e shadowed variables 2013-09-15 19:30:37 -04:00
Mark Pictor 5ff1ca577c discarded const, unused vars/args 2013-09-15 19:30:37 -04:00
Mark Pictor 8da49be459 c++ comments 2013-09-15 19:13:36 -04:00
Mark Pictor 3b1cc8cc37 eliminate unused expscan function yywrap() 2013-09-15 17:33:19 -04:00
Mark Pictor cadc776d19 unused params yymajor, yyminor in expparse.y 2013-09-15 17:31:02 -04:00
Mark Pictor cd530f1383 number each error or warning printed by the parser 2013-09-15 17:24:40 -04:00
Mark Pictor 4dc506d52a cleanup 2013-09-15 17:19:46 -04:00
Mark Pictor a3186c18c2 print warning for extremely small REALs
they may be misinterpreted on some platforms or with some EXPRESS parsers
2013-09-15 17:19:46 -04:00
Mark Pictor 6312ac5fae don't compare float/double with 0 [-Wfloat-equal] 2013-09-15 16:57:27 -04:00
Mark Pictor f794d00d19 eliminate references to unused and undefined function yyerror() 2013-09-15 16:10:35 -04:00
Mark Pictor 1d47136a77 unused parameter 2013-09-15 16:02:58 -04:00
Mark Pictor 48ed46fe06 eliminate unused functions LISTremove, TYPEget_tagname 2013-09-15 16:02:57 -04:00
Mark Pictor 1a6fd8ca46 c++ comment warnings 2013-09-15 16:02:57 -04:00
Mark Pictor a778c40385 unused parameter 2013-09-15 15:56:24 -04:00
Mark Pictor cc0525750b remove function disabled by macros_bit_the_dust, cleanup 2013-09-15 15:56:21 -04:00
Mark Pictor 6af2650b5b discarded const qualifier 2013-09-15 15:54:27 -04:00
Mark Pictor 8f3cba08ee comparison between signed and unsigned 2013-09-15 15:37:56 -04:00
Mark Pictor 9608c0c663 comparison always true [-Wtype-limits] 2013-09-15 15:37:56 -04:00
Mark Pictor 60087bed38 comparison between signed and unsigned 2013-09-15 15:37:56 -04:00
Mark Pictor 66110400e1 Wundef warnings - change #if to #ifdef 2013-09-15 15:37:56 -04:00
Mark Pictor 6b708083b8 K&R declaration 2013-09-15 15:10:02 -04:00
Mark Pictor 3b8622eab9 unused variable warnings, wrong type for array subscript 2013-09-15 15:10:02 -04:00
Mark Pictor 84fd68ae65 get rid of all tabs in expparse.y, sync generated files 2013-09-15 14:50:39 -04:00
Mark Pictor 17b064784f Wshadow warnings in src/express 2013-09-15 14:50:30 -04:00
Mark Pictor bef8dd98a4 eliminate Wshadow warnings in exppp, add braces to some LISTdo 2013-09-15 14:50:30 -04:00
Mark Pictor 22b946b950 indent 2 LISTdo's 2013-09-15 14:50:30 -04:00
Mark Pictor f94df05876 unused variables 2013-09-15 14:50:30 -04:00
Mark Pictor c5f3b1223c LISTdo_n macro - make it possible to nest LISTdo's without -Wshadow warnings 2013-09-15 14:50:30 -04:00
Mark Pictor adf5bf287f fix [-Wreorder] warning in complexSupport.h 2013-09-15 13:35:47 -04:00
Mark e1f0a6a7ee Merge pull request #258 from stepcode/review/exppp
EXPPP: output schema should match input schema
2013-09-15 10:29:59 -07:00
Mark Pictor 4fe5eecf61 use static char[] for version, better comments in sc_version_string.cmake 2013-09-15 12:22:57 -04:00
Mark Pictor cac6c3fad6 fix some warnings 2013-09-15 11:46:06 -04:00
Mark Pictor 16bb7f98dc this is not 1993
update pretty-printed header comment
include version string
2013-09-14 21:23:44 -04:00
Mark Pictor 864b304e7d change timestamp in sc_version_string.cmake 2013-09-14 21:15:59 -04:00
Mark Pictor 440c78ad65 add to exppp problem schema, rename it to match contents 2013-09-13 20:55:29 -04:00
Mark Pictor aab39af98c pretty print spaces around colons 2013-09-13 20:33:42 -04:00
Mark Pictor 6f0b8ef80f clean up a bit in hash.c 2013-09-13 20:33:42 -04:00
Mark Pictor 383c18e9b7 create Type_Repeat for repeat expr's 2013-09-13 20:33:42 -04:00
Mark Pictor 31e3bb7f5e don't append empty strings, don't break short substrings 2013-09-13 20:33:42 -04:00
Mark Pictor b9352e8111 fixes build error on windows
removes unistd.h include; it wasn't being used anyway
adds snprintf macro for windows
2013-09-13 20:33:42 -04:00
Mark Pictor 78643210ab add {} to 2 LISTdo/LISTod 2013-09-12 18:09:18 -04:00
Mark Pictor 80bf698c80 exppp: add spaces inside parenthesis and after commas 2013-09-12 18:09:18 -04:00
Mark Pictor 139d3f174e break long strings up to make exppp output look better 2013-09-12 18:09:17 -04:00
Mark Pictor 5bf0a58ec5 check locale, don't print trailing 0s in real2exp 2013-09-12 18:09:17 -04:00
Kesha a297f733dd Update CMakeLists.txt 2013-09-12 22:56:16 +05:30
Mark Pictor fc91dd68c3 add a line to exppp_prob_func, exposing another problem 2013-09-09 19:54:49 -04:00
Mark Pictor 076b17e96e line number (symbol.line) started at zero 2013-09-09 19:51:51 -04:00
Mark Pictor d9c00efd16 rename BUF_SIZE macro, check buffer size before use 2013-09-08 20:20:13 -04:00
Mark Pictor 6a712cd516 cleanup in exppp.c
* return type on the same line as the func name
* doxify comments
* fix one K&R-style declaration
* replace some #define statements with const's
2013-09-08 18:27:24 -04:00
Mark Pictor b7450150e9 exppp: use static char array in real2exp 2013-09-08 17:50:00 -04:00
Mark Pictor d0c1202eca exppp: eliminate as many Wshadow warnings as possible
Some remain due to nested LISTdo..LISTod
2013-09-08 17:50:00 -04:00
Mark Pictor 84ff138f60 exppp: eliminate "warning: implicit declaration of function 'unlink'"
eliminated by including unistd.h
also added a #define for windows to use _unlink instead of unlink
2013-09-08 17:49:59 -04:00
Mark Pictor 873056c385 exppp: remove code that creates rmpp script
rmpp was a shell script that removed the pretty-printed schema
it was not cross-platform, and I don't think anyone used it
2013-09-08 17:49:59 -04:00
Mark Pictor 65121672aa exppp: int -> unsigned int - eliminate [-Wsign-compare] warning 2013-09-08 17:49:59 -04:00
Mark Pictor 96e4c13930 exppp: fix [Wswitch] warning by adding a default case
default prints an error and aborts

exppp.c:1407:13: warning: enumeration value '...' not handled in switch [-Wswitch]
2013-09-08 17:49:59 -04:00
Mark Pictor e8dfe9ba73 exppp: express requires a decimal point in REAL literals 2013-09-08 17:49:59 -04:00
Mark Pictor a40f9ba7b1 represent EXPRESS reals with double, not float 2013-09-08 17:49:59 -04:00
Mark Pictor 742be715ad exppp: use flags.repeat 2013-09-08 17:49:59 -04:00
Mark Pictor 2812c304c0 improve comment for TypeBody->flags.repeat 2013-09-08 17:45:28 -04:00
Mark Pictor f1651b0885 set flags.repeat for repeat element, not repeated element - easier to use in exppp 2013-09-08 17:45:28 -04:00
Mark Pictor 48da14010d add test schema for exppp - issue #244, comma/semicolon 2013-09-08 17:45:28 -04:00
Mark Pictor b9a920190a eliminate some C++-style comment warnings 2013-09-08 17:44:49 -04:00
Mark Pictor c4bc306e07 Replace LISTadd macro with LISTadd_last
No clue why the macro was used:
 #define LISTadd(list, item) LISTadd_last(list, item)

substitution via
    for i in `grep -lr LISTadd[^_]`; do sed -i -e 's/LISTadd\([^_]\)/LISTadd_last\1/;' $i; done
2013-09-04 21:49:31 -04:00
Mark Pictor 0cccfdd7b1 fix some [-Woverflow] warnings for bit-wide signed ints
bit-wide signed ints are either 0 or -1

eliminates warnings such as
expparse.y:743:5: warning: overflow in implicit constant conversion [-Woverflow]
2013-09-04 21:49:31 -04:00
Mark Pictor 643aea7a8a add {} to two LISTdo/LISTod 2013-09-04 21:49:31 -04:00
Mark Pictor 5f2f5bd46f rename index_spec and limit_spec to bound_spec to match the BNF
also add comments to bound_spec and index_qualifier denoting the rule
from part 11 that they match
2013-09-04 21:49:31 -04:00
Mark Pictor 42fd5bfcfe quell unused param warning 2013-09-04 21:49:31 -04:00
Mark Pictor 9a5ee30054 int -> const int for 3 exppp globals 2013-09-04 21:49:31 -04:00
Mark Pictor ec25bfa5e9 remove express/exptoks.h, obviated by express/generated/expparse.h 2013-09-04 21:49:31 -04:00
Mark Pictor 01f6e26e0a exppp: don't replace 'DIV' with '/' 2013-09-04 21:49:30 -04:00
Mark 0c11cce44c Merge pull request #257 from stepcode/review/remove_obsolete_code
Remove obsolete code in src/clSchemas and src/clprobe-ui
2013-09-04 15:54:45 -07:00
Mark 209d671732 Merge pull request #256 from stepcode/review/scopefix
Miscellaneous - scope reduction fix, man pages, minor cmake changes
2013-09-04 15:54:28 -07:00
Mark Pictor 6e17cbdd83 remove clSchemas 2013-09-01 17:38:52 -04:00
Mark Pictor 378c50ec06 remove clprobe-ui 2013-09-01 17:38:34 -04:00
Mark Pictor a11fda7da2 delete obsolete man pages 2013-09-01 17:03:44 -04:00
Cliff Yapp 95d245f22e Whoops - rename man page.
git-svn-id: svn://svn.code.sf.net/p/brlcad/code/brlcad/trunk@57349 2f96ce8b-6d43-0410-b8df-bffccc660ffb
2013-09-01 16:54:03 -04:00
Cliff Yapp a8d5158b08 Use SC_BINARY_DIR for generating and installing files
If we're using SC_BINARY_DIR to generate these files, need to
 use it for the install rule too - SC_BINARY_DIR doesn't always equal
 CMAKE_BINARY_DIR

git-svn-id: svn://svn.code.sf.net/p/brlcad/code/brlcad/trunk@57348 2f96ce8b-6d43-0410-b8df-bffccc660ffb
2013-09-01 16:53:38 -04:00
Mark Pictor 1d1c9b7de2 SCL -> STEPCODE in main CMakeLists 2013-09-01 16:52:18 -04:00
Mark Pictor 04d514ebbe reduce scope for a variable in ENTITYprint_new
This reverts one change from f41304 and adds brackets and indentation
to two pairs of LISTdo/LISTod
2013-08-31 15:20:39 -04:00
r_weiss ec630badca Update to stepcode function 'DirObj::CheckIndex' to quiet a valgrind 'mismatched free' warning.
git-svn-id: svn://svn.code.sf.net/p/brlcad/code/brlcad/trunk@57177 2f96ce8b-6d43-0410-b8df-bffccc660ffb
2013-08-29 20:43:27 -04:00
Mark 6963fc515d Merge pull request #254 from stepcode/ks/installHdrs
Ks/installHdrs
2013-08-29 17:14:19 -07:00
Mark f0f5763b9c Merge pull request #255 from starseeker/master
Rename fedex_python and fedex_plus to exp2python and exp2cxx
2013-08-29 15:02:08 -07:00
Kesha Shah 434eafeffe Adding to AUTHORS 2013-08-29 10:25:52 +05:30
Kesha Shah 3c66a0018a Installed generated headers 2013-08-29 10:25:52 +05:30
Kesha Shah 6105b5be57 Installed other headers from include/* 2013-08-29 10:25:52 +05:30
Kesha Shah a37b8c3d99 Install headers of src/exppp at correct location 2013-08-29 10:25:52 +05:30
Kesha Shah b855ed0ef1 Install headers of src/express at correct location 2013-08-29 10:25:52 +05:30
Kesha Shah 1e78840357 Installed headers from src/clstepcore 2013-08-29 10:25:52 +05:30
Kesha Shah 3bc804192e Installed headers from src/clutils 2013-08-29 10:25:52 +05:30
Kesha Shah 474e58908e Installed headers from src/cllazzyfile 2013-08-29 10:25:51 +05:30
Kesha Shah eb4e271e39 Installed headers from src/cleditor 2013-08-29 10:25:51 +05:30
Kesha Shah a55bcf501e Installed headers from src/cldai 2013-08-29 10:25:51 +05:30
Kesha Shah d2c9dea8bc Installed headers from src/base 2013-08-29 10:25:51 +05:30
Kesha Shah 35fa4e1829 Initializing some variables in main CMakeLists.txt 2013-08-29 10:25:44 +05:30
Cliff Yapp 5126b48e3f Rename fedex_python and fedex_plus to exp2python and exp2cxx respectively. 2013-08-28 21:57:46 -04:00
Mark 76e2b2bcb2 Merge pull request #253 from starseeker/master
Merge local BRL-CAD changes
2013-08-28 14:47:44 -07:00
Cliff Yapp 4285a7d0c9 Wrap headers that aren't present on Windows. 2013-08-26 22:20:35 -04:00
Cliff Yapp 83f5d01924 Export the orderedAttrs functions for Windows 2013-08-26 22:19:11 -04:00
Cliff Yapp 20d1a5f3a2 Put usage statement in library for re-use 2013-08-26 22:18:01 -04:00
Cliff Yapp 6947e47fb2 Windows doesn't have strcasecmp 2013-08-26 22:16:31 -04:00
Cliff Yapp 080de728b2 Add some newlines to the printing of complex entities for readibility 2013-08-26 22:15:25 -04:00
Cliff Yapp 81c793cd2e Match type to the _buff type - mismatch was an error in clang 2013-08-26 22:13:56 -04:00
Cliff Yapp c0566fec27 Add newline 2013-08-26 22:12:46 -04:00
Cliff Yapp fba49fff2f Clear 'extra ';' inside a class' warnings 2013-08-26 22:11:44 -04:00
Cliff Yapp f413047cde Clear declaration-after-statement warnings 2013-08-26 22:10:27 -04:00
Cliff Yapp b559053d2a Apply BRL-CAD r56968 from n_reed - address leak identified by valgrind 2013-08-26 22:08:34 -04:00
Cliff Yapp 0907ecc592 Apply BRL-CAD r56875 - Quote the time stamp in the STEP output. 2013-08-26 22:06:13 -04:00
Mark da3fe4543f Merge pull request #250 from starseeker/master
Merge local BRL-CAD changes
2013-08-14 15:16:07 -07:00
Mark a60e03dd7a Merge pull request #248 from stepcode/review/diamond
Handle diamond inheritance, treat derived attributes correctly
2013-08-14 15:15:37 -07:00
Mark Pictor 35cc0f2c63 travis-ci: don't bother with gcc since clang is faster 2013-08-14 17:55:36 -04:00
Mark Pictor 99a8787c1f generated code: improve formatting some more 2013-08-14 17:55:36 -04:00
Mark Pictor e165c2a237 eliminate unnecessary variable, formatting 2013-08-14 17:50:06 -04:00
Mark Pictor 25162d1109 int first -> bool first 2013-08-14 17:50:06 -04:00
Mark Pictor 4c06e9d000 generated code: change addAttr type/behavior, fix #240 (diamond inheritance)
* make addAttrs a bool
* invert the sense of its default value ( 0 -> true )
* pass addAttrs on, unmodified
  - duplicate attributes are ignored by STEPattributeList::push()
* also initialize the parent class
2013-08-14 17:50:06 -04:00
Mark Pictor 7068470299 generated code: improve formatting
* also change one warning to print on a single line
2013-08-14 17:45:31 -04:00
Mark Pictor 3aea98074c cleanup, mostly in fedex_plus/classes.c 2013-08-14 17:45:31 -04:00
Mark Pictor f9a9d6e2a2 Modify GetSTEPattribute() and MakeDerived() in SDAI_Application_instance
* For issue #232
* Add a new param named `entity`
* Used in generated code to ensure that the correct attr is being marked as derived.
2013-08-14 17:45:31 -04:00
Mark 8e236bfda7 Merge pull request #247 from stepcode/ks/CPPcheck
Ks/cppcheck - fix some of the problems reported by cppcheck
2013-08-14 14:40:49 -07:00
Kesha Shah cc906fc1d4 Reducing the scope of variables 2013-08-14 17:38:44 -04:00
Kesha Shah 44efa0d52e C style pointer casting 2013-08-14 17:38:44 -04:00
Kesha Shah 86c11b8baf strncpy() '\0' terminated 2013-08-14 17:38:44 -04:00
Kesha Shah 5b4118ee6d sscanf() to prevent overflow 2013-08-14 17:38:44 -04:00
Kesha Shah a1d2471e7c Prefer Preincrement/Decrement 2013-08-14 17:38:43 -04:00
Kesha Shah 08d5407259 Unused Variables Removed 2013-08-14 17:38:43 -04:00
Cliff Yapp 1ffac4e7e8 r56686 - clear compiler warning 2013-08-13 22:56:05 -04:00
Cliff Yapp 5539ad55f3 r55979 - explicitely cast stream position before comparison to avoid an ambiguous overload for the == operator 2013-08-13 22:53:59 -04:00
Cliff Yapp 436f34efb5 r55978 - force 64b constants to use unsigned long long instead of compile native long, which is too small on 32b machines 2013-08-13 22:52:25 -04:00
Cliff Yapp 8c890db78e r55977 - malloc.h has been replaced by stdlib.h 2013-08-13 22:51:16 -04:00
Cliff Yapp ba7675a71c apply r55331 - use delete[] to free new[] memory 2013-08-13 22:49:48 -04:00
Cliff Yapp 4bc010884a Quell unused variable warning - I *think* this is what this function is actually supposed to do? 2013-08-13 22:48:04 -04:00
Mark 352fd6d66e Merge pull request #246 from stepcode/review/print_attrs
print_attrs executable / multiple inheritance
2013-07-29 05:54:25 -07:00
Mark 362c41cb61 Merge pull request #245 from stepcode/review/cleanup
Review/cleanup
2013-07-21 17:48:50 -07:00
Mark Pictor 2babafddc9 create ordered_attrs.*, use in print_attrs
this contains code to print attributes in the proper order for Part 21
2013-07-20 20:38:28 -04:00
Mark Pictor c45b22aff1 tests for issue #232: missing asterisk for derived attribute / data lost
schema has multiple inheritance where two attrs with same name are inherited
one is derived, the other isn't
stepcode complains that an asterisk was missing when it encounters the non-derived attr

this bug exposed by AP209 ATS files
2013-07-20 20:38:28 -04:00
Mark Pictor 6f74459022 add print_attrs test executable for libexpress, add CMakeLists for src/express/test 2013-07-20 20:38:28 -04:00
Mark Pictor c1f4835ed3 add schema with diamond inheritance 2013-07-20 20:38:28 -04:00
Mark Pictor 2b783b770f cleanup, make it possible to print libexpress option help from external code 2013-07-20 20:38:28 -04:00
Mark Pictor 2a4666ee4e modify symlink.c to only print the schema names, rename it 2013-07-20 20:38:28 -04:00
Mark Pictor 24c08ebc6c add symlink.c, removed in 23cf6a5ad5 Aug 2011 2013-07-20 20:38:27 -04:00
Mark Pictor 9ff9b8e5c1 travis-ci: -j3 is slow, try -j2; pulls are checked, so skip review branches 2013-07-20 20:37:31 -04:00
Mark Pictor b6f708a8a7 silence two Wundef warnings 2013-07-20 20:36:17 -04:00
Mark Pictor f94fd4a4e0 minor cleanup 2013-07-20 20:36:13 -04:00
Mark Pictor c121444d29 K&R declaration for LISTfree() 2013-07-20 20:36:08 -04:00
Mark Pictor df14d81d2f remove unused LISTcreate_with() macro
also removes even older function in an `#if 0` block
2013-07-20 20:36:03 -04:00
Mark Pictor c08dcddcc8 add (commented out) ParseTrace function for lemon parser debugging 2013-07-20 20:35:58 -04:00
Mark Pictor 906dc3a28c doxify a comment that looks important, also copied to sc wiki 2013-07-20 20:35:51 -04:00
Mark Pictor 28d636d428 missed two macros during SCL_->SC_ rename 2013-07-20 20:35:36 -04:00
Mark Pictor b468d27522 libexpress is no longer a dependency of the class libs
great!
2013-07-20 20:35:24 -04:00
Mark Pictor c6b0a5d810 Print warning message when SC_BUILD_SCHEMAS is unset 2013-07-20 20:35:06 -04:00
Mark 4825256b53 Merge pull request #243 from stepcode/review/remove-wseds
remove 203wseds schema and files
2013-07-19 17:37:53 -07:00
Mark 362a238c0e Merge pull request #242 from stepcode/review/exppp
trivial fix for #241, exppp segfault
2013-07-18 17:08:02 -07:00
Mark Pictor b0d9936ed6 try parallel build on travis-ci 2013-07-16 20:44:33 -04:00
Mark Pictor 1e72fa4ce2 remove 203wseds schema and files
the schema is outdated and the files do not match it; I haven't found the time to modify the files
2013-07-16 20:43:16 -04:00
Mark Pictor c453fce415 trivial fix for #241, exppp segfault 2013-07-16 20:15:33 -04:00
Mark Pictor 870b0b378e oops, fix .travis.yml 2013-06-23 15:51:04 -04:00
Mark Pictor c3b947f357 add yml for travis-ci 2013-06-23 15:46:55 -04:00
Mark 763594360f Merge pull request #237 from stepcode/review/lazy-complex
Lazy loading complex instances
2013-06-04 17:51:45 -07:00
Mark Pictor fc745dd9c7 oops, need to look for comments after the '=' as well 2013-05-30 21:12:07 -04:00
Mark Pictor 81ea38ab53 cleanup, quell some warnings 2013-05-30 20:41:59 -04:00
Mark Pictor 345caa836b fix segfault exposed by lazy loading complex instances 2013-05-30 20:41:26 -04:00
Mark Pictor b8ae949068 entity descriptor should probably be const 2013-05-30 18:18:34 -04:00
Mark Pictor 496ab9bd07 initialize entity descriptor in one more place. Still missing something... 2013-05-30 18:18:34 -04:00
Mark Pictor 5440688be0 add to TODO list for lazyInstanceMgr 2013-05-30 18:18:34 -04:00
Mark Pictor b9b6dcf17c lazy_test: function to print complex entity info - commented out
Commented out because many eDescs are invalid. Cause unknown; suspect
the situation is the same in p21read / STEPfile.
2013-05-30 18:16:05 -04:00
Mark dc4a783f18 Merge pull request #236 from stepcode/review/merged_schema
Add AP214/AP242 merged schema
2013-05-29 18:29:32 -07:00
Mark Pictor e0ab04a719 add comment about modifications, rename the file 2013-05-25 12:50:50 -04:00
Mark Pictor 91f56a6a24 fix unknown attr errors by commenting out(!) the offending lines 2013-05-25 12:42:02 -04:00
Mark Pictor c2e4c8b937 fix missing supertype for resulting_path
ERROR: Entity motion_link_relationship missing from supertype list for subtype resulting_path
2013-05-24 15:26:44 -04:00
STEPTools 0c4f98be53 add STEPTools merged schema 2013-05-24 15:25:38 -04:00
Cliff Yapp 47bc6ffd6b Make the generate_cpp custom targets depend explicitly on FEDEX_OUT files, which are in turn generated by the preceeding custom command. This is an attempt to improve parallel building. 2013-05-23 22:08:37 -04:00
Mark Pictor 4f74efe76e clean up stdout 2013-04-23 21:30:57 -04:00
Mark Pictor 9c2e14900c disable lazy loading code on windows, since import/export macros don't exist yet 2013-04-23 21:30:57 -04:00
Mark Pictor 43d33b266b no compile errors or segfaults, but loading complex instances still needs work 2013-04-23 21:30:57 -04:00
Mark Pictor 14ea171688 initial work on lazy loading complex instances 2013-04-23 21:27:01 -04:00
Mark Pictor 0742cfd52d fix arg error message 2013-04-23 21:14:26 -04:00
319 changed files with 47532 additions and 149254 deletions
+12
View File
@@ -0,0 +1,12 @@
language: cpp
compiler:
- clang
script: mkdir build && cd build && cmake .. -DSC_ENABLE_TESTING=ON && make -j2 && make -j2 test
branches:
only:
- master
notifications:
irc: "chat.freenode.net#stepcode"
email: scl-dev@groups.google.com
on_success: change
on_failure: always
+4
View File
@@ -9,9 +9,12 @@ Easterbrook, Zach (lainiwakurax)
Greenwald, Erik (erikg, erikgreenwald)
Lanning, Craig (craigl64)
Loman, David (davidloman)
McDonald, Rob (ramcdona)
Morrison, Christopher Sean (sean, morrison, brlcad)
Paviot, Thomas (tpaviot)
Pictor, Mark (mpictor)
Reed, Nick (nickreed)
Shah, Kesha (kesha)
Thomas, Dawn (homovulgaris, madant)
Wouters, Dave (davyw)
Yapp, Clifford (starseeker)
@@ -19,6 +22,7 @@ Yapp, Clifford (starseeker)
Special thanks:
Lubbell, Joshua (NIST)
Stirk, Charlie (CostVision)
Thurman, Tom (TRThurman)
Between 2005 and 2006, Stefan Richter worked to make SCL compatible with
modern ANSI/ISO C++, and modified the build system. His patches are at
+57 -35
View File
@@ -1,4 +1,4 @@
# C M A K E L I S T S . T X T F O R S C L
# C M A K E L I S T S . T X T F O R S T E P C O D E
#
# This file is Copyright (c) 2010 United States Government as
# represented by the U.S. Army Research Laboratory.
@@ -56,6 +56,18 @@ IF(COMMAND CMAKE_POLICY)
CMAKE_POLICY(SET CMP0003 NEW)
ENDIF(COMMAND CMAKE_POLICY)
IF( NOT DEFINED INCLUDE_INSTALL_DIR )
SET( INCLUDE_INSTALL_DIR include )
ENDIF( NOT DEFINED INCLUDE_INSTALL_DIR )
IF( NOT DEFINED LIB_INSTALL_DIR )
SET( LIB_INSTALL_DIR lib )
ENDIF( NOT DEFINED LIB_INSTALL_DIR )
IF( NOT DEFINED BIN_INSTALL_DIR )
SET( BIN_INSTALL_DIR bin )
ENDIF( NOT DEFINED BIN_INSTALL_DIR )
IF( NOT DEFINED SC_BUILD_TYPE )
SET( SC_BUILD_TYPE "Debug" CACHE STRING "Build type" ) # By default set debug build
ENDIF( NOT DEFINED SC_BUILD_TYPE )
@@ -79,18 +91,19 @@ OPTION_WITH_DEFAULT(SC_BUILD_SHARED_LIBS "Build shared libs" ON )
# don't build static libs by default
OPTION_WITH_DEFAULT(SC_BUILD_STATIC_LIBS "Build static libs" OFF)
OPTION_WITH_DEFAULT(SC_PYTHON_GENERATOR "Compile fedex_python" ON)
OPTION_WITH_DEFAULT(SC_CPP_GENERATOR "Compile fedex_plus" ON)
OPTION_WITH_DEFAULT(SC_PYTHON_GENERATOR "Compile exp2python" ON)
OPTION_WITH_DEFAULT(SC_CPP_GENERATOR "Compile exp2cxx" ON)
OPTION_WITH_DEFAULT(SC_MEMMGR_ENABLE_CHECKS "Enable sc_memmgr's memory leak detection" OFF)
OPTION_WITH_DEFAULT(SC_TRACE_FPRINTF "Enable extra comments in generated code so the code's source in fedex_plus may be located" OFF)
OPTION_WITH_DEFAULT(SC_TRACE_FPRINTF "Enable extra comments in generated code so the code's source in exp2cxx may be located" OFF)
if(NOT DEFINED SC_SDAI_ADDITIONAL_EXES_SRCS )
set( SC_SDAI_ADDITIONAL_EXES_SRCS "" CACHE STRING "Source files for additional executables to be linked with SDAI libs" )
endif(NOT DEFINED SC_SDAI_ADDITIONAL_EXES_SRCS )
#this makes SC_BUILD_SCHEMAS show up in cmake-gui
if( NOT DEFINED SC_BUILD_SCHEMAS )
set( SCHEMAS_WARNING TRUE )
#this makes SC_BUILD_SCHEMAS show up in cmake-gui
SET(SC_BUILD_SCHEMAS "ALL" CACHE string "Semicolon-separated list of paths to EXPRESS schemas to be built" )
endif( NOT DEFINED SC_BUILD_SCHEMAS )
@@ -175,28 +188,31 @@ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
#-----------------------------------------------------------------------------
# Output directories.
IF(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
ENDIF(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
IF(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all archives.")
ENDIF(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
IF(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${SC_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all executables.")
ENDIF(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
# When this is a subbuild, assume that the parent project controls these
IF( NOT SC_IS_SUBBUILD )
IF(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
ENDIF(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
IF(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all archives.")
ENDIF(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
IF(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${SC_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all executables.")
ENDIF(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
FOREACH(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
STRING(TOUPPER "${CFG_TYPE}" CFG_TYPE)
IF(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}")
SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
ENDIF(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}")
IF(NOT "CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}")
SET("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all archives.")
ENDIF(NOT "CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}")
IF(NOT "CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}")
SET("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SC_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all executables.")
ENDIF(NOT "CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}")
ENDFOREACH()
FOREACH(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
STRING(TOUPPER "${CFG_TYPE}" CFG_TYPE)
IF(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}")
SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
ENDIF(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}")
IF(NOT "CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}")
SET("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all archives.")
ENDIF(NOT "CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}")
IF(NOT "CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}")
SET("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SC_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all executables.")
ENDIF(NOT "CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}")
ENDFOREACH()
ENDIF( NOT SC_IS_SUBBUILD )
#-----------------------------------------------------------------------------
@@ -347,7 +363,7 @@ cmake_pop_check_state()
# Now that all the tests are done, configure the sc_cf.h file:
get_property(CONFIG_H_FILE_CONTENTS GLOBAL PROPERTY SC_CONFIG_H_CONTENTS)
file(WRITE ${CONFIG_H_FILE} "${CONFIG_H_FILE_CONTENTS}")
configure_file(${CONFIG_H_FILE} ${SC_BINARY_DIR}/include/sc_cf.h)
configure_file(${CONFIG_H_FILE} ${SC_BINARY_DIR}/${INCLUDE_INSTALL_DIR}/sc_cf.h)
################ create sc_version_string.h, http://stackoverflow.com/questions/3780667
# Using 'ver_string' instead of 'sc_version_string.h' is a trick to force the
@@ -356,12 +372,12 @@ configure_file(${CONFIG_H_FILE} ${SC_BINARY_DIR}/include/sc_cf.h)
configure_file(${SC_CMAKE_DIR}/sc_version_string.cmake ${SC_BINARY_DIR}/sc_version_string.cmake @ONLY)
add_custom_target(version_string ALL DEPENDS ver_string )
# creates sc_version_string.h using cmake script
add_custom_command(OUTPUT ver_string ${CMAKE_CURRENT_BINARY_DIR}/include/sc_version_string.h
add_custom_command(OUTPUT ver_string ${CMAKE_CURRENT_BINARY_DIR}/${INCLUDE_INSTALL_DIR}/sc_version_string.h
COMMAND ${CMAKE_COMMAND} -DSOURCE_DIR=${SC_SOURCE_DIR}
-DBINARY_DIR=${SC_BINARY_DIR}
-P ${SC_BINARY_DIR}/sc_version_string.cmake)
# sc_version_string.h is a generated file
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/include/sc_version_string.h
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${INCLUDE_INSTALL_DIR}/sc_version_string.h
PROPERTIES GENERATED TRUE
HEADER_FILE_ONLY TRUE )
################
@@ -385,15 +401,15 @@ include_directories(
ADD_SUBDIRECTORY(src/base)
ADD_SUBDIRECTORY(src/express)
ADD_SUBDIRECTORY(src/exppp)
ADD_SUBDIRECTORY(src/fedex_plus)
ADD_SUBDIRECTORY(src/fedex_python)
ADD_SUBDIRECTORY(src/exp2cxx)
ADD_SUBDIRECTORY(src/exp2python)
ADD_SUBDIRECTORY(src/clstepcore)
ADD_SUBDIRECTORY(src/cleditor)
ADD_SUBDIRECTORY(src/cldai)
ADD_SUBDIRECTORY(src/clutils)
if(NOT WIN32)
ADD_SUBDIRECTORY(src/cllazyfile)
endif(NOT WIN32)
if( NOT WIN32 ) # don't build cllazyfile on windows until export/import macros are in place
ADD_SUBDIRECTORY( src/cllazyfile )
endif( NOT WIN32 )
ADD_SUBDIRECTORY(include)
ADD_SUBDIRECTORY(data)
IF(SC_ENABLE_TESTING)
@@ -401,9 +417,15 @@ IF(SC_ENABLE_TESTING)
ENDIF(SC_ENABLE_TESTING)
ADD_SUBDIRECTORY(doc)
if( SCHEMAS_WARNING )
message( "** CMake variable SC_BUILD_SCHEMAS was not set. Defaults to building ALL schemas, which will take a")
message(" while; see http://stepcode.org/mw/index.php?title=STEPcode_CMake_variables#SC_BUILD_SCHEMAS" )
endif( SCHEMAS_WARNING )
message( ".. Don't worry about any messages above about missing headers or failed tests, as long as\n you see '-- Configuring done' below. Headers and features vary by compiler." )
# this is for testing - 'make core' builds everything that isn't generated
add_custom_target( core )
add_dependencies( core stepdai check-express stepeditor fedex_plus )
add_dependencies( core stepdai check-express stepeditor exp2cxx )
if(NOT SC_IS_SUBBUILD)
###############################################################################
+28 -28
View File
@@ -31,7 +31,7 @@ New since v0.5:
* Add AP219, AP238, PDM schema, AP203a1, syntax highlighting files
* Improvements to CMake files, mostly from Cliff @ BRL-CAD (#143, #163, #181)
* Allow runtime bounds for aggregates (discovered with AP209e2) (#166)
* fedex_plus fprintf's can be traced with -DSCL_TRACE_FPRINTF=ON (#176)
* exp2cxx fprintf's can be traced with -DSCL_TRACE_FPRINTF=ON (#176)
************************************************************************
Release 0.5 (Feb 23, 2012)
@@ -42,7 +42,7 @@ New since v0.4:
with the exception of AP209 CD, are parsed without error. Enums are
now in their own dictionary. Allow indexing on aggregates, generics,
and binaries.
* Changes to fedex_plus that improve the generated c++ - use a
* Changes to exp2cxx that improve the generated c++ - use a
namespace, break up large static strings, make EXPRESS multiple
inheritance work by not printing multiple copies of inherited members.
All schemas now compile without error, but there are numerous warnings.
@@ -55,7 +55,7 @@ Release 0.4 (Nov 13, 2011)
New since v0.3:
* Improve p21read performance by ~30%
* Improve fedex_plus performance by ~4300% (!)
* Improve exp2cxx performance by ~4300% (!)
* A variable defined in a LOCAL is not required to have a type label
(affected ap242,210e3,209)
* Enums and entities are allowed to have the same names
@@ -81,7 +81,7 @@ Release 0.2 (Oct 1, 2011)
What's new since v0.1?
* Retrieve aggregate type from the underlying type (issue #4)
* Fix aggregate select types naming convention in fedex_plus (issue #59)
* Fix aggregate select types naming convention in exp2cxx (issue #59)
* Fix several segfaults and double free's in p21read (issue #63)
* Fix several file read/write bugs in p21read, including
* don't write '$' for empty string
@@ -113,7 +113,7 @@ What's new since the SCL 3.2 release in 1998?
* Bring SCL closer to alignment with modern coding standards - replace
String class with std::string, fix all GCC warnings
* Builds on Linux, OSX, and Windows; requires mingw on Windows.
* Add debugging option -d 9 -l nnn -u nnn to fedex_plus. This limits
* Add debugging option -d 9 -l nnn -u nnn to exp2cxx. This limits
parser debug output to a specified range of lines in the schema.
For a detailed list of changes, see
@@ -194,7 +194,7 @@ REFERENCE FROM clauses, global rules, PROCEDUREs, and
FUNCTIONS. Information about these objects is available but validation
based on it is not performed.
- enhanced fedex_plus C++ code generator to generate the necessary
- enhanced exp2cxx C++ code generator to generate the necessary
dictionary objects for the above EXPRESS constructs for a particular
schema. Also enhanced schema dictionary code generation to add
information necessary to generate an EXPRESS schema (i.e. which
@@ -332,14 +332,14 @@ namespace or prefix as is necessary. To change the SDAI namespace name
or prefix name the macro definition for SDAI_ could be changed in
the sclprefixes.h file.
The early bound access functions that are generated by fedex_plus from
The early bound access functions that are generated by exp2cxx from
EXPRESS defined entities have been updated to the latest version of
Part 23's C++ binding to SDAI. A previous early bound function defined
as "const SdaiLabel Name()" would now be defined according to Part 23 as
"const SdaiLabel name_()". *notice* that application schema defined
types are not yet defined in a namespace. Compatibility with previous
versions of SCL early bound functions has been maintained via the -a
fedex_plus option.
exp2cxx option.
-----------------------------------------------------
SDAI Session Schema objects implemented (model_contents, extents, etc)
@@ -349,7 +349,7 @@ Several classes and types defined as part of SDAI Part 23's Session
Schema have been implemented (where before they mostly had stub
functions). These have been implemented for use with or without the
ObjectStore object oriented database. Model_contents_<schema_name> is
now being generated by fedex_plus allowing Entity_extents to be
now being generated by exp2cxx allowing Entity_extents to be
maintained for entities as desired.
-----------------------------------------------------
@@ -365,7 +365,7 @@ database.
The SCL application, fedex_os, uses an application schema written in
EXPRESS to generate additional code needed for use with ObjectStore.
Fedex_os is used in conjunction with fedex_plus for generating the C++
Fedex_os is used in conjunction with exp2cxx for generating the C++
necessary to implement your application schema.
Although building SCL libraries for use with ObjectStore is
@@ -410,7 +410,7 @@ schema. The generation of IDL schemas by fedex_idl is according to
STEP's Part 26 Interface Definition Language binding to the SDAI. The
Orbix IDL compiler is then used to generate the client and server code
necessary for communication through an Orbix ORB. The SCL application,
fedex_plus, would then be run with the -c option on your application's
exp2cxx, would then be run with the -c option on your application's
EXPRESS schema to generate the server implementation objects required
to build an Orbix server (it uses the TIE approach). You would be
required to write the C++ main() function for the server code.
@@ -457,7 +457,7 @@ MULTIPLE SCHEMA SUPPORT
A library and Data Probe can now be generated for an EXPRESS file
containing multiple schemas. This is done primarily by dividing the
source code generated by fedex_plus into separate files. Separate
source code generated by exp2cxx into separate files. Separate
files are generated for each schema contained in the EXPRESS file. In
addition, often schemas are dependent on one another. This will be
the case if the schemas use and reference entities and types from each
@@ -465,7 +465,7 @@ other. If, for example, entity X in schema A is a subtype of entity Y
in schema B, X will not be processed until B in schema Y is processed.
Other such cases of interdependence occur if an entity in schema A
contains as an attribute an enumeration or select type defined in
another schema. To address such cases, fedex_plus may process a
another schema. To address such cases, exp2cxx may process a
schema in multiple passes. At each pass, only the objects in the
schema which are not dependent on not-yet-processed objects in other
schemas are processed. At each successive pass through the schemas as
@@ -477,16 +477,16 @@ B which is a supertype of C, etc.).
For an EXPRESS file with multiple dependent schemas, it is advisable
to organize the file with bottom-up design. Schemas containing the
simpler, building block types and entities should appear first. By
doing so, when fedex_plus begins processing the more complex schemas,
doing so, when exp2cxx begins processing the more complex schemas,
there will be fewer cases in which the parser will encounter not-yet-
defined objects from other schemas. (The objects which are referenced
the most will have already been defined.) This will minimize the
number of times fedex_plus is required to divide output files.
number of times exp2cxx is required to divide output files.
One known case of interdependence which fedex_plus is not able to
One known case of interdependence which exp2cxx is not able to
support occurs if say select A has select B as an item, and select B
has select A as an item. (This is unsupported even if A and B are in
the same schema.) fedex_plus has no way in which it can generate
the same schema.) exp2cxx has no way in which it can generate
compilable source code for the selects because each is dependent on
the other. In addition, this would cause the parser to fall into an
endless loop, so we strongly discourage it. ;-)
@@ -598,18 +598,18 @@ see below, next section.)
level, bypassing STEPfile. STEPentity will allow the initialization
but will place a warning in its errorDesc field.)
3. fedex_plus may be compiled with the flag COMPLEX_INFO. If this
flag is turned on, fedex_plus prints out (to `cout') a large amount of
3. exp2cxx may be compiled with the flag COMPLEX_INFO. If this
flag is turned on, exp2cxx prints out (to `cout') a large amount of
detail on the complex entities it finds and their overall structure.
This is useful to see how fedex interpreted the complex information of
an EXPRESS file, and to get a simple graphical view of the supertype-
subtype hierarchy of the file.
fedex_plus's makefile contains the commented-out line,
exp2cxx's makefile contains the commented-out line,
#USER_DEFS = -DCOMPLEX_INFO
If this line is uncommented, a fedex_plus executable will be built
If this line is uncommented, a exp2cxx executable will be built
which prints such information.
Limitations
@@ -646,12 +646,12 @@ the renaming of an individual entity places it out of order, the nodes
will be printed out of order.
4. "Diamond inheritance" is not handled automatically and must be
fixed by hand in the code generated by fedex_plus. (See
fixed by hand in the code generated by exp2cxx. (See
whatsnew.2-1.txt, section "Multiple Inheritance".)
5. Selects between aggregates: A select containing two aggregate
choices of the same type (e.g., ARRAY and ARRAY, as opposed to ARRAY
and SET) will cause fedex_plus to generate code which cannot be
and SET) will cause exp2cxx to generate code which cannot be
compiled.
6. Problem with sparcworks compiler version 4.0(?) - operator int() =
@@ -692,14 +692,14 @@ ANY OTHER PARTY.
What's new in the STEP Class Library and Data Probe release 2.1
June 1995
This release of the STEP Class Library (SCL), fedex_plus code
This release of the STEP Class Library (SCL), exp2cxx code
generator, and Data Probe also contains the latest releases of the
fedex syntax and semantic checker, the NIST Express Toolkit (also new
on SOLIS as of June 12, 1995), and the Express Pretty Printer Toolkit.
The NIST Express Toolkit and fedex have been updated to handle the IS
version of Express and various problems have been fixed as a result of
pre-validation conformance testing. Following is an overview of
what's new in the STEP Class Library (and hence fedex_plus) and the
what's new in the STEP Class Library (and hence exp2cxx) and the
Data Probe.
--------------------
@@ -775,10 +775,10 @@ inheritance hierarchy. This will not have an adverse affect on the
implemementation. The user may choose to use the current or previous
method of handling multiple inheritance. The current method is the
default behavior. The previous method is obtained by supplying the
-s (or -S) option with the fedex_plus code generator or the mkProbe
-s (or -S) option with the exp2cxx code generator or the mkProbe
script.
When the fedex_plus code generator is generating the C++ class library
When the exp2cxx code generator is generating the C++ class library
representation of a schema, it outputs information calling attention
to the cases of multiple inheritance.
@@ -1038,7 +1038,7 @@ functions.
--------
Attributes of type Boolean and aggregate of Boolean were previously
implemented using the Logical and Logicals classes (respectively).
The fedex_plus code generator now generates classes Boolean and
The exp2cxx code generator now generates classes Boolean and
Booleans to implement attributes of type Boolean and aggregate of
Boolean respectively.
+1 -5
View File
@@ -32,13 +32,9 @@ macro(VERIFY_FILES filelist warn resultvar)
MD5(${filefullname} ${filevar}_md5)
if(NOT "${${filevar}_md5}" STREQUAL "${baseline_${filevar}_md5}")
if("${warn}" STREQUAL "1")
message("\n${filename} differs from baseline: baseline md5 hash is ${baseline_${filevar}_md5} and current hash is ${${filevar}_md5}\n")
message("\n${filename} differs from baseline: baseline md5 hash is ${baseline_${filevar}_md5} and current hash is ${${filevar}_md5}\n")
endif("${warn}" STREQUAL "1")
set(${resultvar} 0)
else(NOT "${${filevar}_md5}" STREQUAL "${baseline_${filevar}_md5}")
if("${warn}" STREQUAL "1")
message("${fileitem} OK")
endif("${warn}" STREQUAL "1")
endif(NOT "${${filevar}_md5}" STREQUAL "${baseline_${filevar}_md5}")
endforeach(fileitem ${filelist})
endmacro(VERIFY_FILES filelist resultvar)
+14 -9
View File
@@ -95,24 +95,29 @@ MACRO(SC_ADDLIB libname srcslist libslist)
endif(APPLE)
ENDIF(SC_BUILD_SHARED_LIBS)
IF(SC_BUILD_STATIC_LIBS AND NOT MSVC)
add_library(${libname}-static STATIC ${srcslist})
DEFINE_DLL_EXPORTS(${libname}-static)
if( NOT SC_BUILD_SHARED_LIBS )
set( staticlibname "${libname}" )
else()
set( staticlibname "${libname}-static" )
endif( NOT SC_BUILD_SHARED_LIBS )
add_library(${staticlibname} STATIC ${srcslist})
DEFINE_DLL_EXPORTS(${staticlibname})
if(NOT ${libs} MATCHES "NONE")
target_link_libraries(${libname}-static "${libslist}")
DEFINE_DLL_IMPORTS(${libname}-static ${libslist} )
target_link_libraries(${staticlibname} "${libslist}")
DEFINE_DLL_IMPORTS(${staticlibname} ${libslist} )
endif(NOT ${libs} MATCHES "NONE")
IF(NOT WIN32)
SET_TARGET_PROPERTIES(${libname}-static PROPERTIES OUTPUT_NAME "${libname}")
SET_TARGET_PROPERTIES(${staticlibname} PROPERTIES OUTPUT_NAME "${libname}")
ENDIF(NOT WIN32)
IF(WIN32)
# We need the lib prefix on win32, so add it even if our add_library
# wrapper function has removed it due to the target name - see
# http://www.cmake.org/Wiki/CMake_FAQ#How_do_I_make_my_shared_and_static_libraries_have_the_same_root_name.2C_but_different_suffixes.3F
SET_TARGET_PROPERTIES(${libname}-static PROPERTIES PREFIX "lib")
SET_TARGET_PROPERTIES(${staticlibname} PROPERTIES PREFIX "lib")
ENDIF(WIN32)
EXCLUDE_OR_INSTALL( ${libname}-static "lib" "${ARGV3}" )
EXCLUDE_OR_INSTALL( ${staticlibname} "lib" "${ARGV3}" )
if(APPLE)
set_target_properties(${libname}-static PROPERTIES LINK_FLAGS "-flat_namespace -undefined suppress")
set_target_properties(${staticlibname} PROPERTIES LINK_FLAGS "-flat_namespace -undefined suppress")
endif(APPLE)
ENDIF(SC_BUILD_STATIC_LIBS AND NOT MSVC)
# Enable extra compiler flags if local libraries and/or global options dictate
@@ -127,7 +132,7 @@ MACRO(SC_ADDLIB libname srcslist libslist)
SET_TARGET_PROPERTIES(${libname} PROPERTIES COMPILE_FLAGS ${LOCAL_COMPILE_FLAGS})
ENDIF(BUILD_SHARED_LIBS)
IF(BUILD_STATIC_LIBS AND NOT MSVC)
SET_TARGET_PROPERTIES(${libname}-static PROPERTIES COMPILE_FLAGS ${LOCAL_COMPILE_FLAGS})
SET_TARGET_PROPERTIES(${staticlibname} PROPERTIES COMPILE_FLAGS ${LOCAL_COMPILE_FLAGS})
ENDIF(BUILD_STATIC_LIBS AND NOT MSVC)
ENDIF(LOCAL_COMPILE_FLAGS)
ENDMACRO(SC_ADDLIB libname srcslist libslist)
+5 -3
View File
@@ -45,9 +45,11 @@ if(NOT DEBUGGING_GENERATED_SOURCES)
VERIFY_FILES("${template_files}" 1 templates_unchanged)
set(cached_files "@CACHED_FILELIST@")
VERIFY_FILES("${cached_files}" 1 cached_unchanged)
if(NOT cached_unchanged)
message(FATAL_ERROR "Cached generated sources do not match the MD5 hashes present in @BASELINE_INFORMATION_FILE@ - if updating cached sources, remember that the build enforces the requirement that associated MD5 hashes in @BASELINE_INFORMATION_FILE@ are current as well. Cached generated sources should not be directly edited.")
endif(NOT cached_unchanged)
if(cached_unchanged)
message( "Cached generated source code has not been modified.")
else()
message(FATAL_ERROR "Cached generated sources do not match the MD5 hashes present in /home/mark/step/sc/src/express/generated/verification_info.cmake - if updating cached sources, remember that the build enforces the requirement that associated MD5 hashes in /home/mark/step/sc/src/express/generated/verification_info.cmake are current as well. Cached generated sources should not be directly edited.")
endif(cached_unchanged)
GET_GENERATOR_EXEC_VERSIONS()
+40 -18
View File
@@ -1,30 +1,35 @@
#use git for a pretty commit id
#uses 'git describe --tags', so tags are required in the repo
#create a tag with 'git tag <name>' and 'git push --tags'
# creates sc_version_string.h, which defines sc_version()
# sc_version() returns a pretty commit description and a build timestamp.
# http://stackoverflow.com/questions/3780667
# http://www.cmake.org/pipermail/cmake/2009-February/027014.html
#sc_version_string.h defines sc_version() which returns a pretty commit description and a build timestamp.
set(SC_IS_SUBBUILD "@SC_IS_SUBBUILD@")
#---------- find commit id ------------------
#use git for a pretty commit id
#uses 'git describe --tags', so tags are required in the repo
#create a tag with 'git tag <name>' and 'git push --tags'
#if git can't be found, uses contents of SC_VERSION.txt
set(VERS_FILE ${SOURCE_DIR}/SC_VERSION.txt )
if( EXISTS ${SOURCE_DIR}/.git )
find_package(Git QUIET)
if(GIT_FOUND)
execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags RESULT_VARIABLE res_var OUTPUT_VARIABLE GIT_COMMIT_ID )
execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags WORKING_DIRECTORY ${SOURCE_DIR}
RESULT_VARIABLE res_var OUTPUT_VARIABLE GIT_COMMIT_ID )
if( NOT ${res_var} EQUAL 0 )
file( READ ${VERS_FILE} GIT_COMMIT_ID LIMIT 255 )
if(NOT SC_IS_SUBBUILD)
if(NOT SC_IS_SUBBUILD)
message( WARNING "Git failed (probably no tags in repo). Build will contain revision info from ${VERS_FILE}." )
endif(NOT SC_IS_SUBBUILD)
endif(NOT SC_IS_SUBBUILD)
endif()
else(GIT_FOUND)
file( READ ${VERS_FILE} GIT_COMMIT_ID LIMIT 255 )
if(NOT SC_IS_SUBBUILD)
if(NOT SC_IS_SUBBUILD)
message( WARNING "Git not found. Build will contain revision info from ${VERS_FILE}." )
endif(NOT SC_IS_SUBBUILD)
endif(NOT SC_IS_SUBBUILD)
endif(GIT_FOUND)
else()
file( READ ${VERS_FILE} GIT_COMMIT_ID LIMIT 255 )
@@ -32,23 +37,40 @@ else()
message( WARNING "Git failed ('.git' not found). Build will contain revision info from ${VERS_FILE}." )
endif(NOT SC_IS_SUBBUILD)
endif()
string( REPLACE "\n" "" GIT_COMMIT_ID ${GIT_COMMIT_ID} )
set( vstring "//sc_version_string.h - written by cmake. Changes will be lost!\n"
#-------------- date and time ---------------
#once cmake_minimum_required is >= 2.8.11, we can use TIMESTAMP:
#string( TIMESTAMP date_time_string )
if( UNIX )
execute_process( COMMAND date "+%d %b %Y %H:%M" OUTPUT_VARIABLE date_time_string OUTPUT_STRIP_TRAILING_WHITESPACE )
elseif( WIN32 )
execute_process( COMMAND cmd /c date /t OUTPUT_VARIABLE currentDate OUTPUT_STRIP_TRAILING_WHITESPACE )
execute_process( COMMAND cmd /c time /t OUTPUT_VARIABLE currentTime OUTPUT_STRIP_TRAILING_WHITESPACE )
set ( date_time_string "${currentDate} ${currentTime}" )
else()
set( date_time_string "\" __DATE__ \" \" __TIME__ \" " )
if( NOT SC_IS_SUBBUILD )
message( STATUS "Unknown platform - using date from preprocessor" )
endif( NOT SC_IS_SUBBUILD )
endif()
set( header_string "/* sc_version_string.h - written by cmake. Changes will be lost! */\n"
"#ifndef SC_VERSION_STRING\n"
"#define SC_VERSION_STRING\n\n"
"/*\n** Returns a string like \"test-1-g5e1fb47, built at TIME on DATE\", where test is the\n"
"/*\n** The git commit id looks like \"test-1-g5e1fb47\", where test is the\n"
"** name of the last tagged git revision, 1 is the number of commits since that tag,\n"
"** 'g' is unknown, 5e1fb47 is the first 7 chars of the git sha1 commit id, and TIME\n"
"** and DATE are substituted by the compiler.\n*/\n\n"
"const char* sc_version() {\n"
" return \"git commit id ${GIT_COMMIT_ID}, built at \" __TIME__ \" on \" __DATE__ \;\n"
"}\n\n"
"** 'g' is unknown, and 5e1fb47 is the first 7 chars of the git sha1 commit id.\n"
"** timestamp is created from date/time commands on known platforms, and uses\n"
"** preprocessor macros elsewhere.\n*/\n\n"
"static char sc_version[512] = {\n"
" \"git commit id: ${GIT_COMMIT_ID}, build timestamp ${date_time_string}\"\n"
"}\;\n\n"
"#endif\n"
)
file(WRITE sc_version_string.h.txt ${vstring} )
file(WRITE sc_version_string.h.txt ${header_string} )
# copy the file to the final header only if the version changes
# reduces needless rebuilds
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
+4 -2
View File
@@ -14,9 +14,11 @@ if(NOT DEBUGGING_GENERATED_SOURCES)
# Individually verify all of the files in question.
set(filelist "@CACHED_FILELIST@")
VERIFY_FILES("${filelist}" 1 srcs_pass)
if(NOT srcs_pass)
if( srcs_pass)
message( "Generated source code has not been modified.")
else(srcs_pass)
message(FATAL_ERROR "Generated sources have been modified. These files should never be modified directly except when debugging faulty output from the generators - changes to lexer and parser logic should be made to the generator input files. If this is a debugging situation, set the variable DEBUGGING_GENERATED_SOURCES to ON during the CMake configure.")
endif(NOT srcs_pass)
endif(srcs_pass)
# If we got by that test, see if it looks like these
# sources came from the current input files. It's not
File diff suppressed because it is too large Load Diff
-22
View File
@@ -1,22 +0,0 @@
data/ap203/README
The EXPRESS schema in this directory is based on ISO 10303-203, an
international standard which is copyrighted by ISO. ISO has granted
NIST permission to publicly distribute the EXPRESS source from ISO
standards. The EXPRESS schema provided in this software release has
been modified to facilitate its use with this software and is provided
as an example schema only. This disclaimer must be included in any
redistribution of the EXPRESS schema. This disclaimer must also be
included in the file containing the EXPRESS schema.
The EXPRESS source for the modified AP 203 schema contained in the
file 203wseds.exp has modifications to it from the standard based on
Standard Enhancement and Discrepancy System (SEDS) reports. SEDS
reports are an informal way for ISO TC 184/SC4 to document errors,
ambiguities, and enhancements to the standard; and to recommend
corrections for formal adoption via a technical corrigendum,
amendment, or revision.
The data files in this directory were developed by ITI as part of the
STEP conformance testing project. The files contain data that conform
to the modified AP203 schema.
-227
View File
@@ -1,227 +0,0 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 2 - ntsw'),'1');
FILE_NAME('cube1.p21','1994-12-14 T10:00:00',
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
('Industrial Technology Institute',
'P.O. Box 1485',
'Ann Arbor',
'Michigan',
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1=PRODUCT('41114','Solid Cube','Description for part 41114',(#2));
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
#3333=APPLICATION_PROTOCOL_DEFINITION('status_str','config_control_design',1990,#3);
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
#5=PERSON_AND_ORGANIZATION(#6,#7);
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,('PhD.'));
#1097=PERSONAL_ADDRESS($,'17147','New Hamburg Road',$,'Whitmore Lake','Michigan','48189','USA',$,'(313) 769-4306',$,$,(#6));
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','Anot-for-profit engineering and research center');
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#2101=PRODUCT_CATEGORY_RELATIONSHIP('root-to-standard','Relate the root to the standard product category',#1098,#1109);
#1109=PRODUCT_CATEGORY('standard_part','Identifies this as a standard part') ;
#1101=PRODUCT_CATEGORY_RELATIONSHIP('standard-to-detail','Relate the standard to the detail product category',#1109,#9);
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('machined','Part Type for product 41114',(#1));
#1098=PRODUCT_CATEGORY('mechanical','mechanical product category: root node');
#1099=PRODUCT_CATEGORY_RELATIONSHIP('root-to-structural','Relates the root to the structural category',#1098,#1100);
#1100=PRODUCT_CATEGORY('structural','The structural product category');
#1110=PRODUCT_CATEGORY_RELATIONSHIP('structural-to-machined', 'Relates the structural to the machined category',#1100,#1102) ;
#1102=PRODUCT_RELATED_PRODUCT_CATEGORY('assembly','The machined product category',(#1));
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 41114',#1,.BOUGHT.);
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
#13=PERSON_AND_ORGANIZATION(#14,#7);
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
#44=CC_DESIGN_APPROVAL(#45,(#10));
#45=APPROVAL(#46,'Approved as initial STEP test case part');
#46=APPROVAL_STATUS('approved');
#47=APPROVAL_DATE_TIME(#48,#45);
#48=DATE_AND_TIME(#50,#51);
#50=CALENDAR_DATE(1993,17,7);
#51=LOCAL_TIME(13,29,52.0,#29);
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
#70=PERSON_AND_ORGANIZATION(#71,#7);
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
#72=APPROVAL_ROLE('Authorize part release');
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
#35=DATE_AND_TIME(#36,#37);
#36=CALENDAR_DATE(1993,17,7);
#37=LOCAL_TIME(13,$,$,#29);
#39=DATE_TIME_ROLE('classification_date');
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
#41=PERSON_AND_ORGANIZATION(#42,#7);
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#53=CC_DESIGN_APPROVAL(#54,(#32));
#54=APPROVAL(#55,'Approved as unclassified step test data');
#55=APPROVAL_STATUS('approved');
#56=APPROVAL_DATE_TIME(#57,#54);
#57=DATE_AND_TIME(#58,#59);
#58=CALENDAR_DATE(1993,17,7);
#59=LOCAL_TIME(13,47,28.0,#29);
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
#74=PERSON_AND_ORGANIZATION(#75,#7);
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
#76=APPROVAL_ROLE('Authorize the security code');
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
#18=DESIGN_CONTEXT('detailed design',#3,'design');
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
#25=DATE_AND_TIME(#27,#28);
#27=CALENDAR_DATE(1993,19,7);
#28=LOCAL_TIME(19,46,55.0,#29);
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
#30=DATE_TIME_ROLE('creation_date');
#61=CC_DESIGN_APPROVAL(#62,(#17));
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
#63=APPROVAL_STATUS('approved');
#64=APPROVAL_DATE_TIME(#65,#62);
#65=DATE_AND_TIME(#66,#67);
#66=CALENDAR_DATE(1993,19,7);
#67=LOCAL_TIME(19,47,51.0,#29);
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
#79=APPROVAL_ROLE('Authorize product definition');
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
#81=PERSON_AND_ORGANIZATION(#82,#83);
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization');
#1096=ORGANIZATIONAL_ADDRESS($,'2901','Hubbard','P.O. Box 1485','Ann Arbor','Michigan','48106','USA','(313) 769-4069','(313) 769-4000',$,$,(#83));
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
#87=CERTIFICATION_TYPE('design_supplier');
#89=CC_DESIGN_APPROVAL(#90,(#86));
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
#91=APPROVAL_STATUS('approved');
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
#93=APPROVAL_ROLE('Authorize supplier certification');
#94=DATE_AND_TIME(#95,#96);
#95=CALENDAR_DATE(1993,20,4);
#96=LOCAL_TIME(15,47,51.0,#29);
#97=APPROVAL_DATE_TIME(#94,#90);
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
#99=CALENDAR_DATE(1993,19,4);
#100=DATE_AND_TIME(#99,#101);
#101=LOCAL_TIME(10,41,59.0,#29);
#102=DATE_TIME_ROLE('certification_date');
#1103=PRODUCT('12345','Cube Solid','CDI''s part 12345 description',(#2));
#2009=PRODUCT_RELATED_PRODUCT_CATEGORY('customer_furnished_equipment','Part Type for product 12345',(#1103));
#1104=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#8,(#1103));
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Cube Solid',#1103,.MADE.);
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
#1014=PERSON('CDI-1','Brandenberg','Chad',('David','George'),$,$);
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
#1045=APPROVAL(#1046,'Approved as test part design');
#1046=APPROVAL_STATUS('approved');
#1047=APPROVAL_DATE_TIME(#1048,#1045);
#1048=DATE_AND_TIME(#1050,#1051);
#1050=CALENDAR_DATE(1993,19,7);
#1051=LOCAL_TIME(19,51,59.0,#29);
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
#1070=PERSON_AND_ORGANIZATION(#82,#83);
#1072=APPROVAL_ROLE('Authorize part version');
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
#1035=DATE_AND_TIME(#1036,#1037);
#1036=CALENDAR_DATE(1993,19,7);
#1037=LOCAL_TIME(19,45,41.0,#29);
#1039=DATE_TIME_ROLE('classification_date');
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#1111=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1112,#1115,(#1032));
#1112=DATE_AND_TIME(#1113,#1114);
#1113=CALENDAR_DATE(1993,1,10);
#1114=LOCAL_TIME(9,$,$,#29);
#1115=DATE_TIME_ROLE('declassification_date');
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
#1054=APPROVAL(#1055,'Approved as unclassified part design');
#1055=APPROVAL_STATUS('approved');
#1056=APPROVAL_DATE_TIME(#1057,#1054);
#1057=DATE_AND_TIME(#1058,#1059);
#1058=CALENDAR_DATE(1993,19,7);
#1059=LOCAL_TIME(19,47,58.0,#29);
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
#1076=APPROVAL_ROLE('Authorize the security code');
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
#1025=DATE_AND_TIME(#1027,#1028);
#1027=CALENDAR_DATE(1993,18,7);
#1028=LOCAL_TIME(10,51,59.0,#29);
#1030=DATE_TIME_ROLE('creation_date');
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
#1062=APPROVAL(#1063,'Approved as detailed drawing');
#1063=APPROVAL_STATUS('approved');
#1064=APPROVAL_DATE_TIME(#1065,#1062);
#1065=DATE_AND_TIME(#1066,#1067);
#1066=CALENDAR_DATE(1993,19,7);
#1067=LOCAL_TIME(19,51,59.0,#29);
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
#1017=PRODUCT_DEFINITION_WITH_ASSOCIATED_DOCUMENTS('D2','Description of product for part 1234',#1010,#1018, (#1116));
#1018=PRODUCT_DEFINITION_CONTEXT('detailed design',#3,'design');
#1079=APPROVAL_ROLE('Authorize product definition');
#1116=DOCUMENT('shape1b.dwg','cube solid CAD file','CAD file for solid cube',#1117);
#1117=DOCUMENT_TYPE('cad_filename');
#1080=CC_DESIGN_CONTRACT(#1081,(#10));
#1081=CONTRACT('ITI-1121','Development of STEP conformance testing',#1082);
#1082=CONTRACT_TYPE('fixed_price');
#1083=CC_DESIGN_APPROVAL(#1084,(#1081));
#1084=APPROVAL(#1085,'Approved as active project under contract');
#1085=APPROVAL_STATUS('approved');
#1086=APPROVAL_PERSON_ORGANIZATION(#1087,#1084,#1090);
#1087=PERSON_AND_ORGANIZATION(#1088,#1089);
#1088=PERSON('212-33-7485','Masters','Larry',$,$,$);
#1089=ORGANIZATION('NIST','National Institute of Standards and Technology',
'Institute within the Department of Commerce');
#1090=APPROVAL_ROLE('Authorized the contract');
#1105=APPROVAL_DATE_TIME(#1106,#1084);
#1106=DATE_AND_TIME(#1107,#1108);
#1107=WEEK_OF_YEAR_AND_DAY_DATE(1993,20,5);
#1108=LOCAL_TIME(14,21,7.0,#29);
#1091=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1092,#1095,(#1081));
#1092=PERSON_AND_ORGANIZATION(#1093,#7);
#1093=PERSON('355-55-6849','Kuper','George',$,$,$);
#1095=PERSON_AND_ORGANIZATION_ROLE('contractor');
#1200=SHAPE_DEFINITION_REPRESENTATION(#1201,#9200);
#1201=PRODUCT_DEFINITION_SHAPE('NTSW_Shape','Shape of Solid Cube',#17);
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040,'xx','yy');
#9110 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
#9111 = CARTESIAN_POINT('CartPt2',(2.0,0.0,0.0));
#9112 = CARTESIAN_POINT('CartPt3',(2.0,0.0,2.0));
#9113 = CARTESIAN_POINT('CartPt4',(0.0,0.0,2.0));
#9115 = CARTESIAN_POINT('CartPt5',(0.0,2.0,0.0));
#9116 = CARTESIAN_POINT('CartPt6',(2.0,2.0,0.0));
#9117 = CARTESIAN_POINT('CartPt7',(2.0,2.0,2.0));
#9118 = CARTESIAN_POINT('CartPt8',(0.0,2.0,2.0));
#9120 = POLYLINE('PolyLine2',(#9113,#9118,#9117,#9116));
#9130 = POLYLINE('PolyLine2',(#9110,#9113,#9112,#9117));
#9140 = POLYLINE('PolyLine3',(#9118,#9115,#9110,#9111));
#9150 = POLYLINE('PolyLine4',(#9112,#9111,#9116,#9115));
#9160 = GEOMETRIC_CURVE_SET('GeomCurSet1',(#9120,#9130,#9140,#9150));
#9190 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
REPRESENTATION_CONTEXT('CONTEXT for gbwr - simple cube','This is a 3d context using millimeters for linear dimension'));
#9200 = GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION('gbwsr',(#9160),#9190);
ENDSEC;
END-ISO-10303-21;
-219
View File
@@ -1,219 +0,0 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 2 - ntsw'),'1');
FILE_NAME('cube2.p21','1994-12-14 T10:00:00',
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
('Industrial Technology Institute',
'P.O. Box 1485',
'Ann Arbor',
'Michigan',
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1=PRODUCT('51114','Solid Cube with Parabola Face','Description for part 51114',(#2));
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
#5=PERSON_AND_ORGANIZATION(#6,#7);
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','A not-for-profit engineering and research center');
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 51114',(#1));
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 51114',#1,.BOUGHT.);
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
#13=PERSON_AND_ORGANIZATION(#14,#7);
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
#44=CC_DESIGN_APPROVAL(#45,(#10));
#45=APPROVAL(#46,'Approved as initial STEP test case part');
#46=APPROVAL_STATUS('approved');
#47=APPROVAL_DATE_TIME(#48,#45);
#48=DATE_AND_TIME(#50,#51);
#50=CALENDAR_DATE(1993,17,7);
#51=LOCAL_TIME(13,29,52.0,#29);
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
#70=PERSON_AND_ORGANIZATION(#71,#7);
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
#72=APPROVAL_ROLE('Authorize part release');
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
#35=DATE_AND_TIME(#36,#37);
#36=CALENDAR_DATE(1993,17,7);
#37=LOCAL_TIME(13,45,20.0,#29);
#39=DATE_TIME_ROLE('classification_date');
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
#41=PERSON_AND_ORGANIZATION(#42,#7);
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#53=CC_DESIGN_APPROVAL(#54,(#32));
#54=APPROVAL(#55,'Approved as unclassified step test data');
#55=APPROVAL_STATUS('approved');
#56=APPROVAL_DATE_TIME(#57,#54);
#57=DATE_AND_TIME(#58,#59);
#58=CALENDAR_DATE(1993,17,7);
#59=LOCAL_TIME(13,47,28.0,#29);
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
#74=PERSON_AND_ORGANIZATION(#75,#7);
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
#76=APPROVAL_ROLE('Authorize the security code');
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
#18=DESIGN_CONTEXT('detailed design',#3,'design');
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
#25=DATE_AND_TIME(#27,#28);
#27=CALENDAR_DATE(1993,19,7);
#28=LOCAL_TIME(19,46,55.0,#29);
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
#30=DATE_TIME_ROLE('creation_date');
#61=CC_DESIGN_APPROVAL(#62,(#17));
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
#63=APPROVAL_STATUS('approved');
#64=APPROVAL_DATE_TIME(#65,#62);
#65=DATE_AND_TIME(#66,#67);
#66=CALENDAR_DATE(1993,19,7);
#67=LOCAL_TIME(19,47,51.0,#29);
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
#79=APPROVAL_ROLE('Authorize product definition');
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
#81=PERSON_AND_ORGANIZATION(#82,#83);
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization.');
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
#87=CERTIFICATION_TYPE('design_supplier');
#89=CC_DESIGN_APPROVAL(#90,(#86));
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
#91=APPROVAL_STATUS('approved');
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
#93=APPROVAL_ROLE('Authorize supplier certification');
#94=DATE_AND_TIME(#95,#96);
#95=CALENDAR_DATE(1993,20,4);
#96=LOCAL_TIME(15,47,51.0,#29);
#97=APPROVAL_DATE_TIME(#94,#90);
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
#99=CALENDAR_DATE(1993,19,4);
#100=DATE_AND_TIME(#99,#101);
#101=LOCAL_TIME(10,41,59.0,#29);
#102=DATE_TIME_ROLE('certification_date');
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Solid Cube with Parabola Face',#1,.MADE.);
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
#1045=APPROVAL(#1046,'Approved as test part design');
#1046=APPROVAL_STATUS('approved');
#1047=APPROVAL_DATE_TIME(#1048,#1045);
#1048=DATE_AND_TIME(#1050,#1051);
#1050=CALENDAR_DATE(1993,19,7);
#1051=LOCAL_TIME(19,51,59.0,#29);
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
#1070=PERSON_AND_ORGANIZATION(#82,#83);
#1072=APPROVAL_ROLE('Authorize part version');
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
#1035=DATE_AND_TIME(#1036,#1037);
#1036=CALENDAR_DATE(1993,19,7);
#1037=LOCAL_TIME(19,45,41.0,#29);
#1039=DATE_TIME_ROLE('classification_date');
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
#1054=APPROVAL(#1055,'Approved as unclassified part design');
#1055=APPROVAL_STATUS('approved');
#1056=APPROVAL_DATE_TIME(#1057,#1054);
#1057=DATE_AND_TIME(#1058,#1059);
#1058=CALENDAR_DATE(1993,19,7);
#1059=LOCAL_TIME(19,47,58.0,#29);
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
#1076=APPROVAL_ROLE('Authorize the security code');
#1017=PRODUCT_DEFINITION('D2','Description of product for part 51114',#1010,#1018);
#1018=PRODUCT_DEFINITION_CONTEXT('detailed design',#3,'design');
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
#1025=DATE_AND_TIME(#1027,#1028);
#1027=CALENDAR_DATE(1993,18,7);
#1028=LOCAL_TIME(10,51,59.0,#29);
#1030=DATE_TIME_ROLE('creation_date');
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
#1062=APPROVAL(#1063,'Approved as detailed drawing');
#1063=APPROVAL_STATUS('approved');
#1064=APPROVAL_DATE_TIME(#1065,#1062);
#1065=DATE_AND_TIME(#1066,#1067);
#1066=CALENDAR_DATE(1993,19,7);
#1067=LOCAL_TIME(19,51,59.0,#29);
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
#1079=APPROVAL_ROLE('Authorize product definition');
#1200=SHAPE_DEFINITION_REPRESENTATION(#1201,#9260);
#1201=PRODUCT_DEFINITION_SHAPE('GBWR_Shape','Shape of Solid Cube with Parabola Face',#17);
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040,'xx','yy');
#9101 = DIRECTION('Dir1',(1.0,0.0,0.0));
#9102 = DIRECTION('Dir2',(0.0,1.0,0.0));
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
#9105 = DIRECTION('Dir4',(0.0,-1.0,0.0));
#9111 = CARTESIAN_POINT('CartPt2',(0.0, 1.0, 0.0));
#9112 = CARTESIAN_POINT('CartPt3',(1.0, 1.0, 0.0));
#9113 = CARTESIAN_POINT('CartPt4',(1.0, 2.0, 0.0));
#9114 = CARTESIAN_POINT('CartPt5',(0.0, 2.0, 0.0));
#9115 = CARTESIAN_POINT('CartPt6',(0.0, 1.0, 1.0));
#9116 = CARTESIAN_POINT('CartPt7',(1.0, 1.0, 1.0));
#9117 = CARTESIAN_POINT('CartPt8',(1.0, 2.0, 1.0));
#9118 = CARTESIAN_POINT('CartPt9',(0.0, 2.0, 1.0));
#9120 = CARTESIAN_POINT('CartPt10',(0.5, 1.25, 0.0));
#9121 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9120,$,#9105);
#9122 = PARABOLA('Parab1',#9121, 0.25);
#9123 = TRIMMED_CURVE('TrimCur1',#9122,(#9111),(#9112),.T.,.CARTESIAN.);
#9130 = CARTESIAN_POINT('CartPt11',(0.5, 1.25, 1.0));
#9131 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9130,$,#9105);
#9132 = PARABOLA('Parab2',#9131, 0.25);
#9133 = TRIMMED_CURVE('TrimCur2',#9132,(#9115),(#9116),.F.,.CARTESIAN.);
#9140 = VECTOR('Vec1',#9103,10.0);
#9141 = LINE('Line1',#9111,#9140);
#9142 = TRIMMED_CURVE('TrimCur3',#9141,(#9111,0.0),(#9115,0.1),.T.,.PARAMETER.);
#9150 = LINE('Line2',#9112,#9140);
#9151 = TRIMMED_CURVE('TrimCur4',#9150,(#9112,0.0),(#9116,0.1),.T.,.PARAMETER.);
#9160 = LINE('Line3',#9113,#9140);
#9161 = TRIMMED_CURVE('TrimCur5',#9160,(#9113,0.0),(#9117,0.1),.T.,.PARAMETER.);
#9170 = LINE('Line4',#9114,#9140);
#9171 = TRIMMED_CURVE('TrimCur6',#9170,(#9114,0.0),(#9116,0.1),.T.,.PARAMETER.);
#9180 = VECTOR('Vec2',#9102,10.0);
#9181 = LINE('Line5',#9111,#9180);
#9182 = TRIMMED_CURVE('TrimCur7',#9181,(#9111,0.0),(#9114,0.1),.T.,.PARAMETER.);
#9190 = LINE('Line6',#9112,#9180);
#9191 = TRIMMED_CURVE('TrimCur8',#9190,(#9112,0.0),(#9113,0.1),.T.,.PARAMETER.);
#9200 = LINE('Line7',#9116,#9180);
#9201 = TRIMMED_CURVE('TrimCur9',#9200,(#9116,0.0),(#9117,0.1),.T.,.PARAMETER.);
#9210 = LINE('Line8',#9115,#9180);
#9211 = TRIMMED_CURVE('TrimCur10',#9210,(#9115,0.0),(#9118,0.1),.T.,.PARAMETER.);
#9220 = VECTOR('Vec3',#9101,10.0);
#9221 = LINE('Line9',#9114,#9220);
#9222 = TRIMMED_CURVE('TrimCur11',#9221,(#9114,0.0),(#9113,0.1),.T.,.PARAMETER.);
#9230 = LINE('Line10',#9118,#9220);
#9231 = TRIMMED_CURVE('TrimCur12',#9230,(#9118,0.0),(#9117,0.1),.T.,.PARAMETER.);
#9240 = GEOMETRIC_CURVE_SET('GeomCurSet1',(#9123,#9133,#9142,#9151,#9161,#9171,#9182,#9191,#9201,#9211,#9222,#9231));
#9250 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
REPRESENTATION_CONTEXT('CONTEXT for gbwr test case cube with parabolic face','This is a 3d context using centimeters for linear dimension'));
#9260 = GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION('xx',(#9240),#9250);
ENDSEC;
END-ISO-10303-21;
-699
View File
@@ -1,699 +0,0 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 6 - abr'),'1');
FILE_NAME('g_r_assembly1.p21','1994-12-14 T10:00:00',
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
('Industrial Technology Institute',
'P.O. Box 1485',
'Ann Arbor',
'Michigan',
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1=PRODUCT('55555','Gasket Rod Assembly','Description for part 55555',(#2));
#2=MECHANICAL_CONTEXT('assembly specification',#3,'mechanical');
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
#5=PERSON_AND_ORGANIZATION(#6,#7);
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','A not-for-profit engineering and research center');
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('assembly','Part Type for product 55555',(#1));
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 55555',#1,.BOUGHT.);
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
#13=PERSON_AND_ORGANIZATION(#14,#7);
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
#44=CC_DESIGN_APPROVAL(#45,(#10));
#45=APPROVAL(#46,'Approved as initial STEP test case part');
#46=APPROVAL_STATUS('approved');
#47=APPROVAL_DATE_TIME(#48,#45);
#48=DATE_AND_TIME(#50,#51);
#50=CALENDAR_DATE(1993,17,7);
#51=LOCAL_TIME(13,29,52.0,#29);
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
#70=PERSON_AND_ORGANIZATION(#71,#7);
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
#72=APPROVAL_ROLE('Authorize part release');
#1251=CONFIGURATION_DESIGN(#1252,#10);
#1252=CONFIGURATION_ITEM('LX','name',$,#1253,'Concept Development');
#1350=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#1351,(#1252));
#1351=PERSON_AND_ORGANIZATION_ROLE('configuration_manager');
#1253=PRODUCT_CONCEPT('Super Gasket','The Super Gasket machined standard part','The Super Gasket Line',#1254);
#1254=PRODUCT_CONCEPT_CONTEXT('structural gasket',#3,'market segment type');
#1255=CC_DESIGN_APPROVAL(#1256,(#1252));
#1256=APPROVAL(#1257,'Not yet approved product configuration');
#1257=APPROVAL_STATUS('not_yet_approved');
#1258=APPROVAL_PERSON_ORGANIZATION(#70,#1256,#1259);
#1259=APPROVAL_ROLE('approval for configuration item');
#1260=APPROVAL_DATE_TIME(#1261,#1256);
#1261=DATE_AND_TIME(#1264,#1263);
#1263=LOCAL_TIME(11,56,19.0,#29);
#1264=ORDINAL_DATE(1993,202) ;
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
#35=DATE_AND_TIME(#36,#37);
#36=CALENDAR_DATE(1993,17,7);
#37=LOCAL_TIME(13,45,20.0,#29);
#39=DATE_TIME_ROLE('classification_date');
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
#41=PERSON_AND_ORGANIZATION(#42,#7);
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#53=CC_DESIGN_APPROVAL(#54,(#32));
#54=APPROVAL(#55,'Approved as unclassified step test data');
#55=APPROVAL_STATUS('approved');
#56=APPROVAL_DATE_TIME(#57,#54);
#57=DATE_AND_TIME(#58,#59);
#58=CALENDAR_DATE(1993,17,7);
#59=LOCAL_TIME(13,47,28.0,#29);
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
#74=PERSON_AND_ORGANIZATION(#75,#7);
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
#76=APPROVAL_ROLE('Authorize the security code');
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for STEP conformance testing',#10,#18);
#18=DESIGN_CONTEXT('assembly specification',#3,'design');
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
#25=DATE_AND_TIME(#27,#28);
#27=CALENDAR_DATE(1993,19,7);
#28=LOCAL_TIME(19,46,55.0,#29);
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
#30=DATE_TIME_ROLE('creation_date');
#61=CC_DESIGN_APPROVAL(#62,(#17));
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
#63=APPROVAL_STATUS('approved');
#64=APPROVAL_DATE_TIME(#65,#62);
#65=DATE_AND_TIME(#66,#67);
#66=CALENDAR_DATE(1993,19,7);
#67=LOCAL_TIME(19,47,51.0,#29);
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
#79=APPROVAL_ROLE('Authorize product definition');
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
#81=PERSON_AND_ORGANIZATION(#82,#83);
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization');
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
#87=CERTIFICATION_TYPE('design_supplier');
#89=CC_DESIGN_APPROVAL(#90,(#86));
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
#91=APPROVAL_STATUS('approved');
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
#93=APPROVAL_ROLE('Authorize supplier certification');
#94=DATE_AND_TIME(#95,#96);
#95=CALENDAR_DATE(1993,20,4);
#96=LOCAL_TIME(15,47,51.0,#29);
#97=APPROVAL_DATE_TIME(#94,#90);
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
#99=CALENDAR_DATE(1993,19,4);
#100=DATE_AND_TIME(#99,#101);
#101=LOCAL_TIME(10,41,59.0,#29);
#102=DATE_TIME_ROLE('certification_date');
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Gasket Rod Assembly',#1,.MADE.);
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
#1045=APPROVAL(#1046,'Approved as test part design');
#1046=APPROVAL_STATUS('approved');
#1047=APPROVAL_DATE_TIME(#1048,#1045);
#1048=DATE_AND_TIME(#1050,#1051);
#1050=CALENDAR_DATE(1993,19,7);
#1051=LOCAL_TIME(19,51,59.0,#29);
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
#1070=PERSON_AND_ORGANIZATION(#82,#83);
#1072=APPROVAL_ROLE('Authorize part version');
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
#1035=DATE_AND_TIME(#1036,#1037);
#1036=CALENDAR_DATE(1993,19,7);
#1037=LOCAL_TIME(19,45,41.0,#29);
#1039=DATE_TIME_ROLE('classification_date');
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
#1054=APPROVAL(#1055,'Approved as unclassified part design');
#1055=APPROVAL_STATUS('approved');
#1056=APPROVAL_DATE_TIME(#1057,#1054);
#1057=DATE_AND_TIME(#1058,#1059);
#1058=CALENDAR_DATE(1993,19,7);
#1059=LOCAL_TIME(19,47,58.0,#29);
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
#1076=APPROVAL_ROLE('Authorize the security code');
#1017=PRODUCT_DEFINITION('D2','Detailed drawing',#1010,#1018);
#1018=DESIGN_CONTEXT('assembly specification',#3,'design');
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
#1025=DATE_AND_TIME(#1027,#1028);
#1027=CALENDAR_DATE(1993,18,7);
#1028=LOCAL_TIME(10,51,59.0,#29);
#1030=DATE_TIME_ROLE('creation_date');
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
#1062=APPROVAL(#1063,'Approved as assembly specification');
#1063=APPROVAL_STATUS('approved');
#1064=APPROVAL_DATE_TIME(#1065,#1062);
#1065=DATE_AND_TIME(#1066,#1067);
#1066=CALENDAR_DATE(1993,19,7);
#1067=LOCAL_TIME(19,51,59.0,#29);
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
#1079=APPROVAL_ROLE('Authorize product definition');
#3265=ASSEMBLY_COMPONENT_USAGE('1993-A1','component assembly relationship','assembly relationship of gasket rod assembly to flat ring gasket with holes',#17,#2017,$);
#3281=CC_DESIGN_SECURITY_CLASSIFICATION(#3282,(#3265));
#3282=SECURITY_CLASSIFICATION('1993-C5','open availability of STEP test data',#3283);
#3283=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#3284=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#3285,#3289,(#3282));
#3285=DATE_AND_TIME(#3286,#3287);
#3286=CALENDAR_DATE(1993,19,7);
#3287=LOCAL_TIME(10,45,20.0,#29);
#3289=DATE_TIME_ROLE('classification_date');
#3290=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#3292,(#3282));
#3292=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#3293=CC_DESIGN_APPROVAL(#3294,(#3282));
#3294=APPROVAL(#3295,'Approved as unclassified step test data');
#3295=APPROVAL_STATUS('approved');
#3296=APPROVAL_DATE_TIME(#3297,#3294);
#3297=DATE_AND_TIME(#3298,#3299);
#3298=CALENDAR_DATE(1993,19,7);
#3299=LOCAL_TIME(10,47,28.0,#29);
#3300=APPROVAL_PERSON_ORGANIZATION(#74,#3294,#3301);
#3301=APPROVAL_ROLE('Authorize the security code');
#2001=PRODUCT('21113','Flat Ring Gasket with Holes','Description for part 21113',(#2002));
#2002=MECHANICAL_CONTEXT('assembly specification',#3,'mechanical');
#2004=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#2008,(#2001));
#2008=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#2009=PRODUCT_RELATED_PRODUCT_CATEGORY('assembly','Part Type for product 21113',(#2001));
#2010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('B','Description of version with specified source for part 21113',#2001,.BOUGHT.);
#2011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#2015,(#2010));
#2015=PERSON_AND_ORGANIZATION_ROLE('creator');
#2044=CC_DESIGN_APPROVAL(#2045,(#2010));
#2045=APPROVAL(#2046,'Approved as initial STEP test case part');
#2046=APPROVAL_STATUS('approved');
#2047=APPROVAL_DATE_TIME(#2048,#2045);
#2048=DATE_AND_TIME(#2050,#2051);
#2050=CALENDAR_DATE(1993,17,7);
#2051=LOCAL_TIME(13,29,52.0,#29);
#2069=APPROVAL_PERSON_ORGANIZATION(#70,#2045,#2072);
#2072=APPROVAL_ROLE('Authorize part release');
#2031=CC_DESIGN_SECURITY_CLASSIFICATION(#2032,(#2010));
#2032=SECURITY_CLASSIFICATION('1993-C3','open availability of STEP test data',#2033);
#2033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#2034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#2035,#2039,(#2032));
#2035=DATE_AND_TIME(#2036,#2037);
#2036=CALENDAR_DATE(1993,17,7);
#2037=LOCAL_TIME(13,45,20.0,#29);
#2039=DATE_TIME_ROLE('classification_date');
#2040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#2043,(#2032));
#2043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#2053=CC_DESIGN_APPROVAL(#2054,(#2032));
#2054=APPROVAL(#2055,'Approved as unclassified step test data');
#2055=APPROVAL_STATUS('approved');
#2056=APPROVAL_DATE_TIME(#2057,#2054);
#2057=DATE_AND_TIME(#2058,#2059);
#2058=CALENDAR_DATE(1993,17,7);
#2059=LOCAL_TIME(13,47,28.0,#29);
#2073=APPROVAL_PERSON_ORGANIZATION(#74,#2054,#2076);
#2076=APPROVAL_ROLE('Authorize the security code');
#2017=PRODUCT_DEFINITION('D3','Detailed drawing as planned for STEP conformance testing',#2010,#2018);
#2018=DESIGN_CONTEXT('assembly specification',#3,'design');
#2019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#2023,(#2017));
#2023=PERSON_AND_ORGANIZATION_ROLE('creator');
#2024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#2025,#2030,(#2017));
#2025=DATE_AND_TIME(#2027,#2028);
#2027=CALENDAR_DATE(1993,19,7);
#2028=LOCAL_TIME(19,46,55.0,#29);
#2030=DATE_TIME_ROLE('creation_date');
#2061=CC_DESIGN_APPROVAL(#2062,(#2017));
#2062=APPROVAL(#2063,'Approved as STEP conformance testing drawing');
#2063=APPROVAL_STATUS('approved');
#2064=APPROVAL_DATE_TIME(#2065,#2062);
#2065=DATE_AND_TIME(#2066,#2067);
#2066=CALENDAR_DATE(1993,19,7);
#2067=LOCAL_TIME(19,47,51.0,#29);
#2077=APPROVAL_PERSON_ORGANIZATION(#70,#2062,#2079);
#2079=APPROVAL_ROLE('Authorize product definition');
#2080=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#2084,(#2010,#3010));
#2084=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#2088=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides assembly specification',#2017,#3017);
#2085=CC_DESIGN_CERTIFICATION(#2086,(#2088));
#2086=CERTIFICATION('ISO-9000 certified design supplier','quality control',#2087);
#2087=CERTIFICATION_TYPE('design_supplier');
#2089=CC_DESIGN_APPROVAL(#2090,(#2086));
#2090=APPROVAL(#2091,'Approved as ISO-9000 certified supplier');
#2091=APPROVAL_STATUS('approved');
#2092=APPROVAL_PERSON_ORGANIZATION(#70,#2090,#2093);
#2093=APPROVAL_ROLE('Authorize supplier certification');
#2094=DATE_AND_TIME(#2095,#2096);
#2095=CALENDAR_DATE(1993,20,4);
#2096=LOCAL_TIME(15,47,51.0,#29);
#2097=APPROVAL_DATE_TIME(#2094,#2090);
#2098=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#2100,#2102,(#2086));
#2099=CALENDAR_DATE(1993,19,4);
#2100=DATE_AND_TIME(#2099,#2101);
#2101=LOCAL_TIME(10,41,59.0,#29);
#2102=DATE_TIME_ROLE('certification_date');
#3010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Solid Square',#2001,.MADE.);
#3011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#3016,(#3010));
#3016=PERSON_AND_ORGANIZATION_ROLE('creator');
#3044=CC_DESIGN_APPROVAL(#3045,(#3010));
#3045=APPROVAL(#3046,'Approved as test part design');
#3046=APPROVAL_STATUS('approved');
#3047=APPROVAL_DATE_TIME(#3048,#3045);
#3048=DATE_AND_TIME(#3050,#3051);
#3050=CALENDAR_DATE(1993,19,7);
#3051=LOCAL_TIME(19,51,59.0,#29);
#3069=APPROVAL_PERSON_ORGANIZATION(#1070,#3045,#3072);
#3072=APPROVAL_ROLE('Authorize part version');
#3031=CC_DESIGN_SECURITY_CLASSIFICATION(#3032,(#3010));
#3032=SECURITY_CLASSIFICATION('1993-C4','open availability of test part designs',#3033);
#3033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#3034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#3035,#3039,(#3032));
#3035=DATE_AND_TIME(#3036,#3037);
#3036=CALENDAR_DATE(1993,19,7);
#3037=LOCAL_TIME(19,45,41.0,#29);
#3039=DATE_TIME_ROLE('classification_date');
#3040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#3043,(#3032));
#3043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#3053=CC_DESIGN_APPROVAL(#3054,(#3032));
#3054=APPROVAL(#3055,'Approved as unclassified part design');
#3055=APPROVAL_STATUS('approved');
#3056=APPROVAL_DATE_TIME(#3057,#3054);
#3057=DATE_AND_TIME(#3058,#3059);
#3058=CALENDAR_DATE(1993,19,7);
#3059=LOCAL_TIME(19,47,58.0,#29);
#3073=APPROVAL_PERSON_ORGANIZATION(#81,#3054,#3076);
#3076=APPROVAL_ROLE('Authorize the security code');
#3017=PRODUCT_DEFINITION('D4','Detailed drawing',#3010,#3018);
#3018=DESIGN_CONTEXT('assembly specification',#3,'design');
#3019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#3023,(#3017));
#3023=PERSON_AND_ORGANIZATION_ROLE('creator');
#3024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#3025,#3030,(#3017));
#3025=DATE_AND_TIME(#3027,#3028);
#3027=CALENDAR_DATE(1993,18,7);
#3028=LOCAL_TIME(10,51,59.0,#29);
#3030=DATE_TIME_ROLE('creation_date');
#3061=CC_DESIGN_APPROVAL(#3062,(#3017));
#3062=APPROVAL(#3063,'Approved as assembly specification');
#3063=APPROVAL_STATUS('approved');
#3064=APPROVAL_DATE_TIME(#3065,#3062);
#3065=DATE_AND_TIME(#3066,#3067);
#3066=CALENDAR_DATE(1993,19,7);
#3067=LOCAL_TIME(19,51,59.0,#29);
#3077=APPROVAL_PERSON_ORGANIZATION(#81,#3062,#3079);
#3079=APPROVAL_ROLE('Authorize product definition');
#5265=(ASSEMBLY_COMPONENT_USAGE('designator 5')
NEXT_ASSEMBLY_USAGE_OCCURRENCE()
PRODUCT_DEFINITION_RELATIONSHIP('1993-N2','next assembly relationship','next occurance assembly relationship of flat ring gasket with holes to rod with conical tip',#2017,#4017)
PRODUCT_DEFINITION_USAGE()
QUANTIFIED_ASSEMBLY_COMPONENT_USAGE(#5305));
#5305=MEASURE_WITH_UNIT(COUNT_MEASURE(4),#5306);
#5306=CONTEXT_DEPENDENT_UNIT(#5307,'parts');
#5307=DIMENSIONAL_EXPONENTS(0.0,0.0,0.0,0.0,0.0,0.0,0.0);
#5281=CC_DESIGN_SECURITY_CLASSIFICATION(#5282,(#5265));
#5282=SECURITY_CLASSIFICATION('1993-C8','open availability of STEP test data',#5283);
#5283=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#5284=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#5285,#5289,(#5282));
#5285=DATE_AND_TIME(#5286,#5287);
#5286=CALENDAR_DATE(1993,19,7);
#5287=LOCAL_TIME(10,45,20.0,#29);
#5289=DATE_TIME_ROLE('classification_date');
#5290=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#5292,(#5282));
#5292=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#5293=CC_DESIGN_APPROVAL(#5294,(#5282));
#5294=APPROVAL(#5295,'Approved as unclassified step test data');
#5295=APPROVAL_STATUS('approved');
#5296=APPROVAL_DATE_TIME(#5297,#5294);
#5297=DATE_AND_TIME(#5298,#5299);
#5298=CALENDAR_DATE(1993,19,7);
#5299=LOCAL_TIME(10,47,28.0,#29);
#5300=APPROVAL_PERSON_ORGANIZATION(#74,#5294,#5301);
#5301=APPROVAL_ROLE('Authorize the security code');
#4001=PRODUCT('41113','Rod with Conical Tip','Description for part 41113',(#4002));
#4002=MECHANICAL_CONTEXT('assembly specification',#3,'mechanical');
#4004=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#4008,(#4001));
#4008=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#4009=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 41113',(#4001));
#4010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('B','Description of version with specified source for part 41113',#4001,.BOUGHT.);
#4011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#4015,(#4010));
#4015=PERSON_AND_ORGANIZATION_ROLE('creator');
#4044=CC_DESIGN_APPROVAL(#4045,(#4010));
#4045=APPROVAL(#4046,'Approved as initial STEP test case part');
#4046=APPROVAL_STATUS('approved');
#4047=APPROVAL_DATE_TIME(#4048,#4045);
#4048=DATE_AND_TIME(#4050,#4051);
#4050=CALENDAR_DATE(1993,17,7);
#4051=LOCAL_TIME(13,29,52.0,#29);
#4069=APPROVAL_PERSON_ORGANIZATION(#70,#4045,#4072);
#4072=APPROVAL_ROLE('Authorize part release');
#4031=CC_DESIGN_SECURITY_CLASSIFICATION(#4032,(#4010));
#4032=SECURITY_CLASSIFICATION('1993-C6','open availability of STEP test data',#4033);
#4033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#4034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#4035,#4039,(#4032));
#4035=DATE_AND_TIME(#4036,#4037);
#4036=CALENDAR_DATE(1993,17,7);
#4037=LOCAL_TIME(13,45,20.0,#29);
#4039=DATE_TIME_ROLE('classification_date');
#4040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#4043,(#4032));
#4043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#4053=CC_DESIGN_APPROVAL(#4054,(#4032));
#4054=APPROVAL(#4055,'Approved as unclassified step test data');
#4055=APPROVAL_STATUS('approved');
#4056=APPROVAL_DATE_TIME(#4057,#4054);
#4057=DATE_AND_TIME(#4058,#4059);
#4058=CALENDAR_DATE(1993,17,7);
#4059=LOCAL_TIME(13,47,28.0,#29);
#4073=APPROVAL_PERSON_ORGANIZATION(#74,#4054,#4076);
#4076=APPROVAL_ROLE('Authorize the security code');
#4017=PRODUCT_DEFINITION('D5','Detailed drawing as planned for STEP conformance testing',#4010,#4018);
#4018=DESIGN_CONTEXT('assembly specification',#3,'design');
#4019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#4023,(#4017));
#4023=PERSON_AND_ORGANIZATION_ROLE('creator');
#4024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#4025,#4030,(#4017));
#4025=DATE_AND_TIME(#4027,#4028);
#4027=CALENDAR_DATE(1993,19,7);
#4028=LOCAL_TIME(19,46,55.0,#29);
#4030=DATE_TIME_ROLE('creation_date');
#4061=CC_DESIGN_APPROVAL(#4062,(#4017));
#4062=APPROVAL(#4063,'Approved as STEP conformance testing drawing');
#4063=APPROVAL_STATUS('approved');
#4064=APPROVAL_DATE_TIME(#4065,#4062);
#4065=DATE_AND_TIME(#4066,#4067);
#4066=CALENDAR_DATE(1993,19,7);
#4067=LOCAL_TIME(19,47,51.0,#29);
#4077=APPROVAL_PERSON_ORGANIZATION(#70,#4062,#4079);
#4079=APPROVAL_ROLE('Authorize product definition');
#4080=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#4084,(#4010,#5010));
#4084=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#4088=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides assembly specification',#4017,#5017);
#4085=CC_DESIGN_CERTIFICATION(#4086,(#4088));
#4086=CERTIFICATION('ISO-9000 certified design supplier','quality control',#4087);
#4087=CERTIFICATION_TYPE('design_supplier');
#4089=CC_DESIGN_APPROVAL(#4090,(#4086));
#4090=APPROVAL(#4091,'Approved as ISO-9000 certified supplier');
#4091=APPROVAL_STATUS('approved');
#4092=APPROVAL_PERSON_ORGANIZATION(#70,#4090,#4093);
#4093=APPROVAL_ROLE('Authorize supplier certification');
#4094=DATE_AND_TIME(#4095,#4096);
#4095=CALENDAR_DATE(1993,20,4);
#4096=LOCAL_TIME(15,47,51.0,#29);
#4097=APPROVAL_DATE_TIME(#4094,#4090);
#4098=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#4100,#4102,(#4086));
#4099=CALENDAR_DATE(1993,19,4);
#4100=DATE_AND_TIME(#4099,#4101);
#4101=LOCAL_TIME(10,41,59.0,#29);
#4102=DATE_TIME_ROLE('certification_date');
#5010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Rod with Conical Tip',#4001,.MADE.);
#5011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#5016,(#5010));
#5016=PERSON_AND_ORGANIZATION_ROLE('creator');
#5044=CC_DESIGN_APPROVAL(#5045,(#5010));
#5045=APPROVAL(#5046,'Approved as test part design');
#5046=APPROVAL_STATUS('approved');
#5047=APPROVAL_DATE_TIME(#5048,#5045);
#5048=DATE_AND_TIME(#5050,#5051);
#5050=CALENDAR_DATE(1993,19,7);
#5051=LOCAL_TIME(19,51,59.0,#29);
#5069=APPROVAL_PERSON_ORGANIZATION(#1070,#5045,#5072);
#5072=APPROVAL_ROLE('Authorize part version');
#5031=CC_DESIGN_SECURITY_CLASSIFICATION(#5032,(#5010));
#5032=SECURITY_CLASSIFICATION('1993-C7','open availability of test part designs',#5033);
#5033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#5034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#5035,#5039,(#5032));
#5035=DATE_AND_TIME(#5036,#5037);
#5036=CALENDAR_DATE(1993,19,7);
#5037=LOCAL_TIME(19,45,41.0,#29);
#5039=DATE_TIME_ROLE('classification_date');
#5040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#5043,(#5032));
#5043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#5053=CC_DESIGN_APPROVAL(#5054,(#5032));
#5054=APPROVAL(#5055,'Approved as unclassified part design');
#5055=APPROVAL_STATUS('approved');
#5056=APPROVAL_DATE_TIME(#5057,#5054);
#5057=DATE_AND_TIME(#5058,#5059);
#5058=CALENDAR_DATE(1993,19,7);
#5059=LOCAL_TIME(19,47,58.0,#29);
#5073=APPROVAL_PERSON_ORGANIZATION(#81,#5054,#5076);
#5076=APPROVAL_ROLE('Authorize the security code');
#5017=PRODUCT_DEFINITION('D6','Detailed drawing',#5010,#5018);
#5018=DESIGN_CONTEXT('assembly specification',#3,'design');
#5019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#5023,(#5017));
#5023=PERSON_AND_ORGANIZATION_ROLE('creator');
#5024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#5025,#5030,(#5017));
#5025=DATE_AND_TIME(#5027,#5028);
#5027=CALENDAR_DATE(1993,18,7);
#5028=LOCAL_TIME(10,51,59.0,#29);
#5030=DATE_TIME_ROLE('creation_date');
#5061=CC_DESIGN_APPROVAL(#5062,(#5017));
#5062=APPROVAL(#5063,'Approved as assembly specification');
#5063=APPROVAL_STATUS('approved');
#5064=APPROVAL_DATE_TIME(#5065,#5062);
#5065=DATE_AND_TIME(#5066,#5067);
#5066=CALENDAR_DATE(1993,19,7);
#5067=LOCAL_TIME(19,51,59.0,#29);
#5077=APPROVAL_PERSON_ORGANIZATION(#81,#5062,#5079);
#5079=APPROVAL_ROLE('Authorize product definition');
/* component assembly position : method 1 */
#1211=PRODUCT_DEFINITION_SHAPE('ABR_Shape','Shape relationship between gasket and rod',#5265);
#1210=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1212,#1211);
#1212=( REPRESENTATION_RELATIONSHIP('label','description',#9370,#10370)
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1213)
SHAPE_REPRESENTATION_RELATIONSHIP());
#1213=ITEM_DEFINED_TRANSFORMATION('name','description',#9211,#9120);
#1214=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1216,#1211);
#1216=(REPRESENTATION_RELATIONSHIP('label','description',#9370,#10370)
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1217)
SHAPE_REPRESENTATION_RELATIONSHIP());
#1217=ITEM_DEFINED_TRANSFORMATION('name','description',#9241,#9120);
#1218=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1220,#1211);
#1220=(REPRESENTATION_RELATIONSHIP('label','description',#9370,#10370)
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1221)
SHAPE_REPRESENTATION_RELATIONSHIP());
#1221=ITEM_DEFINED_TRANSFORMATION('name','description',#9271,#9120);
#1222=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1224,#1211);
#1224=(REPRESENTATION_RELATIONSHIP('label','description',#9370,#10370)
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1225)
SHAPE_REPRESENTATION_RELATIONSHIP());
#1225=ITEM_DEFINED_TRANSFORMATION('name','description',#9301,#9120);
/* component assembly position : method 2 */
#1230=MAPPED_ITEM('MapPath1',#1234,#9211);
#1231=MAPPED_ITEM('MapPath2',#1234,#9241);
#1232=MAPPED_ITEM('MapPath3',#1234,#9271);
#1233=MAPPED_ITEM('MapPath4',#1234,#9301);
#1234=REPRESENTATION_MAP(#9120,#10370);
#9020=DIMENSIONAL_EXPONENTS(1.0,0.0,0.0,0.0,0.0,0.0,0.0);
#9021=DIMENSIONAL_EXPONENTS(0.0,0.0,0.0,0.0,0.0,0.0,0.0);
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040,'xx','yy');
#9100 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
#9101 = DIRECTION('Dir1',(0.1,0.0,0.0));
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
#9120 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9100,#9103,#9101);
#9121 = PLANE('Plane1',#9120);
#9122 = CIRCLE('Circ1',#9120,40.0);
#9123 = CARTESIAN_POINT('CartPt2',(40.0,0.0,0.0));
#9124 = VERTEX_POINT('VertPt1',#9123);
#9125 = EDGE_CURVE('EdgeCur1',#9124,#9124,#9122,.T.);
#9126 = ORIENTED_EDGE('OriEdge1',*,*,#9125,.T.);
#9127 = EDGE_LOOP('EdgeLoop1',(#9126));
#9128 = FACE_BOUND('FaceBnd1',#9127,.F.);
#9130 = CIRCLE('Circ2',#9120,25.0);
#9131 = CARTESIAN_POINT('CartPt3',(25.0,0.0,0.0));
#9132 = VERTEX_POINT('VertPt2',#9131);
#9133 = EDGE_CURVE('EdgeCur2',#9132,#9132,#9130,.T.);
#9134 = ORIENTED_EDGE('OriEdge2',*,*,#9133,.T.);
#9135 = EDGE_LOOP('EdgeLoop2',(#9134));
#9136 = FACE_BOUND('FaceBnd2',#9135,.T.);
#9140 = CARTESIAN_POINT('CartPt4',(0.0,0.0,5.0));
#9141 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9140,#9103,#9101);
#9142 = PLANE('Plane2',#9141);
#9143 = CIRCLE('Circ3',#9141,40.0);
#9144 = CARTESIAN_POINT('CartPt5',(40.0,0.0,5.0));
#9145 = VERTEX_POINT('VertPt3',#9144);
#9146 = EDGE_CURVE('EdgeCur3',#9145,#9145,#9143,.T.);
#9147 = ORIENTED_EDGE('OriEdge3',*,*,#9146,.T.);
#9148 = EDGE_LOOP('EdgeLoop3',(#9147));
#9149 = FACE_BOUND('FaceBnd3',#9148,.T.);
#9160 = CIRCLE('Circ4',#9141,25.0);
#9161 = CARTESIAN_POINT('CartPt6',(25.0,0.0,5.0));
#9162 = VERTEX_POINT('VertPt4',#9161);
#9163 = EDGE_CURVE('EdgeCur4',#9162,#9162,#9160,.T.);
#9164 = ORIENTED_EDGE('OriEdge4',*,*,#9163,.T.);
#9165 = EDGE_LOOP('EdgeLoop4',(#9164));
#9166 = FACE_BOUND('FaceBnd4',#9165,.F.);
#9180 = CYLINDRICAL_SURFACE('CylSur1',#9120,40.0);
#9190 = FACE_BOUND('FaceBnd5',#9127,.T.);
#9191 = FACE_BOUND('FaceBnd6',#9148,.F.);
#9192 = ADVANCED_FACE('AdvFace1',(#9190,#9191),#9180,.T.);
#9200 = CYLINDRICAL_SURFACE('CylSur2',#9120,25.0);
#9201 = FACE_BOUND('FaceBnd7',#9135,.F.);
#9202 = FACE_BOUND('FaceBnd8',#9165,.T.);
#9203 = ADVANCED_FACE('AdvFace2',(#9201,#9202),#9200,.F.);
#9210 = CARTESIAN_POINT('CartPt7',(0.0,32.5,0.0));
#9211 = AXIS2_PLACEMENT_3D('Ax2P3D3',#9210,#9103,#9101);
#9212 = CIRCLE('Circ5',#9211,2.5);
#9213 = CARTESIAN_POINT('CartPt8',(2.5,32.5,0.0));
#9214 = VERTEX_POINT('VertPt5',#9213);
#9215 = EDGE_CURVE('EdgeCur5',#9214,#9214,#9212,.T.);
#9216 = ORIENTED_EDGE('OriEdge5',*,*,#9215,.T.);
#9217 = EDGE_LOOP('EdgeLoop5',(#9216));
#9218 = FACE_BOUND('FaceBnd9',#9217,.F.);
#9219 = FACE_BOUND('FaceBnd10',#9217,.T.);
#9220 = CARTESIAN_POINT('CartPt9',(0.0,32.5,5.0));
#9221 = AXIS2_PLACEMENT_3D('Ax2P3D4',#9220,#9103,#9101);
#9222 = CIRCLE('Circ6',#9221,5.0);
#9223 = CARTESIAN_POINT('CartPt10',(5.0,32.5,5.0));
#9224 = VERTEX_POINT('VertPt6',#9223);
#9225 = EDGE_CURVE('EdgeCur6',#9224,#9224,#9222,.T.);
#9226 = ORIENTED_EDGE('OriEdge6',*,*,#9225,.T.);
#9227 = EDGE_LOOP('EdgeLoop6',(#9226));
#9228 = FACE_BOUND('FaceBnd11',#9227,.T.);
#9229 = FACE_BOUND('FaceBnd12',#9227,.F.);
#9230 = CONICAL_SURFACE('ConSur1',#9211,2.5,0.46364761);
#9231 = ADVANCED_FACE('AdvFace3',(#9218,#9228),#9230,.F.);
#9240 = CARTESIAN_POINT('CartPt11',(32.5,0.0,0.0));
#9241 = AXIS2_PLACEMENT_3D('Ax2P3D5',#9240,#9103,#9101);
#9242 = CIRCLE('Circ7',#9241,2.5);
#9243 = CARTESIAN_POINT('CartPt12',(35.0,0.0,0.0));
#9244 = VERTEX_POINT('VertPt7',#9243);
#9245 = EDGE_CURVE('EdgeCur7',#9244,#9244,#9242,.T.);
#9246 = ORIENTED_EDGE('OriEdge7',*,*,#9245,.T.);
#9247 = EDGE_LOOP('EdgeLoop7',(#9246));
#9248 = FACE_BOUND('FaceBnd13',#9247,.F.);
#9249 = FACE_BOUND('FaceBnd14',#9247,.T.);
#9250 = CARTESIAN_POINT('CartPt13',(32.5,0.0,5.0));
#9251 = AXIS2_PLACEMENT_3D('Ax2P3D6',#9250,#9103,#9101);
#9252 = CIRCLE('Circ8',#9251,5.0);
#9253 = CARTESIAN_POINT('CartPt14',(37.5,0.0,5.0));
#9254 = VERTEX_POINT('VertPt8',#9253);
#9255 = EDGE_CURVE('EdgeCur8',#9254,#9254,#9252,.T.);
#9256 = ORIENTED_EDGE('OriEdge8',*,*,#9255,.T.);
#9257 = EDGE_LOOP('EdgeLoop8',(#9256));
#9258 = FACE_BOUND('FaceBnd15',#9257,.T.);
#9259 = FACE_BOUND('FaceBnd16',#9257,.F.);
#9260 = CONICAL_SURFACE('ConSur2',#9241,2.5,0.46364761);
#9261 = ADVANCED_FACE('AdvFace4',(#9248,#9258),#9260,.F.);
#9270 = CARTESIAN_POINT('CartPt15',(0.0,-32.5,0.0));
#9271 = AXIS2_PLACEMENT_3D('Ax2P3D7',#9270,#9103,#9101);
#9272 = CIRCLE('Circ9',#9271,2.5);
#9273 = CARTESIAN_POINT('CartPt16',(2.5,-32.5,0.0));
#9274 = VERTEX_POINT('VertPt9',#9273);
#9275 = EDGE_CURVE('EdgeCur9',#9274,#9274,#9272,.T.);
#9276 = ORIENTED_EDGE('OriEdge9',*,*,#9275,.T.);
#9277 = EDGE_LOOP('EdgeLoop9',(#9276));
#9278 = FACE_BOUND('FaceBnd17',#9277,.F.);
#9279 = FACE_BOUND('FaceBnd18',#9277,.T.);
#9280 = CARTESIAN_POINT('CartPt17',(0.0,-32.5,5.0));
#9281 = AXIS2_PLACEMENT_3D('Ax2P3D8',#9280,#9103,#9101);
#9282 = CIRCLE('Circ10',#9281,5.0);
#9283 = CARTESIAN_POINT('CartPt18',(5.0,-32.5,5.0));
#9284 = VERTEX_POINT('VertPt10',#9283);
#9285 = EDGE_CURVE('EdgeCur10',#9284,#9284,#9282,.T.);
#9286 = ORIENTED_EDGE('OriEdge10',*,*,#9285,.T.);
#9287 = EDGE_LOOP('EdgeLoop10',(#9286));
#9288 = FACE_BOUND('FaceBnd19',#9287,.T.);
#9289 = FACE_BOUND('FaceBnd20',#9287,.F.);
#9290 = CONICAL_SURFACE('ConSur3',#9271,2.5,0.46364761);
#9291 = ADVANCED_FACE('AdvFace5',(#9278,#9288),#9290,.F.);
#9300 = CARTESIAN_POINT('CartPt19',(-32.5,0.0,0.0));
#9301 = AXIS2_PLACEMENT_3D('Ax2P3D9',#9300,#9103,#9101);
#9302 = CIRCLE('Circ11',#9301,2.5);
#9303 = CARTESIAN_POINT('CartPt20',(-30.0,0.0,0.0));
#9304 = VERTEX_POINT('VertPt11',#9303);
#9305 = EDGE_CURVE('EdgeCur11',#9304,#9304,#9302,.T.);
#9306 = ORIENTED_EDGE('OriEdge11',*,*,#9305,.T.);
#9307 = EDGE_LOOP('EdgeLoop11',(#9306));
#9308 = FACE_BOUND('FaceBnd21',#9307,.F.);
#9309 = FACE_BOUND('FaceBnd22',#9307,.T.);
#9310 = CARTESIAN_POINT('CartPt21',(-32.5,0.0,5.0));
#9311 = AXIS2_PLACEMENT_3D('Ax2P3D10',#9310,#9103,#9101);
#9312 = CIRCLE('Circ12',#9311,5.0);
#9313 = CARTESIAN_POINT('CartPt22',(37.5,0.0,5.0));
#9314 = VERTEX_POINT('VertPt12',#9313);
#9315 = EDGE_CURVE('EdgeCur12',#9314,#9314,#9312,.T.);
#9316 = ORIENTED_EDGE('OriEdge12',*,*,#9315,.T.);
#9317 = EDGE_LOOP('EdgeLoop12',(#9316));
#9318 = FACE_BOUND('FaceBnd23',#9317,.T.);
#9319 = FACE_BOUND('FaceBnd24',#9317,.F.);
#9320 = CONICAL_SURFACE('ConSur4',#9301,2.5,0.46364761);
#9321 = ADVANCED_FACE('AdvFace6',(#9308,#9318),#9320,.F.);
#9325 = ADVANCED_FACE('AdvFace7',(#9128,#9136,#9219,#9249,#9279,#9309),#9121,.F.);
#9326 = ADVANCED_FACE('AdvFace8',(#9149,#9166,#9229,#9259,#9289,#9319),#9142,.T.);
#9350 = CLOSED_SHELL('CloseSh1',(#9192,#9203,#9231,#9261,#9291,#9321,#9325,#9326));
#9351 = MANIFOLD_SOLID_BREP('ManSolBrep1',#9350);
#9360 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case gasket with conical holes','This is a 3d context using millimeters for linear dimension'));
#9370 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep1',(#9351,#1230,#1231,#1232,#1233),#9360);
#10121 = PLANE('Plane3',#9120);
#10122 = CIRCLE('Circ13',#9120,2.5);
#10123 = CARTESIAN_POINT('CartPt23',(2.5,0.0,0.0));
#10124 = VERTEX_POINT('VertPt13',#10123);
#10125 = EDGE_CURVE('EdgeCur13',#10124,#10124,#10122,.T.);
#10126 = ORIENTED_EDGE('OriEdge13',*,*,#10125,.T.);
#10127 = EDGE_LOOP('EdgeLoop13',(#10126));
#10128 = FACE_BOUND('FaceBnd25',#10127,.F.);
#10130 = ADVANCED_FACE('AdvFace9',(#10128),#10121,.F.);
#10140 = CARTESIAN_POINT('CartPt24',(0.0,0.0,5.0));
#10141 = AXIS2_PLACEMENT_3D('Ax2P3D11',#10140,#9103,#9101);
#10143 = CIRCLE('Circ14',#10141,5.0);
#10144 = CARTESIAN_POINT('CartPt25',(5.0,0.0,5.0));
#10145 = VERTEX_POINT('VertPt14',#10144);
#10146 = EDGE_CURVE('EdgeCur14',#10145,#10145,#10143,.T.);
#10147 = ORIENTED_EDGE('OriEdge14',*,*,#10146,.F.);
#10148 = EDGE_LOOP('EdgeLoop14',(#10147));
#10149 = FACE_BOUND('FaceBnd26',#10148,.T.);
#10150 = FACE_BOUND('FaceBnd27',#10127,.T.);
#10160 = CONICAL_SURFACE('ConSur5',#9120,2.5,0.46364761);
#10170 = ADVANCED_FACE('AdvFace10',(#10149,#10150),#10160,.T.);
#10180 = CARTESIAN_POINT('CartPt26',(0.0,0.0,50.0));
#10181 = AXIS2_PLACEMENT_3D('Ax2P3D12',#10180,#9103,#9101);
#10182 = CIRCLE('Circ15',#10181,5.0);
#10183 = CARTESIAN_POINT('CartPt27',(5.0,0.0,50.0));
#10184 = VERTEX_POINT('VertPt15',#10183);
#10185 = EDGE_CURVE('EdgeCur15',#10184,#10184,#10182,.T.);
#10186 = ORIENTED_EDGE('OriEdge15',*,*,#10185,.F.);
#10187 = EDGE_LOOP('EdgeLoop15',(#10186));
#10188 = FACE_BOUND('FaceBnd28',#10187,.T.);
#10190 = FACE_BOUND('FaceBnd29',#10148,.F.);
#10200 = CYLINDRICAL_SURFACE('CylSur3',#10141,5.0);
#10210 = ADVANCED_FACE('AdvFace11',(#10188,#10190),#10200,.T.);
#10211 = PLANE('Plane4',#10181);
#10212 = FACE_BOUND('FaceBnd30',#10187,.F.);
#10213 = ADVANCED_FACE('AdvFace12',(#10212),#10211,.T.);
#10230 = PLANE('Plane5',#10141);
#10232 = ADVANCED_FACE('AdvFace13',(#10190),#10230,.T.);
#10233 = ADVANCED_FACE('AdvFace14',(#10149),#10230,.F.);
#10240 = CLOSED_SHELL('CloseSh2',(#10130,#10170,#10232));
#10250 = CLOSED_SHELL('CloseSh3',(#10233,#10210,#10213));
#10260 = MANIFOLD_SOLID_BREP('ManSolBrep2',#10240);
#10270 = MANIFOLD_SOLID_BREP('ManSolBrep3',#10250);
#10360 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case rod with conical tip aspect','This is a 3d context using millimeters for linear dimension'));
#10370 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep2',(#10260,#10270),#10360);
ENDSEC;
END-ISO-10303-21;
-220
View File
@@ -1,220 +0,0 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 6 - advanced brep'),'1');
FILE_NAME('gasket1.p21','1994-12-14 T10:00:00',
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
('Industrial Technology Institute',
'P.O. Box 1485',
'Ann Arbor',
'Michigan',
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1=PRODUCT('11113','Flat Ring Gasket','Description for part 11113',(#2));
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
#5=PERSON_AND_ORGANIZATION(#6,#7);
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','A not-for-profit engineering and research center');
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 11113',(#1));
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 11113',#1,.BOUGHT.);
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
#13=PERSON_AND_ORGANIZATION(#14,#7);
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
#44=CC_DESIGN_APPROVAL(#45,(#10));
#45=APPROVAL(#46,'Approved as initial STEP test case part');
#46=APPROVAL_STATUS('approved');
#47=APPROVAL_DATE_TIME(#48,#45);
#48=DATE_AND_TIME(#50,#51);
#50=CALENDAR_DATE(1993,17,7);
#51=LOCAL_TIME(13,29,52.0,#29);
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
#70=PERSON_AND_ORGANIZATION(#71,#7);
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
#72=APPROVAL_ROLE('Authorize part release');
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
#35=DATE_AND_TIME(#36,#37);
#36=CALENDAR_DATE(1993,17,7);
#37=LOCAL_TIME(13,45,20.0,#29);
#39=DATE_TIME_ROLE('classification_date');
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
#41=PERSON_AND_ORGANIZATION(#42,#7);
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#53=CC_DESIGN_APPROVAL(#54,(#32));
#54=APPROVAL(#55,'Approved as unclassified step test data');
#55=APPROVAL_STATUS('approved');
#56=APPROVAL_DATE_TIME(#57,#54);
#57=DATE_AND_TIME(#58,#59);
#58=CALENDAR_DATE(1993,17,7);
#59=LOCAL_TIME(13,47,28.0,#29);
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
#74=PERSON_AND_ORGANIZATION(#75,#7);
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
#76=APPROVAL_ROLE('Authorize the security code');
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
#18=DESIGN_CONTEXT('detailed design',#3,'design');
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
#25=DATE_AND_TIME(#27,#28);
#27=CALENDAR_DATE(1993,19,7);
#28=LOCAL_TIME(19,46,55.0,#29);
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
#30=DATE_TIME_ROLE('creation_date');
#61=CC_DESIGN_APPROVAL(#62,(#17));
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
#63=APPROVAL_STATUS('approved');
#64=APPROVAL_DATE_TIME(#65,#62);
#65=DATE_AND_TIME(#66,#67);
#66=CALENDAR_DATE(1993,19,7);
#67=LOCAL_TIME(19,47,51.0,#29);
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
#79=APPROVAL_ROLE('Authorize product definition');
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
#81=PERSON_AND_ORGANIZATION(#82,#83);
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization.');
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
#87=CERTIFICATION_TYPE('design_supplier');
#89=CC_DESIGN_APPROVAL(#90,(#86));
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
#91=APPROVAL_STATUS('approved');
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
#93=APPROVAL_ROLE('Authorize supplier certification');
#94=DATE_AND_TIME(#95,#96);
#95=CALENDAR_DATE(1993,20,4);
#96=LOCAL_TIME(15,47,51.0,#29);
#97=APPROVAL_DATE_TIME(#94,#90);
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
#99=CALENDAR_DATE(1993,19,4);
#100=DATE_AND_TIME(#99,#101);
#101=LOCAL_TIME(10,41,59.0,#29);
#102=DATE_TIME_ROLE('certification_date');
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Flat Ring Gasket',#1,.MADE.);
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
#1045=APPROVAL(#1046,'Approved as test part design');
#1046=APPROVAL_STATUS('approved');
#1047=APPROVAL_DATE_TIME(#1048,#1045);
#1048=DATE_AND_TIME(#1050,#1051);
#1050=CALENDAR_DATE(1993,19,7);
#1051=LOCAL_TIME(19,51,59.0,#29);
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
#1070=PERSON_AND_ORGANIZATION(#82,#83);
#1072=APPROVAL_ROLE('Authorize part version');
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
#1035=DATE_AND_TIME(#1036,#1037);
#1036=CALENDAR_DATE(1993,19,7);
#1037=LOCAL_TIME(19,45,41.0,#29);
#1039=DATE_TIME_ROLE('classification_date');
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
#1054=APPROVAL(#1055,'Approved as unclassified part design');
#1055=APPROVAL_STATUS('approved');
#1056=APPROVAL_DATE_TIME(#1057,#1054);
#1057=DATE_AND_TIME(#1058,#1059);
#1058=CALENDAR_DATE(1993,19,7);
#1059=LOCAL_TIME(19,47,58.0,#29);
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
#1076=APPROVAL_ROLE('Authorize the security code');
#1017=PRODUCT_DEFINITION('D2','Description of product for part 11113',#1010,#1018);
#1018=DESIGN_CONTEXT('detailed design',#3,'design');
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
#1025=DATE_AND_TIME(#1027,#1028);
#1027=CALENDAR_DATE(1993,18,7);
#1028=LOCAL_TIME(10,51,59.0,#29);
#1030=DATE_TIME_ROLE('creation_date');
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
#1062=APPROVAL(#1063,'Approved as detailed drawing');
#1063=APPROVAL_STATUS('approved');
#1064=APPROVAL_DATE_TIME(#1065,#1062);
#1065=DATE_AND_TIME(#1066,#1067);
#1066=CALENDAR_DATE(1993,19,7);
#1067=LOCAL_TIME(19,51,59.0,#29);
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
#1079=APPROVAL_ROLE('Authorize product definition');
#1080=SHAPE_DEFINITION_REPRESENTATION(#1081,#9240);
#1081=PRODUCT_DEFINITION_SHAPE('ABR_Shape','Shape of Flat Ring Gasket',#17);
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040);
#9100 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
#9101 = DIRECTION('Dir1',(1.0,0.0,0.0));
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
#9120 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9100,#9103,#9101);
#9121 = PLANE('Plane1',#9120);
#9122 = CIRCLE('Circ1',#9120,30.0);
#9123 = CARTESIAN_POINT('CartPt2',(30.0,0.0,0.0));
#9124 = VERTEX_POINT('VertPt1',#9123);
#9125 = EDGE_CURVE('EdgeCur1',#9124,#9124,#9122,.T.);
#9126 = ORIENTED_EDGE('OriEdge1',*,*,#9125,.T.);
#9127 = EDGE_LOOP('EdgeLoop1',(#9126));
#9128 = FACE_BOUND('FaceBnd1',#9127,.F.);
#9130 = CIRCLE('Circ2',#9120,25.0);
#9131 = CARTESIAN_POINT('CartPt3',(25.0,0.0,0.0));
#9132 = VERTEX_POINT('VertPt2',#9131);
#9133 = EDGE_CURVE('EdgeCur2',#9132,#9132,#9130,.T.);
#9134 = ORIENTED_EDGE('OriEdge2',*,*,#9133,.T.);
#9135 = EDGE_LOOP('EdgeLoop2',(#9134));
#9136 = FACE_BOUND('FaceBnd2',#9135,.T.);
#9137 = ADVANCED_FACE('AdvFace1',(#9136,#9128),#9121,.F.);
#9140 = CARTESIAN_POINT('CartPt4',(0.0,0.0,5.0));
#9141 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9140,#9103,#9101);
#9142 = PLANE('Plane2',#9141);
#9143 = CIRCLE('Circ3',#9141,30.0);
#9144 = CARTESIAN_POINT('CartPt5',(30.0,0.0,5.0));
#9145 = VERTEX_POINT('VertPt3',#9144);
#9146 = EDGE_CURVE('EdgeCur3',#9145,#9145,#9143,.T.);
#9147 = ORIENTED_EDGE('OriEdge3',*,*,#9146,.T.);
#9148 = EDGE_LOOP('EdgeLoop3',(#9147));
#9149 = FACE_BOUND('FaceBnd3',#9148,.T.);
#9160 = CIRCLE('Circ4',#9141,25.0);
#9161 = CARTESIAN_POINT('CartPt6',(25.0,0.0,5.0));
#9162 = VERTEX_POINT('VertPt4',#9161);
#9163 = EDGE_CURVE('EdgeCur4',#9162,#9162,#9160,.T.);
#9164 = ORIENTED_EDGE('OriEdge4',*,*,#9163,.T.);
#9165 = EDGE_LOOP('EdgeLoop4',(#9164));
#9166 = FACE_BOUND('FaceBnd4',#9165,.F.);
#9167 = ADVANCED_FACE('AdvFace2',(#9149,#9166),#9142,.T.);
#9180 = CYLINDRICAL_SURFACE('CylSur1',#9120,30.0);
#9190 = FACE_BOUND('FaceBnd5',#9127,.T.);
#9191 = FACE_BOUND('FaceBnd6',#9148,.F.);
#9192 = ADVANCED_FACE('AdvFace3',(#9190,#9191),#9180,.T.);
#9200 = CYLINDRICAL_SURFACE('CylSur2',#9120,25.0);
#9201 = FACE_BOUND('FaceBnd7',#9135,.F.);
#9202 = FACE_BOUND('FaceBnd8',#9165,.T.);
#9203 = ADVANCED_FACE('AdvFace4',(#9201,#9202),#9200,.F.);
#9210 = CLOSED_SHELL('CloseSh1',(#9137,#9167,#9192,#9203));
#9220 = MANIFOLD_SOLID_BREP('ManSolBrep1',#9210);
#9230 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case gasket','This is a 3d context using millimeters for linear dimension'));
#9240 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep1',(#9220),#9230);
ENDSEC;
END-ISO-10303-21;
-340
View File
@@ -1,340 +0,0 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 6 - advanced brep'),'1');
FILE_NAME('gasket2.p21','1994-12-14 T10:00:00',
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
('Industrial Technology Institute',
'P.O. Box 1485',
'Ann Arbor',
'Michigan',
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1=PRODUCT('21113','Flat Ring Gasket with Holes','Description for part 21113',(#2));
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
#5=PERSON_AND_ORGANIZATION(#6,#7);
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
#1097=PERSONAL_ADDRESS($,'17147','New Hamburg Road',$,'Whitmore Lake','Michigan','48189','USA',$,'(313) 769-1234',$,$,(#6));
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','Anot-for-profit engineering and research center');
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 21113',(#1));
#1098=PRODUCT_CATEGORY('mechanical','root node');
#1099=PRODUCT_CATEGORY_RELATIONSHIP('root-to-structural','Relates the root to the structural category',#1098,#1100);
#1100=PRODUCT_CATEGORY('structural','The structural product category');
#1101=PRODUCT_CATEGORY_RELATIONSHIP('structural-to-machined','Relate the structural to the machined product categories',#1100,#1102);
#1102=PRODUCT_RELATED_PRODUCT_CATEGORY('machined','Machined category',(#1));
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 21113',#1,.BOUGHT.);
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
#13=PERSON_AND_ORGANIZATION(#14,#7);
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
#44=CC_DESIGN_APPROVAL(#45,(#10));
#45=APPROVAL(#46,'Approved as initial STEP test case part');
#46=APPROVAL_STATUS('approved');
#47=APPROVAL_DATE_TIME(#48,#45);
#48=DATE_AND_TIME(#50,#51);
#50=CALENDAR_DATE(1993,17,7);
#51=LOCAL_TIME(13,29,52.0,#29);
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
#70=PERSON_AND_ORGANIZATION(#71,#7);
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
#72=APPROVAL_ROLE('Authorize part release');
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
#35=DATE_AND_TIME(#36,#37);
#36=CALENDAR_DATE(1993,17,7);
#37=LOCAL_TIME(13,45,20.0,#29);
#39=DATE_TIME_ROLE('classification_date');
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
#41=PERSON_AND_ORGANIZATION(#42,#7);
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#53=CC_DESIGN_APPROVAL(#54,(#32));
#54=APPROVAL(#55,'Approved as unclassified step test data');
#55=APPROVAL_STATUS('approved');
#56=APPROVAL_DATE_TIME(#57,#54);
#57=DATE_AND_TIME(#58,#59);
#58=CALENDAR_DATE(1993,17,7);
#59=LOCAL_TIME(13,47,28.0,#29);
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
#74=PERSON_AND_ORGANIZATION(#75,#7);
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
#76=APPROVAL_ROLE('Authorize the security code');
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
#18=DESIGN_CONTEXT('detailed design',#3,'design');
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
#25=DATE_AND_TIME(#27,#28);
#27=CALENDAR_DATE(1993,19,7);
#28=LOCAL_TIME(19,46,55.0,#29);
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
#30=DATE_TIME_ROLE('creation_date');
#61=CC_DESIGN_APPROVAL(#62,(#17));
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
#63=APPROVAL_STATUS('approved');
#64=APPROVAL_DATE_TIME(#65,#62);
#65=DATE_AND_TIME(#66,#67);
#66=CALENDAR_DATE(1993,19,7);
#67=LOCAL_TIME(19,47,51.0,#29);
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
#79=APPROVAL_ROLE('Authorize product definition');
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
#81=PERSON_AND_ORGANIZATION(#82,#83);
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization');
#1096=ORGANIZATIONAL_ADDRESS($,'2901','Hubbard',$,'Ann Arbor','Michigan','48106','USA','(313) 769-4069','(313) 769-4000',$,$,(#83));
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
#87=CERTIFICATION_TYPE('design_supplier');
#89=CC_DESIGN_APPROVAL(#90,(#86));
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
#91=APPROVAL_STATUS('approved');
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
#93=APPROVAL_ROLE('Authorize supplier certification');
#94=DATE_AND_TIME(#95,#96);
#95=CALENDAR_DATE(1993,20,4);
#96=LOCAL_TIME(15,47,51.0,#29);
#97=APPROVAL_DATE_TIME(#94,#90);
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
#99=CALENDAR_DATE(1993,19,4);
#100=DATE_AND_TIME(#99,#101);
#101=LOCAL_TIME(10,41,59.0,#29);
#102=DATE_TIME_ROLE('certification_date');
#1103=PRODUCT('12345','Ring Gasket - Flat with Holes','CDI''s part 12345 description',(#2));
#1109=PRODUCT_RELATED_PRODUCT_CATEGORY('customer_furnished_equipment','Part Type for product 12345',(#1103));
#1104=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#8,(#1103));
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Ring Gasket - Flat with Holes ',#1103,.MADE.);
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
#1045=APPROVAL(#1046,'Approved as test part design');
#1046=APPROVAL_STATUS('approved');
#1047=APPROVAL_DATE_TIME(#1048,#1045);
#1048=DATE_AND_TIME(#1050,#1051);
#1050=CALENDAR_DATE(1993,19,7);
#1051=LOCAL_TIME(19,51,59.0,#29);
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
#1070=PERSON_AND_ORGANIZATION(#82,#83);
#1072=APPROVAL_ROLE('Authorize part version');
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
#1035=DATE_AND_TIME(#1036,#1037);
#1036=CALENDAR_DATE(1993,19,7);
#1037=LOCAL_TIME(19,45,41.0,#29);
#1039=DATE_TIME_ROLE('classification_date');
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
#1054=APPROVAL(#1055,'Approved as unclassified part design');
#1055=APPROVAL_STATUS('approved');
#1056=APPROVAL_DATE_TIME(#1057,#1054);
#1057=DATE_AND_TIME(#1058,#1059);
#1058=CALENDAR_DATE(1993,19,7);
#1059=LOCAL_TIME(19,47,58.0,#29);
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
#1076=APPROVAL_ROLE('Authorize the security code');
#1017=PRODUCT_DEFINITION('D2','Description of product for part 12345',#1010,#1018);
#1018=DESIGN_CONTEXT('detailed design',#3,'design');
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
#1025=DATE_AND_TIME(#1027,#1028);
#1027=CALENDAR_DATE(1993,18,7);
#1028=LOCAL_TIME(10,51,59.0,#29);
#1030=DATE_TIME_ROLE('creation_date');
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
#1062=APPROVAL(#1063,'Approved as detailed drawing');
#1063=APPROVAL_STATUS('approved');
#1064=APPROVAL_DATE_TIME(#1065,#1062);
#1065=DATE_AND_TIME(#1066,#1067);
#1066=CALENDAR_DATE(1993,19,7);
#1067=LOCAL_TIME(19,51,59.0,#29);
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
#1079=APPROVAL_ROLE('Authorize product definition');
#1080=CC_DESIGN_CONTRACT(#1081,(#10));
#1081=CONTRACT('ITI-1121','Development of STEP conformance testing',#1082);
#1082=CONTRACT_TYPE('fixed_price');
#1083=CC_DESIGN_APPROVAL(#1084,(#1081));
#1084=APPROVAL(#1085,'Approved as active project under contract');
#1085=APPROVAL_STATUS('approved');
#1086=APPROVAL_PERSON_ORGANIZATION(#1087,#1084,#1090);
#1087=PERSON_AND_ORGANIZATION(#1088,#1089);
#1088=PERSON('212-33-7485','Masters','Larry',$,$,$);
#1089=ORGANIZATION('NIST','National Institute of Standards and Technology','Institute within the Department of Commerce');
#1090=APPROVAL_ROLE('Authorized the contract');
#1105=APPROVAL_DATE_TIME(#1106,#1084);
#1106=DATE_AND_TIME(#1107,#1108);
#1107=CALENDAR_DATE(1993,3,5);
#1108=LOCAL_TIME(10,47,28.0,#29);
#1091=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1092,#1095,(#1081));
#1092=PERSON_AND_ORGANIZATION(#1093,#7);
#1093=PERSON('355-55-6849','Kuper','George',$,$,$);
#1095=PERSON_AND_ORGANIZATION_ROLE('contractor');
#1200=SHAPE_DEFINITION_REPRESENTATION(#1201,#9370);
#1201=PRODUCT_DEFINITION_SHAPE('ABR_Shape','Shape of flat ring gasket with conical holes',#17);
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040);
#9100 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
#9101 = DIRECTION('Dir1',(0.1,0.0,0.0));
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
#9120 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9100,#9103,#9101);
#9121 = PLANE('Plane1',#9120);
#9122 = CIRCLE('Circ1',#9120,40.0);
#9123 = CARTESIAN_POINT('CartPt2',(40.0,0.0,0.0));
#9124 = VERTEX_POINT('VertPt1',#9123);
#9125 = EDGE_CURVE('EdgeCur1',#9124,#9124,#9122,.T.);
#9126 = ORIENTED_EDGE('OriEdge1',*,*,#9125,.T.);
#9127 = EDGE_LOOP('EdgeLoop1',(#9126));
#9128 = FACE_BOUND('FaceBnd1',#9127,.F.);
#9130 = CIRCLE('Circ2',#9120,25.0);
#9131 = CARTESIAN_POINT('CartPt3',(25.0,0.0,0.0));
#9132 = VERTEX_POINT('VertPt2',#9131);
#9133 = EDGE_CURVE('EdgeCur2',#9132,#9132,#9130,.T.);
#9134 = ORIENTED_EDGE('OriEdge2',*,*,#9133,.T.);
#9135 = EDGE_LOOP('EdgeLoop2',(#9134));
#9136 = FACE_BOUND('FaceBnd2',#9135,.T.);
#9140 = CARTESIAN_POINT('CartPt4',(0.0,0.0,5.0));
#9141 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9140,#9103,#9101);
#9142 = PLANE('Plane2',#9141);
#9143 = CIRCLE('Circ3',#9141,40.0);
#9144 = CARTESIAN_POINT('CartPt5',(40.0,0.0,5.0));
#9145 = VERTEX_POINT('VertPt3',#9144);
#9146 = EDGE_CURVE('EdgeCur3',#9145,#9145,#9143,.T.);
#9147 = ORIENTED_EDGE('OriEdge3',*,*,#9146,.T.);
#9148 = EDGE_LOOP('EdgeLoop3',(#9147));
#9149 = FACE_BOUND('FaceBnd3',#9148,.T.);
#9160 = CIRCLE('Circ4',#9141,25.0);
#9161 = CARTESIAN_POINT('CartPt6',(25.0,0.0,5.0));
#9162 = VERTEX_POINT('VertPt4',#9161);
#9163 = EDGE_CURVE('EdgeCur4',#9162,#9162,#9160,.T.);
#9164 = ORIENTED_EDGE('OriEdge4',*,*,#9163,.T.);
#9165 = EDGE_LOOP('EdgeLoop4',(#9164));
#9166 = FACE_BOUND('FaceBnd4',#9165,.F.);
#9180 = CYLINDRICAL_SURFACE('CylSur1',#9120,40.0);
#9190 = FACE_BOUND('FaceBnd5',#9127,.T.);
#9191 = FACE_BOUND('FaceBnd6',#9148,.F.);
#9192 = ADVANCED_FACE('AdvFace1',(#9190,#9191),#9180,.T.);
#9200 = CYLINDRICAL_SURFACE('CylSur2',#9120,25.0);
#9201 = FACE_BOUND('FaceBnd7',#9135,.F.);
#9202 = FACE_BOUND('FaceBnd8',#9165,.T.);
#9203 = ADVANCED_FACE('AdvFace2',(#9201,#9202),#9200,.F.);
#9210 = CARTESIAN_POINT('CartPt7',(0.0,32.5,0.0));
#9211 = AXIS2_PLACEMENT_3D('Ax2P3D3',#9210,#9103,#9101);
#9212 = CIRCLE('Circ5',#9211,2.5);
#9213 = CARTESIAN_POINT('CartPt8',(2.5,32.5,0.0));
#9214 = VERTEX_POINT('VertPt5',#9213);
#9215 = EDGE_CURVE('EdgeCur5',#9214,#9214,#9212,.T.);
#9216 = ORIENTED_EDGE('OriEdge5',*,*,#9215,.T.);
#9217 = EDGE_LOOP('EdgeLoop5',(#9216));
#9218 = FACE_BOUND('FaceBnd9',#9217,.F.);
#9219 = FACE_BOUND('FaceBnd10',#9217,.T.);
#9220 = CARTESIAN_POINT('CartPt9',(0.0,32.5,5.0));
#9221 = AXIS2_PLACEMENT_3D('Ax2P3D4',#9220,#9103,#9101);
#9222 = CIRCLE('Circ6',#9221,5.0);
#9223 = CARTESIAN_POINT('CartPt10',(5.0,32.5,5.0));
#9224 = VERTEX_POINT('VertPt6',#9223);
#9225 = EDGE_CURVE('EdgeCur6',#9224,#9224,#9222,.T.);
#9226 = ORIENTED_EDGE('OriEdge6',*,*,#9225,.T.);
#9227 = EDGE_LOOP('EdgeLoop6',(#9226));
#9228 = FACE_BOUND('FaceBnd11',#9227,.T.);
#9229 = FACE_BOUND('FaceBnd12',#9227,.F.);
#9230 = CONICAL_SURFACE('ConSur1',#9211,2.5,0.46364761);
#9231 = ADVANCED_FACE('AdvFace3',(#9218,#9228),#9230,.F.);
#9240 = CARTESIAN_POINT('CartPt11',(32.5,0.0,0.0));
#9241 = AXIS2_PLACEMENT_3D('Ax2P3D5',#9240,#9103,#9101);
#9242 = CIRCLE('Circ7',#9241,2.5);
#9243 = CARTESIAN_POINT('CartPt12',(35.0,0.0,0.0));
#9244 = VERTEX_POINT('VertPt7',#9243);
#9245 = EDGE_CURVE('EdgeCur7',#9244,#9244,#9242,.T.);
#9246 = ORIENTED_EDGE('OriEdge7',*,*,#9245,.T.);
#9247 = EDGE_LOOP('EdgeLoop7',(#9246));
#9248 = FACE_BOUND('FaceBnd13',#9247,.F.);
#9249 = FACE_BOUND('FaceBnd14',#9247,.T.);
#9250 = CARTESIAN_POINT('CartPt13',(32.5,0.0,5.0));
#9251 = AXIS2_PLACEMENT_3D('Ax2P3D6',#9250,#9103,#9101);
#9252 = CIRCLE('Circ8',#9251,5.0);
#9253 = CARTESIAN_POINT('CartPt14',(37.5,0.0,5.0));
#9254 = VERTEX_POINT('VertPt8',#9253);
#9255 = EDGE_CURVE('EdgeCur8',#9254,#9254,#9252,.T.);
#9256 = ORIENTED_EDGE('OriEdge8',*,*,#9255,.T.);
#9257 = EDGE_LOOP('EdgeLoop8',(#9256));
#9258 = FACE_BOUND('FaceBnd15',#9257,.T.);
#9259 = FACE_BOUND('FaceBnd16',#9257,.F.);
#9260 = CONICAL_SURFACE('ConSur2',#9241,2.5,0.46364761);
#9261 = ADVANCED_FACE('AdvFace4',(#9248,#9258),#9260,.F.);
#9270 = CARTESIAN_POINT('CartPt15',(0.0,-32.5,0.0));
#9271 = AXIS2_PLACEMENT_3D('Ax2P3D7',#9270,#9103,#9101);
#9272 = CIRCLE('Circ9',#9271,2.5);
#9273 = CARTESIAN_POINT('CartPt16',(2.5,-32.5,0.0));
#9274 = VERTEX_POINT('VertPt9',#9273);
#9275 = EDGE_CURVE('EdgeCur9',#9274,#9274,#9272,.T.);
#9276 = ORIENTED_EDGE('OriEdge9',*,*,#9275,.T.);
#9277 = EDGE_LOOP('EdgeLoop9',(#9276));
#9278 = FACE_BOUND('FaceBnd17',#9277,.F.);
#9279 = FACE_BOUND('FaceBnd18',#9277,.T.);
#9280 = CARTESIAN_POINT('CartPt17',(0.0,-32.5,5.0));
#9281 = AXIS2_PLACEMENT_3D('Ax2P3D8',#9280,#9103,#9101);
#9282 = CIRCLE('Circ10',#9281,5.0);
#9283 = CARTESIAN_POINT('CartPt18',(5.0,-32.5,5.0));
#9284 = VERTEX_POINT('VertPt10',#9283);
#9285 = EDGE_CURVE('EdgeCur10',#9284,#9284,#9282,.T.);
#9286 = ORIENTED_EDGE('OriEdge10',*,*,#9285,.T.);
#9287 = EDGE_LOOP('EdgeLoop10',(#9286));
#9288 = FACE_BOUND('FaceBnd19',#9287,.T.);
#9289 = FACE_BOUND('FaceBnd20',#9287,.F.);
#9290 = CONICAL_SURFACE('ConSur3',#9271,2.5,0.46364761);
#9291 = ADVANCED_FACE('AdvFace5',(#9278,#9288),#9290,.F.);
#9300 = CARTESIAN_POINT('CartPt19',(-32.5,0.0,0.0));
#9301 = AXIS2_PLACEMENT_3D('Ax2P3D9',#9300,#9103,#9101);
#9302 = CIRCLE('Circ11',#9301,2.5);
#9303 = CARTESIAN_POINT('CartPt20',(-30.0,0.0,0.0));
#9304 = VERTEX_POINT('VertPt11',#9303);
#9305 = EDGE_CURVE('EdgeCur11',#9304,#9304,#9302,.T.);
#9306 = ORIENTED_EDGE('OriEdge11',*,*,#9305,.T.);
#9307 = EDGE_LOOP('EdgeLoop11',(#9306));
#9308 = FACE_BOUND('FaceBnd21',#9307,.F.);
#9309 = FACE_BOUND('FaceBnd22',#9307,.T.);
#9310 = CARTESIAN_POINT('CartPt21',(-32.5,0.0,5.0));
#9311 = AXIS2_PLACEMENT_3D('Ax2P3D10',#9310,#9103,#9101);
#9312 = CIRCLE('Circ12',#9311,5.0);
#9313 = CARTESIAN_POINT('CartPt22',(37.5,0.0,5.0));
#9314 = VERTEX_POINT('VertPt12',#9313);
#9315 = EDGE_CURVE('EdgeCur12',#9314,#9314,#9312,.T.);
#9316 = ORIENTED_EDGE('OriEdge12',*,*,#9315,.T.);
#9317 = EDGE_LOOP('EdgeLoop12',(#9316));
#9318 = FACE_BOUND('FaceBnd23',#9317,.T.);
#9319 = FACE_BOUND('FaceBnd24',#9317,.F.);
#9320 = CONICAL_SURFACE('ConSur4',#9301,2.5,0.46364761);
#9321 = ADVANCED_FACE('AdvFace6',(#9308,#9318),#9320,.F.);
#9325 = ADVANCED_FACE('AdvFace7',(#9128,#9136,#9219,#9249,#9279,#9309),#9121,.F.);
#9326 = ADVANCED_FACE('AdvFace8',(#9149,#9166,#9229,#9259,#9289,#9319),#9142,.T.);
#9350 = CLOSED_SHELL('CloseSh1',(#9192,#9203,#9231,#9261,#9291,#9321,#9325,#9326));
#9351 = MANIFOLD_SOLID_BREP('ManSolBrep1',#9350);
#9360 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case gasket with conical holes','This is a 3d context using millimeters for linear dimension'));
#9370 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep1',(#9351),#9360);
ENDSEC;
END-ISO-10303-21;
-315
View File
@@ -1,315 +0,0 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 6 - advanced brep'),'1');
FILE_NAME('gasket3.p21','1994-12-14 T10:00:00',
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
('Industrial Technology Institute',
'P.O. Box 1485',
'Ann Arbor',
'Michigan',
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1=PRODUCT('31113','Flat Semi-elliptical Gasket','Description for part 31113',(#2));
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
#5=PERSON_AND_ORGANIZATION(#6,#7);
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,('PhD.'));
#1097=PERSONAL_ADDRESS($,'17147','New Hamburg Road',$,'Whitmore Lake','Michigan','48189','USA',$,'(313) 769-1234',$,$,(#6));
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','Anot-for-profit engineering and research center');
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 31113',(#1));
#1098=PRODUCT_CATEGORY('mechanical','root node');
#1099=PRODUCT_CATEGORY_RELATIONSHIP('root-to-structural','Relates the root to the structural category',#1098,#1100);
#1100=PRODUCT_CATEGORY('structural','The structural product category');
#1101=PRODUCT_CATEGORY_RELATIONSHIP('structural-to-machined','Relate the structural to the machined product categories',#1100,#1102);
#1102=PRODUCT_RELATED_PRODUCT_CATEGORY('machined','Machined category',(#1));
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 31113',#1,.BOUGHT.);
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
#13=PERSON_AND_ORGANIZATION(#14,#7);
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
#44=CC_DESIGN_APPROVAL(#45,(#10));
#45=APPROVAL(#46,'Approved as initial STEP test case part');
#46=APPROVAL_STATUS('approved');
#47=APPROVAL_DATE_TIME(#48,#45);
#48=DATE_AND_TIME(#50,#51);
#50=CALENDAR_DATE(1993,17,7);
#51=LOCAL_TIME(13,29,52.0,#29);
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
#70=PERSON_AND_ORGANIZATION(#71,#7);
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
#72=APPROVAL_ROLE('Authorize part release');
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
#35=DATE_AND_TIME(#36,#37);
#36=CALENDAR_DATE(1993,17,7);
#37=LOCAL_TIME(13,$,$,#29);
#39=DATE_TIME_ROLE('classification_date');
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
#41=PERSON_AND_ORGANIZATION(#42,#7);
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#53=CC_DESIGN_APPROVAL(#54,(#32));
#54=APPROVAL(#55,'Approved as unclassified step test data');
#55=APPROVAL_STATUS('approved');
#56=APPROVAL_DATE_TIME(#57,#54);
#57=DATE_AND_TIME(#58,#59);
#58=CALENDAR_DATE(1993,17,7);
#59=LOCAL_TIME(13,47,28.0,#29);
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
#74=PERSON_AND_ORGANIZATION(#75,#7);
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
#76=APPROVAL_ROLE('Authorize the security code');
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
#18=DESIGN_CONTEXT('detailed design',#3,'design');
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
#25=DATE_AND_TIME(#27,#28);
#27=CALENDAR_DATE(1993,19,7);
#28=LOCAL_TIME(19,46,55.0,#29);
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
#30=DATE_TIME_ROLE('creation_date');
#61=CC_DESIGN_APPROVAL(#62,(#17));
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
#63=APPROVAL_STATUS('approved');
#64=APPROVAL_DATE_TIME(#65,#62);
#65=DATE_AND_TIME(#66,#67);
#66=CALENDAR_DATE(1993,19,7);
#67=LOCAL_TIME(19,47,51.0,#29);
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
#79=APPROVAL_ROLE('Authorize product definition');
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
#81=PERSON_AND_ORGANIZATION(#82,#83);
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization');
#1096=ORGANIZATIONAL_ADDRESS($,'2901','Hubbard','P.O. Box 1485','Ann Arbor','Michigan','48106','USA','(313) 769-4069','(313) 769-4000',$,$,(#83));
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
#87=CERTIFICATION_TYPE('design_supplier');
#89=CC_DESIGN_APPROVAL(#90,(#86));
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
#91=APPROVAL_STATUS('approved');
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
#93=APPROVAL_ROLE('Authorize supplier certification');
#94=DATE_AND_TIME(#95,#96);
#95=CALENDAR_DATE(1993,20,4);
#96=LOCAL_TIME(15,47,51.0,#29);
#97=APPROVAL_DATE_TIME(#94,#90);
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
#99=CALENDAR_DATE(1993,19,4);
#100=DATE_AND_TIME(#99,#101);
#101=LOCAL_TIME(10,41,59.0,#29);
#102=DATE_TIME_ROLE('certification_date');
#1103=PRODUCT('12345','Cube Solid','CDI''s part 12345 description',(#2));
#1109=PRODUCT_RELATED_PRODUCT_CATEGORY('customer_furnished_equipment','Part Type for product 12345',(#1103));
#1104=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#8,(#1103));
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Cube Solid',#1103,.MADE.);
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
#1014=PERSON('CDI-1','Brandenberg','Chad',('David','George'),$,$);
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
#1045=APPROVAL(#1046,'Approved as test part design');
#1046=APPROVAL_STATUS('approved');
#1047=APPROVAL_DATE_TIME(#1048,#1045);
#1048=DATE_AND_TIME(#1050,#1051);
#1050=CALENDAR_DATE(1993,19,7);
#1051=LOCAL_TIME(19,51,59.0,#29);
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
#1070=PERSON_AND_ORGANIZATION(#82,#83);
#1072=APPROVAL_ROLE('Authorize part version');
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
#1035=DATE_AND_TIME(#1036,#1037);
#1036=CALENDAR_DATE(1993,19,7);
#1037=LOCAL_TIME(19,45,41.0,#29);
#1039=DATE_TIME_ROLE('classification_date');
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
#1054=APPROVAL(#1055,'Approved as unclassified part design');
#1055=APPROVAL_STATUS('approved');
#1056=APPROVAL_DATE_TIME(#1057,#1054);
#1057=DATE_AND_TIME(#1058,#1059);
#1058=CALENDAR_DATE(1993,19,7);
#1059=LOCAL_TIME(19,47,58.0,#29);
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
#1076=APPROVAL_ROLE('Authorize the security code');
#1017=PRODUCT_DEFINITION('D2','Description of product for part 12345',#1010,#1018);
#1018=DESIGN_CONTEXT('detailed design',#3,'design');
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
#1025=DATE_AND_TIME(#1027,#1028);
#1027=CALENDAR_DATE(1993,18,7);
#1028=LOCAL_TIME(10,51,59.0,#29);
#1030=DATE_TIME_ROLE('creation_date');
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
#1062=APPROVAL(#1063,'Approved as detailed drawing');
#1063=APPROVAL_STATUS('approved');
#1064=APPROVAL_DATE_TIME(#1065,#1062);
#1065=DATE_AND_TIME(#1066,#1067);
#1066=CALENDAR_DATE(1993,19,7);
#1067=LOCAL_TIME(19,51,59.0,#29);
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
#1079=APPROVAL_ROLE('Authorize product definition');
#1080=CC_DESIGN_CONTRACT(#1081,(#10));
#1081=CONTRACT('ITI-1121','Development of STEP conformance testing',#1082);
#1082=CONTRACT_TYPE('fixed_price');
#1083=CC_DESIGN_APPROVAL(#1084,(#1081));
#1084=APPROVAL(#1085,'Approved as active project under contract');
#1085=APPROVAL_STATUS('approved');
#1086=APPROVAL_PERSON_ORGANIZATION(#1087,#1084,#1090);
#1087=PERSON_AND_ORGANIZATION(#1088,#1089);
#1088=PERSON('212-33-7485','Masters','Larry',$,$,$);
#1089=ORGANIZATION('NIST','National Institute of Standards and Technology','Institute within the Department of Commerce');
#1090=APPROVAL_ROLE('Authorized the contract');
#1105=APPROVAL_DATE_TIME(#1106,#1084);
#1106=DATE_AND_TIME(#1107,#1108);
#1107=WEEK_OF_YEAR_AND_DAY_DATE(1993,20,5);
#1108=LOCAL_TIME(14,21,7.0,#29);
#1091=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1092,#1095,(#1081));
#1092=PERSON_AND_ORGANIZATION(#1093,#7);
#1093=PERSON('355-55-6849','Kuper','George',$,$,$);
#1095=PERSON_AND_ORGANIZATION_ROLE('contractor');
#1200=SHAPE_DEFINITION_REPRESENTATION(#1201,#9430);
#1201=PRODUCT_DEFINITION_SHAPE('ABR_Shape','Shape of semi-elliptical gasket',#17);
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040,'xx','yy');
#9100 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
#9101 = DIRECTION('Dir1',(0.1,0.0,0.0));
#9102 = DIRECTION('Dir2',(0.0,1.0,0.0));
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
#9104 = DIRECTION('Dir4',(0.0,0.0,-1.0));
#9120 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9100,#9103,#9101);
#9121 = PLANE('Plane1',#9120);
#9122 = ELLIPSE('Ellip1',#9120,40.0,25.0);
#9123 = CARTESIAN_POINT('CartPt2',(0.0,25.0,0.0));
#9124 = VERTEX_POINT('VertPt1',#9123);
#9125 = CARTESIAN_POINT('CartPt3',(0.0,-25.0,0.0));
#9126 = VERTEX_POINT('VertPt2',#9125);
#9127 = EDGE_CURVE('EdgeCur1',#9124,#9126,#9122,.T.);
#9128 = ORIENTED_EDGE('OriEdge1',*,*,#9127,.F.);
#9130 = VECTOR('Vec1',#9102,50.0);
#9131 = LINE('Line1',#9125,#9130);
#9132 = EDGE_CURVE('EdgeCur2',#9126,#9124,#9131,.T.);
#9133 = ORIENTED_EDGE('OriEdge2',*,*,#9132,.F.);
#9134 = EDGE_LOOP('EdgeLoop1',(#9128,#9133));
#9135 = FACE_BOUND('FaceBnd1',#9134,.T.);
#9140 = CARTESIAN_POINT('CartPt4',(-5.0,0.0,0.0));
#9141 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9140,#9103,#9101);
#9142 = ELLIPSE('Ellip2',#9141,30.0,20.0);
#9143 = CARTESIAN_POINT('CartPt5',(-5.0,20.0,0.0));
#9144 = VERTEX_POINT('VertPt3',#9143);
#9145 = CARTESIAN_POINT('CartPt6',(-5.0,-20.0,0.0));
#9146 = VERTEX_POINT('VertPt4',#9145);
#9147 = EDGE_CURVE('EdgeCur3',#9144,#9146,#9142,.T.);
#9148 = ORIENTED_EDGE('OriEdge3',*,*,#9147,.T.);
#9150 = VECTOR('Vec2',#9102,40.0);
#9151 = LINE('Line2',#9145,#9150);
#9152 = EDGE_CURVE('EdgeCur4',#9146,#9144,#9151,.T.);
#9153 = ORIENTED_EDGE('OriEdge4',*,*,#9152,.T.);
#9154 = EDGE_LOOP('EdgeLoop2',(#9148,#9153));
#9155 = FACE_BOUND('FaceBnd2',#9154,.T.);
#9156 = ADVANCED_FACE('AdvFace1',(#9155,#9135),#9121,.F.);
#9160 = CARTESIAN_POINT('CartPt7',(0.0,0.0,5.0));
#9161 = AXIS2_PLACEMENT_3D('Ax2P3D3',#9160,#9103,#9101);
#9162 = PLANE('Plane2',#9161);
#9163 = ELLIPSE('Ellip3',#9161,40.0,25.0);
#9164 = CARTESIAN_POINT('CartPt8',(0.0,25.0,5.0));
#9165 = VERTEX_POINT('VertPt5',#9164);
#9166 = CARTESIAN_POINT('CartPt9',(0.0,-25.0,5.0));
#9167 = VERTEX_POINT('VertPt6',#9166);
#9168 = EDGE_CURVE('EdgeCur5',#9165,#9167,#9163,.T.);
#9169 = ORIENTED_EDGE('OriEdge5',*,*,#9168,.T.);
#9170 = LINE('Line3',#9166,#9130);
#9171 = EDGE_CURVE('EdgeCur6',#9167,#9165,#9170,.T.);
#9172 = ORIENTED_EDGE('OriEdge6',*,*,#9171,.T.);
#9173 = EDGE_LOOP('EdgeLoop3',(#9169,#9172));
#9174 = FACE_BOUND('FaceBnd3',#9173,.T.);
#9180 = CARTESIAN_POINT('CartPt10',(-5.0,0.0,5.0));
#9181 = AXIS2_PLACEMENT_3D('Ax2P3D4',#9180,#9103,#9101);
#9182 = ELLIPSE('Ellip4',#9181,30.0,20.0);
#9183 = CARTESIAN_POINT('CartPt11',(-5.0,20.0,5.0));
#9184 = VERTEX_POINT('VertPt7',#9183);
#9185 = CARTESIAN_POINT('CartPt12',(-5.0,-20.0,5.0));
#9186 = VERTEX_POINT('VertPt8',#9185);
#9187 = EDGE_CURVE('EdgeCur7',#9184,#9186,#9182,.T.);
#9188 = ORIENTED_EDGE('OriEdge7',*,*,#9187,.F.);
#9190 = LINE('Line4',#9185,#9150);
#9191 = EDGE_CURVE('EdgeCur8',#9186,#9184,#9190,.T.);
#9192 = ORIENTED_EDGE('OriEdge8',*,*,#9191,.F.);
#9193 = EDGE_LOOP('EdgeLoop4',(#9188,#9192));
#9194 = FACE_BOUND('FaceBnd4',#9193,.T.);
#9195 = ADVANCED_FACE('AdvFace2',(#9174,#9194),#9162,.T.);
#9200 = VECTOR('Vec3',#9103,5.0);
#9201 = SURFACE_OF_LINEAR_EXTRUSION('SurLExt1',#9122,#9200);
#9210 = ORIENTED_EDGE('OriEdge9',*,*,#9127,.T.);
#9220 = LINE('Line5',#9125,#9200);
#9221 = EDGE_CURVE('EdgeCur9',#9126,#9167,#9220,.T.);
#9222 = ORIENTED_EDGE('OriEdge10',*,*,#9221,.T.);
#9230 = ORIENTED_EDGE('OriEdge11',*,*,#9168,.F.);
#9240 = LINE('Line6',#9123,#9200);
#9241 = EDGE_CURVE('EdgeCur10',#9165,#9124,#9240,.F.);
#9242 = ORIENTED_EDGE('OriEdge12',*,*,#9241,.T.);
#9250 = EDGE_LOOP('EdgeLoop5',(#9210,#9222,#9230,#9242));
#9251 = FACE_BOUND('FaceBnd5',#9250,.T.);
#9252 = ADVANCED_FACE('AdvFace3',(#9251),#9201,.T.);
#9260 = AXIS2_PLACEMENT_3D('Ax2P3D5',#9100,#9101,#9104);
#9261 = PLANE('Plane3',#9260);
#9270 = ORIENTED_EDGE('OriEdge13',*,*,#9221,.F.);
#9280 = ORIENTED_EDGE('OriEdge14',*,*,#9132,.T.);
#9290 = ORIENTED_EDGE('OriEdge15',*,*,#9241,.F.);
#9300 = ORIENTED_EDGE('OriEdge16',*,*,#9171,.F.);
#9301 = EDGE_LOOP('EdgeLoop6',(#9270,#9280,#9290,#9300));
#9302 = FACE_BOUND('FaceBnd6',#9301,.T.);
#9303 = ADVANCED_FACE('AdvFace4',(#9302),#9261,.T.);
#9310 = SURFACE_OF_LINEAR_EXTRUSION('SurLExt2',#9142,#9200);
#9320 = ORIENTED_EDGE('OriEdge17',*,*,#9147,.F.);
#9330 = LINE('Line7',#9143,#9200);
#9331 = EDGE_CURVE('EdgeCur11',#9144,#9184,#9330,.T.);
#9332 = ORIENTED_EDGE('OriEdge18',*,*,#9331,.T.);
#9340 = ORIENTED_EDGE('OriEdge19',*,*,#9187,.T.);
#9350 = LINE('Line8',#9145,#9200);
#9351 = EDGE_CURVE('EdgeCur12',#9146,#9186,#9350,.F.);
#9352 = ORIENTED_EDGE('OriEdge20',*,*,#9351,.F.);
#9353 = EDGE_LOOP('EdgeLoop7',(#9320,#9332,#9340,#9352));
#9354 = FACE_BOUND('FaceBnd7',#9353,.T.);
#9355 = ADVANCED_FACE('AdvFace5',(#9354),#9310,.F.);
#9360 = AXIS2_PLACEMENT_3D('Ax2P3D6',#9140,#9101,#9104);
#9361 = PLANE('Plane4',#9360);
#9370 = ORIENTED_EDGE('OriEdge21',*,*,#9152,.F.);
#9380 = ORIENTED_EDGE('OriEdge22',*,*,#9351,.T.);
#9390 = ORIENTED_EDGE('OriEdge23',*,*,#9191,.T.);
#9400 = ORIENTED_EDGE('OriEdge24',*,*,#9331,.F.);
#9401 = EDGE_LOOP('EdgeLoop8',(#9370,#9380,#9390,#9400));
#9402 = FACE_BOUND('FaceBnd8',#9401,.T.);
#9403 = ADVANCED_FACE('AdvFace6',(#9402),#9361,.F.);
#9410 = CLOSED_SHELL('CloseSh1',(#9156,#9195,#9252,#9303,#9355,#9403));
#9411 = MANIFOLD_SOLID_BREP('ManSolBrep1',#9410);
#9420 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case semi-elliptical gasket','This is a 3d context using millimeters for linear dimension'));
#9430 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep1',(#9411),#9420);
ENDSEC;
END-ISO-10303-21;
-239
View File
@@ -1,239 +0,0 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 5 - facetted brep'),'1');
FILE_NAME('hex_prism1.p21','1994-12-14 T10:00:00',
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
('Industrial Technology Institute',
'P.O. Box 1485',
'Ann Arbor',
'Michigan',
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1=PRODUCT('11112','Solid Hexagonal Cylinder','Description for part 11112',(#2));
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
#5=PERSON_AND_ORGANIZATION(#6,#7);
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','A not-for-profit engineering and research center');
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 11112',(#1));
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 11112',#1,.BOUGHT.);
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
#13=PERSON_AND_ORGANIZATION(#14,#7);
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
#44=CC_DESIGN_APPROVAL(#45,(#10));
#45=APPROVAL(#46,'Approved as initial STEP test case part');
#46=APPROVAL_STATUS('approved');
#47=APPROVAL_DATE_TIME(#48,#45);
#48=DATE_AND_TIME(#50,#51);
#50=CALENDAR_DATE(1993,17,7);
#51=LOCAL_TIME(13,29,52.0,#29);
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
#70=PERSON_AND_ORGANIZATION(#71,#7);
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
#72=APPROVAL_ROLE('Authorize part release');
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
#35=DATE_AND_TIME(#36,#37);
#36=CALENDAR_DATE(1993,17,7);
#37=LOCAL_TIME(13,45,20.0,#29);
#39=DATE_TIME_ROLE('classification_date');
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
#41=PERSON_AND_ORGANIZATION(#42,#7);
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#53=CC_DESIGN_APPROVAL(#54,(#32));
#54=APPROVAL(#55,'Approved as unclassified step test data');
#55=APPROVAL_STATUS('approved');
#56=APPROVAL_DATE_TIME(#57,#54);
#57=DATE_AND_TIME(#58,#59);
#58=CALENDAR_DATE(1993,17,7);
#59=LOCAL_TIME(13,47,28.0,#29);
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
#74=PERSON_AND_ORGANIZATION(#75,#7);
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
#76=APPROVAL_ROLE('Authorize the security code');
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
#18=DESIGN_CONTEXT('detailed design',#3,'design');
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
#25=DATE_AND_TIME(#27,#28);
#27=CALENDAR_DATE(1993,19,7);
#28=LOCAL_TIME(19,46,55.0,#29);
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
#30=DATE_TIME_ROLE('creation_date');
#61=CC_DESIGN_APPROVAL(#62,(#17));
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
#63=APPROVAL_STATUS('approved');
#64=APPROVAL_DATE_TIME(#65,#62);
#65=DATE_AND_TIME(#66,#67);
#66=CALENDAR_DATE(1993,19,7);
#67=LOCAL_TIME(19,47,51.0,#29);
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
#79=APPROVAL_ROLE('Authorize product definition');
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
#81=PERSON_AND_ORGANIZATION(#82,#83);
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization.');
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
#87=CERTIFICATION_TYPE('design_supplier');
#89=CC_DESIGN_APPROVAL(#90,(#86));
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
#91=APPROVAL_STATUS('approved');
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
#93=APPROVAL_ROLE('Authorize supplier certification');
#94=DATE_AND_TIME(#95,#96);
#95=CALENDAR_DATE(1993,20,4);
#96=LOCAL_TIME(15,47,51.0,#29);
#97=APPROVAL_DATE_TIME(#94,#90);
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
#99=CALENDAR_DATE(1993,19,4);
#100=DATE_AND_TIME(#99,#101);
#101=LOCAL_TIME(10,41,59.0,#29);
#102=DATE_TIME_ROLE('certification_date');
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Solid Hexagonal Cylinder',#1,.MADE.);
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
#1045=APPROVAL(#1046,'Approved as test part design');
#1046=APPROVAL_STATUS('approved');
#1047=APPROVAL_DATE_TIME(#1048,#1045);
#1048=DATE_AND_TIME(#1050,#1051);
#1050=CALENDAR_DATE(1993,19,7);
#1051=LOCAL_TIME(19,51,59.0,#29);
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
#1070=PERSON_AND_ORGANIZATION(#82,#83);
#1072=APPROVAL_ROLE('Authorize part version');
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
#1035=DATE_AND_TIME(#1036,#1037);
#1036=CALENDAR_DATE(1993,19,7);
#1037=LOCAL_TIME(19,45,41.0,#29);
#1039=DATE_TIME_ROLE('classification_date');
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
#1054=APPROVAL(#1055,'Approved as unclassified part design');
#1055=APPROVAL_STATUS('approved');
#1056=APPROVAL_DATE_TIME(#1057,#1054);
#1057=DATE_AND_TIME(#1058,#1059);
#1058=CALENDAR_DATE(1993,19,7);
#1059=LOCAL_TIME(19,47,58.0,#29);
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
#1076=APPROVAL_ROLE('Authorize the security code');
#1017=PRODUCT_DEFINITION('D2','Description of product for part 11112',#1010,#1018);
#1018=DESIGN_CONTEXT('detailed design',#3,'design');
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
#1025=DATE_AND_TIME(#1027,#1028);
#1027=CALENDAR_DATE(1993,18,7);
#1028=LOCAL_TIME(10,51,59.0,#29);
#1030=DATE_TIME_ROLE('creation_date');
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
#1062=APPROVAL(#1063,'Approved as detailed drawing');
#1063=APPROVAL_STATUS('approved');
#1064=APPROVAL_DATE_TIME(#1065,#1062);
#1065=DATE_AND_TIME(#1066,#1067);
#1066=CALENDAR_DATE(1993,19,7);
#1067=LOCAL_TIME(19,51,59.0,#29);
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
#1079=APPROVAL_ROLE('Authorize product definition');
#1080=SHAPE_DEFINITION_REPRESENTATION(#1081,#9280);
#1081=PRODUCT_DEFINITION_SHAPE('FBR_Shape','Shape of Solid Hexagonal Cylinder',#17);
#9010 = DIMENSIONAL_EXPONENTS(1.0,0.0,0.0,0.0,0.0,0.0,0.0);
#9040 = (LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.CENTI.,.METRE.));
#9041 = LENGTH_MEASURE_WITH_UNIT(POSITIVE_LENGTH_MEASURE(2.54),#9040);
#9042 = (CONVERSION_BASED_UNIT('inch',#9041)LENGTH_UNIT()NAMED_UNIT(#9010));
#9043 = (NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#9044 = (NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#9045 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9042,'xx','yy');
#9100 = DIRECTION('Dir1',(0.0,0.0,1.0));
#9101 = DIRECTION('Dir2',(1.0,0.0,0.0));
#9103 = DIRECTION('Dir4',(0.0,0.0,-1.0));
#9104 = DIRECTION('Dir5',(-1.0,0.0,0.0));
#9120 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
#9121 = CARTESIAN_POINT('CartPt2',(0.0,2.0,0.0));
#9122 = CARTESIAN_POINT('CartPt3',(1.7320508,3.0,0.0));
#9123 = CARTESIAN_POINT('CartPt4',(3.4641016,2.0,0.0));
#9124 = CARTESIAN_POINT('CartPt5',(3.4641016,0.0,0.0));
#9125 = CARTESIAN_POINT('CartPt6',(1.7320508,-1.0,0.0));
#9126 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9120,#9100,#9101);
#9127 = PLANE('Plane1',#9126);
#9128 = POLY_LOOP('PolyLoop1',(#9120,#9121,#9122,#9123,#9124,#9125));
#9129 = FACE_BOUND('FaceBnd1',#9128,.T.);
#9130 = FACE_SURFACE('FaceSurf1',(#9129),#9127,.F.);
#9150 = CARTESIAN_POINT('CartPt7',(0.0,0.0,8.0));
#9151 = CARTESIAN_POINT('CartPt8',(0.0,2.0,8.0));
#9152 = CARTESIAN_POINT('CartPt9',(1.7320508,3.0,8.0));
#9153 = CARTESIAN_POINT('CartPt10',(3.4641016,2.0,8.0));
#9154 = CARTESIAN_POINT('CartPt11',(3.4641016,0.0,8.0));
#9155 = CARTESIAN_POINT('CartPt12',(1.7320508,-1.0,8.0));
#9156 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9150,#9100,#9101);
#9157 = PLANE('Plane2',#9156);
#9158 = POLY_LOOP('PolyLoop2',(#9150,#9151,#9152,#9153,#9154,#9155));
#9159 = FACE_BOUND('FaceBnd2',#9158,.F.);
#9160 = FACE_SURFACE('FaceSurf2',(#9159),#9157,.T.);
#9180 = AXIS2_PLACEMENT_3D('Ax2P3D3',#9120,#9101,#9103);
#9181 = PLANE('Plane3',#9180);
#9182 = POLY_LOOP('PolyLoop3',(#9120,#9121,#9151,#9150));
#9183 = FACE_BOUND('FaceBnd3',#9182,.F.);
#9184 = FACE_SURFACE('FaceSurf3',(#9183),#9181,.F.);
#9190 = DIRECTION('Dir6',(0.5,-0.8660254,0.0));
#9191 = AXIS2_PLACEMENT_3D('Ax2P3D4',#9121,#9190,#9103);
#9192 = PLANE('Plane4',#9191);
#9193 = POLY_LOOP('PolyLoop4',(#9121,#9122,#9152,#9151));
#9194 = FACE_BOUND('FaceBnd4',#9193,.F.);
#9195 = FACE_SURFACE('FaceSurf4',(#9194),#9192,.F.);
#9200 = DIRECTION('Dir7',(-0.5,-0.8660254,0.0));
#9201 = AXIS2_PLACEMENT_3D('Ax2P3D5',#9122,#9200,#9103);
#9202 = PLANE('Plane5',#9201);
#9203 = POLY_LOOP('PolyLoop5',(#9122,#9123,#9153,#9152));
#9204 = FACE_BOUND('FaceBnd5',#9203,.F.);
#9205 = FACE_SURFACE('FaceSurf5',(#9204),#9202,.F.);
#9210 = AXIS2_PLACEMENT_3D('Ax2P3D6',#9123,#9104,#9100);
#9211 = PLANE('Plane6',#9210);
#9212 = POLY_LOOP('PolyLoop6',(#9123,#9124,#9154,#9153));
#9213 = FACE_BOUND('FaceBnd6',#9212,.F.);
#9214 = FACE_SURFACE('FaceSurf6',(#9213),#9211,.F.);
#9220 = DIRECTION('Dir8',(-0.5,0.8660254,0.0));
#9221 = AXIS2_PLACEMENT_3D('Ax2P3D7',#9124,#9220,#9100);
#9222 = PLANE('Plane7',#9221);
#9223 = POLY_LOOP('PolyLoop7',(#9124,#9154,#9155,#9125));
#9224 = FACE_BOUND('FaceBnd7',#9223,.T.);
#9225 = FACE_SURFACE('FaceSurf7',(#9224),#9222,.F.);
#9230 = DIRECTION('Dir9',(0.5,0.8660254,0.0));
#9231 = AXIS2_PLACEMENT_3D('Ax2P3D8',#9125,#9230,#9100);
#9232 = PLANE('Plane8',#9231);
#9233 = POLY_LOOP('PolyLoop8',(#9125,#9120,#9150,#9155));
#9234 = FACE_BOUND('FaceBnd8',#9233,.F.);
#9235 = FACE_SURFACE('FaceSurf8',(#9234),#9232,.F.);
#9250 = CLOSED_SHELL('CloseSh1',(#9130,#9160,#9184,#9195,#9205,#9214,#9225,#9235));
#9260 = FACETED_BREP('FacedBrep1',#9250);
#9270 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9045))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9042,#9043,#9044))
REPRESENTATION_CONTEXT('CONTEXT for facetted brep test case','This is a 3d context using inches for linear dimension'));
#9280 = FACETED_BREP_SHAPE_REPRESENTATION('FBShapeRep1',(#9260),#9270);
ENDSEC;
END-ISO-10303-21;
-264
View File
@@ -1,264 +0,0 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 6 - advanced brep'),'1');
FILE_NAME('rod_aspect1.p21','1994-12-14 T10:00:00',
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
('Industrial Technology Institute',
'P.O. Box 1485',
'Ann Arbor',
'Michigan',
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1=PRODUCT('41113','Rod with Conical Tip','Description for part 41113',(#2));
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
#5=PERSON_AND_ORGANIZATION(#6,#7);
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,('PhD.'));
#1097=PERSONAL_ADDRESS($,'17147','New Hamburg Road',$,'Whitmore Lake','Michigan','48189','USA',$,'(313) 769-4306',$,$,(#6));
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','Anot-for-profit engineering and research center');
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#2101=PRODUCT_CATEGORY_RELATIONSHIP('root-to-standard','Relate the root to the standard product category',#1098,#1109);
#1109=PRODUCT_CATEGORY('standard_part','Identifies this as a standard part') ;
#1101=PRODUCT_CATEGORY_RELATIONSHIP('standard-to-detail','Relate the standard to the detail product category',#1109,#9);
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 41113',(#1));
#1098=PRODUCT_CATEGORY('mechanical','mechanical product category: root node');
#1099=PRODUCT_CATEGORY_RELATIONSHIP('root-to-structural','Relates the root to the structural category',#1098,#1100);
#1100=PRODUCT_CATEGORY('structural','The structural product category');
#1110=PRODUCT_CATEGORY_RELATIONSHIP('structural-to-machined', 'Relates the structural to the machined category',#1100,#1102) ;
#1102=PRODUCT_RELATED_PRODUCT_CATEGORY('machined','The machined product category',(#1));
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 41113',#1,.BOUGHT.);
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
#13=PERSON_AND_ORGANIZATION(#14,#7);
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
#44=CC_DESIGN_APPROVAL(#45,(#10));
#45=APPROVAL(#46,'Approved as initial STEP test case part');
#46=APPROVAL_STATUS('approved');
#47=APPROVAL_DATE_TIME(#48,#45);
#48=DATE_AND_TIME(#50,#51);
#50=CALENDAR_DATE(1993,17,7);
#51=LOCAL_TIME(13,29,52.0,#29);
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
#70=PERSON_AND_ORGANIZATION(#71,#7);
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
#72=APPROVAL_ROLE('Authorize part release');
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
#35=DATE_AND_TIME(#36,#37);
#36=CALENDAR_DATE(1993,17,7);
#37=LOCAL_TIME(13,$,$,#29);
#39=DATE_TIME_ROLE('classification_date');
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
#41=PERSON_AND_ORGANIZATION(#42,#7);
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#53=CC_DESIGN_APPROVAL(#54,(#32));
#54=APPROVAL(#55,'Approved as unclassified step test data');
#55=APPROVAL_STATUS('approved');
#56=APPROVAL_DATE_TIME(#57,#54);
#57=DATE_AND_TIME(#58,#59);
#58=CALENDAR_DATE(1993,17,7);
#59=LOCAL_TIME(13,47,28.0,#29);
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
#74=PERSON_AND_ORGANIZATION(#75,#7);
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
#76=APPROVAL_ROLE('Authorize the security code');
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
#18=DESIGN_CONTEXT('detailed design',#3,'design');
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
#25=DATE_AND_TIME(#27,#28);
#27=CALENDAR_DATE(1993,19,7);
#28=LOCAL_TIME(19,46,55.0,#29);
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
#30=DATE_TIME_ROLE('creation_date');
#61=CC_DESIGN_APPROVAL(#62,(#17));
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
#63=APPROVAL_STATUS('approved');
#64=APPROVAL_DATE_TIME(#65,#62);
#65=DATE_AND_TIME(#66,#67);
#66=CALENDAR_DATE(1993,19,7);
#67=LOCAL_TIME(19,47,51.0,#29);
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
#79=APPROVAL_ROLE('Authorize product definition');
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
#81=PERSON_AND_ORGANIZATION(#82,#83);
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization');
#1096=ORGANIZATIONAL_ADDRESS($,'2901','Hubbard','P.O. Box 1485','Ann Arbor','Michigan','48106','USA','(313) 769-4069','(313) 769-4000',$,$,(#83));
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
#87=CERTIFICATION_TYPE('design_supplier');
#89=CC_DESIGN_APPROVAL(#90,(#86));
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
#91=APPROVAL_STATUS('approved');
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
#93=APPROVAL_ROLE('Authorize supplier certification');
#94=DATE_AND_TIME(#95,#96);
#95=CALENDAR_DATE(1993,20,4);
#96=LOCAL_TIME(15,47,51.0,#29);
#97=APPROVAL_DATE_TIME(#94,#90);
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
#99=CALENDAR_DATE(1993,19,4);
#100=DATE_AND_TIME(#99,#101);
#101=LOCAL_TIME(10,41,59.0,#29);
#102=DATE_TIME_ROLE('certification_date');
#1103=PRODUCT('12345','Conical Tip Rod','CDI''s part 12345 description',(#2));
#2009=PRODUCT_RELATED_PRODUCT_CATEGORY('customer_furnished_equipment','Part Type for product 12345',(#1103));
#1104=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#8,(#1103));
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Conical Tip Rod ',#1103,.MADE.);
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
#1014=PERSON('CDI-1','Brandenberg','Chad',('David','George'),$,$);
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
#1045=APPROVAL(#1046,'Approved as test part design');
#1046=APPROVAL_STATUS('approved');
#1047=APPROVAL_DATE_TIME(#1048,#1045);
#1048=DATE_AND_TIME(#1050,#1051);
#1050=CALENDAR_DATE(1993,19,7);
#1051=LOCAL_TIME(19,51,59.0,#29);
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
#1070=PERSON_AND_ORGANIZATION(#82,#83);
#1072=APPROVAL_ROLE('Authorize part version');
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
#1035=DATE_AND_TIME(#1036,#1037);
#1036=CALENDAR_DATE(1993,19,7);
#1037=LOCAL_TIME(19,45,41.0,#29);
#1039=DATE_TIME_ROLE('classification_date');
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#1111=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1112,#1115,(#1032));
#1112=DATE_AND_TIME(#1113,#1114);
#1113=CALENDAR_DATE(1993,1,10);
#1114=LOCAL_TIME(9,$,$,#29);
#1115=DATE_TIME_ROLE('declassification_date');
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
#1054=APPROVAL(#1055,'Approved as unclassified part design');
#1055=APPROVAL_STATUS('approved');
#1056=APPROVAL_DATE_TIME(#1057,#1054);
#1057=DATE_AND_TIME(#1058,#1059);
#1058=CALENDAR_DATE(1993,19,7);
#1059=LOCAL_TIME(19,47,58.0,#29);
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
#1076=APPROVAL_ROLE('Authorize the security code');
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
#1025=DATE_AND_TIME(#1027,#1028);
#1027=CALENDAR_DATE(1993,18,7);
#1028=LOCAL_TIME(10,51,59.0,#29);
#1030=DATE_TIME_ROLE('creation_date');
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
#1062=APPROVAL(#1063,'Approved as detailed drawing');
#1063=APPROVAL_STATUS('approved');
#1064=APPROVAL_DATE_TIME(#1065,#1062);
#1065=DATE_AND_TIME(#1066,#1067);
#1066=CALENDAR_DATE(1993,19,7);
#1067=LOCAL_TIME(19,51,59.0,#29);
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
#1017=PRODUCT_DEFINITION_WITH_ASSOCIATED_DOCUMENTS('D2','Description of product for part 1234',#1010,#1018, (#1116));
#1018=PRODUCT_DEFINITION_CONTEXT('detailed design',#3,'design');
#1079=APPROVAL_ROLE('Authorize product definition');
#1116=DOCUMENT('rod_aspectA.dhc','Conical Tip Rod CAD file','CAD file for Rod with Conical Tip',#1117);
#1117=DOCUMENT_TYPE('cad_filename');
#1080=CC_DESIGN_CONTRACT(#1081,(#10));
#1081=CONTRACT('ITI-1121','Development of STEP conformance testing',#1082);
#1082=CONTRACT_TYPE('fixed_price');
#1083=CC_DESIGN_APPROVAL(#1084,(#1081));
#1084=APPROVAL(#1085,'Approved as active project under contract');
#1085=APPROVAL_STATUS('approved');
#1086=APPROVAL_PERSON_ORGANIZATION(#1087,#1084,#1090);
#1087=PERSON_AND_ORGANIZATION(#1088,#1089);
#1088=PERSON('212-33-7485','Masters','Larry',$,$,$);
#1089=ORGANIZATION('NIST','National Institute of Standards and Technology','Institute within the Department of Commerce');
#1090=APPROVAL_ROLE('Authorized the contract');
#1105=APPROVAL_DATE_TIME(#1106,#1084);
#1106=DATE_AND_TIME(#1107,#1108);
#1107=WEEK_OF_YEAR_AND_DAY_DATE(1993,20,5);
#1108=LOCAL_TIME(14,21,7.0,#29);
#1091=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1092,#1095,(#1081));
#1092=PERSON_AND_ORGANIZATION(#1093,#7);
#1093=PERSON('355-55-6849','Kuper','George',$,$,$);
#1095=PERSON_AND_ORGANIZATION_ROLE('contractor');
#1200=SHAPE_DEFINITION_REPRESENTATION(#1201,#9370);
#1201=PRODUCT_DEFINITION_SHAPE('ABR_Shape','Shape of rod with conical tip',#17);
#1202=SHAPE_DEFINITION_REPRESENTATION(#1201,#9390);
#9020=DIMENSIONAL_EXPONENTS(1.0,0.0,0.0,0.0,0.0,0.0,0.0);
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040,'xx','yy');
#9100 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
#9101 = DIRECTION('Dir1',(0.1,0.0,0.0));
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
#9120 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9100,#9103,#9101);
#9121 = PLANE('Plane1',#9120);
#9122 = CIRCLE('Circ1',#9120,2.5);
#9123 = CARTESIAN_POINT('CartPt2',(2.5,0.0,0.0));
#9124 = VERTEX_POINT('VertPt1',#9123);
#9125 = EDGE_CURVE('EdgeCur1',#9124,#9124,#9122,.T.);
#9126 = ORIENTED_EDGE('OriEdge1',*,*,#9125,.T.);
#9127 = EDGE_LOOP('EdgeLoop1',(#9126));
#9128 = FACE_BOUND('FaceBnd1',#9127,.F.);
#9130 = ADVANCED_FACE('AdvFace1',(#9128),#9121,.F.);
#9140 = CARTESIAN_POINT('CartPt3',(0.0,0.0,5.0));
#9141 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9140,#9103,#9101);
#9143 = CIRCLE('Circ2',#9141,5.0);
#9144 = CARTESIAN_POINT('CartPt4',(5.0,0.0,5.0));
#9145 = VERTEX_POINT('VertPt2',#9144);
#9146 = EDGE_CURVE('EdgeCur2',#9145,#9145,#9143,.T.);
#9147 = ORIENTED_EDGE('OriEdge2',*,*,#9146,.F.);
#9148 = EDGE_LOOP('EdgeLoop2',(#9147));
#9149 = FACE_BOUND('FaceBnd2',#9148,.T.);
#9150 = FACE_BOUND('FaceBnd3',#9127,.T.);
#9160 = CONICAL_SURFACE('ConSur1',#9120,2.5,0.46364761);
#9170 = ADVANCED_FACE('AdvFace2',(#9149,#9150),#9160,.T.);
#9180 = CARTESIAN_POINT('CartPt5',(0.0,0.0,50.0));
#9181 = AXIS2_PLACEMENT_3D('Ax2P3D3',#9180,#9103,#9101);
#9182 = CIRCLE('Circ3',#9181,5.0);
#9183 = CARTESIAN_POINT('CartPt6',(5.0,0.0,50.0));
#9184 = VERTEX_POINT('VertPt3',#9183);
#9185 = EDGE_CURVE('EdgeCur3',#9184,#9184,#9182,.T.);
#9186 = ORIENTED_EDGE('OriEdge3',*,*,#9185,.F.);
#9187 = EDGE_LOOP('EdgeLoop3',(#9186));
#9188 = FACE_BOUND('FaceBnd4',#9187,.T.);
#9190 = FACE_BOUND('FaceBnd5',#9148,.F.);
#9200 = CYLINDRICAL_SURFACE('CylSur1',#9141,5.0);
#9210 = ADVANCED_FACE('AdvFace3',(#9188,#9190),#9200,.T.);
#9211 = PLANE('Plane2',#9181);
#9212 = FACE_BOUND('FaceBnd6',#9187,.F.);
#9213 = ADVANCED_FACE('AdvFace4',(#9212),#9211,.T.);
#9230 = PLANE('Plane3',#9141);
#9232 = ADVANCED_FACE('AdvFace5',(#9190),#9230,.T.);
#9233 = ADVANCED_FACE('AdvFace6',(#9149),#9230,.F.);
#9240 = CLOSED_SHELL('CloseSh1',(#9130,#9170,#9232));
#9250 = CLOSED_SHELL('CloseSh2',(#9233,#9210,#9213));
#9260 = MANIFOLD_SOLID_BREP('ManSolBrep1',#9240);
#9270 = MANIFOLD_SOLID_BREP('ManSolBrep2',#9250);
#9370 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep1',(#9260,#9270),#9360);
#9360 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case rod with conical tip aspect','This is a 3d context using millimeters for linear dimension'));
#9390 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep2',(#9260),#9380);
#9380 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case conical tip aspect of rod','This is a 3d context using millimeters for linear dimension'));
ENDSEC;
END-ISO-10303-21;
-467
View File
@@ -1,467 +0,0 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 2 - ntsw'),'1');
FILE_NAME('star1.p21','1994-12-14 T10:00:00',
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
('Industrial Technology Institute',
'P.O. Box 1485',
'Ann Arbor',
'Michigan',
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1=PRODUCT('11114','Star Cog','Description for part 11114',(#2));
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
#5=PERSON_AND_ORGANIZATION(#6,#7);
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','A not-for-profit engineering and research center');
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 11114',(#1));
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 11114',#1,.BOUGHT.);
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
#13=PERSON_AND_ORGANIZATION(#14,#7);
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
#44=CC_DESIGN_APPROVAL(#45,(#10));
#45=APPROVAL(#46,'Approved as initial STEP test case part');
#46=APPROVAL_STATUS('approved');
#47=APPROVAL_DATE_TIME(#48,#45);
#48=DATE_AND_TIME(#50,#51);
#50=CALENDAR_DATE(1993,17,7);
#51=LOCAL_TIME(13,29,52.0,#29);
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
#70=PERSON_AND_ORGANIZATION(#71,#7);
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
#72=APPROVAL_ROLE('Authorize part release');
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
#35=DATE_AND_TIME(#36,#37);
#36=CALENDAR_DATE(1993,17,7);
#37=LOCAL_TIME(13,45,20.0,#29);
#39=DATE_TIME_ROLE('classification_date');
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
#41=PERSON_AND_ORGANIZATION(#42,#7);
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#53=CC_DESIGN_APPROVAL(#54,(#32));
#54=APPROVAL(#55,'Approved as unclassified step test data');
#55=APPROVAL_STATUS('approved');
#56=APPROVAL_DATE_TIME(#57,#54);
#57=DATE_AND_TIME(#58,#59);
#58=CALENDAR_DATE(1993,17,7);
#59=LOCAL_TIME(13,47,28.0,#29);
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
#74=PERSON_AND_ORGANIZATION(#75,#7);
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
#76=APPROVAL_ROLE('Authorize the security code');
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
#18=DESIGN_CONTEXT('detailed design',#3,'design');
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
#25=DATE_AND_TIME(#27,#28);
#27=CALENDAR_DATE(1993,19,7);
#28=LOCAL_TIME(19,46,55.0,#29);
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
#30=DATE_TIME_ROLE('creation_date');
#61=CC_DESIGN_APPROVAL(#62,(#17));
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
#63=APPROVAL_STATUS('approved');
#64=APPROVAL_DATE_TIME(#65,#62);
#65=DATE_AND_TIME(#66,#67);
#66=CALENDAR_DATE(1993,19,7);
#67=LOCAL_TIME(19,47,51.0,#29);
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
#79=APPROVAL_ROLE('Authorize product definition');
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
#81=PERSON_AND_ORGANIZATION(#82,#83);
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization.');
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
#87=CERTIFICATION_TYPE('design_supplier');
#89=CC_DESIGN_APPROVAL(#90,(#86));
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
#91=APPROVAL_STATUS('approved');
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
#93=APPROVAL_ROLE('Authorize supplier certification');
#94=DATE_AND_TIME(#95,#96);
#95=CALENDAR_DATE(1993,20,4);
#96=LOCAL_TIME(15,47,51.0,#29);
#97=APPROVAL_DATE_TIME(#94,#90);
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
#99=CALENDAR_DATE(1993,19,4);
#100=DATE_AND_TIME(#99,#101);
#101=LOCAL_TIME(10,41,59.0,#29);
#102=DATE_TIME_ROLE('certification_date');
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Star Cog ',#1,.MADE.);
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
#1045=APPROVAL(#1046,'Approved as test part design');
#1046=APPROVAL_STATUS('approved');
#1047=APPROVAL_DATE_TIME(#1048,#1045);
#1048=DATE_AND_TIME(#1050,#1051);
#1050=CALENDAR_DATE(1993,19,7);
#1051=LOCAL_TIME(19,51,59.0,#29);
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
#1070=PERSON_AND_ORGANIZATION(#82,#83);
#1072=APPROVAL_ROLE('Authorize part version');
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
#1035=DATE_AND_TIME(#1036,#1037);
#1036=CALENDAR_DATE(1993,19,7);
#1037=LOCAL_TIME(19,45,41.0,#29);
#1039=DATE_TIME_ROLE('classification_date');
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
#1054=APPROVAL(#1055,'Approved as unclassified part design');
#1055=APPROVAL_STATUS('approved');
#1056=APPROVAL_DATE_TIME(#1057,#1054);
#1057=DATE_AND_TIME(#1058,#1059);
#1058=CALENDAR_DATE(1993,19,7);
#1059=LOCAL_TIME(19,47,58.0,#29);
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
#1076=APPROVAL_ROLE('Authorize the security code');
#1017=PRODUCT_DEFINITION('D2','Description of product for part 11114',#1010,#1018);
#1018=DESIGN_CONTEXT('detailed design',#3,'design');
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
#1025=DATE_AND_TIME(#1027,#1028);
#1027=CALENDAR_DATE(1993,18,7);
#1028=LOCAL_TIME(10,51,59.0,#29);
#1030=DATE_TIME_ROLE('creation_date');
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
#1062=APPROVAL(#1063,'Approved as detailed drawing');
#1063=APPROVAL_STATUS('approved');
#1064=APPROVAL_DATE_TIME(#1065,#1062);
#1065=DATE_AND_TIME(#1066,#1067);
#1066=CALENDAR_DATE(1993,19,7);
#1067=LOCAL_TIME(19,51,59.0,#29);
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
#1079=APPROVAL_ROLE('Authorize product definition');
#1200=SHAPE_DEFINITION_REPRESENTATION(#1201,#9810);
#1201=PRODUCT_DEFINITION_SHAPE('GBWR_Shape','Shape of Star Cog',#17);
#9101=CARTESIAN_POINT('CartPt1',(0.0, 0.0, 0.5));
#9102=CARTESIAN_POINT('CartPt2',(0.125, 0.4841, 0.5));
#9103=CARTESIAN_POINT('CartPt3',(0.125, 0.7500, 0.5));
#9104=CARTESIAN_POINT('CartPt4',(-0.125, 0.4841, 0.5));
#9105=CARTESIAN_POINT('CartPt5',(-0.125, 0.7500, 0.5));
#9107=DIRECTION('Dir1',(0.0, 0.0, 1.0));
#9108=AXIS2_PLACEMENT_3D('Ax2P3D1',#9101,#9107, $);
#9109=CIRCLE('Circ1',#9108, 0.500);
#9110=TRIMMED_CURVE('TrimCur1',#9109, (#9102), (#9104), .F., .CARTESIAN.);
#9111=POLYLINE('PolyLine1',(#9102,#9103,#9105,#9104));
#9120=CARTESIAN_POINT('CartPt6',(0.0, 0.0, 0.0));
#9121=CARTESIAN_POINT('CartPt7',(0.125, 0.4841, 0.0));
#9122=CARTESIAN_POINT('CartPt8',(0.125, 0.7500, 0.0));
#9123=CARTESIAN_POINT('CartPt9',(-0.125, 0.4841, 0.0));
#9124=CARTESIAN_POINT('CartPt10',(-0.125, 0.7500, 0.0));
#9128=AXIS2_PLACEMENT_3D('Ax2P3D2',#9120,#9107, $);
#9129=CIRCLE('Circ2',#9128, 0.500);
#9130=TRIMMED_CURVE('TrimCur2',#9129, (#9121), (#9123), .F., .UNSPECIFIED.);
#9131=POLYLINE('PolyLine2',(#9121,#9122,#9124,#9123));
#9140=CIRCLE('Circ3',#9108, 2.880);
#9141=CIRCLE('Circ4',#9128, 2.880);
#9145=CARTESIAN_POINT('CartPt11',(0.25, 1.5, 0.5));
#9146=CARTESIAN_POINT('CartPt12',(0.25, 1.5, 0.0));
#9150=CARTESIAN_POINT('CartPt13',(0.25, 2.8691, 0.5));
#9151=CARTESIAN_POINT('CartPt14',(0.25, 2.8691, 0.0));
#9153=POLYLINE('PolyLine3',(#9150,#9145,#9146,#9151));
#9155=CARTESIAN_POINT('CartPt15',(0.6013, 2.8165, 0.5));
#9156=CARTESIAN_POINT('CartPt16',(0.6013, 2.8165, 0.0));
#9158=TRIMMED_CURVE('TrimCur3',#9140, (#9150), (#9155), .F., .CARTESIAN.);
#9159=TRIMMED_CURVE('TrimCur4',#9141, (#9151), (#9156), .F., .CARTESIAN.);
#9160=CARTESIAN_POINT('CartPt17',(2.1386, 1.9290, 0.5));
#9161=CARTESIAN_POINT('CartPt18',(2.1386, 1.9290, 0.0));
#9170=CARTESIAN_POINT('CartPt19',(1.81, 3.1350, 0.5));
#9171=AXIS2_PLACEMENT_3D('Ax2P3D3',#9170,#9107, $);
#9172=CIRCLE('Circ5',#9171, 1.25);
#9173=TRIMMED_CURVE('TrimCur5',#9172, (#9155), (#9160), .T., .CARTESIAN.);
#9175=CARTESIAN_POINT('CartPt20',(1.81, 3.1350, 0.0));
#9176=AXIS2_PLACEMENT_3D('Ax2P3D4',#9175,#9107, $);
#9177=CIRCLE('Circ6',#9176, 1.25);
#9178=TRIMMED_CURVE('TrimCur6',#9177, (#9156), (#9161), .T., .CARTESIAN.);
#9180=CARTESIAN_POINT('CartPt21',(2.3579, 1.6511, 0.5));
#9181=CARTESIAN_POINT('CartPt22',(2.3579, 1.6511, 0.0));
#9183=CARTESIAN_POINT('CartPt23',(1.1740, 0.9665, 0.5));
#9184=CARTESIAN_POINT('CartPt24',(1.1740, 0.9665, 0.0));
#9185=POLYLINE('PolyLine4',(#9180,#9183,#9184,#9181));
#9186=CARTESIAN_POINT('CartPt25',(1.0825, 0.625, 0.5));
#9187=CARTESIAN_POINT('CartPt26',(1.0825, 0.625, 0.0));
#9190=CARTESIAN_POINT('CartPt27',(1.4240, 0.5335, 0.5));
#9191=CARTESIAN_POINT('CartPt28',(1.4240, 0.5335, 0.0));
#9194=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot1',1, (#9183,#9186,#9190), .POLYLINE_FORM., .F.,
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
#9195=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot2',1, (#9184,#9187,#9191), .POLYLINE_FORM., .F.,
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
#9196=CARTESIAN_POINT('CartPt29',(2.6097, 1.2181, 0.5));
#9197=CARTESIAN_POINT('CartPt30',(2.6097, 1.2181, 0.0));
#9198=POLYLINE('PolyLine5',(#9190,#9196,#9197,#9191));
#9200=CARTESIAN_POINT('CartPt31',(2.7398, 0.8876, 0.5));
#9201=CARTESIAN_POINT('CartPt32',(2.7398, 0.8876, 0.0));
#9205=CARTESIAN_POINT('CartPt33',(2.7398, -0.8876, 0.5));
#9206=CARTESIAN_POINT('CartPt34',(2.7398, -0.8876, 0.0));
#9208=CARTESIAN_POINT('CartPt35',(3.62, 0.0, 0.5));
#9209=AXIS2_PLACEMENT_3D('Ax2P3D5',#9208,#9107, $);
#9210=CIRCLE('Circ7',#9209, 1.25);
#9211=TRIMMED_CURVE('TrimCur7',#9210, (#9200), (#9205), .T., .CARTESIAN.);
#9212=CARTESIAN_POINT('CartPt36',(3.62, 0.0, 0.0));
#9213=AXIS2_PLACEMENT_3D('Ax2P3D6',#9212,#9107, $);
#9214=CIRCLE('Circ8',#9213, 1.25);
#9215=TRIMMED_CURVE('TrimCur8',#9214, (#9201), (#9206), .T., .CARTESIAN.);
#9220=CARTESIAN_POINT('CartPt37',(2.6097, -1.2181, 0.5));
#9221=CARTESIAN_POINT('CartPt38',(2.6097, -1.2181, 0.0));
#9225=CARTESIAN_POINT('CartPt39',(1.4240, -0.5335, 0.5));
#9226=CARTESIAN_POINT('CartPt40',(1.4240, -0.5335, 0.0));
#9227=POLYLINE('PolyLine6',(#9220,#9225,#9226,#9221));
#9230=CARTESIAN_POINT('CartPt41',(1.0825, -0.625, 0.5));
#9231=CARTESIAN_POINT('CartPt42',(1.0825, -0.625, 0.0));
#9235=CARTESIAN_POINT('CartPt43',(1.1740, -0.9665, 0.5));
#9236=CARTESIAN_POINT('CartPt44',(1.1740, -0.9665, 0.0));
#9238=QUASI_UNIFORM_CURVE('QUnifCur1',1, (#9225,#9230,#9235), .POLYLINE_FORM., .F., .F.);
#9239=QUASI_UNIFORM_CURVE('QUnifCur2',1, (#9226,#9231,#9236),.UNSPECIFIED., .U., .U.);
#9240=CARTESIAN_POINT('CartPt45',(2.3579, -1.6511, 0.5));
#9241=CARTESIAN_POINT('CartPt46',(2.3579, -1.6511, 0.0));
#9242=POLYLINE('PolyLine7',(#9235,#9240,#9241,#9236));
#9245=CARTESIAN_POINT('CartPt47',(2.1386, -1.9290, 0.5));
#9246=CARTESIAN_POINT('CartPt48',(2.1386, -1.9290, 0.0));
#9250=CARTESIAN_POINT('CartPt49',(0.6013, -2.8165, 0.5));
#9251=CARTESIAN_POINT('CartPt50',(0.6013, -2.8165, 0.0));
#9255=CARTESIAN_POINT('CartPt51',(1.81, -3.1350, 0.5));
#9256=AXIS2_PLACEMENT_3D('Ax2P3D7',#9255,#9107, $);
#9257=CIRCLE('Circ9',#9256, 1.25);
#9258=TRIMMED_CURVE('TrimCur9',#9257, (#9245), (#9250), .T., .CARTESIAN.);
#9260=CARTESIAN_POINT('CartPt52',(1.81, -3.1350, 0.0));
#9261=AXIS2_PLACEMENT_3D('Ax2P3D8',#9260,#9107, $);
#9262=CIRCLE('Circ10',#9261, 1.25);
#9263=TRIMMED_CURVE('TrimCur10',#9262, (#9246), (#9251), .T., .CARTESIAN.);
#9265=CARTESIAN_POINT('CartPt53',(0.25, -2.8691, 0.5));
#9266=CARTESIAN_POINT('CartPt54',(0.25, -2.8691, 0.0));
#9270=CARTESIAN_POINT('CartPt55',(0.25, -1.5, 0.5));
#9271=CARTESIAN_POINT('CartPt56',(0.25, -1.5, 0.0));
#9272=POLYLINE('PolyLine8',(#9265,#9270,#9271,#9266));
#9275=CARTESIAN_POINT('CartPt57',(0.0, -1.25, 0.5));
#9276=CARTESIAN_POINT('CartPt58',(0.0, -1.25, 0.0));
#9280=CARTESIAN_POINT('CartPt59',(-0.25, -1.5, 0.5));
#9281=CARTESIAN_POINT('CartPt60',(-0.25, -1.5, 0.0));
#9283=QUASI_UNIFORM_CURVE('QUnifCur3',1, (#9270,#9275,#9280), .POLYLINE_FORM., .U., .U.);
#9284=QUASI_UNIFORM_CURVE('QUnifCur4',1, (#9271,#9276,#9281), .UNSPECIFIED., .F., .F.);
#9285=CARTESIAN_POINT('CartPt61',(-0.25, -2.8691, 0.5));
#9286=CARTESIAN_POINT('CartPt62',(-0.25, -2.8691, 0.0));
#9287=POLYLINE('PolyLine9',(#9280,#9285,#9286,#9281));
#9290=CARTESIAN_POINT('CartPt63',(-0.6013, -2.8165, 0.5));
#9291=CARTESIAN_POINT('CartPt64',(-0.6013, -2.8165, 0.0));
#9295=CARTESIAN_POINT('CartPt65',(-2.1386, -1.9290, 0.5));
#9296=CARTESIAN_POINT('CartPt66',(-2.1386, -1.9290, 0.0));
#9300=CARTESIAN_POINT('CartPt67',(-1.81, -3.1350, 0.5));
#9301=AXIS2_PLACEMENT_3D('Ax2P3D9',#9300,#9107, $);
#9302=CIRCLE('Circ11',#9301, 1.25);
#9303=TRIMMED_CURVE('TrimCur11',#9302, (#9290), (#9295), .T., .CARTESIAN.);
#9305=CARTESIAN_POINT('CartPt68',(-1.81, -3.1350, 0.0));
#9306=AXIS2_PLACEMENT_3D('Ax2P3D10',#9305,#9107, $);
#9307=CIRCLE('Circ12',#9306, 1.25);
#9308=TRIMMED_CURVE('TrimCur12',#9307, (#9291), (#9296), .T., .CARTESIAN.);
#9310=CARTESIAN_POINT('CartPt69',(-2.3579, -1.6511, 0.5));
#9311=CARTESIAN_POINT('CartPt70',(-2.3579, -1.6511, 0.0));
#9315=CARTESIAN_POINT('CartPt71',(-1.1740, -0.9665, 0.5));
#9316=CARTESIAN_POINT('CartPt72',(-1.1740, -0.9665, 0.0));
#9317=POLYLINE('PolyLine10',(#9310,#9315,#9316,#9311));
#9320=CARTESIAN_POINT('CartPt73',(-1.0825, -0.625, 0.5));
#9321=CARTESIAN_POINT('CartPt74',(-1.0825, -0.625, 0.0));
#9325=CARTESIAN_POINT('CartPt75',(-1.4240, -0.5335, 0.5));
#9326=CARTESIAN_POINT('CartPt76',(-1.4240, -0.5335, 0.0));
#9328=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot3',1, (#9315,#9320,#9325), .POLYLINE_FORM., .F.,
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
#9329=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot4',1, (#9316,#9321,#9326), .POLYLINE_FORM., .F.,
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
#9330=CARTESIAN_POINT('CartPt77',(-2.6097, -1.2181, 0.5));
#9331=CARTESIAN_POINT('CartPt78',(-2.6097, -1.2181, 0.0));
#9332=POLYLINE('PolyLine11',(#9325,#9330,#9331,#9326));
#9335=CARTESIAN_POINT('CartPt79',(-2.7398, -0.8876, 0.5));
#9336=CARTESIAN_POINT('CartPt80',(-2.7398, -0.8876, 0.0));
#9340=CARTESIAN_POINT('CartPt81',(-2.7398, 0.8876, 0.5));
#9341=CARTESIAN_POINT('CartPt82',(-2.7398, 0.8876, 0.0));
#9345=CARTESIAN_POINT('CartPt83',(-3.62, 0.0, 0.5));
#9346=AXIS2_PLACEMENT_3D('Ax2P3D11',#9345,#9107, $);
#9347=CIRCLE('Circ13',#9346, 1.25);
#9348=TRIMMED_CURVE('TrimCur13',#9347, (#9335), (#9340), .T., .CARTESIAN.);
#9350=CARTESIAN_POINT('CartPt84',(-3.62, 0.0, 0.0));
#9351=AXIS2_PLACEMENT_3D('Ax2P3D12',#9350,#9107, $);
#9352=CIRCLE('Circ14',#9351, 1.25);
#9353=TRIMMED_CURVE('TrimCur14',#9352, (#9336), (#9341), .T., .CARTESIAN.);
#9355=CARTESIAN_POINT('CartPt85',(-2.6097, 1.2181, 0.5));
#9356=CARTESIAN_POINT('CartPt86',(-2.6097, 1.2181, 0.0));
#9360=CARTESIAN_POINT('CartPt87',(-1.4240, 0.5335, 0.5));
#9361=CARTESIAN_POINT('CartPt88',(-1.4240, 0.5335, 0.0));
#9362=POLYLINE('PolyLine12',(#9355,#9360,#9361,#9356));
#9365=CARTESIAN_POINT('CartPt89',(-1.0825, 0.625, 0.5));
#9366=CARTESIAN_POINT('CartPt90',(-1.0825, 0.625, 0.0));
#9370=CARTESIAN_POINT('CartPt91',(-1.1740, 0.9665, 0.5));
#9371=CARTESIAN_POINT('CartPt92',(-1.1740, 0.9665, 0.0));
#9373=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot5',1, (#9360,#9365,#9370), .POLYLINE_FORM., .F.,
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
#9374=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot6',1, (#9361,#9366,#9371), .POLYLINE_FORM., .F.,
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
#9375=CARTESIAN_POINT('CartPt93',(-2.3579, 1.6511, 0.5));
#9376=CARTESIAN_POINT('CartPt94',(-2.3579, 1.6511, 0.0));
#9377=POLYLINE('PolyLine13',(#9370,#9375,#9376,#9371));
#9380=CARTESIAN_POINT('CartPt95',(-2.1386, 1.9290, 0.5));
#9381=CARTESIAN_POINT('CartPt96',(-2.1386, 1.9290, 0.0));
#9385=CARTESIAN_POINT('CartPt97',(-0.6013, 2.8165, 0.5));
#9386=CARTESIAN_POINT('CartPt98',(-0.6013, 2.8165, 0.0));
#9390=CARTESIAN_POINT('CartPt99',(-1.81, 3.1350, 0.5));
#9391=AXIS2_PLACEMENT_3D('Ax2P3D13',#9390,#9107, $);
#9392=CIRCLE('Circ15',#9391, 1.25);
#9393=TRIMMED_CURVE('TrimCur15',#9392, (#9380), (#9385), .T., .CARTESIAN.);
#9395=CARTESIAN_POINT('CartPt100',(-1.81, 3.1350, 0.0));
#9396=AXIS2_PLACEMENT_3D('Ax2P3D14',#9395,#9107, $);
#9397=CIRCLE('Circ16',#9396, 1.25);
#9398=TRIMMED_CURVE('TrimCur16',#9397, (#9381), (#9386), .T., .CARTESIAN.);
#9400=CARTESIAN_POINT('CartPt101',(-0.25, 2.8691, 0.5));
#9401=CARTESIAN_POINT('CartPt102',(-0.25, 2.8691, 0.0));
#9405=CARTESIAN_POINT('CartPt103',(-0.25, 1.50, 0.5));
#9406=CARTESIAN_POINT('CartPt104',(-0.25, 1.50, 0.0));
#9407=POLYLINE('PolyLine14',(#9400,#9405,#9406,#9401));
#9410=CARTESIAN_POINT('CartPt105',(0.0, 1.25, 0.5));
#9411=CARTESIAN_POINT('CartPt106',(0.0, 1.25, 0.0));
#9413=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot7',1, (#9405,#9410,#9145), .POLYLINE_FORM., .F.,
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
#9414=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot8',1, (#9406,#9411,#9146), .POLYLINE_FORM., .F.,
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
#9450=TRIMMED_CURVE('TrimCur17',#9140, (#9160), (#9180), .F., .CARTESIAN.);
#9451=TRIMMED_CURVE('TrimCur18',#9141, (#9161), (#9181), .F., .CARTESIAN.);
#9460=TRIMMED_CURVE('TrimCur19',#9140, (#9196), (#9200), .F., .CARTESIAN.);
#9461=TRIMMED_CURVE('TrimCur20',#9141, (#9197), (#9201), .F., .CARTESIAN.);
#9470=TRIMMED_CURVE('TrimCur21',#9140, (#9205), (#9220), .F., .CARTESIAN.);
#9471=TRIMMED_CURVE('TrimCur22',#9141, (#9206), (#9221), .F., .CARTESIAN.);
#9480=TRIMMED_CURVE('TrimCur23',#9140, (#9240), (#9245), .F., .CARTESIAN.);
#9481=TRIMMED_CURVE('TrimCur24',#9141, (#9241), (#9246), .F., .CARTESIAN.);
#9490=TRIMMED_CURVE('TrimCur25',#9140, (#9250), (#9265), .F., .CARTESIAN.);
#9491=TRIMMED_CURVE('TrimCur26',#9141, (#9251), (#9266), .F., .CARTESIAN.);
#9500=TRIMMED_CURVE('TrimCur27',#9140, (#9285), (#9290), .F., .CARTESIAN.);
#9501=TRIMMED_CURVE('TrimCur28',#9141, (#9286), (#9291), .F., .CARTESIAN.);
#9510=TRIMMED_CURVE('TrimCur29',#9140, (#9295), (#9310), .F., .CARTESIAN.);
#9511=TRIMMED_CURVE('TrimCur30',#9141, (#9296), (#9311), .F., .CARTESIAN.);
#9520=TRIMMED_CURVE('TrimCur31',#9140, (#9330), (#9335), .F., .CARTESIAN.);
#9521=TRIMMED_CURVE('TrimCur32',#9141, (#9331), (#9336), .F., .CARTESIAN.);
#9530=TRIMMED_CURVE('TrimCur33',#9140, (#9340), (#9355), .F., .CARTESIAN.);
#9531=TRIMMED_CURVE('TrimCur34',#9141, (#9341), (#9356), .F., .CARTESIAN.);
#9540=TRIMMED_CURVE('TrimCur35',#9140, (#9375), (#9380), .F., .CARTESIAN.);
#9541=TRIMMED_CURVE('TrimCur36',#9141, (#9376), (#9381), .F., .CARTESIAN.);
#9550=TRIMMED_CURVE('TrimCur37',#9140, (#9385), (#9400), .F., .CARTESIAN.);
#9551=TRIMMED_CURVE('TrimCur38',#9141, (#9386), (#9401), .F., .CARTESIAN.);
#9560 = VECTOR('Vec1',#9107,1.0);
#9561 = LINE('Line1',#9121,#9560);
#9562 = TRIMMED_CURVE('TrimCur39',#9561,(#9121),(#9102),.T.,.CARTESIAN.);
#9565 = LINE('Line2',#9122,#9560);
#9566 = TRIMMED_CURVE('TrimCur40',#9565,(#9121),(#9103),.T.,.CARTESIAN.);
#9570 = LINE('Line3',#9124,#9560);
#9571 = TRIMMED_CURVE('TrimCur41',#9570,(#9124),(#9105),.T.,.CARTESIAN.);
#9575 = LINE('Line4',#9123,#9560);
#9576 = TRIMMED_CURVE('TrimCur42',#9575,(#9123),(#9104),.T.,.CARTESIAN.);
#9580 = LINE('Line5',#9151,#9560);
#9581 = TRIMMED_CURVE('TrimCur43',#9580,(#9151),(#9150),.T.,.CARTESIAN.);
#9585 = LINE('Line6',#9156,#9560);
#9586 = TRIMMED_CURVE('TrimCur44',#9585,(#9156),(#9155),.T.,.CARTESIAN.);
#9590 = LINE('Line7',#9161,#9560);
#9591 = TRIMMED_CURVE('TrimCur45',#9590,(#9161),(#9160),.T.,.CARTESIAN.);
#9595 = LINE('Line8',#9181,#9560);
#9596 = TRIMMED_CURVE('TrimCur46',#9595,(#9181),(#9180),.T.,.CARTESIAN.);
#9600 = LINE('Line9',#9187,#9560);
#9601 = TRIMMED_CURVE('TrimCur47',#9600,(#9187),(#9186),.T.,.CARTESIAN.);
#9605 = LINE('Line10',#9191,#9560);
#9606 = TRIMMED_CURVE('TrimCur48',#9605,(#9191),(#9190),.T.,.CARTESIAN.);
#9610 = LINE('Line11',#9201,#9560);
#9611 = TRIMMED_CURVE('TrimCur49',#9610,(#9201),(#9200),.T.,.CARTESIAN.);
#9615 = LINE('Line12',#9206,#9560);
#9616 = TRIMMED_CURVE('TrimCur50',#9615,(#9206),(#9205),.T.,.CARTESIAN.);
#9620 = LINE('Line13',#9221,#9560);
#9621 = TRIMMED_CURVE('TrimCur51',#9620,(#9221),(#9220),.T.,.CARTESIAN.);
#9625 = LINE('Line14',#9231,#9560);
#9626 = TRIMMED_CURVE('TrimCur52',#9625,(#9231),(#9230),.T.,.CARTESIAN.);
#9630 = LINE('Line15',#9236,#9560);
#9631 = TRIMMED_CURVE('TrimCur53',#9630,(#9236),(#9235),.T.,.CARTESIAN.);
#9635 = LINE('Line16',#9246,#9560);
#9636 = TRIMMED_CURVE('TrimCur54',#9635,(#9246),(#9245),.T.,.CARTESIAN.);
#9640 = LINE('Line17',#9251,#9560);
#9641 = TRIMMED_CURVE('TrimCur55',#9640,(#9251),(#9250),.T.,.CARTESIAN.);
#9645 = LINE('Line18',#9266,#9560);
#9646 = TRIMMED_CURVE('TrimCur56',#9645,(#9266),(#9265),.T.,.CARTESIAN.);
#9650 = LINE('Line19',#9276,#9560);
#9651 = TRIMMED_CURVE('TrimCur57',#9650,(#9276),(#9275),.T.,.CARTESIAN.);
#9655 = LINE('Line20',#9281,#9560);
#9656 = TRIMMED_CURVE('TrimCur58',#9655,(#9281),(#9280),.T.,.CARTESIAN.);
#9660 = LINE('Line21',#9291,#9560);
#9661 = TRIMMED_CURVE('TrimCur59',#9660,(#9291),(#9290),.T.,.CARTESIAN.);
#9665 = LINE('Line22',#9296,#9560);
#9666 = TRIMMED_CURVE('TrimCur60',#9665,(#9296),(#9295),.T.,.CARTESIAN.);
#9670 = LINE('Line23',#9311,#9560);
#9671 = TRIMMED_CURVE('TrimCur61',#9670,(#9311),(#9310),.T.,.CARTESIAN.);
#9675 = LINE('Line24',#9321,#9560);
#9676 = TRIMMED_CURVE('TrimCur62',#9675,(#9321),(#9320),.T.,.CARTESIAN.);
#9680 = LINE('Line25',#9326,#9560);
#9681 = TRIMMED_CURVE('TrimCur63',#9680,(#9326),(#9325),.T.,.CARTESIAN.);
#9685 = LINE('Line26',#9336,#9560);
#9686 = TRIMMED_CURVE('TrimCur64',#9685,(#9336),(#9335),.T.,.CARTESIAN.);
#9690 = LINE('Line27',#9341,#9560);
#9691 = TRIMMED_CURVE('TrimCur65',#9690,(#9341),(#9340),.T.,.CARTESIAN.);
#9695 = LINE('Line28',#9356,#9560);
#9696 = TRIMMED_CURVE('TrimCur66',#9695,(#9356),(#9355),.T.,.CARTESIAN.);
#9700 = LINE('Line29',#9366,#9560);
#9701 = TRIMMED_CURVE('TrimCur67',#9700,(#9366),(#9365),.T.,.CARTESIAN.);
#9705 = LINE('Line30',#9371,#9560);
#9706 = TRIMMED_CURVE('TrimCur68',#9705,(#9371),(#9370),.T.,.CARTESIAN.);
#9710 = LINE('Line31',#9381,#9560);
#9711 = TRIMMED_CURVE('TrimCur69',#9710,(#9381),(#9380),.T.,.CARTESIAN.);
#9715 = LINE('Line32',#9386,#9560);
#9716 = TRIMMED_CURVE('TrimCur70',#9715,(#9386),(#9385),.T.,.CARTESIAN.);
#9720 = LINE('Line33',#9401,#9560);
#9721 = TRIMMED_CURVE('TrimCur71',#9720,(#9401),(#9400),.T.,.CARTESIAN.);
#9725 = LINE('Line34',#9411,#9560);
#9726 = TRIMMED_CURVE('TrimCur72',#9725,(#9411),(#9410),.T.,.CARTESIAN.);
#9800 = GEOMETRIC_CURVE_SET('GeomCurSet1',(#9110,#9111,#9130,#9131,
#9562,#9566,#9571,#9576,#9581,#9153, #9586,#9158,#9159,#9591,#9173,
#9178,#9596,#9185, #9601,#9606,#9194,#9195,#9198,#9611,
#9616,#9211,#9215, #9621,#9227,#9626,#9631,#9238,
#9239,#9242,#9636,#9641, #9258,#9263,#9646,#9272,
#9651,#9656,#9283,#9284,#9287, #9661,#9666,#9303,
#9308,#9671,#9317,#9676, #9681,#9328,#9329,#9332,#9686,#9691,
#9348,#9353,#9696, #9362,#9701,#9706,#9373,#9374,
#9377,#9711,#9716,#9393, #9398,#9721,#9407,#9726,
#9413,#9414,#9450,#9451,#9460,#9461,#9470,#9471,#9480,#9481,#9490,#9491,
#9500,#9501,#9510,#9511,#9520,#9521,#9530,#9531,#9540,#9541,#9550,#9551));
#9815=DIMENSIONAL_EXPONENTS(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
#9822=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.CENTI.,.METRE.));
#9824=LENGTH_MEASURE_WITH_UNIT(POSITIVE_LENGTH_MEASURE(2.54),#9822);
#9825=(CONVERSION_BASED_UNIT('inch',#9824)LENGTH_UNIT()NAMED_UNIT(#9815));
#9826=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#9827=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#9828 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9829))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9825,#9826,#9827))
REPRESENTATION_CONTEXT('CONTEXT for gbwr test case star','This is a 3d context using inches for linear dimension'));
#9829 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9825,'xx','yy');
#9810=GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION('gbwsr',(#9800),#9828);
ENDSEC;
END-ISO-10303-21;
+16 -9
View File
@@ -40,7 +40,7 @@ FUNCTION(BUILD_A_SCHEMA SCHEMA_FILE)
# read the schema name from a line like 'SCHEMA AUTOMOTIVE_DESIGN;'
file(STRINGS ${SCHEMA_FILE} SCHEMA_STATEMENT LIMIT_COUNT 1 REGEX "^SCHEMA .*")
string(REGEX REPLACE "^SCHEMA \(.*\)\;$" "\\1" SCHEMA_N ${SCHEMA_STATEMENT} )
string(TOUPPER ${SCHEMA_N} SCHEMA_LONG_NAME) #fedex_plus always uses upper case for file names
string(TOUPPER ${SCHEMA_N} SCHEMA_LONG_NAME) #exp2cxx always uses upper case for file names
get_filename_component( SCHEMA_SN ${SCHEMA_FILE} NAME )
string( REGEX REPLACE "\(.*\).[Ee][Xx][Pp]" "\\1" SCHEMA_SHORT_NAME ${SCHEMA_SN} )
@@ -49,10 +49,13 @@ FUNCTION(BUILD_A_SCHEMA SCHEMA_FILE)
set( SCHEMA_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/${SCHEMA_SHORT_NAME} )
#the names of the files that will be generated
set( FEDEX_OUT ${SCHEMA_OUTPUT_DIR}/compstructs.cc ${SCHEMA_OUTPUT_DIR}/Sdaiclasses.h
${SCHEMA_OUTPUT_DIR}/schema.cc ${SCHEMA_OUTPUT_DIR}/Sdai${SCHEMA_LONG_NAME}.cc
${SCHEMA_OUTPUT_DIR}/schema.h ${SCHEMA_OUTPUT_DIR}/Sdai${SCHEMA_LONG_NAME}.h
${SCHEMA_OUTPUT_DIR}/SdaiAll.cc ${SCHEMA_OUTPUT_DIR}/Sdai${SCHEMA_LONG_NAME}.init.cc )
set( FEDEX_HEADERS ${SCHEMA_OUTPUT_DIR}/Sdaiclasses.h ${SCHEMA_OUTPUT_DIR}/schema.h
${SCHEMA_OUTPUT_DIR}/Sdai${SCHEMA_LONG_NAME}.h )
set( FEDEX_OUT ${SCHEMA_OUTPUT_DIR}/compstructs.cc ${SCHEMA_OUTPUT_DIR}/schema.cc
${SCHEMA_OUTPUT_DIR}/Sdai${SCHEMA_LONG_NAME}.cc ${SCHEMA_OUTPUT_DIR}/SdaiAll.cc
${SCHEMA_OUTPUT_DIR}/Sdai${SCHEMA_LONG_NAME}.init.cc ${FEDEX_HEADERS} )
install( FILES ${FEDEX_HEADERS} DESTINATION include/${SCHEMA_SHORT_NAME} )
# *cannot* use include_directories() because the includes keep piling up - if building
# multiple schemas, each one will use the include dirs from all previous schemas. Since
@@ -60,16 +63,16 @@ FUNCTION(BUILD_A_SCHEMA SCHEMA_FILE)
# seems to be set_target_properties( <target> PROPERTIES COMPILE_FLAGS <flags> )
set( ${PROJECT_NAME}_COMPILE_FLAGS "-I${CMAKE_CURRENT_SOURCE_DIR} -I${SC_SOURCE_DIR}/src/cldai -I${SC_SOURCE_DIR}/src/cleditor -I${SC_SOURCE_DIR}/src/clutils -I${SCHEMA_OUTPUT_DIR} -I${SC_SOURCE_DIR}/src/clstepcore -I${SC_SOURCE_DIR}/src/base" )
add_custom_target( generate_cpp_${SCHEMA_SHORT_NAME} SOURCES ${FEDEX_OUT} )
add_custom_command( OUTPUT ${SCHEMA_OUTPUT_DIR}
COMMAND ${CMAKE_COMMAND} ARGS -E make_directory ${SCHEMA_OUTPUT_DIR}
COMMENT "Creating ${SCHEMA_OUTPUT_DIR} for schema ${SCHEMA_SHORT_NAME}")
add_custom_command( OUTPUT ${FEDEX_OUT}
COMMAND fedex_plus ARGS ${SCHEMA_FILE}
COMMAND exp2cxx ARGS ${SCHEMA_FILE}
DEPENDS ${SCHEMA_FILE} ${SCHEMA_OUTPUT_DIR}
WORKING_DIRECTORY ${SCHEMA_OUTPUT_DIR}
COMMENT "Running fedex_plus for ${SCHEMA_SHORT_NAME}..."
COMMENT "Running exp2cxx for ${SCHEMA_SHORT_NAME}..."
VERBATIM )
add_custom_target( generate_cpp_${SCHEMA_SHORT_NAME} DEPENDS ${FEDEX_OUT} SOURCES ${FEDEX_OUT} )
if( SC_ENABLE_COVERAGE AND NOT SC_COVER_SCHEMAS )
# Coverage will always be sparse on schema libs. Compiling the libs with the -fprofile-arcs and
@@ -79,10 +82,14 @@ FUNCTION(BUILD_A_SCHEMA SCHEMA_FILE)
endif( SC_ENABLE_COVERAGE AND NOT SC_COVER_SCHEMAS )
# if testing is enabled, "TESTABLE" sets property EXCLUDE_FROM_ALL and prevents installation
SC_ADDLIB( ${PROJECT_NAME} "${FEDEX_OUT}" "stepdai;stepcore;express;stepeditor;steputils;base" "TESTABLE" )
SC_ADDLIB( ${PROJECT_NAME} "${FEDEX_OUT}" "stepdai;stepcore;stepeditor;steputils;base" "TESTABLE" )
add_dependencies( ${PROJECT_NAME} generate_cpp_${SCHEMA_SHORT_NAME} )
set_target_properties( ${PROJECT_NAME} PROPERTIES COMPILE_FLAGS
${${PROJECT_NAME}_COMPILE_FLAGS} )
if( TARGET ${PROJECT_NAME}-static )
set_target_properties( ${PROJECT_NAME}-static PROPERTIES COMPILE_FLAGS
${${PROJECT_NAME}_COMPILE_FLAGS} )
endif( TARGET ${PROJECT_NAME}-static )
if( SC_ENABLE_COVERAGE AND NOT SC_COVER_SCHEMAS )
set( CMAKE_BUILD_TYPE ${PREV_BUILD_TYPE} )
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-300
View File
@@ -1,300 +0,0 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((''), '1');
FILE_NAME('MITRE ',
'1998-08-31T15:05:58+02:00',
(''),
(''),
'CATIA.STEP INTERFACE',
'CATIA SOLUTIONS V4 RELEASE 2.1 FR 4.2.1',
'');
FILE_SCHEMA(('PLANT_SPATIAL_CONFIGURATION'));
ENDSEC;
DATA;
#1=APPLICATION_CONTEXT('process plants');
#2=APPLICATION_PROTOCOL_DEFINITION('CD','plant_spatial_configuration',1995,#1);
#3=PRODUCT_CONTEXT('plant design',#1,'process plant');
#4=PRODUCT_DEFINITION_CONTEXT('physical definition',#1,'physical design');
#5=PRODUCT_DEFINITION_CONTEXT('physical occurrence',#1,'physical design');
#6=PRODUCT_DEFINITION_CONTEXT('functional definition',#1,'functional design');
#7=PRODUCT_DEFINITION_CONTEXT('functional occurrence',#1,'functional design');
#8=PRODUCT_DEFINITION_CONTEXT('catalogue definition',#1,'???? design');
#9=CARTESIAN_POINT($,(0.00000000000,0.00000000000,0.00000000000));
#10=DIMENSIONAL_EXPONENTS(0.00000000000,1.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000);
#11=(MASS_UNIT()NAMED_UNIT(#10)SI_UNIT(.KILO.,.GRAM.));
#12=DIMENSIONAL_EXPONENTS(1.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000);
#13=(LENGTH_UNIT()NAMED_UNIT(#12)SI_UNIT(.MILLI.,.METRE.));
#14=GLOBAL_UNIT_ASSIGNED_CONTEXT($,$,(#13));
#15=DESCRIPTIVE_REPRESENTATION_ITEM('flow direction','in');
#16=REPRESENTATION($,(#15),#14);
#17=DESCRIPTIVE_REPRESENTATION_ITEM('flow direction','out');
#18=REPRESENTATION($,(#17),#14);
#19=PLANT_LINE_DEFINITION('U1-P100-10"-CS150R-FG',$,$,#6,$);
#20=PLANT_LINE_SEGMENT_DEFINITION('en_dur',$,$,#6);
#21=PRODUCT_DEFINITION_RELATIONSHIP($,'',$,#19,#20);
#22=PRODUCT_DEFINITION_SHAPE($,$,#20);
#23=SHAPE_DIMENSION_REPRESENTATION($,(#25),$);
#24=SHAPE_DEFINITION_REPRESENTATION(#22,#23);
#25=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('line size'));
#26=DOCUMENT('CS150R',$,$,#28);
#27=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#26,$,(#20));
#28=DOCUMENT_TYPE('piping specification');
#29=DOCUMENT_USAGE_CONSTRAINT(#26,'service description',$);
#30=PRODUCT('',$,$,(#3));
#31=PRODUCT_DEFINITION_FORMATION($,$,#30);
#32=PIPING_COMPONENT_DEFINITION($,$,#31,#4);
#33=PRODUCT_DEFINITION_SHAPE($,$,#32);
#34=PIPING_COMPONENT_DEFINITION($,$,#31,#5);
#35=PRODUCT_DEFINITION_SHAPE($,$,#34);
#36=PRODUCT_DEFINITION_RELATIONSHIP($,'definition usage',$,#32,#34);
#37=PIPE_CLASSIFICATION('straight pipe',$);
#38=CLASSIFICATION_ASSIGNMENT(#37,(#32,#34,#88,#90));
#39=PRODUCT_RELATED_PRODUCT_CATEGORY('pipe',$,(#30,#86,#135));
#40=PRODUCT_DEFINITION_RELATIONSHIP($,'realization',$,#20,#34);
#41=PLANT_ITEM_CONNECTOR($,'end 1',#33,$);
#42=PLANT_ITEM_CONNECTOR($,'end 1',#35,$);
#43=SHAPE_ASPECT_RELATIONSHIP('usage',$,#41,#42);
#44=REPRESENTATION($,(#45,#49),$);
#45=CARTESIAN_POINT('location',(1000.00000000,0.00000000000,0.00000000000));
#46=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
#47=DIRECTION($,(0.101600309323,0.00000000000,0.00000000000));
#48=DIRECTION($,(-0.00000000000,0.00000000000,0.0508001546616));
#49=AXIS2_PLACEMENT_3D('connector orientation',#46,#47,#48);
#50=PROPERTY_DEFINITION($,$,#42);
#51=PROPERTY_DEFINITION_REPRESENTATION(#50,#44);
#52=PLANT_ITEM_CONNECTOR($,'end 2',#33,$);
#53=PLANT_ITEM_CONNECTOR($,'end 2',#35,$);
#54=SHAPE_ASPECT_RELATIONSHIP('usage',$,#52,#53);
#55=REPRESENTATION($,(#56,#60),$);
#56=CARTESIAN_POINT('location',(366.025403784,-4.80740671596E-14,0.00000000000));
#57=CARTESIAN_POINT($,(366.025403784,-4.80740671596E-14,0.00000000000));
#58=DIRECTION($,(-0.101600309323,-0.00000000000,-0.00000000000));
#59=DIRECTION($,(-0.00000000000,0.00000000000,0.0508001546616));
#60=AXIS2_PLACEMENT_3D('connector orientation',#57,#58,#59);
#61=PROPERTY_DEFINITION($,$,#53);
#62=PROPERTY_DEFINITION_REPRESENTATION(#61,#55);
#63=PROPERTY_DEFINITION($,$,#32);
#64=REPRESENTATION('piping component size',(#69),$);
#65=PROPERTY_DEFINITION_REPRESENTATION(#63,#64);
#66=PROPERTY_DEFINITION($,$,#32);
#67=SHAPE_DIMENSION_REPRESENTATION('piping component dimensions',(#70),$);
#68=PROPERTY_DEFINITION_REPRESENTATION(#66,#67);
#69=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('nominal size'));
#70=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(273.050000000),#13)REPRESENTATION_ITEM('outside diameter'));
#71=DOCUMENT($,$,$,#73);
#72=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#71,$,(#64));
#73=DOCUMENT_TYPE('dimensional standard');
#74=DOCUMENT_USAGE_CONSTRAINT(#71,'pipe schedule','STANDARD');
#75=PRODUCT_DEFINITION($,$,$,$);
#76=MATERIAL_PROPERTY($,$,#75);
#77=PRODUCT_DEFINITION_USAGE($,$,$,#32,#75);
#78=DOCUMENT_TYPE('material specification');
#79=DOCUMENT('ASTM A 53',$,$,#78);
#80=DOCUMENT_USAGE_CONSTRAINT(#79,$,'Carbon steel');
#81=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#79,$,(#75,#128,#179));
#82=DIMENSIONAL_LOCATION($,$,#42,#53);
#83=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(633.974596216),#13)REPRESENTATION_ITEM('end to end length'));
#84=SHAPE_DIMENSION_REPRESENTATION('pipe dimensional shape',(#83),#14);
#85=DIMENSIONAL_CHARACTERISTIC_REPRESENTATION(#82,#84);
#86=PRODUCT('',$,$,(#3));
#87=PRODUCT_DEFINITION_FORMATION($,$,#86);
#88=PIPING_COMPONENT_DEFINITION($,$,#87,#4);
#89=PRODUCT_DEFINITION_SHAPE($,$,#88);
#90=PIPING_COMPONENT_DEFINITION($,$,#87,#5);
#91=PRODUCT_DEFINITION_SHAPE($,$,#90);
#92=PRODUCT_DEFINITION_RELATIONSHIP($,'definition usage',$,#88,#90);
#93=PRODUCT_DEFINITION_RELATIONSHIP($,'realization',$,#20,#90);
#94=PLANT_ITEM_CONNECTOR($,'end 1',#89,$);
#95=PLANT_ITEM_CONNECTOR($,'end 1',#91,$);
#96=SHAPE_ASPECT_RELATIONSHIP('usage',$,#94,#95);
#97=REPRESENTATION($,(#98,#102),$);
#98=CARTESIAN_POINT('location',(0.00000000000,366.025403784,0.00000000000));
#99=CARTESIAN_POINT($,(0.00000000000,366.025403784,0.00000000000));
#100=DIRECTION($,(-0.00000000000,-0.101600309323,-0.00000000000));
#101=DIRECTION($,(0.0508001546616,0.00000000000,0.00000000000));
#102=AXIS2_PLACEMENT_3D('connector orientation',#99,#100,#101);
#103=PROPERTY_DEFINITION($,$,#95);
#104=PROPERTY_DEFINITION_REPRESENTATION(#103,#97);
#105=PLANT_ITEM_CONNECTOR($,'end 2',#89,$);
#106=PLANT_ITEM_CONNECTOR($,'end 2',#91,$);
#107=SHAPE_ASPECT_RELATIONSHIP('usage',$,#105,#106);
#108=REPRESENTATION($,(#109,#113),$);
#109=CARTESIAN_POINT('location',(0.00000000000,1000.00000000,0.00000000000));
#110=CARTESIAN_POINT($,(0.00000000000,1000.00000000,0.00000000000));
#111=DIRECTION($,(0.00000000000,0.101600309323,0.00000000000));
#112=DIRECTION($,(0.0508001546616,0.00000000000,0.00000000000));
#113=AXIS2_PLACEMENT_3D('connector orientation',#110,#111,#112);
#114=PROPERTY_DEFINITION($,$,#106);
#115=PROPERTY_DEFINITION_REPRESENTATION(#114,#108);
#116=PROPERTY_DEFINITION($,$,#88);
#117=REPRESENTATION('piping component size',(#122),$);
#118=PROPERTY_DEFINITION_REPRESENTATION(#116,#117);
#119=PROPERTY_DEFINITION($,$,#88);
#120=SHAPE_DIMENSION_REPRESENTATION('piping component dimensions',(#123),$);
#121=PROPERTY_DEFINITION_REPRESENTATION(#119,#120);
#122=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('nominal size'));
#123=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(273.050000000),#13)REPRESENTATION_ITEM('outside diameter'));
#124=DOCUMENT($,$,$,#126);
#125=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#124,$,(#117));
#126=DOCUMENT_TYPE('dimensional standard');
#127=DOCUMENT_USAGE_CONSTRAINT(#124,'pipe schedule','STANDARD');
#128=PRODUCT_DEFINITION($,$,$,$);
#129=MATERIAL_PROPERTY($,$,#128);
#130=PRODUCT_DEFINITION_USAGE($,$,$,#88,#128);
#131=DIMENSIONAL_LOCATION($,$,#95,#106);
#132=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(633.974596216),#13)REPRESENTATION_ITEM('end to end length'));
#133=SHAPE_DIMENSION_REPRESENTATION('pipe dimensional shape',(#132),#14);
#134=DIMENSIONAL_CHARACTERISTIC_REPRESENTATION(#131,#133);
#135=PRODUCT('',$,$,(#3));
#136=PRODUCT_DEFINITION_FORMATION($,$,#135);
#137=PIPING_COMPONENT_DEFINITION($,$,#136,#4);
#138=PRODUCT_DEFINITION_SHAPE($,$,#137);
#139=PIPING_COMPONENT_DEFINITION($,$,#136,#5);
#140=PRODUCT_DEFINITION_SHAPE($,$,#139);
#141=PRODUCT_DEFINITION_RELATIONSHIP($,'definition usage',$,#137,#139);
#142=PIPE_CLASSIFICATION('mitre bend pipe',$);
#143=CLASSIFICATION_ASSIGNMENT(#142,(#137,#139));
#144=PRODUCT_DEFINITION_RELATIONSHIP($,'realization',$,#20,#139);
#145=PLANT_ITEM_CONNECTOR($,'end 1',#138,$);
#146=PLANT_ITEM_CONNECTOR($,'end 1',#140,$);
#147=SHAPE_ASPECT_RELATIONSHIP('usage',$,#145,#146);
#148=REPRESENTATION($,(#149,#153),$);
#149=CARTESIAN_POINT('location',(366.025403784,-4.80740671596E-14,0.00000000000));
#150=CARTESIAN_POINT($,(366.025403784,-4.80740671596E-14,0.00000000000));
#151=DIRECTION($,(1.00000000000,-1.31340794006E-16,0.00000000000));
#152=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#153=AXIS2_PLACEMENT_3D('connector orientation',#150,#151,#152);
#154=PROPERTY_DEFINITION($,$,#146);
#155=PROPERTY_DEFINITION_REPRESENTATION(#154,#148);
#156=PLANT_ITEM_CONNECTOR($,'end 2',#138,$);
#157=PLANT_ITEM_CONNECTOR($,'end 2',#140,$);
#158=SHAPE_ASPECT_RELATIONSHIP('usage',$,#156,#157);
#159=REPRESENTATION($,(#160,#164),$);
#160=CARTESIAN_POINT('location',(0.00000000000,366.025403784,0.00000000000));
#161=CARTESIAN_POINT($,(0.00000000000,366.025403784,0.00000000000));
#162=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#163=DIRECTION($,(1.00000000000,0.00000000000,0.00000000000));
#164=AXIS2_PLACEMENT_3D('connector orientation',#161,#162,#163);
#165=PROPERTY_DEFINITION($,$,#157);
#166=PROPERTY_DEFINITION_REPRESENTATION(#165,#159);
#167=PROPERTY_DEFINITION($,$,#137);
#168=REPRESENTATION('piping component size',(#173),$);
#169=PROPERTY_DEFINITION_REPRESENTATION(#167,#168);
#170=PROPERTY_DEFINITION($,$,#137);
#171=SHAPE_DIMENSION_REPRESENTATION('piping component dimensions',(#174),$);
#172=PROPERTY_DEFINITION_REPRESENTATION(#170,#171);
#173=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('nominal size'));
#174=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(273.050000000),#13)REPRESENTATION_ITEM('outside diameter'));
#175=DOCUMENT($,$,$,#177);
#176=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#175,$,(#168));
#177=DOCUMENT_TYPE('dimensional standard');
#178=DOCUMENT_USAGE_CONSTRAINT(#175,'pipe schedule','STANDARD');
#179=PRODUCT_DEFINITION($,$,$,$);
#180=MATERIAL_PROPERTY($,$,#179);
#181=PRODUCT_DEFINITION_USAGE($,$,$,#137,#179);
#182=PROPERTY_DEFINITION($,$,#139);
#183=REPRESENTATION('pipe characteristics',(#185),$);
#184=PROPERTY_DEFINITION_REPRESENTATION(#182,#183);
#185=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(COUNT_MEASURE(3.00000000000),$)REPRESENTATION_ITEM('number of segments'));
#186=SHAPE_DEFINITION_REPRESENTATION(#33,#187);
#187=SHAPE_REPRESENTATION($,(#235),$);
#188=REPRESENTATION_MAP(#9,#187);
#189=SHAPE_REPRESENTATION($,(#191),#14);
#190=SHAPE_DEFINITION_REPRESENTATION(#35,#189);
#191=MAPPED_ITEM($,#188,#195);
#192=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
#193=DIRECTION($,(-1.00000000000,0.00000000000,0.00000000000));
#194=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#195=AXIS2_PLACEMENT_3D($,#192,#193,#194);
#196=SHAPE_DEFINITION_REPRESENTATION(#89,#197);
#197=SHAPE_REPRESENTATION($,(#251),$);
#198=REPRESENTATION_MAP(#9,#197);
#199=SHAPE_REPRESENTATION($,(#201),#14);
#200=SHAPE_DEFINITION_REPRESENTATION(#91,#199);
#201=MAPPED_ITEM($,#198,#205);
#202=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
#203=DIRECTION($,(-1.00000000000,0.00000000000,0.00000000000));
#204=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#205=AXIS2_PLACEMENT_3D($,#202,#203,#204);
#206=SHAPE_DEFINITION_REPRESENTATION(#138,#207);
#207=SHAPE_REPRESENTATION($,(#267,#283),$);
#208=REPRESENTATION_MAP(#9,#207);
#209=SHAPE_REPRESENTATION($,(#211),#14);
#210=SHAPE_DEFINITION_REPRESENTATION(#140,#209);
#211=MAPPED_ITEM($,#208,#215);
#212=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
#213=DIRECTION($,(-1.00000000000,0.00000000000,0.00000000000));
#214=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#215=AXIS2_PLACEMENT_3D($,#212,#213,#214);
#216=PLANT_ITEM_CONNECTION('',$,$,$,$,'',#146,#53);
#217=CONNECTION_FUNCTIONAL_CLASSIFICATION('fluid transference',$);
#218=CLASSIFICATION_ASSIGNMENT(#217,(#216,#219));
#219=PLANT_ITEM_CONNECTION('',$,$,$,$,'',#157,#95);
#220=CARTESIAN_POINT($,(7.85037143115E-31,0.00000000000,0.00000000000));
#221=DIRECTION($,(-7.58296427752E-17,0.00000000000,1.00000000000));
#222=AXIS1_PLACEMENT($,#220,#221);
#223=RIGHT_CIRCULAR_CYLINDER('',#222,670.556359712,136.525000000);
#224=CARTESIAN_POINT($,(0.00000000000,0.00000000000,0.00000000000));
#225=DIRECTION($,(-0.00000000000,0.00000000000,-1.00000000000));
#226=AXIS2_PLACEMENT_3D($,#224,#225,$);
#227=PLANE($,#226);
#228=HALF_SPACE_SOLID($,#227,$);
#229=CARTESIAN_POINT($,(-4.80740671596E-14,0.00000000000,633.974596216));
#230=DIRECTION($,(0.258819045103,0.00000000000,0.965925826289));
#231=AXIS2_PLACEMENT_3D($,#229,#230,$);
#232=PLANE($,#231);
#233=HALF_SPACE_SOLID($,#232,$);
#234=BOOLEAN_RESULT('',.DIFFERENCE.,#223,#228);
#235=BOOLEAN_RESULT('',.DIFFERENCE.,#234,#233);
#236=CARTESIAN_POINT($,(329.443640288,-0.00000000000,1000.00000000));
#237=DIRECTION($,(1.00000000000,0.00000000000,-8.75605293377E-17));
#238=AXIS1_PLACEMENT($,#236,#237);
#239=RIGHT_CIRCULAR_CYLINDER('',#238,670.556359712,136.525000000);
#240=CARTESIAN_POINT($,(366.025403784,-0.00000000000,1000.00000000));
#241=DIRECTION($,(-0.965925826289,0.00000000000,-0.258819045103));
#242=AXIS2_PLACEMENT_3D($,#240,#241,$);
#243=PLANE($,#242);
#244=HALF_SPACE_SOLID($,#243,$);
#245=CARTESIAN_POINT($,(1000.00000000,-0.00000000000,1000.00000000));
#246=DIRECTION($,(1.00000000000,-0.00000000000,0.00000000000));
#247=AXIS2_PLACEMENT_3D($,#245,#246,$);
#248=PLANE($,#247);
#249=HALF_SPACE_SOLID($,#248,$);
#250=BOOLEAN_RESULT('',.DIFFERENCE.,#239,#244);
#251=BOOLEAN_RESULT('',.DIFFERENCE.,#250,#249);
#252=CARTESIAN_POINT($,(-18.2908817483,0.00000000000,602.293859712));
#253=DIRECTION($,(0.500000000000,-0.00000000000,0.866025403784));
#254=AXIS1_PLACEMENT($,#252,#253);
#255=RIGHT_CIRCULAR_CYLINDER('',#254,341.112719424,136.525000000);
#256=CARTESIAN_POINT($,(-4.80740671596E-14,0.00000000000,633.974596216));
#257=DIRECTION($,(-0.258819045103,0.00000000000,-0.965925826289));
#258=AXIS2_PLACEMENT_3D($,#256,#257,$);
#259=PLANE($,#258);
#260=HALF_SPACE_SOLID($,#259,$);
#261=CARTESIAN_POINT($,(133.974596216,-0.00000000000,866.025403784));
#262=DIRECTION($,(0.707106781187,0.00000000000,0.707106781187));
#263=AXIS2_PLACEMENT_3D($,#261,#262,$);
#264=PLANE($,#263);
#265=HALF_SPACE_SOLID($,#264,$);
#266=BOOLEAN_RESULT('',.DIFFERENCE.,#255,#260);
#267=BOOLEAN_RESULT('',.DIFFERENCE.,#266,#265);
#268=CARTESIAN_POINT($,(102.293859712,-0.00000000000,847.734522036));
#269=DIRECTION($,(0.866025403784,-0.00000000000,0.500000000000));
#270=AXIS1_PLACEMENT($,#268,#269);
#271=RIGHT_CIRCULAR_CYLINDER('',#270,341.112719424,136.525000000);
#272=CARTESIAN_POINT($,(133.974596216,-0.00000000000,866.025403784));
#273=DIRECTION($,(-0.707106781187,0.00000000000,-0.707106781187));
#274=AXIS2_PLACEMENT_3D($,#272,#273,$);
#275=PLANE($,#274);
#276=HALF_SPACE_SOLID($,#275,$);
#277=CARTESIAN_POINT($,(366.025403784,-0.00000000000,1000.00000000));
#278=DIRECTION($,(0.965925826289,0.00000000000,0.258819045103));
#279=AXIS2_PLACEMENT_3D($,#277,#278,$);
#280=PLANE($,#279);
#281=HALF_SPACE_SOLID($,#280,$);
#282=BOOLEAN_RESULT('',.DIFFERENCE.,#271,#276);
#283=BOOLEAN_RESULT('',.DIFFERENCE.,#282,#281);
ENDSEC;
END-ISO-10303-21;
-299
View File
@@ -1,299 +0,0 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((''), '1');
FILE_NAME('MITRE ',
'1998-08-31T15:05:58+02:00',
(''),
(''),
'CATIA.STEP INTERFACE',
'CATIA SOLUTIONS V4 RELEASE 2.1 FR 4.2.1',
'');
FILE_SCHEMA(('PLANT_SPATIAL_CONFIGURATION'));
ENDSEC;
DATA;
#1=APPLICATION_CONTEXT('process plants');
#2=APPLICATION_PROTOCOL_DEFINITION('CD','plant_spatial_configuration',1995,#1);
#3=PRODUCT_CONTEXT('plant design',#1,'process plant');
#4=PRODUCT_DEFINITION_CONTEXT('physical definition',#1,'physical design');
#5=PRODUCT_DEFINITION_CONTEXT('physical occurrence',#1,'physical design');
#6=PRODUCT_DEFINITION_CONTEXT('functional definition',#1,'functional design');
#7=PRODUCT_DEFINITION_CONTEXT('functional occurrence',#1,'functional design');
#8=PRODUCT_DEFINITION_CONTEXT('catalogue definition',#1,'???? design');
#9=CARTESIAN_POINT($,(0.00000000000,0.00000000000,0.00000000000));
#10=DIMENSIONAL_EXPONENTS(0.00000000000,1.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000);
#11=(MASS_UNIT()NAMED_UNIT(#10)SI_UNIT(.KILO.,.GRAM.));
#12=DIMENSIONAL_EXPONENTS(1.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000);
#13=(LENGTH_UNIT()NAMED_UNIT(#12)SI_UNIT(.MILLI.,.METRE.));
#14=GLOBAL_UNIT_ASSIGNED_CONTEXT($,$,(#13));
#15=DESCRIPTIVE_REPRESENTATION_ITEM('flow direction','in');
#16=REPRESENTATION($,(#15),#14);
#17=DESCRIPTIVE_REPRESENTATION_ITEM('flow direction','out');
#18=REPRESENTATION($,(#17),#14);
#19=PLANT_LINE_DEFINITION('U1-P100-10"-CS150R-FG',$,$,#6,$);
#20=PLANT_LINE_SEGMENT_DEFINITION('en_dur',$,$,#6);
#21=PRODUCT_DEFINITION_RELATIONSHIP($,'',$,#19,#20);
#22=PRODUCT_DEFINITION_SHAPE($,$,#20);
#23=SHAPE_DIMENSION_REPRESENTATION($,(#25),$);
#24=SHAPE_DEFINITION_REPRESENTATION(#22,#23);
#25=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('line size'));
#26=DOCUMENT('CS150R',$,$,#28);
#27=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#26,$,(#20));
#28=DOCUMENT_TYPE('piping specification');
#29=DOCUMENT_USAGE_CONSTRAINT(#26,'service description',$);
#30=PRODUCT('',$,$,(#3));
#31=PRODUCT_DEFINITION_FORMATION($,$,#30);
#32=PIPING_COMPONENT_DEFINITION($,$,#31,#4);
#33=PRODUCT_DEFINITION_SHAPE($,$,#32);
#34=PIPING_COMPONENT_DEFINITION($,$,#31,#5);
#35=PRODUCT_DEFINITION_SHAPE($,$,#34);
#36=PRODUCT_DEFINITION_RELATIONSHIP($,'definition usage',$,#32,#34);
#37=PIPE_CLASSIFICATION('straight pipe',$);
#38=CLASSIFICATION_ASSIGNMENT(#37,(#32,#34,#88,#90));
#39=PRODUCT_RELATED_PRODUCT_CATEGORY('pipe',$,(#30,#86,#135));
#40=PRODUCT_DEFINITION_RELATIONSHIP($,'realization',$,#20,#34);
#41=PLANT_ITEM_CONNECTOR($,'end 1',#33,$);
#42=PLANT_ITEM_CONNECTOR($,'end 1',#35,$);
#43=SHAPE_ASPECT_RELATIONSHIP('usage',$,#41,#42);
#44=REPRESENTATION($,(#45,#49),$);
#45=CARTESIAN_POINT('location',(1000.00000000,0.00000000000,0.00000000000));
#46=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
#47=DIRECTION($,(0.101600309323,0.00000000000,0.00000000000));
#48=DIRECTION($,(-0.00000000000,0.00000000000,0.0508001546616));
#49=AXIS2_PLACEMENT_3D('connector orientation',#46,#47,#48);
#50=PROPERTY_DEFINITION($,$,#42);
#51=PROPERTY_DEFINITION_REPRESENTATION(#50,#44);
#52=PLANT_ITEM_CONNECTOR($,'end 2',#33,$);
#53=PLANT_ITEM_CONNECTOR($,'end 2',#35,$);
#54=SHAPE_ASPECT_RELATIONSHIP('usage',$,#52,#53);
#55=REPRESENTATION($,(#56,#60),$);
#56=CARTESIAN_POINT('location',(366.025403784,-4.80740671596E-14,0.00000000000));
#57=CARTESIAN_POINT($,(366.025403784,-4.80740671596E-14,0.00000000000));
#58=DIRECTION($,(-0.101600309323,-0.00000000000,-0.00000000000));
#59=DIRECTION($,(-0.00000000000,0.00000000000,0.0508001546616));
#60=AXIS2_PLACEMENT_3D('connector orientation',#57,#58,#59);
#61=PROPERTY_DEFINITION($,$,#53);
#62=PROPERTY_DEFINITION_REPRESENTATION(#61,#55);
#63=PROPERTY_DEFINITION($,$,#32);
#64=REPRESENTATION('piping component size',(#69),$);
#65=PROPERTY_DEFINITION_REPRESENTATION(#63,#64);
#66=PROPERTY_DEFINITION($,$,#32);
#67=SHAPE_DIMENSION_REPRESENTATION('piping component dimensions',(#70),$);
#68=PROPERTY_DEFINITION_REPRESENTATION(#66,#67);
#69=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('nominal size'));
#70=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(273.050000000),#13)REPRESENTATION_ITEM('outside diameter'));
#71=DOCUMENT($,$,$,#73);
#72=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#71,$,(#64));
#73=DOCUMENT_TYPE('dimensional standard');
#74=DOCUMENT_USAGE_CONSTRAINT(#71,'pipe schedule','STANDARD');
#75=PRODUCT_DEFINITION($,$,$,$);
#76=MATERIAL_PROPERTY($,$,#75);
#77=PRODUCT_DEFINITION_USAGE($,$,$,#32,#75);
#78=DOCUMENT_TYPE('material specification');
#79=DOCUMENT('ASTM A 53',$,$,#78);
#80=DOCUMENT_USAGE_CONSTRAINT(#79,$,'Carbon steel');
#81=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#79,$,(#75,#128,#179));
#82=DIMENSIONAL_LOCATION($,$,#42,#53);
#83=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(633.974596216),#13)REPRESENTATION_ITEM('end to end length'));
#84=SHAPE_DIMENSION_REPRESENTATION('pipe dimensional shape',(#83),#14);
#85=DIMENSIONAL_CHARACTERISTIC_REPRESENTATION(#82,#84);
#86=PRODUCT('',$,$,(#3));
#87=PRODUCT_DEFINITION_FORMATION($,$,#86);
#88=PIPING_COMPONENT_DEFINITION($,$,#87,#4);
#89=PRODUCT_DEFINITION_SHAPE($,$,#88);
#90=PIPING_COMPONENT_DEFINITION($,$,#87,#5);
#91=PRODUCT_DEFINITION_SHAPE($,$,#90);
#92=PRODUCT_DEFINITION_RELATIONSHIP($,'definition usage',$,#88,#90);
#93=PRODUCT_DEFINITION_RELATIONSHIP($,'realization',$,#20,#90);
#94=PLANT_ITEM_CONNECTOR($,'end 1',#89,$);
#95=PLANT_ITEM_CONNECTOR($,'end 1',#91,$);
#96=SHAPE_ASPECT_RELATIONSHIP('usage',$,#94,#95);
#97=REPRESENTATION($,(#98,#102),$);
#98=CARTESIAN_POINT('location',(0.00000000000,366.025403784,0.00000000000));
#99=CARTESIAN_POINT($,(0.00000000000,366.025403784,0.00000000000));
#100=DIRECTION($,(-0.00000000000,-0.101600309323,-0.00000000000));
#101=DIRECTION($,(0.0508001546616,0.00000000000,0.00000000000));
#102=AXIS2_PLACEMENT_3D('connector orientation',#99,#100,#101);
#103=PROPERTY_DEFINITION($,$,#95);
#104=PROPERTY_DEFINITION_REPRESENTATION(#103,#97);
#105=PLANT_ITEM_CONNECTOR($,'end 2',#89,$);
#106=PLANT_ITEM_CONNECTOR($,'end 2',#91,$);
#107=SHAPE_ASPECT_RELATIONSHIP('usage',$,#105,#106);
#108=REPRESENTATION($,(#109,#113),$);
#109=CARTESIAN_POINT('location',(0.00000000000,1000.00000000,0.00000000000));
#110=CARTESIAN_POINT($,(0.00000000000,1000.00000000,0.00000000000));
#111=DIRECTION($,(0.00000000000,0.101600309323,0.00000000000));
#112=DIRECTION($,(0.0508001546616,0.00000000000,0.00000000000));
#113=AXIS2_PLACEMENT_3D('connector orientation',#110,#111,#112);
#114=PROPERTY_DEFINITION($,$,#106);
#115=PROPERTY_DEFINITION_REPRESENTATION(#114,#108);
#116=PROPERTY_DEFINITION($,$,#88);
#117=REPRESENTATION('piping component size',(#122),$);
#118=PROPERTY_DEFINITION_REPRESENTATION(#116,#117);
#119=PROPERTY_DEFINITION($,$,#88);
#120=SHAPE_DIMENSION_REPRESENTATION('piping component dimensions',(#123),$);
#121=PROPERTY_DEFINITION_REPRESENTATION(#119,#120);
#122=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('nominal size'));
#123=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(273.050000000),#13)REPRESENTATION_ITEM('outside diameter'));
#124=DOCUMENT($,$,$,#126);
#125=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#124,$,(#117));
#126=DOCUMENT_TYPE('dimensional standard');
#127=DOCUMENT_USAGE_CONSTRAINT(#124,'pipe schedule','STANDARD');
#128=PRODUCT_DEFINITION($,$,$,$);
#129=MATERIAL_PROPERTY($,$,#128);
#130=PRODUCT_DEFINITION_USAGE($,$,$,#88,#128);
#131=DIMENSIONAL_LOCATION($,$,#95,#106);
#132=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(633.974596216),#13)REPRESENTATION_ITEM('end to end length'));
#133=SHAPE_DIMENSION_REPRESENTATION('pipe dimensional shape',(#132),#14);
#134=DIMENSIONAL_CHARACTERISTIC_REPRESENTATION(#131,#133);
#135=PRODUCT('',$,$,(#3));
#136=PRODUCT_DEFINITION_FORMATION($,$,#135);
#137=PIPING_COMPONENT_DEFINITION($,$,#136,#4);
#138=PRODUCT_DEFINITION_SHAPE($,$,#137);
#139=PIPING_COMPONENT_DEFINITION($,$,#136,#5);
#140=PRODUCT_DEFINITION_SHAPE($,$,#139);
#141=PRODUCT_DEFINITION_RELATIONSHIP($,'definition usage',$,#137,#139);
#142=PIPE_CLASSIFICATION('mitre bend pipe',$);
#143=CLASSIFICATION_ASSIGNMENT(#142,(#137,#139));
#144=PRODUCT_DEFINITION_RELATIONSHIP($,'realization',$,#20,#139);
#145=PLANT_ITEM_CONNECTOR($,'end 1',#138,$);
#146=PLANT_ITEM_CONNECTOR($,'end 1',#140,$);
#147=SHAPE_ASPECT_RELATIONSHIP('usage',$,#145,#146);
#148=REPRESENTATION($,(#149,#153),$);
#149=CARTESIAN_POINT('location',(366.025403784,-4.80740671596E-14,0.00000000000));
#150=CARTESIAN_POINT($,(366.025403784,-4.80740671596E-14,0.00000000000));
#151=DIRECTION($,(1.00000000000,-1.31340794006E-16,0.00000000000));
#152=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#153=AXIS2_PLACEMENT_3D('connector orientation',#150,#151,#152);
#154=PROPERTY_DEFINITION($,$,#146);
#155=PROPERTY_DEFINITION_REPRESENTATION(#154,#148);
#156=PLANT_ITEM_CONNECTOR($,'end 2',#138,$);
#157=PLANT_ITEM_CONNECTOR($,'end 2',#140,$);
#158=SHAPE_ASPECT_RELATIONSHIP('usage',$,#156,#157);
#159=REPRESENTATION($,(#160,#164),$);
#160=CARTESIAN_POINT('location',(0.00000000000,366.025403784,0.00000000000));
#161=CARTESIAN_POINT($,(0.00000000000,366.025403784,0.00000000000));
#162=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#163=DIRECTION($,(1.00000000000,0.00000000000,0.00000000000));
#164=AXIS2_PLACEMENT_3D('connector orientation',#161,#162,#163);
#165=PROPERTY_DEFINITION($,$,#157);
#166=PROPERTY_DEFINITION_REPRESENTATION(#165,#159);
#167=PROPERTY_DEFINITION($,$,#137);
#168=REPRESENTATION('piping component size',(#173),$);
#169=PROPERTY_DEFINITION_REPRESENTATION(#167,#168);
#170=PROPERTY_DEFINITION($,$,#137);
#171=SHAPE_DIMENSION_REPRESENTATION('piping component dimensions',(#174),$);
#172=PROPERTY_DEFINITION_REPRESENTATION(#170,#171);
#173=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('nominal size'));
#174=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(273.050000000),#13)REPRESENTATION_ITEM('outside diameter'));
#175=DOCUMENT($,$,$,#177);
#176=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#175,$,(#168));
#177=DOCUMENT_TYPE('dimensional standard');
#178=DOCUMENT_USAGE_CONSTRAINT(#175,'pipe schedule','STANDARD');
#179=PRODUCT_DEFINITION($,$,$,$);
#180=MATERIAL_PROPERTY($,$,#179);
#181=PRODUCT_DEFINITION_USAGE($,$,$,#137,#179);
#182=PROPERTY_DEFINITION($,$,#139);
#183=REPRESENTATION('pipe characteristics',(#185),$);
#184=PROPERTY_DEFINITION_REPRESENTATION(#182,#183);
#185=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(COUNT_MEASURE(3.00000000000),$)REPRESENTATION_ITEM('number of segments'));
#186=SHAPE_DEFINITION_REPRESENTATION(#33,#187);
#187=SHAPE_REPRESENTATION($,(#235),$);
#188=REPRESENTATION_MAP(#9,#187);
#189=SHAPE_REPRESENTATION($,(#191),#14);
#190=SHAPE_DEFINITION_REPRESENTATION(#35,#189);
#191=MAPPED_ITEM($,#188,#195);
#192=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
#193=DIRECTION($,(-1.00000000000,0.00000000000,0.00000000000));
#194=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#195=AXIS2_PLACEMENT_3D($,#192,#193,#194);
#196=SHAPE_DEFINITION_REPRESENTATION(#89,#197);
#197=SHAPE_REPRESENTATION($,(#251),$);
#198=REPRESENTATION_MAP(#9,#197);
#199=SHAPE_REPRESENTATION($,(#201),#14);
#200=SHAPE_DEFINITION_REPRESENTATION(#91,#199);
#201=MAPPED_ITEM($,#198,#205);
#202=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
#203=DIRECTION($,(-1.00000000000,0.00000000000,0.00000000000));
#204=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#205=AXIS2_PLACEMENT_3D($,#202,#203,#204);
#206=SHAPE_DEFINITION_REPRESENTATION(#138,#207);
#207=SHAPE_REPRESENTATION($,(#267,#283),$);
#208=REPRESENTATION_MAP(#9,#207);
#209=SHAPE_REPRESENTATION($,(#211),#14);
#210=SHAPE_DEFINITION_REPRESENTATION(#140,#209);
#211=MAPPED_ITEM($,#208,#215);
#212=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
#213=DIRECTION($,(-1.00000000000,0.00000000000,0.00000000000));
#214=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#215=AXIS2_PLACEMENT_3D($,#212,#213,#214);
#216=PLANT_ITEM_CONNECTION('',$,$,$,$,'',#146,#53);
#217=CONNECTION_FUNCTIONAL_CLASSIFICATION('fluid transference',$);
#218=CLASSIFICATION_ASSIGNMENT(#217,(#216,#219));
#219=PLANT_ITEM_CONNECTION('',$,$,$,$,'',#157,#95);
#220=CARTESIAN_POINT($,(7.85037143115E-31,0.00000000000,0.00000000000));
#221=DIRECTION($,(-7.58296427752E-17,0.00000000000,1.00000000000));
#222=AXIS1_PLACEMENT($,#220,#221);
#223=RIGHT_CIRCULAR_CYLINDER('',#222,670.556359712,136.525000000);
#224=CARTESIAN_POINT($,(0.00000000000,0.00000000000,0.00000000000));
#225=DIRECTION($,(-0.00000000000,0.00000000000,-1.00000000000));
#226=AXIS2_PLACEMENT_3D($,#224,#225,$);
#227=PLANE($,#226);
#228=HALF_SPACE_SOLID($,#227,$);
#229=CARTESIAN_POINT($,(-4.80740671596E-14,0.00000000000,633.974596216));
#230=DIRECTION($,(0.258819045103,0.00000000000,0.965925826289));
#231=AXIS2_PLACEMENT_3D($,#229,#230,$);
#232=PLANE($,#231);
#233=HALF_SPACE_SOLID($,#232,$);
#234=BOOLEAN_RESULT('',.DIFFERENCE.,#223,#228);
#235=BOOLEAN_RESULT('',.DIFFERENCE.,#234,#233);
#236=CARTESIAN_POINT($,(329.443640288,-0.00000000000,1000.00000000));
#237=DIRECTION($,(1.00000000000,0.00000000000,-8.75605293377E-17));
#238=AXIS1_PLACEMENT($,#236,#237);
#239=RIGHT_CIRCULAR_CYLINDER('',#238,670.556359712,136.525000000);
#240=CARTESIAN_POINT($,(366.025403784,-0.00000000000,1000.00000000));
#241=DIRECTION($,(-0.965925826289,0.00000000000,-0.258819045103));
#242=AXIS2_PLACEMENT_3D($,#240,#241,$);
#243=PLANE($,#242);
#244=HALF_SPACE_SOLID($,#243,$);
#245=CARTESIAN_POINT($,(1000.00000000,-0.00000000000,1000.00000000));
#246=DIRECTION($,(1.00000000000,-0.00000000000,0.00000000000));
#247=AXIS2_PLACEMENT_3D($,#245,#246,$);
#248=PLANE($,#247);
#249=HALF_SPACE_SOLID($,#248,$);
#250=BOOLEAN_RESULT('',.DIFFERENCE.,#239,#244);
#251=BOOLEAN_RESULT('',.DIFFERENCE.,#250,#249);
#252=CARTESIAN_POINT($,(-18.2908817483,0.00000000000,602.293859712));
#253=DIRECTION($,(0.500000000000,-0.00000000000,0.866025403784));
#254=AXIS1_PLACEMENT($,#252,#253);
#255=RIGHT_CIRCULAR_CYLINDER('',#254,341.112719424,136.525000000);
#256=CARTESIAN_POINT($,(-4.80740671596E-14,0.00000000000,633.974596216));
#257=DIRECTION($,(-0.258819045103,0.00000000000,-0.965925826289));
#258=AXIS2_PLACEMENT_3D($,#256,#257,$);
#259=PLANE($,#258);
#260=HALF_SPACE_SOLID($,#259,$);
#261=CARTESIAN_POINT($,(133.974596216,-0.00000000000,866.025403784));
#262=DIRECTION($,(0.707106781187,0.00000000000,0.707106781187));
#263=AXIS2_PLACEMENT_3D($,#261,#262,$);
#264=PLANE($,#263);
#265=HALF_SPACE_SOLID($,#264,$);
#266=BOOLEAN_RESULT('',.DIFFERENCE.,#255,#260);
#267=BOOLEAN_RESULT('',.DIFFERENCE.,#266,#265);
#268=CARTESIAN_POINT($,(102.293859712,-0.00000000000,847.734522036));
#269=DIRECTION($,(0.866025403784,-0.00000000000,0.500000000000));
#270=AXIS1_PLACEMENT($,#268,#269);
#271=RIGHT_CIRCULAR_CYLINDER('',#270,341.112719424,136.525000000);
#272=CARTESIAN_POINT($,(133.974596216,-0.00000000000,866.025403784));
#273=DIRECTION($,(-0.707106781187,0.00000000000,-0.707106781187));
#274=AXIS2_PLACEMENT_3D($,#272,#273,$);
#275=PLANE($,#274);
#276=HALF_SPACE_SOLID($,#275,$);
#277=CARTESIAN_POINT($,(366.025403784,-0.00000000000,1000.00000000));
#278=DIRECTION($,(0.965925826289,0.00000000000,0.258819045103));
#279=AXIS2_PLACEMENT_3D($,#277,#278,$);
#280=PLANE($,#279);
#281=HALF_SPACE_SOLID($,#280,$);
#282=BOOLEAN_RESULT('',.DIFFERENCE.,#271,#276);
#283=BOOLEAN_RESULT('',.DIFFERENCE.,#282,#281);
ENDSEC;
END-ISO-10303-21;
+1 -3
View File
@@ -1,8 +1,6 @@
SET(sc_MANS
man/man1/dataprobe.1
man/man1/fedex.1
man/man1/fedex_plus.1
man/man1/mkProbe.1
man/man1/exp2cxx.1
)
if(NOT DEFINED MAN_DIR)
+2 -2
View File
@@ -132,7 +132,7 @@
<input>./src/clutils</input>
<input>./src/exppp</input>
<input>./src/express</input>
<input>./src/fedex_plus</input>
<input>./src/exp2cxx</input>
<input>./src/test</input>-->
<!-- A list of files/paths to exclude. Add one <exclude> tag per path to
exclude. This will automatically be expanded to exclude input directories
@@ -240,7 +240,7 @@
<project>
<name>Fedex Plus</name>
<version> </version>
<input>./src/fedex_plus</input>
<input>./src/exp2cxx</input>
</project>
<project>
<name>Tests</name>
-680
View File
@@ -1,680 +0,0 @@
.\" This manual was prepared by United States Government employees as a
.\" part of their official duties and is, therefore, a work of the U.S.
.\" Government and not subject to copyright.
.\"
.\" $Id: dataprobe.1,v 2.1.0.2 1997/10/27 18:37:10 dar Exp $
.TH DATAPROBE 1 "12 June 1995"
.SH NAME
Data Probe - STEP editing tool
.SH SYNOPSIS
.B dp_{schema_name}
[
.B -saveFile
.I file-name
]
[
.B -saveFreq
.I integer
]
[
.B -workFile
.I file-name
]
[
.B -exchangeFile
.I file-name
]
[
.B -restrict
]
.SH DESCRIPTION
.LP
The Validation Testing System (VTS) Data Probe software is a program
for browsing and editing data corresponding to a conceptual model
described using the language Express. A separate program (fedex_plus)
reads in a schema and generates source code to represent the schema in
C++. This code is linked with the libraries in the STEP Class Library
to create a schema specific editor. The editor is X Windows based and
uses the InterViews Toolkit from Stanford.
.SH OPTIONS
.TP
.B \-s \fIfilename\fP, \fB-saveFile \fIfilename\fP
Designates an alternate backup file. The default file is dpAutoSave.wf.
.TP
.B \-sf \fIseconds\fP, \fB-saveFreq \fIseconds\fP
Specifies the frequency with which a backup file will be saved. The default frequency is 30 seconds.
.TP
.B \-wf \fIfilename\fP, \fB-workFile \fIfilename\fP
Specifies a working file to be loaded into the Data Probe.
.TP
.B \-ef \fIfilename\fP, \fB-exchangeFile \fIfilename\fP
Specifies a STEP exchange file to be loaded into the Data Probe.
.TP
.B \-r, \fB-restrict \fP
Restricts the file chooser menu to files not beginning with a '.'.
.SH USAGE
.LP
The Data Probe supports the editing of data in the format specified in
Part 21 of the ISO 10103. It allows the user to create or modify
instance data, to check for consistency with an Express schema and to
examine the relationships of entities within the schema. These
functions are supported in one or more of the following five types of
Data Probe windows:
.nf
Data Probe Window: supports general Data Probe func-
tionalities, including file management, schema list
browsing, and quitting Data Probe.
Entity Type List window: contains a scrollable list
of schema-specific entities for browsing or creating
instances of entities.
Entity Instance List window: contains a scrollable
list of instances of entities. Supports data view-
ing and modification.
STEP Entity Editor window: occurs for each instance
being edited. Supports several data editing opera-
tions including modify, delete and save.
STEP Entity Descriptor window: contains information
pertaining to an entity type including the list of
attributes and subtypes for the selected entity.
Each of these windows is described in detail below.
.fi
.LP
.I
DATA PROBE WINDOW
.nf
The Data Probe window is one of three windows appearing
initially when the Data Probe is run. It is composed of
the following four sections:
1. title
2. menu bar
3. quick reference
4. message bar
Each of these sections is described in detail below:
.I
Data Probe Window title section:
.fi
.LP
The title section shows the name of the schema for which the Data
Probe was created preceeded by the prefix 'DP-'.
.nf
.I
Data Probe Window menu bar section:
The menu bar consists of two pull-down menus labeled
Quit and File Management.
The Quit pull-down menu allows the user to exit Data
Probe. No warnings will be given before exiting.
The File Management pull-down menu allows the user to
perform operations on the following file types:
Exchange Files Data saved to these files must be in
complete STEP file format and must be
provided for all required attributes
in order to be used by application
programs that will rely on this data.
Working Files These files will not be used by appli-
cation programs and serve the purpose
of storing intermediate data for saving
the editing session.
Backup File This file is written regularly during
a Data Probe session to contain the
current Entity Instance List data. The
backup file is written in Working File
form. The default backup file is
dpAutoSave.wf and is written to the
directory where the command to run Data
Probe was issued unless instructed
otherwise by the user (See 'Backup File'
in table below and OPTIONS above).
The File Management pull-down menu supports file manage-
ment and other options as follows:
Options
Available
.I
with Options Description
Exchange File/ read replaces previous contents of
Working File Entity Instance List data
with the data in the file
selected.
write writes Entity Instance List
data to the file selected and
erases the previous contents
of the file, if any.
append writes Entity Instance List
from data to the file selected.
Backup File choose selects an alternate backup
file to which Entity Instance
List data will be periodic-
ally written.
write writes Entity Instance List
data to current backup file
selected.
Entity verify verifies that the instances
Instance List found in the Entity Instance
List are complete according
to the schema specification.
remove removes all instances in the
Entity Instance List which
are marked for deletion.
clear clears all instances found
in the Entity Instance List
regardless of their current
edit state (see the ENTITY
INSTANCE LIST section).
.I
Data Probe Window quick reference section:
This section shows the key bindings and button codes
available in the Step Entity Editor windows to perform the
following operations:
- close existing window
- open a new window
- get value from list
.I
Data Probe Window message bar section:
This section shows any resulting messages from actions
taken in any of the windows. The Clear button on left
enables the user to clear the current message shown.
.fi
.LP
.I
ENTITY TYPE LIST WINDOW
The Entity Type List is the second of the three windows appearing initially when the Data Probe is run. The Entity Type List displays the list of schema-specific entity types. In addition to the operations outlined in 'Using Lists' below, the Entity Type List allows the user to create an instance as follows:
.nf
.I
Creating an Instance
1. Select an entity type from the type list.
2. Select Create
- use Create button or
- type 'C'.
3. A STEP Entity Editor window appears for editing
the entity selected (See the STEP Entity Editor
Window section below).
.fi
.I
ENTITY INSTANCE LIST WINDOW
The Entity Instance List is the third of three windows initially appearing when the Data Probe is run. When an entity is selected from the Entity Type List or when instances are read in from a file, the instanced entities will appear on the Entity Instance List. In addition to the operations outlined in 'Using Lists' below, the Entity Instance List allows the user to view, modify, and save instances of entities.
.nf
.I
Edit State Markers:
.fi
.LP
The selection of any of the preceeding options is represented by an edit state code. An instance can be marked with an edit state option by typing the key which correlates to that option. The marked option is shown in lower case on the left of the selected instance. When the execute button is pressed, all marked options will be executed, reflected by an upper case letter edit state code which replaces the lower case marker to the left of the intance.
Below is a description of Entity List edit state codes and the keys that are used to select them:
KEY OPERATION EDIT STATE
s save complete (no capital letter) -- All (blank)
attribute values associated with the
instance must be valid and all required
attributes must exist.
i save incomplete -- All attribute values I
associated with the instance must be
valid, however all required attributes
may not exist. This allows attribute
values to be saved even though the entity
is incomplete. It also provides a way
for a user to mark an instance as needing
further attention even if all required
attributes exist.
d delete -- the entities in this edit D
state will be deleted when the contents
of the instance list are written to a
file.
m modify -- open an editor window for M
modifying instances.
v view -- open an editor window for view- V
ing only.
.I
STEP ENTITY EDITOR (SEE) WINDOW
The edit state options described above can also be executed from the STEP Entity Editor Window (SEE). The SEE Window is opened whenever the modify or view option is executed from the Entity Instance List or when an entity is created from the Entity Type List. The following are the operations supported in the SEE window:
.nf
.I
Changing the Edit State of an Entity
save instance to a complete state C-x C-s
save instance to an incomplete state C-x C-i
cancel changes to the entity; reverts C-x C-c
all attribute values to the last
saved (complete or incomplete) values
mark instance for deletion C-x C-d
Each of the above options can also be selected by
clicking the corresponding button in the SEE win-
dow.
.I
Selecting an Attribute
Using mouse:
Point the mouse cursor inside the attribute
editing box desired and click the left mouse
button.
Using key bindings:
select next attribute C-n
select previous attribute C-p
.I
Editing an Attribute
Using mouse:
Point the mouse cursor inside the desired editing
box and click the left mouse button to place the
cursor at the desired postion inside the editing
box.
Using key bindings:
move cursor forward C-f
move cursor backward C-b
move cursor to the end C-e
move cursor to the beginning C-a
move cursor one word forward <esc>-f
move cursor one word backward <esc>-b
Delete and undo:
deleting a portion of the attribute
1. Point the mouse cursor inside the desired attri-
bute editing box, click and hold the left mouse
button.
2. Drag the mouse to the left or right to highlight
desired text.
3. Press <delete> or input a value to replace selec-
ted text.
delete a character in place C-d
delete the previous character <delete> or
C-h
select the remainder of the word
following the cursor to be deleted C-w
select everything following the C-k
cursor to be deleted
select the entire text to be deleted C-u
undo attribute (revert attribute to C-x C-u
the last saved value)
Scrolling:
horizontal grab scroll - use left mouse button
1. Point the mouse inside the attribute list.
2. Press and hold the middle mouse button.
3. Slide the mouse left or right to scroll
the window in the same direction.
horizontal rate scroll - use right mouse button
1. Point the mouse inside the attribute list.
2. Press and hold the right mouse button.
3. Slide the mouse left or right to scroll
the window in the same direction.
The following editing actions are permissable on attributes
that are of type entity only:
edit entity - press the edit button (marked e) or type
C-x C-e
If the attribute contains an entity id, the
identified entity will be put on the screen
in a STEP Entity Editor window.
If the attribute is empty, a new entity of
the type corresponding to the attribute type
will be created and displayed on the screen
in a STEP Entity Editor window. The entity
id corresponding to the newly created entity
will be filled in for the attribute.
select marked entity - press the select mark button
(marked m) or type C-x C-m:
The entity id of the selected entity from the
Entity Instance List will be filed in for the
current atttribute.
.fi
.LP
.I
STEP ENTITY DESCRIPTOR WINDOW (SED)
The SED window enables the user to review information regarding an entity type. It may be opened by selecting the Type Information box in the Entity Type List or SEE window (See the Entity Type List and STEP Entity Editor window sections above). A SED window may also be opened from within a SED window as is described below.
.nf
Format of a SED window:
1. Entity Descriptor Boxes
The body of a SED window is composed of entity descrip-
tor boxes. These boxes are shown in order of inheri-
tance starting with the selected entity type at the bot-
tom of the window up to the root entity type shown at the
top of the window. Each entity descriptor box contains a
title bar, an attribute list and a subtype list described
below.
title bar - contains the name of the entity
in bold print at the left corner and the schema
in which the entity is defined at the right corner.
attribute list - a scrollable list of attributes
defined in the corresponding entity shown on the
left side of the descriptor box.
subtype list - a scrollable list of the subtypes
of the corresponding entity shown on the right side
of the descriptor box.
2. Attr. Type subwindow
The Attr. Type subwindow shown at the bottom of the SED
window displays further information regarding a selected
attrtibute.
Using a SED window:
1. Scrolling the attribute/subtype list
a. Place mouse pointer on up/down arrow.
b. Press right mouse button.
2. Viewing a detailed description of an attribute:
a. Place mouse pointer on desired
attribute.
b. Double click mouse button. A detailed description
of the attribute type will be displayed in the
Attr. Type subwindow located at the bottom of the
SED window.
3. Opening a SED window from the current SED window:
a. Place mouse cursor on the desired entity from
an entity subytpe list.
b. Double click the mouse button. A new SED window
will appear for the entity type selected.
3. Collapsing/Uncollapsing a descriptor box
Collapse - show title bar only
Uncollapse - show attribute and subtype lists
a. Place mouse cursor on collapse button of desired
descriptor box.
b. Click left mouse button. This will cause the
descriptor box to switch from uncollapsed to
collapsed or vice-versa depending on the current
state of the descriptor box.
Exiting a SED window:
1. Place mouse pointer on close button on left
top corner of window
2. Press left mouse button
Warning: Do not use the standard close and quit
options provided for windows. This may
cause you to inadvertantly quit the Data
Probe session. Use the close button pro-
vided.
.fi
.LP
.I
USING LISTS
The following instructions are applicable to both the Entity Instance List and the Entity Type List.
.nf
.I
Selecting an Entry
Using mouse:
Positon the mouse on the entry and click the left
mouse button.
Using keystroke commands:
search formward, selects the entry containing C-s
the substring specified in the search window
reverse search, selects the entry containing C-r
the substring specified in the search window
select next entry C-n
select previous entry C-p
select top entry <
select bottom entry >
deselect selected entry C-h
<delete>
.I
Reviewing Information Regarding an Entity Type
Allows the user to view information regarding attributes
and subtypes and supertypes of an entity type using a
STEP ENTITY DESCRIPTOR (SED) window:
Opening a SED window:
1. Select an entity type from list.
2. Select Type Information by placing the
mouse pointer on the Type Information
box and pressing the left mouse button.
For information on the use of the SED window, see the
STEP Entity Editor window section above.
.I
Scrolling Lists
Using mouse:
1. Position the mouse pointer to the scroll bar and
click.
2. Click (and optionally hold) the up mover or down
mover located above and below the scroll bar
respectively to scroll bar.
vertical grab scroll -- use middle mouse button
1. Point the mouse cursor inside the list.
2. Press and hold the right mouse button.
3. Slide the mouse up or down to move the display
up or down as desired.
vertical rate scroll -- use right mouse button
1. Point the mouse cusor inside the list.
2. Press and hold the right mouse button.
3. Slide the mouse up or down to scroll the list in
the desired direction at a rate increasing as the
mouse is moved away from its original position.
Using key bindings:
scroll list to beginning C-a
scroll list to end C-e
scroll up C-b
C-k
scroll down C-f
C-j
page down C-v
' '
half page down C-d
half page up C-u
.fi
.I
USING BUTTONS TO SELECT OPTIONS
Many of the Data Probe options can be selected by using keystroke commands as described. Some options, however may be selected by using the selection buttons which correspond to those options as follows:
.nf
1. Activate pull-down menu (if applicable):
- Place mouse pointer on menu button
- Press right mouse button and hold
2. Select an option
- Place mouse pointer on selection button correspond-
ing to the desired option
- Press left mouse button to activate option
.fi
.SH SEE ALSO
mkProbe(1)
.LP
ISO 10303-11:1994
.I
\Industrial automation systems and integration - Product data \
representation and exchange - Part 11: Description Methods: The \
EXPRESS Language Reference Manual.
.LP
ISO 10303-21:1994
.I
\Industrial automation systems and integration - Product data \
representation and exchange - Part 21: Implementation methods: \
Clear text encoding of the exchange structure.
.LP
Morris, K.C., Sauderd, D., Ressler, S.,
.I
\Validation Testing System: Reusable Software Component Design,
NISTIR 4937, National Institute of Standards and Technology, October
1992.
.LP
Sauder, D.,
.I
\Data Probe Users Guide,
NISTIR 5141, National Institute of Standards and Technology, March
1993.
.SH NOTE
.LP
The source code for the Data Probe was designed with reusability in
mind. The code uses the STEP Class Library (developed at NIST) and
the InterViews Toolkit (from Stanford). The STEP Class Library is
divided into four libraries: Stepcore & Editor, Utilities, General
User Interface, and Probe. Dependencies between these modules has
been minimized so that the executable program, the Data Probe, can be
easily reconfigured to support different conceptual schemas.
All NISTIR documents may be obtained through the National Technical
Information Service (NTIS), Springfield VA 22161, USA. Postscript
files may be obtained through anonymous ftp from ftp.cme.nist.gov (see
pub/step/nptdocs/readme.txt to determine the appropriate file to
download).
@@ -2,12 +2,12 @@
.\" part of their official duties and is, therefore, a work of the U.S.
.\" Government and not subject to copyright.
.\"
.\" $Id: fedex_plus.1,v 2.1.0.2 1998/02/27 23:54:30 sauderd Exp $
.\" $Id: exp2cxx.1,v 2.1.0.2 1998/02/27 23:54:30 sauderd Exp $
.TH FEDEX_PLUS 1 "19 November 1997"
.SH NAME
fedex_plus - EXPRESS compiler and translater
exp2cxx - EXPRESS compiler and translater
.SH SYNOPSIS
fedex_plus [ options ] [ express-file ]
exp2cxx [ options ] [ express-file ]
.nf
Command Arguments:
@@ -19,36 +19,36 @@ Command Arguments:
.fi
.SH DESCRIPTION
.LP
fedex_plus is based on the NIST EXPRESS compiler fedex. fedex_plus
exp2cxx is based on the NIST EXPRESS compiler fedex. exp2cxx
translates an EXPRESS file into C++ code and a class library. The C++
library includes classes for representing all the types and entities
in the input EXPRESS file, and a dictionary for describing those
classes. The translation depends on base classes provided in the NIST
STEP Class Library.
fedex_plus does not create C++ representations of the rules,
exp2cxx does not create C++ representations of the rules,
procedures, or any EXPRESS constructs other than schemas, types and
entities. It supports multiple schemas contained in a single file and
complex entities. It generates code which can be integrated with
orbix and ObjectStore.
Combined with the NIST STEP Class Library, the translator provides a
"C++ working form" of an EXPRESS schema. fedex_plus was designed for
"C++ working form" of an EXPRESS schema. exp2cxx was designed for
use together with a graphical data editing system (see dataprobe(1)),
but care has been taken to keep fedex_plus separate so that it can be
but care has been taken to keep exp2cxx separate so that it can be
used as a component of other software systems.
The fedex_plus compiler makes two passes through the EXPRESS file. In
the first pass fedex_plus reads the syntax of the EXPRESS file and
detects any errors. In the second pass fedex_plus converts the
The exp2cxx compiler makes two passes through the EXPRESS file. In
the first pass exp2cxx reads the syntax of the EXPRESS file and
detects any errors. In the second pass exp2cxx converts the
EXPRESS code into C++ source code. The C++ source code is generated
in files in the directory in which fedex_plus was run. The files are
in files in the directory in which exp2cxx was run. The files are
named according to the schema names in the input EXPRESS file.
.SH OPTIONS
.TP
.B -s|S
Tells fedex_plus to use only single-inheritance, rather than multiple
Tells exp2cxx to use only single-inheritance, rather than multiple
inheritance.
.TP
.B -c|C
@@ -94,7 +94,7 @@ If no arguments are given in the command line, a list and description
of the options available are sent to stdout.
.SH OUTPUT
fedex_plus sends the following to stdout subject to the options
exp2cxx sends the following to stdout subject to the options
specified when executed:
- a statement indicating that the Express schema is being
-195
View File
@@ -1,195 +0,0 @@
.\" This manual was prepared by United States Government employees as a
.\" part of their official duties and is, therefore, a work of the U.S.
.\" Government and not subject to copyright.
.\ "
.\" $Id: mkProbe.1,v 2.1.0.3 1997/10/23 17:03:36 kcm Exp $
.TH MKPROBE 1 "23 October 1997"
.SH NAME
mkProbe - script file used to generate a Data Probe or Part 21 file
reader executable for an EXPRESS schema.
.SH SYNOPSIS
.B mkProbe
[
.B -ilsSpP
]
[
.B -R
.I pdes-root
]
[
.B -E
.I express-path
]
.I express-file schema-name
.SH DESCRIPTION
.LP
mkProbe enables you to create a C++ library based on an EXPRESS file
and an executable Data Probe or Part 21 file reader application. The
Data Probe allows you to examine, input, and modify a data file
corresponding to an EXPRESS schema. The Data Probe generated is
specific to the express-file given as the first argument in the
mkProbe command. The Part 21 file reader simply reads and writes a
Part 21 file and outputs any errors encountered in the file.
.LP
The schema-name argument designates a location in which to place the
executable. The directory selected (see OPTIONS below) is searched
for the schema name provided. If schema-name does not exist, a
directory will be created using the name provided. schema-name is
also used as a suffix for the name of the executable.
.LP
A new directory is created under the directory from which the script
was run. fedex_plus is called from this directory to generate the C++
classes to represent the schema information (a.k.a. the Schema Class
Library.)
The new directory contains the following:
.nf
.ft B
1) the source code for the C++ classes generated by fedex_plus using
the first argument,
2) the object files generated from the source code above,
3) the library created from the object files above,
4) your new Data Probe executable (or p21read if the -p option was
used.)
i.e. under the directory from which the
script was run you will find the
following executable:
{schema-name}/dp_{schema-name}
(or {schema-name}/p21read_{schema-name})
.fi
.ft R
.SH OPTIONS
.TP
.B -i
Indicates that the new Data Probe should be installed into the PDES
root directory. If -i is not specified the new Data Probe will be
created in the directory from which the mkProbe script is run.
.TP
.B -l
Tells the script to only generate the library for the schema, and
not to create the Data Probe application.
.TP
.B -p
.PD 0
.TP
.B -P
Tells the script to generate the Part 21 file reader for the schema,
rather than the Data Probe application.
.TP
.B -s
.PD 0
.TP
.B -S
Tells fedex_plus to use only single-inheritance, rather than multiple
inheritance.
.PD
.TP
.BI -R " pdes_root"
Set the PDES root directory. This is the directory that mkProbe will
consider the root of the source tree.
The PDES root directory can also be defined by the environment
variable PDES_ROOT. This variable should be set using the appropriate
shell command. For example, C shell users would give the command
.nf
.ft B
setenv PDES_ROOT ~pdes
.fi
.ft R
If the
.B -r
option is not given, and the PDES_ROOT environment variable is not
set, mkProbe looks for the directory /proj/pdevel to use as the root.
.TP
.BI -E " express-path"
Specifies an EXPRESS_PATH environment variable to be used when
fedex_plus is executed in mkProbe. If this option is not set, mkProbe
will use the current EXPRESS_PATH environment variable. For more
information, see the documentation on the
.I NIST EXPRESS Toolkit.
.TP
.I express-file
The Express file used to create the schema specific Data Probe.
.TP
.I schema-name
A schema name which is used for naming a new directory and the Data
Probe executable.
.SH EXAMPLES
.nf
.ft B
Input command line location and name
----------------------------------------------------
mkProbe part41.exp pt41 ./pt41/dp_pt41
mkProbe -p part41.exp pt41 ./pt41/p21read_pt41
mkProbe -i part41.exp pt41 $PDES_ROOT/arch/Probes/pt41/dp_pt41
.ft R
.SH OUTPUT
If errors are detected, the output generated shows the following:
- Errors in input
- Compilation errors
If no errors are encountered, the output generated shows
the following:
- The name of the new Data Probe generated
- Instructions for running Data Probe
.SH SEE ALSO
fedex_plus(1)
.LP
http://scl.nist.gov
.LP
ISO 10303-11:1994
.I
\Industrial Automation Systems and Integration - Product Data \
Representation and Exchange - Part 11: Description Methods: The \
EXPRESS Language Reference Manual.
.LP
Morris, K.C., Sauderd, D., Ressler, S.,
.I
\Validation Testing System: Reusable Software Component Design,
NISTIR 4937, National Institute of Standards and Technology, October
1992.
.LP
Sauder, D.,
.I
\Data Probe Users Guide,
NISTIR 5141, National Institute of Standards and Technology, March
1993.
.SH NOTE
.LP
All NISTIR documents may be obtained through the National Technical
Information Service (NTIS), Springfield VA 22161, USA or through the
web. See http://scl.nist.gov for a listing of related
documentation.
+91
View File
@@ -0,0 +1,91 @@
#
# CMakeLists.txt for AP203 Minimum
#
# This file is released to the public domain. Any part of this file may be
# freely copied in part or in full for any purpose. No acknowledgment is required
# for the use of this file.
#
PROJECT( AP203Minimum )
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
# Set STEPCODE_ROOT_DIR to point to the root of the STEPcode source tree.
if( NOT DEFINED STEPCODE_ROOT_DIR )
message( FATAL_ERROR "STEPCODE_ROOT_DIR is not defined! Set via cmake-gui or on command line:\n cmake .. -DSTEPCODE_ROOT_DIR=/path/to/sc" )
endif( NOT DEFINED STEPCODE_ROOT_DIR )
# STEPCODE_ROOT_DIR is relative or absolute path?
if( EXISTS "${CMAKE_BINARY_DIR}/${STEPCODE_ROOT_DIR}/SC_VERSION.txt" )
set( STEPCODE_ROOT_DIR "${CMAKE_BINARY_DIR}/${STEPCODE_ROOT_DIR}" )
message( "** STEPCODE_ROOT_DIR is a relative path; converted to absolute path: ${STEPCODE_ROOT_DIR}." )
else()
if( NOT EXISTS "${STEPCODE_ROOT_DIR}/SC_VERSION.txt" )
message( FATAL_ERROR "**** Cannot locate STEPCODE_ROOT_DIR - try an absolute path." )
endif( NOT EXISTS "${STEPCODE_ROOT_DIR}/SC_VERSION.txt" )
endif( EXISTS "${CMAKE_BINARY_DIR}/${STEPCODE_ROOT_DIR}/SC_VERSION.txt" )
# Use STEPcode as library, but build from this build process.
set( SC_IS_SUBBUILD TRUE )
# Build type, DEBUG or RELEASE
if( NOT DEFINED CMAKE_BUILD_TYPE )
set( CMAKE_BUILD_TYPE Debug )
endif( NOT DEFINED CMAKE_BUILD_TYPE )
set( SC_BUILD_TYPE ${CMAKE_BUILD_TYPE} )
# Path to STEPcode
set( STEPCODE_BUILD_DIR ${CMAKE_BINARY_DIR}/sc CACHE PATH "STEPcode build subdir" )
# STEP schema to build and link against.
set( SCHEMA ap203 )
set( SC_BUILD_SCHEMAS ${SCHEMA} CACHE INTERNAL "Schema, internal, immutable" FORCE )
# Parse out schema name and library.
set( SCHEMA_PATH "${STEPCODE_ROOT_DIR}/data/${SCHEMA}/*.exp" )
file( GLOB SCHEMA_FILE "${SCHEMA_PATH}" )
if( NOT EXISTS ${SCHEMA_FILE} )
message( FATAL_ERROR "Cannot find the schema; cannot continue. Looked for ${SCHEMA_PATH} from ${CMAKE_CURRENT_LIST_DIR}" )
endif( NOT EXISTS ${SCHEMA_FILE} )
get_filename_component( SCHEMA_SN ${SCHEMA_FILE} NAME )
string( REGEX REPLACE "\(.*\).[Ee][Xx][Pp]" "\\1" SCHEMA_LINK_NAME ${SCHEMA_SN} )
set( STEPCODE_LIBRARIES base stepcore stepeditor stepdai steputils sdai_${SCHEMA_LINK_NAME} )
# Add STEPCode project to CMake build.
add_subdirectory( ${STEPCODE_ROOT_DIR} "${CMAKE_CURRENT_BINARY_DIR}/sc" EXCLUDE_FROM_ALL )
# Set up STEPcode include directories.
set( STEPCODE_INCLUDE_DIR
${STEPCODE_ROOT_DIR}/src/base
${STEPCODE_ROOT_DIR}/src/clstepcore
${STEPCODE_ROOT_DIR}/src/cldai
${STEPCODE_ROOT_DIR}/src/clutils
${STEPCODE_ROOT_DIR}/src/cleditor
${STEPCODE_BUILD_DIR}/include
${STEPCODE_ROOT_DIR}/include
${CMAKE_BINARY_DIR}
)
# Reset sane values for build destination. Otherwise, everything ends up in ${CMAKE_BINARY_DIR}/sc
set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib )
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
include_directories(
${STEPCODE_INCLUDE_DIR}
)
# Application sources and headers
set( SRCS
ap203min.cpp
)
set( HDRS
)
add_executable( ${PROJECT_NAME} ${SRCS} ${HDRS} )
target_link_libraries( ${PROJECT_NAME} ${STEPCODE_LIBRARIES} )
set_target_properties( ${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "-I${STEPCODE_BUILD_DIR}/data/${SCHEMA_LINK_NAME}" )
+723
View File
@@ -0,0 +1,723 @@
//*****************************************************************************
// AP203 Minimum
//
// This program is intended to serve as a tutorial example for programmers
// interested in learning about ISO 10303 (STEP), the STEPcode project, and
// the AP203 portion of STEP.
//
// This program creates and connects the minimum set of entities required
// to form a valid AP203 STEP file. Inspiration for this program came from
// Appendix B of 'Recommended Practices for AP 203' released to the public
// domain in 1998 by PDES Inc. The recommended practices document is
// available online at:
//
// http://www.steptools.com/support/stdev_docs/express/ap203/recprac203v8.pdf
//
// The recommended practices document states:
//
// "This document has been developed by the PDES, Inc. Industry
// consortium to aid in accelerating the implementation of the
// STEP standard. It has not been copyrighted to allow for the
// free exchange of the information. PDES, Inc. Requests that
// anyone using this information provide acknowledgment that
// PDES, Inc. was the original author."
//
// In the same spirit, this program is released to the public domain. Any
// part of this program may be freely copied in part or in full for any
// purpose. No acknowledgment is required for the use of this code.
//
// This program was written by Rob McDonald in October 2013. Since that
// time, it has been maintained by the STEPcode project.
//
//****************************************************************************/
// This program uses CMake to build Makefiles or other project files. It
// includes a CMakeLists.txt program that also builds STEPcode as a sub-build.
// To compile, you must tell CMake where your STEPcode source tree is located
// by setting STEPCODE_ROOT_DIR. To compile:
//
// $ pwd
// .../stepcode/example/ap203min
// $ mkdir build
// $ cd build
// $ cmake .. -DSTEPCODE_ROOT_DIR=../../..
// $ make
// $ cd bin
// $ ls
// AP203Minimum
// $./AP203Minimum
// AP203Minimum outfile.stp
extern void
SchemaInit( class Registry & );
#include <STEPfile.h>
#include <sdai.h>
#include <STEPattribute.h>
#include <ExpDict.h>
#include <Registry.h>
#include <errordesc.h>
#include <STEPcomplex.h>
#include <SdaiHeaderSchema.h>
#include "schema.h"
#include <SdaiCONFIG_CONTROL_DESIGN.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
enum LenEnum { MM, CM, M, IN, FT, YD };
enum AngEnum { RAD, DEG };
STEPcomplex * Geometric_Context( Registry * registry, InstMgr * instance_list, const LenEnum & len, const AngEnum & angle, const char * tolstr ) {
int instance_cnt = 0;
STEPattribute * attr;
STEPcomplex * stepcomplex;
SdaiDimensional_exponents * dimensional_exp = new SdaiDimensional_exponents();
dimensional_exp->length_exponent_( 0.0 );
dimensional_exp->mass_exponent_( 0.0 );
dimensional_exp->time_exponent_( 0.0 );
dimensional_exp->electric_current_exponent_( 0.0 );
dimensional_exp->thermodynamic_temperature_exponent_( 0.0 );
dimensional_exp->amount_of_substance_exponent_( 0.0 );
dimensional_exp->luminous_intensity_exponent_( 0.0 );
instance_list->Append( ( SDAI_Application_instance * ) dimensional_exp, completeSE );
instance_cnt++;
STEPcomplex * ua_length;
// First set up metric units if appropriate. Default to mm.
// If imperial units, set up mm to be used as base to define imperial units.
Si_prefix pfx = Si_prefix__milli;
switch( len ) {
case CM:
pfx = Si_prefix__centi;
break;
case M:
pfx = Si_prefix_unset;
break;
}
const char * ua_length_types[4] = { "length_unit", "named_unit", "si_unit", "*" };
ua_length = new STEPcomplex( registry, ( const char ** ) ua_length_types, instance_cnt );
stepcomplex = ua_length->head;
while( stepcomplex ) {
if( !strcmp( stepcomplex->EntityName(), "Si_Unit" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "prefix" ) ) {
attr->Enum( new SdaiSi_prefix_var( pfx ) );
}
if( !strcmp( attr->Name(), "name" ) ) {
attr->Enum( new SdaiSi_unit_name_var( Si_unit_name__metre ) );
}
}
}
stepcomplex = stepcomplex->sc;
}
instance_list->Append( ( SDAI_Application_instance * ) ua_length, completeSE );
instance_cnt++;
// If imperial, create conversion based unit.
if( len >= IN ) {
STEPcomplex * len_mm = ua_length;
char lenname[10];
double lenconv;
switch( len ) {
case IN:
strcat( lenname, "'INCH'\0" );
lenconv = 25.4;
break;
case FT:
strcat( lenname, "'FOOT'\0" );
lenconv = 25.4 * 12.0;
break;
case YD:
strcat( lenname, "'YARD'\0" );
lenconv = 25.4 * 36.0;
break;
}
SdaiUnit * len_unit = new SdaiUnit( ( SdaiNamed_unit * ) len_mm );
SdaiMeasure_value * len_measure_value = new SdaiMeasure_value( lenconv, config_control_design::t_measure_value );
len_measure_value->SetUnderlyingType( config_control_design::t_length_measure );
SdaiLength_measure_with_unit * len_measure_with_unit = new SdaiLength_measure_with_unit();
len_measure_with_unit->value_component_( len_measure_value );
len_measure_with_unit->unit_component_( len_unit );
instance_list->Append( ( SDAI_Application_instance * ) len_measure_with_unit, completeSE );
instance_cnt++;
SdaiDimensional_exponents * dimensional_exp_len = new SdaiDimensional_exponents();
dimensional_exp_len->length_exponent_( 1.0 );
dimensional_exp_len->mass_exponent_( 0.0 );
dimensional_exp_len->time_exponent_( 0.0 );
dimensional_exp_len->electric_current_exponent_( 0.0 );
dimensional_exp_len->thermodynamic_temperature_exponent_( 0.0 );
dimensional_exp_len->amount_of_substance_exponent_( 0.0 );
dimensional_exp_len->luminous_intensity_exponent_( 0.0 );
instance_list->Append( ( SDAI_Application_instance * ) dimensional_exp_len, completeSE );
instance_cnt++;
const char * ua_conv_len_types[4] = { "conversion_based_unit", "named_unit", "length_unit", "*" };
ua_length = new STEPcomplex( registry, ( const char ** ) ua_conv_len_types, instance_cnt );
stepcomplex = ua_length->head;
while( stepcomplex ) {
if( !strcmp( stepcomplex->EntityName(), "Conversion_Based_Unit" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "name" ) ) {
attr->StrToVal( lenname );
}
if( !strcmp( attr->Name(), "conversion_factor" ) ) {
attr->Entity( ( STEPentity * )( len_measure_with_unit ) );
}
}
}
if( !strcmp( stepcomplex->EntityName(), "Named_Unit" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "dimensions" ) ) {
attr->Entity( ( STEPentity * )( dimensional_exp_len ) );
}
}
}
stepcomplex = stepcomplex->sc;
}
instance_list->Append( ( SDAI_Application_instance * ) ua_length, completeSE );
instance_cnt++;
}
SdaiUncertainty_measure_with_unit * uncertainty = ( SdaiUncertainty_measure_with_unit * )registry->ObjCreate( "UNCERTAINTY_MEASURE_WITH_UNIT" );
uncertainty->name_( "'DISTANCE_ACCURACY_VALUE'" );
uncertainty->description_( "'Threshold below which geometry imperfections (such as overlaps) are not considered errors.'" );
SdaiUnit * tol_unit = new SdaiUnit( ( SdaiNamed_unit * ) ua_length );
uncertainty->ResetAttributes();
{
while( ( attr = uncertainty->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "unit_component" ) ) {
attr->Select( tol_unit );
}
if( !strcmp( attr->Name(), "value_component" ) ) {
attr->StrToVal( tolstr );
}
}
}
instance_list->Append( ( SDAI_Application_instance * ) uncertainty, completeSE );
instance_cnt++;
// First set up radians as base angle unit.
const char * ua_plane_angle_types[4] = { "named_unit", "plane_angle_unit", "si_unit", "*" };
STEPcomplex * ua_plane_angle = new STEPcomplex( registry, ( const char ** ) ua_plane_angle_types, instance_cnt );
stepcomplex = ua_plane_angle->head;
while( stepcomplex ) {
if( !strcmp( stepcomplex->EntityName(), "Si_Unit" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "name" ) ) {
attr->Enum( new SdaiSi_unit_name_var( Si_unit_name__radian ) );
}
}
}
stepcomplex = stepcomplex->sc;
}
instance_list->Append( ( SDAI_Application_instance * ) ua_plane_angle, completeSE );
instance_cnt++;
// If degrees, create conversion based unit.
if( angle == DEG ) {
STEPcomplex * ang_rad = ua_plane_angle;
const double angconv = ( 3.14159265358979323846264338327950 / 180.0 );
SdaiUnit * p_ang_unit = new SdaiUnit( ( SdaiNamed_unit * ) ang_rad );
SdaiMeasure_value * p_ang_measure_value = new SdaiMeasure_value( angconv, config_control_design::t_measure_value );
p_ang_measure_value->SetUnderlyingType( config_control_design::t_plane_angle_measure );
SdaiPlane_angle_measure_with_unit * p_ang_measure_with_unit = new SdaiPlane_angle_measure_with_unit();
p_ang_measure_with_unit->value_component_( p_ang_measure_value );
p_ang_measure_with_unit->unit_component_( p_ang_unit );
instance_list->Append( ( SDAI_Application_instance * ) p_ang_measure_with_unit, completeSE );
instance_cnt++;
const char * ua_conv_angle_types[4] = { "conversion_based_unit", "named_unit", "plane_angle_unit", "*" };
ua_plane_angle = new STEPcomplex( registry, ( const char ** ) ua_conv_angle_types, instance_cnt );
stepcomplex = ua_plane_angle->head;
while( stepcomplex ) {
if( !strcmp( stepcomplex->EntityName(), "Conversion_Based_Unit" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "name" ) ) {
attr->StrToVal( "'DEGREES'" );
}
if( !strcmp( attr->Name(), "conversion_factor" ) ) {
attr->Entity( ( STEPentity * )( p_ang_measure_with_unit ) );
}
}
}
if( !strcmp( stepcomplex->EntityName(), "Named_Unit" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "dimensions" ) ) {
attr->Entity( ( STEPentity * )( dimensional_exp ) );
}
}
}
stepcomplex = stepcomplex->sc;
}
instance_list->Append( ( SDAI_Application_instance * ) ua_plane_angle, completeSE );
instance_cnt++;
}
const char * ua_solid_angle_types[4] = { "named_unit", "si_unit", "solid_angle_unit", "*" };
STEPcomplex * ua_solid_angle = new STEPcomplex( registry, ( const char ** ) ua_solid_angle_types, instance_cnt );
stepcomplex = ua_solid_angle->head;
while( stepcomplex ) {
if( !strcmp( stepcomplex->EntityName(), "Si_Unit" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "name" ) ) {
attr->Enum( new SdaiSi_unit_name_var( Si_unit_name__steradian ) );
}
}
}
stepcomplex = stepcomplex->sc;
}
instance_list->Append( ( SDAI_Application_instance * ) ua_solid_angle, completeSE );
instance_cnt++;
// All units set up, stored in: ua_length, ua_plane_angle, ua_solid_angle
const char * entNmArr[5] = { "geometric_representation_context", "global_uncertainty_assigned_context", "global_unit_assigned_context", "representation_context", "*" };
STEPcomplex * complex_entity = new STEPcomplex( registry, ( const char ** ) entNmArr, instance_cnt );
stepcomplex = complex_entity->head;
while( stepcomplex ) {
if( !strcmp( stepcomplex->EntityName(), "Geometric_Representation_Context" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "coordinate_space_dimension" ) ) {
attr->StrToVal( "3" );
}
}
}
if( !strcmp( stepcomplex->EntityName(), "Global_Uncertainty_Assigned_Context" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "uncertainty" ) ) {
EntityAggregate * unc_agg = new EntityAggregate();
unc_agg->AddNode( new EntityNode( ( SDAI_Application_instance * ) uncertainty ) );
attr->Aggregate( unc_agg );
}
}
}
if( !strcmp( stepcomplex->EntityName(), "Global_Unit_Assigned_Context" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
std::string attrval;
if( !strcmp( attr->Name(), "units" ) ) {
EntityAggregate * unit_assigned_agg = new EntityAggregate();
unit_assigned_agg->AddNode( new EntityNode( ( SDAI_Application_instance * ) ua_length ) );
unit_assigned_agg->AddNode( new EntityNode( ( SDAI_Application_instance * ) ua_plane_angle ) );
unit_assigned_agg->AddNode( new EntityNode( ( SDAI_Application_instance * ) ua_solid_angle ) );
attr->Aggregate( unit_assigned_agg );
}
}
}
if( !strcmp( stepcomplex->EntityName(), "Representation_Context" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "context_identifier" ) ) {
attr->StrToVal( "'STANDARD'" );
}
if( !strcmp( attr->Name(), "context_type" ) ) {
attr->StrToVal( "'3D'" );
}
}
}
stepcomplex = stepcomplex->sc;
}
instance_list->Append( ( SDAI_Application_instance * ) complex_entity, completeSE );
instance_cnt++;
return complex_entity;
}
SdaiCartesian_point * MakePoint( Registry * registry, InstMgr * instance_list, const double & x, const double & y, const double & z ) {
SdaiCartesian_point * pnt = ( SdaiCartesian_point * ) registry->ObjCreate( "CARTESIAN_POINT" );
pnt->name_( "''" );
RealAggregate * coords = pnt->coordinates_();
RealNode * xnode = new RealNode();
xnode->value = x;
coords->AddNode( xnode );
RealNode * ynode = new RealNode();
ynode->value = y;
coords->AddNode( ynode );
RealNode * znode = new RealNode();
znode->value = z;
coords->AddNode( znode );
instance_list->Append( ( SDAI_Application_instance * ) pnt, completeSE );
return pnt;
}
SdaiDirection * MakeDirection( Registry * registry, InstMgr * instance_list, const double & x, const double & y, const double & z ) {
SdaiDirection * dir = ( SdaiDirection * ) registry->ObjCreate( "DIRECTION" );
dir->name_( "''" );
RealAggregate * components = dir->direction_ratios_();
RealNode * xnode = new RealNode();
xnode->value = x;
components->AddNode( xnode );
RealNode * ynode = new RealNode();
ynode->value = y;
components->AddNode( ynode );
RealNode * znode = new RealNode();
znode->value = z;
components->AddNode( znode );
instance_list->Append( ( SDAI_Application_instance * ) dir, completeSE );
return dir;
}
SdaiAxis2_placement_3d * DefaultAxis( Registry * registry, InstMgr * instance_list ) {
SdaiCartesian_point * pnt = MakePoint( registry, instance_list, 0.0, 0.0, 0.0 );
SdaiDirection * axis = MakeDirection( registry, instance_list, 0.0, 0.0, 1.0 );
SdaiDirection * refd = MakeDirection( registry, instance_list, 1.0, 0.0, 0.0 );
SdaiAxis2_placement_3d * placement = ( SdaiAxis2_placement_3d * ) registry->ObjCreate( "AXIS2_PLACEMENT_3D" );
placement->name_( "''" );
placement->location_( pnt );
placement->axis_( axis );
placement->ref_direction_( refd );
instance_list->Append( ( SDAI_Application_instance * ) placement, completeSE );
return placement;
}
SdaiDate_and_time * DateTime( Registry * registry, InstMgr * instance_list ) {
SdaiCalendar_date * caldate = ( SdaiCalendar_date * ) registry->ObjCreate( "CALENDAR_DATE" );
instance_list->Append( ( SDAI_Application_instance * ) caldate, completeSE );
caldate->year_component_( 2000 );
caldate->month_component_( 1 );
caldate->day_component_( 1 );
SdaiCoordinated_universal_time_offset * tzone = ( SdaiCoordinated_universal_time_offset * ) registry->ObjCreate( "COORDINATED_UNIVERSAL_TIME_OFFSET" );
instance_list->Append( ( SDAI_Application_instance * ) tzone, completeSE );
tzone->hour_offset_( 0 );
tzone->minute_offset_( 0 );
tzone->sense_( Ahead_or_behind__behind );
SdaiLocal_time * loctime = ( SdaiLocal_time * ) registry->ObjCreate( "LOCAL_TIME" );
instance_list->Append( ( SDAI_Application_instance * ) loctime, completeSE );
loctime->hour_component_( 12 );
loctime->minute_component_( 0 );
loctime->second_component_( 0 );
loctime->zone_( tzone );
SdaiDate_and_time * date_time = ( SdaiDate_and_time * ) registry->ObjCreate( "DATE_AND_TIME" );
instance_list->Append( ( SDAI_Application_instance * )date_time, completeSE );
date_time->date_component_( caldate );
date_time->time_component_( loctime );
return date_time;
}
SdaiSecurity_classification * Classification( Registry * registry, InstMgr * instance_list, SdaiPerson_and_organization * per_org, SdaiDate_and_time * date_time, SdaiProduct_definition_formation_with_specified_source * prod_def_form ) {
SdaiSecurity_classification_level * level = ( SdaiSecurity_classification_level * ) registry->ObjCreate( "SECURITY_CLASSIFICATION_LEVEL" );
instance_list->Append( ( SDAI_Application_instance * ) level, completeSE );
level->name_( "'unclassified'" );
SdaiSecurity_classification * clas = ( SdaiSecurity_classification * ) registry->ObjCreate( "SECURITY_CLASSIFICATION" );
instance_list->Append( ( SDAI_Application_instance * ) clas, completeSE );
clas->name_( "''" );
clas->purpose_( "''" );
clas->security_level_( level );
SdaiCc_design_security_classification * des_class = ( SdaiCc_design_security_classification * ) registry->ObjCreate( "CC_DESIGN_SECURITY_CLASSIFICATION" );
instance_list->Append( ( SDAI_Application_instance * ) des_class, completeSE );
des_class->assigned_security_classification_( clas );
des_class->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def_form ) );
SdaiPerson_and_organization_role * class_role = ( SdaiPerson_and_organization_role * ) registry->ObjCreate( "PERSON_AND_ORGANIZATION_ROLE" );
instance_list->Append( ( SDAI_Application_instance * ) class_role, completeSE );
class_role->name_( "'classification_officer'" );
SdaiCc_design_person_and_organization_assignment * class_personorg = ( SdaiCc_design_person_and_organization_assignment * ) registry->ObjCreate( "CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT" );
instance_list->Append( ( SDAI_Application_instance * ) class_personorg, completeSE );
class_personorg->assigned_person_and_organization_( per_org );
class_personorg->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) clas ) );
class_personorg->role_( class_role );
SdaiDate_time_role * class_datetime = ( SdaiDate_time_role * ) registry->ObjCreate( "DATE_TIME_ROLE" );
instance_list->Append( ( SDAI_Application_instance * ) class_datetime, completeSE );
class_datetime->name_( "'classification_date'" );
SdaiCc_design_date_and_time_assignment * assign = ( SdaiCc_design_date_and_time_assignment * ) registry->ObjCreate( "CC_DESIGN_DATE_AND_TIME_ASSIGNMENT" );
instance_list->Append( ( SDAI_Application_instance * ) assign, completeSE );
assign->assigned_date_and_time_( date_time );
assign->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) clas ) );
assign->role_( class_datetime );
return clas;
}
int main( void ) {
// The registry contains information about types present in the current schema; SchemaInit is a function in the schema-specific SDAI library
Registry * registry = new Registry( SchemaInit );
// The InstMgr holds instances that have been created or that have been loaded from a file
InstMgr * instance_list = new InstMgr();
// Increment FileId so entities start at #1 instead of #0.
instance_list->NextFileId();
// STEPfile takes care of reading and writing Part 21 files
STEPfile * sfile = new STEPfile( *registry, *instance_list, "", false );
registry->ResetSchemas();
registry->ResetEntities();
// Build file header
InstMgr * header_instances = sfile->HeaderInstances();
SdaiFile_name * fn = ( SdaiFile_name * ) sfile->HeaderDefaultFileName();
header_instances->Append( ( SDAI_Application_instance * ) fn, completeSE );
fn->name_( "'outfile.stp'" );
fn->time_stamp_( "''" );
fn->author_()->AddNode( new StringNode( "''" ) );
fn->organization_()->AddNode( new StringNode( "''" ) );
fn->preprocessor_version_( "''" );
fn->originating_system_( "''" );
fn->authorization_( "''" );
SdaiFile_description * fd = ( SdaiFile_description * ) sfile->HeaderDefaultFileDescription();
header_instances->Append( ( SDAI_Application_instance * ) fd, completeSE );
fd->description_()->AddNode( new StringNode( "''" ) );
fd->implementation_level_( "'1'" );
SdaiFile_schema * fs = ( SdaiFile_schema * ) sfile->HeaderDefaultFileSchema();
header_instances->Append( ( SDAI_Application_instance * ) fs, completeSE );
fs->schema_identifiers_()->AddNode( new StringNode( "'CONFIG_CONTROL_DESIGN'" ) );
// Build file data. The entities have been created and added in order such that no entity
// references a later entity. This is not required, but has been done to give a logical
// flow to the source and the resulting STEP file.
// Stand-in date and time.
SdaiDate_and_time * date_time = DateTime( registry, instance_list );
// Global units and tolerance.
STEPcomplex * context = Geometric_Context( registry, instance_list, MM, DEG, "0.0001" );
// Primary coordinate system.
SdaiAxis2_placement_3d * orig_transform = DefaultAxis( registry, instance_list );
// Basic context through product and shape representation
SdaiApplication_context * app_context = ( SdaiApplication_context * ) registry->ObjCreate( "APPLICATION_CONTEXT" );
instance_list->Append( ( SDAI_Application_instance * ) app_context, completeSE );
app_context->application_( "'configuration controlled 3d designs of mechanical parts and assemblies'" );
SdaiMechanical_context * mech_context = ( SdaiMechanical_context * ) registry->ObjCreate( "MECHANICAL_CONTEXT" );
instance_list->Append( ( SDAI_Application_instance * ) mech_context, completeSE );
mech_context->name_( "''" );
mech_context->discipline_type_( "'mechanical'" );
mech_context->frame_of_reference_( app_context );
SdaiApplication_protocol_definition * app_protocol = ( SdaiApplication_protocol_definition * ) registry->ObjCreate( "APPLICATION_PROTOCOL_DEFINITION" );
instance_list->Append( ( SDAI_Application_instance * ) app_protocol, completeSE );
app_protocol->status_( "'international standard'" );
app_protocol->application_protocol_year_( 1994 );
app_protocol->application_interpreted_model_schema_name_( "'config_control_design'" );
app_protocol->application_( app_context );
SdaiDesign_context * design_context = ( SdaiDesign_context * ) registry->ObjCreate( "DESIGN_CONTEXT" );
instance_list->Append( ( SDAI_Application_instance * ) design_context, completeSE );
design_context->name_( "''" );
design_context->life_cycle_stage_( "'design'" );
design_context->frame_of_reference_( app_context );
SdaiProduct * prod = ( SdaiProduct * ) registry->ObjCreate( "PRODUCT" );
instance_list->Append( ( SDAI_Application_instance * ) prod, completeSE );
prod->id_( "''" );
prod->name_( "'prodname'" );
prod->description_( "''" );
prod->frame_of_reference_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) mech_context ) );
SdaiProduct_related_product_category * prodcat = ( SdaiProduct_related_product_category * ) registry->ObjCreate( "PRODUCT_RELATED_PRODUCT_CATEGORY" );
instance_list->Append( ( SDAI_Application_instance * ) prodcat, completeSE );
prodcat->name_( "'assembly'" );
prodcat->description_( "''" );
prodcat->products_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod ) );
SdaiProduct_definition_formation_with_specified_source * prod_def_form = ( SdaiProduct_definition_formation_with_specified_source * ) registry->ObjCreate( "PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE" );
instance_list->Append( ( SDAI_Application_instance * ) prod_def_form, completeSE );
prod_def_form->id_( "''" );
prod_def_form->description_( "''" );
prod_def_form->of_product_( prod );
prod_def_form->make_or_buy_( Source__made );
SdaiProduct_definition * prod_def = ( SdaiProduct_definition * ) registry->ObjCreate( "PRODUCT_DEFINITION" );
instance_list->Append( ( SDAI_Application_instance * ) prod_def, completeSE );
prod_def->id_( "''" );
prod_def->description_( "''" );
prod_def->frame_of_reference_( design_context );
prod_def->formation_( prod_def_form );
SdaiProduct_definition_shape * pshape = ( SdaiProduct_definition_shape * ) registry->ObjCreate( "PRODUCT_DEFINITION_SHAPE" );
instance_list->Append( ( SDAI_Application_instance * ) pshape, completeSE );
pshape->name_( "''" );
pshape->description_( "'ProductShapeDescription'" );
pshape->definition_( new SdaiCharacterized_definition( new SdaiCharacterized_product_definition( prod_def ) ) );
SdaiShape_representation * shape_rep = ( SdaiShape_representation * ) registry->ObjCreate( "SHAPE_REPRESENTATION" );
instance_list->Append( ( SDAI_Application_instance * ) shape_rep, completeSE );
shape_rep->name_( "''" ); // Document?
shape_rep->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) orig_transform ) );
shape_rep->context_of_items_( ( SdaiRepresentation_context * ) context );
SdaiShape_definition_representation * shape_def_rep = ( SdaiShape_definition_representation * ) registry->ObjCreate( "SHAPE_DEFINITION_REPRESENTATION" );
instance_list->Append( ( SDAI_Application_instance * ) shape_def_rep, completeSE );
shape_def_rep->definition_( pshape );
shape_def_rep->used_representation_( shape_rep );
// Stand-in person and org.
SdaiPerson * person = ( SdaiPerson * ) registry->ObjCreate( "PERSON" );
instance_list->Append( ( SDAI_Application_instance * ) person, completeSE );
person->id_( "''" );
person->last_name_( "'Doe'" );
person->first_name_( "'John'" );
SdaiOrganization * org = ( SdaiOrganization * ) registry->ObjCreate( "ORGANIZATION" );
instance_list->Append( ( SDAI_Application_instance * ) org, completeSE );
org->id_( "''" );
org->name_( "''" );
org->description_( "''" );
SdaiPerson_and_organization * per_org = ( SdaiPerson_and_organization * ) registry->ObjCreate( "PERSON_AND_ORGANIZATION" );
instance_list->Append( ( SDAI_Application_instance * ) per_org, completeSE );
per_org->the_person_( person );
per_org->the_organization_( org );
// Required roles.
SdaiPerson_and_organization_role * creator_role = ( SdaiPerson_and_organization_role * ) registry->ObjCreate( "PERSON_AND_ORGANIZATION_ROLE" );
instance_list->Append( ( SDAI_Application_instance * ) creator_role, completeSE );
creator_role->name_( "'creator'" );
SdaiPerson_and_organization_role * owner_role = ( SdaiPerson_and_organization_role * ) registry->ObjCreate( "PERSON_AND_ORGANIZATION_ROLE" );
instance_list->Append( ( SDAI_Application_instance * ) owner_role, completeSE );
owner_role->name_( "'design_owner'" );
SdaiPerson_and_organization_role * supplier_role = ( SdaiPerson_and_organization_role * ) registry->ObjCreate( "PERSON_AND_ORGANIZATION_ROLE" );
instance_list->Append( ( SDAI_Application_instance * ) supplier_role, completeSE );
supplier_role->name_( "'design_supplier'" );
// Basic approval.
SdaiApproval_status * approval_status = ( SdaiApproval_status * ) registry->ObjCreate( "APPROVAL_STATUS" );
instance_list->Append( ( SDAI_Application_instance * ) approval_status, completeSE );
approval_status->name_( "'approved'" );
SdaiApproval * approval = ( SdaiApproval * ) registry->ObjCreate( "APPROVAL" );
instance_list->Append( ( SDAI_Application_instance * ) approval, completeSE );
approval->status_( approval_status );
approval->level_( "''" );
SdaiApproval_date_time * app_date_time = ( SdaiApproval_date_time * ) registry->ObjCreate( "APPROVAL_DATE_TIME" );
instance_list->Append( ( SDAI_Application_instance * ) app_date_time, completeSE );
app_date_time->date_time_( new SdaiDate_time_select( date_time ) );
app_date_time->dated_approval_( approval );
SdaiApproval_role * app_role = ( SdaiApproval_role * ) registry->ObjCreate( "APPROVAL_ROLE" );
instance_list->Append( ( SDAI_Application_instance * ) app_role, completeSE );
app_role->role_( "'approver'" );
SdaiApproval_person_organization * app_per_org = ( SdaiApproval_person_organization * ) registry->ObjCreate( "APPROVAL_PERSON_ORGANIZATION" );
instance_list->Append( ( SDAI_Application_instance * ) app_per_org, completeSE );
app_per_org->person_organization_( new SdaiPerson_organization_select( per_org ) );
app_per_org->authorized_approval_( approval );
app_per_org->role_( app_role );
// Basic Classification.
SdaiSecurity_classification * clas = Classification( registry, instance_list, per_org, date_time, prod_def_form );
// Basic CC approval.
SdaiCc_design_approval * desapproval = ( SdaiCc_design_approval * ) registry->ObjCreate( "CC_DESIGN_APPROVAL" );
instance_list->Append( ( SDAI_Application_instance * ) desapproval, completeSE );
desapproval->assigned_approval_( approval );
desapproval->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def ) );
desapproval->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def_form ) );
desapproval->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) clas ) );
SdaiCc_design_person_and_organization_assignment * creatorpersonorg = ( SdaiCc_design_person_and_organization_assignment * ) registry->ObjCreate( "CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT" );
instance_list->Append( ( SDAI_Application_instance * ) creatorpersonorg, completeSE );
creatorpersonorg->assigned_person_and_organization_( per_org );
creatorpersonorg->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def ) );
creatorpersonorg->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def_form ) );
creatorpersonorg->role_( creator_role );
SdaiCc_design_person_and_organization_assignment * supplierpersonorg = ( SdaiCc_design_person_and_organization_assignment * ) registry->ObjCreate( "CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT" );
instance_list->Append( ( SDAI_Application_instance * ) supplierpersonorg, completeSE );
supplierpersonorg->assigned_person_and_organization_( per_org );
supplierpersonorg->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def_form ) );
supplierpersonorg->role_( supplier_role );
SdaiDate_time_role * datetimerole = ( SdaiDate_time_role * ) registry->ObjCreate( "DATE_TIME_ROLE" );
instance_list->Append( ( SDAI_Application_instance * ) datetimerole, completeSE );
datetimerole->name_( "'creation_date'" );
SdaiCc_design_date_and_time_assignment * assign = ( SdaiCc_design_date_and_time_assignment * ) registry->ObjCreate( "CC_DESIGN_DATE_AND_TIME_ASSIGNMENT" );
instance_list->Append( ( SDAI_Application_instance * ) assign, completeSE );
assign->assigned_date_and_time_( date_time );
assign->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def ) );
assign->role_( datetimerole );
SdaiCc_design_person_and_organization_assignment * ownerpersonorg = ( SdaiCc_design_person_and_organization_assignment * ) registry->ObjCreate( "CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT" );
instance_list->Append( ( SDAI_Application_instance * ) ownerpersonorg, completeSE );
ownerpersonorg->assigned_person_and_organization_( per_org );
ownerpersonorg->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod ) );
ownerpersonorg->role_( owner_role );
sfile->WriteExchangeFile( "outfile.stp" );
if( sfile->Error().severity() < SEVERITY_USERMSG ) {
sfile->Error().PrintContents( cout );
}
header_instances->DeleteInstances();
instance_list->DeleteInstances();
delete registry;
delete instance_list;
delete sfile;
printf( "Done!\n" );
}
+13 -2
View File
@@ -21,9 +21,20 @@ SET(express_HDRS
express/type.h
express/variable.h
)
install(FILES ${express_HDRS} DESTINATION include/express)
install(FILES ${express_HDRS}
DESTINATION ${INCLUDE_INSTALL_DIR}/stepcode/express)
SET(exppp_HDRS
exppp/exppp.h
)
install(FILES ${exppp_HDRS} DESTINATION include/exppp)
install(FILES ${exppp_HDRS}
DESTINATION ${INCLUDE_INSTALL_DIR}/stepcode/exppp)
install(FILES ordered_attrs.h
sc_export.h
sc_stdbool.h
DESTINATION ${INCLUDE_INSTALL_DIR}/stepcode)
install(FILES ${SC_BINARY_DIR}/${INCLUDE_INSTALL_DIR}/sc_cf.h
${SC_BINARY_DIR}/${INCLUDE_INSTALL_DIR}/sc_version_string.h
DESTINATION ${INCLUDE_INSTALL_DIR}/stepcode)
+20 -16
View File
@@ -1,22 +1,25 @@
#ifndef EXPPP_H
#define EXPPP_H
#include <sc_stdbool.h>
#include <sc_export.h>
extern SC_EXPPP_EXPORT int exppp_nesting_indent; /* default nesting indent */
extern SC_EXPPP_EXPORT int exppp_continuation_indent; /* default nesting indent for */
/* continuation lines */
extern SC_EXPPP_EXPORT int exppp_linelength; /* leave some slop for closing */
/* parens. \n is not included in */
/* this count either */
extern SC_EXPPP_EXPORT bool exppp_rmpp; /* if true, create rmpp */
extern SC_EXPPP_EXPORT bool exppp_alphabetize; /* if true, alphabetize */
extern SC_EXPPP_EXPORT bool exppp_terse; /* don't describe action to stdout */
extern SC_EXPPP_EXPORT bool exppp_reference_info; /* if true, add commentary */
/* about where things came from */
extern SC_EXPPP_EXPORT bool exppp_preserve_comments; /* if true, preserve comments where */
/* possible */
extern SC_EXPPP_EXPORT char * exppp_output_filename; /* force output filename */
extern SC_EXPPP_EXPORT bool exppp_output_filename_reset; /* if true, force output filename */
#include "../express/expbasic.h"
#include "../express/express.h"
extern SC_EXPPP_EXPORT const int exppp_nesting_indent; /**< default nesting indent */
extern SC_EXPPP_EXPORT const int exppp_continuation_indent; /**< default nesting indent for continuation lines */
extern SC_EXPPP_EXPORT int exppp_linelength; /**< leave some slop for closing parens.
* \n is not included in this count either */
extern SC_EXPPP_EXPORT bool exppp_alphabetize; /**< if true, alphabetize */
extern SC_EXPPP_EXPORT bool exppp_terse; /**< don't describe action to stdout */
extern SC_EXPPP_EXPORT bool exppp_reference_info; /**< if true, add commentary about where things came from */
extern SC_EXPPP_EXPORT char * exppp_output_filename; /**< force output filename */
extern SC_EXPPP_EXPORT bool exppp_output_filename_reset; /**< if true, force output filename */
extern SC_EXPPP_EXPORT bool exppp_print_to_stdout; /**< if true, print to stdout */
extern SC_EXPPP_EXPORT bool exppp_aggressively_wrap_consts; /**< for constants, print one item per line */
extern SC_EXPPP_EXPORT bool exppp_tail_comment; /**< print tail comment, such as END_ENTITY; --entity_name */
SC_EXPPP_EXPORT void EXPRESSout( Express e );
@@ -61,6 +64,7 @@ SC_EXPPP_EXPORT int TYPEbody_to_buffer( Type t, char * buffer, int length );
SC_EXPPP_EXPORT int WHEREto_buffer( Linked_List w, char * buffer, int length );
SC_EXPPP_EXPORT int EXPRlength( Expression e );
SC_EXPPP_EXPORT int count_newlines( char * s );
extern SC_EXPPP_EXPORT void tail_comment( const char * name );
extern SC_EXPPP_EXPORT int count_newlines( char * s );
#endif
+1
View File
@@ -66,6 +66,7 @@ typedef struct Error_ {
bool enabled;
Severity severity;
char * message;
int serial; /* used to give each type of error a unique identifier */
} * Error;
typedef struct Error_Warning_ {
+1 -1
View File
@@ -142,7 +142,7 @@ struct Funcall {
union expr_union {
int integer;
float real;
double real;
char * attribute; /**< inverse .... for 'attr' */
char * binary;
int logical;
+12 -9
View File
@@ -88,6 +88,7 @@ struct Express_ {
/* global variables */
/********************/
extern SC_EXPRESS_EXPORT char * input_filename;
extern SC_EXPRESS_EXPORT Linked_List EXPRESS_path;
extern SC_EXPRESS_EXPORT int EXPRESSpass;
@@ -109,6 +110,7 @@ extern SC_EXPRESS_EXPORT Error ERROR_unlabelled_param_type;
extern SC_EXPRESS_EXPORT Error ERROR_file_unreadable;
extern SC_EXPRESS_EXPORT Error ERROR_file_unwriteable;
extern SC_EXPRESS_EXPORT Error ERROR_warn_unsupported_lang_feat;
extern SC_EXPRESS_EXPORT Error ERROR_warn_small_real;
extern SC_EXPRESS_EXPORT struct Scope_ * FUNC_NVL;
extern SC_EXPRESS_EXPORT struct Scope_ * FUNC_USEDIN;
@@ -247,16 +249,17 @@ extern SC_EXPRESS_EXPORT char * KW_XOR;
/* function prototypes */
/***********************/
extern SC_EXPRESS_EXPORT Express EXPRESScreate PROTO( ( void ) );
extern SC_EXPRESS_EXPORT void EXPRESSdestroy PROTO( ( Express ) );
extern SC_EXPRESS_EXPORT void EXPRESSparse PROTO( ( Express, FILE *, char * ) );
extern SC_EXPRESS_EXPORT Express EXPRESScreate PROTO( ( void ) );
extern SC_EXPRESS_EXPORT void EXPRESSdestroy PROTO( ( Express ) );
extern SC_EXPRESS_EXPORT void EXPRESSparse PROTO( ( Express, FILE *, char * ) );
extern SC_EXPRESS_EXPORT void EXPRESSinitialize PROTO( ( void ) );
extern SC_EXPRESS_EXPORT void EXPRESScleanup PROTO( ( void ) );
extern SC_EXPRESS_EXPORT void EXPRESSresolve PROTO( ( Express ) );
extern SC_EXPRESS_EXPORT char * EXPRESSversion PROTO( ( void ) );
extern SC_EXPRESS_EXPORT int EXPRESS_fail PROTO( ( Express ) );
extern SC_EXPRESS_EXPORT int EXPRESS_succeed PROTO( ( Express ) );
extern void EXPRESSinit_init PROTO( ( void ) );
extern SC_EXPRESS_EXPORT void EXPRESScleanup PROTO( ( void ) );
extern SC_EXPRESS_EXPORT void EXPRESSresolve PROTO( ( Express ) );
extern SC_EXPRESS_EXPORT char * EXPRESSversion PROTO( ( void ) );
extern SC_EXPRESS_EXPORT int EXPRESS_fail PROTO( ( Express ) );
extern SC_EXPRESS_EXPORT int EXPRESS_succeed PROTO( ( Express ) );
extern void EXPRESSinit_init PROTO( ( void ) );
extern SC_EXPRESS_EXPORT void EXPRESSusage( int _exit ); /**< exit unless _exit is non-zero */
extern SC_EXPRESS_EXPORT void build_complex( Express );
#endif /*EXPRESS_H*/
+5 -7
View File
@@ -100,6 +100,7 @@ extern SC_EXPRESS_EXPORT Error ERROR_nonascii_char;
/***********************/
extern SC_EXPRESS_EXPORT void SCANinitialize PROTO( ( void ) );
extern SC_EXPRESS_EXPORT void SCANcleanup( void );
extern SC_EXPRESS_EXPORT int SCANprocess_real_literal PROTO( ( const char * ) );
extern SC_EXPRESS_EXPORT int SCANprocess_integer_literal PROTO( ( const char * ) );
extern SC_EXPRESS_EXPORT int SCANprocess_binary_literal PROTO( ( const char * ) );
@@ -109,14 +110,11 @@ extern SC_EXPRESS_EXPORT int SCANprocess_string PROTO( ( const char * ) );
extern SC_EXPRESS_EXPORT int SCANprocess_encoded_string PROTO( ( const char * ) );
extern SC_EXPRESS_EXPORT int SCANprocess_semicolon PROTO( ( const char *, int ) );
extern SC_EXPRESS_EXPORT void SCANsave_comment PROTO( ( const char * ) );
extern SC_EXPRESS_EXPORT bool SCANread PROTO( ( void ) );
#if macros_bit_the_dust
extern SC_EXPRESS_EXPORT void SCANdefine_macro PROTO( ( char *, char * ) );
#endif
extern SC_EXPRESS_EXPORT bool SCANread PROTO( ( void ) );
extern SC_EXPRESS_EXPORT void SCANinclude_file PROTO( ( char * ) );
SC_EXPRESS_EXPORT void SCANlowerize PROTO( ( char * ) );
SC_EXPRESS_EXPORT void SCANupperize PROTO( ( char * ) );
extern SC_EXPRESS_EXPORT char * SCANstrdup PROTO( ( char * ) );
SC_EXPRESS_EXPORT void SCANlowerize PROTO( ( char * ) );
SC_EXPRESS_EXPORT void SCANupperize PROTO( ( char * ) );
extern SC_EXPRESS_EXPORT char * SCANstrdup PROTO( ( const char * ) );
extern SC_EXPRESS_EXPORT long SCANtell PROTO( ( void ) );
#endif /* LEX_ACTIONS_H */
+16 -18
View File
@@ -73,7 +73,6 @@ struct Linked_List_ {
extern SC_EXPRESS_EXPORT Error ERROR_empty_list;
extern SC_EXPRESS_EXPORT struct freelist_head LINK_fl;
extern SC_EXPRESS_EXPORT struct freelist_head LIST_fl;
extern SC_EXPRESS_EXPORT Linked_List LINK__l; /* for LISTcreate_with macro - ugh */
/******************************/
/* macro function definitions */
@@ -84,24 +83,25 @@ extern SC_EXPRESS_EXPORT Linked_List LINK__l; /* for LISTcreate_with macro - ug
#define LIST_new() (struct Linked_List_ *)MEM_new(&LIST_fl)
#define LIST_destroy(x) MEM_destroy(&LIST_fl,(Freelist *)(Generic)x)
/** following could be optimized */
#define LISTcreate_with(x) (LINK__l = LISTcreate()),\
LISTadd(LINK__l,x),\
LINK_l)
/** accessing links */
#define LINKdata(link) (link)->data
#define LINKnext(link) (link)->next
#define LINKprev(link) (link)->prev
/** iteration */
#define LISTdo(list, elt, type) \
{struct Linked_List_ * __l = (list); \
type elt; \
Link __p; \
if (__l) { \
for (__p = __l->mark; (__p = __p->next) != __l->mark; ) { \
(elt) = (type)((__p)->data);
#define LISTdo(list, elt, type) LISTdo_n( list, elt, type, a )
/** LISTdo_n: LISTdo with nesting
* parameter 'uniq' changes the variable names, allowing us to nest it without -Wshadow warnings
*/
#define LISTdo_n(list, elt, type, uniq) \
{struct Linked_List_ * _ ## uniq ## l = (list); \
type elt; \
Link _ ## uniq ## p; \
if( _ ## uniq ## l ) { \
for( _ ## uniq ## p = _ ## uniq ## l->mark; \
( _ ## uniq ## p = _ ## uniq ## p->next ) != _ ## uniq ## l->mark; ) { \
( elt ) = ( type ) ( ( _ ## uniq ## p )->data );
#define LISTdo_links(list, link) \
{Linked_List __i = (list); \
@@ -116,11 +116,10 @@ extern SC_EXPRESS_EXPORT Linked_List LINK__l; /* for LISTcreate_with macro - ug
(((struct Linked_List_*)list)->mark->next->data)
/** function aliases */
#define LISTadd(list, item) LISTadd_last(list, item)
#define LISTadd_all(list, items) \
LISTdo(items, e, Generic) \
LISTadd(list, e); \
LISTod;
LISTdo(items, e, Generic) { \
LISTadd_last(list, e); \
} LISTod;
/***********************/
/* function prototypes */
@@ -135,7 +134,6 @@ extern SC_EXPRESS_EXPORT Generic LISTadd_last PROTO( ( Linked_List, Generic ) )
extern SC_EXPRESS_EXPORT Generic LISTadd_after PROTO( ( Linked_List, Link, Generic ) );
extern SC_EXPRESS_EXPORT Generic LISTadd_before PROTO( ( Linked_List, Link, Generic ) );
extern SC_EXPRESS_EXPORT Generic LISTremove_first PROTO( ( Linked_List ) );
extern SC_EXPRESS_EXPORT Generic LISTremove PROTO( ( Linked_List, Link ) );
extern SC_EXPRESS_EXPORT Generic LISTget_first PROTO( ( Linked_List ) );
extern SC_EXPRESS_EXPORT Generic LISTget_second PROTO( ( Linked_List ) );
extern SC_EXPRESS_EXPORT Generic LISTget_nth PROTO( ( Linked_List, int ) );
+2 -2
View File
@@ -53,7 +53,7 @@ struct freelist_head {
int size; /**< size of a single elt incl. next ptr */
int bytes; /**< if we run out, allocate memory by this many bytes */
Freelist * freelist;
#if SPACE_PROFILE
#ifdef SPACE_PROFILE
int count;
#endif
};
@@ -76,7 +76,7 @@ extern SC_EXPRESS_EXPORT int yylineno;
} else {}
SC_EXPRESS_EXPORT void _MEMinitialize PROTO( ( void ) );
SC_EXPRESS_EXPORT void MEMinitialize PROTO( ( struct freelist_head *, int, int, int ) );
SC_EXPRESS_EXPORT void MEMinitialize PROTO( ( struct freelist_head * flh, unsigned int size, int alloc1, int alloc2 ) );
SC_EXPRESS_EXPORT void MEM_destroy PROTO( ( struct freelist_head *, Freelist * ) );
SC_EXPRESS_EXPORT Generic MEM_new PROTO( ( struct freelist_head * ) );
+2 -2
View File
@@ -64,8 +64,8 @@ extern SC_EXPRESS_EXPORT Error WARNING_fn_skip_branch;
/* cheaper doing the check here, then inside the function call. Return */
/* immediately for RESOLVED, FAILED_TO_RESOLVE, and RESOLVE_IN_PROGRESS */
#define TYPEresolve(t,s) if (is_resolvable((*(t)))) TYPE_resolve((t))
#define VARresolve_types(v,s) if (is_resolvable((v)->name)) VAR_resolve_types((v),(s))
#define TYPEresolve(t) if (is_resolvable((*(t)))) TYPE_resolve((t))
#define VARresolve_types(v) if (is_resolvable((v)->name)) VAR_resolve_types((v))
#define VARresolve_expressions(v,s) if (is_resolvable((v)->name)) VAR_resolve_expressions((v),(s))
#define EXPresolve(expr,scope,type) if (!is_resolved(expr)) EXP_resolve(expr,scope,type)
+6 -2
View File
@@ -159,7 +159,11 @@ struct TypeBody_ {
unsigned optional : 1;
unsigned fixed : 1;
unsigned shared : 1; /**< type is shared */
unsigned repeat : 1; /**< expression is a repeat count*/
unsigned repeat : 1; /**< Expression is the number of repetitions of the previous Expression
* 10303-11:2004 production #203
* element = expression [ ':' repetition ] .
* TODO exp2cxx and exp2py do not use this! Are all use cases handled by libexppp?
*/
unsigned encoded : 1; /**< encoded string */
} flags;
Type base; /**< underlying base type if any can also contain true type if this type is a type reference */
@@ -189,7 +193,7 @@ extern SC_EXPRESS_EXPORT Type Type_Boolean;
extern SC_EXPRESS_EXPORT Type Type_Enumeration;
extern SC_EXPRESS_EXPORT Type Type_Expression;
extern SC_EXPRESS_EXPORT Type Type_Aggregate;
extern SC_EXPRESS_EXPORT Type Type_Integer;
extern SC_EXPRESS_EXPORT Type Type_Repeat;
extern SC_EXPRESS_EXPORT Type Type_Integer;
extern SC_EXPRESS_EXPORT Type Type_Number;
extern SC_EXPRESS_EXPORT Type Type_Real;
+7 -8
View File
@@ -76,21 +76,20 @@ typedef struct Variable_ * Variable;
/***************************/
struct Variable_ {
Expression name; /**< Symbol is inside of 'name' below */
Expression name; /**< Symbol is inside of 'name' */
Type type;
Expression initializer; /**< or 'derived' */
int offset;
struct {
int optional : 1; /**< OPTIONAL keyword */
int var : 1; /**< VAR keyword */
int constant : 1; /**< from CONSTANT...END_CONSTANT */
int unique : 1; /**< appears in UNIQUE list */
int parameter : 1; /**< is a formal parameter */
int attribute : 1; /**< is an attribute (rule parameters are marked this way, too) */
unsigned int optional : 1; /**< OPTIONAL keyword */
unsigned int var : 1; /**< VAR keyword */
unsigned int constant : 1; /**< from CONSTANT...END_CONSTANT */
unsigned int unique : 1; /**< appears in UNIQUE list */
unsigned int parameter : 1; /**< is a formal parameter */
unsigned int attribute : 1; /**< is an attribute (rule parameters are marked this way, too) */
} flags;
#define query_symbol inverse_symbol
Symbol * inverse_symbol; /**< entity symbol */
Variable inverse_attribute; /**< attribute related by inverse relationship */
};
+32
View File
@@ -0,0 +1,32 @@
#include <express/entity.h>
#include <express/variable.h>
#include "sc_export.h"
#ifdef __cplusplus
#include <vector>
extern "C" {
#endif /* __cplusplus */
typedef struct {
Variable attr;
Entity creator, redefiner, deriver;
} orderedAttr;
/**set the entity we're working on, init working variables */
extern SC_EXPRESS_EXPORT void orderedAttrsInit( Entity e );
/**free memory */
extern SC_EXPRESS_EXPORT void orderedAttrsCleanup();
/**get next attr; not thread safe (as if the rest of libexpress is) */
extern SC_EXPRESS_EXPORT const orderedAttr * nextAttr();
#ifdef __cplusplus
}
typedef std::vector<orderedAttr * > oaList;
oaList getAttrList();
#endif /* __cplusplus */
+2 -2
View File
@@ -13,8 +13,8 @@
#cmakedefine HAVE_PROCESS_H 1
#cmakedefine HAVE_IO_H 1
#cmakedefine SCL_TRACE_FPRINTF 1
#cmakedefine SCL_MEMMGR_ENABLE_CHECKS 1
#cmakedefine SC_TRACE_FPRINTF 1
#cmakedefine SC_MEMMGR_ENABLE_CHECKS 1
#cmakedefine HAVE_ABS 1
#cmakedefine HAVE_MEMCPY 1
+10 -10
View File
@@ -47,14 +47,14 @@ function fedex_details {
w=`sed -ne 's|^.*:\([0-9]\+\): WARNING: \(.*\)$|<tr><td>\1</td><td>\2</td></tr>|p;' $i`
e=`sed -ne 's|^.*:\([0-9]\+\): --ERROR: \(.*\)$|<tr><td>\1</td><td>\2</td></tr>|p;' $i`
if [ "x$w" != "x" ]; then
echo "<a name=\"fedex_plus_w\">" #enable jumping to this location in the file
echo "### fedex_plus warnings"
echo "<a name=\"exp2cxx_w\">" #enable jumping to this location in the file
echo "### exp2cxx warnings"
echo "</a><table width=100%><tr><th>Line</th><th>Message</th>$w</table>"
echo
fi
if [ "x$e" != "x" ]; then
echo "<a name=\"fedex_plus_e\">"
echo "### fedex_plus errors"
echo "<a name=\"exp2cxx_e\">"
echo "### exp2cxx errors"
echo "</a><table width=100%><tr><th>Line</th><th>Message</th>$e</tr></table>"
echo
fi
@@ -67,7 +67,7 @@ function fedex_details {
echo
fi
if [ -s $result_dir/fedex_$1_stdout.txt ]; then
echo "<a name=\"fedex_plus_o\">"
echo "<a name=\"exp2cxx_o\">"
echo "### Standard Output"
echo "</a><pre>"
cat $result_dir/fedex_$1_stdout.txt
@@ -76,11 +76,11 @@ function fedex_details {
}
function build_one_schema {
#set $i to the schema name, all caps (to match fedex_plus output)
#set $i to the schema name, all caps (to match exp2cxx output)
i=`sed -ne '0,/^\s*SCHEMA/s/^.*SCHEMA\s\+\(.*\);.*$/\1/p;' $1|tr a-z A-Z`
d=`echo $1|sed -e 's|^.*/\([^/]*\)\.exp$|\1|;'`
echo "Running fedex_plus and gcc for $i..."
echo "Running exp2cxx and gcc for $i..."
make generate_cpp_$d 2>"$result_dir/fedex_"$i"_stderr.txt" >"$result_dir/fedex_"$i"_stdout.txt" && \
$mk sdai_$d >/dev/null 2>"$result_dir/compile_libsdai_"$i"_stderr.txt" && \
$mk p21read_sdai_$d >/dev/null 2>"$result_dir/compile_p21read_sdai_"$i"_stderr.txt"
@@ -96,7 +96,7 @@ function build {
# when given multiple targets, cmake's makefiles don't always work well with 'make -j4' - some things get built twice, simultaneously
echo "Building SCL:"
$mk stepeditor | grep "^Linking"
$mk fedex_plus stepdai | grep "^Linking"
$mk exp2cxx stepdai | grep "^Linking"
for h in `echo $schemas | sed -e 's/;/\n/g;'`
do
@@ -135,7 +135,7 @@ function gen_wiki {
echo "<table border=1>" >>$matrix_file
echo "<tr><th>Key</th></tr><tr><td><table width=100%>" >>$matrix_file
echo "<tr><th>Item</th><th>Description</th></tr>" >>$matrix_file
echo "<tr><td>fedex_plus</td><td>Generate c++ from an EXPRESS schema</td></tr>" >>$matrix_file
echo "<tr><td>exp2cxx</td><td>Generate c++ from an EXPRESS schema</td></tr>" >>$matrix_file
echo "<tr><td>lib</td><td>Compile the generated c++ into a library</td></tr>" >>$matrix_file
echo "<tr><td>p21read</td><td>Compile a p21read app, linked against the above library</td></tr>" >>$matrix_file
echo "</table></td></tr>" >>$matrix_file
@@ -147,7 +147,7 @@ function gen_wiki {
echo "<tr><td><table width=100%><tr><th>Schema $i</th></tr><tr><td>" >>$matrix_file
j=${h##*/} #schema file name, without dirs
echo "$j</td></tr><tr><td><table border=1>" >>$matrix_file
count_we "fedex_plus" $result_dir/fedex_$i $i
count_we "exp2cxx" $result_dir/fedex_$i $i
count_we "lib" $result_dir/compile_libsdai_$i $i
count_we "p21read" $result_dir/compile_p21read_sdai_$i $i
echo "</table></td></tr>" >>$matrix_file
+11
View File
@@ -6,6 +6,14 @@ set(SC_BASE_SOURCES
sc_benchmark.cc
)
set(SC_BASE_HDRS
sc_benchmark.h
sc_memmgr.h
sc_getopt.h
sc_trace_fprintf.h
sc_stdbool.h
)
if(MINGW OR MSVC OR BORLAND)
add_definitions( -DSC_BASE_DLL_EXPORTS )
endif()
@@ -32,3 +40,6 @@ if(NOT IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/judy/src" )
file( REMOVE "${CMAKE_CURRENT_SOURCE_DIR}/judy.tar.gz" )
message( "Judy array source code extracted." )
endif(NOT IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/judy/src" )
install(FILES ${SC_BASE_HDRS}
DESTINATION ${INCLUDE_INSTALL_DIR}/stepcode/base)
+2 -2
View File
@@ -41,6 +41,7 @@ class judyL2Array {
vector ** _lastSlot;
JudyKey _buff[1];
bool _success;
cpair kv;
public:
judyL2Array(): _maxLevels( sizeof( JudyKey ) ), _depth( 1 ), _lastSlot( 0 ), _success( true ) {
assert( sizeof( JudyKey ) == JUDY_key_size && "JudyKey *must* be the same size as a pointer!" );
@@ -159,8 +160,7 @@ class judyL2Array {
}
/// retrieve the key-value pair for the most recent judy query.
inline const cpair mostRecentPair() {
cpair kv;
inline const cpair & mostRecentPair() {
judy_key( _judyarray, ( unsigned char * ) _buff, _depth * JUDY_key_size );
if( _lastSlot ) {
kv.value = *_lastSlot;
+3 -3
View File
@@ -40,6 +40,7 @@ class judyS2Array {
vector ** _lastSlot;
unsigned char * _buff;
bool _success;
cpair kv;
public:
judyS2Array( unsigned int maxKeyLen ): _maxKeyLen( maxKeyLen ), _lastSlot( 0 ), _success( true ) {
_judyarray = judy_open( _maxKeyLen, 0 );
@@ -49,7 +50,7 @@ class judyS2Array {
explicit judyS2Array( const judyS2Array< JudyValue > & other ): _maxKeyLen( other._maxKeyLen ), _success( other._success ) {
_judyarray = judy_clone( other._judyarray );
_buff = new char[_maxKeyLen];
_buff = new unsigned char[_maxKeyLen];
strncpy( _buff, other._buff, _maxKeyLen );
_buff[ _maxKeyLen ] = '\0'; //ensure that _buff is null-terminated, since strncpy won't necessarily do so
find( _buff ); //set _lastSlot
@@ -184,8 +185,7 @@ class judyS2Array {
}
/// retrieve the key-value pair for the most recent judy query.
inline const cpair mostRecentPair() {
cpair kv;
inline const cpair & mostRecentPair() {
judy_key( _judyarray, _buff, _maxKeyLen );
if( _lastSlot ) {
kv.value = *_lastSlot;
+1 -1
View File
@@ -38,7 +38,7 @@ class judySArray {
explicit judySArray( const judySArray< JudyValue > & other ): _maxKeyLen( other._maxKeyLen ), _success( other._success ) {
_judyarray = judy_clone( other._judyarray );
_buff = new char[_maxKeyLen];
_buff = new unsigned char[_maxKeyLen];
strncpy( _buff, other._buff, _maxKeyLen );
_buff[ _maxKeyLen ] = '\0'; //ensure that _buff is null-terminated, since strncpy won't necessarily do so
find( _buff ); //set _lastSlot
+8 -3
View File
@@ -4,7 +4,7 @@
#include "sc_memmgr.h"
#ifdef __WIN32__
#include <Windows.h>
#include <windows.h>
#include <psapi.h>
#else
#include <sys/time.h>
@@ -12,6 +12,7 @@
#include <unistd.h>
#endif
#include <assert.h>
#include <iostream>
#include <fstream>
#include <iomanip>
@@ -52,6 +53,7 @@ benchVals getMemAndTime( ) {
PROCESS_MEMORY_COUNTERS MemoryCntrs;
FILETIME CreationTime, ExitTime, KernelTime, UserTime;
long page_size_kb = 1024;
ULARGE_INTEGER kTime, uTime;
if( GetProcessMemoryInfo( GetCurrentProcess(), &MemoryCntrs, sizeof( MemoryCntrs ) ) ) {
vals.physMemKB = MemoryCntrs.PeakWorkingSetSize / page_size_kb;
@@ -62,8 +64,11 @@ benchVals getMemAndTime( ) {
}
if( GetProcessTimes( GetCurrentProcess(), &CreationTime, &ExitTime, &KernelTime, &UserTime ) ) {
vals.userMilliseconds = ( long )( ( ( ULARGE_INTEGER * ) &UserTime )->QuadPart / 100000L );
vals.sysMilliseconds = ( long )( ( ( ULARGE_INTEGER * ) &KernelTime )->QuadPart / 100000L );
assert( sizeof( FILETIME ) == sizeof( ULARGE_INTEGER ) );
memcpy( &kTime, &KernelTime, sizeof( FILETIME ) );
memcpy( &uTime, &UserTime, sizeof( FILETIME ) );
vals.userMilliseconds = ( long )( uTime.QuadPart / 100000L );
vals.sysMilliseconds = ( long )( kTime.QuadPart / 100000L );
} else {
vals.userMilliseconds = 0;
vals.sysMilliseconds = 0;
+6
View File
@@ -37,6 +37,12 @@ extern "C" {
*
* depends on getMemAndTime() above - may not work on all platforms.
*/
#ifdef _WIN32
template class SC_BASE_EXPORT std::allocator<char>;
template class SC_BASE_EXPORT std::basic_string<char, std::char_traits<char>, std::allocator<char> >;
#endif
class SC_BASE_EXPORT benchmark {
protected:
benchVals initialVals, laterVals;
+15 -16
View File
@@ -1,18 +1,17 @@
/****** RENAMED from xgetopt.h to sc_getopt.h ***********/
// XGetopt.h Version 1.2
//
// Author: Hans Dietrich
// hdietrich2@hotmail.com
//
// This software is released into the public domain.
// You are free to use it in any way you like.
//
// This software is provided "as is" with no expressed
// or implied warranty. I accept no liability for any
// damage or loss of business that this software may cause.
//
///////////////////////////////////////////////////////////////////////////////
/** \file sc_getopt.h
* this was xgetopt.h
* XGetopt.h Version 1.2
*
* Author: Hans Dietrich
* hdietrich2@hotmail.com
*
* This software is released into the public domain.
* You are free to use it in any way you like.
*
* This software is provided "as is" with no expressed
* or implied warranty. I accept no liability for any
* damage or loss of business that this software may cause.
*/
#ifndef XGETOPT_H
#define XGETOPT_H
#include "sc_export.h"
@@ -30,4 +29,4 @@ extern "C" {
}
#endif
#endif //XGETOPT_H
#endif /* XGETOPT_H */
+4 -5
View File
@@ -4,12 +4,8 @@
#include <sc_cf.h>
#include "sc_memmgr.h"
#if __APPLE__
# include <malloc/malloc.h>
#else
# include <malloc.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <set>
@@ -312,6 +308,9 @@ void sc_memmgr::deallocate( void * addr, const char * file, const int line ) {
_record_erase_busy = false;
}
}
#else
(void) file; // quell unused param warnings
(void) line;
#endif /* SC_MEMMGR_ENABLE_CHECKS */
// Deallocate
+12
View File
@@ -0,0 +1,12 @@
#ifndef SC_STDBOOL_H
#define SC_STDBOOL_H
#ifdef _WIN32
typedef int bool;
# define false 0
# define true 1
#else
# include <stdbool.h>
#endif
#endif /* SC_STDBOOL_H */
+2 -2
View File
@@ -4,7 +4,7 @@
/** \file sc_trace_fprintf.h
* Used to track the source file and line where generated code is printed from
* When enabled, comments are printed into the generated files for every 'fprintf':
* / * source: scl/src/fedex_plus/selects.c:1375 * /
* / * source: scl/src/exp2cxx/selects.c:1375 * /
* To enable, configure with 'cmake .. -DSC_TRACE_FPRINTF=ON'
*
* This header must be included *after* all other headers, otherwise the compiler will
@@ -14,7 +14,7 @@
#include "sc_export.h"
/** used to find where generated c++ originates from in fedex_plus
/** used to find where generated c++ originates from in exp2cxx
* To enable, configure with 'cmake .. -DSC_TRACE_FPRINTF=ON'
*/
#ifdef __cplusplus
-88
View File
@@ -1,88 +0,0 @@
#ifndef SDAIALL_CC
#define SDAIALL_CC
// This file was generated by fedex_plus. You probably don't want to edit
// it since your modifications will be lost if fedex_plus is used to
// regenerate it.
/* $Id$ */
#include <schema.h>
void
InitSchemasAndEnts( Registry & reg ) {
Interface_spec_ptr is;
Used_item_ptr ui;
Referenced_item_ptr ri;
Uniqueness_rule_ptr ur;
Where_rule_ptr wr;
Global_rule_ptr gr;
// Schema: SdaiEXAMPLE_SCHEMA
s_example_schema = new Schema( "Example_Schema" );
s_example_schema->AssignModelContentsCreator(
( ModelContentsCreator ) create_SdaiModel_contents_example_schema );
reg.AddSchema( *s_example_schema );
// ***** Initialize the Types
example_schemat_color = new EnumTypeDescriptor(
"Color", // Name
sdaiENUMERATION, // FundamentalType
s_example_schema, // Originating Schema
"ENUMERATION of (red, green, blue, yellow, orange, white, black, brown)", // Description
( EnumCreator ) create_SdaiColor_var ); // Creator function
s_example_schema->AddType( example_schemat_color );
example_schemat_label = new TypeDescriptor(
"Label", // Name
sdaiSTRING, // FundamentalType
s_example_schema, // Originating Schema
"STRING" ); // Description
s_example_schema->AddType( example_schemat_label );
example_schemat_point = new TypeDescriptor(
"Point", // Name
sdaiREAL, // FundamentalType
s_example_schema, // Originating Schema
"REAL" ); // Description
s_example_schema->AddType( example_schemat_point );
example_schemat_length_measure = new TypeDescriptor(
"Length_Measure", // Name
sdaiREAL, // FundamentalType
s_example_schema, // Originating Schema
"REAL" ); // Description
s_example_schema->AddType( example_schemat_length_measure );
// ***** Initialize the Entities
example_schemae_poly_line = new EntityDescriptor(
"Poly_Line", s_example_schema, SCLLOG( LFalse ), SCLLOG( LFalse ),
( Creator ) create_SdaiPoly_line );
s_example_schema->AddEntity( example_schemae_poly_line );
example_schemae_shape = new EntityDescriptor(
"Shape", s_example_schema, SCLLOG( LFalse ), SCLLOG( LFalse ),
( Creator ) create_SdaiShape );
s_example_schema->AddEntity( example_schemae_shape );
example_schemae_rectangle = new EntityDescriptor(
"Rectangle", s_example_schema, SCLLOG( LFalse ), SCLLOG( LFalse ),
( Creator ) create_SdaiRectangle );
s_example_schema->AddEntity( example_schemae_rectangle );
example_schemae_square = new EntityDescriptor(
"Square", s_example_schema, SCLLOG( LFalse ), SCLLOG( LFalse ),
( Creator ) create_SdaiSquare );
s_example_schema->AddEntity( example_schemae_square );
example_schemae_triangle = new EntityDescriptor(
"Triangle", s_example_schema, SCLLOG( LFalse ), SCLLOG( LFalse ),
( Creator ) create_SdaiTriangle );
s_example_schema->AddEntity( example_schemae_triangle );
example_schemae_circle = new EntityDescriptor(
"Circle", s_example_schema, SCLLOG( LFalse ), SCLLOG( LFalse ),
( Creator ) create_SdaiCircle );
s_example_schema->AddEntity( example_schemae_circle );
example_schemae_line = new EntityDescriptor(
"Line", s_example_schema, SCLLOG( LFalse ), SCLLOG( LFalse ),
( Creator ) create_SdaiLine );
s_example_schema->AddEntity( example_schemae_line );
example_schemae_cartesian_point = new EntityDescriptor(
"Cartesian_Point", s_example_schema, SCLLOG( LFalse ), SCLLOG( LFalse ),
( Creator ) create_SdaiCartesian_point );
s_example_schema->AddEntity( example_schemae_cartesian_point );
//////////////// USE statements
//////////////// REFERENCE statements
}
#endif
-875
View File
@@ -1,875 +0,0 @@
#ifndef SDAIEXAMPLE_SCHEMA_CC
#define SDAIEXAMPLE_SCHEMA_CC
// This file was generated by fedex_plus. You probably don't want to edit
// it since your modifications will be lost if fedex_plus is used to
// regenerate it.
/* $Id$ */
#ifndef SCHEMA_H
#include <schema.h>
#endif
#ifdef SCL_LOGGING
#include <fstream.h>
extern ofstream * logStream;
#define SCLLOGFILE "scl.log"
#endif
static int debug_access_hooks = 0;
Schema * s_example_schema = 0;
/* ************** TYPES */
EnumTypeDescriptor * example_schemat_color;
////////// ENUMERATION TYPE SdaiColor_var
const char *
SdaiColor_var::element_at( int n ) const {
switch( n ) {
case Color__green :
return "GREEN";
case Color__white :
return "WHITE";
case Color__orange :
return "ORANGE";
case Color__yellow :
return "YELLOW";
case Color__red :
return "RED";
case Color__black :
return "BLACK";
case Color__brown :
return "BROWN";
case Color__blue :
return "BLUE";
case Color_unset :
default :
return "UNSET";
}
}
SdaiColor_var::SdaiColor_var( const char * n, EnumTypeDescriptor * et )
: type( et ) {
set_value( n );
}
SdaiColor_var::operator Color() const {
switch( v ) {
case Color__green :
return Color__green;
case Color__white :
return Color__white;
case Color__orange :
return Color__orange;
case Color__yellow :
return Color__yellow;
case Color__red :
return Color__red;
case Color__black :
return Color__black;
case Color__brown :
return Color__brown;
case Color__blue :
default :
return Color__blue;
}
}
SDAI_Enum *
create_SdaiColor_var() {
return new SdaiColor_var( "", example_schemat_color );
}
SdaiColor_vars::SdaiColor_vars( EnumTypeDescriptor * et )
: enum_type( et ) {
}
SdaiColor_vars::~SdaiColor_vars() {
}
STEPaggregate *
create_SdaiColor_vars() {
return new SdaiColor_vars( example_schemat_color );
}
////////// END ENUMERATION color
TypeDescriptor * example_schemat_label;
TypeDescriptor * example_schemat_point;
TypeDescriptor * example_schemat_length_measure;
/* ************** ENTITIES */
///////// ENTITY poly_line
EntityDescriptor * example_schemae_poly_line = 0;
AttrDescriptor * a_0points = 0;
SdaiPoly_line::SdaiPoly_line( ) {
/* no SuperTypes */
eDesc = example_schemae_poly_line;
STEPattribute * a = new STEPattribute( *a_0points, &_points );
a -> set_null();
attributes.push( a );
}
SdaiPoly_line::SdaiPoly_line( SdaiPoly_line & e ) {
CopyAs( ( SDAI_Application_instance_ptr ) &e );
}
SdaiPoly_line::~SdaiPoly_line() { }
SdaiPoly_line::SdaiPoly_line( SDAI_Application_instance * se, int * addAttrs ) {
/* Set this to point to the head entity. */
HeadEntity( se );
/* no SuperTypes */
eDesc = example_schemae_poly_line;
STEPattribute * a = new STEPattribute( *a_0points, &_points );
a -> set_null();
/* Put attribute on this class' attributes list so the */
/*access functions still work. */
attributes.push( a );
/* Put attribute on the attributes list for the */
/* main inheritance heirarchy. */
if( !addAttrs || addAttrs[0] ) {
se->attributes.push( a );
}
}
const EntityAggregate_ptr
SdaiPoly_line::points_() const {
return ( EntityAggregate_ptr ) &_points;
}
void
SdaiPoly_line::points_( const EntityAggregate_ptr x )
{
_points.ShallowCopy( *x );
}
///////// END_ENTITY poly_line
///////// ENTITY shape
EntityDescriptor * example_schemae_shape = 0;
AttrDescriptor * a_1item_name = 0;
AttrDescriptor * a_2item_color = 0;
AttrDescriptor * a_3number_of_sides = 0;
SdaiShape::SdaiShape( ) {
/* no SuperTypes */
eDesc = example_schemae_shape;
STEPattribute * a = new STEPattribute( *a_1item_name, &_item_name );
a -> set_null();
attributes.push( a );
a = new STEPattribute( *a_2item_color, &_item_color );
a -> set_null();
attributes.push( a );
a = new STEPattribute( *a_3number_of_sides, &_number_of_sides );
a -> set_null();
attributes.push( a );
}
SdaiShape::SdaiShape( SdaiShape & e ) {
CopyAs( ( SDAI_Application_instance_ptr ) &e );
}
SdaiShape::~SdaiShape() { }
SdaiShape::SdaiShape( SDAI_Application_instance * se, int * addAttrs ) {
/* Set this to point to the head entity. */
HeadEntity( se );
/* no SuperTypes */
eDesc = example_schemae_shape;
STEPattribute * a = new STEPattribute( *a_1item_name, &_item_name );
a -> set_null();
/* Put attribute on this class' attributes list so the */
/*access functions still work. */
attributes.push( a );
/* Put attribute on the attributes list for the */
/* main inheritance heirarchy. */
if( !addAttrs || addAttrs[0] ) {
se->attributes.push( a );
}
a = new STEPattribute( *a_2item_color, &_item_color );
a -> set_null();
/* Put attribute on this class' attributes list so the */
/*access functions still work. */
attributes.push( a );
/* Put attribute on the attributes list for the */
/* main inheritance heirarchy. */
if( !addAttrs || addAttrs[0] ) {
se->attributes.push( a );
}
a = new STEPattribute( *a_3number_of_sides, &_number_of_sides );
a -> set_null();
/* Put attribute on this class' attributes list so the */
/*access functions still work. */
attributes.push( a );
/* Put attribute on the attributes list for the */
/* main inheritance heirarchy. */
if( !addAttrs || addAttrs[0] ) {
se->attributes.push( a );
}
}
const SdaiLabel
SdaiShape::item_name_() const {
return ( const SdaiLabel ) _item_name;
}
void
SdaiShape::item_name_( const SdaiLabel x )
{
_item_name = x;
}
const SdaiColor_var
SdaiShape::item_color_() const {
return ( Color ) _item_color;
}
void
SdaiShape::item_color_( const SdaiColor_var x )
{
_item_color.put( x );
}
const SDAI_Integer
SdaiShape::number_of_sides_() const {
return ( const SDAI_Integer ) _number_of_sides;
}
void
SdaiShape::number_of_sides_( const SDAI_Integer x )
{
_number_of_sides = x;
}
///////// END_ENTITY shape
///////// ENTITY rectangle
EntityDescriptor * example_schemae_rectangle = 0;
AttrDescriptor * a_4height = 0;
AttrDescriptor * a_5width = 0;
SdaiRectangle::SdaiRectangle( ) {
/* parent: SdaiShape */
/* Ignore the first parent since it is */
/* part of the main inheritance hierarchy */
eDesc = example_schemae_rectangle;
STEPattribute * a = new STEPattribute( *a_4height, &_height );
a -> set_null();
attributes.push( a );
a = new STEPattribute( *a_5width, &_width );
a -> set_null();
attributes.push( a );
}
SdaiRectangle::SdaiRectangle( SdaiRectangle & e ) {
CopyAs( ( SDAI_Application_instance_ptr ) &e );
}
SdaiRectangle::~SdaiRectangle() { }
#ifdef __OSTORE__
void
SdaiRectangle::Access_hook_in( void * object,
enum os_access_reason reason, void * user_data,
void * start_range, void * end_range ) {
if( debug_access_hooks ) {
cout << "SdaiRectangle: virtual access function." << endl;
}
SdaiRectangle_access_hook_in( object, reason, user_data, start_range, end_range );
}
void
SdaiRectangle_access_hook_in( void * object,
enum os_access_reason reason, void * user_data,
void * start_range, void * end_range ) {
if( debug_access_hooks ) {
cout << "SdaiRectangle: non-virtual access function." << endl;
}
SDAI_Application_instance * sent = ( SDAI_Application_instance * )object;
if( debug_access_hooks ) {
cout << "STEPfile_id: " << sent->STEPfile_id << endl;
}
SdaiRectangle * ent = ( SdaiRectangle * )sent;
// SdaiRectangle *ent = (SdaiRectangle *)object;
if( ent->eDesc == 0 ) {
ent->eDesc = example_schemae_rectangle;
}
ent->attributes[3].aDesc = a_4height;
ent->attributes[4].aDesc = a_5width;
}
SDAI_Application_instance_ptr
create_SdaiRectangle( os_database * db ) {
if( db ) {
SDAI_DAObject_ptr ap = new( db, SdaiRectangle::get_os_typespec() )
SdaiRectangle;
return ( SDAI_Application_instance_ptr ) ap;
// return (SDAI_Application_instance_ptr)) new (db, SdaiRectangle::get_os_typespec()
// SdaiRectangle;
} else {
return ( SDAI_Application_instance_ptr ) new SdaiRectangle;
}
}
#endif
SdaiRectangle::SdaiRectangle( SDAI_Application_instance * se, int * addAttrs ) : SdaiShape( se, ( addAttrs ? &addAttrs[1] : 0 ) ) {
/* Set this to point to the head entity. */
HeadEntity( se );
/* parent: SdaiShape */
/* Ignore the first parent since it is */
/* part of the main inheritance hierarchy */
eDesc = example_schemae_rectangle;
STEPattribute * a = new STEPattribute( *a_4height, &_height );
a -> set_null();
/* Put attribute on this class' attributes list so the */
/*access functions still work. */
attributes.push( a );
/* Put attribute on the attributes list for the */
/* main inheritance heirarchy. */
if( !addAttrs || addAttrs[0] ) {
se->attributes.push( a );
}
a = new STEPattribute( *a_5width, &_width );
a -> set_null();
/* Put attribute on this class' attributes list so the */
/*access functions still work. */
attributes.push( a );
/* Put attribute on the attributes list for the */
/* main inheritance heirarchy. */
if( !addAttrs || addAttrs[0] ) {
se->attributes.push( a );
}
}
const SdaiLength_measure
SdaiRectangle::height_() const {
return ( const SdaiLength_measure ) _height;
}
void
SdaiRectangle::height_( const SdaiLength_measure x )
{
_height = x;
}
const SdaiLength_measure
SdaiRectangle::width_() const {
return ( const SdaiLength_measure ) _width;
}
void
SdaiRectangle::width_( const SdaiLength_measure x )
{
_width = x;
}
/* The first parent's access functions are */
/* above or covered by inherited functions. */
///////// END_ENTITY rectangle
///////// ENTITY square
EntityDescriptor * example_schemae_square = 0;
SdaiSquare::SdaiSquare( ) {
/* parent: SdaiRectangle */
/* Ignore the first parent since it is */
/* part of the main inheritance hierarchy */
eDesc = example_schemae_square;
}
SdaiSquare::SdaiSquare( SdaiSquare & e ) {
CopyAs( ( SDAI_Application_instance_ptr ) &e );
}
SdaiSquare::~SdaiSquare() { }
SdaiSquare::SdaiSquare( SDAI_Application_instance * se, int * addAttrs ) : SdaiRectangle( se, ( addAttrs ? &addAttrs[1] : 0 ) ) {
/* Set this to point to the head entity. */
HeadEntity( se );
/* parent: SdaiRectangle */
/* Ignore the first parent since it is */
/* part of the main inheritance hierarchy */
eDesc = example_schemae_square;
}
/* The first parent's access functions are */
/* above or covered by inherited functions. */
///////// END_ENTITY square
///////// ENTITY triangle
EntityDescriptor * example_schemae_triangle = 0;
AttrDescriptor * a_6side1_length = 0;
AttrDescriptor * a_7side2_length = 0;
AttrDescriptor * a_8side3_length = 0;
SdaiTriangle::SdaiTriangle( ) {
/* parent: SdaiShape */
/* Ignore the first parent since it is */
/* part of the main inheritance hierarchy */
eDesc = example_schemae_triangle;
STEPattribute * a = new STEPattribute( *a_6side1_length, &_side1_length );
a -> set_null();
attributes.push( a );
a = new STEPattribute( *a_7side2_length, &_side2_length );
a -> set_null();
attributes.push( a );
a = new STEPattribute( *a_8side3_length, &_side3_length );
a -> set_null();
attributes.push( a );
}
SdaiTriangle::SdaiTriangle( SdaiTriangle & e ) {
CopyAs( ( SDAI_Application_instance_ptr ) &e );
}
SdaiTriangle::~SdaiTriangle() { }
SdaiTriangle::SdaiTriangle( SDAI_Application_instance * se, int * addAttrs ) : SdaiShape( se, ( addAttrs ? &addAttrs[1] : 0 ) ) {
/* Set this to point to the head entity. */
HeadEntity( se );
/* parent: SdaiShape */
/* Ignore the first parent since it is */
/* part of the main inheritance hierarchy */
eDesc = example_schemae_triangle;
STEPattribute * a = new STEPattribute( *a_6side1_length, &_side1_length );
a -> set_null();
/* Put attribute on this class' attributes list so the */
/*access functions still work. */
attributes.push( a );
/* Put attribute on the attributes list for the */
/* main inheritance heirarchy. */
if( !addAttrs || addAttrs[0] ) {
se->attributes.push( a );
}
a = new STEPattribute( *a_7side2_length, &_side2_length );
a -> set_null();
/* Put attribute on this class' attributes list so the */
/*access functions still work. */
attributes.push( a );
/* Put attribute on the attributes list for the */
/* main inheritance heirarchy. */
if( !addAttrs || addAttrs[0] ) {
se->attributes.push( a );
}
a = new STEPattribute( *a_8side3_length, &_side3_length );
a -> set_null();
/* Put attribute on this class' attributes list so the */
/*access functions still work. */
attributes.push( a );
/* Put attribute on the attributes list for the */
/* main inheritance heirarchy. */
if( !addAttrs || addAttrs[0] ) {
se->attributes.push( a );
}
}
const SdaiLength_measure
SdaiTriangle::side1_length_() const {
return ( const SdaiLength_measure ) _side1_length;
}
void
SdaiTriangle::side1_length_( const SdaiLength_measure x )
{
_side1_length = x;
}
const SdaiLength_measure
SdaiTriangle::side2_length_() const {
return ( const SdaiLength_measure ) _side2_length;
}
void
SdaiTriangle::side2_length_( const SdaiLength_measure x )
{
_side2_length = x;
}
const SdaiLength_measure
SdaiTriangle::side3_length_() const {
return ( const SdaiLength_measure ) _side3_length;
}
void
SdaiTriangle::side3_length_( const SdaiLength_measure x )
{
_side3_length = x;
}
/* The first parent's access functions are */
/* above or covered by inherited functions. */
///////// END_ENTITY triangle
///////// ENTITY circle
EntityDescriptor * example_schemae_circle = 0;
AttrDescriptor * a_9radius = 0;
SdaiCircle::SdaiCircle( ) {
/* parent: SdaiShape */
/* Ignore the first parent since it is */
/* part of the main inheritance hierarchy */
eDesc = example_schemae_circle;
STEPattribute * a = new STEPattribute( *a_9radius, &_radius );
a -> set_null();
attributes.push( a );
}
SdaiCircle::SdaiCircle( SdaiCircle & e ) {
CopyAs( ( SDAI_Application_instance_ptr ) &e );
}
SdaiCircle::~SdaiCircle() { }
SdaiCircle::SdaiCircle( SDAI_Application_instance * se, int * addAttrs ) : SdaiShape( se, ( addAttrs ? &addAttrs[1] : 0 ) ) {
/* Set this to point to the head entity. */
HeadEntity( se );
/* parent: SdaiShape */
/* Ignore the first parent since it is */
/* part of the main inheritance hierarchy */
eDesc = example_schemae_circle;
STEPattribute * a = new STEPattribute( *a_9radius, &_radius );
a -> set_null();
/* Put attribute on this class' attributes list so the */
/*access functions still work. */
attributes.push( a );
/* Put attribute on the attributes list for the */
/* main inheritance heirarchy. */
if( !addAttrs || addAttrs[0] ) {
se->attributes.push( a );
}
}
const SDAI_Real
SdaiCircle::radius_() const {
return ( const SDAI_Real ) _radius;
}
void
SdaiCircle::radius_( const SDAI_Real x )
{
_radius = x;
}
/* The first parent's access functions are */
/* above or covered by inherited functions. */
///////// END_ENTITY circle
///////// ENTITY line
EntityDescriptor * example_schemae_line = 0;
AttrDescriptor * a_10end_point_one = 0;
AttrDescriptor * a_11end_point_two = 0;
SdaiLine::SdaiLine( ) {
/* no SuperTypes */
eDesc = example_schemae_line;
STEPattribute * a = new STEPattribute( *a_10end_point_one, ( SDAI_Application_instance_ptr * ) &_end_point_one );
a -> set_null();
attributes.push( a );
a = new STEPattribute( *a_11end_point_two, ( SDAI_Application_instance_ptr * ) &_end_point_two );
a -> set_null();
attributes.push( a );
}
SdaiLine::SdaiLine( SdaiLine & e ) {
CopyAs( ( SDAI_Application_instance_ptr ) &e );
}
SdaiLine::~SdaiLine() { }
SdaiLine::SdaiLine( SDAI_Application_instance * se, int * addAttrs ) {
/* Set this to point to the head entity. */
HeadEntity( se );
/* no SuperTypes */
eDesc = example_schemae_line;
STEPattribute * a = new STEPattribute( *a_10end_point_one, ( SDAI_Application_instance_ptr * ) &_end_point_one );
a -> set_null();
/* Put attribute on this class' attributes list so the */
/*access functions still work. */
attributes.push( a );
/* Put attribute on the attributes list for the */
/* main inheritance heirarchy. */
if( !addAttrs || addAttrs[0] ) {
se->attributes.push( a );
}
a = new STEPattribute( *a_11end_point_two, ( SDAI_Application_instance_ptr * ) &_end_point_two );
a -> set_null();
/* Put attribute on this class' attributes list so the */
/*access functions still work. */
attributes.push( a );
/* Put attribute on the attributes list for the */
/* main inheritance heirarchy. */
if( !addAttrs || addAttrs[0] ) {
se->attributes.push( a );
}
}
const SdaiCartesian_point_ptr
SdaiLine::end_point_one_() const {
return ( SdaiCartesian_point_ptr ) _end_point_one;
}
void
SdaiLine::end_point_one_( const SdaiCartesian_point_ptr x )
{
_end_point_one = x;
}
const SdaiCartesian_point_ptr
SdaiLine::end_point_two_() const {
return ( SdaiCartesian_point_ptr ) _end_point_two;
}
void
SdaiLine::end_point_two_( const SdaiCartesian_point_ptr x )
{
_end_point_two = x;
}
///////// END_ENTITY line
///////// ENTITY cartesian_point
EntityDescriptor * example_schemae_cartesian_point = 0;
AttrDescriptor * a_12x = 0;
AttrDescriptor * a_13y = 0;
AttrDescriptor * a_14z = 0;
SdaiCartesian_point::SdaiCartesian_point( ) {
/* no SuperTypes */
eDesc = example_schemae_cartesian_point;
STEPattribute * a = new STEPattribute( *a_12x, &_x );
a -> set_null();
attributes.push( a );
a = new STEPattribute( *a_13y, &_y );
a -> set_null();
attributes.push( a );
a = new STEPattribute( *a_14z, &_z );
a -> set_null();
attributes.push( a );
}
SdaiCartesian_point::SdaiCartesian_point( SdaiCartesian_point & e ) {
CopyAs( ( SDAI_Application_instance_ptr ) &e );
}
SdaiCartesian_point::~SdaiCartesian_point() { }
SdaiCartesian_point::SdaiCartesian_point( SDAI_Application_instance * se, int * addAttrs ) {
/* Set this to point to the head entity. */
HeadEntity( se );
/* no SuperTypes */
eDesc = example_schemae_cartesian_point;
STEPattribute * a = new STEPattribute( *a_12x, &_x );
a -> set_null();
/* Put attribute on this class' attributes list so the */
/*access functions still work. */
attributes.push( a );
/* Put attribute on the attributes list for the */
/* main inheritance heirarchy. */
if( !addAttrs || addAttrs[0] ) {
se->attributes.push( a );
}
a = new STEPattribute( *a_13y, &_y );
a -> set_null();
/* Put attribute on this class' attributes list so the */
/*access functions still work. */
attributes.push( a );
/* Put attribute on the attributes list for the */
/* main inheritance heirarchy. */
if( !addAttrs || addAttrs[0] ) {
se->attributes.push( a );
}
a = new STEPattribute( *a_14z, &_z );
a -> set_null();
/* Put attribute on this class' attributes list so the */
/*access functions still work. */
attributes.push( a );
/* Put attribute on the attributes list for the */
/* main inheritance heirarchy. */
if( !addAttrs || addAttrs[0] ) {
se->attributes.push( a );
}
}
const SdaiPoint
SdaiCartesian_point::x_() const {
return ( const SdaiPoint ) _x;
}
void
SdaiCartesian_point::x_( const SdaiPoint x )
{
_x = x;
}
const SdaiPoint
SdaiCartesian_point::y_() const {
return ( const SdaiPoint ) _y;
}
void
SdaiCartesian_point::y_( const SdaiPoint x )
{
_y = x;
}
const SdaiPoint
SdaiCartesian_point::z_() const {
return ( const SdaiPoint ) _z;
}
void
SdaiCartesian_point::z_( const SdaiPoint x )
{
_z = x;
}
///////// END_ENTITY cartesian_point
SDAI_Model_contents_ptr create_SdaiModel_contents_example_schema() {
return new SdaiModel_contents_example_schema ;
}
SdaiModel_contents_example_schema::SdaiModel_contents_example_schema() {
SDAI_Entity_extent_ptr eep = ( SDAI_Entity_extent_ptr )0;
eep = new SDAI_Entity_extent ;
eep->definition_( example_schemae_poly_line );
_folders.Append( eep );
eep = new SDAI_Entity_extent ;
eep->definition_( example_schemae_shape );
_folders.Append( eep );
eep = new SDAI_Entity_extent ;
eep->definition_( example_schemae_rectangle );
_folders.Append( eep );
eep = new SDAI_Entity_extent ;
eep->definition_( example_schemae_square );
_folders.Append( eep );
eep = new SDAI_Entity_extent ;
eep->definition_( example_schemae_triangle );
_folders.Append( eep );
eep = new SDAI_Entity_extent ;
eep->definition_( example_schemae_circle );
_folders.Append( eep );
eep = new SDAI_Entity_extent ;
eep->definition_( example_schemae_line );
_folders.Append( eep );
eep = new SDAI_Entity_extent ;
eep->definition_( example_schemae_cartesian_point );
_folders.Append( eep );
}
SdaiPoly_line__set_var SdaiModel_contents_example_schema::SdaiPoly_line_get_extents() {
return ( SdaiPoly_line__set_var )( ( _folders.retrieve( 0 ) )->instances_() );
}
SdaiShape__set_var SdaiModel_contents_example_schema::SdaiShape_get_extents() {
return ( SdaiShape__set_var )( ( _folders.retrieve( 1 ) )->instances_() );
}
SdaiRectangle__set_var SdaiModel_contents_example_schema::SdaiRectangle_get_extents() {
return ( SdaiRectangle__set_var )( ( _folders.retrieve( 2 ) )->instances_() );
}
SdaiSquare__set_var SdaiModel_contents_example_schema::SdaiSquare_get_extents() {
return ( SdaiSquare__set_var )( ( _folders.retrieve( 3 ) )->instances_() );
}
SdaiTriangle__set_var SdaiModel_contents_example_schema::SdaiTriangle_get_extents() {
return ( SdaiTriangle__set_var )( ( _folders.retrieve( 4 ) )->instances_() );
}
SdaiCircle__set_var SdaiModel_contents_example_schema::SdaiCircle_get_extents() {
return ( SdaiCircle__set_var )( ( _folders.retrieve( 5 ) )->instances_() );
}
SdaiLine__set_var SdaiModel_contents_example_schema::SdaiLine_get_extents() {
return ( SdaiLine__set_var )( ( _folders.retrieve( 6 ) )->instances_() );
}
SdaiCartesian_point__set_var SdaiModel_contents_example_schema::SdaiCartesian_point_get_extents() {
return ( SdaiCartesian_point__set_var )( ( _folders.retrieve( 7 ) )->instances_() );
}
#endif
-418
View File
@@ -1,418 +0,0 @@
#ifndef SDAIEXAMPLE_SCHEMA_H
#define SDAIEXAMPLE_SCHEMA_H
// This file was generated by fedex_plus. You probably don't want to edit
// it since your modifications will be lost if fedex_plus is used to
// regenerate it.
/* $Id$ */
#ifndef SCHEMA_H
#include <schema.h>
#endif
/* ************** TYPES */
////////// ENUMERATION TYPE color
enum Color {
Color__red,
Color__green,
Color__blue,
Color__yellow,
Color__orange,
Color__white,
Color__black,
Color__brown,
Color_unset
};
class SdaiColor_var : public SDAI_Enum {
protected:
EnumTypeDescriptor * type;
public:
SdaiColor_var( const char * n = 0, EnumTypeDescriptor * et = example_schemat_color );
SdaiColor_var( Color e, EnumTypeDescriptor * et = example_schemat_color )
: type( et ) {
set_value( e );
}
~SdaiColor_var() { }
SdaiColor_var & operator= ( const SdaiColor_var & e ) {
set_value( e );
return *this;
}
operator Color() const;
inline virtual const char * Name() const {
return type->Name();
}
inline virtual int no_elements() const {
return 8;
}
virtual const char * element_at( int n ) const;
};
typedef SdaiColor_var * SdaiColor_var_ptr;
SDAI_Enum * create_SdaiColor_var();
class SdaiColor_vars : public EnumAggregate {
protected:
EnumTypeDescriptor * enum_type;
public:
SdaiColor_vars( EnumTypeDescriptor * = example_schemat_color );
virtual ~SdaiColor_vars();
virtual SingleLinkNode * NewNode() {
return new EnumNode( new SdaiColor_var( "", enum_type ) );
}
};
typedef SdaiColor_vars * SdaiColor_vars_ptr;
STEPaggregate * create_SdaiColor_vars();
////////// END ENUMERATION color
// ***** Build the SELECT Types
/* ************** ENTITIES */
// ***** Print Entity Classes
///////// ENTITY poly_line
extern AttrDescriptor * a_0points;
class SdaiPoly_line : public SDAI_Application_instance {
protected:
EntityAggregate _points ; // of line
public:
SdaiPoly_line( );
SdaiPoly_line( SDAI_Application_instance * se, int * addAttrs = 0 );
SdaiPoly_line( SdaiPoly_line & e );
~SdaiPoly_line();
int opcode() {
return 0 ;
}
const EntityAggregate_ptr points_() const;
void points_( const EntityAggregate_ptr x );
};
inline SdaiPoly_line *
create_SdaiPoly_line() {
return new SdaiPoly_line ;
}
///////// END_ENTITY poly_line
///////// ENTITY shape
extern AttrDescriptor * a_1item_name;
extern AttrDescriptor * a_2item_color;
extern AttrDescriptor * a_3number_of_sides;
class SdaiShape : public SDAI_Application_instance {
protected:
SDAI_String _item_name ;
SdaiColor_var _item_color ; // OPTIONAL
SDAI_Integer _number_of_sides ;
public:
SdaiShape( );
SdaiShape( SDAI_Application_instance * se, int * addAttrs = 0 );
SdaiShape( SdaiShape & e );
~SdaiShape();
int opcode() {
return 1 ;
}
const SdaiLabel item_name_() const;
void item_name_( const SdaiLabel x );
const SdaiColor_var item_color_() const;
void item_color_( const SdaiColor_var x );
const SDAI_Integer number_of_sides_() const;
void number_of_sides_( const SDAI_Integer x );
};
inline SdaiShape *
create_SdaiShape() {
return new SdaiShape ;
}
///////// END_ENTITY shape
///////// ENTITY rectangle
extern AttrDescriptor * a_4height;
extern AttrDescriptor * a_5width;
class SdaiRectangle : public SdaiShape {
protected:
SDAI_Real _height ;
SDAI_Real _width ;
public:
SdaiRectangle( );
SdaiRectangle( SDAI_Application_instance * se, int * addAttrs = 0 );
SdaiRectangle( SdaiRectangle & e );
~SdaiRectangle();
int opcode() {
return 2 ;
}
const SdaiLength_measure height_() const;
void height_( const SdaiLength_measure x );
const SdaiLength_measure width_() const;
void width_( const SdaiLength_measure x );
/* The first parent's access functions are */
/* above or covered by inherited functions. */
};
inline SdaiRectangle *
create_SdaiRectangle() {
return new SdaiRectangle ;
}
///////// END_ENTITY rectangle
///////// ENTITY square
class SdaiSquare : public SdaiRectangle {
protected:
public:
SdaiSquare( );
SdaiSquare( SDAI_Application_instance * se, int * addAttrs = 0 );
SdaiSquare( SdaiSquare & e );
~SdaiSquare();
int opcode() {
return 3 ;
}
/* The first parent's access functions are */
/* above or covered by inherited functions. */
};
inline SdaiSquare *
create_SdaiSquare() {
return new SdaiSquare ;
}
///////// END_ENTITY square
///////// ENTITY triangle
extern AttrDescriptor * a_6side1_length;
extern AttrDescriptor * a_7side2_length;
extern AttrDescriptor * a_8side3_length;
class SdaiTriangle : public SdaiShape {
protected:
SDAI_Real _side1_length ;
SDAI_Real _side2_length ;
SDAI_Real _side3_length ;
public:
SdaiTriangle( );
SdaiTriangle( SDAI_Application_instance * se, int * addAttrs = 0 );
SdaiTriangle( SdaiTriangle & e );
~SdaiTriangle();
int opcode() {
return 4 ;
}
const SdaiLength_measure side1_length_() const;
void side1_length_( const SdaiLength_measure x );
const SdaiLength_measure side2_length_() const;
void side2_length_( const SdaiLength_measure x );
const SdaiLength_measure side3_length_() const;
void side3_length_( const SdaiLength_measure x );
/* The first parent's access functions are */
/* above or covered by inherited functions. */
};
inline SdaiTriangle *
create_SdaiTriangle() {
return new SdaiTriangle ;
}
///////// END_ENTITY triangle
///////// ENTITY circle
extern AttrDescriptor * a_9radius;
class SdaiCircle : public SdaiShape {
protected:
SDAI_Real _radius ;
public:
SdaiCircle( );
SdaiCircle( SDAI_Application_instance * se, int * addAttrs = 0 );
SdaiCircle( SdaiCircle & e );
~SdaiCircle();
int opcode() {
return 5 ;
}
const SDAI_Real radius_() const;
void radius_( const SDAI_Real x );
/* The first parent's access functions are */
/* above or covered by inherited functions. */
};
inline SdaiCircle *
create_SdaiCircle() {
return new SdaiCircle ;
}
///////// END_ENTITY circle
///////// ENTITY line
extern AttrDescriptor * a_10end_point_one;
extern AttrDescriptor * a_11end_point_two;
class SdaiLine : public SDAI_Application_instance {
protected:
SDAI_Application_instance_ptr _end_point_one ;
SDAI_Application_instance_ptr _end_point_two ;
public:
SdaiLine( );
SdaiLine( SDAI_Application_instance * se, int * addAttrs = 0 );
SdaiLine( SdaiLine & e );
~SdaiLine();
int opcode() {
return 6 ;
}
const SdaiCartesian_point_ptr end_point_one_() const;
void end_point_one_( const SdaiCartesian_point_ptr x );
const SdaiCartesian_point_ptr end_point_two_() const;
void end_point_two_( const SdaiCartesian_point_ptr x );
};
inline SdaiLine *
create_SdaiLine() {
return new SdaiLine ;
}
///////// END_ENTITY line
///////// ENTITY cartesian_point
extern AttrDescriptor * a_12x;
extern AttrDescriptor * a_13y;
extern AttrDescriptor * a_14z;
class SdaiCartesian_point : public SDAI_Application_instance {
protected:
SDAI_Real _x ;
SDAI_Real _y ;
SDAI_Real _z ; // OPTIONAL
public:
SdaiCartesian_point( );
SdaiCartesian_point( SDAI_Application_instance * se, int * addAttrs = 0 );
SdaiCartesian_point( SdaiCartesian_point & e );
~SdaiCartesian_point();
int opcode() {
return 7 ;
}
const SdaiPoint x_() const;
void x_( const SdaiPoint x );
const SdaiPoint y_() const;
void y_( const SdaiPoint x );
const SdaiPoint z_() const;
void z_( const SdaiPoint x );
};
inline SdaiCartesian_point *
create_SdaiCartesian_point() {
return new SdaiCartesian_point ;
}
///////// END_ENTITY cartesian_point
// ***** generate Model related pieces
class SdaiModel_contents_example_schema : public SDAI_Model_contents {
public:
SdaiModel_contents_example_schema();
SdaiPoly_line__set_var SdaiPoly_line_get_extents();
SdaiShape__set_var SdaiShape_get_extents();
SdaiRectangle__set_var SdaiRectangle_get_extents();
SdaiSquare__set_var SdaiSquare_get_extents();
SdaiTriangle__set_var SdaiTriangle_get_extents();
SdaiCircle__set_var SdaiCircle_get_extents();
SdaiLine__set_var SdaiLine_get_extents();
SdaiCartesian_point__set_var SdaiCartesian_point_get_extents();
};
typedef SdaiModel_contents_example_schema * SdaiModel_contents_example_schema_ptr;
typedef SdaiModel_contents_example_schema_ptr SdaiModel_contents_example_schema_var;
SDAI_Model_contents_ptr create_SdaiModel_contents_example_schema();
#endif
@@ -1,152 +0,0 @@
#ifndef SDAIEXAMPLE_SCHEMA_INIT_CC
#define SDAIEXAMPLE_SCHEMA_INIT_CC
// This file was generated by fedex_plus. You probably don't want to edit
// it since your modifications will be lost if fedex_plus is used to
// regenerate it.
/* $Id$ */
#ifndef SCHEMA_H
#include <schema.h>
#endif
#include <Registry.h>
void
SdaiEXAMPLE_SCHEMAInit( Registry & reg ) {
reg.AddType( *example_schemat_color );
example_schemat_label->ReferentType( t_sdaiSTRING );
reg.AddType( *example_schemat_label );
example_schemat_point->ReferentType( t_sdaiREAL );
reg.AddType( *example_schemat_point );
example_schemat_length_measure->ReferentType( t_sdaiREAL );
reg.AddType( *example_schemat_length_measure );
///////// ENTITY poly_line
ListTypeDescriptor * t_0 = new ListTypeDescriptor;
t_0->AssignAggrCreator( ( AggregateCreator ) create_EntityAggregate ); // Creator function
t_0->FundamentalType( LIST_TYPE );
t_0->Description( "LIST OF line" );
t_0->OriginatingSchema( s_example_schema );
t_0->ReferentType( example_schemae_line );
a_0points =
new AttrDescriptor( "points", t_0, SCLLOG( LFalse ), SCLLOG( LFalse ), AttrType_Explicit,
*example_schemae_poly_line );
example_schemae_poly_line->AddExplicitAttr( a_0points );
reg.AddEntity( *example_schemae_poly_line );
///////// END_ENTITY poly_line
///////// ENTITY shape
example_schemae_shape->AddSupertype_Stmt( "SUPERTYPE OF (ONEOF (circle,triangle,rectangle))" );
a_1item_name =
new AttrDescriptor( "item_name", example_schemat_label,
SCLLOG( LFalse ), SCLLOG( LFalse ), AttrType_Explicit,
*example_schemae_shape );
example_schemae_shape->AddExplicitAttr( a_1item_name );
a_2item_color =
new AttrDescriptor( "item_color", example_schemat_color,
SCLLOG( LTrue ), SCLLOG( LFalse ), AttrType_Explicit,
*example_schemae_shape );
example_schemae_shape->AddExplicitAttr( a_2item_color );
a_3number_of_sides =
new AttrDescriptor( "number_of_sides", t_sdaiINTEGER,
SCLLOG( LFalse ), SCLLOG( LFalse ), AttrType_Explicit,
*example_schemae_shape );
example_schemae_shape->AddExplicitAttr( a_3number_of_sides );
reg.AddEntity( *example_schemae_shape );
///////// END_ENTITY shape
///////// ENTITY rectangle
example_schemae_rectangle->AddSupertype_Stmt( "SUPERTYPE OF (square)" );
example_schemae_rectangle->AddSupertype( example_schemae_shape );
example_schemae_shape->AddSubtype( example_schemae_rectangle );
a_4height =
new AttrDescriptor( "height", example_schemat_length_measure,
SCLLOG( LFalse ), SCLLOG( LFalse ), AttrType_Explicit,
*example_schemae_rectangle );
example_schemae_rectangle->AddExplicitAttr( a_4height );
a_5width =
new AttrDescriptor( "width", example_schemat_length_measure,
SCLLOG( LFalse ), SCLLOG( LFalse ), AttrType_Explicit,
*example_schemae_rectangle );
example_schemae_rectangle->AddExplicitAttr( a_5width );
reg.AddEntity( *example_schemae_rectangle );
///////// END_ENTITY rectangle
///////// ENTITY square
example_schemae_square->AddSupertype( example_schemae_rectangle );
example_schemae_rectangle->AddSubtype( example_schemae_square );
reg.AddEntity( *example_schemae_square );
///////// END_ENTITY square
///////// ENTITY triangle
example_schemae_triangle->AddSupertype( example_schemae_shape );
example_schemae_shape->AddSubtype( example_schemae_triangle );
a_6side1_length =
new AttrDescriptor( "side1_length", example_schemat_length_measure,
SCLLOG( LFalse ), SCLLOG( LFalse ), AttrType_Explicit,
*example_schemae_triangle );
example_schemae_triangle->AddExplicitAttr( a_6side1_length );
a_7side2_length =
new AttrDescriptor( "side2_length", example_schemat_length_measure,
SCLLOG( LFalse ), SCLLOG( LFalse ), AttrType_Explicit,
*example_schemae_triangle );
example_schemae_triangle->AddExplicitAttr( a_7side2_length );
a_8side3_length =
new AttrDescriptor( "side3_length", example_schemat_length_measure,
SCLLOG( LFalse ), SCLLOG( LFalse ), AttrType_Explicit,
*example_schemae_triangle );
example_schemae_triangle->AddExplicitAttr( a_8side3_length );
reg.AddEntity( *example_schemae_triangle );
///////// END_ENTITY triangle
///////// ENTITY circle
example_schemae_circle->AddSupertype( example_schemae_shape );
example_schemae_shape->AddSubtype( example_schemae_circle );
a_9radius =
new AttrDescriptor( "radius", t_sdaiREAL,
SCLLOG( LFalse ), SCLLOG( LFalse ), AttrType_Explicit,
*example_schemae_circle );
example_schemae_circle->AddExplicitAttr( a_9radius );
reg.AddEntity( *example_schemae_circle );
///////// END_ENTITY circle
///////// ENTITY line
a_10end_point_one =
new AttrDescriptor( "end_point_one", example_schemae_cartesian_point,
SCLLOG( LFalse ), SCLLOG( LFalse ), AttrType_Explicit,
*example_schemae_line );
example_schemae_line->AddExplicitAttr( a_10end_point_one );
a_11end_point_two =
new AttrDescriptor( "end_point_two", example_schemae_cartesian_point,
SCLLOG( LFalse ), SCLLOG( LFalse ), AttrType_Explicit,
*example_schemae_line );
example_schemae_line->AddExplicitAttr( a_11end_point_two );
reg.AddEntity( *example_schemae_line );
///////// END_ENTITY line
///////// ENTITY cartesian_point
a_12x =
new AttrDescriptor( "x", example_schemat_point,
SCLLOG( LFalse ), SCLLOG( LFalse ), AttrType_Explicit,
*example_schemae_cartesian_point );
example_schemae_cartesian_point->AddExplicitAttr( a_12x );
a_13y =
new AttrDescriptor( "y", example_schemat_point,
SCLLOG( LFalse ), SCLLOG( LFalse ), AttrType_Explicit,
*example_schemae_cartesian_point );
example_schemae_cartesian_point->AddExplicitAttr( a_13y );
a_14z =
new AttrDescriptor( "z", example_schemat_point,
SCLLOG( LTrue ), SCLLOG( LFalse ), AttrType_Explicit,
*example_schemae_cartesian_point );
example_schemae_cartesian_point->AddExplicitAttr( a_14z );
reg.AddEntity( *example_schemae_cartesian_point );
///////// END_ENTITY cartesian_point
}
#endif
-87
View File
@@ -1,87 +0,0 @@
#ifndef SDAICLASSES_H
#define SDAICLASSES_H
// This file was generated by fedex_plus. You probably don't want to edit
// it since your modifications will be lost if fedex_plus is used to
// regenerate it.
/* $Id$ */
#include <schema.h>
// Schema: SdaiEXAMPLE_SCHEMA
extern Schema * s_example_schema;
// Types:
class SdaiColor_vars;
extern EnumTypeDescriptor * example_schemat_color;
typedef SDAI_String SdaiLabel;
extern TypeDescriptor * example_schemat_label;
typedef SDAI_Real SdaiPoint;
extern TypeDescriptor * example_schemat_point;
typedef SDAI_Real SdaiLength_measure;
extern TypeDescriptor * example_schemat_length_measure;
// Entities:
class SdaiPoly_line;
typedef SdaiPoly_line * SdaiPoly_lineH;
typedef SdaiPoly_line * SdaiPoly_line_ptr;
typedef SdaiPoly_line_ptr SdaiPoly_line_var;
#define SdaiPoly_line__set SDAI_DAObject__set
#define SdaiPoly_line__set_var SDAI_DAObject__set_var
extern EntityDescriptor * example_schemae_poly_line;
class SdaiShape;
typedef SdaiShape * SdaiShapeH;
typedef SdaiShape * SdaiShape_ptr;
typedef SdaiShape_ptr SdaiShape_var;
#define SdaiShape__set SDAI_DAObject__set
#define SdaiShape__set_var SDAI_DAObject__set_var
extern EntityDescriptor * example_schemae_shape;
class SdaiRectangle;
typedef SdaiRectangle * SdaiRectangleH;
typedef SdaiRectangle * SdaiRectangle_ptr;
typedef SdaiRectangle_ptr SdaiRectangle_var;
#define SdaiRectangle__set SDAI_DAObject__set
#define SdaiRectangle__set_var SDAI_DAObject__set_var
extern EntityDescriptor * example_schemae_rectangle;
class SdaiSquare;
typedef SdaiSquare * SdaiSquareH;
typedef SdaiSquare * SdaiSquare_ptr;
typedef SdaiSquare_ptr SdaiSquare_var;
#define SdaiSquare__set SDAI_DAObject__set
#define SdaiSquare__set_var SDAI_DAObject__set_var
extern EntityDescriptor * example_schemae_square;
class SdaiTriangle;
typedef SdaiTriangle * SdaiTriangleH;
typedef SdaiTriangle * SdaiTriangle_ptr;
typedef SdaiTriangle_ptr SdaiTriangle_var;
#define SdaiTriangle__set SDAI_DAObject__set
#define SdaiTriangle__set_var SDAI_DAObject__set_var
extern EntityDescriptor * example_schemae_triangle;
class SdaiCircle;
typedef SdaiCircle * SdaiCircleH;
typedef SdaiCircle * SdaiCircle_ptr;
typedef SdaiCircle_ptr SdaiCircle_var;
#define SdaiCircle__set SDAI_DAObject__set
#define SdaiCircle__set_var SDAI_DAObject__set_var
extern EntityDescriptor * example_schemae_circle;
class SdaiLine;
typedef SdaiLine * SdaiLineH;
typedef SdaiLine * SdaiLine_ptr;
typedef SdaiLine_ptr SdaiLine_var;
#define SdaiLine__set SDAI_DAObject__set
#define SdaiLine__set_var SDAI_DAObject__set_var
extern EntityDescriptor * example_schemae_line;
class SdaiCartesian_point;
typedef SdaiCartesian_point * SdaiCartesian_pointH;
typedef SdaiCartesian_point * SdaiCartesian_point_ptr;
typedef SdaiCartesian_point_ptr SdaiCartesian_point_var;
#define SdaiCartesian_point__set SDAI_DAObject__set
#define SdaiCartesian_point__set_var SDAI_DAObject__set_var
extern EntityDescriptor * example_schemae_cartesian_point;
#endif
-70
View File
@@ -1,70 +0,0 @@
/*
* This file contains instantiation statements to create complex
* support structures. The structures will be used in the SCL to
* validate user requests to instantiate complex entities.
*/
#include "complexSupport.h"
ComplexCollect * gencomplex()
/*
* This function contains instantiation statments for all the
* ComplexLists and EntLists in a ComplexCollect. The instan-
* stiation statements were generated in order of lower to
* higher, and last to first to simplify creating some of the
* links between structures. Because of this, the code is not
* very readable, but does the trick.
*/
{
ComplexCollect * cc;
ComplexList * cl;
EntList * node, *child, *next1, *next2, *next3, *next4,
*next5, *next6, *next7, *next8, *next9, *next10,
*next11, *next12, *next13, *next14, *next15,
*next16, *next17, *next18, *next19, *next20,
*next21, *next22, *next23, *next24, *next25,
*next26, *next27, *next28, *next29, *next30;
cc = new ComplexCollect;
// ComplexList with supertype "shape":
node = new SimpleList( "square" );
next4 = node;
node = new SimpleList( "rectangle" );
next4->prev = node;
node->next = next4;
child = node;
node = new AndList;
( ( MultList * )node )->appendList( child );
next3 = node;
node = new SimpleList( "rectangle" );
next3->prev = node;
node->next = next3;
child = node;
node = new OrList;
( ( MultList * )node )->appendList( child );
next2 = node;
node = new SimpleList( "triangle" );
next2->prev = node;
node->next = next2;
next2 = node;
node = new SimpleList( "circle" );
next2->prev = node;
node->next = next2;
child = node;
node = new OrList;
( ( MultList * )node )->appendList( child );
next1 = node;
node = new SimpleList( "shape" );
next1->prev = node;
node->next = next1;
child = node;
node = new AndList;
( ( MultList * )node )->appendList( child );
cl = new ComplexList( ( AndList * )node );
cl->buildList();
cl->head->setLevel( 0 );
cc->insert( cl );
return cc;
}
-29
View File
@@ -1,29 +0,0 @@
#ifndef SCHEMA_CC
#define SCHEMA_CC
// This file was generated by fedex_plus. You probably don't want to edit
// it since your modifications will be lost if fedex_plus is used to
// regenerate it.
/* $Id$ */
#include <schema.h>
class Registry;
void
SchemaInit( Registry & reg ) {
extern void InitSchemasAndEnts( Registry & r );
InitSchemasAndEnts( reg );
extern void SdaiEXAMPLE_SCHEMAInit( Registry & r );
SdaiEXAMPLE_SCHEMAInit( reg );
reg.SetCompCollect( gencomplex() );
}
// Generate a function to be called by Model to help it
// create the necessary Model_contents without the
// dictionary (Registry) handle since it doesn't have a
// predetermined way to access to the handle.
SDAI_Model_contents_ptr GetModelContents( char * schemaName ) {
if( !strcmp( schemaName, "example_schema" ) ) {
return ( SDAI_Model_contents_ptr ) new SdaiModel_contents_example_schema;
}
}
#endif
-34
View File
@@ -1,34 +0,0 @@
#ifndef SCHEMA_H
#define SCHEMA_H
// This file was generated by fedex_plus. You probably don't want to edit
// it since your modifications will be lost if fedex_plus is used to
// regenerate it.
/* $Id$ */
#ifdef SCL_LOGGING
#include <sys/time.h>
#endif
#include <sdai.h>
#include <Registry.h>
#include <STEPaggregate.h>
#include <STEPundefined.h>
#include <ExpDict.h>
#include <STEPattribute.h>
#include <Sdaiclasses.h>
extern void SchemaInit( Registry & );
extern void InitSchemasAndEnts( Registry & );
#include <SdaiEXAMPLE_SCHEMA.h>
extern void SdaiEXAMPLE_SCHEMAInit( Registry & r );
#include <complexSupport.h>
ComplexCollect * gencomplex();
SDAI_Model_contents_ptr GetModelContents( char * schemaName );
#endif
+4 -2
View File
@@ -13,7 +13,7 @@ set(LIBSTEPDAI_SRCS
sdaiString.cc
)
SET(LIBSTEPDAI_PRIVATE_HDRS
SET(SC_CLDAI_HDRS
sdaiApplication_instance_set.h
sdaiBinary.h
sdaiDaObject.h
@@ -25,7 +25,6 @@ SET(LIBSTEPDAI_PRIVATE_HDRS
sdaiObject.h
sdaiSession_instance.h
sdaiString.h
StrUtil.hh
)
include_directories(
@@ -36,3 +35,6 @@ include_directories(
)
SC_ADDLIB(stepdai "${LIBSTEPDAI_SRCS}" "steputils;base")
install(FILES ${SC_CLDAI_HDRS}
DESTINATION ${INCLUDE_INSTALL_DIR}/stepcode/cldai)
+2 -3
View File
@@ -79,17 +79,16 @@ Severity SDAI_Binary::ReadBinary( istream & in, ErrorDescriptor * err, int Assig
}
std::string str;
char c;
char messageBuf[512];
messageBuf[0] = '\0';
int validDelimiters = 1;
in >> ws; // skip white space
if( in.good() ) {
char c;
in.get( c );
if( ( c == '\"' ) || isxdigit( c ) ) {
int validDelimiters = 1;
if( c == '\"' ) {
in.get( c ); // push past the delimiter
// since found a valid delimiter it is now invalid until the
+1
View File
@@ -186,6 +186,7 @@ class SC_DAI_EXPORT SDAI_DAObject : public SDAI_sdaiObject {
virtual ~SDAI_DAObject();
Logical dado_same( SDAI_DAObject_ptr obj ) {
if (obj == this) return LTrue;
return LUnknown;
}
+3 -5
View File
@@ -51,13 +51,11 @@ SDAI_Entity_extent::definition_name_( const SDAI_Entity_name & en ) {
strncpy( _definition_name, en, strlen( en ) + 1 );
}
void
SDAI_Entity_extent::owned_by_( SDAI_Model_contents__list_var & mclv ) {
// _owned_by = mcp;
void SDAI_Entity_extent::owned_by_( SDAI_Model_contents__list_var& mclv ) {
_owned_by = *mclv;
}
SDAI_Model_contents__list_var
SDAI_Entity_extent ::owned_by_() const {
SDAI_Model_contents__list_var SDAI_Entity_extent ::owned_by_() const {
return ( const SDAI_Model_contents__list_var ) &_owned_by;
}
+1 -1
View File
@@ -73,7 +73,7 @@ class SC_DAI_EXPORT SDAI_Entity_extent : public SDAI_Session_instance {
// void definition_(const Entity_ptr& ep);
#endif
void definition_name_( const SDAI_Entity_name & ep );
void owned_by_( SDAI_Model_contents__list_var & mcp );
void owned_by_( SDAI_Model_contents__list_var & mclv );
/*
7.3.3.1 SDAI operation declarations
+7 -10
View File
@@ -141,17 +141,16 @@ Severity SDAI_LOGICAL::ReadEnum( istream & in, ErrorDescriptor * err, int Assign
}
std::string str;
char c;
char messageBuf[512];
messageBuf[0] = '\0';
int validDelimiters = 1;
in >> ws; // skip white space
if( in.good() ) {
char c;
in.get( c );
if( c == '.' || isalpha( c ) ) {
int validDelimiters = 1;
if( c == '.' ) {
in.get( c ); // push past the delimiter
// since found a valid delimiter it is now invalid until the
@@ -343,9 +342,6 @@ SDAI_Enum::SDAI_Enum() {
v = 0;
}
SDAI_Enum::~SDAI_Enum() {
}
/**
* \copydoc set_value( const char * n )
*/
@@ -417,17 +413,16 @@ Severity SDAI_Enum::ReadEnum( istream & in, ErrorDescriptor * err, int AssignVal
}
std::string str;
char c;
char messageBuf[512];
messageBuf[0] = '\0';
int validDelimiters = 1;
in >> ws; // skip white space
if( in.good() ) {
char c;
in.get( c );
if( c == '.' || isalpha( c ) ) {
int validDelimiters = 1;
if( c == '.' ) {
in.get( c ); // push past the delimiter
// since found a valid delimiter it is now invalid until the
@@ -558,8 +553,10 @@ Severity SDAI_Enum::STEPread( istream & in, ErrorDescriptor * err, int optional
const char * SDAI_Enum::asStr( std::string & s ) const {
if( exists() ) {
return const_cast<char *>( ( s = element_at( v ) ).c_str() );
s = element_at( v );
return s.c_str();
} else {
s.clear();
return "";
}
}
+1 -1
View File
@@ -23,9 +23,9 @@ class SC_DAI_EXPORT SDAI_Enum {
virtual int set_value( const char * n );
virtual int set_value( const int n );
SDAI_Enum();
virtual ~SDAI_Enum();
public:
virtual ~SDAI_Enum() {};
void PrintContents( ostream & out = cout ) const {
DebugDisplay( out );
+11 -11
View File
@@ -50,29 +50,29 @@ SDAI_Model_contents::populated_folders_() const {
return ( const SDAI_Entity_extent__set_var )&_populated_folders;
}
SDAI_PID_DA_ptr
SDAI_Model_contents::get_object_pid( const SDAI_DAObject_ptr & d )
const {
SDAI_PID_DA_ptr SDAI_Model_contents::get_object_pid( const SDAI_DAObject_ptr & d ) const {
std::cerr << __FILE__ << ":" << __LINE__ << " - SDAI_Model_contents::get_object_pid() unimplemented!" << std::endl;
(void) d; //unused
return 0;
}
SDAI_DAObject_ptr
SDAI_Model_contents::lookup( const SDAI_PID_DA_ptr & p ) const {
SDAI_DAObject_ptr SDAI_Model_contents::lookup( const SDAI_PID_DA_ptr & p ) const {
std::cerr << __FILE__ << ":" << __LINE__ << " - SDAI_Model_contents::lookup() unimplemented!" << std::endl;
(void) p; //unused
return 0;
}
SDAI_DAObject_ptr
SDAI_Model_contents::CreateEntityInstance( const char * Type ) {
SDAI_DAObject_ptr SDAI_Model_contents::CreateEntityInstance( const char * Type ) {
std::cerr << __FILE__ << ":" << __LINE__ << " - SDAI_Model_contents::CreateEntityInstance() unimplemented!" << std::endl;
(void) Type; //unused
return 0;
}
void
SDAI_Model_contents::AddInstance( const SDAI_DAObject_SDAI_ptr & appInst ) {
void SDAI_Model_contents::AddInstance( const SDAI_DAObject_SDAI_ptr & appInst ) {
_instances.contents_()->Append( appInst );
}
void
SDAI_Model_contents::RemoveInstance( SDAI_DAObject_SDAI_ptr & appInst ) {
void SDAI_Model_contents::RemoveInstance( SDAI_DAObject_SDAI_ptr & appInst ) {
_instances.contents_()->Remove( _instances.contents_()->Index( appInst ) );
}
+1 -1
View File
@@ -41,7 +41,7 @@ class SC_DAI_EXPORT SDAI_Model_contents_instances : public SDAI_DAObject {
}
SDAI_DAObject__set_var contents_() const {
return ( const SDAI_DAObject__set_var ) &_instances;
};
}
};
+4 -1
View File
@@ -9,7 +9,7 @@ set(LIBSTEPEDITOR_SRCS
SdaiSchemaInit.cc
)
SET(LIBSTEPEDITOR_PRIVATE_HDRS
SET(SC_CLEDITOR_HDRS
STEPfile.h
cmdmgr.h
editordefines.h
@@ -28,3 +28,6 @@ include_directories(
)
SC_ADDLIB(stepeditor "${LIBSTEPEDITOR_SRCS}" "stepcore;stepdai;steputils;base")
install(FILES ${SC_CLEDITOR_HDRS}
DESTINATION ${INCLUDE_INSTALL_DIR}/stepcode/cleditor)
+3 -3
View File
@@ -26,15 +26,15 @@ defines a collection of constants used by STEPfile objects for reading
and writing files containing state information from the editing session.
s_HEADER_SCHEMA.cc, s_HEADER_SCHEMA.h, s_HEADER_SCHEMA.init.cc
These files are generated by fedex_plus using the header schema from
These files are generated by exp2cxx using the header schema from
Part 21. The header schema specifies the information in the header
section of an STEP exchange file.
schemaheader.cc, schemaheader.h
These files are generated by fedex_plus using the header schema from
These files are generated by exp2cxx using the header schema from
Part 21. The file names were manually changed from "schema.*" to
"schemaheader.*" in order to avoid naming conflicts when these classes
are linked with another fedex_plus-generated library.
are linked with another exp2cxx-generated library.
seeinfodefault.h
Defines seeInfo, a class that inherits from DisplayNode and has the
+18 -32
View File
@@ -289,16 +289,10 @@ SDAI_Application_instance * STEPfile::HeaderDefaultFileName() {
fn->name_( "" );
fn->time_stamp_( "" );
tmp->StrToVal( "", &_error,
fn->attributes[2].
aDesc -> DomainType(),
_headerInstances );
tmp->StrToVal( "", &_error, fn->attributes[2].getADesc()->DomainType(), _headerInstances );
fn->author_( tmp );
tmp->StrToVal( "", &_error,
fn->attributes[3].
aDesc -> DomainType(),
_headerInstances );
tmp->StrToVal( "", &_error, fn->attributes[3].getADesc()->DomainType(), _headerInstances );
fn->organization_( tmp );
fn->preprocessor_version_( "" );
@@ -324,10 +318,7 @@ SDAI_Application_instance * STEPfile::HeaderDefaultFileSchema() {
SdaiFile_schema * fs = new SdaiFile_schema;
StringAggregate_ptr tmp = new StringAggregate;
tmp->StrToVal( "", &_error,
fs->attributes[0].
aDesc -> DomainType(),
_headerInstances );
tmp->StrToVal( "", &_error, fs->attributes[0].getADesc()->DomainType(), _headerInstances );
fs->schema_identifiers_( tmp );
fs->STEPfile_id = HeaderId( "File_Schema" );
@@ -461,7 +452,7 @@ int STEPfile::ReadData1( istream & in ) {
ErrorDescriptor e;
// PASS 1: create instances
endsec = FoundEndSecKywd( in, _error );
endsec = FoundEndSecKywd( in );
while( in.good() && !endsec ) {
e.ClearErrorMsg();
ReadTokenSeparator( in ); // also skips white space
@@ -484,7 +475,7 @@ int STEPfile::ReadData1( istream & in ) {
if( c != ENTITY_NAME_DELIM ) {
in.putback( c );
while( c != ENTITY_NAME_DELIM && in.good() &&
!( endsec = FoundEndSecKywd( in, _error ) ) ) {
!( endsec = FoundEndSecKywd( in ) ) ) {
tmpbuf.clear();
FindStartOfInstance( in, tmpbuf );
cout << "ERROR: trying to recover from invalid data. skipping: "
@@ -533,7 +524,7 @@ int STEPfile::ReadData1( istream & in ) {
return instance_count;
}
endsec = FoundEndSecKywd( in, _error );
endsec = FoundEndSecKywd( in );
}
} // end while loop
@@ -581,7 +572,7 @@ int STEPfile::ReadData2( istream & in, bool useTechCor ) {
SDAI_Application_instance * obj = ENTITY_NULL;
std::string cmtStr;
int endsec = FoundEndSecKywd( in, _error );
int endsec = FoundEndSecKywd( in );
// PASS 2: read instances
while( in.good() && !endsec ) {
@@ -599,7 +590,7 @@ int STEPfile::ReadData2( istream & in, bool useTechCor ) {
if( c != ENTITY_NAME_DELIM ) {
in.putback( c );
while( c != ENTITY_NAME_DELIM && in.good() &&
!( endsec = FoundEndSecKywd( in, _error ) ) ) {
!( endsec = FoundEndSecKywd( in ) ) ) {
tmpbuf.clear();
FindStartOfInstance( in, tmpbuf );
@@ -653,7 +644,7 @@ int STEPfile::ReadData2( istream & in, bool useTechCor ) {
return valid_insts;
}
endsec = FoundEndSecKywd( in, _error );
endsec = FoundEndSecKywd( in );
}
} // end while loop
@@ -919,7 +910,6 @@ Severity STEPfile::CreateScopeInstances( istream & in, SDAI_Application_instance
SDAI_Application_instance * se;
std::string tmpbuf;
char c;
int exportid;
std::vector< SDAI_Application_instance_ptr > inscope;
std::string keywd;
@@ -984,6 +974,7 @@ Severity STEPfile::CreateScopeInstances( istream & in, SDAI_Application_instance
in.get( c );
c = ',';
while( c == ',' ) {
int exportid;
ReadTokenSeparator( in );
in.get( c );
if( c != '#' ) { } //ERROR
@@ -1005,7 +996,6 @@ Severity STEPfile::CreateScopeInstances( istream & in, SDAI_Application_instance
}
SDAI_Application_instance * STEPfile::CreateSubSuperInstance( istream & in, int fileid, ErrorDescriptor & e ) {
std::string tmpstr;
SDAI_Application_instance * obj = ENTITY_NULL;
char c;
@@ -1078,7 +1068,6 @@ Severity STEPfile::ReadScopeInstances( istream & in ) {
SDAI_Application_instance * se;
std::string tmpbuf;
char c;
int exportid;
std::string keywd;
std::string cmtStr;
@@ -1128,6 +1117,7 @@ Severity STEPfile::ReadScopeInstances( istream & in ) {
in.get( c );
c = ',';
while( c == ',' ) {
int exportid;
ReadTokenSeparator( in );
in.get( c );
in >> exportid;
@@ -1558,7 +1548,7 @@ void STEPfile::WriteHeaderInstanceFileName( ostream & out ) {
time_t t = time( NULL );
struct tm * timeptr = localtime( &t );
char time_buf[26];
strftime( time_buf, 26, "%Y-%m-%dT%H:%M:%S", timeptr );
strftime( time_buf, 26, "'%Y-%m-%dT%H:%M:%S'", timeptr );
fn->time_stamp_( time_buf );
//output the values to the file
@@ -1743,19 +1733,15 @@ Severity STEPfile::AppendFile( istream * in, bool useTechCor ) {
keywd = GetKeyword( *in2, ";", _error );
//yank the ";" from the istream
//if (';' == in2->peek()) in2->get();
char c;
in2->get( c );
if( c == ';' ) {
;
} else {
//FIXME shouldn't *something* be done based upon the value of c? MAP, 9/2011
char ch;
in2->get( ch );
if( ch != ';' ) {
std::cerr << __FILE__ << ":" << __LINE__ << " - Expected ';' at Part 21 EOF, found '" << c << "'." << std::endl;
}
}
if( ( strncmp( const_cast<char *>( keywd.c_str() ),
END_FILE_DELIM.c_str(),
strlen( const_cast<char *>( keywd.c_str() ) ) ) || !( in2 -> good() ) ) ) {
_error.AppendToUserMsg( END_FILE_DELIM.c_str() );
if( ( !keywd.compare( 0, keywd.size(), END_FILE_DELIM ) ) || !( in2 -> good() ) ) {
_error.AppendToUserMsg( END_FILE_DELIM );
_error.AppendToUserMsg( " missing at end of file.\n" );
CloseInputFile( in2 );
return _error.GreaterSeverity( SEVERITY_WARNING );
+5 -7
View File
@@ -26,12 +26,10 @@ extern void HeaderSchemaInit( Registry & reg );
//constructor & destructor
STEPfile::STEPfile( Registry & r, InstMgr & i, const std::string filename, bool strict ) :
_instances( i ), _reg( r ), _fileIdIncr( 0 ), _headerId( 0 ),
_entsNotCreated( 0 ), _entsInvalid( 0 ), _entsIncomplete( 0 ),
_entsWarning( 0 ), _errorCount( 0 ), _warningCount( 0 ),
_maxErrorCount( 100000 ), _strict( strict ), _iFileSize( 0 ),
_iFileCurrentPosition( 0 ), _oFileInstsWritten( 0 ),
_iFileStage1Done( false ) {
_instances( i ), _reg( r ), _fileIdIncr( 0 ), _headerId( 0 ), _iFileSize( 0 ),
_iFileCurrentPosition( 0 ), _iFileStage1Done( false ), _oFileInstsWritten( 0 ),
_entsNotCreated( 0 ), _entsInvalid( 0 ), _entsIncomplete( 0 ), _entsWarning( 0 ),
_errorCount( 0 ), _warningCount( 0 ), _maxErrorCount( 100000 ), _strict( strict ) {
SetFileType( VERSION_CURRENT );
SetFileIdIncrement();
_currentDir = new DirObj( "" );
@@ -214,7 +212,7 @@ istream * STEPfile::OpenInputFile( const std::string filename ) {
/******************************************************/
void STEPfile::CloseInputFile( istream * in ) {
if( in && *in != std::cin ) {
if (in != &std::cin) {
delete in;
}
+15 -15
View File
@@ -1,7 +1,7 @@
#ifndef SDAIHEADER_SECTION_SCHEMA_CC
#define SDAIHEADER_SECTION_SCHEMA_CC
// This file was generated by fedex_plus. You probably don't want to edit
// it since your modifications will be lost if fedex_plus is used to
// This file was generated by exp2cxx. You probably don't want to edit
// it since your modifications will be lost if exp2cxx is used to
// regenerate it.
#ifdef SC_LOGGING
@@ -44,7 +44,7 @@ SdaiSection_language::SdaiSection_language( ) {
a -> set_null();
attributes.push( a );
}
SdaiSection_language::SdaiSection_language( SdaiSection_language & e ) {
SdaiSection_language::SdaiSection_language( SdaiSection_language & e ): SDAI_Application_instance() {
CopyAs( ( SDAI_Application_instance_ptr ) &e );
}
SdaiSection_language::~SdaiSection_language() { }
@@ -126,7 +126,7 @@ SdaiFile_population::SdaiFile_population( ) {
a -> set_null();
attributes.push( a );
}
SdaiFile_population::SdaiFile_population( SdaiFile_population & e ) {
SdaiFile_population::SdaiFile_population( SdaiFile_population & e ): SDAI_Application_instance() {
CopyAs( ( SDAI_Application_instance_ptr ) &e );
}
SdaiFile_population::~SdaiFile_population() { }
@@ -194,7 +194,7 @@ SdaiFile_population::determination_method_( const SdaiExchange_structure_identif
_determination_method = x;
}
const StringAggregate_ptr
StringAggregate_ptr
SdaiFile_population::governed_sections_() const {
return ( StringAggregate_ptr ) &_governed_sections;
}
@@ -246,7 +246,7 @@ SdaiFile_name::SdaiFile_name( ) {
a -> set_null();
attributes.push( a );
}
SdaiFile_name::SdaiFile_name( SdaiFile_name & e ) {
SdaiFile_name::SdaiFile_name( SdaiFile_name & e ): SDAI_Application_instance() {
CopyAs( ( SDAI_Application_instance_ptr ) &e );
}
SdaiFile_name::~SdaiFile_name() { }
@@ -354,7 +354,7 @@ SdaiFile_name::time_stamp_( const SdaiTime_stamp_text x )
_time_stamp = x;
}
const StringAggregate_ptr
StringAggregate_ptr
SdaiFile_name::author_() const {
return ( StringAggregate_ptr ) &_author;
}
@@ -366,7 +366,7 @@ SdaiFile_name::author_( const StringAggregate_ptr x )
_author.ShallowCopy( *x );
}
const StringAggregate_ptr
StringAggregate_ptr
SdaiFile_name::organization_() const {
return ( StringAggregate_ptr ) &_organization;
}
@@ -434,7 +434,7 @@ SdaiSection_context::SdaiSection_context( ) {
a -> set_null();
attributes.push( a );
}
SdaiSection_context::SdaiSection_context( SdaiSection_context & e ) {
SdaiSection_context::SdaiSection_context( SdaiSection_context & e ): SDAI_Application_instance() {
CopyAs( ( SDAI_Application_instance_ptr ) &e );
}
SdaiSection_context::~SdaiSection_context() { }
@@ -480,7 +480,7 @@ SdaiSection_context::section_( const SdaiSection_name x )
_section = x;
}
const StringAggregate_ptr
StringAggregate_ptr
SdaiSection_context::context_identifiers_() const {
return ( StringAggregate_ptr ) &_context_identifiers;
}
@@ -512,10 +512,10 @@ SdaiFile_description::SdaiFile_description( ) {
a -> set_null();
attributes.push( a );
}
SdaiFile_description::SdaiFile_description( SdaiFile_description & e ) {
SdaiFile_description::SdaiFile_description( SdaiFile_description & e ): SDAI_Application_instance() {
CopyAs( ( SDAI_Application_instance_ptr ) &e );
}
SdaiFile_description::~SdaiFile_description() { }
SdaiFile_description::~SdaiFile_description() {}
SdaiFile_description::SdaiFile_description( SDAI_Application_instance * se, int * addAttrs ) {
/* Set this to point to the head entity. */
@@ -546,7 +546,7 @@ SdaiFile_description::SdaiFile_description( SDAI_Application_instance * se, int
}
}
const StringAggregate_ptr
StringAggregate_ptr
SdaiFile_description::description_() const {
return ( StringAggregate_ptr ) &_description;
}
@@ -586,7 +586,7 @@ SdaiFile_schema::SdaiFile_schema( ) {
a -> set_null();
attributes.push( a );
}
SdaiFile_schema::SdaiFile_schema( SdaiFile_schema & e ) {
SdaiFile_schema::SdaiFile_schema( SdaiFile_schema & e ): SDAI_Application_instance() {
CopyAs( ( SDAI_Application_instance_ptr ) &e );
}
SdaiFile_schema::~SdaiFile_schema() { }
@@ -610,7 +610,7 @@ SdaiFile_schema::SdaiFile_schema( SDAI_Application_instance * se, int * addAttrs
}
}
const StringAggregate_ptr
StringAggregate_ptr
SdaiFile_schema::schema_identifiers_() const {
return ( StringAggregate_ptr ) &_schema_identifiers;
}
+8 -8
View File
@@ -1,7 +1,7 @@
#ifndef SDAIHEADER_SECTION_SCHEMA_H
#define SDAIHEADER_SECTION_SCHEMA_H
// This file was generated by fedex_plus. You probably don't want to edit
// it since your modifications will be lost if fedex_plus is used to
// This file was generated by exp2cxx. You probably don't want to edit
// it since your modifications will be lost if exp2cxx is used to
// regenerate it.
#include <sc_export.h>
@@ -74,7 +74,7 @@ class SC_EDITOR_EXPORT SdaiFile_population : public SDAI_Application_instanc
const SdaiExchange_structure_identifier determination_method_() const;
void determination_method_( const SdaiExchange_structure_identifier x );
const StringAggregate_ptr governed_sections_() const;
StringAggregate_ptr governed_sections_() const;
void governed_sections_( const StringAggregate_ptr x );
};
@@ -122,10 +122,10 @@ class SC_EDITOR_EXPORT SdaiFile_name : public SDAI_Application_instance {
const SdaiTime_stamp_text time_stamp_() const;
void time_stamp_( const SdaiTime_stamp_text x );
const StringAggregate_ptr author_() const;
StringAggregate_ptr author_() const;
void author_( const StringAggregate_ptr x );
const StringAggregate_ptr organization_() const;
StringAggregate_ptr organization_() const;
void organization_( const StringAggregate_ptr x );
const SDAI_String preprocessor_version_() const;
@@ -170,7 +170,7 @@ class SC_EDITOR_EXPORT SdaiSection_context : public SDAI_Application_instanc
const SdaiSection_name section_() const;
void section_( const SdaiSection_name x );
const StringAggregate_ptr context_identifiers_() const;
StringAggregate_ptr context_identifiers_() const;
void context_identifiers_( const StringAggregate_ptr x );
};
@@ -202,7 +202,7 @@ class SC_EDITOR_EXPORT SdaiFile_description : public SDAI_Application_instan
int opcode() {
return 4 ;
}
const StringAggregate_ptr description_() const;
StringAggregate_ptr description_() const;
void description_( const StringAggregate_ptr x );
const SDAI_String implementation_level_() const;
@@ -236,7 +236,7 @@ class SC_EDITOR_EXPORT SdaiFile_schema : public SDAI_Application_instance {
int opcode() {
return 5 ;
}
const StringAggregate_ptr schema_identifiers_() const;
StringAggregate_ptr schema_identifiers_() const;
void schema_identifiers_( const StringAggregate_ptr x );
};
+2 -2
View File
@@ -1,7 +1,7 @@
#ifndef SDAIHEADER_SECTION_SCHEMA_ALL_CC
#define SDAIHEADER_SECTION_SCHEMA_ALL_CC
// This file was generated by fedex_plus. You probably don't want to edit
// it since your modifications will be lost if fedex_plus is used to
// This file was generated by exp2cxx. You probably don't want to edit
// it since your modifications will be lost if exp2cxx is used to
// regenerate it.
#include <SdaiHeaderSchema.h>
+2 -2
View File
@@ -1,7 +1,7 @@
#ifndef SDAI_HEADER_SECTION_SCHEMA_CLASSES_H
#define SDAI_HEADER_SECTION_SCHEMA_CLASSES_H
// This file was generated by fedex_plus. You probably don't want to edit
// it since your modifications will be lost if fedex_plus is used to
// This file was generated by exp2cxx. You probably don't want to edit
// it since your modifications will be lost if exp2cxx is used to
// regenerate it.
#include <sc_export.h>
+2 -2
View File
@@ -1,7 +1,7 @@
#ifndef SDAIHEADER_SECTION_SCHEMA_INIT_CC
#define SDAIHEADER_SECTION_SCHEMA_INIT_CC
// This file was generated by fedex_plus. You probably don't want to edit
// it since your modifications will be lost if fedex_plus is used to
// This file was generated by exp2cxx. You probably don't want to edit
// it since your modifications will be lost if exp2cxx is used to
// regenerate it.
#include <Registry.h>
+2 -2
View File
@@ -1,7 +1,7 @@
#ifndef SDAIHEADER_SECTION_SCHEMA_SCHEMA_CC
#define SDAIHEADER_SECTION_SCHEMA_SCHEMA_CC
// This file was generated by fedex_plus. You probably don't want to edit
// it since your modifications will be lost if fedex_plus is used to
// This file was generated by exp2cxx. You probably don't want to edit
// it since your modifications will be lost if exp2cxx is used to
// regenerate it.
#include <SdaiSchemaInit.h>
+2 -2
View File
@@ -1,7 +1,7 @@
#ifndef SDAIHEADER_SECTION_SCHEMA_SCHEMA_H
#define SDAIHEADER_SECTION_SCHEMA_SCHEMA_H
// This file was generated by fedex_plus. You probably don't want to edit
// it since your modifications will be lost if fedex_plus is used to
// This file was generated by exp2cxx. You probably don't want to edit
// it since your modifications will be lost if exp2cxx is used to
// regenerate it.
#ifdef SC_LOGGING
+25 -3
View File
@@ -1,8 +1,27 @@
set( clLazyFile_SRCS lazyDataSectionReader.cc lazyFileReader.cc lazyInstMgr.cc p21HeaderSectionReader.cc sectionReader.cc lazyP21DataSectionReader.cc ../base/judy/src/judy.c ../base/judy/src/judyLArray.h ../base/judy/src/judySArray.h )
set( clLazyFile_SRCS
lazyDataSectionReader.cc
lazyFileReader.cc
lazyInstMgr.cc
p21HeaderSectionReader.cc
sectionReader.cc
lazyP21DataSectionReader.cc
../base/judy/src/judy.c
../base/judy/src/judyLArray.h
../base/judy/src/judySArray.h
)
set( clLazyFile_HDRS headerSectionReader.h lazyFileReader.h lazyP21DataSectionReader.h p21HeaderSectionReader.h
lazyDataSectionReader.h lazyInstMgr.h lazyTypes.h sectionReader.h )
set( SC_CLLAZYFILE_HDRS
headerSectionReader.h
lazyFileReader.h
lazyP21DataSectionReader.h
p21HeaderSectionReader.h
lazyDataSectionReader.h
lazyInstMgr.h
lazyTypes.h
sectionReader.h
instMgrHelper.h
)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
@@ -17,3 +36,6 @@ include_directories(
SC_ADDLIB(steplazyfile "${clLazyFile_SRCS};${clLazyFile_HDRS}" "stepcore;stepdai;steputils;base")
SC_ADDEXEC(lazy_test "lazy_test.cc" "steplazyfile;stepeditor" )
set_target_properties(lazy_test PROPERTIES COMPILE_FLAGS "-DNO_REGISTRY" )
install(FILES ${SC_CLLAZYFILE_HDRS}
DESTINATION ${INCLUDE_INSTALL_DIR}/stepcode/cllazyfile)
+2 -1
View File
@@ -27,7 +27,7 @@ class SC_LAZYFILE_EXPORT headerSectionReader: public sectionReader {
return _headerInstances;
}
~headerSectionReader() {
virtual ~headerSectionReader() {
//FIXME delete each instance?! maybe add to clear, since it iterates over everything already
//enum clearHow { rawData, deletePointers }
_headerInstances->clear();
@@ -35,3 +35,4 @@ class SC_LAZYFILE_EXPORT headerSectionReader: public sectionReader {
};
#endif //HEADERSECTIONREADER_H
+2 -1
View File
@@ -53,4 +53,5 @@ class instMgrAdapter: public InstMgr {
};
#endif //INSTMGRHELPER_H
#endif //INSTMGRHELPER_H
+2 -2
View File
@@ -6,7 +6,7 @@
lazyDataSectionReader::lazyDataSectionReader( lazyFileReader * parent, std::ifstream & file,
std::streampos start, sectionID sid ):
sectionReader( parent, file, start, sid ) {
_sectionIdentifier = "";
std::cerr << "FIXME set _sectionIdentifier" << std::endl;
_sectionIdentifier = ""; //FIXME set _sectionIdentifier from the data section identifier (2002 rev of Part 21), if present
_error = false;
}
+1
View File
@@ -28,3 +28,4 @@ class lazyDataSectionReader: public sectionReader {
};
#endif //LAZYDATASECTIONREADER_H
+1
View File
@@ -72,3 +72,4 @@ lazyFileReader::lazyFileReader( std::string fname, lazyInstMgr * i, fileID fid )
lazyFileReader::~lazyFileReader() {
delete _header;
}
+24 -14
View File
@@ -1,6 +1,7 @@
#include "lazyTypes.h"
#include "lazyInstMgr.h"
#include "Registry.h"
#include <SubSuperIterators.h>
#include "SdaiSchemaInit.h"
#include "instMgrHelper.h"
@@ -8,7 +9,9 @@ lazyInstMgr::lazyInstMgr() {
_headerRegistry = new Registry( HeaderSchemaInit );
_instanceTypes = new instanceTypes_t( 255 ); //NOTE arbitrary max of 255 chars for a type name
_lazyInstanceCount = 0;
_loadedInstanceCount = 0;
_longestTypeNameLen = 0;
_mainRegistry = 0;
_errors = new ErrorDescriptor();
_ima = new instMgrAdapter( this );
}
@@ -19,11 +22,11 @@ lazyInstMgr::~lazyInstMgr() {
delete _ima;
//loop over files, sections, instances; delete header instances
lazyFileReaderVec_t::iterator fit = _files.begin();
for( ; fit != _files.end(); fit++ ) {
for( ; fit != _files.end(); ++fit ) {
delete *fit;
}
dataSectionReaderVec_t::iterator sit = _dataSections.begin();
for( ; sit != _dataSections.end(); sit++ ) {
for( ; sit != _dataSections.end(); ++sit ) {
delete *sit;
}
_instancesLoaded.clear();
@@ -37,7 +40,7 @@ sectionID lazyInstMgr::registerDataSection( lazyDataSectionReader * sreader ) {
void lazyInstMgr::addLazyInstance( namedLazyInstance inst ) {
_lazyInstanceCount++;
assert( inst.loc.begin > 0 && inst.loc.instance > 0 && inst.loc.section >= 0 );
assert( inst.loc.begin > 0 && inst.loc.instance > 0 );
int len = strlen( inst.name );
if( len > _longestTypeNameLen ) {
_longestTypeNameLen = len;
@@ -45,12 +48,16 @@ void lazyInstMgr::addLazyInstance( namedLazyInstance inst ) {
}
_instanceTypes->insert( inst.name, inst.loc.instance );
/* store 16 bits of section id and 48 of instance offset into one 64-bit int
* TODO: check and warn if anything is lost (in calling code?)
* does 32bit need anything special?
** TODO: check and warn if anything is lost (in calling code?)
** does 32bit need anything special?
**
** create conversion class?
** could then initialize conversion object with number of bits
** also a good place to check for data loss
*/
positionAndSection ps = inst.loc.section;
ps <<= 48;
ps |= ( inst.loc.begin & 0xFFFFFFFFFFFF );
ps |= ( inst.loc.begin & 0xFFFFFFFFFFFFULL );
_instanceStreamPos.insert( inst.loc.instance, ps );
if( inst.refs ) {
@@ -58,7 +65,7 @@ void lazyInstMgr::addLazyInstance( namedLazyInstance inst ) {
//forward refs
_fwdInstanceRefs.insert( inst.loc.instance, *inst.refs );
instanceRefs::iterator it = inst.refs->begin();
for( ; it != inst.refs->end(); it++ ) {
for( ; it != inst.refs->end(); ++it ) {
//reverse refs
_revInstanceRefs.insert( *it, inst.loc.instance );
}
@@ -89,11 +96,9 @@ void lazyInstMgr::openFile( std::string fname ) {
SDAI_Application_instance * lazyInstMgr::loadInstance( instanceID id ) {
assert( _mainRegistry && "Main registry has not been initialized. Do so with initRegistry() or setRegistry()." );
SDAI_Application_instance * inst = 0;
positionAndSection ps;
long int off;
sectionID sid;
inst = _instancesLoaded.find( id );
SDAI_Application_instance * inst = _instancesLoaded.find( id );
instanceStreamPos_t::cvector * cv;
if( !inst && 0 != ( cv = _instanceStreamPos.find( id ) ) ) {
//FIXME _instanceStreamPos.find( id ) can return nonzero for nonexistent key?!
@@ -102,8 +107,9 @@ SDAI_Application_instance * lazyInstMgr::loadInstance( instanceID id ) {
std::cerr << "Instance #" << id << " not found in any section." << std::endl;
break;
case 1:
long int off;
ps = cv->at( 0 );
off = ps & 0xFFFFFFFFFFFF;
off = ps & 0xFFFFFFFFFFFFULL;
sid = ps >> 48;
assert( _dataSections.size() > sid );
inst = _dataSections[sid]->getRealInstance( _mainRegistry, off, id );
@@ -112,11 +118,15 @@ SDAI_Application_instance * lazyInstMgr::loadInstance( instanceID id ) {
std::cerr << "Instance #" << id << " exists in multiple sections. This is not yet supported." << std::endl;
break;
}
if( ( inst ) && ( inst != & NilSTEPentity ) ) {
_instancesLoaded.insert( id, inst );
_loadedInstanceCount++;
} else {
std::cerr << "Error loading instance #" << id << "." << std::endl;
}
} else {
std::cerr << "Instance #" << id << " not found in any section." << std::endl;
}
if( inst ) {
_instancesLoaded.insert( id, inst );
}
return inst;
}
+44 -18
View File
@@ -22,11 +22,11 @@ class instMgrAdapter;
class lazyInstMgr {
protected:
/** map from instance number to instances that it refers to
/** multimap from instance number to instances that it refers to
* \sa instanceRefs_pair
*/
instanceRefs_t _fwdInstanceRefs;
/** map from instance number to instances that refer to it
/** multimap from instance number to instances that refer to it - the majority of these will not be inverse references!
* \sa instanceRefs_pair
*/
instanceRefs_t _revInstanceRefs;
@@ -39,11 +39,15 @@ class lazyInstMgr {
/** map from instance number to instance pointer (loaded instances only)
* \sa instancesLoaded_pair
*
* TODO should be multimap to allow use of instances in multiple data sections?
* a unique instance ID (containing sectionID and instanceID) would also work
*/
instancesLoaded_t _instancesLoaded;
/** map from instance number to beginning and end positions and the data section
* \sa instanceStreamPos_pair
*
* FIXME to save memory, modify judyL2Array to not use a vector until there are several
* instances with the same instanceID. This will help elsewhere as well.
*/
@@ -56,7 +60,7 @@ class lazyInstMgr {
Registry * _headerRegistry, * _mainRegistry;
ErrorDescriptor * _errors;
unsigned long _lazyInstanceCount;
unsigned long _lazyInstanceCount, _loadedInstanceCount;
int _longestTypeNameLen;
std::string _longestTypeName;
@@ -65,7 +69,6 @@ class lazyInstMgr {
public:
lazyInstMgr();
~lazyInstMgr();
void addSchema( void ( *initFn )() ); //?
void openFile( std::string fname );
void addLazyInstance( namedLazyInstance inst );
@@ -80,8 +83,14 @@ class lazyInstMgr {
instanceRefs_t * getRevRefs() {
return & _revInstanceRefs;
}
/// returns two iterators delimiting the instances that match `type`
instanceTypes_t::cvector * getInstances( std::string type ) { /*const*/
/// returns a vector containing the instances that match `type`
instanceTypes_t::cvector * getInstances( std::string type, bool caseSensitive = false ) { /*const*/
if( !caseSensitive ) {
std::string::iterator it = type.begin();
for( ; it != type.end(); ++it ) {
*it = toupper( *it );
}
}
return _instanceTypes->find( type.c_str() );
}
/// get the number of instances of a certain type
@@ -97,10 +106,15 @@ class lazyInstMgr {
}
/// get the number of instances that have been found in the open files.
unsigned long countInstances() const {
unsigned long totalInstanceCount() const {
return _lazyInstanceCount;
}
/// get the number of instances that are loaded.
unsigned long loadedInstanceCount() const {
return _loadedInstanceCount;
}
/// get the number of data sections that have been identified
unsigned int countDataSections() {
return _dataSections.size();
@@ -143,17 +157,29 @@ class lazyInstMgr {
SDAI_Application_instance * loadInstance( instanceID id );
/* TODO implement these
* //renumber instances so that they are numbered 1..N where N is the total number of instances
* void normalizeInstanceIds();
* //find data that is repeated and eliminate, if possible
* void eliminateDuplicates();
* //tell instMgr to use instances from this section
* void useDataSection( sectionID id );
*/
// TODO support references from one file to another
// TODO registry
// TODO implement these
// add another schema to registry
//void addSchema( void ( *initFn )() );
//list all instances that one instance depends on (recursive)
//std::vector<instanceID> instanceDependencies( instanceID id ); //set is faster?
/* * the opposite of instanceDependencies() - all instances that are *not* dependencies of one particular instance
same as above, but with list of instances */
//std::vector<instanceID> notDependencies(...)
//renumber instances so that they are numbered 1..N where N is the total number of instances
//void normalizeInstanceIds();
//find data that is repeated and eliminate, if possible
//void eliminateDuplicates();
//tell instMgr to use instances from this section
//void useDataSection( sectionID id );
// TODO support references from one file to another
};
#endif //LAZYINSTMGR_H
#endif //LAZYINSTMGR_H
@@ -61,3 +61,4 @@ const namedLazyInstance lazyP21DataSectionReader::nextInstance() {
}
return i;
}
@@ -23,3 +23,4 @@ class SC_LAZYFILE_EXPORT lazyP21DataSectionReader: public lazyDataSectionReader
};
#endif //LAZYP21DATASECTIONREADER_H
+99
View File
@@ -0,0 +1,99 @@
#ifndef LAZYREFS_H
#define LAZYREFS_H
#include <string>
#include <set>
#include <utility>
#include <vector>
#include "lazyTypes.h"
#include "ExpDict.h"
#include "sdaiApplication_instance.h"
class lazyRefs {
public:
//typedefs
typedef std::set<std::string> * entityTypeSet;
typedef std::pair< EntityDescriptor *, const char * > attrPair; //EntityDescriptor and attr name
typedef std::vector< STEPattribute * > attrVec;
protected:
/* don't need this - the default comparator of std::set, std::less, should work
///functor to compare std::pair<> of pointers; in this case, those in attrPair
struct pairCmp {
bool operator()( const attrPair & lhs, const attrPair & rhs ) const {
if( lhs.first == rhs.first && lhs.second == rhs.second ) {
return true;
}
return false;
}
};
typedef std::set< attrPair, pairCmp > attrVec; //set of attrPair's, and comparison functor
*/
///find any inverse attributes, put in `attrs`
/// attrs not necessarily in order!
void getInverseAttrs( attrVec & attrs, EntityDescriptor * ed ) {
attrs.clear();
supertypesIterator supersIter( ed );
InverseAItr invAttrIter;
Inverse_attribute * invAttr;
for( ; !supersIter.empty(); ++supersIter ) {
//look at attrs of *si
invAttrIter( *supersIter );
while( 0 != ( invAttr = invAttrIter.NextInverse_attribute() ) ) {
attrs.push_back( invAttr );
}
}
// look at our own attrs
invAttrIter( *ed );
while( 0 != ( invAttr = invAttrIter.NextInverse_attribute() ) ) {
attrs.push_back( invAttr );
}
}
void loadPossibleInverseRefs( instanceID id ) {
EntityDescriptor * eDesc = getEntityDescriptor( id );
//it would be nice to be able to check the type of each potential reference and only load those for which there is an inverse attr
//however, that would require that we build a list of all types with inverse reference *and* all of their children
//that requires looking up each type in the registry and iterating over its supertypes
//slow? faster if results are cached, perhaps in std::set<std::string>
/*
* need to look for hits in _revInstanceRefs, then check the type of each
* however, we must also check their supertypes - use checkIfEntityTypeMatch() (**** faster to compare entities with a subtype list instead? ****)
* also, we must check which entity type actually declares the attr, and use that as the type name to match
*/
//for each inverse attr, add that type and its subtypes to a set
attrVec invAttrs;
getInverseAttrs( invAttrs, eDesc );
attrVec::iterator iAiter = invAttrs.begin();
for( ; iAiter != invAttrs.end(); ++iAiter ) {
// const char * _inverted_attr_id;
// const char * _inverted_entity_id;
iAiter->_inverted_attr_id;
iAiter->_inverted_entity_id;
iAiter->Owner();
}
//find possible referring instances and loop over them, checking each, loading instances of types that may have matching refs
instanceRefs_t::cvector * possRefs = _revInstanceRefs.find( id );
const instanceRefs_t::cvector::iterator it = possRefs->cbegin();
for( ; it != possRefs->cend; ++it ) {
//1. get inst type
//2. compare its type to types that may reference this inst
//3. if there is a match, load it and check whether this instance is reference by the correct attr
//4. if so, link the two
//5. repeat
}
}
public:
void loadInverseRefs( instanceID id ) {}
};
#endif //LAZYREFS_H
+68
View File
@@ -0,0 +1,68 @@
for inverse attrs, we have the attr name and the type of the instance
--load instance, find inverse attr(s)
--for each inverse attr:
--find all instance types that inherit from the inverted attr's owner (list A)
--look up instances that reference the one in question (list B) - use memoization
--find instances that match both lists, put in list C
--load instances in list C
--for list C, check that the relevant attr references the original instance - if not, unload (?)
--
--when done with this inverse attr, cache list A
EXAMPLE
*******
information model
-----------------
ENTITY Object;
ObjectType : OPTIONAL STRING;
INVERSE
IsDefinedBy : SET [0:?] OF RelDefinesByType FOR RelatedObjects;
END_ENTITY;
ENTITY RelDefinesByType;
RelatedObjects : SET [1:?] OF Object;
END_ENTITY;
ENTITY Window
SUBTYPE OF (Object);
Description : OPTIONAL string;
END_ENTITY;
data file
---------
#1=OBJECT('one');
#2=RELDEFINESBYTYPE((#1));
#3=RELDEFINESBYTYPE((#4));
#4=WINDOW('two','blah');
#1 and #4 have an inverse attr, but this is not visible in the data file
#2 and #3 have #1 and #4, respectively, in an aggregate (thus the parenthesis around the instance); in this case, a SET called RelatedObjects
RelatedObjects is the inverted attr that the inverse attr IsDefinedBy links to
looking at the entity descriptor for WINDOW, it is not apparent that there is an inverse attr; its parents must be examined
given inverted attr ia:
attr method value
----------- -----
ia->Name() isdefinedby
ia->inverted_attr_id_() relatedobjects
ia->inverted_entity_id_() reldefinesbytype
1. for the instance in question, find inverse attrs with recursion
2. for each ia,
a. entity name is returned by ia->inverted_entity_id_()
b. add this entity and its children to a list (list A)
c. look up references to the current instance (list B)
d. for each item in B, look up its type; if its type is present in A, remember the instance number (list C)
e. load each instance in C
f. (optional) check if the relevant inverted attr of instances loaded from list C reference the instance in step 1; if not, unload **IF** the instance hadn't been loaded
--> if it was loaded, this implies that it is used elsewhere
g. cache list A, since it may be useful in the future
-- best to store such that the most recently (frequently?) used lists are retained and others are discarded
+3 -2
View File
@@ -18,8 +18,8 @@ enum fileTypeEnum { Part21, Part28 };
// enum loadingEnum { immediate, lazy };
typedef uint64_t instanceID; ///< the number assigned to an instance in the file
typedef int16_t sectionID; ///< globally unique index of a sectionReader in a sectionReaderVec_t
typedef int16_t fileID; ///< the index of a lazyFileReader in a lazyFileReaderVec_t. Can be inferred from a sectionID
typedef uint16_t sectionID; ///< globally unique index of a sectionReader in a sectionReaderVec_t
typedef uint16_t fileID; ///< the index of a lazyFileReader in a lazyFileReaderVec_t. Can be inferred from a sectionID
/** store 16 bits of section id and 48 of instance offset into one 64-bit int
* use thus:
@@ -80,3 +80,4 @@ typedef std::vector< lazyFileReader * > lazyFileReaderVec_t;
// NOTE not useful? typedef std::vector< lazyInstance > lazyInstanceVec_t;
#endif //LAZYTYPES_H

Some files were not shown because too many files have changed in this diff Show More