Compare commits

...
49 Commits
Author SHA1 Message Date
Mark Pictor 9c2018e1cf update README, NEWS for v0.2 2011-10-01 18:23:50 -04:00
Thomas Paviot 3dacbc1029 Merge pull request #67 from mpictor/review/redef-attrib
Review/redef attrib
2011-09-28 13:37:33 -07:00
Mark ea010ced1c Merge pull request #66 from mpictor/review/cleanup
Review/cleanup
2011-09-28 03:18:31 -07:00
rbertucat 290850a630 Fix aggregate select types naming convention in fedex_plus
Suffix 's' replaced by '_agg'
2011-09-27 18:57:59 -04:00
Mark Pictor f9b93831dd finish cleanup in src/clstepcore 2011-09-26 18:20:59 -04:00
Mark Pictor 07d8791829 change writeReal func prototype 2011-09-26 17:26:36 -04:00
Mark Pictor 70a8382db6 no point using strcmp() with std::string - use string.compare() 2011-09-26 17:26:36 -04:00
Mark Pictor b759a0ee97 streams do not need strings converted with c_str() 2011-09-26 17:26:36 -04:00
Mark Pictor 239ce49af1 cleanup, inline some fcts 2011-09-26 17:26:36 -04:00
Mark Pictor 6851b271e5 include git commit description in fedex_plus version output 2011-09-26 17:26:36 -04:00
Mark Pictor 219957d2bb remove P21CommentRep, change return type of P21Comment to std::string 2011-09-26 17:26:36 -04:00
Mark Pictor 0b42e29c2f remove 4 deprecated functions from sdaiApplication_instance 2011-09-26 17:26:35 -04:00
Mark Pictor 275977dfce remove unused code, clean up formatting 2011-09-26 17:26:35 -04:00
Mark Pictor a0353bcff2 delete src/clivfasd and unused files in other dirs
* src/cldai contained ErrorMap.*, ErrorRpt.*, StrUtil.*,
   impconv.hh, and imptypes.hh - all are unused, and all are
   (C)opyright "all rights reserved" (!)
* src/clutils contained unused files scldir.h, stat.h, str_list.h
* src/clstepcore/scl_osschema.h is for OODB and isn't used
* src/clivfasd contained modified versions of files from the
   InterViews GUI library (which is from the early 90's).
   These files do not compile, apparently because InterViews has
   changed since then. These files were only used by dataProbe,
   which is broken (due to InterViews) and needs rewritten without
   IV.
* remove these files from */CMakeLists.txt
2011-09-26 17:26:35 -04:00
Mark 704a28abac Merge pull request #65 from mpictor/review/fix-undefined-refs
fix regression introduced by review/fedex-verbose
2011-09-20 12:51:22 -07:00
Mark Pictor 63e6a8662a fix undefined reference errors when building schema lib
fix undefined reference to 'yydbg_verbose' and 'exp_pause'
I didn't test review/fedex-verbose as thoroughly as I thought I had
2011-09-19 16:36:11 -04:00
Mark fb59e38a73 Merge pull request #64 from mpictor/review/misc-files
Review/misc files
2011-09-19 12:45:19 -07:00
Mark f14675264c Merge pull request #58 from mpictor/review/fedex-verbose
Review/fedex verbose
2011-09-19 12:44:59 -07:00
Mark 33f6ddd6b1 Merge pull request #63 from mpictor/review/p21read
Review/p21read
2011-09-19 12:44:34 -07:00
Mark Pictor aa59764c8d links... one more time 2011-09-16 06:11:50 -04:00
Mark Pictor 896ad5abc2 replace backtick, confused github wiki 2011-09-15 21:13:01 -04:00
Mark Pictor 553091cfae wiki links finally work... I think 2011-09-15 21:00:09 -04:00
Mark Pictor fc01a533ac more changes to build_all.sh 2011-09-15 16:29:43 -04:00
Mark Pictor 135b935382 add more cax-if files, update schema status script again 2011-09-15 16:29:42 -04:00
Mark Pictor b5f23743d6 Add a test schema, and the schema status page script
build_all.sh builds many schemas. It creates a summary in markdown
  syntax suitable for upload to the scl wiki, with links to stderr output

expr-src-aggregate.exp is a small schema that fedex_plus fails on
2011-09-15 16:29:42 -04:00
Craig Lanning 419f8f83ed Add Part 21 BNF files, courtesy Craig Lanning 2011-09-15 16:29:42 -04:00
Mark Pictor 654f2ff191 improve verbose option '-d 9' 2011-09-15 16:28:50 -04:00
tpaviot dad9658c4c Fix build on OSX, broken by -n option 2011-09-15 16:28:50 -04:00
Mark Pictor bcfe474463 Add -n option to fedex_plus
If ran with -n, fedex_plus won't pause when it encounters
an internal error. This is only useful when using delta.

Conflicts:

	misc/test-code-problem.sh
	misc/test-fedex-error.sh
	src/express/fedex.c
	src/fedex_plus/fedex_main.c
2011-09-15 16:28:50 -04:00
Mark Pictor 7c648cbce3 fedex_plus - print additional information for two errors 2011-09-15 16:28:50 -04:00
rbertucat 6e9b5a7845 - Fix SDAIString (read and write) for P21
- Add support for \S\' in P21 string
2011-09-15 16:19:39 -04:00
rbertucat defe0dd2b7 const missing on HASHsearch made the compilation fail 2011-09-15 16:19:38 -04:00
Mark Pictor ecd400c7d3 replace goto with do-while 2011-09-15 16:19:38 -04:00
Mark Pictor 657a2831f2 formatting, dead code 2011-09-15 16:19:38 -04:00
Mark Pictor 1a130a1361 replace StrCmpIns with a #define for _stricmp or strcasecmp - much faster 2011-09-15 16:19:38 -04:00
rbertucat 696d8e304b Fix errors on p21read's output for the CAX-IF file as1-oc-214.stp 2011-09-15 16:19:38 -04:00
Mark Pictor 0dccb8ba86 fix another delete problem - this one in SCLP23(Select)::STEPWrite
also remove some commented code and replace more tabs with spaces (?!)
2011-09-15 16:19:38 -04:00
rbertucat abb3addf43 replace QuoteInString to prevent 2 get/putback in a row (fail on mingw) 2011-09-15 16:19:38 -04:00
rbertucat 02feb6f152 Fix to load the file for p21read on WIN32/MINGW 2011-09-15 16:19:38 -04:00
Mark Pictor 1b69382718 get p21read to run without crashing, for ap214. still doesn't copy the file successfully.
also:
change a lot of char* to std::string
use standard functions in DirObj to simplify
remove quite a bit of code that was unnecessary or was for object database or corba
2011-09-15 16:19:38 -04:00
rbertucat a362210933 Changes to make p21read EXAMPLE_SCHEMA read and write 2011-09-15 16:19:38 -04:00
Mark Pictor 1016b07d83 trying to fix ~ErrorDescriptor segfault in p21read. stumbling in dark.
rewrote some code while trying to figure it out:
* replaced many char* with string, especially in class ErrorDescriptor
* added some FIXMEs and a printf to identify source of generated code
* fixed a warning in generated code (no return)
* astyle seems to have missed errordesc.h, unfortunately
2011-09-15 16:19:38 -04:00
Thomas Paviot ac9a402470 Merge pull request #60 from mpictor/tp/tests-repository
Created a new data/tests_repository folder including three 'unit'tests fo
2011-09-15 02:35:52 -07:00
tpaviot 4bfc587d1f Created a new data/tests_repository folder including three 'unit'tests for basic parser/generator tests 2011-09-13 20:08:28 +02:00
rbertucat 0d9c16d408 add a function to retrieve the aggregate type from the underlying types
of a select (ap203 error)
2011-09-13 15:25:43 +02:00
Mark 3505ebad42 Merge pull request #56 from mpictor/review/remove-some-disabled-code
Review/remove some disabled code
2011-09-12 07:25:23 -07:00
Mark Pictor 62304a7953 commented code in lexact.c 2011-09-09 21:27:51 -04:00
Mark Pictor 5684aa56a6 remove yyvars.c 2011-09-09 21:27:51 -04:00
Mark Pictor d7410be164 remove code that is commented out or disabled by '#if 0' 2011-09-09 21:27:51 -04:00
199 changed files with 14035 additions and 19397 deletions
+62 -48
View File
@@ -41,7 +41,7 @@
# Minimum required version of CMake
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
IF(COMMAND CMAKE_POLICY)
CMAKE_POLICY(SET CMP0003 NEW)
CMAKE_POLICY(SET CMP0003 NEW)
ENDIF(COMMAND CMAKE_POLICY)
# set CMake project name
@@ -77,22 +77,22 @@ SET(_orig_lc_all $ENV{LC_ALL})
SET(_orig_lc_messages $ENV{LC_MESSAGES})
SET(_orig_lang $ENV{LANG})
IF(_orig_lc_all)
SET(ENV{LC_ALL} C)
SET(ENV{LC_ALL} C)
ENDIF(_orig_lc_all)
IF(_orig_lc_messages)
SET(ENV{LC_MESSAGES} C)
SET(ENV{LC_MESSAGES} C)
ENDIF(_orig_lc_messages)
IF(_orig_lang)
SET(ENV{LANG} C)
SET(ENV{LANG} C)
ENDIF(_orig_lang)
# For NFS volumes, to ensure proper file creation.
IF(NOT WIN32)
IF(NOT UMASK)
EXEC_PROGRAM(umask ARGS 022 OUTPUT_VARIABLE exec_out)
ELSE(NOT UMASK)
EXEC_PROGRAM(umask ARGS ${UMASK} OUTPUT_VARIABLE exec_out)
ENDIF(NOT UMASK)
IF(NOT UMASK)
EXEC_PROGRAM(umask ARGS 022 OUTPUT_VARIABLE exec_out)
ELSE(NOT UMASK)
EXEC_PROGRAM(umask ARGS ${UMASK} OUTPUT_VARIABLE exec_out)
ENDIF(NOT UMASK)
ENDIF(NOT WIN32)
#---------------------------------------------------------------------
@@ -109,7 +109,7 @@ SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
# the RPATH/INSTALL_NAME_DIR to be used when installing
if (NOT APPLE)
SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
endif(NOT APPLE)
SET(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
@@ -121,34 +121,34 @@ SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
#-----------------------------------------------------------------------------
# Output directories.
IF(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
IF(WIN32)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${SCL_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all libraries.")
ELSE(WIN32)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${SCL_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
ENDIF(WIN32)
IF(WIN32)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${SCL_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all libraries.")
ELSE(WIN32)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${SCL_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
ENDIF(WIN32)
ENDIF(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
IF(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${SCL_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all archives.")
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${SCL_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all archives.")
ENDIF(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
IF(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${SCL_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all executables.")
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${SCL_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all executables.")
ENDIF(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
FOREACH(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
STRING(TOUPPER "${CFG_TYPE}" CFG_TYPE)
IF(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}")
IF(WIN32)
SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SCL_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all libraries.")
ELSE(WIN32)
SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SCL_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
ENDIF(WIN32)
ENDIF(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}")
IF(NOT "CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}")
SET("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SCL_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}" ${SCL_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all executables.")
ENDIF(NOT "CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}")
STRING(TOUPPER "${CFG_TYPE}" CFG_TYPE)
IF(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}")
IF(WIN32)
SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SCL_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all libraries.")
ELSE(WIN32)
SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SCL_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
ENDIF(WIN32)
ENDIF(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}")
IF(NOT "CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}")
SET("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SCL_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}" ${SCL_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all executables.")
ENDIF(NOT "CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}")
ENDFOREACH()
@@ -159,18 +159,18 @@ ENDFOREACH()
# for Windows. Only do this if CMAKE_INSTALL_PREFIX hasn't been set
# already, to try and allow parent builds (if any) some control.
IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
IF(NOT WIN32)
IF ("${CMAKE_BUILD_TYPE}" MATCHES "Release")
SET(CMAKE_INSTALL_PREFIX "/usr")
ELSEIF ("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
MESSAGE("setting debug output dir")
SET(CMAKE_INSTALL_PREFIX "${SCL_SOURCE_DIR}/../scl-install")
ELSE("${CMAKE_BUILD_TYPE}" MATCHES "Release")
SET(CMAKE_INSTALL_PREFIX "/usr/local")
ENDIF ("${CMAKE_BUILD_TYPE}" MATCHES "Release")
ENDIF(NOT WIN32)
SET(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE STRING "SCL install prefix" FORCE)
SET(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT 0)
IF(NOT WIN32)
IF ("${CMAKE_BUILD_TYPE}" MATCHES "Release")
SET(CMAKE_INSTALL_PREFIX "/usr")
ELSEIF ("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
MESSAGE("setting debug output dir")
SET(CMAKE_INSTALL_PREFIX "${SCL_SOURCE_DIR}/../scl-install")
ELSE("${CMAKE_BUILD_TYPE}" MATCHES "Release")
SET(CMAKE_INSTALL_PREFIX "/usr/local")
ENDIF ("${CMAKE_BUILD_TYPE}" MATCHES "Release")
ENDIF(NOT WIN32)
SET(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE STRING "SCL install prefix" FORCE)
SET(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT 0)
ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
OPTION(SCL-BUILD_EXPRESS_ONLY "Only build express parser." OFF)
@@ -200,17 +200,31 @@ CHECK_FUNCTION_EXISTS(memmove HAVE_MEMMOVE)
CHECK_TYPE_SIZE("ssize_t" SSIZE_T)
#set GIT_COMMIT_ID to the output of `git describe`
find_package(Git)
if(GIT_FOUND)
execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags RESULT_VARIABLE res_var OUTPUT_VARIABLE GIT_COM_ID )
if( NOT ${res_var} EQUAL 0 )
set( GIT_COMMIT_ID "unknown (git failed!)")
message( WARNING "Git failed (not a repo?). Build will not contain git revision info." )
endif()
string( REPLACE "\n" "" GIT_COMMIT_ID ${GIT_COM_ID} )
else()
set( GIT_COMMIT_ID "unknown (git not found!)")
message( WARNING "Git not found. Build will not contain git revision info." )
endif()
# Now that all the tests are done, configure the scl_cf.h file:
configure_file(${SCL_BINARY_DIR}/include/scl_cf.h.in ${SCL_BINARY_DIR}/include/scl_cf.h)
add_definitions(
-DHAVE_CONFIG_H -Wall
)
-DHAVE_CONFIG_H -Wall
)
include_directories(
${SCL_SOURCE_DIR}/include
${SCL_BINARY_DIR}/include
)
${SCL_SOURCE_DIR}/include
${SCL_BINARY_DIR}/include
)
ADD_SUBDIRECTORY(src/express)
ADD_SUBDIRECTORY(src/exppp)
+26 -5
View File
@@ -1,4 +1,25 @@
STEP Class Library ------ https://github.com/mpictor/StepClassLibrary
************************************************************************
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 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
* 'abc\S\'def' is a valid string (issue #57)
* Improve p21read execution time
* Cleanup many files and delete src/clivfasd (but much more to do!) (issue #66)
* Add BNF files, schemas, and CAX-IF Part 21 files
For a detailed list of changes, see
https://github.com/mpictor/StepClassLibrary/wiki/changelog-v0.2
For a list of closed issues, see
https://github.com/mpictor/StepClassLibrary/issues?state=closed&milestone=2
************************************************************************
Release 0.1 (Sept 2011)
@@ -39,7 +60,7 @@ Pre-BRL-CAD changes:
************************************************************************
************************************************************************
Updates from http://www.statik.tu-cottbus.de/fileadmin/project_dth/scl/
Jan 2005 - Mar 2006
Jan 2005 - Mar 2006
The original SCL source distribution could not be cleanly un-archived
on case-insensitive file systems like Windows' NTFS because of a name
@@ -68,8 +89,8 @@ accepted.
************************************************************************
What's New in the STEP Class Library Release 3.2
February 1998
What's New in the STEP Class Library Release 3.2
February 1998
mkProbe now prints a usage message showing allowable command line
@@ -161,8 +182,8 @@ comment.
**********************************************************************
What's New in the STEP Class Library Release 3.1
October 1997
What's New in the STEP Class Library Release 3.1
October 1997
The following is a list of enhancements which are found in the version
3.1 release of the SCL and Data Probe. It assumes you are familiar
+9 -6
View File
@@ -10,9 +10,8 @@ Step Class Library v0.1 -- https://github.com/mpictor/StepClassLibrary
* SCL is packaged along with some other tools. See
"THE NIST STEP TOOLSET", below. In particular, Data Probe
requires InterViews, an obsolete UI toolkit. A version of it is
still present in the git repository, but I have not had luck
building the data probe with it. It may be more productive
requires InterViews, an obsolete UI toolkit. I (mpictor) have not
had luck building the data probe with it. It may be more productive
to replace InterViews with a modern toolkit such as Qt. I
expect that this would be non-trivial.
@@ -66,6 +65,10 @@ to match the current formatting. The main points are:
- line endings are LF (linux), not CRLF (windows)
- brackets around single-line conditionals
- spaces inside parentheses and around operators
- return type on the same line as the function name, unless that's
too long
- doxygen-style comments
(see http://www.stack.nl/~dimitri/doxygen/docblocks.html)
If in doubt about a large patch, run astyle with the config file
misc/astyle.cfg.
@@ -87,8 +90,8 @@ Notes/TODO items specific to the STEP libraries as included in BRL-CAD:
and should be a starting point for any debugging of EXPRESS
parsing issues.
* None of the original test codes have been incorporated into the
new build system, but they are still present in src/test
* Of the original test code, only p21read has been incorporated into
the new build system, but they are still present in src/test
* Express and exppp header files have been relocated to subdirectories
in include. The names of the library files being built have been
@@ -102,7 +105,7 @@ Notes/TODO items specific to the STEP libraries as included in BRL-CAD:
=====================================================
Much has changed since README.scl was written.
It is reproduced in its entirety below.
However, it is reproduced in its entirety below.
=====================================================
README.scl (top level README) February 1998
+68
View File
@@ -0,0 +1,68 @@
-- $ ../bin/fedex_plus ../../data/test_schema.exp
-- ../../data/test_schema.exp:34: --ERROR: Query expression source must be an aggregate.
-- Errors in input
SCHEMA aggregate_error_schema;
ENTITY representation_item
SUPERTYPE OF (ONEOF (binary_representation_item, compound_representation_item));
name : label;
--WHERE
-- WR1 : SIZEOF(using_representations(SELF)) > 0;
END_ENTITY;
TYPE list_representation_item = LIST [1:?] OF representation_item;
END_TYPE;
TYPE set_representation_item = SET [1:?] OF representation_item;
END_TYPE;
TYPE compound_item_definition = SELECT (
list_representation_item,
set_representation_item);
END_TYPE;
ENTITY compound_representation_item
SUPERTYPE OF (ONEOF (point_and_vector, table_representation_item))
SUBTYPE OF (representation_item);
item_element : compound_item_definition;
END_ENTITY;
ENTITY table_representation_item
SUBTYPE OF (compound_representation_item);
WHERE
WR1 : SIZEOF(QUERY(itet <* SELF\compound_representation_item.item_element |
NOT('TEST_SCHEMA.ROW_REPRESENTATION_ITEM' IN TYPEOF(itet))
)) = 0;
END_ENTITY;
--
ENTITY row_representation_item
SUBTYPE OF (compound_representation_item);
SELF\compound_representation_item.item_element : list_representation_item;
END_ENTITY;
ENTITY binary_representation_item
SUBTYPE OF (representation_item);
binary_value : BINARY;
END_ENTITY;
ENTITY point_and_vector
SUBTYPE OF (compound_representation_item); --, geometric_representation_item);
SELF\compound_representation_item.item_element : point_and_vector_members;
END_ENTITY;
TYPE point_and_vector_members = LIST [2:3] OF identifier;
END_TYPE;
TYPE label = STRING;
END_TYPE;
TYPE identifier = STRING;
END_TYPE;
END_SCHEMA;
File diff suppressed because it is too large Load Diff
+991
View File
@@ -0,0 +1,991 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('CoCreate Modeling STEP Export'),'2;1');
FILE_NAME('io1.stp','2008-05-07T16:14:57',('Helmut'),('PTC'),
'CoCreate Modeling STEP processor for AP214 (Solid Model)',
'CoCreate Modeling 16.00 06-May-2008 (C) Parametric Technology GmbH',''
);
FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
ENDSEC;
DATA;
#10=CARTESIAN_POINT('',(3.,0.,0.));
#20=DIRECTION('',(-1.,-0.,-0.));
#30=DIRECTION('',(-0.,1.,0.));
#40=AXIS2_PLACEMENT_3D('',#10,#20,#30);
#50=CYLINDRICAL_SURFACE('',#40,44.);
#60=CARTESIAN_POINT('',(3.,-44.,-5.38844591624835E-15));
#70=DIRECTION('',(-1.,-0.,-0.));
#80=VECTOR('',#70,1.);
#90=LINE('',#60,#80);
#100=CARTESIAN_POINT('',(6.,-44.,-5.38844591624835E-15));
#110=VERTEX_POINT('',#100);
#120=CARTESIAN_POINT('',(0.,-44.,-5.38844591624835E-15));
#130=VERTEX_POINT('',#120);
#140=EDGE_CURVE('',#110,#130,#90,.T.);
#150=ORIENTED_EDGE('',*,*,#140,.T.);
#160=CARTESIAN_POINT('',(6.,0.,0.));
#170=DIRECTION('',(1.,0.,0.));
#180=DIRECTION('',(0.,1.,0.));
#190=AXIS2_PLACEMENT_3D('',#160,#170,#180);
#200=CIRCLE('',#190,44.);
#210=CARTESIAN_POINT('',(6.,44.,0.));
#220=VERTEX_POINT('',#210);
#230=EDGE_CURVE('',#110,#220,#200,.T.);
#240=ORIENTED_EDGE('',*,*,#230,.F.);
#250=CARTESIAN_POINT('',(3.,44.,0.));
#260=DIRECTION('',(-1.,-0.,-0.));
#270=VECTOR('',#260,1.);
#280=LINE('',#250,#270);
#290=CARTESIAN_POINT('',(0.,44.,0.));
#300=VERTEX_POINT('',#290);
#310=EDGE_CURVE('',#220,#300,#280,.T.);
#320=ORIENTED_EDGE('',*,*,#310,.F.);
#330=CARTESIAN_POINT('',(0.,0.,0.));
#340=DIRECTION('',(1.,0.,0.));
#350=DIRECTION('',(0.,1.,0.));
#360=AXIS2_PLACEMENT_3D('',#330,#340,#350);
#370=CIRCLE('',#360,44.);
#380=EDGE_CURVE('',#130,#300,#370,.T.);
#390=ORIENTED_EDGE('',*,*,#380,.T.);
#400=EDGE_LOOP('',(#390,#320,#240,#150));
#410=FACE_OUTER_BOUND('',#400,.T.);
#420=ADVANCED_FACE('',(#410),#50,.T.);
#430=CARTESIAN_POINT('',(0.,31.,0.));
#440=DIRECTION('',(-1.,-0.,-0.));
#450=DIRECTION('',(-0.,1.,0.));
#460=AXIS2_PLACEMENT_3D('',#430,#440,#450);
#470=PLANE('',#460);
#480=CARTESIAN_POINT('',(0.,0.,0.));
#490=DIRECTION('',(1.,0.,0.));
#500=DIRECTION('',(0.,1.,0.));
#510=AXIS2_PLACEMENT_3D('',#480,#490,#500);
#520=CIRCLE('',#510,18.);
#530=CARTESIAN_POINT('',(0.,18.,0.));
#540=VERTEX_POINT('',#530);
#550=CARTESIAN_POINT('',(0.,-18.,-2.20436423846524E-15));
#560=VERTEX_POINT('',#550);
#570=EDGE_CURVE('',#540,#560,#520,.T.);
#580=ORIENTED_EDGE('',*,*,#570,.T.);
#590=EDGE_CURVE('',#560,#540,#520,.T.);
#600=ORIENTED_EDGE('',*,*,#590,.T.);
#610=EDGE_LOOP('',(#600,#580));
#620=FACE_BOUND('',#610,.T.);
#630=EDGE_CURVE('',#300,#130,#370,.T.);
#640=ORIENTED_EDGE('',*,*,#630,.F.);
#650=ORIENTED_EDGE('',*,*,#380,.F.);
#660=EDGE_LOOP('',(#650,#640));
#670=FACE_OUTER_BOUND('',#660,.T.);
#680=CARTESIAN_POINT('',(0.,32.4759526419164,18.7500000000001));
#690=DIRECTION('',(1.,0.,0.));
#700=DIRECTION('',(0.,0.,-1.));
#710=AXIS2_PLACEMENT_3D('',#680,#690,#700);
#720=CIRCLE('',#710,3.5);
#730=CARTESIAN_POINT('',(0.,32.4759526419164,15.2500000000001));
#740=VERTEX_POINT('',#730);
#750=CARTESIAN_POINT('',(0.,32.4759526419164,22.2500000000001));
#760=VERTEX_POINT('',#750);
#770=EDGE_CURVE('',#740,#760,#720,.T.);
#780=ORIENTED_EDGE('',*,*,#770,.T.);
#790=EDGE_CURVE('',#760,#740,#720,.T.);
#800=ORIENTED_EDGE('',*,*,#790,.T.);
#810=EDGE_LOOP('',(#800,#780));
#820=FACE_BOUND('',#810,.T.);
#830=CARTESIAN_POINT('',(0.,32.4759526419165,-18.7499999999999));
#840=DIRECTION('',(1.,0.,0.));
#850=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999));
#860=AXIS2_PLACEMENT_3D('',#830,#840,#850);
#870=CIRCLE('',#860,3.5);
#880=CARTESIAN_POINT('',(0.,29.444863728671,-20.4999999999999));
#890=VERTEX_POINT('',#880);
#900=CARTESIAN_POINT('',(0.,35.507041555162,-16.9999999999999));
#910=VERTEX_POINT('',#900);
#920=EDGE_CURVE('',#890,#910,#870,.T.);
#930=ORIENTED_EDGE('',*,*,#920,.T.);
#940=EDGE_CURVE('',#910,#890,#870,.T.);
#950=ORIENTED_EDGE('',*,*,#940,.T.);
#960=EDGE_LOOP('',(#950,#930));
#970=FACE_BOUND('',#960,.T.);
#980=CARTESIAN_POINT('',(0.,8.24895707296491E-14,-37.5));
#990=DIRECTION('',(1.,0.,0.));
#1000=DIRECTION('',(0.,-0.86602540378444,0.499999999999998));
#1010=AXIS2_PLACEMENT_3D('',#980,#990,#1000);
#1020=CIRCLE('',#1010,3.5);
#1030=CARTESIAN_POINT('',(0.,-3.03108891324546,-35.75));
#1040=VERTEX_POINT('',#1030);
#1050=CARTESIAN_POINT('',(0.,3.03108891324562,-39.25));
#1060=VERTEX_POINT('',#1050);
#1070=EDGE_CURVE('',#1040,#1060,#1020,.T.);
#1080=ORIENTED_EDGE('',*,*,#1070,.T.);
#1090=EDGE_CURVE('',#1060,#1040,#1020,.T.);
#1100=ORIENTED_EDGE('',*,*,#1090,.T.);
#1110=EDGE_LOOP('',(#1100,#1080));
#1120=FACE_BOUND('',#1110,.T.);
#1130=CARTESIAN_POINT('',(0.,-32.4759526419164,-18.7500000000001));
#1140=DIRECTION('',(1.,0.,0.));
#1150=DIRECTION('',(0.,-1.11022302462516E-15,1.));
#1160=AXIS2_PLACEMENT_3D('',#1130,#1140,#1150);
#1170=CIRCLE('',#1160,3.5);
#1180=CARTESIAN_POINT('',(0.,-32.4759526419164,-15.2500000000001));
#1190=VERTEX_POINT('',#1180);
#1200=CARTESIAN_POINT('',(0.,-32.4759526419164,-22.2500000000001));
#1210=VERTEX_POINT('',#1200);
#1220=EDGE_CURVE('',#1190,#1210,#1170,.T.);
#1230=ORIENTED_EDGE('',*,*,#1220,.T.);
#1240=EDGE_CURVE('',#1210,#1190,#1170,.T.);
#1250=ORIENTED_EDGE('',*,*,#1240,.T.);
#1260=EDGE_LOOP('',(#1250,#1230));
#1270=FACE_BOUND('',#1260,.T.);
#1280=CARTESIAN_POINT('',(0.,-32.4759526419165,18.7499999999999));
#1290=DIRECTION('',(1.,0.,0.));
#1300=DIRECTION('',(0.,0.866025403784439,0.499999999999999));
#1310=AXIS2_PLACEMENT_3D('',#1280,#1290,#1300);
#1320=CIRCLE('',#1310,3.5);
#1330=CARTESIAN_POINT('',(0.,-29.444863728671,20.4999999999999));
#1340=VERTEX_POINT('',#1330);
#1350=CARTESIAN_POINT('',(0.,-35.5070415551621,16.9999999999999));
#1360=VERTEX_POINT('',#1350);
#1370=EDGE_CURVE('',#1340,#1360,#1320,.T.);
#1380=ORIENTED_EDGE('',*,*,#1370,.T.);
#1390=EDGE_CURVE('',#1360,#1340,#1320,.T.);
#1400=ORIENTED_EDGE('',*,*,#1390,.T.);
#1410=EDGE_LOOP('',(#1400,#1380));
#1420=FACE_BOUND('',#1410,.T.);
#1430=CARTESIAN_POINT('',(0.,-1.07802655691103E-13,37.5));
#1440=DIRECTION('',(1.,0.,0.));
#1450=DIRECTION('',(0.,0.86602540378444,-0.499999999999998));
#1460=AXIS2_PLACEMENT_3D('',#1430,#1440,#1450);
#1470=CIRCLE('',#1460,3.5);
#1480=CARTESIAN_POINT('',(0.,3.03108891324543,35.75));
#1490=VERTEX_POINT('',#1480);
#1500=CARTESIAN_POINT('',(0.,-3.03108891324565,39.25));
#1510=VERTEX_POINT('',#1500);
#1520=EDGE_CURVE('',#1490,#1510,#1470,.T.);
#1530=ORIENTED_EDGE('',*,*,#1520,.T.);
#1540=EDGE_CURVE('',#1510,#1490,#1470,.T.);
#1550=ORIENTED_EDGE('',*,*,#1540,.T.);
#1560=EDGE_LOOP('',(#1550,#1530));
#1570=FACE_BOUND('',#1560,.T.);
#1580=ADVANCED_FACE('',(#620,#670,#820,#970,#1120,#1270,#1420,#1570),
#470,.T.);
#1590=CARTESIAN_POINT('',(15.5,0.,0.));
#1600=DIRECTION('',(-1.,-0.,-0.));
#1610=DIRECTION('',(-0.,1.,0.));
#1620=AXIS2_PLACEMENT_3D('',#1590,#1600,#1610);
#1630=CYLINDRICAL_SURFACE('',#1620,18.);
#1640=CARTESIAN_POINT('',(15.5,-18.,-2.20436423846524E-15));
#1650=DIRECTION('',(-1.,-0.,-0.));
#1660=VECTOR('',#1650,1.);
#1670=LINE('',#1640,#1660);
#1680=CARTESIAN_POINT('',(31.,-18.,-2.20436423846524E-15));
#1690=VERTEX_POINT('',#1680);
#1700=EDGE_CURVE('',#1690,#560,#1670,.T.);
#1710=ORIENTED_EDGE('',*,*,#1700,.F.);
#1720=ORIENTED_EDGE('',*,*,#590,.F.);
#1730=CARTESIAN_POINT('',(15.5,18.,0.));
#1740=DIRECTION('',(-1.,-0.,-0.));
#1750=VECTOR('',#1740,1.);
#1760=LINE('',#1730,#1750);
#1770=CARTESIAN_POINT('',(31.,18.,0.));
#1780=VERTEX_POINT('',#1770);
#1790=EDGE_CURVE('',#1780,#540,#1760,.T.);
#1800=ORIENTED_EDGE('',*,*,#1790,.T.);
#1810=CARTESIAN_POINT('',(31.,0.,0.));
#1820=DIRECTION('',(1.,0.,0.));
#1830=DIRECTION('',(0.,1.,0.));
#1840=AXIS2_PLACEMENT_3D('',#1810,#1820,#1830);
#1850=CIRCLE('',#1840,18.);
#1860=EDGE_CURVE('',#1690,#1780,#1850,.T.);
#1870=ORIENTED_EDGE('',*,*,#1860,.T.);
#1880=EDGE_LOOP('',(#1870,#1800,#1720,#1710));
#1890=FACE_OUTER_BOUND('',#1880,.T.);
#1900=ADVANCED_FACE('',(#1890),#1630,.F.);
#1910=COLOUR_RGB('',1.,0.,0.);
#1920=FILL_AREA_STYLE_COLOUR('',#1910);
#1930=FILL_AREA_STYLE('',(#1920));
#1940=SURFACE_STYLE_FILL_AREA(#1930);
#1950=SURFACE_SIDE_STYLE('',(#1940));
#1960=SURFACE_STYLE_USAGE(.BOTH.,#1950);
#1970=PRESENTATION_STYLE_ASSIGNMENT((#1960));
#1980=CARTESIAN_POINT('',(31.,24.5,0.));
#1990=DIRECTION('',(-1.,-0.,-0.));
#2000=DIRECTION('',(-0.,1.,0.));
#2010=AXIS2_PLACEMENT_3D('',#1980,#1990,#2000);
#2020=PLANE('',#2010);
#2030=EDGE_CURVE('',#1780,#1690,#1850,.T.);
#2040=ORIENTED_EDGE('',*,*,#2030,.F.);
#2050=ORIENTED_EDGE('',*,*,#1860,.F.);
#2060=EDGE_LOOP('',(#2050,#2040));
#2070=FACE_BOUND('',#2060,.T.);
#2080=CARTESIAN_POINT('',(31.,0.,0.));
#2090=DIRECTION('',(-1.,-0.,-0.));
#2100=DIRECTION('',(0.,1.,0.));
#2110=AXIS2_PLACEMENT_3D('',#2080,#2090,#2100);
#2120=CIRCLE('',#2110,30.);
#2130=CARTESIAN_POINT('',(31.,30.,0.));
#2140=VERTEX_POINT('',#2130);
#2150=CARTESIAN_POINT('',(31.,-30.,0.));
#2160=VERTEX_POINT('',#2150);
#2170=EDGE_CURVE('',#2140,#2160,#2120,.T.);
#2180=ORIENTED_EDGE('',*,*,#2170,.F.);
#2190=EDGE_CURVE('',#2160,#2140,#2120,.T.);
#2200=ORIENTED_EDGE('',*,*,#2190,.F.);
#2210=EDGE_LOOP('',(#2200,#2180));
#2220=FACE_OUTER_BOUND('',#2210,.T.);
#2230=ADVANCED_FACE('',(#2070,#2220),#2020,.F.);
#2240=CARTESIAN_POINT('',(26.,0.,0.));
#2250=DIRECTION('',(-1.,-0.,-0.));
#2260=DIRECTION('',(-0.,1.,0.));
#2270=AXIS2_PLACEMENT_3D('',#2240,#2250,#2260);
#2280=CYLINDRICAL_SURFACE('',#2270,31.);
#2290=CARTESIAN_POINT('',(26.,-31.,-3.7964050773568E-15));
#2300=DIRECTION('',(-1.,-0.,-0.));
#2310=VECTOR('',#2300,1.);
#2320=LINE('',#2290,#2310);
#2330=CARTESIAN_POINT('',(30.,-31.,0.));
#2340=VERTEX_POINT('',#2330);
#2350=CARTESIAN_POINT('',(21.,-31.,-3.7964050773568E-15));
#2360=VERTEX_POINT('',#2350);
#2370=EDGE_CURVE('',#2340,#2360,#2320,.T.);
#2380=ORIENTED_EDGE('',*,*,#2370,.T.);
#2390=CARTESIAN_POINT('',(30.,0.,0.));
#2400=DIRECTION('',(1.,0.,0.));
#2410=DIRECTION('',(-0.,1.,0.));
#2420=AXIS2_PLACEMENT_3D('',#2390,#2400,#2410);
#2430=CIRCLE('',#2420,31.);
#2440=CARTESIAN_POINT('',(30.,31.,0.));
#2450=VERTEX_POINT('',#2440);
#2460=EDGE_CURVE('',#2340,#2450,#2430,.T.);
#2470=ORIENTED_EDGE('',*,*,#2460,.F.);
#2480=CARTESIAN_POINT('',(26.,31.,0.));
#2490=DIRECTION('',(-1.,-0.,-0.));
#2500=VECTOR('',#2490,1.);
#2510=LINE('',#2480,#2500);
#2520=CARTESIAN_POINT('',(21.,31.,0.));
#2530=VERTEX_POINT('',#2520);
#2540=EDGE_CURVE('',#2450,#2530,#2510,.T.);
#2550=ORIENTED_EDGE('',*,*,#2540,.F.);
#2560=CARTESIAN_POINT('',(21.,0.,0.));
#2570=DIRECTION('',(1.,0.,0.));
#2580=DIRECTION('',(0.,1.,0.));
#2590=AXIS2_PLACEMENT_3D('',#2560,#2570,#2580);
#2600=CIRCLE('',#2590,31.);
#2610=EDGE_CURVE('',#2360,#2530,#2600,.T.);
#2620=ORIENTED_EDGE('',*,*,#2610,.T.);
#2630=EDGE_LOOP('',(#2620,#2550,#2470,#2380));
#2640=FACE_OUTER_BOUND('',#2630,.T.);
#2650=ADVANCED_FACE('',(#2640),#2280,.T.);
#2660=CARTESIAN_POINT('',(21.,30.,0.));
#2670=DIRECTION('',(-1.,-0.,-0.));
#2680=DIRECTION('',(-0.,1.,0.));
#2690=AXIS2_PLACEMENT_3D('',#2660,#2670,#2680);
#2700=PLANE('',#2690);
#2710=CARTESIAN_POINT('',(21.,0.,0.));
#2720=DIRECTION('',(1.,0.,0.));
#2730=DIRECTION('',(0.,1.,0.));
#2740=AXIS2_PLACEMENT_3D('',#2710,#2720,#2730);
#2750=CIRCLE('',#2740,29.);
#2760=CARTESIAN_POINT('',(21.,29.,0.));
#2770=VERTEX_POINT('',#2760);
#2780=CARTESIAN_POINT('',(21.,-29.,-3.55147571752732E-15));
#2790=VERTEX_POINT('',#2780);
#2800=EDGE_CURVE('',#2770,#2790,#2750,.T.);
#2810=ORIENTED_EDGE('',*,*,#2800,.T.);
#2820=EDGE_CURVE('',#2790,#2770,#2750,.T.);
#2830=ORIENTED_EDGE('',*,*,#2820,.T.);
#2840=EDGE_LOOP('',(#2830,#2810));
#2850=FACE_BOUND('',#2840,.T.);
#2860=EDGE_CURVE('',#2530,#2360,#2600,.T.);
#2870=ORIENTED_EDGE('',*,*,#2860,.F.);
#2880=ORIENTED_EDGE('',*,*,#2610,.F.);
#2890=EDGE_LOOP('',(#2880,#2870));
#2900=FACE_OUTER_BOUND('',#2890,.T.);
#2910=ADVANCED_FACE('',(#2850,#2900),#2700,.T.);
#2920=CARTESIAN_POINT('',(20.,0.,0.));
#2930=DIRECTION('',(-1.,-0.,-0.));
#2940=DIRECTION('',(-0.,1.,0.));
#2950=AXIS2_PLACEMENT_3D('',#2920,#2930,#2940);
#2960=CYLINDRICAL_SURFACE('',#2950,29.);
#2970=CARTESIAN_POINT('',(20.,-29.,-3.55147571752732E-15));
#2980=DIRECTION('',(-1.,-0.,-0.));
#2990=VECTOR('',#2980,1.);
#3000=LINE('',#2970,#2990);
#3010=CARTESIAN_POINT('',(19.,-29.,-3.55147571752732E-15));
#3020=VERTEX_POINT('',#3010);
#3030=EDGE_CURVE('',#2790,#3020,#3000,.T.);
#3040=ORIENTED_EDGE('',*,*,#3030,.T.);
#3050=ORIENTED_EDGE('',*,*,#2820,.F.);
#3060=CARTESIAN_POINT('',(20.,29.,0.));
#3070=DIRECTION('',(-1.,-0.,-0.));
#3080=VECTOR('',#3070,1.);
#3090=LINE('',#3060,#3080);
#3100=CARTESIAN_POINT('',(19.,29.,0.));
#3110=VERTEX_POINT('',#3100);
#3120=EDGE_CURVE('',#2770,#3110,#3090,.T.);
#3130=ORIENTED_EDGE('',*,*,#3120,.F.);
#3140=CARTESIAN_POINT('',(19.,0.,0.));
#3150=DIRECTION('',(1.,0.,0.));
#3160=DIRECTION('',(0.,1.,0.));
#3170=AXIS2_PLACEMENT_3D('',#3140,#3150,#3160);
#3180=CIRCLE('',#3170,29.);
#3190=EDGE_CURVE('',#3020,#3110,#3180,.T.);
#3200=ORIENTED_EDGE('',*,*,#3190,.T.);
#3210=EDGE_LOOP('',(#3200,#3130,#3050,#3040));
#3220=FACE_OUTER_BOUND('',#3210,.T.);
#3230=ADVANCED_FACE('',(#3220),#2960,.T.);
#3240=CARTESIAN_POINT('',(19.,30.,0.));
#3250=DIRECTION('',(-1.,-0.,-0.));
#3260=DIRECTION('',(-0.,1.,0.));
#3270=AXIS2_PLACEMENT_3D('',#3240,#3250,#3260);
#3280=PLANE('',#3270);
#3290=CARTESIAN_POINT('',(19.,0.,0.));
#3300=DIRECTION('',(1.,0.,0.));
#3310=DIRECTION('',(0.,1.,0.));
#3320=AXIS2_PLACEMENT_3D('',#3290,#3300,#3310);
#3330=CIRCLE('',#3320,31.);
#3340=CARTESIAN_POINT('',(19.,31.,0.));
#3350=VERTEX_POINT('',#3340);
#3360=CARTESIAN_POINT('',(19.,-31.,-3.7964050773568E-15));
#3370=VERTEX_POINT('',#3360);
#3380=EDGE_CURVE('',#3350,#3370,#3330,.T.);
#3390=ORIENTED_EDGE('',*,*,#3380,.T.);
#3400=EDGE_CURVE('',#3370,#3350,#3330,.T.);
#3410=ORIENTED_EDGE('',*,*,#3400,.T.);
#3420=EDGE_LOOP('',(#3410,#3390));
#3430=FACE_OUTER_BOUND('',#3420,.T.);
#3440=EDGE_CURVE('',#3110,#3020,#3180,.T.);
#3450=ORIENTED_EDGE('',*,*,#3440,.F.);
#3460=ORIENTED_EDGE('',*,*,#3190,.F.);
#3470=EDGE_LOOP('',(#3460,#3450));
#3480=FACE_BOUND('',#3470,.T.);
#3490=ADVANCED_FACE('',(#3430,#3480),#3280,.F.);
#3500=CARTESIAN_POINT('',(12.5,0.,0.));
#3510=DIRECTION('',(-1.,-0.,-0.));
#3520=DIRECTION('',(-0.,1.,0.));
#3530=AXIS2_PLACEMENT_3D('',#3500,#3510,#3520);
#3540=CYLINDRICAL_SURFACE('',#3530,31.);
#3550=CARTESIAN_POINT('',(12.5,-31.,-3.7964050773568E-15));
#3560=DIRECTION('',(-1.,-0.,-0.));
#3570=VECTOR('',#3560,1.);
#3580=LINE('',#3550,#3570);
#3590=CARTESIAN_POINT('',(6.,-31.,-3.7964050773568E-15));
#3600=VERTEX_POINT('',#3590);
#3610=EDGE_CURVE('',#3370,#3600,#3580,.T.);
#3620=ORIENTED_EDGE('',*,*,#3610,.T.);
#3630=ORIENTED_EDGE('',*,*,#3400,.F.);
#3640=CARTESIAN_POINT('',(12.5,31.,0.));
#3650=DIRECTION('',(-1.,-0.,-0.));
#3660=VECTOR('',#3650,1.);
#3670=LINE('',#3640,#3660);
#3680=CARTESIAN_POINT('',(6.,31.,0.));
#3690=VERTEX_POINT('',#3680);
#3700=EDGE_CURVE('',#3350,#3690,#3670,.T.);
#3710=ORIENTED_EDGE('',*,*,#3700,.F.);
#3720=CARTESIAN_POINT('',(6.,0.,0.));
#3730=DIRECTION('',(1.,0.,0.));
#3740=DIRECTION('',(0.,1.,0.));
#3750=AXIS2_PLACEMENT_3D('',#3720,#3730,#3740);
#3760=CIRCLE('',#3750,31.);
#3770=EDGE_CURVE('',#3600,#3690,#3760,.T.);
#3780=ORIENTED_EDGE('',*,*,#3770,.T.);
#3790=EDGE_LOOP('',(#3780,#3710,#3630,#3620));
#3800=FACE_OUTER_BOUND('',#3790,.T.);
#3810=ADVANCED_FACE('',(#3800),#3540,.T.);
#3820=CARTESIAN_POINT('',(6.,37.5,0.));
#3830=DIRECTION('',(-1.,-0.,-0.));
#3840=DIRECTION('',(-0.,1.,0.));
#3850=AXIS2_PLACEMENT_3D('',#3820,#3830,#3840);
#3860=PLANE('',#3850);
#3870=EDGE_CURVE('',#220,#110,#200,.T.);
#3880=ORIENTED_EDGE('',*,*,#3870,.T.);
#3890=ORIENTED_EDGE('',*,*,#230,.T.);
#3900=EDGE_LOOP('',(#3890,#3880));
#3910=FACE_OUTER_BOUND('',#3900,.T.);
#3920=EDGE_CURVE('',#3690,#3600,#3760,.T.);
#3930=ORIENTED_EDGE('',*,*,#3920,.F.);
#3940=ORIENTED_EDGE('',*,*,#3770,.F.);
#3950=EDGE_LOOP('',(#3940,#3930));
#3960=FACE_BOUND('',#3950,.T.);
#3970=CARTESIAN_POINT('',(6.,32.4759526419164,18.7500000000001));
#3980=DIRECTION('',(1.,0.,0.));
#3990=DIRECTION('',(0.,0.,-1.));
#4000=AXIS2_PLACEMENT_3D('',#3970,#3980,#3990);
#4010=CIRCLE('',#4000,3.5);
#4020=CARTESIAN_POINT('',(6.,32.4759526419164,15.2500000000001));
#4030=VERTEX_POINT('',#4020);
#4040=CARTESIAN_POINT('',(6.,32.4759526419164,22.2500000000001));
#4050=VERTEX_POINT('',#4040);
#4060=EDGE_CURVE('',#4030,#4050,#4010,.T.);
#4070=ORIENTED_EDGE('',*,*,#4060,.F.);
#4080=EDGE_CURVE('',#4050,#4030,#4010,.T.);
#4090=ORIENTED_EDGE('',*,*,#4080,.F.);
#4100=EDGE_LOOP('',(#4090,#4070));
#4110=FACE_BOUND('',#4100,.T.);
#4120=CARTESIAN_POINT('',(6.,32.4759526419165,-18.7499999999999));
#4130=DIRECTION('',(1.,0.,0.));
#4140=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999));
#4150=AXIS2_PLACEMENT_3D('',#4120,#4130,#4140);
#4160=CIRCLE('',#4150,3.5);
#4170=CARTESIAN_POINT('',(6.,29.444863728671,-20.4999999999999));
#4180=VERTEX_POINT('',#4170);
#4190=CARTESIAN_POINT('',(6.,35.507041555162,-16.9999999999999));
#4200=VERTEX_POINT('',#4190);
#4210=EDGE_CURVE('',#4180,#4200,#4160,.T.);
#4220=ORIENTED_EDGE('',*,*,#4210,.F.);
#4230=EDGE_CURVE('',#4200,#4180,#4160,.T.);
#4240=ORIENTED_EDGE('',*,*,#4230,.F.);
#4250=EDGE_LOOP('',(#4240,#4220));
#4260=FACE_BOUND('',#4250,.T.);
#4270=CARTESIAN_POINT('',(6.,8.24895707296491E-14,-37.5));
#4280=DIRECTION('',(1.,0.,0.));
#4290=DIRECTION('',(0.,-0.86602540378444,0.499999999999998));
#4300=AXIS2_PLACEMENT_3D('',#4270,#4280,#4290);
#4310=CIRCLE('',#4300,3.5);
#4320=CARTESIAN_POINT('',(6.,-3.03108891324546,-35.75));
#4330=VERTEX_POINT('',#4320);
#4340=CARTESIAN_POINT('',(6.,3.03108891324562,-39.25));
#4350=VERTEX_POINT('',#4340);
#4360=EDGE_CURVE('',#4330,#4350,#4310,.T.);
#4370=ORIENTED_EDGE('',*,*,#4360,.F.);
#4380=EDGE_CURVE('',#4350,#4330,#4310,.T.);
#4390=ORIENTED_EDGE('',*,*,#4380,.F.);
#4400=EDGE_LOOP('',(#4390,#4370));
#4410=FACE_BOUND('',#4400,.T.);
#4420=CARTESIAN_POINT('',(6.,-32.4759526419164,-18.7500000000001));
#4430=DIRECTION('',(1.,0.,0.));
#4440=DIRECTION('',(0.,-1.11022302462516E-15,1.));
#4450=AXIS2_PLACEMENT_3D('',#4420,#4430,#4440);
#4460=CIRCLE('',#4450,3.5);
#4470=CARTESIAN_POINT('',(6.,-32.4759526419164,-15.2500000000001));
#4480=VERTEX_POINT('',#4470);
#4490=CARTESIAN_POINT('',(6.,-32.4759526419164,-22.2500000000001));
#4500=VERTEX_POINT('',#4490);
#4510=EDGE_CURVE('',#4480,#4500,#4460,.T.);
#4520=ORIENTED_EDGE('',*,*,#4510,.F.);
#4530=EDGE_CURVE('',#4500,#4480,#4460,.T.);
#4540=ORIENTED_EDGE('',*,*,#4530,.F.);
#4550=EDGE_LOOP('',(#4540,#4520));
#4560=FACE_BOUND('',#4550,.T.);
#4570=CARTESIAN_POINT('',(6.,-32.4759526419165,18.7499999999999));
#4580=DIRECTION('',(1.,0.,0.));
#4590=DIRECTION('',(0.,0.866025403784439,0.499999999999999));
#4600=AXIS2_PLACEMENT_3D('',#4570,#4580,#4590);
#4610=CIRCLE('',#4600,3.5);
#4620=CARTESIAN_POINT('',(6.,-29.444863728671,20.4999999999999));
#4630=VERTEX_POINT('',#4620);
#4640=CARTESIAN_POINT('',(6.,-35.5070415551621,16.9999999999999));
#4650=VERTEX_POINT('',#4640);
#4660=EDGE_CURVE('',#4630,#4650,#4610,.T.);
#4670=ORIENTED_EDGE('',*,*,#4660,.F.);
#4680=EDGE_CURVE('',#4650,#4630,#4610,.T.);
#4690=ORIENTED_EDGE('',*,*,#4680,.F.);
#4700=EDGE_LOOP('',(#4690,#4670));
#4710=FACE_BOUND('',#4700,.T.);
#4720=CARTESIAN_POINT('',(6.,-1.07802655691103E-13,37.5));
#4730=DIRECTION('',(1.,0.,0.));
#4740=DIRECTION('',(0.,0.86602540378444,-0.499999999999998));
#4750=AXIS2_PLACEMENT_3D('',#4720,#4730,#4740);
#4760=CIRCLE('',#4750,3.5);
#4770=CARTESIAN_POINT('',(6.,3.03108891324543,35.75));
#4780=VERTEX_POINT('',#4770);
#4790=CARTESIAN_POINT('',(6.,-3.03108891324565,39.25));
#4800=VERTEX_POINT('',#4790);
#4810=EDGE_CURVE('',#4780,#4800,#4760,.T.);
#4820=ORIENTED_EDGE('',*,*,#4810,.F.);
#4830=EDGE_CURVE('',#4800,#4780,#4760,.T.);
#4840=ORIENTED_EDGE('',*,*,#4830,.F.);
#4850=EDGE_LOOP('',(#4840,#4820));
#4860=FACE_BOUND('',#4850,.T.);
#4870=ADVANCED_FACE('',(#3910,#3960,#4110,#4260,#4410,#4560,#4710,#4860)
,#3860,.F.);
#4880=CARTESIAN_POINT('',(6.,32.4759526419164,18.7500000000001));
#4890=DIRECTION('',(1.,0.,0.));
#4900=DIRECTION('',(0.,0.,-1.));
#4910=AXIS2_PLACEMENT_3D('',#4880,#4890,#4900);
#4920=CYLINDRICAL_SURFACE('',#4910,3.5);
#4930=CARTESIAN_POINT('',(6.,32.4759526419164,22.2500000000001));
#4940=DIRECTION('',(1.,0.,0.));
#4950=VECTOR('',#4940,1.);
#4960=LINE('',#4930,#4950);
#4970=EDGE_CURVE('',#760,#4050,#4960,.T.);
#4980=ORIENTED_EDGE('',*,*,#4970,.T.);
#4990=ORIENTED_EDGE('',*,*,#790,.F.);
#5000=CARTESIAN_POINT('',(6.,32.4759526419164,15.2500000000001));
#5010=DIRECTION('',(1.,0.,0.));
#5020=VECTOR('',#5010,1.);
#5030=LINE('',#5000,#5020);
#5040=EDGE_CURVE('',#740,#4030,#5030,.T.);
#5050=ORIENTED_EDGE('',*,*,#5040,.F.);
#5060=ORIENTED_EDGE('',*,*,#4080,.T.);
#5070=EDGE_LOOP('',(#5060,#5050,#4990,#4980));
#5080=FACE_OUTER_BOUND('',#5070,.T.);
#5090=ADVANCED_FACE('',(#5080),#4920,.F.);
#5100=CARTESIAN_POINT('',(6.,32.4759526419165,-18.7499999999999));
#5110=DIRECTION('',(1.,0.,0.));
#5120=DIRECTION('',(0.,-0.866025403784439,-0.499999999999999));
#5130=AXIS2_PLACEMENT_3D('',#5100,#5110,#5120);
#5140=CYLINDRICAL_SURFACE('',#5130,3.5);
#5150=CARTESIAN_POINT('',(6.,35.507041555162,-16.9999999999999));
#5160=DIRECTION('',(1.,0.,0.));
#5170=VECTOR('',#5160,1.);
#5180=LINE('',#5150,#5170);
#5190=EDGE_CURVE('',#910,#4200,#5180,.T.);
#5200=ORIENTED_EDGE('',*,*,#5190,.T.);
#5210=ORIENTED_EDGE('',*,*,#940,.F.);
#5220=CARTESIAN_POINT('',(6.,29.444863728671,-20.4999999999999));
#5230=DIRECTION('',(1.,0.,0.));
#5240=VECTOR('',#5230,1.);
#5250=LINE('',#5220,#5240);
#5260=EDGE_CURVE('',#890,#4180,#5250,.T.);
#5270=ORIENTED_EDGE('',*,*,#5260,.F.);
#5280=ORIENTED_EDGE('',*,*,#4230,.T.);
#5290=EDGE_LOOP('',(#5280,#5270,#5210,#5200));
#5300=FACE_OUTER_BOUND('',#5290,.T.);
#5310=ADVANCED_FACE('',(#5300),#5140,.F.);
#5320=CARTESIAN_POINT('',(6.,8.24895707296491E-14,-37.5));
#5330=DIRECTION('',(1.,0.,0.));
#5340=DIRECTION('',(0.,-0.86602540378444,0.499999999999998));
#5350=AXIS2_PLACEMENT_3D('',#5320,#5330,#5340);
#5360=CYLINDRICAL_SURFACE('',#5350,3.5);
#5370=CARTESIAN_POINT('',(6.,3.03108891324562,-39.25));
#5380=DIRECTION('',(1.,0.,0.));
#5390=VECTOR('',#5380,1.);
#5400=LINE('',#5370,#5390);
#5410=EDGE_CURVE('',#1060,#4350,#5400,.T.);
#5420=ORIENTED_EDGE('',*,*,#5410,.T.);
#5430=ORIENTED_EDGE('',*,*,#1090,.F.);
#5440=CARTESIAN_POINT('',(6.,-3.03108891324546,-35.75));
#5450=DIRECTION('',(1.,0.,0.));
#5460=VECTOR('',#5450,1.);
#5470=LINE('',#5440,#5460);
#5480=EDGE_CURVE('',#1040,#4330,#5470,.T.);
#5490=ORIENTED_EDGE('',*,*,#5480,.F.);
#5500=ORIENTED_EDGE('',*,*,#4380,.T.);
#5510=EDGE_LOOP('',(#5500,#5490,#5430,#5420));
#5520=FACE_OUTER_BOUND('',#5510,.T.);
#5530=ADVANCED_FACE('',(#5520),#5360,.F.);
#5540=CARTESIAN_POINT('',(6.,-32.4759526419164,-18.7500000000001));
#5550=DIRECTION('',(1.,0.,0.));
#5560=DIRECTION('',(0.,-1.11022302462516E-15,1.));
#5570=AXIS2_PLACEMENT_3D('',#5540,#5550,#5560);
#5580=CYLINDRICAL_SURFACE('',#5570,3.5);
#5590=CARTESIAN_POINT('',(6.,-32.4759526419164,-22.2500000000001));
#5600=DIRECTION('',(1.,0.,0.));
#5610=VECTOR('',#5600,1.);
#5620=LINE('',#5590,#5610);
#5630=EDGE_CURVE('',#1210,#4500,#5620,.T.);
#5640=ORIENTED_EDGE('',*,*,#5630,.T.);
#5650=ORIENTED_EDGE('',*,*,#1240,.F.);
#5660=CARTESIAN_POINT('',(6.,-32.4759526419164,-15.2500000000001));
#5670=DIRECTION('',(1.,0.,0.));
#5680=VECTOR('',#5670,1.);
#5690=LINE('',#5660,#5680);
#5700=EDGE_CURVE('',#1190,#4480,#5690,.T.);
#5710=ORIENTED_EDGE('',*,*,#5700,.F.);
#5720=ORIENTED_EDGE('',*,*,#4530,.T.);
#5730=EDGE_LOOP('',(#5720,#5710,#5650,#5640));
#5740=FACE_OUTER_BOUND('',#5730,.T.);
#5750=ADVANCED_FACE('',(#5740),#5580,.F.);
#5760=CARTESIAN_POINT('',(6.,-32.4759526419165,18.7499999999999));
#5770=DIRECTION('',(1.,0.,0.));
#5780=DIRECTION('',(0.,0.866025403784439,0.499999999999999));
#5790=AXIS2_PLACEMENT_3D('',#5760,#5770,#5780);
#5800=CYLINDRICAL_SURFACE('',#5790,3.5);
#5810=CARTESIAN_POINT('',(6.,-35.5070415551621,16.9999999999999));
#5820=DIRECTION('',(1.,0.,0.));
#5830=VECTOR('',#5820,1.);
#5840=LINE('',#5810,#5830);
#5850=EDGE_CURVE('',#1360,#4650,#5840,.T.);
#5860=ORIENTED_EDGE('',*,*,#5850,.T.);
#5870=ORIENTED_EDGE('',*,*,#1390,.F.);
#5880=CARTESIAN_POINT('',(6.,-29.444863728671,20.4999999999999));
#5890=DIRECTION('',(1.,0.,0.));
#5900=VECTOR('',#5890,1.);
#5910=LINE('',#5880,#5900);
#5920=EDGE_CURVE('',#1340,#4630,#5910,.T.);
#5930=ORIENTED_EDGE('',*,*,#5920,.F.);
#5940=ORIENTED_EDGE('',*,*,#4680,.T.);
#5950=EDGE_LOOP('',(#5940,#5930,#5870,#5860));
#5960=FACE_OUTER_BOUND('',#5950,.T.);
#5970=ADVANCED_FACE('',(#5960),#5800,.F.);
#5980=CARTESIAN_POINT('',(6.,-1.07802655691103E-13,37.5));
#5990=DIRECTION('',(1.,0.,0.));
#6000=DIRECTION('',(0.,0.86602540378444,-0.499999999999998));
#6010=AXIS2_PLACEMENT_3D('',#5980,#5990,#6000);
#6020=CYLINDRICAL_SURFACE('',#6010,3.5);
#6030=CARTESIAN_POINT('',(6.,-3.03108891324565,39.25));
#6040=DIRECTION('',(1.,0.,0.));
#6050=VECTOR('',#6040,1.);
#6060=LINE('',#6030,#6050);
#6070=EDGE_CURVE('',#1510,#4800,#6060,.T.);
#6080=ORIENTED_EDGE('',*,*,#6070,.T.);
#6090=ORIENTED_EDGE('',*,*,#1540,.F.);
#6100=CARTESIAN_POINT('',(6.,3.03108891324543,35.75));
#6110=DIRECTION('',(1.,0.,0.));
#6120=VECTOR('',#6110,1.);
#6130=LINE('',#6100,#6120);
#6140=EDGE_CURVE('',#1490,#4780,#6130,.T.);
#6150=ORIENTED_EDGE('',*,*,#6140,.F.);
#6160=ORIENTED_EDGE('',*,*,#4830,.T.);
#6170=EDGE_LOOP('',(#6160,#6150,#6090,#6080));
#6180=FACE_OUTER_BOUND('',#6170,.T.);
#6190=ADVANCED_FACE('',(#6180),#6020,.F.);
#6200=CARTESIAN_POINT('',(30.,0.,0.));
#6210=DIRECTION('',(-1.,-0.,-0.));
#6220=DIRECTION('',(0.,1.,0.));
#6230=AXIS2_PLACEMENT_3D('',#6200,#6210,#6220);
#6240=TOROIDAL_SURFACE('',#6230,30.,1.);
#6250=CARTESIAN_POINT('',(30.,-30.,0.));
#6260=DIRECTION('',(0.,0.,1.));
#6270=DIRECTION('',(-1.,-0.,0.));
#6280=AXIS2_PLACEMENT_3D('',#6250,#6260,#6270);
#6290=CIRCLE('',#6280,1.);
#6300=EDGE_CURVE('',#2340,#2160,#6290,.T.);
#6310=ORIENTED_EDGE('',*,*,#6300,.T.);
#6320=EDGE_CURVE('',#2450,#2340,#2430,.T.);
#6330=ORIENTED_EDGE('',*,*,#6320,.T.);
#6340=CARTESIAN_POINT('',(30.,30.,0.));
#6350=DIRECTION('',(0.,0.,-1.));
#6360=DIRECTION('',(-1.,0.,0.));
#6370=AXIS2_PLACEMENT_3D('',#6340,#6350,#6360);
#6380=CIRCLE('',#6370,1.);
#6390=EDGE_CURVE('',#2450,#2140,#6380,.T.);
#6400=ORIENTED_EDGE('',*,*,#6390,.F.);
#6410=ORIENTED_EDGE('',*,*,#2190,.T.);
#6420=EDGE_LOOP('',(#6410,#6400,#6330,#6310));
#6430=FACE_OUTER_BOUND('',#6420,.T.);
#6440=ADVANCED_FACE('',(#6430),#6240,.T.);
#6450=ORIENTED_EDGE('',*,*,#570,.F.);
#6460=ORIENTED_EDGE('',*,*,#1700,.T.);
#6470=ORIENTED_EDGE('',*,*,#2030,.T.);
#6480=ORIENTED_EDGE('',*,*,#1790,.F.);
#6490=EDGE_LOOP('',(#6480,#6470,#6460,#6450));
#6500=FACE_OUTER_BOUND('',#6490,.T.);
#6510=ADVANCED_FACE('',(#6500),#1630,.F.);
#6520=COLOUR_RGB('',1.,0.,0.);
#6530=FILL_AREA_STYLE_COLOUR('',#6520);
#6540=FILL_AREA_STYLE('',(#6530));
#6550=SURFACE_STYLE_FILL_AREA(#6540);
#6560=SURFACE_SIDE_STYLE('',(#6550));
#6570=SURFACE_STYLE_USAGE(.BOTH.,#6560);
#6580=PRESENTATION_STYLE_ASSIGNMENT((#6570));
#6590=ORIENTED_EDGE('',*,*,#3920,.T.);
#6600=ORIENTED_EDGE('',*,*,#3700,.T.);
#6610=ORIENTED_EDGE('',*,*,#3380,.F.);
#6620=ORIENTED_EDGE('',*,*,#3610,.F.);
#6630=EDGE_LOOP('',(#6620,#6610,#6600,#6590));
#6640=FACE_OUTER_BOUND('',#6630,.T.);
#6650=ADVANCED_FACE('',(#6640),#3540,.T.);
#6660=ORIENTED_EDGE('',*,*,#3870,.F.);
#6670=ORIENTED_EDGE('',*,*,#140,.F.);
#6680=ORIENTED_EDGE('',*,*,#630,.T.);
#6690=ORIENTED_EDGE('',*,*,#310,.T.);
#6700=EDGE_LOOP('',(#6690,#6680,#6670,#6660));
#6710=FACE_OUTER_BOUND('',#6700,.T.);
#6720=ADVANCED_FACE('',(#6710),#50,.T.);
#6730=ORIENTED_EDGE('',*,*,#2800,.F.);
#6740=ORIENTED_EDGE('',*,*,#3030,.F.);
#6750=ORIENTED_EDGE('',*,*,#3440,.T.);
#6760=ORIENTED_EDGE('',*,*,#3120,.T.);
#6770=EDGE_LOOP('',(#6760,#6750,#6740,#6730));
#6780=FACE_OUTER_BOUND('',#6770,.T.);
#6790=ADVANCED_FACE('',(#6780),#2960,.T.);
#6800=ORIENTED_EDGE('',*,*,#4660,.T.);
#6810=ORIENTED_EDGE('',*,*,#5920,.T.);
#6820=ORIENTED_EDGE('',*,*,#1370,.F.);
#6830=ORIENTED_EDGE('',*,*,#5850,.F.);
#6840=EDGE_LOOP('',(#6830,#6820,#6810,#6800));
#6850=FACE_OUTER_BOUND('',#6840,.T.);
#6860=ADVANCED_FACE('',(#6850),#5800,.F.);
#6870=ORIENTED_EDGE('',*,*,#1520,.F.);
#6880=ORIENTED_EDGE('',*,*,#6070,.F.);
#6890=ORIENTED_EDGE('',*,*,#4810,.T.);
#6900=ORIENTED_EDGE('',*,*,#6140,.T.);
#6910=EDGE_LOOP('',(#6900,#6890,#6880,#6870));
#6920=FACE_OUTER_BOUND('',#6910,.T.);
#6930=ADVANCED_FACE('',(#6920),#6020,.F.);
#6940=ORIENTED_EDGE('',*,*,#920,.F.);
#6950=ORIENTED_EDGE('',*,*,#5190,.F.);
#6960=ORIENTED_EDGE('',*,*,#4210,.T.);
#6970=ORIENTED_EDGE('',*,*,#5260,.T.);
#6980=EDGE_LOOP('',(#6970,#6960,#6950,#6940));
#6990=FACE_OUTER_BOUND('',#6980,.T.);
#7000=ADVANCED_FACE('',(#6990),#5140,.F.);
#7010=ORIENTED_EDGE('',*,*,#770,.F.);
#7020=ORIENTED_EDGE('',*,*,#4970,.F.);
#7030=ORIENTED_EDGE('',*,*,#4060,.T.);
#7040=ORIENTED_EDGE('',*,*,#5040,.T.);
#7050=EDGE_LOOP('',(#7040,#7030,#7020,#7010));
#7060=FACE_OUTER_BOUND('',#7050,.T.);
#7070=ADVANCED_FACE('',(#7060),#4920,.F.);
#7080=ORIENTED_EDGE('',*,*,#4360,.T.);
#7090=ORIENTED_EDGE('',*,*,#5480,.T.);
#7100=ORIENTED_EDGE('',*,*,#1070,.F.);
#7110=ORIENTED_EDGE('',*,*,#5410,.F.);
#7120=EDGE_LOOP('',(#7110,#7100,#7090,#7080));
#7130=FACE_OUTER_BOUND('',#7120,.T.);
#7140=ADVANCED_FACE('',(#7130),#5360,.F.);
#7150=ORIENTED_EDGE('',*,*,#6320,.F.);
#7160=ORIENTED_EDGE('',*,*,#2370,.F.);
#7170=ORIENTED_EDGE('',*,*,#2860,.T.);
#7180=ORIENTED_EDGE('',*,*,#2540,.T.);
#7190=EDGE_LOOP('',(#7180,#7170,#7160,#7150));
#7200=FACE_OUTER_BOUND('',#7190,.T.);
#7210=ADVANCED_FACE('',(#7200),#2280,.T.);
#7220=ORIENTED_EDGE('',*,*,#1220,.F.);
#7230=ORIENTED_EDGE('',*,*,#5630,.F.);
#7240=ORIENTED_EDGE('',*,*,#4510,.T.);
#7250=ORIENTED_EDGE('',*,*,#5700,.T.);
#7260=EDGE_LOOP('',(#7250,#7240,#7230,#7220));
#7270=FACE_OUTER_BOUND('',#7260,.T.);
#7280=ADVANCED_FACE('',(#7270),#5580,.F.);
#7290=ORIENTED_EDGE('',*,*,#6300,.F.);
#7300=ORIENTED_EDGE('',*,*,#2170,.T.);
#7310=ORIENTED_EDGE('',*,*,#6390,.T.);
#7320=ORIENTED_EDGE('',*,*,#2460,.T.);
#7330=EDGE_LOOP('',(#7320,#7310,#7300,#7290));
#7340=FACE_OUTER_BOUND('',#7330,.T.);
#7350=ADVANCED_FACE('',(#7340),#6240,.T.);
#7360=CLOSED_SHELL('',(#420,#1580,#1900,#2230,#2650,#2910,#3230,#3490,
#3810,#4870,#5090,#5310,#5530,#5750,#5970,#6190,#6440,#6510,#6650,#6720,
#6790,#6860,#6930,#7000,#7070,#7140,#7210,#7280,#7350));
#7370=MANIFOLD_SOLID_BREP('',#7360);
#7380=CARTESIAN_POINT('',(23.6895300346083,-64.3233402061603,
-12.2178744469499));
#7390=DIRECTION('',(-1.,0.,-0.));
#7400=DIRECTION('',(-0.,0.,1.));
#7410=AXIS2_PLACEMENT_3D('',#7380,#7390,#7400);
#7420=CARTESIAN_POINT('',(23.6895300346083,-64.3233402061603,
-12.2178744469499));
#7430=CARTESIAN_POINT('',(23.6895300346083,-13.2183033706512,
-12.2178744469499));
#7440=POLYLINE('',(#7420,#7430));
#7450=COLOUR_RGB('',0.,1.,0.);
#7460=DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
#7470=CURVE_STYLE('',#7460,POSITIVE_LENGTH_MEASURE(0.1),#7450);
#7480=PRESENTATION_STYLE_ASSIGNMENT((#7470));
#7490=(ANNOTATION_CURVE_OCCURRENCE() ANNOTATION_OCCURRENCE()
DRAUGHTING_ANNOTATION_OCCURRENCE() GEOMETRIC_REPRESENTATION_ITEM()
LEADER_CURVE() REPRESENTATION_ITEM('') STYLED_ITEM((#7480),#7440));
#7500=DRAUGHTING_PRE_DEFINED_TEXT_FONT('ISO 3098-1 font A');
#7510=TEXT_LITERAL('','Contact Face',#7410,'baseline left',.RIGHT.,#7500
);
#7520=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.);
#7530=DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
#7540=DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
#7550=(LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.));
#7560=(NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.));
#7570=(NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT());
#7580=(GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#7590))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#7550,#7560,#7570)) REPRESENTATION_CONTEXT
('',''));
#7590=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-6),#7550,
'distance_accuracy_value','maximum gap value');
#7600=SHAPE_REPRESENTATION('',(#1900),#7580);
#7610=TEXT_STYLE_FOR_DEFINED_FONT(#7450);
#7620=TEXT_STYLE_WITH_BOX_CHARACTERISTICS('',#7610,(BOX_HEIGHT(3.),
BOX_WIDTH(2.001),BOX_SLANT_ANGLE(0.),BOX_ROTATE_ANGLE(0.)));
#7630=PRESENTATION_STYLE_ASSIGNMENT((#7620));
#7640=(ANNOTATION_OCCURRENCE() ANNOTATION_TEXT_OCCURRENCE()
DRAUGHTING_ANNOTATION_OCCURRENCE() GEOMETRIC_REPRESENTATION_ITEM()
REPRESENTATION_ITEM('') STYLED_ITEM((#7630),#7510));
#7650=ANNOTATION_OCCURRENCE_ASSOCIATIVITY('','',#7640,#7490);
#7660=SYMBOL_COLOUR(#7450);
#7670=SYMBOL_STYLE('',#7660);
#7680=PRESENTATION_STYLE_ASSIGNMENT((#7670));
#7690=PRE_DEFINED_TERMINATOR_SYMBOL('filled arrow');
#7700=CARTESIAN_POINT('',(23.6895300346083,-13.2183033706512,
-12.2178744469499));
#7710=DIRECTION('',(-0.,0.,1.));
#7720=DIRECTION('',(0.,1.,0.));
#7730=AXIS2_PLACEMENT_3D('',#7700,#7710,#7720);
#7740=SYMBOL_TARGET('',#7730,3.5,3.5);
#7750=DEFINED_SYMBOL('',#7690,#7740);
#7760=(ANNOTATION_OCCURRENCE() ANNOTATION_SYMBOL_OCCURRENCE()
DRAUGHTING_ANNOTATION_OCCURRENCE() GEOMETRIC_REPRESENTATION_ITEM()
LEADER_TERMINATOR() REPRESENTATION_ITEM('') STYLED_ITEM((#7680),#7750)
TERMINATOR_SYMBOL(#7490));
#7770=LEADER_DIRECTED_CALLOUT('',(#7640,#7490,#7760));
#7780=SHAPE_REPRESENTATION('',(#7770),#7580);
#7790=CARTESIAN_POINT('',(-39.1805467452277,-37.5139953120043,
-11.5869428662016));
#7800=DIRECTION('',(-0.196828080783401,0.,-0.980438017732443));
#7810=DIRECTION('',(-0.980438017732443,0.,0.196828080783401));
#7820=AXIS2_PLACEMENT_3D('',#7790,#7800,#7810);
#7830=CARTESIAN_POINT('',(-39.1805467452277,-37.5139953120043,
-11.5869428662016));
#7840=CARTESIAN_POINT('',(0.,-29.047207641129,-19.4526433800836));
#7850=POLYLINE('',(#7830,#7840));
#7860=COLOUR_RGB('',0.,1.,0.);
#7870=DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
#7880=CURVE_STYLE('',#7870,POSITIVE_LENGTH_MEASURE(0.1),#7860);
#7890=PRESENTATION_STYLE_ASSIGNMENT((#7880));
#7900=(ANNOTATION_CURVE_OCCURRENCE() ANNOTATION_OCCURRENCE()
DRAUGHTING_ANNOTATION_OCCURRENCE() GEOMETRIC_REPRESENTATION_ITEM()
LEADER_CURVE() REPRESENTATION_ITEM('') STYLED_ITEM((#7890),#7850));
#7910=DRAUGHTING_PRE_DEFINED_TEXT_FONT('ISO 3098-1 font A');
#7920=TEXT_LITERAL('','boundary edges of drilled',#7820,'baseline left',
.RIGHT.,#7910);
#7930=TEXT_LITERAL('','holes shall be coloured blue',#7820,
'baseline left',.RIGHT.,#7910);
#7940=COMPOSITE_TEXT('',(#7920,#7930));
#7950=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.);
#7960=DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
#7970=DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
#7980=(LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.));
#7990=(NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.));
#8000=(NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT());
#8010=(GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#8020))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#7980,#7990,#8000)) REPRESENTATION_CONTEXT
('',''));
#8020=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-6),#7980,
'distance_accuracy_value','maximum gap value');
#8030=SHAPE_REPRESENTATION('',(#1240),#8010);
#8040=TEXT_STYLE_FOR_DEFINED_FONT(#7860);
#8050=TEXT_STYLE_WITH_BOX_CHARACTERISTICS('',#8040,(BOX_HEIGHT(3.),
BOX_WIDTH(2.001),BOX_SLANT_ANGLE(0.),BOX_ROTATE_ANGLE(0.)));
#8060=PRESENTATION_STYLE_ASSIGNMENT((#8050));
#8070=(ANNOTATION_OCCURRENCE() ANNOTATION_TEXT_OCCURRENCE()
DRAUGHTING_ANNOTATION_OCCURRENCE() GEOMETRIC_REPRESENTATION_ITEM()
REPRESENTATION_ITEM('') STYLED_ITEM((#8060),#7940));
#8080=ANNOTATION_OCCURRENCE_ASSOCIATIVITY('','',#8070,#7900);
#8090=SYMBOL_COLOUR(#7860);
#8100=SYMBOL_STYLE('',#8090);
#8110=PRESENTATION_STYLE_ASSIGNMENT((#8100));
#8120=PRE_DEFINED_TERMINATOR_SYMBOL('filled arrow');
#8130=CARTESIAN_POINT('',(0.,-29.047207641129,-19.4526433800836));
#8140=DIRECTION('',(-0.980438017732443,0.,0.196828080783401));
#8150=DIRECTION('',(0.,1.,0.));
#8160=AXIS2_PLACEMENT_3D('',#8130,#8140,#8150);
#8170=SYMBOL_TARGET('',#8160,3.5,3.5);
#8180=DEFINED_SYMBOL('',#8120,#8170);
#8190=(ANNOTATION_OCCURRENCE() ANNOTATION_SYMBOL_OCCURRENCE()
DRAUGHTING_ANNOTATION_OCCURRENCE() GEOMETRIC_REPRESENTATION_ITEM()
LEADER_TERMINATOR() REPRESENTATION_ITEM('') STYLED_ITEM((#8110),#8180)
TERMINATOR_SYMBOL(#7900));
#8200=LEADER_DIRECTED_CALLOUT('',(#8070,#7900,#8190));
#8210=SHAPE_REPRESENTATION('',(#8200),#8010);
#8220=CARTESIAN_POINT('',(93.4101329588321,24.6126688047536,
-26.7467161605525));
#8230=DIRECTION('',(0.278348158343591,-0.,0.960480245890945));
#8240=DIRECTION('',(0.960480245890945,0.,-0.278348158343591));
#8250=AXIS2_PLACEMENT_3D('',#8220,#8230,#8240);
#8260=CARTESIAN_POINT('',(93.4101329588321,24.6126688047536,
-26.7467161605525));
#8270=CARTESIAN_POINT('',(30.6935713972084,29.5003976952241,
-8.57139242744731));
#8280=POLYLINE('',(#8260,#8270));
#8290=COLOUR_RGB('',0.,1.,0.);
#8300=DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
#8310=CURVE_STYLE('',#8300,POSITIVE_LENGTH_MEASURE(0.1),#8290);
#8320=PRESENTATION_STYLE_ASSIGNMENT((#8310));
#8330=(ANNOTATION_CURVE_OCCURRENCE() ANNOTATION_OCCURRENCE()
DRAUGHTING_ANNOTATION_OCCURRENCE() GEOMETRIC_REPRESENTATION_ITEM()
LEADER_CURVE() REPRESENTATION_ITEM('') STYLED_ITEM((#8320),#8280));
#8340=DRAUGHTING_PRE_DEFINED_TEXT_FONT('ISO 3098-1 font A');
#8350=TEXT_LITERAL('','\X2\30D630EC30F330C9\X0\ R1',#8250,
'baseline left',.RIGHT.,#8340);
#8360=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.);
#8370=DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
#8380=DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
#8390=(LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.));
#8400=(NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.));
#8410=(NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT());
#8420=(GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#8430))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#8390,#8400,#8410)) REPRESENTATION_CONTEXT
('',''));
#8430=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-6),#8390,
'distance_accuracy_value','maximum gap value');
#8440=SHAPE_REPRESENTATION('',(#6440),#8420);
#8450=TEXT_STYLE_FOR_DEFINED_FONT(#8290);
#8460=TEXT_STYLE_WITH_BOX_CHARACTERISTICS('',#8450,(BOX_HEIGHT(3.),
BOX_WIDTH(2.001),BOX_SLANT_ANGLE(0.),BOX_ROTATE_ANGLE(0.)));
#8470=PRESENTATION_STYLE_ASSIGNMENT((#8460));
#8480=(ANNOTATION_OCCURRENCE() ANNOTATION_TEXT_OCCURRENCE()
DRAUGHTING_ANNOTATION_OCCURRENCE() GEOMETRIC_REPRESENTATION_ITEM()
REPRESENTATION_ITEM('') STYLED_ITEM((#8470),#8350));
#8490=ANNOTATION_OCCURRENCE_ASSOCIATIVITY('','',#8480,#8330);
#8500=SYMBOL_COLOUR(#8290);
#8510=SYMBOL_STYLE('',#8500);
#8520=PRESENTATION_STYLE_ASSIGNMENT((#8510));
#8530=PRE_DEFINED_TERMINATOR_SYMBOL('filled arrow');
#8540=CARTESIAN_POINT('',(30.6935713972084,29.5003976952241,
-8.57139242744731));
#8550=DIRECTION('',(0.960480245890945,0.,-0.278348158343591));
#8560=DIRECTION('',(0.,1.,0.));
#8570=AXIS2_PLACEMENT_3D('',#8540,#8550,#8560);
#8580=SYMBOL_TARGET('',#8570,3.5,3.5);
#8590=DEFINED_SYMBOL('',#8530,#8580);
#8600=(ANNOTATION_OCCURRENCE() ANNOTATION_SYMBOL_OCCURRENCE()
DRAUGHTING_ANNOTATION_OCCURRENCE() GEOMETRIC_REPRESENTATION_ITEM()
LEADER_TERMINATOR() REPRESENTATION_ITEM('') STYLED_ITEM((#8520),#8590)
TERMINATOR_SYMBOL(#8330));
#8610=LEADER_DIRECTED_CALLOUT('',(#8480,#8330,#8600));
#8620=SHAPE_REPRESENTATION('',(#8610),#8420);
#8630=CARTESIAN_POINT('',(0.,0.,0.));
#8640=DIRECTION('',(0.,0.,1.));
#8650=DIRECTION('',(1.,0.,0.));
#8660=AXIS2_PLACEMENT_3D('',#8630,#8640,#8650);
#8670=APPLICATION_CONTEXT(' ');
#8680=APPLICATION_PROTOCOL_DEFINITION(' ','automotive_design',1998,#8670
);
#8690=PRODUCT_CONTEXT('',#8670,'mechanical');
#8700=PRODUCT_DEFINITION_CONTEXT('part definition',#8670,'design');
#8710=PRODUCT('io1','io1','',(#8690));
#8720=PRODUCT_RELATED_PRODUCT_CATEGORY('part',' ',(#8710));
#8730=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#8710,
.BOUGHT.);
#8740=PRODUCT_DEFINITION('',' ',#8730,#8700);
#8750=PRODUCT_DEFINITION_SHAPE('','',#8740);
#8760=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.);
#8770=DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
#8780=DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
#8790=(LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.));
#8800=(NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.));
#8810=(NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT());
#8820=(GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#8830))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#8790,#8800,#8810)) REPRESENTATION_CONTEXT
('',''));
#8830=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-6),#8790,
'distance_accuracy_value','maximum gap value');
#8840=SHAPE_REPRESENTATION('',(#8660,#7370,#7510,#7490,#7940,#7900,#8350
,#8330),#8820);
#8850=SHAPE_DEFINITION_REPRESENTATION(#8750,#8840);
#8860=SHAPE_ASPECT('','',#8750,.T.);
#8870=PROPERTY_DEFINITION('','',#8860);
#8880=SHAPE_DEFINITION_REPRESENTATION(#8870,#7600);
#8890=SHAPE_ASPECT('','',#8750,.F.);
#8900=PROPERTY_DEFINITION('','',#8890);
#8910=SHAPE_DEFINITION_REPRESENTATION(#8900,#7780);
#8920=SHAPE_ASPECT_ASSOCIATIVITY('','',#8860,#8890);
#8930=SHAPE_ASPECT('','',#8750,.T.);
#8940=PROPERTY_DEFINITION('','',#8930);
#8950=SHAPE_DEFINITION_REPRESENTATION(#8940,#8030);
#8960=SHAPE_ASPECT('','',#8750,.F.);
#8970=PROPERTY_DEFINITION('','',#8960);
#8980=SHAPE_DEFINITION_REPRESENTATION(#8970,#8210);
#8990=SHAPE_ASPECT_ASSOCIATIVITY('','',#8930,#8960);
#9000=SHAPE_ASPECT('','',#8750,.T.);
#9010=PROPERTY_DEFINITION('','',#9000);
#9020=SHAPE_DEFINITION_REPRESENTATION(#9010,#8440);
#9030=SHAPE_ASPECT('','',#8750,.F.);
#9040=PROPERTY_DEFINITION('','',#9030);
#9050=SHAPE_DEFINITION_REPRESENTATION(#9040,#8620);
#9060=SHAPE_ASPECT_ASSOCIATIVITY('','',#9000,#9030);
#9070=COLOUR_RGB('',1.,1.,0.);
#9080=FILL_AREA_STYLE_COLOUR('',#9070);
#9090=FILL_AREA_STYLE('',(#9080));
#9100=SURFACE_STYLE_FILL_AREA(#9090);
#9110=SURFACE_SIDE_STYLE('',(#9100));
#9120=SURFACE_STYLE_USAGE(.BOTH.,#9110);
#9130=PRESENTATION_STYLE_ASSIGNMENT((#9120));
#9140=STYLED_ITEM('',(#9130),#7370);
#9150=OVER_RIDING_STYLED_ITEM('',(#1970),#1900,#9140);
#9160=OVER_RIDING_STYLED_ITEM('',(#6580),#6510,#9140);
#9170=DRAUGHTING_MODEL('',(#7640,#7490,#7760,#8070,#7900,#8190,#8480,
#8330,#8600,#9140,#9150,#9160),#8820);
ENDSEC;
END-ISO-10303-21;
+118
View File
@@ -0,0 +1,118 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('CATIA V5 STEP'),'2;1');
FILE_NAME('E:\\Public\\Archive_PDES\\TR22\\NativeFiles\\s1\\FOOT.stp','2008-08-18T12:41:46+00:00',('none'),('none'),'CATIA Version 5 Release 19 SP 1 (IN-PROTO)','CATIA V5 STEP AP214','none');
FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
ENDSEC;
/* file written by CATIA V5R19 */
DATA;
#5=PRODUCT('FOOT','FOOT',' ',(#2)) ;
#28=PRODUCT('FOOT_FRONT_000','FOOT_FRONT_000',' ',(#2)) ;
#68=PRODUCT('FOOT_BACK_000','FOOT_BACK_000',' ',(#2)) ;
#2=PRODUCT_CONTEXT(' ',#1,'mechanical') ;
#1=APPLICATION_CONTEXT('automotive design') ;
#39=OBJECT_ROLE('mandatory',$) ;
#79=OBJECT_ROLE('mandatory',$) ;
#33=DOCUMENT_FILE('FOOT_FRONT_000.stp','','',#34,'',$) ;
#73=DOCUMENT_FILE('FOOT_BACK_000.stp','','',#74,'',$) ;
#34=DOCUMENT_TYPE('geometry') ;
#74=DOCUMENT_TYPE('geometry') ;
#40=DOCUMENT_REPRESENTATION_TYPE('digital',#33) ;
#80=DOCUMENT_REPRESENTATION_TYPE('digital',#73) ;
#13=PRODUCT_DEFINITION(' ',' ',#6,#3) ;
#30=PRODUCT_DEFINITION(' ',' ',#29,#3) ;
#70=PRODUCT_DEFINITION(' ',' ',#69,#3) ;
#3=PRODUCT_DEFINITION_CONTEXT('part definition',#1,' ') ;
#16=PRODUCT_DEFINITION_SHAPE(' ',' ',#13) ;
#31=PRODUCT_DEFINITION_SHAPE(' ',' ',#30) ;
#49=PRODUCT_DEFINITION_SHAPE(' ',' ',#48) ;
#71=PRODUCT_DEFINITION_SHAPE(' ',' ',#70) ;
#89=PRODUCT_DEFINITION_SHAPE(' ',' ',#88) ;
#41=PROPERTY_DEFINITION('external definition','',#33) ;
#46=PROPERTY_DEFINITION('document property','',#33) ;
#81=PROPERTY_DEFINITION('external definition','',#73) ;
#86=PROPERTY_DEFINITION('document property','',#73) ;
#22=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#62=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#102=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#36=IDENTIFICATION_ROLE('external document id and location',$) ;
#76=IDENTIFICATION_ROLE('external document id and location',$) ;
#45=REPRESENTATION('document format',(#43),#44) ;
#85=REPRESENTATION('document format',(#83),#84) ;
#44=REPRESENTATION_CONTEXT('','document parameters') ;
#84=REPRESENTATION_CONTEXT('','document parameters') ;
#15=SHAPE_REPRESENTATION(' ',(#53,#93),#25) ;
#26=SHAPE_REPRESENTATION(' ',(#54),#65) ;
#66=SHAPE_REPRESENTATION(' ',(#94),#105) ;
#42=PROPERTY_DEFINITION_REPRESENTATION(#41,#26) ;
#47=PROPERTY_DEFINITION_REPRESENTATION(#46,#45) ;
#82=PROPERTY_DEFINITION_REPRESENTATION(#81,#66) ;
#87=PROPERTY_DEFINITION_REPRESENTATION(#86,#85) ;
#43=DESCRIPTIVE_REPRESENTATION_ITEM('data format','STEP AP214') ;
#83=DESCRIPTIVE_REPRESENTATION_ITEM('data format','STEP AP214') ;
#32=EXTERNAL_SOURCE(IDENTIFIER('')) ;
#72=EXTERNAL_SOURCE(IDENTIFIER('')) ;
#52=ITEM_DEFINED_TRANSFORMATION(' ',' ',#54,#53) ;
#92=ITEM_DEFINED_TRANSFORMATION(' ',' ',#94,#93) ;
#53=AXIS2_PLACEMENT_3D(' ',#56,#60,#59) ;
#54=AXIS2_PLACEMENT_3D(' ',#55,#58,#57) ;
#93=AXIS2_PLACEMENT_3D(' ',#96,#100,#99) ;
#94=AXIS2_PLACEMENT_3D(' ',#95,#98,#97) ;
#55=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#56=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#95=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#96=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#57=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#58=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#59=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#60=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#97=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#98=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#99=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#100=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#8=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#28,#68)) ;
#11=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#5)) ;
#7=PRODUCT_CATEGORY('part','specification') ;
#10=PRODUCT_CATEGORY('part','specification') ;
#24=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#23,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#64=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#63,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#104=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#103,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#50=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#51,#49) ;
#90=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#91,#89) ;
#4=APPLICATION_PROTOCOL_DEFINITION('international standard','automotive_design',2001,#1) ;
#37=APPLIED_DOCUMENT_REFERENCE(#33,'',(#30)) ;
#77=APPLIED_DOCUMENT_REFERENCE(#73,'',(#70)) ;
#35=APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT('FOOT_FRONT_000.stp',#36,#32,(#33)) ;
#75=APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT('FOOT_BACK_000.stp',#76,#72,(#73)) ;
#21=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#17) ;
#61=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#17) ;
#101=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#17) ;
#48=NEXT_ASSEMBLY_USAGE_OCCURRENCE('*DIT29','*DIT29','*DIT29',#13,#30,' ') ;
#88=NEXT_ASSEMBLY_USAGE_OCCURRENCE('*DIT32','*DIT32','*DIT32',#13,#70,' ') ;
#19=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.0174532925199),#18) ;
#9=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#7,#8) ;
#12=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#10,#11) ;
#6=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#5,.NOT_KNOWN.) ;
#29=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#28,.NOT_KNOWN.) ;
#69=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#68,.NOT_KNOWN.) ;
#38=ROLE_ASSOCIATION(#39,#37) ;
#78=ROLE_ASSOCIATION(#79,#77) ;
#14=SHAPE_DEFINITION_REPRESENTATION(#16,#15) ;
#27=SHAPE_DEFINITION_REPRESENTATION(#31,#26) ;
#67=SHAPE_DEFINITION_REPRESENTATION(#71,#66) ;
#17=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)) ;
#18=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)) ;
#20=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()) ;
#23=(CONVERSION_BASED_UNIT('INCH',#21)LENGTH_UNIT()NAMED_UNIT(#22)) ;
#63=(CONVERSION_BASED_UNIT('INCH',#61)LENGTH_UNIT()NAMED_UNIT(#62)) ;
#103=(CONVERSION_BASED_UNIT('INCH',#101)LENGTH_UNIT()NAMED_UNIT(#102)) ;
#25=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#24))GLOBAL_UNIT_ASSIGNED_CONTEXT((#23,#18,#20))REPRESENTATION_CONTEXT(' ',' ')) ;
#65=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#64))GLOBAL_UNIT_ASSIGNED_CONTEXT((#63,#18,#20))REPRESENTATION_CONTEXT(' ','external')) ;
#105=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#104))GLOBAL_UNIT_ASSIGNED_CONTEXT((#103,#18,#20))REPRESENTATION_CONTEXT(' ','external')) ;
#51=(REPRESENTATION_RELATIONSHIP(' ',' ',#26,#15)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#52)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
#91=(REPRESENTATION_RELATIONSHIP(' ',' ',#66,#15)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#92)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
ENDSEC;
END-ISO-10303-21;
+73
View File
@@ -0,0 +1,73 @@
STEPcheck v 2.0 (February 21, 2000) for stepcheck_stage_1_2 schema
Copyright ERIM (July 1997)
Checking STEP file: FOOT.stp
Reading Data from FOOT.stp...
HEADER read:
ERROR: instance #37 'APPLIED_DOCUMENT_REFERENCE': Unknown ENTITY type.
Data lost: (#33,,(#30))
ERROR: instance #77 'APPLIED_DOCUMENT_REFERENCE': Unknown ENTITY type.
Data lost: (#73,,(#70))
ERROR: instance #35 'APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT': Unknown ENTITY type.
Data lost: (FOOT_FRONT_000.stp,#36,#32,(#33))
ERROR: instance #75 'APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT': Unknown ENTITY type.
Data lost: (FOOT_BACK_000.stp,#76,#72,(#73))
FIRST PASS complete: 101 instances created.
4 ERRORS 0 WARNINGS
ERROR: in 2nd pass, instance #37 not found.
Data lost: =APPLIED_DOCUMENT_REFERENCE(#33,,(#30))
ERROR: in 2nd pass, instance #77 not found.
Data lost: =APPLIED_DOCUMENT_REFERENCE(#73,,(#70))
ERROR: in 2nd pass, instance #35 not found.
Data lost: =APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT(FOOT_FRONT_000.stp,#36,#32,(#33))
ERROR: in 2nd pass, instance #75 not found.
Data lost: =APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT(FOOT_BACK_000.stp,#76,#72,(#73))
Second pass complete - instance summary:
Total instances: 101
Invalid instances: 4
Incomplete instances (includes invalid instances): 0
Warnings: 0.
SECOND PASS complete: 101 instances valid.
6 ERRORS 0 WARNINGS
Finished reading file.
Where Rule Document_File_WR1 violated by :
1) #33=DOCUMENT_FILE('FOOT_FRONT_000.stp','','',#34,'',$);
2) #73=DOCUMENT_FILE('FOOT_BACK_000.stp','','',#74,'',$);
Global Rule Dependent_instantiable_identification_role violated by :
1) #76=IDENTIFICATION_ROLE('external document id and location', ...
2) #36=IDENTIFICATION_ROLE('external document id and location', ...
total violations = 4
total parse errors = 6
total parse warnings = 0
elapsed time : 0.218 seconds
+449
View File
@@ -0,0 +1,449 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('CATIA V5 STEP'),'2;1');
FILE_NAME('E:\\Public\\Archive_PDES\\TR22\\NativeFiles\\s1\\FOOT_BACK_000.stp','2008-08-18T12:41:46+00:00',('none'),('none'),'CATIA Version 5 Release 19 SP 1 (IN-PROTO)','CATIA V5 STEP AP214','none');
FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
ENDSEC;
/* file written by CATIA V5R19 */
DATA;
#5=PRODUCT('FOOT_BACK_000','FOOT_BACK_000',' ',(#2)) ;
#2=PRODUCT_CONTEXT(' ',#1,'mechanical') ;
#1=APPLICATION_CONTEXT('automotive design') ;
#10=PRODUCT_DEFINITION(' ',' ',#6,#3) ;
#3=PRODUCT_DEFINITION_CONTEXT('part definition',#1,' ') ;
#11=PRODUCT_DEFINITION_SHAPE(' ',' ',#10) ;
#17=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#436=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION(' ',(#33),#20) ;
#23=SHAPE_REPRESENTATION(' ',(#22),#20) ;
#22=AXIS2_PLACEMENT_3D(' ',#21,$,$) ;
#39=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#36,#37,#38) ;
#183=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#180,#181,#182) ;
#214=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#211,#212,#213) ;
#238=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#235,#236,#237) ;
#262=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#259,#260,#261) ;
#266=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#264,#265,$) ;
#280=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#278,#279,$) ;
#302=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#299,#300,#301) ;
#306=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#304,#305,$) ;
#311=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#309,#310,$) ;
#326=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#323,#324,#325) ;
#344=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#342,#343,$) ;
#357=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#354,#355,#356) ;
#361=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#359,#360,$) ;
#374=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#371,#372,#373) ;
#387=AXIS2_PLACEMENT_3D('Sphere Axis2P3D',#384,#385,#386) ;
#391=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#389,#390,$) ;
#402=AXIS2_PLACEMENT_3D('Sphere Axis2P3D',#399,#400,#401) ;
#412=AXIS2_PLACEMENT_3D('Sphere Axis2P3D',#409,#410,#411) ;
#416=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#414,#415,$) ;
#427=AXIS2_PLACEMENT_3D('Sphere Axis2P3D',#424,#425,#426) ;
#21=CARTESIAN_POINT(' ',(0.,0.,0.)) ;
#36=CARTESIAN_POINT('Axis2P3D Location',(0.,-0.0984251968504,-3.2874015748)) ;
#41=CARTESIAN_POINT('Line Origine',(0.,-0.0984251968504,-3.27130823546)) ;
#45=CARTESIAN_POINT('Vertex',(0.,-0.0984251968963,-3.25521489627)) ;
#47=CARTESIAN_POINT('Vertex',(0.,-0.0984251968504,-3.2874015748)) ;
#50=CARTESIAN_POINT('Line Origine',(0.,0.,-3.2874015748)) ;
#54=CARTESIAN_POINT('Vertex',(0.,0.0984251968504,-3.2874015748)) ;
#57=CARTESIAN_POINT('Line Origine',(0.,0.0984251968504,-3.27130823546)) ;
#61=CARTESIAN_POINT('Vertex',(0.,0.0984251968504,-3.25521489613)) ;
#65=CARTESIAN_POINT('Control Point',(0.,1.74838271595E-017,-2.48031496063)) ;
#66=CARTESIAN_POINT('Control Point',(0.,0.0426938443712,-2.48031496063)) ;
#67=CARTESIAN_POINT('Control Point',(0.,0.0853876676088,-2.48610223774)) ;
#68=CARTESIAN_POINT('Control Point',(0.,0.127037419771,-2.49767886923)) ;
#69=CARTESIAN_POINT('Control Point',(0.,0.206150573899,-2.53182770865)) ;
#70=CARTESIAN_POINT('Control Point',(0.,0.27331786808,-2.58580525459)) ;
#71=CARTESIAN_POINT('Control Point',(0.,0.30301967734,-2.61721421489)) ;
#72=CARTESIAN_POINT('Control Point',(0.,0.353163287115,-2.68729026491)) ;
#73=CARTESIAN_POINT('Control Point',(0.,0.382842131948,-2.76818641482)) ;
#74=CARTESIAN_POINT('Control Point',(0.,0.392075522814,-2.81041750218)) ;
#75=CARTESIAN_POINT('Control Point',(0.,0.398865030041,-2.89631824102)) ;
#76=CARTESIAN_POINT('Control Point',(0.,0.382541537687,-2.98092654121)) ;
#77=CARTESIAN_POINT('Control Point',(0.,0.368657753224,-3.02186504125)) ;
#78=CARTESIAN_POINT('Control Point',(0.,0.330145471116,-3.09894836282)) ;
#79=CARTESIAN_POINT('Control Point',(0.,0.272502316358,-3.16299746561)) ;
#80=CARTESIAN_POINT('Control Point',(0.,0.239484158858,-3.19089946495)) ;
#81=CARTESIAN_POINT('Control Point',(0.,0.191176168924,-3.22153966365)) ;
#82=CARTESIAN_POINT('Control Point',(0.,0.13861034435,-3.24290812862)) ;
#83=CARTESIAN_POINT('Control Point',(0.,0.125367724958,-3.24761626937)) ;
#84=CARTESIAN_POINT('Control Point',(0.,0.111974175262,-3.25171656494)) ;
#85=CARTESIAN_POINT('Control Point',(0.,0.0984251968504,-3.25521489613)) ;
#86=CARTESIAN_POINT('Vertex',(0.,6.19928298226E-013,-2.48031496063)) ;
#90=CARTESIAN_POINT('Control Point',(0.,-0.0984251968504,-3.25521489613)) ;
#91=CARTESIAN_POINT('Control Point',(0.,-0.139763333744,-3.24454143508)) ;
#92=CARTESIAN_POINT('Control Point',(0.,-0.179654632481,-3.22826447246)) ;
#93=CARTESIAN_POINT('Control Point',(0.,-0.217087673382,-3.20664300854)) ;
#94=CARTESIAN_POINT('Control Point',(0.,-0.28515144502,-3.15380024831)) ;
#95=CARTESIAN_POINT('Control Point',(0.,-0.336691511643,-3.08474489079)) ;
#96=CARTESIAN_POINT('Control Point',(0.,-0.357597924819,-3.04690784348)) ;
#97=CARTESIAN_POINT('Control Point',(0.,-0.38863025335,-2.96652109741)) ;
#98=CARTESIAN_POINT('Control Point',(0.,-0.397142633532,-2.88077402594)) ;
#99=CARTESIAN_POINT('Control Point',(0.,-0.39552505395,-2.83757560337)) ;
#100=CARTESIAN_POINT('Control Point',(0.,-0.380623781317,-2.75270519368)) ;
#101=CARTESIAN_POINT('Control Point',(0.,-0.343666552312,-2.67486443238)) ;
#102=CARTESIAN_POINT('Control Point',(0.,-0.319989010487,-2.6386968464)) ;
#103=CARTESIAN_POINT('Control Point',(0.,-0.263428823039,-2.57368931156)) ;
#104=CARTESIAN_POINT('Control Point',(0.,-0.191603802568,-2.52608482309)) ;
#105=CARTESIAN_POINT('Control Point',(0.,-0.152658610032,-2.50732336858)) ;
#106=CARTESIAN_POINT('Control Point',(0.,-0.0982245497334,-2.48973312143)) ;
#107=CARTESIAN_POINT('Control Point',(0.,-0.041985792905,-2.48218465023)) ;
#108=CARTESIAN_POINT('Control Point',(0.,-0.0279866469022,-2.48093666736)) ;
#109=CARTESIAN_POINT('Control Point',(0.,-0.0139933245862,-2.48031496063)) ;
#110=CARTESIAN_POINT('Control Point',(0.,-1.04902962957E-016,-2.48031496063)) ;
#120=CARTESIAN_POINT('Control Point',(0.,0.,-2.51968503937)) ;
#121=CARTESIAN_POINT('Control Point',(0.,0.0347169411959,-2.51968503937)) ;
#122=CARTESIAN_POINT('Control Point',(0.,0.0694338653545,-2.52393695023)) ;
#123=CARTESIAN_POINT('Control Point',(0.,0.103457476788,-2.53244177145)) ;
#124=CARTESIAN_POINT('Control Point',(0.,0.16872598814,-2.55760930722)) ;
#125=CARTESIAN_POINT('Control Point',(0.,0.22599173737,-2.59778403155)) ;
#126=CARTESIAN_POINT('Control Point',(0.,0.25201169833,-2.62129785227)) ;
#127=CARTESIAN_POINT('Control Point',(0.,0.297761157264,-2.67421637864)) ;
#128=CARTESIAN_POINT('Control Point',(0.,0.329387712197,-2.73661137496)) ;
#129=CARTESIAN_POINT('Control Point',(0.,0.341283132658,-2.76960284432)) ;
#130=CARTESIAN_POINT('Control Point',(0.,0.356751517187,-2.83782390062)) ;
#131=CARTESIAN_POINT('Control Point',(0.,0.35529910239,-2.9077614803)) ;
#132=CARTESIAN_POINT('Control Point',(0.,0.350271725349,-2.94246974381)) ;
#133=CARTESIAN_POINT('Control Point',(0.,0.331820280062,-3.00994512921)) ;
#134=CARTESIAN_POINT('Control Point',(0.,0.297630558837,-3.07097329937)) ;
#135=CARTESIAN_POINT('Control Point',(0.,0.276863015154,-3.09923364647)) ;
#136=CARTESIAN_POINT('Control Point',(0.,0.228832225295,-3.15009057016)) ;
#137=CARTESIAN_POINT('Control Point',(0.,0.169947927764,-3.18785317163)) ;
#138=CARTESIAN_POINT('Control Point',(0.,0.138325538494,-3.20301768786)) ;
#139=CARTESIAN_POINT('Control Point',(0.,0.0914953951246,-3.21874860445)) ;
#140=CARTESIAN_POINT('Control Point',(0.,0.0429617672263,-3.22616994912)) ;
#141=CARTESIAN_POINT('Control Point',(0.,0.0286366094331,-3.2276232132)) ;
#142=CARTESIAN_POINT('Control Point',(0.,0.0143183061656,-3.22834645669)) ;
#143=CARTESIAN_POINT('Control Point',(0.,-1.04902962957E-016,-3.22834645669)) ;
#144=CARTESIAN_POINT('Vertex',(0.,5.71467950625E-013,-2.51968503937)) ;
#146=CARTESIAN_POINT('Vertex',(0.,-5.67105417744E-013,-3.22834645669)) ;
#150=CARTESIAN_POINT('Control Point',(0.,-1.74838271595E-017,-3.22834645669)) ;
#151=CARTESIAN_POINT('Control Point',(0.,-0.0347169411978,-3.22834645669)) ;
#152=CARTESIAN_POINT('Control Point',(0.,-0.0694338653581,-3.22409454584)) ;
#153=CARTESIAN_POINT('Control Point',(0.,-0.103457476785,-3.21558972461)) ;
#154=CARTESIAN_POINT('Control Point',(0.,-0.168725988139,-3.19042218884)) ;
#155=CARTESIAN_POINT('Control Point',(0.,-0.22599173737,-3.15024746451)) ;
#156=CARTESIAN_POINT('Control Point',(0.,-0.25201169833,-3.12673364379)) ;
#157=CARTESIAN_POINT('Control Point',(0.,-0.297761157263,-3.07381511742)) ;
#158=CARTESIAN_POINT('Control Point',(0.,-0.329387712197,-3.0114201211)) ;
#159=CARTESIAN_POINT('Control Point',(0.,-0.341283132659,-2.97842865174)) ;
#160=CARTESIAN_POINT('Control Point',(0.,-0.356751517187,-2.91020759544)) ;
#161=CARTESIAN_POINT('Control Point',(0.,-0.35529910239,-2.84027001576)) ;
#162=CARTESIAN_POINT('Control Point',(0.,-0.350271725349,-2.80556175225)) ;
#163=CARTESIAN_POINT('Control Point',(0.,-0.331820280062,-2.73808636685)) ;
#164=CARTESIAN_POINT('Control Point',(0.,-0.297630558836,-2.67705819669)) ;
#165=CARTESIAN_POINT('Control Point',(0.,-0.276863015156,-2.6487978496)) ;
#166=CARTESIAN_POINT('Control Point',(0.,-0.228832225295,-2.59794092591)) ;
#167=CARTESIAN_POINT('Control Point',(0.,-0.169947927762,-2.56017832443)) ;
#168=CARTESIAN_POINT('Control Point',(0.,-0.138325538495,-2.5450138082)) ;
#169=CARTESIAN_POINT('Control Point',(0.,-0.0914953951254,-2.52928289161)) ;
#170=CARTESIAN_POINT('Control Point',(0.,-0.0429617672263,-2.52186154695)) ;
#171=CARTESIAN_POINT('Control Point',(0.,-0.0286366094331,-2.52040828286)) ;
#172=CARTESIAN_POINT('Control Point',(0.,-0.0143183061656,-2.51968503937)) ;
#173=CARTESIAN_POINT('Control Point',(0.,0.,-2.51968503937)) ;
#180=CARTESIAN_POINT('Axis2P3D Location',(0.,-0.0984251968504,-3.2874015748)) ;
#185=CARTESIAN_POINT('Line Origine',(-0.295275590551,-0.0984251968504,-3.25521498801)) ;
#189=CARTESIAN_POINT('Vertex',(-0.590551181102,-0.0984251968976,-3.25521489627)) ;
#192=CARTESIAN_POINT('Line Origine',(-0.590551181102,-0.0984251968504,-3.27130823546)) ;
#196=CARTESIAN_POINT('Vertex',(-0.590551181102,-0.0984251968504,-3.2874015748)) ;
#199=CARTESIAN_POINT('Line Origine',(-0.295275590551,-0.0984251968504,-3.2874015748)) ;
#211=CARTESIAN_POINT('Axis2P3D Location',(0.,0.0984251968504,-3.2874015748)) ;
#216=CARTESIAN_POINT('Line Origine',(-0.590551181102,0.,-3.2874015748)) ;
#220=CARTESIAN_POINT('Vertex',(-0.590551181102,0.0984251968504,-3.2874015748)) ;
#223=CARTESIAN_POINT('Line Origine',(-0.295275590551,0.0984251968504,-3.2874015748)) ;
#235=CARTESIAN_POINT('Axis2P3D Location',(0.,0.0984251968504,-3.2874015748)) ;
#240=CARTESIAN_POINT('Line Origine',(-0.295275590551,0.0984251968504,-3.25521498801)) ;
#244=CARTESIAN_POINT('Vertex',(-0.590551181102,0.0984251715468,-3.25521490281)) ;
#247=CARTESIAN_POINT('Line Origine',(-0.590551181102,0.0984251968504,-3.27130823546)) ;
#259=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,-2.87401574803)) ;
#264=CARTESIAN_POINT('Axis2P3D Location',(-0.590551181102,0.,-2.87401574803)) ;
#268=CARTESIAN_POINT('Vertex',(-0.590551181102,9.64256971514E-017,-3.26771653543)) ;
#271=CARTESIAN_POINT('Line Origine',(0.,9.64256971514E-017,-3.26771653543)) ;
#275=CARTESIAN_POINT('Vertex',(-1.1811023622,0.,-3.26771653543)) ;
#278=CARTESIAN_POINT('Axis2P3D Location',(-1.1811023622,0.,-2.87401574803)) ;
#282=CARTESIAN_POINT('Vertex',(-1.1811023622,1.35049332418E-015,-2.48031496063)) ;
#285=CARTESIAN_POINT('Line Origine',(0.,-4.82128485757E-017,-2.48031496063)) ;
#299=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,-2.87401574803)) ;
#304=CARTESIAN_POINT('Axis2P3D Location',(-0.590551181102,0.,-2.87401574803)) ;
#309=CARTESIAN_POINT('Axis2P3D Location',(-1.1811023622,0.,-2.87401574803)) ;
#323=CARTESIAN_POINT('Axis2P3D Location',(0.0393700787402,0.,-2.87401574803)) ;
#328=CARTESIAN_POINT('Line Origine',(0.0393700787402,8.67831264895E-017,-3.22834645669)) ;
#332=CARTESIAN_POINT('Vertex',(-1.1811023622,-7.69288395016E-016,-3.22834645669)) ;
#335=CARTESIAN_POINT('Line Origine',(0.0393700787402,-4.33915627714E-017,-2.51968503937)) ;
#339=CARTESIAN_POINT('Vertex',(-1.1811023622,-4.33915627714E-017,-2.51968503937)) ;
#342=CARTESIAN_POINT('Axis2P3D Location',(-1.1811023622,0.,-2.87401574803)) ;
#354=CARTESIAN_POINT('Axis2P3D Location',(0.0393700787402,0.,-2.87401574803)) ;
#359=CARTESIAN_POINT('Axis2P3D Location',(-1.1811023622,0.,-2.87401574803)) ;
#371=CARTESIAN_POINT('Axis2P3D Location',(-0.590551181102,-0.0984251968504,-3.2874015748)) ;
#384=CARTESIAN_POINT('Axis2P3D Location',(-1.1811023622,0.,-2.87401574803)) ;
#389=CARTESIAN_POINT('Axis2P3D Location',(-1.1811023622,0.,-2.87401574803)) ;
#399=CARTESIAN_POINT('Axis2P3D Location',(-1.1811023622,0.,-2.87401574803)) ;
#409=CARTESIAN_POINT('Axis2P3D Location',(-1.1811023622,0.,-2.87401574803)) ;
#414=CARTESIAN_POINT('Axis2P3D Location',(-1.1811023622,0.,-2.87401574803)) ;
#424=CARTESIAN_POINT('Axis2P3D Location',(-1.1811023622,0.,-2.87401574803)) ;
#37=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,0.)) ;
#38=DIRECTION('Axis2P3D XDirection',(0.,0.0393700787402,0.)) ;
#42=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#51=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#58=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#181=DIRECTION('Axis2P3D Direction',(0.,0.0393700787402,-0.)) ;
#182=DIRECTION('Axis2P3D XDirection',(-0.0393700787402,0.,0.)) ;
#186=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#193=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#200=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#212=DIRECTION('Axis2P3D Direction',(0.,0.,0.0393700787402)) ;
#213=DIRECTION('Axis2P3D XDirection',(-0.0393700787402,0.,0.)) ;
#217=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#224=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#236=DIRECTION('Axis2P3D Direction',(0.,0.0393700787402,-0.)) ;
#237=DIRECTION('Axis2P3D XDirection',(-0.0393700787402,0.,0.)) ;
#241=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#248=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#260=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#261=DIRECTION('Axis2P3D XDirection',(-0.,-4.82144409113E-018,0.0393700787402)) ;
#265=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#272=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#279=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#286=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#300=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#301=DIRECTION('Axis2P3D XDirection',(0.,0.,-0.0393700787402)) ;
#305=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#310=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#324=DIRECTION('Axis2P3D Direction',(-0.0393700787402,-0.,0.)) ;
#325=DIRECTION('Axis2P3D XDirection',(0.,-4.82144398594E-018,0.0393700787402)) ;
#329=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#336=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#343=DIRECTION('Axis2P3D Direction',(-0.0393700787402,-0.,0.)) ;
#355=DIRECTION('Axis2P3D Direction',(-0.0393700787402,-0.,0.)) ;
#356=DIRECTION('Axis2P3D XDirection',(0.,-1.05192548518E-025,-0.0393700787402)) ;
#360=DIRECTION('Axis2P3D Direction',(-0.0393700787402,-0.,0.)) ;
#372=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,0.)) ;
#373=DIRECTION('Axis2P3D XDirection',(0.,0.0393700787402,0.)) ;
#385=DIRECTION('Axis2P3D Direction',(0.,0.,-0.0393700787402)) ;
#386=DIRECTION('Axis2P3D XDirection',(-0.0393700787402,0.,0.)) ;
#390=DIRECTION('Axis2P3D Direction',(-0.,-0.0393700787402,-0.)) ;
#400=DIRECTION('Axis2P3D Direction',(0.,0.,-0.0393700787402)) ;
#401=DIRECTION('Axis2P3D XDirection',(1.39870617276E-017,-0.0393700787402,0.)) ;
#410=DIRECTION('Axis2P3D Direction',(0.,0.,-0.0393700787402)) ;
#411=DIRECTION('Axis2P3D XDirection',(-0.0393700787402,0.,0.)) ;
#415=DIRECTION('Axis2P3D Direction',(-0.,-0.0393700787402,-0.)) ;
#425=DIRECTION('Axis2P3D Direction',(0.,0.,-0.0393700787402)) ;
#426=DIRECTION('Axis2P3D XDirection',(0.,-0.0393700787402,0.)) ;
#34=PRESENTATION_LAYER_ASSIGNMENT('0',' ',(#25)) ;
#8=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#5)) ;
#7=PRODUCT_CATEGORY('part','specification') ;
#33=STYLED_ITEM(' ',(#32),#25) ;
#32=PRESENTATION_STYLE_ASSIGNMENT((#31)) ;
#31=SURFACE_STYLE_USAGE(.BOTH.,#30) ;
#30=SURFACE_SIDE_STYLE(' ',(#29)) ;
#29=SURFACE_STYLE_FILL_AREA(#28) ;
#28=FILL_AREA_STYLE(' ',(#27)) ;
#27=FILL_AREA_STYLE_COLOUR(' ',#26) ;
#43=VECTOR('Line Direction',#42,0.0393700787402) ;
#52=VECTOR('Line Direction',#51,0.0393700787402) ;
#59=VECTOR('Line Direction',#58,0.0393700787402) ;
#187=VECTOR('Line Direction',#186,0.0393700787402) ;
#194=VECTOR('Line Direction',#193,0.0393700787402) ;
#201=VECTOR('Line Direction',#200,0.0393700787402) ;
#218=VECTOR('Line Direction',#217,0.0393700787402) ;
#225=VECTOR('Line Direction',#224,0.0393700787402) ;
#242=VECTOR('Line Direction',#241,0.0393700787402) ;
#249=VECTOR('Line Direction',#248,0.0393700787402) ;
#273=VECTOR('Line Direction',#272,0.0393700787402) ;
#287=VECTOR('Line Direction',#286,0.0393700787402) ;
#330=VECTOR('Line Direction',#329,0.0393700787402) ;
#337=VECTOR('Line Direction',#336,0.0393700787402) ;
#19=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#18,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#435=SHAPE_REPRESENTATION_RELATIONSHIP(' ',' ',#23,#434) ;
#113=ORIENTED_EDGE('',*,*,#49,.T.) ;
#114=ORIENTED_EDGE('',*,*,#56,.T.) ;
#115=ORIENTED_EDGE('',*,*,#63,.F.) ;
#116=ORIENTED_EDGE('',*,*,#88,.F.) ;
#117=ORIENTED_EDGE('',*,*,#111,.F.) ;
#176=ORIENTED_EDGE('',*,*,#148,.T.) ;
#177=ORIENTED_EDGE('',*,*,#174,.T.) ;
#205=ORIENTED_EDGE('',*,*,#191,.T.) ;
#206=ORIENTED_EDGE('',*,*,#198,.T.) ;
#207=ORIENTED_EDGE('',*,*,#203,.F.) ;
#208=ORIENTED_EDGE('',*,*,#49,.F.) ;
#229=ORIENTED_EDGE('',*,*,#56,.F.) ;
#230=ORIENTED_EDGE('',*,*,#203,.T.) ;
#231=ORIENTED_EDGE('',*,*,#222,.T.) ;
#232=ORIENTED_EDGE('',*,*,#227,.F.) ;
#253=ORIENTED_EDGE('',*,*,#246,.F.) ;
#254=ORIENTED_EDGE('',*,*,#63,.T.) ;
#255=ORIENTED_EDGE('',*,*,#227,.T.) ;
#256=ORIENTED_EDGE('',*,*,#251,.F.) ;
#291=ORIENTED_EDGE('',*,*,#270,.T.) ;
#292=ORIENTED_EDGE('',*,*,#277,.T.) ;
#293=ORIENTED_EDGE('',*,*,#284,.F.) ;
#294=ORIENTED_EDGE('',*,*,#289,.F.) ;
#295=ORIENTED_EDGE('',*,*,#88,.T.) ;
#296=ORIENTED_EDGE('',*,*,#246,.T.) ;
#315=ORIENTED_EDGE('',*,*,#308,.T.) ;
#316=ORIENTED_EDGE('',*,*,#191,.F.) ;
#317=ORIENTED_EDGE('',*,*,#111,.T.) ;
#318=ORIENTED_EDGE('',*,*,#289,.T.) ;
#319=ORIENTED_EDGE('',*,*,#313,.F.) ;
#320=ORIENTED_EDGE('',*,*,#277,.F.) ;
#348=ORIENTED_EDGE('',*,*,#334,.F.) ;
#349=ORIENTED_EDGE('',*,*,#148,.F.) ;
#350=ORIENTED_EDGE('',*,*,#341,.T.) ;
#351=ORIENTED_EDGE('',*,*,#346,.T.) ;
#365=ORIENTED_EDGE('',*,*,#174,.F.) ;
#366=ORIENTED_EDGE('',*,*,#334,.T.) ;
#367=ORIENTED_EDGE('',*,*,#363,.T.) ;
#368=ORIENTED_EDGE('',*,*,#341,.F.) ;
#377=ORIENTED_EDGE('',*,*,#308,.F.) ;
#378=ORIENTED_EDGE('',*,*,#270,.F.) ;
#379=ORIENTED_EDGE('',*,*,#251,.T.) ;
#380=ORIENTED_EDGE('',*,*,#222,.F.) ;
#381=ORIENTED_EDGE('',*,*,#198,.F.) ;
#395=ORIENTED_EDGE('',*,*,#284,.T.) ;
#396=ORIENTED_EDGE('',*,*,#393,.T.) ;
#405=ORIENTED_EDGE('',*,*,#313,.T.) ;
#406=ORIENTED_EDGE('',*,*,#393,.F.) ;
#420=ORIENTED_EDGE('',*,*,#418,.F.) ;
#421=ORIENTED_EDGE('',*,*,#346,.F.) ;
#430=ORIENTED_EDGE('',*,*,#418,.T.) ;
#431=ORIENTED_EDGE('',*,*,#363,.F.) ;
#178=FACE_BOUND('',#175,.T.) ;
#35=CLOSED_SHELL('Closed Shell',(#179,#210,#234,#258,#298,#322,#353,#370,#383,#398,#408,#423,#433)) ;
#434=ADVANCED_BREP_SHAPE_REPRESENTATION('NONE',(#25),#20) ;
#179=ADVANCED_FACE('*VOL10',(#118,#178),#40,.T.) ;
#210=ADVANCED_FACE('*VOL10',(#209),#184,.F.) ;
#234=ADVANCED_FACE('*VOL10',(#233),#215,.F.) ;
#258=ADVANCED_FACE('*VOL10',(#257),#239,.T.) ;
#298=ADVANCED_FACE('*VOL10',(#297),#263,.T.) ;
#322=ADVANCED_FACE('*VOL10',(#321),#303,.T.) ;
#353=ADVANCED_FACE('*VOL10',(#352),#327,.F.) ;
#370=ADVANCED_FACE('*VOL10',(#369),#358,.F.) ;
#383=ADVANCED_FACE('*VOL10',(#382),#375,.F.) ;
#398=ADVANCED_FACE('*VOL10',(#397),#388,.T.) ;
#408=ADVANCED_FACE('*VOL10',(#407),#403,.T.) ;
#423=ADVANCED_FACE('*VOL10',(#422),#413,.F.) ;
#433=ADVANCED_FACE('*VOL10',(#432),#428,.F.) ;
#4=APPLICATION_PROTOCOL_DEFINITION('international standard','automotive_design',2001,#1) ;
#64=B_SPLINE_CURVE_WITH_KNOTS('',5,(#65,#66,#67,#68,#69,#70,#71,#72,#73,#74,#75,#76,#77,#78,#79,#80,#81,#82,#83,#84,#85),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,6),(0.,7.95236745086,15.9047349194,23.8571023677,31.8094698012,39.7618372374,42.3683033906),.UNSPECIFIED.) ;
#89=B_SPLINE_CURVE_WITH_KNOTS('',5,(#90,#91,#92,#93,#94,#95,#96,#97,#98,#99,#100,#101,#102,#103,#104,#105,#106,#107,#108,#109,#110),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,6),(0.,7.95236743132,15.9047348801,23.8571023297,31.8094697888,39.7618372636,42.3683033856),.UNSPECIFIED.) ;
#119=B_SPLINE_CURVE_WITH_KNOTS('',5,(#120,#121,#122,#123,#124,#125,#126,#127,#128,#129,#130,#131,#132,#133,#134,#135,#136,#137,#138,#139,#140,#141,#142,#143),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,6),(0.,6.51204536762,13.024090744,19.5361361267,26.0481815317,32.5602269459,39.0722723485,41.7580348646),.UNSPECIFIED.) ;
#149=B_SPLINE_CURVE_WITH_KNOTS('',5,(#150,#151,#152,#153,#154,#155,#156,#157,#158,#159,#160,#161,#162,#163,#164,#165,#166,#167,#168,#169,#170,#171,#172,#173),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,6),(0.,6.51204536797,13.0240907444,19.536136127,26.0481815321,32.5602269465,39.0722723493,41.7580348654),.UNSPECIFIED.) ;
#25=MANIFOLD_SOLID_BREP('*VOL10',#35) ;
#267=CIRCLE('generated circle',#266,0.393700787402) ;
#281=CIRCLE('generated circle',#280,0.393700787402) ;
#307=CIRCLE('generated circle',#306,0.393700787402) ;
#312=CIRCLE('generated circle',#311,0.393700787402) ;
#345=CIRCLE('generated circle',#344,0.354330708661) ;
#362=CIRCLE('generated circle',#361,0.354330708661) ;
#392=CIRCLE('generated circle',#391,0.393700787402) ;
#417=CIRCLE('generated circle',#416,0.354330708661) ;
#263=CYLINDRICAL_SURFACE('generated cylinder',#262,0.393700787402) ;
#303=CYLINDRICAL_SURFACE('generated cylinder',#302,0.393700787402) ;
#327=CYLINDRICAL_SURFACE('generated cylinder',#326,0.354330708661) ;
#358=CYLINDRICAL_SURFACE('generated cylinder',#357,0.354330708661) ;
#26=DRAUGHTING_PRE_DEFINED_COLOUR('yellow') ;
#49=EDGE_CURVE('',#46,#48,#44,.T.) ;
#56=EDGE_CURVE('',#48,#55,#53,.T.) ;
#63=EDGE_CURVE('',#62,#55,#60,.T.) ;
#88=EDGE_CURVE('',#87,#62,#64,.T.) ;
#111=EDGE_CURVE('',#46,#87,#89,.T.) ;
#148=EDGE_CURVE('',#145,#147,#119,.T.) ;
#174=EDGE_CURVE('',#147,#145,#149,.T.) ;
#191=EDGE_CURVE('',#46,#190,#188,.T.) ;
#198=EDGE_CURVE('',#190,#197,#195,.T.) ;
#203=EDGE_CURVE('',#48,#197,#202,.T.) ;
#222=EDGE_CURVE('',#197,#221,#219,.T.) ;
#227=EDGE_CURVE('',#55,#221,#226,.T.) ;
#246=EDGE_CURVE('',#62,#245,#243,.T.) ;
#251=EDGE_CURVE('',#245,#221,#250,.T.) ;
#270=EDGE_CURVE('',#245,#269,#267,.T.) ;
#277=EDGE_CURVE('',#269,#276,#274,.T.) ;
#284=EDGE_CURVE('',#283,#276,#281,.T.) ;
#289=EDGE_CURVE('',#87,#283,#288,.T.) ;
#308=EDGE_CURVE('',#269,#190,#307,.T.) ;
#313=EDGE_CURVE('',#276,#283,#312,.T.) ;
#334=EDGE_CURVE('',#147,#333,#331,.T.) ;
#341=EDGE_CURVE('',#145,#340,#338,.T.) ;
#346=EDGE_CURVE('',#340,#333,#345,.T.) ;
#363=EDGE_CURVE('',#333,#340,#362,.T.) ;
#393=EDGE_CURVE('',#276,#283,#392,.F.) ;
#418=EDGE_CURVE('',#333,#340,#417,.F.) ;
#112=EDGE_LOOP('',(#113,#114,#115,#116,#117)) ;
#175=EDGE_LOOP('',(#176,#177)) ;
#204=EDGE_LOOP('',(#205,#206,#207,#208)) ;
#228=EDGE_LOOP('',(#229,#230,#231,#232)) ;
#252=EDGE_LOOP('',(#253,#254,#255,#256)) ;
#290=EDGE_LOOP('',(#291,#292,#293,#294,#295,#296)) ;
#314=EDGE_LOOP('',(#315,#316,#317,#318,#319,#320)) ;
#347=EDGE_LOOP('',(#348,#349,#350,#351)) ;
#364=EDGE_LOOP('',(#365,#366,#367,#368)) ;
#376=EDGE_LOOP('',(#377,#378,#379,#380,#381)) ;
#394=EDGE_LOOP('',(#395,#396)) ;
#404=EDGE_LOOP('',(#405,#406)) ;
#419=EDGE_LOOP('',(#420,#421)) ;
#429=EDGE_LOOP('',(#430,#431)) ;
#118=FACE_OUTER_BOUND('',#112,.T.) ;
#209=FACE_OUTER_BOUND('',#204,.T.) ;
#233=FACE_OUTER_BOUND('',#228,.T.) ;
#257=FACE_OUTER_BOUND('',#252,.T.) ;
#297=FACE_OUTER_BOUND('',#290,.T.) ;
#321=FACE_OUTER_BOUND('',#314,.T.) ;
#352=FACE_OUTER_BOUND('',#347,.T.) ;
#369=FACE_OUTER_BOUND('',#364,.T.) ;
#382=FACE_OUTER_BOUND('',#376,.T.) ;
#397=FACE_OUTER_BOUND('',#394,.T.) ;
#407=FACE_OUTER_BOUND('',#404,.T.) ;
#422=FACE_OUTER_BOUND('',#419,.T.) ;
#432=FACE_OUTER_BOUND('',#429,.T.) ;
#16=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#12) ;
#44=LINE('Line',#41,#43) ;
#53=LINE('Line',#50,#52) ;
#60=LINE('Line',#57,#59) ;
#188=LINE('Line',#185,#187) ;
#195=LINE('Line',#192,#194) ;
#202=LINE('Line',#199,#201) ;
#219=LINE('Line',#216,#218) ;
#226=LINE('Line',#223,#225) ;
#243=LINE('Line',#240,#242) ;
#250=LINE('Line',#247,#249) ;
#274=LINE('Line',#271,#273) ;
#288=LINE('Line',#285,#287) ;
#331=LINE('Line',#328,#330) ;
#338=LINE('Line',#335,#337) ;
#40=PLANE('Plane',#39) ;
#184=PLANE('Plane',#183) ;
#215=PLANE('Plane',#214) ;
#239=PLANE('Plane',#238) ;
#375=PLANE('Plane',#374) ;
#14=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.0174532925199),#13) ;
#9=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#7,#8) ;
#6=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#5,.NOT_KNOWN.) ;
#24=SHAPE_DEFINITION_REPRESENTATION(#11,#23) ;
#388=SPHERICAL_SURFACE('',#387,0.393700787402) ;
#403=SPHERICAL_SURFACE('',#402,0.393700787402) ;
#413=SPHERICAL_SURFACE('',#412,0.354330708661) ;
#428=SPHERICAL_SURFACE('',#427,0.354330708661) ;
#46=VERTEX_POINT('',#45) ;
#48=VERTEX_POINT('',#47) ;
#55=VERTEX_POINT('',#54) ;
#62=VERTEX_POINT('',#61) ;
#87=VERTEX_POINT('',#86) ;
#145=VERTEX_POINT('',#144) ;
#147=VERTEX_POINT('',#146) ;
#190=VERTEX_POINT('',#189) ;
#197=VERTEX_POINT('',#196) ;
#221=VERTEX_POINT('',#220) ;
#245=VERTEX_POINT('',#244) ;
#269=VERTEX_POINT('',#268) ;
#276=VERTEX_POINT('',#275) ;
#283=VERTEX_POINT('',#282) ;
#333=VERTEX_POINT('',#332) ;
#340=VERTEX_POINT('',#339) ;
#12=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)) ;
#13=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)) ;
#15=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()) ;
#18=(CONVERSION_BASED_UNIT('INCH',#16)LENGTH_UNIT()NAMED_UNIT(#17)) ;
#20=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#19))GLOBAL_UNIT_ASSIGNED_CONTEXT((#18,#13,#15))REPRESENTATION_CONTEXT(' ',' ')) ;
ENDSEC;
END-ISO-10303-21;
@@ -0,0 +1,25 @@
STEPcheck v 2.0 (February 21, 2000) for stepcheck_stage_1_2 schema
Copyright ERIM (July 1997)
Checking STEP file: FOOT_BACK_000.stp
Reading Data from FOOT_BACK_000.stp...
HEADER read:
FIRST PASS complete: 436 instances created.
0 ERRORS 0 WARNINGS
SECOND PASS complete: 436 instances valid.
0 ERRORS 0 WARNINGS
Finished reading file.
total violations = 0
total parse errors = 0
total parse warnings = 0
elapsed time : 0.88 seconds
+449
View File
@@ -0,0 +1,449 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('CATIA V5 STEP'),'2;1');
FILE_NAME('E:\\Public\\Archive_PDES\\TR22\\NativeFiles\\s1\\FOOT_FRONT_000.stp','2008-08-18T12:41:46+00:00',('none'),('none'),'CATIA Version 5 Release 19 SP 1 (IN-PROTO)','CATIA V5 STEP AP214','none');
FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
ENDSEC;
/* file written by CATIA V5R19 */
DATA;
#5=PRODUCT('FOOT_FRONT_000','FOOT_FRONT_000',' ',(#2)) ;
#2=PRODUCT_CONTEXT(' ',#1,'mechanical') ;
#1=APPLICATION_CONTEXT('automotive design') ;
#10=PRODUCT_DEFINITION(' ',' ',#6,#3) ;
#3=PRODUCT_DEFINITION_CONTEXT('part definition',#1,' ') ;
#11=PRODUCT_DEFINITION_SHAPE(' ',' ',#10) ;
#17=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#436=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION(' ',(#33),#20) ;
#23=SHAPE_REPRESENTATION(' ',(#22),#20) ;
#22=AXIS2_PLACEMENT_3D(' ',#21,$,$) ;
#39=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#36,#37,#38) ;
#183=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#180,#181,#182) ;
#196=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#194,#195,$) ;
#215=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#213,#214,$) ;
#230=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#227,#228,#229) ;
#241=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#239,#240,$) ;
#246=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#244,#245,$) ;
#261=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#258,#259,#260) ;
#285=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#282,#283,#284) ;
#309=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#306,#307,#308) ;
#326=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#323,#324,#325) ;
#337=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#335,#336,$) ;
#357=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#354,#355,#356) ;
#361=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#359,#360,$) ;
#374=AXIS2_PLACEMENT_3D('Sphere Axis2P3D',#371,#372,#373) ;
#378=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#376,#377,$) ;
#389=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#386,#387,#388) ;
#402=AXIS2_PLACEMENT_3D('Sphere Axis2P3D',#399,#400,#401) ;
#412=AXIS2_PLACEMENT_3D('Sphere Axis2P3D',#409,#410,#411) ;
#416=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#414,#415,$) ;
#427=AXIS2_PLACEMENT_3D('Sphere Axis2P3D',#424,#425,#426) ;
#21=CARTESIAN_POINT(' ',(0.,0.,0.)) ;
#36=CARTESIAN_POINT('Axis2P3D Location',(0.,-0.0984251968504,-3.2874015748)) ;
#42=CARTESIAN_POINT('Control Point',(0.,-0.0984251968504,-3.25521489613)) ;
#43=CARTESIAN_POINT('Control Point',(0.,-0.139763333744,-3.24454143508)) ;
#44=CARTESIAN_POINT('Control Point',(0.,-0.179654632481,-3.22826447246)) ;
#45=CARTESIAN_POINT('Control Point',(0.,-0.217087673382,-3.20664300854)) ;
#46=CARTESIAN_POINT('Control Point',(0.,-0.28515144502,-3.15380024831)) ;
#47=CARTESIAN_POINT('Control Point',(0.,-0.336691511643,-3.08474489079)) ;
#48=CARTESIAN_POINT('Control Point',(0.,-0.357597924819,-3.04690784348)) ;
#49=CARTESIAN_POINT('Control Point',(0.,-0.38863025335,-2.96652109741)) ;
#50=CARTESIAN_POINT('Control Point',(0.,-0.397142633532,-2.88077402594)) ;
#51=CARTESIAN_POINT('Control Point',(0.,-0.39552505395,-2.83757560337)) ;
#52=CARTESIAN_POINT('Control Point',(0.,-0.380623781317,-2.75270519368)) ;
#53=CARTESIAN_POINT('Control Point',(0.,-0.343666552312,-2.67486443238)) ;
#54=CARTESIAN_POINT('Control Point',(0.,-0.319989010487,-2.6386968464)) ;
#55=CARTESIAN_POINT('Control Point',(0.,-0.263428823039,-2.57368931156)) ;
#56=CARTESIAN_POINT('Control Point',(0.,-0.191603802568,-2.52608482309)) ;
#57=CARTESIAN_POINT('Control Point',(0.,-0.152658610032,-2.50732336858)) ;
#58=CARTESIAN_POINT('Control Point',(0.,-0.0982245497334,-2.48973312143)) ;
#59=CARTESIAN_POINT('Control Point',(0.,-0.041985792905,-2.48218465023)) ;
#60=CARTESIAN_POINT('Control Point',(0.,-0.0279866469022,-2.48093666736)) ;
#61=CARTESIAN_POINT('Control Point',(0.,-0.0139933245862,-2.48031496063)) ;
#62=CARTESIAN_POINT('Control Point',(0.,-1.04902962957E-016,-2.48031496063)) ;
#63=CARTESIAN_POINT('Vertex',(0.,-0.0984251968504,-3.25521489613)) ;
#65=CARTESIAN_POINT('Vertex',(0.,-6.35488904397E-013,-2.48031496063)) ;
#69=CARTESIAN_POINT('Control Point',(0.,1.74838271595E-017,-2.48031496063)) ;
#70=CARTESIAN_POINT('Control Point',(0.,0.0426938443712,-2.48031496063)) ;
#71=CARTESIAN_POINT('Control Point',(0.,0.0853876676088,-2.48610223774)) ;
#72=CARTESIAN_POINT('Control Point',(0.,0.127037419771,-2.49767886923)) ;
#73=CARTESIAN_POINT('Control Point',(0.,0.206150573899,-2.53182770865)) ;
#74=CARTESIAN_POINT('Control Point',(0.,0.27331786808,-2.58580525459)) ;
#75=CARTESIAN_POINT('Control Point',(0.,0.30301967734,-2.61721421489)) ;
#76=CARTESIAN_POINT('Control Point',(0.,0.353163287115,-2.68729026491)) ;
#77=CARTESIAN_POINT('Control Point',(0.,0.382842131948,-2.76818641482)) ;
#78=CARTESIAN_POINT('Control Point',(0.,0.392075522814,-2.81041750218)) ;
#79=CARTESIAN_POINT('Control Point',(0.,0.398865030041,-2.89631824102)) ;
#80=CARTESIAN_POINT('Control Point',(0.,0.382541537687,-2.98092654121)) ;
#81=CARTESIAN_POINT('Control Point',(0.,0.368657753224,-3.02186504125)) ;
#82=CARTESIAN_POINT('Control Point',(0.,0.330145471116,-3.09894836282)) ;
#83=CARTESIAN_POINT('Control Point',(0.,0.272502316358,-3.16299746561)) ;
#84=CARTESIAN_POINT('Control Point',(0.,0.239484158858,-3.19089946495)) ;
#85=CARTESIAN_POINT('Control Point',(0.,0.191176168924,-3.22153966365)) ;
#86=CARTESIAN_POINT('Control Point',(0.,0.13861034435,-3.24290812862)) ;
#87=CARTESIAN_POINT('Control Point',(0.,0.125367724958,-3.24761626937)) ;
#88=CARTESIAN_POINT('Control Point',(0.,0.111974175262,-3.25171656494)) ;
#89=CARTESIAN_POINT('Control Point',(0.,0.0984251968504,-3.25521489613)) ;
#90=CARTESIAN_POINT('Vertex',(0.,0.0984251968963,-3.25521489627)) ;
#93=CARTESIAN_POINT('Line Origine',(0.,0.0984251968504,-3.27130823546)) ;
#97=CARTESIAN_POINT('Vertex',(0.,0.0984251968504,-3.2874015748)) ;
#100=CARTESIAN_POINT('Line Origine',(0.,0.,-3.2874015748)) ;
#104=CARTESIAN_POINT('Vertex',(0.,-0.0984251968504,-3.2874015748)) ;
#107=CARTESIAN_POINT('Line Origine',(0.,-0.0984251968504,-3.27130823546)) ;
#120=CARTESIAN_POINT('Control Point',(0.,-1.74838271595E-017,-3.22834645669)) ;
#121=CARTESIAN_POINT('Control Point',(0.,-0.0347169411978,-3.22834645669)) ;
#122=CARTESIAN_POINT('Control Point',(0.,-0.0694338653581,-3.22409454584)) ;
#123=CARTESIAN_POINT('Control Point',(0.,-0.103457476785,-3.21558972461)) ;
#124=CARTESIAN_POINT('Control Point',(0.,-0.168725988139,-3.19042218884)) ;
#125=CARTESIAN_POINT('Control Point',(0.,-0.22599173737,-3.15024746451)) ;
#126=CARTESIAN_POINT('Control Point',(0.,-0.25201169833,-3.12673364379)) ;
#127=CARTESIAN_POINT('Control Point',(0.,-0.297761157263,-3.07381511742)) ;
#128=CARTESIAN_POINT('Control Point',(0.,-0.329387712197,-3.0114201211)) ;
#129=CARTESIAN_POINT('Control Point',(0.,-0.341283132659,-2.97842865174)) ;
#130=CARTESIAN_POINT('Control Point',(0.,-0.356751517187,-2.91020759544)) ;
#131=CARTESIAN_POINT('Control Point',(0.,-0.35529910239,-2.84027001576)) ;
#132=CARTESIAN_POINT('Control Point',(0.,-0.350271725349,-2.80556175225)) ;
#133=CARTESIAN_POINT('Control Point',(0.,-0.331820280062,-2.73808636685)) ;
#134=CARTESIAN_POINT('Control Point',(0.,-0.297630558836,-2.67705819669)) ;
#135=CARTESIAN_POINT('Control Point',(0.,-0.276863015156,-2.6487978496)) ;
#136=CARTESIAN_POINT('Control Point',(0.,-0.228832225295,-2.59794092591)) ;
#137=CARTESIAN_POINT('Control Point',(0.,-0.169947927762,-2.56017832443)) ;
#138=CARTESIAN_POINT('Control Point',(0.,-0.138325538495,-2.5450138082)) ;
#139=CARTESIAN_POINT('Control Point',(0.,-0.0914953951254,-2.52928289161)) ;
#140=CARTESIAN_POINT('Control Point',(0.,-0.0429617672263,-2.52186154695)) ;
#141=CARTESIAN_POINT('Control Point',(0.,-0.0286366094331,-2.52040828286)) ;
#142=CARTESIAN_POINT('Control Point',(0.,-0.0143183061656,-2.51968503937)) ;
#143=CARTESIAN_POINT('Control Point',(0.,0.,-2.51968503937)) ;
#144=CARTESIAN_POINT('Vertex',(0.,-5.67192200872E-013,-3.22834645669)) ;
#146=CARTESIAN_POINT('Vertex',(0.,5.71554733753E-013,-2.51968503937)) ;
#150=CARTESIAN_POINT('Control Point',(0.,0.,-2.51968503937)) ;
#151=CARTESIAN_POINT('Control Point',(0.,0.0347169411959,-2.51968503937)) ;
#152=CARTESIAN_POINT('Control Point',(0.,0.0694338653545,-2.52393695023)) ;
#153=CARTESIAN_POINT('Control Point',(0.,0.103457476788,-2.53244177145)) ;
#154=CARTESIAN_POINT('Control Point',(0.,0.16872598814,-2.55760930722)) ;
#155=CARTESIAN_POINT('Control Point',(0.,0.22599173737,-2.59778403155)) ;
#156=CARTESIAN_POINT('Control Point',(0.,0.25201169833,-2.62129785227)) ;
#157=CARTESIAN_POINT('Control Point',(0.,0.297761157264,-2.67421637864)) ;
#158=CARTESIAN_POINT('Control Point',(0.,0.329387712197,-2.73661137496)) ;
#159=CARTESIAN_POINT('Control Point',(0.,0.341283132658,-2.76960284432)) ;
#160=CARTESIAN_POINT('Control Point',(0.,0.356751517187,-2.83782390062)) ;
#161=CARTESIAN_POINT('Control Point',(0.,0.35529910239,-2.9077614803)) ;
#162=CARTESIAN_POINT('Control Point',(0.,0.350271725349,-2.94246974381)) ;
#163=CARTESIAN_POINT('Control Point',(0.,0.331820280062,-3.00994512921)) ;
#164=CARTESIAN_POINT('Control Point',(0.,0.297630558837,-3.07097329937)) ;
#165=CARTESIAN_POINT('Control Point',(0.,0.276863015154,-3.09923364647)) ;
#166=CARTESIAN_POINT('Control Point',(0.,0.228832225295,-3.15009057016)) ;
#167=CARTESIAN_POINT('Control Point',(0.,0.169947927764,-3.18785317163)) ;
#168=CARTESIAN_POINT('Control Point',(0.,0.138325538494,-3.20301768786)) ;
#169=CARTESIAN_POINT('Control Point',(0.,0.0914953951246,-3.21874860445)) ;
#170=CARTESIAN_POINT('Control Point',(0.,0.0429617672263,-3.22616994912)) ;
#171=CARTESIAN_POINT('Control Point',(0.,0.0286366094331,-3.2276232132)) ;
#172=CARTESIAN_POINT('Control Point',(0.,0.0143183061656,-3.22834645669)) ;
#173=CARTESIAN_POINT('Control Point',(0.,-1.04902962957E-016,-3.22834645669)) ;
#180=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,-2.87401574803)) ;
#185=CARTESIAN_POINT('Line Origine',(0.,-9.64256971514E-017,-3.26771653543)) ;
#189=CARTESIAN_POINT('Vertex',(0.590551181102,-9.64256971514E-017,-3.26771653543)) ;
#191=CARTESIAN_POINT('Vertex',(1.1811023622,6.99353086378E-017,-3.26771653543)) ;
#194=CARTESIAN_POINT('Axis2P3D Location',(1.1811023622,0.,-2.87401574803)) ;
#198=CARTESIAN_POINT('Vertex',(1.1811023622,4.82128485757E-017,-2.48031496063)) ;
#201=CARTESIAN_POINT('Line Origine',(0.,4.82128485757E-017,-2.48031496063)) ;
#206=CARTESIAN_POINT('Line Origine',(0.,-0.0984251715468,-3.25521490281)) ;
#210=CARTESIAN_POINT('Vertex',(0.590551181102,-0.0984251715468,-3.25521490281)) ;
#213=CARTESIAN_POINT('Axis2P3D Location',(0.590551181102,0.,-2.87401574803)) ;
#227=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,-2.87401574803)) ;
#232=CARTESIAN_POINT('Line Origine',(0.,0.0984251715468,-3.25521490281)) ;
#236=CARTESIAN_POINT('Vertex',(0.590551181102,0.0984251968976,-3.25521489627)) ;
#239=CARTESIAN_POINT('Axis2P3D Location',(1.1811023622,0.,-2.87401574803)) ;
#244=CARTESIAN_POINT('Axis2P3D Location',(0.590551181102,0.,-2.87401574803)) ;
#258=CARTESIAN_POINT('Axis2P3D Location',(0.,0.0984251968504,-3.2874015748)) ;
#263=CARTESIAN_POINT('Line Origine',(0.590551181102,0.0984251968504,-3.27130823546)) ;
#267=CARTESIAN_POINT('Vertex',(0.590551181102,0.0984251968504,-3.2874015748)) ;
#270=CARTESIAN_POINT('Line Origine',(0.295275590551,0.0984251968504,-3.2874015748)) ;
#282=CARTESIAN_POINT('Axis2P3D Location',(0.,0.0984251968504,-3.2874015748)) ;
#287=CARTESIAN_POINT('Line Origine',(0.590551181102,0.,-3.2874015748)) ;
#291=CARTESIAN_POINT('Vertex',(0.590551181102,-0.0984251968504,-3.2874015748)) ;
#294=CARTESIAN_POINT('Line Origine',(0.295275590551,-0.0984251968504,-3.2874015748)) ;
#306=CARTESIAN_POINT('Axis2P3D Location',(0.,-0.0984251968504,-3.2874015748)) ;
#311=CARTESIAN_POINT('Line Origine',(0.590551181102,-0.0984251968504,-3.27130823546)) ;
#323=CARTESIAN_POINT('Axis2P3D Location',(-0.0393700787402,0.,-2.87401574803)) ;
#328=CARTESIAN_POINT('Line Origine',(-0.0393700787402,4.33915646648E-017,-2.51968503937)) ;
#332=CARTESIAN_POINT('Vertex',(1.1811023622,-1.1396287977E-016,-2.51968503937)) ;
#335=CARTESIAN_POINT('Axis2P3D Location',(1.1811023622,0.,-2.87401574803)) ;
#339=CARTESIAN_POINT('Vertex',(1.1811023622,-9.46732936663E-025,-3.22834645669)) ;
#342=CARTESIAN_POINT('Line Origine',(-0.0393700787402,-8.6783128383E-017,-3.22834645669)) ;
#354=CARTESIAN_POINT('Axis2P3D Location',(-0.0393700787402,0.,-2.87401574803)) ;
#359=CARTESIAN_POINT('Axis2P3D Location',(1.1811023622,0.,-2.87401574803)) ;
#371=CARTESIAN_POINT('Axis2P3D Location',(1.1811023622,0.,-2.87401574803)) ;
#376=CARTESIAN_POINT('Axis2P3D Location',(1.1811023622,0.,-2.87401574803)) ;
#386=CARTESIAN_POINT('Axis2P3D Location',(0.590551181102,-0.0984251968504,-3.2874015748)) ;
#399=CARTESIAN_POINT('Axis2P3D Location',(1.1811023622,0.,-2.87401574803)) ;
#409=CARTESIAN_POINT('Axis2P3D Location',(1.1811023622,0.,-2.87401574803)) ;
#414=CARTESIAN_POINT('Axis2P3D Location',(1.1811023622,0.,-2.87401574803)) ;
#424=CARTESIAN_POINT('Axis2P3D Location',(1.1811023622,0.,-2.87401574803)) ;
#37=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#38=DIRECTION('Axis2P3D XDirection',(0.,-0.0393700787402,0.)) ;
#94=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#101=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#108=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#181=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,0.)) ;
#182=DIRECTION('Axis2P3D XDirection',(-0.,4.82144409113E-018,0.0393700787402)) ;
#186=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#195=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,0.)) ;
#202=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#207=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#214=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,0.)) ;
#228=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,0.)) ;
#229=DIRECTION('Axis2P3D XDirection',(0.,0.,-0.0393700787402)) ;
#233=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#240=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,0.)) ;
#245=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,0.)) ;
#259=DIRECTION('Axis2P3D Direction',(0.,0.0393700787402,-0.)) ;
#260=DIRECTION('Axis2P3D XDirection',(-0.0393700787402,0.,0.)) ;
#264=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#271=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#283=DIRECTION('Axis2P3D Direction',(0.,0.,0.0393700787402)) ;
#284=DIRECTION('Axis2P3D XDirection',(-0.0393700787402,0.,0.)) ;
#288=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#295=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#307=DIRECTION('Axis2P3D Direction',(0.,0.0393700787402,-0.)) ;
#308=DIRECTION('Axis2P3D XDirection',(-0.0393700787402,0.,0.)) ;
#312=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#324=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,0.)) ;
#325=DIRECTION('Axis2P3D XDirection',(0.,4.82144419632E-018,0.0393700787402)) ;
#329=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#336=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,0.)) ;
#343=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#355=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,0.)) ;
#356=DIRECTION('Axis2P3D XDirection',(0.,-1.05192548518E-025,-0.0393700787402)) ;
#360=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,0.)) ;
#372=DIRECTION('Axis2P3D Direction',(0.,0.,-0.0393700787402)) ;
#373=DIRECTION('Axis2P3D XDirection',(0.0393700787402,0.,0.)) ;
#377=DIRECTION('Axis2P3D Direction',(-0.,0.0393700787402,0.)) ;
#387=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#388=DIRECTION('Axis2P3D XDirection',(0.,-0.0393700787402,0.)) ;
#400=DIRECTION('Axis2P3D Direction',(0.,0.,-0.0393700787402)) ;
#401=DIRECTION('Axis2P3D XDirection',(-1.39870617276E-017,0.0393700787402,0.)) ;
#410=DIRECTION('Axis2P3D Direction',(0.,0.,-0.0393700787402)) ;
#411=DIRECTION('Axis2P3D XDirection',(0.0393700787402,0.,0.)) ;
#415=DIRECTION('Axis2P3D Direction',(-0.,0.0393700787402,0.)) ;
#425=DIRECTION('Axis2P3D Direction',(0.,0.,-0.0393700787402)) ;
#426=DIRECTION('Axis2P3D XDirection',(0.,0.0393700787402,0.)) ;
#34=PRESENTATION_LAYER_ASSIGNMENT('0',' ',(#25)) ;
#8=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#5)) ;
#7=PRODUCT_CATEGORY('part','specification') ;
#33=STYLED_ITEM(' ',(#32),#25) ;
#32=PRESENTATION_STYLE_ASSIGNMENT((#31)) ;
#31=SURFACE_STYLE_USAGE(.BOTH.,#30) ;
#30=SURFACE_SIDE_STYLE(' ',(#29)) ;
#29=SURFACE_STYLE_FILL_AREA(#28) ;
#28=FILL_AREA_STYLE(' ',(#27)) ;
#27=FILL_AREA_STYLE_COLOUR(' ',#26) ;
#95=VECTOR('Line Direction',#94,0.0393700787402) ;
#102=VECTOR('Line Direction',#101,0.0393700787402) ;
#109=VECTOR('Line Direction',#108,0.0393700787402) ;
#187=VECTOR('Line Direction',#186,0.0393700787402) ;
#203=VECTOR('Line Direction',#202,0.0393700787402) ;
#208=VECTOR('Line Direction',#207,0.0393700787402) ;
#234=VECTOR('Line Direction',#233,0.0393700787402) ;
#265=VECTOR('Line Direction',#264,0.0393700787402) ;
#272=VECTOR('Line Direction',#271,0.0393700787402) ;
#289=VECTOR('Line Direction',#288,0.0393700787402) ;
#296=VECTOR('Line Direction',#295,0.0393700787402) ;
#313=VECTOR('Line Direction',#312,0.0393700787402) ;
#330=VECTOR('Line Direction',#329,0.0393700787402) ;
#344=VECTOR('Line Direction',#343,0.0393700787402) ;
#19=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#18,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#435=SHAPE_REPRESENTATION_RELATIONSHIP(' ',' ',#23,#434) ;
#113=ORIENTED_EDGE('',*,*,#67,.T.) ;
#114=ORIENTED_EDGE('',*,*,#92,.T.) ;
#115=ORIENTED_EDGE('',*,*,#99,.T.) ;
#116=ORIENTED_EDGE('',*,*,#106,.F.) ;
#117=ORIENTED_EDGE('',*,*,#111,.F.) ;
#176=ORIENTED_EDGE('',*,*,#148,.F.) ;
#177=ORIENTED_EDGE('',*,*,#174,.F.) ;
#219=ORIENTED_EDGE('',*,*,#193,.T.) ;
#220=ORIENTED_EDGE('',*,*,#200,.T.) ;
#221=ORIENTED_EDGE('',*,*,#205,.F.) ;
#222=ORIENTED_EDGE('',*,*,#67,.F.) ;
#223=ORIENTED_EDGE('',*,*,#212,.T.) ;
#224=ORIENTED_EDGE('',*,*,#217,.F.) ;
#250=ORIENTED_EDGE('',*,*,#238,.F.) ;
#251=ORIENTED_EDGE('',*,*,#92,.F.) ;
#252=ORIENTED_EDGE('',*,*,#205,.T.) ;
#253=ORIENTED_EDGE('',*,*,#243,.T.) ;
#254=ORIENTED_EDGE('',*,*,#193,.F.) ;
#255=ORIENTED_EDGE('',*,*,#248,.F.) ;
#276=ORIENTED_EDGE('',*,*,#269,.T.) ;
#277=ORIENTED_EDGE('',*,*,#274,.F.) ;
#278=ORIENTED_EDGE('',*,*,#99,.F.) ;
#279=ORIENTED_EDGE('',*,*,#238,.T.) ;
#300=ORIENTED_EDGE('',*,*,#274,.T.) ;
#301=ORIENTED_EDGE('',*,*,#293,.F.) ;
#302=ORIENTED_EDGE('',*,*,#298,.F.) ;
#303=ORIENTED_EDGE('',*,*,#106,.T.) ;
#317=ORIENTED_EDGE('',*,*,#111,.T.) ;
#318=ORIENTED_EDGE('',*,*,#298,.T.) ;
#319=ORIENTED_EDGE('',*,*,#315,.F.) ;
#320=ORIENTED_EDGE('',*,*,#212,.F.) ;
#348=ORIENTED_EDGE('',*,*,#334,.T.) ;
#349=ORIENTED_EDGE('',*,*,#341,.F.) ;
#350=ORIENTED_EDGE('',*,*,#346,.F.) ;
#351=ORIENTED_EDGE('',*,*,#148,.T.) ;
#365=ORIENTED_EDGE('',*,*,#363,.F.) ;
#366=ORIENTED_EDGE('',*,*,#334,.F.) ;
#367=ORIENTED_EDGE('',*,*,#174,.T.) ;
#368=ORIENTED_EDGE('',*,*,#346,.T.) ;
#382=ORIENTED_EDGE('',*,*,#380,.T.) ;
#383=ORIENTED_EDGE('',*,*,#200,.F.) ;
#392=ORIENTED_EDGE('',*,*,#315,.T.) ;
#393=ORIENTED_EDGE('',*,*,#293,.T.) ;
#394=ORIENTED_EDGE('',*,*,#269,.F.) ;
#395=ORIENTED_EDGE('',*,*,#248,.T.) ;
#396=ORIENTED_EDGE('',*,*,#217,.T.) ;
#405=ORIENTED_EDGE('',*,*,#380,.F.) ;
#406=ORIENTED_EDGE('',*,*,#243,.F.) ;
#420=ORIENTED_EDGE('',*,*,#341,.T.) ;
#421=ORIENTED_EDGE('',*,*,#418,.F.) ;
#430=ORIENTED_EDGE('',*,*,#363,.T.) ;
#431=ORIENTED_EDGE('',*,*,#418,.T.) ;
#178=FACE_BOUND('',#175,.T.) ;
#35=CLOSED_SHELL('Closed Shell',(#179,#226,#257,#281,#305,#322,#353,#370,#385,#398,#408,#423,#433)) ;
#434=ADVANCED_BREP_SHAPE_REPRESENTATION('NONE',(#25),#20) ;
#179=ADVANCED_FACE('*VOL9',(#118,#178),#40,.T.) ;
#226=ADVANCED_FACE('*VOL9',(#225),#184,.T.) ;
#257=ADVANCED_FACE('*VOL9',(#256),#231,.T.) ;
#281=ADVANCED_FACE('*VOL9',(#280),#262,.T.) ;
#305=ADVANCED_FACE('*VOL9',(#304),#286,.F.) ;
#322=ADVANCED_FACE('*VOL9',(#321),#310,.F.) ;
#353=ADVANCED_FACE('*VOL9',(#352),#327,.F.) ;
#370=ADVANCED_FACE('*VOL9',(#369),#358,.F.) ;
#385=ADVANCED_FACE('*VOL9',(#384),#375,.T.) ;
#398=ADVANCED_FACE('*VOL9',(#397),#390,.F.) ;
#408=ADVANCED_FACE('*VOL9',(#407),#403,.T.) ;
#423=ADVANCED_FACE('*VOL9',(#422),#413,.F.) ;
#433=ADVANCED_FACE('*VOL9',(#432),#428,.F.) ;
#4=APPLICATION_PROTOCOL_DEFINITION('international standard','automotive_design',2001,#1) ;
#41=B_SPLINE_CURVE_WITH_KNOTS('',5,(#42,#43,#44,#45,#46,#47,#48,#49,#50,#51,#52,#53,#54,#55,#56,#57,#58,#59,#60,#61,#62),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,6),(0.,7.95236743132,15.9047348801,23.8571023297,31.8094697888,39.7618372636,42.3683033856),.UNSPECIFIED.) ;
#68=B_SPLINE_CURVE_WITH_KNOTS('',5,(#69,#70,#71,#72,#73,#74,#75,#76,#77,#78,#79,#80,#81,#82,#83,#84,#85,#86,#87,#88,#89),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,6),(0.,7.95236745086,15.9047349194,23.8571023677,31.8094698012,39.7618372374,42.3683033906),.UNSPECIFIED.) ;
#119=B_SPLINE_CURVE_WITH_KNOTS('',5,(#120,#121,#122,#123,#124,#125,#126,#127,#128,#129,#130,#131,#132,#133,#134,#135,#136,#137,#138,#139,#140,#141,#142,#143),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,6),(0.,6.51204536797,13.0240907444,19.536136127,26.0481815321,32.5602269465,39.0722723493,41.7580348654),.UNSPECIFIED.) ;
#149=B_SPLINE_CURVE_WITH_KNOTS('',5,(#150,#151,#152,#153,#154,#155,#156,#157,#158,#159,#160,#161,#162,#163,#164,#165,#166,#167,#168,#169,#170,#171,#172,#173),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,6),(0.,6.51204536762,13.024090744,19.5361361267,26.0481815317,32.5602269459,39.0722723485,41.7580348646),.UNSPECIFIED.) ;
#25=MANIFOLD_SOLID_BREP('*VOL9',#35) ;
#197=CIRCLE('generated circle',#196,0.393700787402) ;
#216=CIRCLE('generated circle',#215,0.393700787402) ;
#242=CIRCLE('generated circle',#241,0.393700787402) ;
#247=CIRCLE('generated circle',#246,0.393700787402) ;
#338=CIRCLE('generated circle',#337,0.354330708661) ;
#362=CIRCLE('generated circle',#361,0.354330708661) ;
#379=CIRCLE('generated circle',#378,0.393700787402) ;
#417=CIRCLE('generated circle',#416,0.354330708661) ;
#184=CYLINDRICAL_SURFACE('generated cylinder',#183,0.393700787402) ;
#231=CYLINDRICAL_SURFACE('generated cylinder',#230,0.393700787402) ;
#327=CYLINDRICAL_SURFACE('generated cylinder',#326,0.354330708661) ;
#358=CYLINDRICAL_SURFACE('generated cylinder',#357,0.354330708661) ;
#26=DRAUGHTING_PRE_DEFINED_COLOUR('yellow') ;
#67=EDGE_CURVE('',#64,#66,#41,.T.) ;
#92=EDGE_CURVE('',#66,#91,#68,.T.) ;
#99=EDGE_CURVE('',#91,#98,#96,.T.) ;
#106=EDGE_CURVE('',#105,#98,#103,.T.) ;
#111=EDGE_CURVE('',#64,#105,#110,.T.) ;
#148=EDGE_CURVE('',#145,#147,#119,.T.) ;
#174=EDGE_CURVE('',#147,#145,#149,.T.) ;
#193=EDGE_CURVE('',#190,#192,#188,.T.) ;
#200=EDGE_CURVE('',#192,#199,#197,.F.) ;
#205=EDGE_CURVE('',#66,#199,#204,.T.) ;
#212=EDGE_CURVE('',#64,#211,#209,.T.) ;
#217=EDGE_CURVE('',#190,#211,#216,.F.) ;
#238=EDGE_CURVE('',#91,#237,#235,.T.) ;
#243=EDGE_CURVE('',#199,#192,#242,.F.) ;
#248=EDGE_CURVE('',#237,#190,#247,.F.) ;
#269=EDGE_CURVE('',#237,#268,#266,.T.) ;
#274=EDGE_CURVE('',#98,#268,#273,.T.) ;
#293=EDGE_CURVE('',#292,#268,#290,.T.) ;
#298=EDGE_CURVE('',#105,#292,#297,.T.) ;
#315=EDGE_CURVE('',#211,#292,#314,.T.) ;
#334=EDGE_CURVE('',#147,#333,#331,.T.) ;
#341=EDGE_CURVE('',#340,#333,#338,.F.) ;
#346=EDGE_CURVE('',#145,#340,#345,.T.) ;
#363=EDGE_CURVE('',#333,#340,#362,.F.) ;
#380=EDGE_CURVE('',#192,#199,#379,.F.) ;
#418=EDGE_CURVE('',#340,#333,#417,.F.) ;
#112=EDGE_LOOP('',(#113,#114,#115,#116,#117)) ;
#175=EDGE_LOOP('',(#176,#177)) ;
#218=EDGE_LOOP('',(#219,#220,#221,#222,#223,#224)) ;
#249=EDGE_LOOP('',(#250,#251,#252,#253,#254,#255)) ;
#275=EDGE_LOOP('',(#276,#277,#278,#279)) ;
#299=EDGE_LOOP('',(#300,#301,#302,#303)) ;
#316=EDGE_LOOP('',(#317,#318,#319,#320)) ;
#347=EDGE_LOOP('',(#348,#349,#350,#351)) ;
#364=EDGE_LOOP('',(#365,#366,#367,#368)) ;
#381=EDGE_LOOP('',(#382,#383)) ;
#391=EDGE_LOOP('',(#392,#393,#394,#395,#396)) ;
#404=EDGE_LOOP('',(#405,#406)) ;
#419=EDGE_LOOP('',(#420,#421)) ;
#429=EDGE_LOOP('',(#430,#431)) ;
#118=FACE_OUTER_BOUND('',#112,.T.) ;
#225=FACE_OUTER_BOUND('',#218,.T.) ;
#256=FACE_OUTER_BOUND('',#249,.T.) ;
#280=FACE_OUTER_BOUND('',#275,.T.) ;
#304=FACE_OUTER_BOUND('',#299,.T.) ;
#321=FACE_OUTER_BOUND('',#316,.T.) ;
#352=FACE_OUTER_BOUND('',#347,.T.) ;
#369=FACE_OUTER_BOUND('',#364,.T.) ;
#384=FACE_OUTER_BOUND('',#381,.T.) ;
#397=FACE_OUTER_BOUND('',#391,.T.) ;
#407=FACE_OUTER_BOUND('',#404,.T.) ;
#422=FACE_OUTER_BOUND('',#419,.T.) ;
#432=FACE_OUTER_BOUND('',#429,.T.) ;
#16=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#12) ;
#96=LINE('Line',#93,#95) ;
#103=LINE('Line',#100,#102) ;
#110=LINE('Line',#107,#109) ;
#188=LINE('Line',#185,#187) ;
#204=LINE('Line',#201,#203) ;
#209=LINE('Line',#206,#208) ;
#235=LINE('Line',#232,#234) ;
#266=LINE('Line',#263,#265) ;
#273=LINE('Line',#270,#272) ;
#290=LINE('Line',#287,#289) ;
#297=LINE('Line',#294,#296) ;
#314=LINE('Line',#311,#313) ;
#331=LINE('Line',#328,#330) ;
#345=LINE('Line',#342,#344) ;
#40=PLANE('Plane',#39) ;
#262=PLANE('Plane',#261) ;
#286=PLANE('Plane',#285) ;
#310=PLANE('Plane',#309) ;
#390=PLANE('Plane',#389) ;
#14=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.0174532925199),#13) ;
#9=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#7,#8) ;
#6=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#5,.NOT_KNOWN.) ;
#24=SHAPE_DEFINITION_REPRESENTATION(#11,#23) ;
#375=SPHERICAL_SURFACE('',#374,0.393700787402) ;
#403=SPHERICAL_SURFACE('',#402,0.393700787402) ;
#413=SPHERICAL_SURFACE('',#412,0.354330708661) ;
#428=SPHERICAL_SURFACE('',#427,0.354330708661) ;
#64=VERTEX_POINT('',#63) ;
#66=VERTEX_POINT('',#65) ;
#91=VERTEX_POINT('',#90) ;
#98=VERTEX_POINT('',#97) ;
#105=VERTEX_POINT('',#104) ;
#145=VERTEX_POINT('',#144) ;
#147=VERTEX_POINT('',#146) ;
#190=VERTEX_POINT('',#189) ;
#192=VERTEX_POINT('',#191) ;
#199=VERTEX_POINT('',#198) ;
#211=VERTEX_POINT('',#210) ;
#237=VERTEX_POINT('',#236) ;
#268=VERTEX_POINT('',#267) ;
#292=VERTEX_POINT('',#291) ;
#333=VERTEX_POINT('',#332) ;
#340=VERTEX_POINT('',#339) ;
#12=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)) ;
#13=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)) ;
#15=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()) ;
#18=(CONVERSION_BASED_UNIT('INCH',#16)LENGTH_UNIT()NAMED_UNIT(#17)) ;
#20=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#19))GLOBAL_UNIT_ASSIGNED_CONTEXT((#18,#13,#15))REPRESENTATION_CONTEXT(' ',' ')) ;
ENDSEC;
END-ISO-10303-21;
@@ -0,0 +1,25 @@
STEPcheck v 2.0 (February 21, 2000) for stepcheck_stage_1_2 schema
Copyright ERIM (July 1997)
Checking STEP file: FOOT_FRONT_000.stp
Reading Data from FOOT_FRONT_000.stp...
HEADER read:
FIRST PASS complete: 436 instances created.
0 ERRORS 0 WARNINGS
SECOND PASS complete: 436 instances valid.
0 ERRORS 0 WARNINGS
Finished reading file.
total violations = 0
total parse errors = 0
total parse warnings = 0
elapsed time : 0.869 seconds
+118
View File
@@ -0,0 +1,118 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('CATIA V5 STEP'),'2;1');
FILE_NAME('E:\\Public\\Archive_PDES\\TR22\\NativeFiles\\s1\\HEAD.stp','2008-08-18T12:41:46+00:00',('none'),('none'),'CATIA Version 5 Release 19 SP 1 (IN-PROTO)','CATIA V5 STEP AP214','none');
FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
ENDSEC;
/* file written by CATIA V5R19 */
DATA;
#5=PRODUCT('HEAD','HEAD',' ',(#2)) ;
#28=PRODUCT('HEAD_FRONT','HEAD_FRONT',' ',(#2)) ;
#68=PRODUCT('HEAD_BACK','HEAD_BACK',' ',(#2)) ;
#2=PRODUCT_CONTEXT(' ',#1,'mechanical') ;
#1=APPLICATION_CONTEXT('automotive design') ;
#39=OBJECT_ROLE('mandatory',$) ;
#79=OBJECT_ROLE('mandatory',$) ;
#33=DOCUMENT_FILE('HEAD_FRONT.stp','','',#34,'',$) ;
#73=DOCUMENT_FILE('HEAD_BACK.stp','','',#74,'',$) ;
#34=DOCUMENT_TYPE('geometry') ;
#74=DOCUMENT_TYPE('geometry') ;
#40=DOCUMENT_REPRESENTATION_TYPE('digital',#33) ;
#80=DOCUMENT_REPRESENTATION_TYPE('digital',#73) ;
#13=PRODUCT_DEFINITION(' ',' ',#6,#3) ;
#30=PRODUCT_DEFINITION(' ',' ',#29,#3) ;
#70=PRODUCT_DEFINITION(' ',' ',#69,#3) ;
#3=PRODUCT_DEFINITION_CONTEXT('part definition',#1,' ') ;
#16=PRODUCT_DEFINITION_SHAPE(' ',' ',#13) ;
#31=PRODUCT_DEFINITION_SHAPE(' ',' ',#30) ;
#49=PRODUCT_DEFINITION_SHAPE(' ',' ',#48) ;
#71=PRODUCT_DEFINITION_SHAPE(' ',' ',#70) ;
#89=PRODUCT_DEFINITION_SHAPE(' ',' ',#88) ;
#41=PROPERTY_DEFINITION('external definition','',#33) ;
#46=PROPERTY_DEFINITION('document property','',#33) ;
#81=PROPERTY_DEFINITION('external definition','',#73) ;
#86=PROPERTY_DEFINITION('document property','',#73) ;
#22=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#62=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#102=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#36=IDENTIFICATION_ROLE('external document id and location',$) ;
#76=IDENTIFICATION_ROLE('external document id and location',$) ;
#45=REPRESENTATION('document format',(#43),#44) ;
#85=REPRESENTATION('document format',(#83),#84) ;
#44=REPRESENTATION_CONTEXT('','document parameters') ;
#84=REPRESENTATION_CONTEXT('','document parameters') ;
#15=SHAPE_REPRESENTATION(' ',(#53,#93),#25) ;
#26=SHAPE_REPRESENTATION(' ',(#54),#65) ;
#66=SHAPE_REPRESENTATION(' ',(#94),#105) ;
#42=PROPERTY_DEFINITION_REPRESENTATION(#41,#26) ;
#47=PROPERTY_DEFINITION_REPRESENTATION(#46,#45) ;
#82=PROPERTY_DEFINITION_REPRESENTATION(#81,#66) ;
#87=PROPERTY_DEFINITION_REPRESENTATION(#86,#85) ;
#43=DESCRIPTIVE_REPRESENTATION_ITEM('data format','STEP AP214') ;
#83=DESCRIPTIVE_REPRESENTATION_ITEM('data format','STEP AP214') ;
#32=EXTERNAL_SOURCE(IDENTIFIER('')) ;
#72=EXTERNAL_SOURCE(IDENTIFIER('')) ;
#52=ITEM_DEFINED_TRANSFORMATION(' ',' ',#54,#53) ;
#92=ITEM_DEFINED_TRANSFORMATION(' ',' ',#94,#93) ;
#53=AXIS2_PLACEMENT_3D(' ',#56,#60,#59) ;
#54=AXIS2_PLACEMENT_3D(' ',#55,#58,#57) ;
#93=AXIS2_PLACEMENT_3D(' ',#96,#100,#99) ;
#94=AXIS2_PLACEMENT_3D(' ',#95,#98,#97) ;
#55=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#56=CARTESIAN_POINT('NONE',(-1.88976377953,0.,0.)) ;
#95=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#96=CARTESIAN_POINT('NONE',(-1.88976377953,0.,0.)) ;
#57=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#58=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#59=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#60=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#97=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#98=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#99=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#100=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#8=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#28,#68)) ;
#11=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#5)) ;
#7=PRODUCT_CATEGORY('part','specification') ;
#10=PRODUCT_CATEGORY('part','specification') ;
#24=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#23,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#64=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#63,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#104=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#103,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#50=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#51,#49) ;
#90=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#91,#89) ;
#4=APPLICATION_PROTOCOL_DEFINITION('international standard','automotive_design',2001,#1) ;
#37=APPLIED_DOCUMENT_REFERENCE(#33,'',(#30)) ;
#77=APPLIED_DOCUMENT_REFERENCE(#73,'',(#70)) ;
#35=APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT('HEAD_FRONT.stp',#36,#32,(#33)) ;
#75=APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT('HEAD_BACK.stp',#76,#72,(#73)) ;
#21=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#17) ;
#61=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#17) ;
#101=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#17) ;
#48=NEXT_ASSEMBLY_USAGE_OCCURRENCE('*DIT37','*DIT37','*DIT37',#13,#30,' ') ;
#88=NEXT_ASSEMBLY_USAGE_OCCURRENCE('*DIT38','*DIT38','*DIT38',#13,#70,' ') ;
#19=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.0174532925199),#18) ;
#9=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#7,#8) ;
#12=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#10,#11) ;
#6=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#5,.NOT_KNOWN.) ;
#29=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#28,.NOT_KNOWN.) ;
#69=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#68,.NOT_KNOWN.) ;
#38=ROLE_ASSOCIATION(#39,#37) ;
#78=ROLE_ASSOCIATION(#79,#77) ;
#14=SHAPE_DEFINITION_REPRESENTATION(#16,#15) ;
#27=SHAPE_DEFINITION_REPRESENTATION(#31,#26) ;
#67=SHAPE_DEFINITION_REPRESENTATION(#71,#66) ;
#17=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)) ;
#18=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)) ;
#20=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()) ;
#23=(CONVERSION_BASED_UNIT('INCH',#21)LENGTH_UNIT()NAMED_UNIT(#22)) ;
#63=(CONVERSION_BASED_UNIT('INCH',#61)LENGTH_UNIT()NAMED_UNIT(#62)) ;
#103=(CONVERSION_BASED_UNIT('INCH',#101)LENGTH_UNIT()NAMED_UNIT(#102)) ;
#25=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#24))GLOBAL_UNIT_ASSIGNED_CONTEXT((#23,#18,#20))REPRESENTATION_CONTEXT(' ',' ')) ;
#65=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#64))GLOBAL_UNIT_ASSIGNED_CONTEXT((#63,#18,#20))REPRESENTATION_CONTEXT(' ','external')) ;
#105=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#104))GLOBAL_UNIT_ASSIGNED_CONTEXT((#103,#18,#20))REPRESENTATION_CONTEXT(' ','external')) ;
#51=(REPRESENTATION_RELATIONSHIP(' ',' ',#26,#15)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#52)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
#91=(REPRESENTATION_RELATIONSHIP(' ',' ',#66,#15)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#92)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
ENDSEC;
END-ISO-10303-21;
+73
View File
@@ -0,0 +1,73 @@
STEPcheck v 2.0 (February 21, 2000) for stepcheck_stage_1_2 schema
Copyright ERIM (July 1997)
Checking STEP file: HEAD.stp
Reading Data from HEAD.stp...
HEADER read:
ERROR: instance #37 'APPLIED_DOCUMENT_REFERENCE': Unknown ENTITY type.
Data lost: (#33,,(#30))
ERROR: instance #77 'APPLIED_DOCUMENT_REFERENCE': Unknown ENTITY type.
Data lost: (#73,,(#70))
ERROR: instance #35 'APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT': Unknown ENTITY type.
Data lost: (HEAD_FRONT.stp,#36,#32,(#33))
ERROR: instance #75 'APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT': Unknown ENTITY type.
Data lost: (HEAD_BACK.stp,#76,#72,(#73))
FIRST PASS complete: 101 instances created.
4 ERRORS 0 WARNINGS
ERROR: in 2nd pass, instance #37 not found.
Data lost: =APPLIED_DOCUMENT_REFERENCE(#33,,(#30))
ERROR: in 2nd pass, instance #77 not found.
Data lost: =APPLIED_DOCUMENT_REFERENCE(#73,,(#70))
ERROR: in 2nd pass, instance #35 not found.
Data lost: =APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT(HEAD_FRONT.stp,#36,#32,(#33))
ERROR: in 2nd pass, instance #75 not found.
Data lost: =APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT(HEAD_BACK.stp,#76,#72,(#73))
Second pass complete - instance summary:
Total instances: 101
Invalid instances: 4
Incomplete instances (includes invalid instances): 0
Warnings: 0.
SECOND PASS complete: 101 instances valid.
6 ERRORS 0 WARNINGS
Finished reading file.
Where Rule Document_File_WR1 violated by :
1) #33=DOCUMENT_FILE('HEAD_FRONT.stp','','',#34,'',$);
2) #73=DOCUMENT_FILE('HEAD_BACK.stp','','',#74,'',$);
Global Rule Dependent_instantiable_identification_role violated by :
1) #76=IDENTIFICATION_ROLE('external document id and location', ...
2) #36=IDENTIFICATION_ROLE('external document id and location', ...
total violations = 4
total parse errors = 6
total parse warnings = 0
elapsed time : 0.22 seconds
+608
View File
@@ -0,0 +1,608 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('CATIA V5 STEP'),'2;1');
FILE_NAME('E:\\Public\\Archive_PDES\\TR22\\NativeFiles\\s1\\HEAD_BACK.stp','2008-08-18T12:41:45+00:00',('none'),('none'),'CATIA Version 5 Release 19 SP 1 (IN-PROTO)','CATIA V5 STEP AP214','none');
FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
ENDSEC;
/* file written by CATIA V5R19 */
DATA;
#5=PRODUCT('HEAD_BACK','HEAD_BACK',' ',(#2)) ;
#2=PRODUCT_CONTEXT(' ',#1,'mechanical') ;
#1=APPLICATION_CONTEXT('automotive design') ;
#10=PRODUCT_DEFINITION(' ',' ',#6,#3) ;
#3=PRODUCT_DEFINITION_CONTEXT('part definition',#1,' ') ;
#11=PRODUCT_DEFINITION_SHAPE(' ',' ',#10) ;
#17=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#595=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION(' ',(#33),#20) ;
#23=SHAPE_REPRESENTATION(' ',(#22),#20) ;
#22=AXIS2_PLACEMENT_3D(' ',#21,$,$) ;
#39=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#36,#37,#38) ;
#165=AXIS2_PLACEMENT_3D('Sphere Axis2P3D',#162,#163,#164) ;
#169=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#167,#168,$) ;
#176=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#174,#175,$) ;
#247=AXIS2_PLACEMENT_3D('Sphere Axis2P3D',#244,#245,#246) ;
#318=AXIS2_PLACEMENT_3D('Sphere Axis2P3D',#315,#316,#317) ;
#322=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#320,#321,$) ;
#333=AXIS2_PLACEMENT_3D('Sphere Axis2P3D',#330,#331,#332) ;
#343=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#340,#341,#342) ;
#354=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#352,#353,$) ;
#374=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#371,#372,#373) ;
#378=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#376,#377,$) ;
#391=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#388,#389,#390) ;
#461=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#458,#459,#460) ;
#522=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#519,#520,#521) ;
#580=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#578,#579,$) ;
#21=CARTESIAN_POINT(' ',(0.,0.,0.)) ;
#36=CARTESIAN_POINT('Axis2P3D Location',(9.84251968504,0.,0.)) ;
#42=CARTESIAN_POINT('Control Point',(9.84251968504,-6.99353086378E-017,2.36220472441)) ;
#43=CARTESIAN_POINT('Control Point',(9.84251968504,0.224097066996,2.36220472441)) ;
#44=CARTESIAN_POINT('Control Point',(9.84251968504,0.448194112474,2.33563024)) ;
#45=CARTESIAN_POINT('Control Point',(9.84251968504,0.668095186862,2.28247572507)) ;
#46=CARTESIAN_POINT('Control Point',(9.84251968504,1.09108179775,2.1250427316)) ;
#47=CARTESIAN_POINT('Control Point',(9.84251968504,1.46551646667,1.87304780363)) ;
#48=CARTESIAN_POINT('Control Point',(9.84251968504,1.63686057962,1.72532143549)) ;
#49=CARTESIAN_POINT('Control Point',(9.84251968504,1.94123879401,1.39206969675)) ;
#50=CARTESIAN_POINT('Control Point',(9.84251968504,2.15923407815,0.996872503874)) ;
#51=CARTESIAN_POINT('Control Point',(9.84251968504,2.24418626325,0.787194154369)) ;
#52=CARTESIAN_POINT('Control Point',(9.84251968504,2.36274548806,0.351709907948)) ;
#53=CARTESIAN_POINT('Control Point',(9.84251968504,2.37616524411,-0.099424966704)) ;
#54=CARTESIAN_POINT('Control Point',(9.84251968504,2.35596697579,-0.324755644924)) ;
#55=CARTESIAN_POINT('Control Point',(9.84251968504,2.26252782195,-0.766311919874)) ;
#56=CARTESIAN_POINT('Control Point',(9.84251968504,2.06840879661,-1.17376813813)) ;
#57=CARTESIAN_POINT('Control Point',(9.84251968504,1.94752010862,-1.36499525319)) ;
#58=CARTESIAN_POINT('Control Point',(9.84251968504,1.66271513225,-1.71512229375)) ;
#59=CARTESIAN_POINT('Control Point',(9.84251968504,1.30392128644,-1.98892832147)) ;
#60=CARTESIAN_POINT('Control Point',(9.84251968504,1.10903594753,-2.10382648662)) ;
#61=CARTESIAN_POINT('Control Point',(9.84251968504,0.773644605284,-2.25102627234)) ;
#62=CARTESIAN_POINT('Control Point',(9.84251968504,0.417863425012,-2.33125524611)) ;
#63=CARTESIAN_POINT('Control Point',(9.84251968504,0.279252735712,-2.35188834254)) ;
#64=CARTESIAN_POINT('Control Point',(9.84251968504,0.139626372033,-2.36220472441)) ;
#65=CARTESIAN_POINT('Control Point',(9.84251968504,5.59482469102E-016,-2.36220472441)) ;
#66=CARTESIAN_POINT('Vertex',(9.84251968504,1.71818299008E-015,2.36220472441)) ;
#68=CARTESIAN_POINT('Vertex',(9.84251968504,-6.69153360511E-016,-2.36220472441)) ;
#72=CARTESIAN_POINT('Control Point',(9.84251968504,-2.09805925913E-016,-2.36220472441)) ;
#73=CARTESIAN_POINT('Control Point',(9.84251968504,-0.224097066988,-2.36220472441)) ;
#74=CARTESIAN_POINT('Control Point',(9.84251968504,-0.44819411246,-2.33563024001)) ;
#75=CARTESIAN_POINT('Control Point',(9.84251968504,-0.668095186876,-2.28247572507)) ;
#76=CARTESIAN_POINT('Control Point',(9.84251968504,-1.09108179776,-2.1250427316)) ;
#77=CARTESIAN_POINT('Control Point',(9.84251968504,-1.46551646668,-1.87304780363)) ;
#78=CARTESIAN_POINT('Control Point',(9.84251968504,-1.63686057961,-1.7253214355)) ;
#79=CARTESIAN_POINT('Control Point',(9.84251968504,-1.94123879402,-1.39206969675)) ;
#80=CARTESIAN_POINT('Control Point',(9.84251968504,-2.15923407815,-0.996872503869)) ;
#81=CARTESIAN_POINT('Control Point',(9.84251968504,-2.24418626325,-0.787194154379)) ;
#82=CARTESIAN_POINT('Control Point',(9.84251968504,-2.36274548806,-0.351709907952)) ;
#83=CARTESIAN_POINT('Control Point',(9.84251968504,-2.37616524411,0.0994249667068)) ;
#84=CARTESIAN_POINT('Control Point',(9.84251968504,-2.35596697579,0.324755644921)) ;
#85=CARTESIAN_POINT('Control Point',(9.84251968504,-2.26252782195,0.766311919872)) ;
#86=CARTESIAN_POINT('Control Point',(9.84251968504,-2.06840879661,1.17376813813)) ;
#87=CARTESIAN_POINT('Control Point',(9.84251968504,-1.94752010862,1.36499525319)) ;
#88=CARTESIAN_POINT('Control Point',(9.84251968504,-1.66271513224,1.71512229376)) ;
#89=CARTESIAN_POINT('Control Point',(9.84251968504,-1.30392128642,1.98892832149)) ;
#90=CARTESIAN_POINT('Control Point',(9.84251968504,-1.10903594755,2.1038264866)) ;
#91=CARTESIAN_POINT('Control Point',(9.84251968504,-0.773644605289,2.25102627235)) ;
#92=CARTESIAN_POINT('Control Point',(9.84251968504,-0.417863424998,2.33125524611)) ;
#93=CARTESIAN_POINT('Control Point',(9.84251968504,-0.279252735727,2.35188834254)) ;
#94=CARTESIAN_POINT('Control Point',(9.84251968504,-0.13962637204,2.36220472441)) ;
#95=CARTESIAN_POINT('Control Point',(9.84251968504,-6.99353086378E-017,2.36220472441)) ;
#102=CARTESIAN_POINT('Control Point',(9.84251968504,6.99353086378E-017,-2.32283464567)) ;
#103=CARTESIAN_POINT('Control Point',(9.84251968504,0.222221701648,-2.32283464567)) ;
#104=CARTESIAN_POINT('Control Point',(9.84251968504,0.444443381518,-2.29626017158)) ;
#105=CARTESIAN_POINT('Control Point',(9.84251968504,0.662433752074,-2.24310549306)) ;
#106=CARTESIAN_POINT('Control Point',(9.84251968504,1.08145702794,-2.08570705057)) ;
#107=CARTESIAN_POINT('Control Point',(9.84251968504,1.45155024288,-1.83394181894)) ;
#108=CARTESIAN_POINT('Control Point',(9.84251968504,1.62060532476,-1.68641012479)) ;
#109=CARTESIAN_POINT('Control Point',(9.84251968504,1.92014453389,-1.3537976839)) ;
#110=CARTESIAN_POINT('Control Point',(9.84251968504,2.13280768991,-0.95993336512)) ;
#111=CARTESIAN_POINT('Control Point',(9.84251968504,2.21497736854,-0.75114312373)) ;
#112=CARTESIAN_POINT('Control Point',(9.84251968504,2.32779083354,-0.317982766058)) ;
#113=CARTESIAN_POINT('Control Point',(9.84251968504,2.33528451022,0.129564509666)) ;
#114=CARTESIAN_POINT('Control Point',(9.84251968504,2.31212303024,0.352743288348)) ;
#115=CARTESIAN_POINT('Control Point',(9.84251968504,2.21288596493,0.789214111157)) ;
#116=CARTESIAN_POINT('Control Point',(9.84251968504,2.01352795366,1.18997726266)) ;
#117=CARTESIAN_POINT('Control Point',(9.84251968504,1.8902346891,1.37744457203)) ;
#118=CARTESIAN_POINT('Control Point',(9.84251968504,1.6012241984,1.71924526004)) ;
#119=CARTESIAN_POINT('Control Point',(9.84251968504,1.23976713173,1.98325947954)) ;
#120=CARTESIAN_POINT('Control Point',(9.84251968504,1.04401941803,2.09293195965)) ;
#121=CARTESIAN_POINT('Control Point',(9.84251968504,0.719592227257,2.22649617064)) ;
#122=CARTESIAN_POINT('Control Point',(9.84251968504,0.377649819695,2.29714653903)) ;
#123=CARTESIAN_POINT('Control Point',(9.84251968504,0.252282933592,2.31427200896)) ;
#124=CARTESIAN_POINT('Control Point',(9.84251968504,0.126141470303,2.32283464567)) ;
#125=CARTESIAN_POINT('Control Point',(9.84251968504,9.09159012291E-016,2.32283464567)) ;
#126=CARTESIAN_POINT('Vertex',(9.84251968504,1.42227903298E-016,-2.32283464567)) ;
#128=CARTESIAN_POINT('Vertex',(9.84251968504,-1.42227903298E-016,2.32283464567)) ;
#132=CARTESIAN_POINT('Control Point',(9.84251968504,6.99353086378E-017,2.32283464567)) ;
#133=CARTESIAN_POINT('Control Point',(9.84251968504,-0.222221701647,2.32283464567)) ;
#134=CARTESIAN_POINT('Control Point',(9.84251968504,-0.444443381516,2.29626017158)) ;
#135=CARTESIAN_POINT('Control Point',(9.84251968504,-0.662433752071,2.24310549306)) ;
#136=CARTESIAN_POINT('Control Point',(9.84251968504,-1.08145702795,2.08570705057)) ;
#137=CARTESIAN_POINT('Control Point',(9.84251968504,-1.45155024289,1.83394181893)) ;
#138=CARTESIAN_POINT('Control Point',(9.84251968504,-1.62060532475,1.6864101248)) ;
#139=CARTESIAN_POINT('Control Point',(9.84251968504,-1.92014453389,1.35379768391)) ;
#140=CARTESIAN_POINT('Control Point',(9.84251968504,-2.13280768991,0.959933365115)) ;
#141=CARTESIAN_POINT('Control Point',(9.84251968504,-2.21497736854,0.751143123731)) ;
#142=CARTESIAN_POINT('Control Point',(9.84251968504,-2.32779083354,0.317982766056)) ;
#143=CARTESIAN_POINT('Control Point',(9.84251968504,-2.33528451022,-0.129564509671)) ;
#144=CARTESIAN_POINT('Control Point',(9.84251968504,-2.31212303024,-0.352743288336)) ;
#145=CARTESIAN_POINT('Control Point',(9.84251968504,-2.21288596494,-0.789214111169)) ;
#146=CARTESIAN_POINT('Control Point',(9.84251968504,-2.01352795365,-1.18997726266)) ;
#147=CARTESIAN_POINT('Control Point',(9.84251968504,-1.89023468911,-1.37744457202)) ;
#148=CARTESIAN_POINT('Control Point',(9.84251968504,-1.60122419841,-1.71924526004)) ;
#149=CARTESIAN_POINT('Control Point',(9.84251968504,-1.23976713173,-1.98325947955)) ;
#150=CARTESIAN_POINT('Control Point',(9.84251968504,-1.04401941803,-2.09293195965)) ;
#151=CARTESIAN_POINT('Control Point',(9.84251968504,-0.719592227264,-2.22649617064)) ;
#152=CARTESIAN_POINT('Control Point',(9.84251968504,-0.3776498197,-2.29714653903)) ;
#153=CARTESIAN_POINT('Control Point',(9.84251968504,-0.252282933585,-2.31427200896)) ;
#154=CARTESIAN_POINT('Control Point',(9.84251968504,-0.1261414703,-2.32283464567)) ;
#155=CARTESIAN_POINT('Control Point',(9.84251968504,-3.49676543189E-017,-2.32283464567)) ;
#162=CARTESIAN_POINT('Axis2P3D Location',(9.84251968504,0.,0.)) ;
#167=CARTESIAN_POINT('Axis2P3D Location',(9.84251968504,0.,0.)) ;
#171=CARTESIAN_POINT('Vertex',(7.58911999662,0.,0.708661417222)) ;
#174=CARTESIAN_POINT('Axis2P3D Location',(9.84251968504,0.,0.)) ;
#178=CARTESIAN_POINT('Vertex',(7.58911999662,5.00355243553E-017,-0.708661417222)) ;
#182=CARTESIAN_POINT('Control Point',(7.58911999662,1.05777154315E-014,-0.708661417222)) ;
#183=CARTESIAN_POINT('Control Point',(7.58912031979,0.0483701371641,-0.708662444827)) ;
#184=CARTESIAN_POINT('Control Point',(7.58902525463,0.0967072442568,-0.70423323866)) ;
#185=CARTESIAN_POINT('Control Point',(7.58915468101,0.144861486555,-0.696356893455)) ;
#186=CARTESIAN_POINT('Control Point',(7.58919752428,0.215888561833,-0.677881363211)) ;
#187=CARTESIAN_POINT('Control Point',(7.58908502901,0.283828409013,-0.649924556502)) ;
#188=CARTESIAN_POINT('Control Point',(7.58900829402,0.305267888314,-0.639867700961)) ;
#189=CARTESIAN_POINT('Control Point',(7.58907301706,0.370263256456,-0.606973465743)) ;
#190=CARTESIAN_POINT('Control Point',(7.58929694447,0.431143884155,-0.566226497013)) ;
#191=CARTESIAN_POINT('Control Point',(7.5891120943,0.468387628974,-0.535077484647)) ;
#192=CARTESIAN_POINT('Control Point',(7.58907427623,0.514787265188,-0.48989677213)) ;
#193=CARTESIAN_POINT('Control Point',(7.58909019736,0.555854071572,-0.439868918456)) ;
#194=CARTESIAN_POINT('Control Point',(7.58910533778,0.566170075435,-0.426589576178)) ;
#195=CARTESIAN_POINT('Control Point',(7.58916783615,0.584895585838,-0.401169305723)) ;
#196=CARTESIAN_POINT('Control Point',(7.58921083206,0.602129315391,-0.374708382789)) ;
#197=CARTESIAN_POINT('Control Point',(7.58920884193,0.609851678107,-0.361992296623)) ;
#198=CARTESIAN_POINT('Control Point',(7.58914867835,0.628944720632,-0.328212861402)) ;
#199=CARTESIAN_POINT('Control Point',(7.58909573712,0.645721700725,-0.293184529776)) ;
#200=CARTESIAN_POINT('Control Point',(7.58909127949,0.655050778361,-0.271663419599)) ;
#201=CARTESIAN_POINT('Control Point',(7.58882420878,0.668134870106,-0.235414048426)) ;
#202=CARTESIAN_POINT('Control Point',(7.58880627128,0.679502556737,-0.198514858053)) ;
#203=CARTESIAN_POINT('Control Point',(7.588919635,0.683945594902,-0.18401467051)) ;
#204=CARTESIAN_POINT('Control Point',(7.58953457026,0.690836396105,-0.164654491565)) ;
#205=CARTESIAN_POINT('Control Point',(7.5899834355,0.696495162753,-0.145015140702)) ;
#206=CARTESIAN_POINT('Control Point',(7.59005042694,0.697668736232,-0.140338752721)) ;
#207=CARTESIAN_POINT('Control Point',(7.59023396226,0.702797360945,-0.117105735036)) ;
#208=CARTESIAN_POINT('Control Point',(7.58991676861,0.705396789274,-0.0933716523438)) ;
#209=CARTESIAN_POINT('Control Point',(7.58962445832,0.706670743917,-0.0748734022395)) ;
#210=CARTESIAN_POINT('Control Point',(7.58901775522,0.707327052918,-0.0448508643645)) ;
#211=CARTESIAN_POINT('Control Point',(7.58861345129,0.707034260822,-0.0147978239811)) ;
#212=CARTESIAN_POINT('Control Point',(7.58856360292,0.706980051883,-0.0084181637755)) ;
#213=CARTESIAN_POINT('Control Point',(7.58847071227,0.7066785983,0.00952718186268)) ;
#214=CARTESIAN_POINT('Control Point',(7.58852659088,0.706281600766,0.0274754401235)) ;
#215=CARTESIAN_POINT('Control Point',(7.58856654927,0.706129073822,0.0339179999379)) ;
#216=CARTESIAN_POINT('Control Point',(7.58868786201,0.705786631847,0.0472122319639)) ;
#217=CARTESIAN_POINT('Control Point',(7.58886019965,0.705295529559,0.0604867126499)) ;
#218=CARTESIAN_POINT('Control Point',(7.58897056294,0.704956877978,0.0680696590678)) ;
#219=CARTESIAN_POINT('Control Point',(7.58917820734,0.703519210426,0.0883038225993)) ;
#220=CARTESIAN_POINT('Control Point',(7.58921751717,0.700826175946,0.108417663439)) ;
#221=CARTESIAN_POINT('Control Point',(7.58921566681,0.698633207949,0.121719547753)) ;
#222=CARTESIAN_POINT('Control Point',(7.58918917579,0.693019597596,0.150977477192)) ;
#223=CARTESIAN_POINT('Control Point',(7.5891479703,0.68583235887,0.179891350804)) ;
#224=CARTESIAN_POINT('Control Point',(7.58913493382,0.681449013518,0.195692591057)) ;
#225=CARTESIAN_POINT('Control Point',(7.58909002919,0.657324448751,0.274049741386)) ;
#226=CARTESIAN_POINT('Control Point',(7.58912624479,0.622224173046,0.348686171307)) ;
#227=CARTESIAN_POINT('Control Point',(7.58912804673,0.587256135812,0.404785552081)) ;
#228=CARTESIAN_POINT('Control Point',(7.58911375105,0.515134699302,0.495103401828)) ;
#229=CARTESIAN_POINT('Control Point',(7.58911353119,0.427126750388,0.568662438024)) ;
#230=CARTESIAN_POINT('Control Point',(7.58912686572,0.386630317471,0.596962523605)) ;
#231=CARTESIAN_POINT('Control Point',(7.58913264868,0.28979938385,0.65274936712)) ;
#232=CARTESIAN_POINT('Control Point',(7.58910956058,0.184347719466,0.688458350126)) ;
#233=CARTESIAN_POINT('Control Point',(7.58909754336,0.123470702896,0.701862970515)) ;
#234=CARTESIAN_POINT('Control Point',(7.58912040922,0.0617556520791,0.708662729205)) ;
#235=CARTESIAN_POINT('Control Point',(7.58911999662,2.55263876528E-015,0.708661417222)) ;
#244=CARTESIAN_POINT('Axis2P3D Location',(9.84251968504,0.,0.)) ;
#250=CARTESIAN_POINT('Control Point',(7.58911999662,0.,0.708661417222)) ;
#251=CARTESIAN_POINT('Control Point',(7.58912043227,-0.0652059266361,0.708662802503)) ;
#252=CARTESIAN_POINT('Control Point',(7.58909280503,-0.13035689636,0.701075227979)) ;
#253=CARTESIAN_POINT('Control Point',(7.58911644158,-0.194571977507,0.68615624345)) ;
#254=CARTESIAN_POINT('Control Point',(7.58913429279,-0.318014942555,0.641776856544)) ;
#255=CARTESIAN_POINT('Control Point',(7.5891193664,-0.428830534171,0.569874580628)) ;
#256=CARTESIAN_POINT('Control Point',(7.58910861022,-0.479751744641,0.527732180143)) ;
#257=CARTESIAN_POINT('Control Point',(7.58912673793,-0.55948576314,0.444499665864)) ;
#258=CARTESIAN_POINT('Control Point',(7.58912067494,-0.620918104934,0.346833454183)) ;
#259=CARTESIAN_POINT('Control Point',(7.58911217848,-0.643522532026,0.302782071535)) ;
#260=CARTESIAN_POINT('Control Point',(7.58908881037,-0.668129923003,0.24232836516)) ;
#261=CARTESIAN_POINT('Control Point',(7.58914816355,-0.685869565335,0.179701495664)) ;
#262=CARTESIAN_POINT('Control Point',(7.58917777952,-0.689998843287,0.163538120134)) ;
#263=CARTESIAN_POINT('Control Point',(7.58921534773,-0.696386502437,0.13496060484)) ;
#264=CARTESIAN_POINT('Control Point',(7.58920569523,-0.701140968485,0.106087708818)) ;
#265=CARTESIAN_POINT('Control Point',(7.58920009462,-0.702994858055,0.0928746917701)) ;
#266=CARTESIAN_POINT('Control Point',(7.58903960681,-0.70485878046,0.0726979504457)) ;
#267=CARTESIAN_POINT('Control Point',(7.58877169712,-0.705659354263,0.0524282893174)) ;
#268=CARTESIAN_POINT('Control Point',(7.58868275601,-0.705786770961,0.0465628884422)) ;
#269=CARTESIAN_POINT('Control Point',(7.58843048408,-0.706394013498,0.0224403340695)) ;
#270=CARTESIAN_POINT('Control Point',(7.58847386089,-0.706914698105,-0.00170388444579)) ;
#271=CARTESIAN_POINT('Control Point',(7.58863819529,-0.707188729198,-0.0188653065317)) ;
#272=CARTESIAN_POINT('Control Point',(7.58916964163,-0.707366557927,-0.0526053515752)) ;
#273=CARTESIAN_POINT('Control Point',(7.58980875421,-0.705887494904,-0.0862408645683)) ;
#274=CARTESIAN_POINT('Control Point',(7.59011465293,-0.704486225185,-0.103866643996)) ;
#275=CARTESIAN_POINT('Control Point',(7.59023137841,-0.700810517099,-0.128380535158)) ;
#276=CARTESIAN_POINT('Control Point',(7.58983860148,-0.694502588806,-0.15234404849)) ;
#277=CARTESIAN_POINT('Control Point',(7.58965119466,-0.692096357848,-0.160316667054)) ;
#278=CARTESIAN_POINT('Control Point',(7.58934688207,-0.688475997343,-0.171222554398)) ;
#279=CARTESIAN_POINT('Control Point',(7.58909408134,-0.684784103266,-0.182126308864)) ;
#280=CARTESIAN_POINT('Control Point',(7.58903070607,-0.683770024709,-0.185127507586)) ;
#281=CARTESIAN_POINT('Control Point',(7.58874160697,-0.677870243883,-0.203155815524)) ;
#282=CARTESIAN_POINT('Control Point',(7.5888352677,-0.67252114303,-0.221378470665)) ;
#283=CARTESIAN_POINT('Control Point',(7.58889697155,-0.667596010154,-0.236400790093)) ;
#284=CARTESIAN_POINT('Control Point',(7.58898604889,-0.659583954874,-0.258688315676)) ;
#285=CARTESIAN_POINT('Control Point',(7.58906217601,-0.650619124588,-0.28058594199)) ;
#286=CARTESIAN_POINT('Control Point',(7.58908677226,-0.647526169149,-0.287844452332)) ;
#287=CARTESIAN_POINT('Control Point',(7.58914609224,-0.634772872001,-0.316356378707)) ;
#288=CARTESIAN_POINT('Control Point',(7.58916222483,-0.620334184103,-0.344086470003)) ;
#289=CARTESIAN_POINT('Control Point',(7.58923081327,-0.608858046749,-0.364430018015)) ;
#290=CARTESIAN_POINT('Control Point',(7.58919177783,-0.587673956467,-0.397685320644)) ;
#291=CARTESIAN_POINT('Control Point',(7.58908864925,-0.564086367619,-0.429247883782)) ;
#292=CARTESIAN_POINT('Control Point',(7.58908676931,-0.55393396303,-0.442261440324)) ;
#293=CARTESIAN_POINT('Control Point',(7.58908613127,-0.523250601337,-0.479376079683)) ;
#294=CARTESIAN_POINT('Control Point',(7.58910664537,-0.489601538697,-0.513781989183)) ;
#295=CARTESIAN_POINT('Control Point',(7.58915380791,-0.464881629267,-0.536444502221)) ;
#296=CARTESIAN_POINT('Control Point',(7.58922794114,-0.427775801057,-0.5667585912)) ;
#297=CARTESIAN_POINT('Control Point',(7.58915747548,-0.388166295785,-0.593358234192)) ;
#298=CARTESIAN_POINT('Control Point',(7.58911115039,-0.375167358096,-0.601487359042)) ;
#299=CARTESIAN_POINT('Control Point',(7.58901893565,-0.340215162144,-0.622139443417)) ;
#300=CARTESIAN_POINT('Control Point',(7.58904356562,-0.304102959877,-0.640541280971)) ;
#301=CARTESIAN_POINT('Control Point',(7.58909311788,-0.282011806201,-0.650738334216)) ;
#302=CARTESIAN_POINT('Control Point',(7.58918616432,-0.214374695197,-0.678291453873)) ;
#303=CARTESIAN_POINT('Control Point',(7.58915646815,-0.143729379554,-0.696561802107)) ;
#304=CARTESIAN_POINT('Control Point',(7.58902474759,-0.0960328269741,-0.704291353168)) ;
#305=CARTESIAN_POINT('Control Point',(7.58912031744,-0.0480188433977,-0.708662437367)) ;
#306=CARTESIAN_POINT('Control Point',(7.58911999662,6.99353086378E-017,-0.708661417222)) ;
#315=CARTESIAN_POINT('Axis2P3D Location',(9.84251968504,0.,0.)) ;
#320=CARTESIAN_POINT('Axis2P3D Location',(9.84251968504,0.,0.)) ;
#330=CARTESIAN_POINT('Axis2P3D Location',(9.84251968504,0.,0.)) ;
#340=CARTESIAN_POINT('Axis2P3D Location',(9.84251968504,0.,0.)) ;
#345=CARTESIAN_POINT('Line Origine',(9.84251968504,8.67831274362E-017,-0.708661417323)) ;
#349=CARTESIAN_POINT('Vertex',(7.08661417323,1.14342417639E-012,-0.708661417323)) ;
#352=CARTESIAN_POINT('Axis2P3D Location',(7.08661417323,0.,0.)) ;
#356=CARTESIAN_POINT('Vertex',(7.08661417323,-1.13627265508E-012,0.708661417323)) ;
#359=CARTESIAN_POINT('Line Origine',(9.84251968504,0.,0.708661417323)) ;
#371=CARTESIAN_POINT('Axis2P3D Location',(9.84251968504,0.,0.)) ;
#376=CARTESIAN_POINT('Axis2P3D Location',(7.08661417323,0.,0.)) ;
#388=CARTESIAN_POINT('Axis2P3D Location',(7.08661417323,0.,0.)) ;
#398=CARTESIAN_POINT('Control Point',(7.08661417323,6.99353086378E-017,0.669291338583)) ;
#399=CARTESIAN_POINT('Control Point',(7.08661417323,-0.0636185426474,0.669291338583)) ;
#400=CARTESIAN_POINT('Control Point',(7.08661417323,-0.127237068386,0.661732374815)) ;
#401=CARTESIAN_POINT('Control Point',(7.08661417323,-0.189659751712,0.646612862735)) ;
#402=CARTESIAN_POINT('Control Point',(7.08661417323,-0.309712678959,0.60183418619)) ;
#403=CARTESIAN_POINT('Control Point',(7.08661417323,-0.415930252402,0.530170758607)) ;
#404=CARTESIAN_POINT('Control Point',(7.08661417323,-0.46451618111,0.488163633481)) ;
#405=CARTESIAN_POINT('Control Point',(7.08661417323,-0.550773707746,0.393414099464)) ;
#406=CARTESIAN_POINT('Control Point',(7.08661417323,-0.612427365232,0.281090253795)) ;
#407=CARTESIAN_POINT('Control Point',(7.08661417323,-0.636406869257,0.221506914105)) ;
#408=CARTESIAN_POINT('Control Point',(7.08661417323,-0.669748950799,0.0977889259002)) ;
#409=CARTESIAN_POINT('Control Point',(7.08661417323,-0.673172397938,-0.0302973719595)) ;
#410=CARTESIAN_POINT('Control Point',(7.08661417323,-0.667230124522,-0.0942495443237)) ;
#411=CARTESIAN_POINT('Control Point',(7.08661417323,-0.640266077873,-0.219512368392)) ;
#412=CARTESIAN_POINT('Control Point',(7.08661417323,-0.584700465444,-0.334969210367)) ;
#413=CARTESIAN_POINT('Control Point',(7.08661417323,-0.550153592547,-0.389114427186)) ;
#414=CARTESIAN_POINT('Control Point',(7.08661417323,-0.468860329605,-0.488156037909)) ;
#415=CARTESIAN_POINT('Control Point',(7.08661417323,-0.366622459977,-0.565390991913)) ;
#416=CARTESIAN_POINT('Control Point',(7.08661417323,-0.311128727314,-0.597727299201)) ;
#417=CARTESIAN_POINT('Control Point',(7.08661417323,-0.216451761754,-0.638677808376)) ;
#418=CARTESIAN_POINT('Control Point',(7.08661417323,-0.116171818542,-0.660850036075)) ;
#419=CARTESIAN_POINT('Control Point',(7.08661417323,-0.0776290774769,-0.666477598589)) ;
#420=CARTESIAN_POINT('Control Point',(7.08661417323,-0.0388145345474,-0.669291338583)) ;
#421=CARTESIAN_POINT('Control Point',(7.08661417323,1.36398425013E-008,-0.669291338583)) ;
#422=CARTESIAN_POINT('Vertex',(7.08661417323,-1.08860209967E-012,0.669291338583)) ;
#424=CARTESIAN_POINT('Vertex',(7.08661417323,1.36132250475E-008,-0.669291338583)) ;
#428=CARTESIAN_POINT('Control Point',(7.08661417323,1.36398424663E-008,-0.669291338583)) ;
#429=CARTESIAN_POINT('Control Point',(7.08661417323,0.063618553467,-0.669291338583)) ;
#430=CARTESIAN_POINT('Control Point',(7.08661417323,0.127237077313,-0.661732374409)) ;
#431=CARTESIAN_POINT('Control Point',(7.08661417323,0.189659759019,-0.646612861898)) ;
#432=CARTESIAN_POINT('Control Point',(7.08661417323,0.309712684487,-0.601834184374)) ;
#433=CARTESIAN_POINT('Control Point',(7.08661417323,0.415930256792,-0.530170755916)) ;
#434=CARTESIAN_POINT('Control Point',(7.08661417323,0.464516185255,-0.488163630181)) ;
#435=CARTESIAN_POINT('Control Point',(7.08661417323,0.550773711223,-0.393414095005)) ;
#436=CARTESIAN_POINT('Control Point',(7.08661417323,0.612427367877,-0.281090248295)) ;
#437=CARTESIAN_POINT('Control Point',(7.08661417323,0.63640687126,-0.221506908493)) ;
#438=CARTESIAN_POINT('Control Point',(7.08661417323,0.669748951812,-0.0977889194619)) ;
#439=CARTESIAN_POINT('Control Point',(7.08661417323,0.673172397806,0.0302973789762)) ;
#440=CARTESIAN_POINT('Control Point',(7.08661417323,0.66723012385,0.0942495517026)) ;
#441=CARTESIAN_POINT('Control Point',(7.08661417323,0.640266075938,0.219512376562)) ;
#442=CARTESIAN_POINT('Control Point',(7.08661417323,0.584700462427,0.33496921896)) ;
#443=CARTESIAN_POINT('Control Point',(7.08661417323,0.550153588856,0.389114436085)) ;
#444=CARTESIAN_POINT('Control Point',(7.08661417323,0.468860325836,0.488156046245)) ;
#445=CARTESIAN_POINT('Control Point',(7.08661417323,0.366622457124,0.565390999326)) ;
#446=CARTESIAN_POINT('Control Point',(7.08661417323,0.311128726049,0.597727305587)) ;
#447=CARTESIAN_POINT('Control Point',(7.08661417323,0.216451765029,0.638677812168)) ;
#448=CARTESIAN_POINT('Control Point',(7.08661417323,0.116171825646,0.660850037585)) ;
#449=CARTESIAN_POINT('Control Point',(7.08661417323,0.0776290875726,0.666477599173)) ;
#450=CARTESIAN_POINT('Control Point',(7.08661417323,0.0388145469334,0.669291338583)) ;
#451=CARTESIAN_POINT('Control Point',(7.08661417323,0.,0.669291338583)) ;
#458=CARTESIAN_POINT('Axis2P3D Location',(9.88188976378,0.,0.)) ;
#463=CARTESIAN_POINT('Line Origine',(9.88188976378,8.19618443669E-017,-0.669291338583)) ;
#467=CARTESIAN_POINT('Vertex',(7.57711458567,1.06152655014E-014,-0.669291338489)) ;
#470=CARTESIAN_POINT('Line Origine',(9.88188976378,-1.63923686946E-016,0.669291338583)) ;
#474=CARTESIAN_POINT('Vertex',(7.57711458567,2.56692981687E-015,0.669291338489)) ;
#478=CARTESIAN_POINT('Control Point',(7.57711458533,1.65047328385E-014,0.669291338583)) ;
#479=CARTESIAN_POINT('Control Point',(7.57711175143,-0.135146116501,0.669291338583)) ;
#480=CARTESIAN_POINT('Control Point',(7.57709986642,-0.270485857714,0.635179749667)) ;
#481=CARTESIAN_POINT('Control Point',(7.57711020383,-0.394057245633,0.566783439858)) ;
#482=CARTESIAN_POINT('Control Point',(7.57711261087,-0.560087531221,0.408132021769)) ;
#483=CARTESIAN_POINT('Control Point',(7.57710789736,-0.647706479835,0.200270027801)) ;
#484=CARTESIAN_POINT('Control Point',(7.57711034922,-0.66837217718,0.113631667186)) ;
#485=CARTESIAN_POINT('Control Point',(7.57711386292,-0.679537180216,-0.0471475353186)) ;
#486=CARTESIAN_POINT('Control Point',(7.57711095602,-0.64365729629,-0.2035504391)) ;
#487=CARTESIAN_POINT('Control Point',(7.57710779185,-0.618141847389,-0.271349584061)) ;
#488=CARTESIAN_POINT('Control Point',(7.57710381147,-0.576790115561,-0.348053180267)) ;
#489=CARTESIAN_POINT('Control Point',(7.5771149814,-0.524156430929,-0.416579989025)) ;
#490=CARTESIAN_POINT('Control Point',(7.57711658507,-0.515357774055,-0.427332600472)) ;
#491=CARTESIAN_POINT('Control Point',(7.5771185259,-0.498735966991,-0.446721478194)) ;
#492=CARTESIAN_POINT('Control Point',(7.57711765988,-0.48402921327,-0.462415061897)) ;
#493=CARTESIAN_POINT('Control Point',(7.57711645669,-0.477153151188,-0.469476864805)) ;
#494=CARTESIAN_POINT('Control Point',(7.57711288656,-0.463815402115,-0.48274986009)) ;
#495=CARTESIAN_POINT('Control Point',(7.57710809001,-0.450019188257,-0.495546565003)) ;
#496=CARTESIAN_POINT('Control Point',(7.5771056604,-0.442687593677,-0.502135129547)) ;
#497=CARTESIAN_POINT('Control Point',(7.57710146298,-0.426417064586,-0.516203635328)) ;
#498=CARTESIAN_POINT('Control Point',(7.57709970686,-0.406376955688,-0.532038162569)) ;
#499=CARTESIAN_POINT('Control Point',(7.57709971854,-0.395279961871,-0.540400464565)) ;
#500=CARTESIAN_POINT('Control Point',(7.57710240385,-0.365737172016,-0.561267143997)) ;
#501=CARTESIAN_POINT('Control Point',(7.57711125139,-0.334843134973,-0.580100605762)) ;
#502=CARTESIAN_POINT('Control Point',(7.57711496337,-0.317801755993,-0.589460762301)) ;
#503=CARTESIAN_POINT('Control Point',(7.57711798181,-0.284945779318,-0.606307025336)) ;
#504=CARTESIAN_POINT('Control Point',(7.57711390022,-0.251010256667,-0.620850796936)) ;
#505=CARTESIAN_POINT('Control Point',(7.57711051216,-0.232930750098,-0.627996580649)) ;
#506=CARTESIAN_POINT('Control Point',(7.57710148639,-0.175802876687,-0.647642409076)) ;
#507=CARTESIAN_POINT('Control Point',(7.57710022622,-0.116713668949,-0.660771195448)) ;
#508=CARTESIAN_POINT('Control Point',(7.5771058309,-0.0779900740081,-0.666450822755)) ;
#509=CARTESIAN_POINT('Control Point',(7.57711376759,-0.038998796293,-0.669291338583)) ;
#510=CARTESIAN_POINT('Control Point',(7.57711458535,9.98709062699E-017,-0.669291338583)) ;
#519=CARTESIAN_POINT('Axis2P3D Location',(9.88188976378,0.,0.)) ;
#525=CARTESIAN_POINT('Control Point',(7.57711458533,9.31887987599E-015,-0.669291338583)) ;
#526=CARTESIAN_POINT('Control Point',(7.57711393515,0.0310067083756,-0.669291338583)) ;
#527=CARTESIAN_POINT('Control Point',(7.57710887966,0.0620087198337,-0.667495752885)) ;
#528=CARTESIAN_POINT('Control Point',(7.57710412563,0.0938321756783,-0.663873342736)) ;
#529=CARTESIAN_POINT('Control Point',(7.57710055578,0.157797234655,-0.652444542649)) ;
#530=CARTESIAN_POINT('Control Point',(7.57710783499,0.219912992616,-0.633380142035)) ;
#531=CARTESIAN_POINT('Control Point',(7.57711393004,0.249872231255,-0.622060458985)) ;
#532=CARTESIAN_POINT('Control Point',(7.57712307428,0.298228028641,-0.600655261413)) ;
#533=CARTESIAN_POINT('Control Point',(7.57710983549,0.344214639547,-0.574613637495)) ;
#534=CARTESIAN_POINT('Control Point',(7.57710469562,0.360629660237,-0.564263487628)) ;
#535=CARTESIAN_POINT('Control Point',(7.57709831493,0.390878629717,-0.544050952085)) ;
#536=CARTESIAN_POINT('Control Point',(7.57710033556,0.419686962426,-0.521833201085)) ;
#537=CARTESIAN_POINT('Control Point',(7.57710359701,0.434734079127,-0.509579074587)) ;
#538=CARTESIAN_POINT('Control Point',(7.5771111538,0.464034757615,-0.483317684843)) ;
#539=CARTESIAN_POINT('Control Point',(7.57711603214,0.491321408528,-0.454988545399)) ;
#540=CARTESIAN_POINT('Control Point',(7.57711598675,0.508710684378,-0.436415558992)) ;
#541=CARTESIAN_POINT('Control Point',(7.57711326077,0.545491839651,-0.390569927672)) ;
#542=CARTESIAN_POINT('Control Point',(7.57710909121,0.577043013883,-0.340978744272)) ;
#543=CARTESIAN_POINT('Control Point',(7.57710760223,0.589023451231,-0.318532146891)) ;
#544=CARTESIAN_POINT('Control Point',(7.57710790616,0.609519916035,-0.278784542293)) ;
#545=CARTESIAN_POINT('Control Point',(7.57710914344,0.626645049615,-0.237438424546)) ;
#546=CARTESIAN_POINT('Control Point',(7.57710989696,0.636389951694,-0.210471368056)) ;
#547=CARTESIAN_POINT('Control Point',(7.57711110345,0.653772307458,-0.152014445871)) ;
#548=CARTESIAN_POINT('Control Point',(7.57711153187,0.665129565747,-0.0854986466014)) ;
#549=CARTESIAN_POINT('Control Point',(7.57711150732,0.668834089632,-0.050455217274)) ;
#550=CARTESIAN_POINT('Control Point',(7.57711110642,0.671352103961,0.021366328713)) ;
#551=CARTESIAN_POINT('Control Point',(7.57711033881,0.664272262549,0.0928822971836)) ;
#552=CARTESIAN_POINT('Control Point',(7.57710994757,0.65834694373,0.127619131049)) ;
#553=CARTESIAN_POINT('Control Point',(7.57710936139,0.642783226975,0.193277774966)) ;
#554=CARTESIAN_POINT('Control Point',(7.57710933288,0.621719287216,0.250510391856)) ;
#555=CARTESIAN_POINT('Control Point',(7.5771094993,0.610279608913,0.276802767674)) ;
#556=CARTESIAN_POINT('Control Point',(7.57711022842,0.583294236545,0.331778918924)) ;
#557=CARTESIAN_POINT('Control Point',(7.57711087876,0.550199138606,0.383365230859)) ;
#558=CARTESIAN_POINT('Control Point',(7.57711098496,0.529656929315,0.411447576241)) ;
#559=CARTESIAN_POINT('Control Point',(7.57711067145,0.48383751663,0.465977923484)) ;
#560=CARTESIAN_POINT('Control Point',(7.57710963113,0.429094904203,0.515653827491)) ;
#561=CARTESIAN_POINT('Control Point',(7.57710901053,0.399611205997,0.538876453067)) ;
#562=CARTESIAN_POINT('Control Point',(7.57710760384,0.320096553698,0.592745581043)) ;
#563=CARTESIAN_POINT('Control Point',(7.57710747204,0.23338923683,0.63120940472)) ;
#564=CARTESIAN_POINT('Control Point',(7.57710833518,0.180011189304,0.647892392346)) ;
#565=CARTESIAN_POINT('Control Point',(7.57711092948,0.11319722264,0.662239523472)) ;
#566=CARTESIAN_POINT('Control Point',(7.57711333567,0.0454274815554,0.66800580143)) ;
#567=CARTESIAN_POINT('Control Point',(7.5771138365,0.03029372132,0.668862917989)) ;
#568=CARTESIAN_POINT('Control Point',(7.57711426774,0.0151456447273,0.669291338583)) ;
#569=CARTESIAN_POINT('Control Point',(7.57711458533,6.39033882678E-015,0.669291338583)) ;
#578=CARTESIAN_POINT('Axis2P3D Location',(9.84251968504,0.,0.)) ;
#37=DIRECTION('Axis2P3D Direction',(-0.0393700787402,-0.,-0.)) ;
#38=DIRECTION('Axis2P3D XDirection',(0.,0.,-0.0393700787402)) ;
#163=DIRECTION('Axis2P3D Direction',(0.,0.,0.0393700787402)) ;
#164=DIRECTION('Axis2P3D XDirection',(0.,0.0393700787402,0.)) ;
#168=DIRECTION('Axis2P3D Direction',(4.46105425012E-017,0.0393700787402,-0.)) ;
#175=DIRECTION('Axis2P3D Direction',(4.46105425012E-017,0.0393700787402,-0.)) ;
#245=DIRECTION('Axis2P3D Direction',(0.,0.,0.0393700787402)) ;
#246=DIRECTION('Axis2P3D XDirection',(-0.0393700787402,0.,0.)) ;
#316=DIRECTION('Axis2P3D Direction',(0.,0.,0.0393700787402)) ;
#317=DIRECTION('Axis2P3D XDirection',(0.,0.0393700787402,0.)) ;
#321=DIRECTION('Axis2P3D Direction',(9.64288818226E-018,0.0393700787402,-0.)) ;
#331=DIRECTION('Axis2P3D Direction',(0.,0.,0.0393700787402)) ;
#332=DIRECTION('Axis2P3D XDirection',(-0.0393700787402,0.,0.)) ;
#341=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#342=DIRECTION('Axis2P3D XDirection',(0.,0.,0.0393700787402)) ;
#346=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#353=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#360=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#372=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#373=DIRECTION('Axis2P3D XDirection',(0.,4.82144409113E-018,-0.0393700787402)) ;
#377=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#389=DIRECTION('Axis2P3D Direction',(-0.0393700787402,-0.,-0.)) ;
#390=DIRECTION('Axis2P3D XDirection',(0.,0.,-0.0393700787402)) ;
#459=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#460=DIRECTION('Axis2P3D XDirection',(0.,4.82144419632E-018,-0.0393700787402)) ;
#464=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#471=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#520=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#521=DIRECTION('Axis2P3D XDirection',(0.,-1.05192548518E-025,0.0393700787402)) ;
#579=DIRECTION('Axis2P3D Direction',(0.,0.0393700787402,-0.)) ;
#34=PRESENTATION_LAYER_ASSIGNMENT('0',' ',(#25)) ;
#8=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#5)) ;
#7=PRODUCT_CATEGORY('part','specification') ;
#33=STYLED_ITEM(' ',(#32),#25) ;
#32=PRESENTATION_STYLE_ASSIGNMENT((#31)) ;
#31=SURFACE_STYLE_USAGE(.BOTH.,#30) ;
#30=SURFACE_SIDE_STYLE(' ',(#29)) ;
#29=SURFACE_STYLE_FILL_AREA(#28) ;
#28=FILL_AREA_STYLE(' ',(#27)) ;
#27=FILL_AREA_STYLE_COLOUR(' ',#26) ;
#347=VECTOR('Line Direction',#346,0.0393700787402) ;
#361=VECTOR('Line Direction',#360,0.0393700787402) ;
#465=VECTOR('Line Direction',#464,0.0393700787402) ;
#472=VECTOR('Line Direction',#471,0.0393700787402) ;
#19=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#18,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#594=SHAPE_REPRESENTATION_RELATIONSHIP(' ',' ',#23,#593) ;
#98=ORIENTED_EDGE('',*,*,#70,.F.) ;
#99=ORIENTED_EDGE('',*,*,#96,.F.) ;
#158=ORIENTED_EDGE('',*,*,#130,.F.) ;
#159=ORIENTED_EDGE('',*,*,#156,.F.) ;
#238=ORIENTED_EDGE('',*,*,#173,.F.) ;
#239=ORIENTED_EDGE('',*,*,#70,.T.) ;
#240=ORIENTED_EDGE('',*,*,#180,.F.) ;
#241=ORIENTED_EDGE('',*,*,#236,.T.) ;
#309=ORIENTED_EDGE('',*,*,#180,.T.) ;
#310=ORIENTED_EDGE('',*,*,#96,.T.) ;
#311=ORIENTED_EDGE('',*,*,#173,.T.) ;
#312=ORIENTED_EDGE('',*,*,#307,.T.) ;
#326=ORIENTED_EDGE('',*,*,#324,.T.) ;
#327=ORIENTED_EDGE('',*,*,#130,.T.) ;
#336=ORIENTED_EDGE('',*,*,#156,.T.) ;
#337=ORIENTED_EDGE('',*,*,#324,.F.) ;
#365=ORIENTED_EDGE('',*,*,#351,.T.) ;
#366=ORIENTED_EDGE('',*,*,#358,.T.) ;
#367=ORIENTED_EDGE('',*,*,#363,.F.) ;
#368=ORIENTED_EDGE('',*,*,#236,.F.) ;
#382=ORIENTED_EDGE('',*,*,#363,.T.) ;
#383=ORIENTED_EDGE('',*,*,#380,.T.) ;
#384=ORIENTED_EDGE('',*,*,#351,.F.) ;
#385=ORIENTED_EDGE('',*,*,#307,.F.) ;
#394=ORIENTED_EDGE('',*,*,#358,.F.) ;
#395=ORIENTED_EDGE('',*,*,#380,.F.) ;
#454=ORIENTED_EDGE('',*,*,#426,.T.) ;
#455=ORIENTED_EDGE('',*,*,#452,.T.) ;
#513=ORIENTED_EDGE('',*,*,#469,.T.) ;
#514=ORIENTED_EDGE('',*,*,#426,.F.) ;
#515=ORIENTED_EDGE('',*,*,#476,.F.) ;
#516=ORIENTED_EDGE('',*,*,#511,.T.) ;
#572=ORIENTED_EDGE('',*,*,#476,.T.) ;
#573=ORIENTED_EDGE('',*,*,#452,.F.) ;
#574=ORIENTED_EDGE('',*,*,#469,.F.) ;
#575=ORIENTED_EDGE('',*,*,#570,.T.) ;
#584=ORIENTED_EDGE('',*,*,#582,.T.) ;
#585=ORIENTED_EDGE('',*,*,#511,.F.) ;
#589=ORIENTED_EDGE('',*,*,#582,.F.) ;
#590=ORIENTED_EDGE('',*,*,#570,.F.) ;
#160=FACE_BOUND('',#157,.T.) ;
#456=FACE_BOUND('',#453,.T.) ;
#35=CLOSED_SHELL('Closed Shell',(#161,#243,#314,#329,#339,#370,#387,#457,#518,#577,#587,#592)) ;
#593=ADVANCED_BREP_SHAPE_REPRESENTATION('NONE',(#25),#20) ;
#161=ADVANCED_FACE('*VOL5',(#100,#160),#40,.F.) ;
#243=ADVANCED_FACE('*VOL5',(#242),#166,.T.) ;
#314=ADVANCED_FACE('*VOL5',(#313),#248,.T.) ;
#329=ADVANCED_FACE('*VOL5',(#328),#319,.F.) ;
#339=ADVANCED_FACE('*VOL5',(#338),#334,.F.) ;
#370=ADVANCED_FACE('*VOL5',(#369),#344,.T.) ;
#387=ADVANCED_FACE('*VOL5',(#386),#375,.T.) ;
#457=ADVANCED_FACE('*VOL5',(#396,#456),#392,.T.) ;
#518=ADVANCED_FACE('*VOL5',(#517),#462,.F.) ;
#577=ADVANCED_FACE('*VOL5',(#576),#523,.F.) ;
#587=ADVANCED_FACE('*VOL5',(#586),#248,.T.) ;
#592=ADVANCED_FACE('*VOL5',(#591),#166,.T.) ;
#4=APPLICATION_PROTOCOL_DEFINITION('international standard','automotive_design',2001,#1) ;
#41=B_SPLINE_CURVE_WITH_KNOTS('',5,(#42,#43,#44,#45,#46,#47,#48,#49,#50,#51,#52,#53,#54,#55,#56,#57,#58,#59,#60,#61,#62,#63,#64,#65),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,6),(0.,42.035104959,84.0702098792,126.105314689,168.140419612,210.175524564,252.210629402,278.401106958),.UNSPECIFIED.) ;
#71=B_SPLINE_CURVE_WITH_KNOTS('',5,(#72,#73,#74,#75,#76,#77,#78,#79,#80,#81,#82,#83,#84,#85,#86,#87,#88,#89,#90,#91,#92,#93,#94,#95),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,6),(0.,42.0351049577,84.0702098781,126.105314689,168.140419612,210.175524564,252.210629404,278.401106962),.UNSPECIFIED.) ;
#101=B_SPLINE_CURVE_WITH_KNOTS('',5,(#102,#103,#104,#105,#106,#107,#108,#109,#110,#111,#112,#113,#114,#115,#116,#117,#118,#119,#120,#121,#122,#123,#124,#125),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,6),(0.,41.683332487,83.3666649344,125.049997229,166.733329645,208.416662126,250.099994486,273.761035726),.UNSPECIFIED.) ;
#131=B_SPLINE_CURVE_WITH_KNOTS('',5,(#132,#133,#134,#135,#136,#137,#138,#139,#140,#141,#142,#143,#144,#145,#146,#147,#148,#149,#150,#151,#152,#153,#154,#155),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,6),(0.,41.6833324868,83.3666649358,125.049997231,166.733329647,208.416662129,250.099994489,273.761035728),.UNSPECIFIED.) ;
#181=B_SPLINE_CURVE_WITH_KNOTS('',5,(#182,#183,#184,#185,#186,#187,#188,#189,#190,#191,#192,#193,#194,#195,#196,#197,#198,#199,#200,#201,#202,#203,#204,#205,#206,#207,#208,#209,#210,#211,#212,#213,#214,#215,#216,#217,#218,#219,#220,#221,#222,#223,#224,#225,#226,#227,#228,#229,#230,#231,#232,#233,#234,#235),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6),(0.,8.92404416103,13.4504942423,22.2178047639,25.1348003541,27.9117880111,32.1270308905,34.8519057518,35.8239312,39.1594494085,41.2278827194,42.3862831734,43.6192000888,46.0431198153,48.9828124826,60.799864496,69.7310449034,81.1227904071),.UNSPECIFIED.) ;
#249=B_SPLINE_CURVE_WITH_KNOTS('',5,(#250,#251,#252,#253,#254,#255,#256,#257,#258,#259,#260,#261,#262,#263,#264,#265,#266,#267,#268,#269,#270,#271,#272,#273,#274,#275,#276,#277,#278,#279,#280,#281,#282,#283,#284,#285,#286,#287,#288,#289,#290,#291,#292,#293,#294,#295,#296,#297,#298,#299,#300,#301,#302,#303,#304,#305,#306),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6),(0.,12.0103509143,23.8807319898,32.710848656,35.5779411707,37.9735869024,39.2247055269,42.3066795838,45.2819534759,46.7815702989,47.3505720074,50.1883149291,51.6072698476,55.8076360649,58.7019334065,64.4881239758,67.3703492212,71.8755620573,80.7216432274),.UNSPECIFIED.) ;
#397=B_SPLINE_CURVE_WITH_KNOTS('',5,(#398,#399,#400,#401,#402,#403,#404,#405,#406,#407,#408,#409,#410,#411,#412,#413,#414,#415,#416,#417,#418,#419,#420,#421),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,6),(0.,11.9332758477,23.8665517092,35.7998275256,47.7331033287,59.6663790579,71.5996549797,78.8803110434),.UNSPECIFIED.) ;
#427=B_SPLINE_CURVE_WITH_KNOTS('',5,(#428,#429,#430,#431,#432,#433,#434,#435,#436,#437,#438,#439,#440,#441,#442,#443,#444,#445,#446,#447,#448,#449,#450,#451),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,6),(0.,11.933275779,23.8665517042,35.7998275574,47.7331034243,59.6663792925,71.5996551435,78.8803106912),.UNSPECIFIED.) ;
#477=B_SPLINE_CURVE_WITH_KNOTS('',5,(#478,#479,#480,#481,#482,#483,#484,#485,#486,#487,#488,#489,#490,#491,#492,#493,#494,#495,#496,#497,#498,#499,#500,#501,#502,#503,#504,#505,#506,#507,#508,#509,#510),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,3,3,3,6),(0.,24.5153690569,40.3823520261,53.366177704,56.0471344966,58.7280912891,61.4090480817,64.0900048743,67.965564805,71.8411247358,78.9142360119),.UNSPECIFIED.) ;
#524=B_SPLINE_CURVE_WITH_KNOTS('',5,(#525,#526,#527,#528,#529,#530,#531,#532,#533,#534,#535,#536,#537,#538,#539,#540,#541,#542,#543,#544,#545,#546,#547,#548,#549,#550,#551,#552,#553,#554,#555,#556,#557,#558,#559,#560,#561,#562,#563,#564,#565,#566,#567,#568,#569),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,3,3,3,3,3,3,3,6),(0.,5.62360451119,11.2472090224,15.2011351125,19.1550612026,22.3317420757,25.5084229488,30.4387770922,35.3691312356,40.2994853791,45.2298395225,51.3939680171,57.5580965116,67.1389499949,69.8863535008),.UNSPECIFIED.) ;
#25=MANIFOLD_SOLID_BREP('*VOL5',#35) ;
#170=CIRCLE('generated circle',#169,2.36220472441) ;
#177=CIRCLE('generated circle',#176,2.36220472441) ;
#323=CIRCLE('generated circle',#322,2.32283464567) ;
#355=CIRCLE('generated circle',#354,0.708661417323) ;
#379=CIRCLE('generated circle',#378,0.708661417323) ;
#581=CIRCLE('generated circle',#580,2.36220472441) ;
#344=CYLINDRICAL_SURFACE('generated cylinder',#343,0.708661417323) ;
#375=CYLINDRICAL_SURFACE('generated cylinder',#374,0.708661417323) ;
#462=CYLINDRICAL_SURFACE('generated cylinder',#461,0.669291338583) ;
#523=CYLINDRICAL_SURFACE('generated cylinder',#522,0.669291338583) ;
#26=DRAUGHTING_PRE_DEFINED_COLOUR('yellow') ;
#70=EDGE_CURVE('',#67,#69,#41,.T.) ;
#96=EDGE_CURVE('',#69,#67,#71,.T.) ;
#130=EDGE_CURVE('',#127,#129,#101,.T.) ;
#156=EDGE_CURVE('',#129,#127,#131,.T.) ;
#173=EDGE_CURVE('',#67,#172,#170,.F.) ;
#180=EDGE_CURVE('',#179,#69,#177,.F.) ;
#236=EDGE_CURVE('',#179,#172,#181,.T.) ;
#307=EDGE_CURVE('',#172,#179,#249,.T.) ;
#324=EDGE_CURVE('',#129,#127,#323,.F.) ;
#351=EDGE_CURVE('',#179,#350,#348,.T.) ;
#358=EDGE_CURVE('',#350,#357,#355,.F.) ;
#363=EDGE_CURVE('',#172,#357,#362,.T.) ;
#380=EDGE_CURVE('',#357,#350,#379,.F.) ;
#426=EDGE_CURVE('',#423,#425,#397,.T.) ;
#452=EDGE_CURVE('',#425,#423,#427,.T.) ;
#469=EDGE_CURVE('',#468,#425,#466,.T.) ;
#476=EDGE_CURVE('',#475,#423,#473,.T.) ;
#511=EDGE_CURVE('',#475,#468,#477,.T.) ;
#570=EDGE_CURVE('',#468,#475,#524,.T.) ;
#582=EDGE_CURVE('',#475,#468,#581,.F.) ;
#97=EDGE_LOOP('',(#98,#99)) ;
#157=EDGE_LOOP('',(#158,#159)) ;
#237=EDGE_LOOP('',(#238,#239,#240,#241)) ;
#308=EDGE_LOOP('',(#309,#310,#311,#312)) ;
#325=EDGE_LOOP('',(#326,#327)) ;
#335=EDGE_LOOP('',(#336,#337)) ;
#364=EDGE_LOOP('',(#365,#366,#367,#368)) ;
#381=EDGE_LOOP('',(#382,#383,#384,#385)) ;
#393=EDGE_LOOP('',(#394,#395)) ;
#453=EDGE_LOOP('',(#454,#455)) ;
#512=EDGE_LOOP('',(#513,#514,#515,#516)) ;
#571=EDGE_LOOP('',(#572,#573,#574,#575)) ;
#583=EDGE_LOOP('',(#584,#585)) ;
#588=EDGE_LOOP('',(#589,#590)) ;
#100=FACE_OUTER_BOUND('',#97,.T.) ;
#242=FACE_OUTER_BOUND('',#237,.T.) ;
#313=FACE_OUTER_BOUND('',#308,.T.) ;
#328=FACE_OUTER_BOUND('',#325,.T.) ;
#338=FACE_OUTER_BOUND('',#335,.T.) ;
#369=FACE_OUTER_BOUND('',#364,.T.) ;
#386=FACE_OUTER_BOUND('',#381,.T.) ;
#396=FACE_OUTER_BOUND('',#393,.T.) ;
#517=FACE_OUTER_BOUND('',#512,.T.) ;
#576=FACE_OUTER_BOUND('',#571,.T.) ;
#586=FACE_OUTER_BOUND('',#583,.T.) ;
#591=FACE_OUTER_BOUND('',#588,.T.) ;
#16=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#12) ;
#348=LINE('Line',#345,#347) ;
#362=LINE('Line',#359,#361) ;
#466=LINE('Line',#463,#465) ;
#473=LINE('Line',#470,#472) ;
#40=PLANE('Plane',#39) ;
#392=PLANE('Plane',#391) ;
#14=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.0174532925199),#13) ;
#9=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#7,#8) ;
#6=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#5,.NOT_KNOWN.) ;
#24=SHAPE_DEFINITION_REPRESENTATION(#11,#23) ;
#166=SPHERICAL_SURFACE('',#165,2.36220472441) ;
#248=SPHERICAL_SURFACE('',#247,2.36220472441) ;
#319=SPHERICAL_SURFACE('',#318,2.32283464567) ;
#334=SPHERICAL_SURFACE('',#333,2.32283464567) ;
#67=VERTEX_POINT('',#66) ;
#69=VERTEX_POINT('',#68) ;
#127=VERTEX_POINT('',#126) ;
#129=VERTEX_POINT('',#128) ;
#172=VERTEX_POINT('',#171) ;
#179=VERTEX_POINT('',#178) ;
#350=VERTEX_POINT('',#349) ;
#357=VERTEX_POINT('',#356) ;
#423=VERTEX_POINT('',#422) ;
#425=VERTEX_POINT('',#424) ;
#468=VERTEX_POINT('',#467) ;
#475=VERTEX_POINT('',#474) ;
#12=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)) ;
#13=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)) ;
#15=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()) ;
#18=(CONVERSION_BASED_UNIT('INCH',#16)LENGTH_UNIT()NAMED_UNIT(#17)) ;
#20=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#19))GLOBAL_UNIT_ASSIGNED_CONTEXT((#18,#13,#15))REPRESENTATION_CONTEXT(' ',' ')) ;
ENDSEC;
END-ISO-10303-21;
+25
View File
@@ -0,0 +1,25 @@
STEPcheck v 2.0 (February 21, 2000) for stepcheck_stage_1_2 schema
Copyright ERIM (July 1997)
Checking STEP file: HEAD_BACK.stp
Reading Data from HEAD_BACK.stp...
HEADER read:
FIRST PASS complete: 595 instances created.
0 ERRORS 0 WARNINGS
SECOND PASS complete: 595 instances valid.
0 ERRORS 0 WARNINGS
Finished reading file.
total violations = 0
total parse errors = 0
total parse warnings = 0
elapsed time : 1.271 seconds
+227
View File
@@ -0,0 +1,227 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('CATIA V5 STEP'),'2;1');
FILE_NAME('E:\\Public\\Archive_PDES\\TR22\\NativeFiles\\s1\\HEAD_FRONT.stp','2008-08-18T12:41:45+00:00',('none'),('none'),'CATIA Version 5 Release 19 SP 1 (IN-PROTO)','CATIA V5 STEP AP214','none');
FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
ENDSEC;
/* file written by CATIA V5R19 */
DATA;
#5=PRODUCT('HEAD_FRONT','HEAD_FRONT',' ',(#2)) ;
#2=PRODUCT_CONTEXT(' ',#1,'mechanical') ;
#1=APPLICATION_CONTEXT('automotive design') ;
#10=PRODUCT_DEFINITION(' ',' ',#6,#3) ;
#3=PRODUCT_DEFINITION_CONTEXT('part definition',#1,' ') ;
#11=PRODUCT_DEFINITION_SHAPE(' ',' ',#10) ;
#17=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#214=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION(' ',(#33),#20) ;
#23=SHAPE_REPRESENTATION(' ',(#22),#20) ;
#22=AXIS2_PLACEMENT_3D(' ',#21,$,$) ;
#39=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#36,#37,#38) ;
#165=AXIS2_PLACEMENT_3D('Sphere Axis2P3D',#162,#163,#164) ;
#169=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#167,#168,$) ;
#180=AXIS2_PLACEMENT_3D('Sphere Axis2P3D',#177,#178,#179) ;
#190=AXIS2_PLACEMENT_3D('Sphere Axis2P3D',#187,#188,#189) ;
#194=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#192,#193,$) ;
#205=AXIS2_PLACEMENT_3D('Sphere Axis2P3D',#202,#203,#204) ;
#21=CARTESIAN_POINT(' ',(0.,0.,0.)) ;
#36=CARTESIAN_POINT('Axis2P3D Location',(9.84251968504,0.,0.)) ;
#42=CARTESIAN_POINT('Control Point',(9.84251968504,-2.09805925913E-016,-2.36220472441)) ;
#43=CARTESIAN_POINT('Control Point',(9.84251968504,-0.224097066988,-2.36220472441)) ;
#44=CARTESIAN_POINT('Control Point',(9.84251968504,-0.44819411246,-2.33563024001)) ;
#45=CARTESIAN_POINT('Control Point',(9.84251968504,-0.668095186876,-2.28247572507)) ;
#46=CARTESIAN_POINT('Control Point',(9.84251968504,-1.09108179776,-2.1250427316)) ;
#47=CARTESIAN_POINT('Control Point',(9.84251968504,-1.46551646668,-1.87304780363)) ;
#48=CARTESIAN_POINT('Control Point',(9.84251968504,-1.63686057961,-1.7253214355)) ;
#49=CARTESIAN_POINT('Control Point',(9.84251968504,-1.94123879402,-1.39206969675)) ;
#50=CARTESIAN_POINT('Control Point',(9.84251968504,-2.15923407815,-0.996872503869)) ;
#51=CARTESIAN_POINT('Control Point',(9.84251968504,-2.24418626325,-0.787194154379)) ;
#52=CARTESIAN_POINT('Control Point',(9.84251968504,-2.36274548806,-0.351709907952)) ;
#53=CARTESIAN_POINT('Control Point',(9.84251968504,-2.37616524411,0.0994249667068)) ;
#54=CARTESIAN_POINT('Control Point',(9.84251968504,-2.35596697579,0.324755644921)) ;
#55=CARTESIAN_POINT('Control Point',(9.84251968504,-2.26252782195,0.766311919872)) ;
#56=CARTESIAN_POINT('Control Point',(9.84251968504,-2.06840879661,1.17376813813)) ;
#57=CARTESIAN_POINT('Control Point',(9.84251968504,-1.94752010862,1.36499525319)) ;
#58=CARTESIAN_POINT('Control Point',(9.84251968504,-1.66271513224,1.71512229376)) ;
#59=CARTESIAN_POINT('Control Point',(9.84251968504,-1.30392128642,1.98892832149)) ;
#60=CARTESIAN_POINT('Control Point',(9.84251968504,-1.10903594755,2.1038264866)) ;
#61=CARTESIAN_POINT('Control Point',(9.84251968504,-0.773644605289,2.25102627235)) ;
#62=CARTESIAN_POINT('Control Point',(9.84251968504,-0.417863424998,2.33125524611)) ;
#63=CARTESIAN_POINT('Control Point',(9.84251968504,-0.279252735727,2.35188834254)) ;
#64=CARTESIAN_POINT('Control Point',(9.84251968504,-0.13962637204,2.36220472441)) ;
#65=CARTESIAN_POINT('Control Point',(9.84251968504,-6.99353086378E-017,2.36220472441)) ;
#66=CARTESIAN_POINT('Vertex',(9.84251968504,-6.69153360511E-016,-2.36220472441)) ;
#68=CARTESIAN_POINT('Vertex',(9.84251968504,1.71818299008E-015,2.36220472441)) ;
#72=CARTESIAN_POINT('Control Point',(9.84251968504,-6.99353086378E-017,2.36220472441)) ;
#73=CARTESIAN_POINT('Control Point',(9.84251968504,0.224097066996,2.36220472441)) ;
#74=CARTESIAN_POINT('Control Point',(9.84251968504,0.448194112474,2.33563024)) ;
#75=CARTESIAN_POINT('Control Point',(9.84251968504,0.668095186862,2.28247572507)) ;
#76=CARTESIAN_POINT('Control Point',(9.84251968504,1.09108179775,2.1250427316)) ;
#77=CARTESIAN_POINT('Control Point',(9.84251968504,1.46551646667,1.87304780363)) ;
#78=CARTESIAN_POINT('Control Point',(9.84251968504,1.63686057962,1.72532143549)) ;
#79=CARTESIAN_POINT('Control Point',(9.84251968504,1.94123879401,1.39206969675)) ;
#80=CARTESIAN_POINT('Control Point',(9.84251968504,2.15923407815,0.996872503874)) ;
#81=CARTESIAN_POINT('Control Point',(9.84251968504,2.24418626325,0.787194154369)) ;
#82=CARTESIAN_POINT('Control Point',(9.84251968504,2.36274548806,0.351709907948)) ;
#83=CARTESIAN_POINT('Control Point',(9.84251968504,2.37616524411,-0.099424966704)) ;
#84=CARTESIAN_POINT('Control Point',(9.84251968504,2.35596697579,-0.324755644924)) ;
#85=CARTESIAN_POINT('Control Point',(9.84251968504,2.26252782195,-0.766311919874)) ;
#86=CARTESIAN_POINT('Control Point',(9.84251968504,2.06840879661,-1.17376813813)) ;
#87=CARTESIAN_POINT('Control Point',(9.84251968504,1.94752010862,-1.36499525319)) ;
#88=CARTESIAN_POINT('Control Point',(9.84251968504,1.66271513225,-1.71512229375)) ;
#89=CARTESIAN_POINT('Control Point',(9.84251968504,1.30392128644,-1.98892832147)) ;
#90=CARTESIAN_POINT('Control Point',(9.84251968504,1.10903594753,-2.10382648662)) ;
#91=CARTESIAN_POINT('Control Point',(9.84251968504,0.773644605284,-2.25102627234)) ;
#92=CARTESIAN_POINT('Control Point',(9.84251968504,0.417863425012,-2.33125524611)) ;
#93=CARTESIAN_POINT('Control Point',(9.84251968504,0.279252735712,-2.35188834254)) ;
#94=CARTESIAN_POINT('Control Point',(9.84251968504,0.139626372033,-2.36220472441)) ;
#95=CARTESIAN_POINT('Control Point',(9.84251968504,5.59482469102E-016,-2.36220472441)) ;
#102=CARTESIAN_POINT('Control Point',(9.84251968504,6.99353086378E-017,2.32283464567)) ;
#103=CARTESIAN_POINT('Control Point',(9.84251968504,-0.222221701647,2.32283464567)) ;
#104=CARTESIAN_POINT('Control Point',(9.84251968504,-0.444443381516,2.29626017158)) ;
#105=CARTESIAN_POINT('Control Point',(9.84251968504,-0.662433752071,2.24310549306)) ;
#106=CARTESIAN_POINT('Control Point',(9.84251968504,-1.08145702795,2.08570705057)) ;
#107=CARTESIAN_POINT('Control Point',(9.84251968504,-1.45155024289,1.83394181893)) ;
#108=CARTESIAN_POINT('Control Point',(9.84251968504,-1.62060532475,1.6864101248)) ;
#109=CARTESIAN_POINT('Control Point',(9.84251968504,-1.92014453389,1.35379768391)) ;
#110=CARTESIAN_POINT('Control Point',(9.84251968504,-2.13280768991,0.959933365115)) ;
#111=CARTESIAN_POINT('Control Point',(9.84251968504,-2.21497736854,0.751143123731)) ;
#112=CARTESIAN_POINT('Control Point',(9.84251968504,-2.32779083354,0.317982766056)) ;
#113=CARTESIAN_POINT('Control Point',(9.84251968504,-2.33528451022,-0.129564509671)) ;
#114=CARTESIAN_POINT('Control Point',(9.84251968504,-2.31212303024,-0.352743288336)) ;
#115=CARTESIAN_POINT('Control Point',(9.84251968504,-2.21288596494,-0.789214111169)) ;
#116=CARTESIAN_POINT('Control Point',(9.84251968504,-2.01352795365,-1.18997726266)) ;
#117=CARTESIAN_POINT('Control Point',(9.84251968504,-1.89023468911,-1.37744457202)) ;
#118=CARTESIAN_POINT('Control Point',(9.84251968504,-1.60122419841,-1.71924526004)) ;
#119=CARTESIAN_POINT('Control Point',(9.84251968504,-1.23976713173,-1.98325947955)) ;
#120=CARTESIAN_POINT('Control Point',(9.84251968504,-1.04401941803,-2.09293195965)) ;
#121=CARTESIAN_POINT('Control Point',(9.84251968504,-0.719592227264,-2.22649617064)) ;
#122=CARTESIAN_POINT('Control Point',(9.84251968504,-0.3776498197,-2.29714653903)) ;
#123=CARTESIAN_POINT('Control Point',(9.84251968504,-0.252282933585,-2.31427200896)) ;
#124=CARTESIAN_POINT('Control Point',(9.84251968504,-0.1261414703,-2.32283464567)) ;
#125=CARTESIAN_POINT('Control Point',(9.84251968504,-3.49676543189E-017,-2.32283464567)) ;
#126=CARTESIAN_POINT('Vertex',(9.84251968504,-1.42227903298E-016,2.32283464567)) ;
#128=CARTESIAN_POINT('Vertex',(9.84251968504,1.42227903298E-016,-2.32283464567)) ;
#132=CARTESIAN_POINT('Control Point',(9.84251968504,6.99353086378E-017,-2.32283464567)) ;
#133=CARTESIAN_POINT('Control Point',(9.84251968504,0.222221701648,-2.32283464567)) ;
#134=CARTESIAN_POINT('Control Point',(9.84251968504,0.444443381518,-2.29626017158)) ;
#135=CARTESIAN_POINT('Control Point',(9.84251968504,0.662433752074,-2.24310549306)) ;
#136=CARTESIAN_POINT('Control Point',(9.84251968504,1.08145702794,-2.08570705057)) ;
#137=CARTESIAN_POINT('Control Point',(9.84251968504,1.45155024288,-1.83394181894)) ;
#138=CARTESIAN_POINT('Control Point',(9.84251968504,1.62060532476,-1.68641012479)) ;
#139=CARTESIAN_POINT('Control Point',(9.84251968504,1.92014453389,-1.3537976839)) ;
#140=CARTESIAN_POINT('Control Point',(9.84251968504,2.13280768991,-0.95993336512)) ;
#141=CARTESIAN_POINT('Control Point',(9.84251968504,2.21497736854,-0.75114312373)) ;
#142=CARTESIAN_POINT('Control Point',(9.84251968504,2.32779083354,-0.317982766058)) ;
#143=CARTESIAN_POINT('Control Point',(9.84251968504,2.33528451022,0.129564509666)) ;
#144=CARTESIAN_POINT('Control Point',(9.84251968504,2.31212303024,0.352743288348)) ;
#145=CARTESIAN_POINT('Control Point',(9.84251968504,2.21288596493,0.789214111157)) ;
#146=CARTESIAN_POINT('Control Point',(9.84251968504,2.01352795366,1.18997726266)) ;
#147=CARTESIAN_POINT('Control Point',(9.84251968504,1.8902346891,1.37744457203)) ;
#148=CARTESIAN_POINT('Control Point',(9.84251968504,1.6012241984,1.71924526004)) ;
#149=CARTESIAN_POINT('Control Point',(9.84251968504,1.23976713173,1.98325947954)) ;
#150=CARTESIAN_POINT('Control Point',(9.84251968504,1.04401941803,2.09293195965)) ;
#151=CARTESIAN_POINT('Control Point',(9.84251968504,0.719592227257,2.22649617064)) ;
#152=CARTESIAN_POINT('Control Point',(9.84251968504,0.377649819695,2.29714653903)) ;
#153=CARTESIAN_POINT('Control Point',(9.84251968504,0.252282933592,2.31427200896)) ;
#154=CARTESIAN_POINT('Control Point',(9.84251968504,0.126141470303,2.32283464567)) ;
#155=CARTESIAN_POINT('Control Point',(9.84251968504,9.09159012291E-016,2.32283464567)) ;
#162=CARTESIAN_POINT('Axis2P3D Location',(9.84251968504,0.,0.)) ;
#167=CARTESIAN_POINT('Axis2P3D Location',(9.84251968504,0.,0.)) ;
#177=CARTESIAN_POINT('Axis2P3D Location',(9.84251968504,0.,0.)) ;
#187=CARTESIAN_POINT('Axis2P3D Location',(9.84251968504,0.,0.)) ;
#192=CARTESIAN_POINT('Axis2P3D Location',(9.84251968504,0.,0.)) ;
#202=CARTESIAN_POINT('Axis2P3D Location',(9.84251968504,0.,0.)) ;
#37=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,-0.)) ;
#38=DIRECTION('Axis2P3D XDirection',(0.,0.,0.0393700787402)) ;
#163=DIRECTION('Axis2P3D Direction',(0.,0.,0.0393700787402)) ;
#164=DIRECTION('Axis2P3D XDirection',(0.,-0.0393700787402,0.)) ;
#168=DIRECTION('Axis2P3D Direction',(-4.46105425012E-017,-0.0393700787402,0.)) ;
#178=DIRECTION('Axis2P3D Direction',(0.,0.,0.0393700787402)) ;
#179=DIRECTION('Axis2P3D XDirection',(0.0393700787402,0.,0.)) ;
#188=DIRECTION('Axis2P3D Direction',(0.,0.,0.0393700787402)) ;
#189=DIRECTION('Axis2P3D XDirection',(0.,-0.0393700787402,0.)) ;
#193=DIRECTION('Axis2P3D Direction',(-9.64288818226E-018,-0.0393700787402,0.)) ;
#203=DIRECTION('Axis2P3D Direction',(0.,0.,0.0393700787402)) ;
#204=DIRECTION('Axis2P3D XDirection',(0.0393700787402,0.,0.)) ;
#34=PRESENTATION_LAYER_ASSIGNMENT('0',' ',(#25)) ;
#8=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#5)) ;
#7=PRODUCT_CATEGORY('part','specification') ;
#33=STYLED_ITEM(' ',(#32),#25) ;
#32=PRESENTATION_STYLE_ASSIGNMENT((#31)) ;
#31=SURFACE_STYLE_USAGE(.BOTH.,#30) ;
#30=SURFACE_SIDE_STYLE(' ',(#29)) ;
#29=SURFACE_STYLE_FILL_AREA(#28) ;
#28=FILL_AREA_STYLE(' ',(#27)) ;
#27=FILL_AREA_STYLE_COLOUR(' ',#26) ;
#19=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#18,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#213=SHAPE_REPRESENTATION_RELATIONSHIP(' ',' ',#23,#212) ;
#98=ORIENTED_EDGE('',*,*,#70,.T.) ;
#99=ORIENTED_EDGE('',*,*,#96,.T.) ;
#158=ORIENTED_EDGE('',*,*,#130,.T.) ;
#159=ORIENTED_EDGE('',*,*,#156,.T.) ;
#173=ORIENTED_EDGE('',*,*,#171,.F.) ;
#174=ORIENTED_EDGE('',*,*,#70,.F.) ;
#183=ORIENTED_EDGE('',*,*,#171,.T.) ;
#184=ORIENTED_EDGE('',*,*,#96,.F.) ;
#198=ORIENTED_EDGE('',*,*,#196,.T.) ;
#199=ORIENTED_EDGE('',*,*,#130,.F.) ;
#208=ORIENTED_EDGE('',*,*,#196,.F.) ;
#209=ORIENTED_EDGE('',*,*,#156,.F.) ;
#160=FACE_BOUND('',#157,.T.) ;
#35=CLOSED_SHELL('Closed Shell',(#161,#176,#186,#201,#211)) ;
#212=ADVANCED_BREP_SHAPE_REPRESENTATION('NONE',(#25),#20) ;
#161=ADVANCED_FACE('*VOL6',(#100,#160),#40,.F.) ;
#176=ADVANCED_FACE('*VOL6',(#175),#166,.T.) ;
#186=ADVANCED_FACE('*VOL6',(#185),#181,.T.) ;
#201=ADVANCED_FACE('*VOL6',(#200),#191,.F.) ;
#211=ADVANCED_FACE('*VOL6',(#210),#206,.F.) ;
#4=APPLICATION_PROTOCOL_DEFINITION('international standard','automotive_design',2001,#1) ;
#41=B_SPLINE_CURVE_WITH_KNOTS('',5,(#42,#43,#44,#45,#46,#47,#48,#49,#50,#51,#52,#53,#54,#55,#56,#57,#58,#59,#60,#61,#62,#63,#64,#65),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,6),(0.,42.0351049577,84.0702098781,126.105314689,168.140419612,210.175524564,252.210629404,278.401106962),.UNSPECIFIED.) ;
#71=B_SPLINE_CURVE_WITH_KNOTS('',5,(#72,#73,#74,#75,#76,#77,#78,#79,#80,#81,#82,#83,#84,#85,#86,#87,#88,#89,#90,#91,#92,#93,#94,#95),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,6),(0.,42.035104959,84.0702098792,126.105314689,168.140419612,210.175524564,252.210629402,278.401106958),.UNSPECIFIED.) ;
#101=B_SPLINE_CURVE_WITH_KNOTS('',5,(#102,#103,#104,#105,#106,#107,#108,#109,#110,#111,#112,#113,#114,#115,#116,#117,#118,#119,#120,#121,#122,#123,#124,#125),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,6),(0.,41.6833324868,83.3666649358,125.049997231,166.733329647,208.416662129,250.099994489,273.761035728),.UNSPECIFIED.) ;
#131=B_SPLINE_CURVE_WITH_KNOTS('',5,(#132,#133,#134,#135,#136,#137,#138,#139,#140,#141,#142,#143,#144,#145,#146,#147,#148,#149,#150,#151,#152,#153,#154,#155),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,6),(0.,41.683332487,83.3666649344,125.049997229,166.733329645,208.416662126,250.099994486,273.761035726),.UNSPECIFIED.) ;
#25=MANIFOLD_SOLID_BREP('*VOL6',#35) ;
#170=CIRCLE('generated circle',#169,2.36220472441) ;
#195=CIRCLE('generated circle',#194,2.32283464567) ;
#26=DRAUGHTING_PRE_DEFINED_COLOUR('red') ;
#70=EDGE_CURVE('',#67,#69,#41,.T.) ;
#96=EDGE_CURVE('',#69,#67,#71,.T.) ;
#130=EDGE_CURVE('',#127,#129,#101,.T.) ;
#156=EDGE_CURVE('',#129,#127,#131,.T.) ;
#171=EDGE_CURVE('',#69,#67,#170,.F.) ;
#196=EDGE_CURVE('',#127,#129,#195,.F.) ;
#97=EDGE_LOOP('',(#98,#99)) ;
#157=EDGE_LOOP('',(#158,#159)) ;
#172=EDGE_LOOP('',(#173,#174)) ;
#182=EDGE_LOOP('',(#183,#184)) ;
#197=EDGE_LOOP('',(#198,#199)) ;
#207=EDGE_LOOP('',(#208,#209)) ;
#100=FACE_OUTER_BOUND('',#97,.T.) ;
#175=FACE_OUTER_BOUND('',#172,.T.) ;
#185=FACE_OUTER_BOUND('',#182,.T.) ;
#200=FACE_OUTER_BOUND('',#197,.T.) ;
#210=FACE_OUTER_BOUND('',#207,.T.) ;
#16=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#12) ;
#40=PLANE('Plane',#39) ;
#14=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.0174532925199),#13) ;
#9=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#7,#8) ;
#6=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#5,.NOT_KNOWN.) ;
#24=SHAPE_DEFINITION_REPRESENTATION(#11,#23) ;
#166=SPHERICAL_SURFACE('',#165,2.36220472441) ;
#181=SPHERICAL_SURFACE('',#180,2.36220472441) ;
#191=SPHERICAL_SURFACE('',#190,2.32283464567) ;
#206=SPHERICAL_SURFACE('',#205,2.32283464567) ;
#67=VERTEX_POINT('',#66) ;
#69=VERTEX_POINT('',#68) ;
#127=VERTEX_POINT('',#126) ;
#129=VERTEX_POINT('',#128) ;
#12=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)) ;
#13=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)) ;
#15=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()) ;
#18=(CONVERSION_BASED_UNIT('INCH',#16)LENGTH_UNIT()NAMED_UNIT(#17)) ;
#20=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#19))GLOBAL_UNIT_ASSIGNED_CONTEXT((#18,#13,#15))REPRESENTATION_CONTEXT(' ',' ')) ;
ENDSEC;
END-ISO-10303-21;
+25
View File
@@ -0,0 +1,25 @@
STEPcheck v 2.0 (February 21, 2000) for stepcheck_stage_1_2 schema
Copyright ERIM (July 1997)
Checking STEP file: HEAD_FRONT.stp
Reading Data from HEAD_FRONT.stp...
HEADER read:
FIRST PASS complete: 214 instances created.
0 ERRORS 0 WARNINGS
SECOND PASS complete: 214 instances valid.
0 ERRORS 0 WARNINGS
Finished reading file.
total violations = 0
total parse errors = 0
total parse warnings = 0
elapsed time : 0.468 seconds
+118
View File
@@ -0,0 +1,118 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('CATIA V5 STEP'),'2;1');
FILE_NAME('E:\\Public\\Archive_PDES\\TR22\\NativeFiles\\s1\\MAINBODY.stp','2008-08-18T12:41:46+00:00',('none'),('none'),'CATIA Version 5 Release 19 SP 1 (IN-PROTO)','CATIA V5 STEP AP214','none');
FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
ENDSEC;
/* file written by CATIA V5R19 */
DATA;
#5=PRODUCT('MAINBODY','MAINBODY',' ',(#2)) ;
#28=PRODUCT('MAINBODY_FRONT','MAINBODY_FRONT',' ',(#2)) ;
#68=PRODUCT('MAINBODY_BACK','MAINBODY_BACK',' ',(#2)) ;
#2=PRODUCT_CONTEXT(' ',#1,'mechanical') ;
#1=APPLICATION_CONTEXT('automotive design') ;
#39=OBJECT_ROLE('mandatory',$) ;
#79=OBJECT_ROLE('mandatory',$) ;
#33=DOCUMENT_FILE('MAINBODY_FRONT.stp','','',#34,'',$) ;
#73=DOCUMENT_FILE('MAINBODY_BACK.stp','','',#74,'',$) ;
#34=DOCUMENT_TYPE('geometry') ;
#74=DOCUMENT_TYPE('geometry') ;
#40=DOCUMENT_REPRESENTATION_TYPE('digital',#33) ;
#80=DOCUMENT_REPRESENTATION_TYPE('digital',#73) ;
#13=PRODUCT_DEFINITION(' ',' ',#6,#3) ;
#30=PRODUCT_DEFINITION(' ',' ',#29,#3) ;
#70=PRODUCT_DEFINITION(' ',' ',#69,#3) ;
#3=PRODUCT_DEFINITION_CONTEXT('part definition',#1,' ') ;
#16=PRODUCT_DEFINITION_SHAPE(' ',' ',#13) ;
#31=PRODUCT_DEFINITION_SHAPE(' ',' ',#30) ;
#49=PRODUCT_DEFINITION_SHAPE(' ',' ',#48) ;
#71=PRODUCT_DEFINITION_SHAPE(' ',' ',#70) ;
#89=PRODUCT_DEFINITION_SHAPE(' ',' ',#88) ;
#41=PROPERTY_DEFINITION('external definition','',#33) ;
#46=PROPERTY_DEFINITION('document property','',#33) ;
#81=PROPERTY_DEFINITION('external definition','',#73) ;
#86=PROPERTY_DEFINITION('document property','',#73) ;
#22=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#62=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#102=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#36=IDENTIFICATION_ROLE('external document id and location',$) ;
#76=IDENTIFICATION_ROLE('external document id and location',$) ;
#45=REPRESENTATION('document format',(#43),#44) ;
#85=REPRESENTATION('document format',(#83),#84) ;
#44=REPRESENTATION_CONTEXT('','document parameters') ;
#84=REPRESENTATION_CONTEXT('','document parameters') ;
#15=SHAPE_REPRESENTATION(' ',(#53,#93),#25) ;
#26=SHAPE_REPRESENTATION(' ',(#54),#65) ;
#66=SHAPE_REPRESENTATION(' ',(#94),#105) ;
#42=PROPERTY_DEFINITION_REPRESENTATION(#41,#26) ;
#47=PROPERTY_DEFINITION_REPRESENTATION(#46,#45) ;
#82=PROPERTY_DEFINITION_REPRESENTATION(#81,#66) ;
#87=PROPERTY_DEFINITION_REPRESENTATION(#86,#85) ;
#43=DESCRIPTIVE_REPRESENTATION_ITEM('data format','STEP AP214') ;
#83=DESCRIPTIVE_REPRESENTATION_ITEM('data format','STEP AP214') ;
#32=EXTERNAL_SOURCE(IDENTIFIER('')) ;
#72=EXTERNAL_SOURCE(IDENTIFIER('')) ;
#52=ITEM_DEFINED_TRANSFORMATION(' ',' ',#54,#53) ;
#92=ITEM_DEFINED_TRANSFORMATION(' ',' ',#94,#93) ;
#53=AXIS2_PLACEMENT_3D(' ',#56,#60,#59) ;
#54=AXIS2_PLACEMENT_3D(' ',#55,#58,#57) ;
#93=AXIS2_PLACEMENT_3D(' ',#96,#100,#99) ;
#94=AXIS2_PLACEMENT_3D(' ',#95,#98,#97) ;
#55=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#56=CARTESIAN_POINT('NONE',(-1.1811023622,0.,0.)) ;
#95=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#96=CARTESIAN_POINT('NONE',(1.96850393701,0.,0.)) ;
#57=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#58=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#59=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#60=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#97=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#98=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#99=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#100=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#8=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#28,#68)) ;
#11=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#5)) ;
#7=PRODUCT_CATEGORY('part','specification') ;
#10=PRODUCT_CATEGORY('part','specification') ;
#24=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#23,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#64=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#63,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#104=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#103,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#50=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#51,#49) ;
#90=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#91,#89) ;
#4=APPLICATION_PROTOCOL_DEFINITION('international standard','automotive_design',2001,#1) ;
#37=APPLIED_DOCUMENT_REFERENCE(#33,'',(#30)) ;
#77=APPLIED_DOCUMENT_REFERENCE(#73,'',(#70)) ;
#35=APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT('MAINBODY_FRONT.stp',#36,#32,(#33)) ;
#75=APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT('MAINBODY_BACK.stp',#76,#72,(#73)) ;
#21=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#17) ;
#61=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#17) ;
#101=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#17) ;
#48=NEXT_ASSEMBLY_USAGE_OCCURRENCE('*DIT40','*DIT40','*DIT40',#13,#30,' ') ;
#88=NEXT_ASSEMBLY_USAGE_OCCURRENCE('*DIT41','*DIT41','*DIT41',#13,#70,' ') ;
#19=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.0174532925199),#18) ;
#9=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#7,#8) ;
#12=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#10,#11) ;
#6=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#5,.NOT_KNOWN.) ;
#29=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#28,.NOT_KNOWN.) ;
#69=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#68,.NOT_KNOWN.) ;
#38=ROLE_ASSOCIATION(#39,#37) ;
#78=ROLE_ASSOCIATION(#79,#77) ;
#14=SHAPE_DEFINITION_REPRESENTATION(#16,#15) ;
#27=SHAPE_DEFINITION_REPRESENTATION(#31,#26) ;
#67=SHAPE_DEFINITION_REPRESENTATION(#71,#66) ;
#17=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)) ;
#18=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)) ;
#20=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()) ;
#23=(CONVERSION_BASED_UNIT('INCH',#21)LENGTH_UNIT()NAMED_UNIT(#22)) ;
#63=(CONVERSION_BASED_UNIT('INCH',#61)LENGTH_UNIT()NAMED_UNIT(#62)) ;
#103=(CONVERSION_BASED_UNIT('INCH',#101)LENGTH_UNIT()NAMED_UNIT(#102)) ;
#25=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#24))GLOBAL_UNIT_ASSIGNED_CONTEXT((#23,#18,#20))REPRESENTATION_CONTEXT(' ',' ')) ;
#65=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#64))GLOBAL_UNIT_ASSIGNED_CONTEXT((#63,#18,#20))REPRESENTATION_CONTEXT(' ','external')) ;
#105=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#104))GLOBAL_UNIT_ASSIGNED_CONTEXT((#103,#18,#20))REPRESENTATION_CONTEXT(' ','external')) ;
#51=(REPRESENTATION_RELATIONSHIP(' ',' ',#26,#15)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#52)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
#91=(REPRESENTATION_RELATIONSHIP(' ',' ',#66,#15)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#92)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
ENDSEC;
END-ISO-10303-21;
+73
View File
@@ -0,0 +1,73 @@
STEPcheck v 2.0 (February 21, 2000) for stepcheck_stage_1_2 schema
Copyright ERIM (July 1997)
Checking STEP file: MAINBODY.stp
Reading Data from MAINBODY.stp...
HEADER read:
ERROR: instance #37 'APPLIED_DOCUMENT_REFERENCE': Unknown ENTITY type.
Data lost: (#33,,(#30))
ERROR: instance #77 'APPLIED_DOCUMENT_REFERENCE': Unknown ENTITY type.
Data lost: (#73,,(#70))
ERROR: instance #35 'APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT': Unknown ENTITY type.
Data lost: (MAINBODY_FRONT.stp,#36,#32,(#33))
ERROR: instance #75 'APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT': Unknown ENTITY type.
Data lost: (MAINBODY_BACK.stp,#76,#72,(#73))
FIRST PASS complete: 101 instances created.
4 ERRORS 0 WARNINGS
ERROR: in 2nd pass, instance #37 not found.
Data lost: =APPLIED_DOCUMENT_REFERENCE(#33,,(#30))
ERROR: in 2nd pass, instance #77 not found.
Data lost: =APPLIED_DOCUMENT_REFERENCE(#73,,(#70))
ERROR: in 2nd pass, instance #35 not found.
Data lost: =APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT(MAINBODY_FRONT.stp,#36,#32,(#33))
ERROR: in 2nd pass, instance #75 not found.
Data lost: =APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT(MAINBODY_BACK.stp,#76,#72,(#73))
Second pass complete - instance summary:
Total instances: 101
Invalid instances: 4
Incomplete instances (includes invalid instances): 0
Warnings: 0.
SECOND PASS complete: 101 instances valid.
6 ERRORS 0 WARNINGS
Finished reading file.
Where Rule Document_File_WR1 violated by :
1) #33=DOCUMENT_FILE('MAINBODY_FRONT.stp','','',#34,'',$);
2) #73=DOCUMENT_FILE('MAINBODY_BACK.stp','','',#74,'',$);
Global Rule Dependent_instantiable_identification_role violated by :
1) #76=IDENTIFICATION_ROLE('external document id and location', ...
2) #36=IDENTIFICATION_ROLE('external document id and location', ...
total violations = 4
total parse errors = 6
total parse warnings = 0
elapsed time : 0.217 seconds
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,25 @@
STEPcheck v 2.0 (February 21, 2000) for stepcheck_stage_1_2 schema
Copyright ERIM (July 1997)
Checking STEP file: MAINBODY_BACK.stp
Reading Data from MAINBODY_BACK.stp...
HEADER read:
FIRST PASS complete: 1487 instances created.
0 ERRORS 0 WARNINGS
SECOND PASS complete: 1487 instances valid.
0 ERRORS 0 WARNINGS
Finished reading file.
total violations = 0
total parse errors = 0
total parse warnings = 0
elapsed time : 3.333 seconds
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,25 @@
STEPcheck v 2.0 (February 21, 2000) for stepcheck_stage_1_2 schema
Copyright ERIM (July 1997)
Checking STEP file: MAINBODY_FRONT.stp
Reading Data from MAINBODY_FRONT.stp...
HEADER read:
FIRST PASS complete: 1126 instances created.
0 ERRORS 0 WARNINGS
SECOND PASS complete: 1126 instances valid.
0 ERRORS 0 WARNINGS
Finished reading file.
total violations = 0
total parse errors = 0
total parse warnings = 0
elapsed time : 2.416 seconds
+131
View File
@@ -0,0 +1,131 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('CATIA V5 STEP'),'2;1');
FILE_NAME('E:\\Public\\Archive_PDES\\TR22\\NativeFiles\\s1\\TAIL.stp','2008-08-18T12:41:46+00:00',('none'),('none'),'CATIA Version 5 Release 19 SP 1 (IN-PROTO)','CATIA V5 STEP AP214','none');
FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
ENDSEC;
/* file written by CATIA V5R19 */
DATA;
#5=PRODUCT('TAIL','TAIL',' ',(#2)) ;
#28=PRODUCT('TAIL_TURBINE','TAIL_TURBINE',' ',(#2)) ;
#68=PRODUCT('TAIL_MIDDLE_PART','TAIL_MIDDLE_PART',' ',(#2)) ;
#2=PRODUCT_CONTEXT(' ',#1,'mechanical') ;
#1=APPLICATION_CONTEXT('automotive design') ;
#39=OBJECT_ROLE('mandatory',$) ;
#79=OBJECT_ROLE('mandatory',$) ;
#33=DOCUMENT_FILE('TAIL_TURBINE.stp','','',#34,'',$) ;
#73=DOCUMENT_FILE('TAIL_MIDDLE_PART.stp','','',#74,'',$) ;
#34=DOCUMENT_TYPE('geometry') ;
#74=DOCUMENT_TYPE('geometry') ;
#40=DOCUMENT_REPRESENTATION_TYPE('digital',#33) ;
#80=DOCUMENT_REPRESENTATION_TYPE('digital',#73) ;
#13=PRODUCT_DEFINITION(' ',' ',#6,#3) ;
#30=PRODUCT_DEFINITION(' ',' ',#29,#3) ;
#70=PRODUCT_DEFINITION(' ',' ',#69,#3) ;
#3=PRODUCT_DEFINITION_CONTEXT('part definition',#1,' ') ;
#16=PRODUCT_DEFINITION_SHAPE(' ',' ',#13) ;
#31=PRODUCT_DEFINITION_SHAPE(' ',' ',#30) ;
#49=PRODUCT_DEFINITION_SHAPE(' ',' ',#48) ;
#71=PRODUCT_DEFINITION_SHAPE(' ',' ',#70) ;
#89=PRODUCT_DEFINITION_SHAPE(' ',' ',#88) ;
#107=PRODUCT_DEFINITION_SHAPE(' ',' ',#106) ;
#41=PROPERTY_DEFINITION('external definition','',#33) ;
#46=PROPERTY_DEFINITION('document property','',#33) ;
#81=PROPERTY_DEFINITION('external definition','',#73) ;
#86=PROPERTY_DEFINITION('document property','',#73) ;
#22=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#62=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#102=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#36=IDENTIFICATION_ROLE('external document id and location',$) ;
#76=IDENTIFICATION_ROLE('external document id and location',$) ;
#45=REPRESENTATION('document format',(#43),#44) ;
#85=REPRESENTATION('document format',(#83),#84) ;
#44=REPRESENTATION_CONTEXT('','document parameters') ;
#84=REPRESENTATION_CONTEXT('','document parameters') ;
#15=SHAPE_REPRESENTATION(' ',(#53,#93,#111),#25) ;
#26=SHAPE_REPRESENTATION(' ',(#54,#112),#65) ;
#66=SHAPE_REPRESENTATION(' ',(#94),#105) ;
#42=PROPERTY_DEFINITION_REPRESENTATION(#41,#26) ;
#47=PROPERTY_DEFINITION_REPRESENTATION(#46,#45) ;
#82=PROPERTY_DEFINITION_REPRESENTATION(#81,#66) ;
#87=PROPERTY_DEFINITION_REPRESENTATION(#86,#85) ;
#43=DESCRIPTIVE_REPRESENTATION_ITEM('data format','STEP AP214') ;
#83=DESCRIPTIVE_REPRESENTATION_ITEM('data format','STEP AP214') ;
#32=EXTERNAL_SOURCE(IDENTIFIER('')) ;
#72=EXTERNAL_SOURCE(IDENTIFIER('')) ;
#52=ITEM_DEFINED_TRANSFORMATION(' ',' ',#54,#53) ;
#92=ITEM_DEFINED_TRANSFORMATION(' ',' ',#94,#93) ;
#110=ITEM_DEFINED_TRANSFORMATION(' ',' ',#112,#111) ;
#53=AXIS2_PLACEMENT_3D(' ',#56,#60,#59) ;
#54=AXIS2_PLACEMENT_3D(' ',#55,#58,#57) ;
#93=AXIS2_PLACEMENT_3D(' ',#96,#100,#99) ;
#94=AXIS2_PLACEMENT_3D(' ',#95,#98,#97) ;
#111=AXIS2_PLACEMENT_3D(' ',#114,#118,#117) ;
#112=AXIS2_PLACEMENT_3D(' ',#113,#116,#115) ;
#55=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#56=CARTESIAN_POINT('NONE',(1.61417322835,-0.944881889764,0.)) ;
#95=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#96=CARTESIAN_POINT('NONE',(-4.0157480315,0.,0.)) ;
#113=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#114=CARTESIAN_POINT('NONE',(1.61417322835,0.944881889764,0.)) ;
#57=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#58=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#59=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#60=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#97=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#98=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#99=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#100=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#115=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#116=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#117=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#118=DIRECTION('NONE',(0.,0.,-0.0393700787402)) ;
#8=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#28,#68)) ;
#11=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#5)) ;
#7=PRODUCT_CATEGORY('part','specification') ;
#10=PRODUCT_CATEGORY('part','specification') ;
#24=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#23,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#64=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#63,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#104=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#103,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#50=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#51,#49) ;
#90=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#91,#89) ;
#108=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#109,#107) ;
#4=APPLICATION_PROTOCOL_DEFINITION('international standard','automotive_design',2001,#1) ;
#37=APPLIED_DOCUMENT_REFERENCE(#33,'',(#30)) ;
#77=APPLIED_DOCUMENT_REFERENCE(#73,'',(#70)) ;
#35=APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT('TAIL_TURBINE.stp',#36,#32,(#33)) ;
#75=APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT('TAIL_MIDDLE_PART.stp',#76,#72,(#73)) ;
#21=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#17) ;
#61=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#17) ;
#101=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#17) ;
#48=NEXT_ASSEMBLY_USAGE_OCCURRENCE('*DIT33','*DIT33','*DIT33',#13,#30,' ') ;
#88=NEXT_ASSEMBLY_USAGE_OCCURRENCE('*DIT34','*DIT34','*DIT34',#13,#70,' ') ;
#106=NEXT_ASSEMBLY_USAGE_OCCURRENCE('*DIT35','*DIT35','*DIT35',#13,#30,' ') ;
#19=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.0174532925199),#18) ;
#9=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#7,#8) ;
#12=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#10,#11) ;
#6=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#5,.NOT_KNOWN.) ;
#29=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#28,.NOT_KNOWN.) ;
#69=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#68,.NOT_KNOWN.) ;
#38=ROLE_ASSOCIATION(#39,#37) ;
#78=ROLE_ASSOCIATION(#79,#77) ;
#14=SHAPE_DEFINITION_REPRESENTATION(#16,#15) ;
#27=SHAPE_DEFINITION_REPRESENTATION(#31,#26) ;
#67=SHAPE_DEFINITION_REPRESENTATION(#71,#66) ;
#17=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)) ;
#18=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)) ;
#20=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()) ;
#23=(CONVERSION_BASED_UNIT('INCH',#21)LENGTH_UNIT()NAMED_UNIT(#22)) ;
#63=(CONVERSION_BASED_UNIT('INCH',#61)LENGTH_UNIT()NAMED_UNIT(#62)) ;
#103=(CONVERSION_BASED_UNIT('INCH',#101)LENGTH_UNIT()NAMED_UNIT(#102)) ;
#25=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#24))GLOBAL_UNIT_ASSIGNED_CONTEXT((#23,#18,#20))REPRESENTATION_CONTEXT(' ',' ')) ;
#65=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#64))GLOBAL_UNIT_ASSIGNED_CONTEXT((#63,#18,#20))REPRESENTATION_CONTEXT(' ','external')) ;
#105=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#104))GLOBAL_UNIT_ASSIGNED_CONTEXT((#103,#18,#20))REPRESENTATION_CONTEXT(' ','external')) ;
#51=(REPRESENTATION_RELATIONSHIP(' ',' ',#26,#15)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#52)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
#91=(REPRESENTATION_RELATIONSHIP(' ',' ',#66,#15)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#92)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
#109=(REPRESENTATION_RELATIONSHIP(' ',' ',#26,#15)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#110)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
ENDSEC;
END-ISO-10303-21;
+73
View File
@@ -0,0 +1,73 @@
STEPcheck v 2.0 (February 21, 2000) for stepcheck_stage_1_2 schema
Copyright ERIM (July 1997)
Checking STEP file: TAIL.stp
Reading Data from TAIL.stp...
HEADER read:
ERROR: instance #37 'APPLIED_DOCUMENT_REFERENCE': Unknown ENTITY type.
Data lost: (#33,,(#30))
ERROR: instance #77 'APPLIED_DOCUMENT_REFERENCE': Unknown ENTITY type.
Data lost: (#73,,(#70))
ERROR: instance #35 'APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT': Unknown ENTITY type.
Data lost: (TAIL_TURBINE.stp,#36,#32,(#33))
ERROR: instance #75 'APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT': Unknown ENTITY type.
Data lost: (TAIL_MIDDLE_PART.stp,#76,#72,(#73))
FIRST PASS complete: 114 instances created.
4 ERRORS 0 WARNINGS
ERROR: in 2nd pass, instance #37 not found.
Data lost: =APPLIED_DOCUMENT_REFERENCE(#33,,(#30))
ERROR: in 2nd pass, instance #77 not found.
Data lost: =APPLIED_DOCUMENT_REFERENCE(#73,,(#70))
ERROR: in 2nd pass, instance #35 not found.
Data lost: =APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT(TAIL_TURBINE.stp,#36,#32,(#33))
ERROR: in 2nd pass, instance #75 not found.
Data lost: =APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT(TAIL_MIDDLE_PART.stp,#76,#72,(#73))
Second pass complete - instance summary:
Total instances: 114
Invalid instances: 4
Incomplete instances (includes invalid instances): 0
Warnings: 0.
SECOND PASS complete: 114 instances valid.
6 ERRORS 0 WARNINGS
Finished reading file.
Where Rule Document_File_WR1 violated by :
1) #33=DOCUMENT_FILE('TAIL_TURBINE.stp','','',#34,'',$);
2) #73=DOCUMENT_FILE('TAIL_MIDDLE_PART.stp','','',#74,'',$);
Global Rule Dependent_instantiable_identification_role violated by :
1) #76=IDENTIFICATION_ROLE('external document id and location', ...
2) #36=IDENTIFICATION_ROLE('external document id and location', ...
total violations = 4
total parse errors = 6
total parse warnings = 0
elapsed time : 0.245 seconds
+716
View File
@@ -0,0 +1,716 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('CATIA V5 STEP'),'2;1');
FILE_NAME('E:\\Public\\Archive_PDES\\TR22\\NativeFiles\\s1\\TAIL_MIDDLE_PART.stp','2008-08-18T12:41:45+00:00',('none'),('none'),'CATIA Version 5 Release 19 SP 1 (IN-PROTO)','CATIA V5 STEP AP214','none');
FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
ENDSEC;
/* file written by CATIA V5R19 */
DATA;
#5=PRODUCT('TAIL_MIDDLE_PART','TAIL_MIDDLE_PART',' ',(#2)) ;
#2=PRODUCT_CONTEXT(' ',#1,'mechanical') ;
#1=APPLICATION_CONTEXT('automotive design') ;
#10=PRODUCT_DEFINITION(' ',' ',#6,#3) ;
#3=PRODUCT_DEFINITION_CONTEXT('part definition',#1,' ') ;
#11=PRODUCT_DEFINITION_SHAPE(' ',' ',#10) ;
#17=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#703=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION(' ',(#33),#20) ;
#23=SHAPE_REPRESENTATION(' ',(#22),#20) ;
#22=AXIS2_PLACEMENT_3D(' ',#21,$,$) ;
#39=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#36,#37,#38) ;
#105=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#102,#103,#104) ;
#118=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#116,#117,$) ;
#137=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#135,#136,$) ;
#151=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#149,#150,$) ;
#168=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#165,#166,#167) ;
#181=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#179,#180,$) ;
#195=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#193,#194,$) ;
#200=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#198,#199,$) ;
#217=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#214,#215,#216) ;
#343=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#340,#341,#342) ;
#365=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#362,#363,#364) ;
#486=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#483,#484,#485) ;
#503=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#500,#501,#502) ;
#520=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#517,#518,#519) ;
#537=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#534,#535,#536) ;
#554=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#551,#552,#553) ;
#571=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#568,#569,#570) ;
#588=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#585,#586,#587) ;
#605=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#602,#603,#604) ;
#624=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#621,#622,#623) ;
#641=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#638,#639,#640) ;
#658=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#655,#656,#657) ;
#675=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#672,#673,#674) ;
#692=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#689,#690,#691) ;
#21=CARTESIAN_POINT(' ',(0.,0.,0.)) ;
#36=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,0.)) ;
#42=CARTESIAN_POINT('Control Point',(0.,-6.99353086378E-017,0.708661417323)) ;
#43=CARTESIAN_POINT('Control Point',(0.,0.0736456300973,0.708661417323)) ;
#44=CARTESIAN_POINT('Control Point',(0.,0.147291239854,0.699094649988)) ;
#45=CARTESIAN_POINT('Control Point',(0.,0.219282445988,0.679958277732)) ;
#46=CARTESIAN_POINT('Control Point',(0.,0.35663349058,0.623429448937)) ;
#47=CARTESIAN_POINT('Control Point',(0.,0.47498310531,0.533684447492)) ;
#48=CARTESIAN_POINT('Control Point',(0.,0.527970120053,0.481326918716)) ;
#49=CARTESIAN_POINT('Control Point',(0.,0.619123065319,0.364058174288)) ;
#50=CARTESIAN_POINT('Control Point',(0.,0.677289210251,0.227392537728)) ;
#51=CARTESIAN_POINT('Control Point',(0.,0.697284552318,0.15563516343)) ;
#52=CARTESIAN_POINT('Control Point',(0.,0.718176897229,0.00858303768404)) ;
#53=CARTESIAN_POINT('Control Point',(0.,0.700804907255,-0.138926319737)) ;
#54=CARTESIAN_POINT('Control Point',(0.,0.682530218722,-0.211141070594)) ;
#55=CARTESIAN_POINT('Control Point',(0.,0.627646814867,-0.349157844171)) ;
#56=CARTESIAN_POINT('Control Point',(0.,0.539322537321,-0.468571489223)) ;
#57=CARTESIAN_POINT('Control Point',(0.,0.487601958613,-0.522180409794)) ;
#58=CARTESIAN_POINT('Control Point',(0.,0.371430894929,-0.614728244597)) ;
#59=CARTESIAN_POINT('Control Point',(0.,0.235470120928,-0.674523433434)) ;
#60=CARTESIAN_POINT('Control Point',(0.,0.163956820637,-0.695374870587)) ;
#61=CARTESIAN_POINT('Control Point',(0.,0.087184792476,-0.707219840365)) ;
#62=CARTESIAN_POINT('Control Point',(0.,0.010162629857,-0.708600690725)) ;
#63=CARTESIAN_POINT('Control Point',(0.,0.00677507081467,-0.708641175998)) ;
#64=CARTESIAN_POINT('Control Point',(0.,0.00338753542886,-0.708661417323)) ;
#65=CARTESIAN_POINT('Control Point',(0.,1.85765663569E-016,-0.708661417323)) ;
#66=CARTESIAN_POINT('Vertex',(0.,1.14325061014E-012,0.708661417323)) ;
#68=CARTESIAN_POINT('Vertex',(0.,-1.13644876536E-012,-0.708661417323)) ;
#72=CARTESIAN_POINT('Control Point',(0.,1.74838271595E-016,-0.708661417323)) ;
#73=CARTESIAN_POINT('Control Point',(0.,-0.0736456301024,-0.708661417323)) ;
#74=CARTESIAN_POINT('Control Point',(0.,-0.147291239864,-0.699094649984)) ;
#75=CARTESIAN_POINT('Control Point',(0.,-0.219282445979,-0.679958277736)) ;
#76=CARTESIAN_POINT('Control Point',(0.,-0.356633490576,-0.623429448941)) ;
#77=CARTESIAN_POINT('Control Point',(0.,-0.474983105309,-0.533684447492)) ;
#78=CARTESIAN_POINT('Control Point',(0.,-0.527970120053,-0.481326918716)) ;
#79=CARTESIAN_POINT('Control Point',(0.,-0.619123065318,-0.364058174288)) ;
#80=CARTESIAN_POINT('Control Point',(0.,-0.677289210251,-0.227392537728)) ;
#81=CARTESIAN_POINT('Control Point',(0.,-0.697284552319,-0.155635163429)) ;
#82=CARTESIAN_POINT('Control Point',(0.,-0.718176897229,-0.00858303768316)) ;
#83=CARTESIAN_POINT('Control Point',(0.,-0.700804907255,0.138926319737)) ;
#84=CARTESIAN_POINT('Control Point',(0.,-0.682530218722,0.211141070593)) ;
#85=CARTESIAN_POINT('Control Point',(0.,-0.627646814866,0.349157844171)) ;
#86=CARTESIAN_POINT('Control Point',(0.,-0.539322537321,0.468571489223)) ;
#87=CARTESIAN_POINT('Control Point',(0.,-0.487601958614,0.522180409794)) ;
#88=CARTESIAN_POINT('Control Point',(0.,-0.371430894929,0.614728244596)) ;
#89=CARTESIAN_POINT('Control Point',(0.,-0.235470120929,0.674523433434)) ;
#90=CARTESIAN_POINT('Control Point',(0.,-0.163956820636,0.695374870587)) ;
#91=CARTESIAN_POINT('Control Point',(0.,-0.0871847924757,0.707219840365)) ;
#92=CARTESIAN_POINT('Control Point',(0.,-0.010162629857,0.708600690725)) ;
#93=CARTESIAN_POINT('Control Point',(0.,-0.00677507081467,0.708641175998)) ;
#94=CARTESIAN_POINT('Control Point',(0.,-0.00338753542886,0.708661417323)) ;
#95=CARTESIAN_POINT('Control Point',(0.,3.2782175924E-018,0.708661417323)) ;
#102=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,0.)) ;
#107=CARTESIAN_POINT('Line Origine',(0.,0.706196514366,0.0590549532189)) ;
#111=CARTESIAN_POINT('Vertex',(-0.295275590551,0.706196500577,0.0590551181089)) ;
#113=CARTESIAN_POINT('Vertex',(-0.393700787402,0.706196500577,0.0590551181091)) ;
#116=CARTESIAN_POINT('Axis2P3D Location',(-0.393700787402,0.,0.)) ;
#120=CARTESIAN_POINT('Vertex',(-0.393700787402,-1.13240936528E-012,0.708661417323)) ;
#123=CARTESIAN_POINT('Line Origine',(0.,-8.67831274362E-017,0.708661417323)) ;
#128=CARTESIAN_POINT('Line Origine',(0.,1.73566254872E-016,-0.708661417323)) ;
#132=CARTESIAN_POINT('Vertex',(-0.393700787402,1.13123731285E-012,-0.708661417323)) ;
#135=CARTESIAN_POINT('Axis2P3D Location',(-0.393700787402,0.,0.)) ;
#139=CARTESIAN_POINT('Vertex',(-0.393700787402,0.706196500604,-0.0590551181102)) ;
#142=CARTESIAN_POINT('Line Origine',(0.,0.706196514366,-0.0590549532189)) ;
#146=CARTESIAN_POINT('Vertex',(-0.295275590551,0.706196514366,-0.0590549532189)) ;
#149=CARTESIAN_POINT('Axis2P3D Location',(-0.295275590551,0.,0.)) ;
#165=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,0.)) ;
#170=CARTESIAN_POINT('Line Origine',(0.,-0.706196514366,0.0590549532189)) ;
#174=CARTESIAN_POINT('Vertex',(-0.295275590551,-0.706196514366,0.0590549532189)) ;
#176=CARTESIAN_POINT('Vertex',(-0.393700787402,-0.706196500604,0.0590551181102)) ;
#179=CARTESIAN_POINT('Axis2P3D Location',(-0.295275590551,0.,0.)) ;
#183=CARTESIAN_POINT('Vertex',(-0.295275590551,-0.706196500577,-0.0590551181089)) ;
#186=CARTESIAN_POINT('Line Origine',(0.,-0.706196514366,-0.0590549532189)) ;
#190=CARTESIAN_POINT('Vertex',(-0.393700787402,-0.706196500577,-0.0590551181091)) ;
#193=CARTESIAN_POINT('Axis2P3D Location',(-0.393700787402,0.,0.)) ;
#198=CARTESIAN_POINT('Axis2P3D Location',(-0.393700787402,0.,0.)) ;
#214=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,0.0590551181102)) ;
#219=CARTESIAN_POINT('Line Origine',(-0.393700787402,0.,0.0590551181102)) ;
#224=CARTESIAN_POINT('Line Origine',(-0.295275590551,1.09128722668,0.0590551181102)) ;
#228=CARTESIAN_POINT('Vertex',(-0.295275590551,1.47637795276,0.0590551181102)) ;
#231=CARTESIAN_POINT('Line Origine',(-0.147637795276,1.47637795276,0.0590551181102)) ;
#235=CARTESIAN_POINT('Vertex',(0.,1.47637795276,0.0590551181102)) ;
#238=CARTESIAN_POINT('Line Origine',(0.,1.62401574803,0.0590551181102)) ;
#242=CARTESIAN_POINT('Vertex',(0.,1.77165354331,0.0590551181102)) ;
#245=CARTESIAN_POINT('Line Origine',(-0.295275590551,1.77165354331,0.0590551181102)) ;
#249=CARTESIAN_POINT('Vertex',(-0.590551181102,1.77165354331,0.0590551181102)) ;
#252=CARTESIAN_POINT('Line Origine',(-0.590551181102,1.47637795276,0.0590551181102)) ;
#256=CARTESIAN_POINT('Vertex',(-0.590551181102,1.1811023622,0.0590551181102)) ;
#259=CARTESIAN_POINT('Line Origine',(-1.1811023622,1.1811023622,0.0590551181102)) ;
#263=CARTESIAN_POINT('Vertex',(-1.77165354331,1.1811023622,0.0590551181102)) ;
#266=CARTESIAN_POINT('Line Origine',(-1.77165354331,0.590551181102,0.0590551181102)) ;
#270=CARTESIAN_POINT('Vertex',(-1.77165354331,0.,0.0590551181102)) ;
#273=CARTESIAN_POINT('Line Origine',(-1.77165354331,-0.590551181102,0.0590551181102)) ;
#277=CARTESIAN_POINT('Vertex',(-1.77165354331,-1.1811023622,0.0590551181102)) ;
#280=CARTESIAN_POINT('Line Origine',(-1.1811023622,-1.1811023622,0.0590551181102)) ;
#284=CARTESIAN_POINT('Vertex',(-0.590551181102,-1.1811023622,0.0590551181102)) ;
#287=CARTESIAN_POINT('Line Origine',(-0.590551181102,-1.47637795276,0.0590551181102)) ;
#291=CARTESIAN_POINT('Vertex',(-0.590551181102,-1.77165354331,0.0590551181102)) ;
#294=CARTESIAN_POINT('Line Origine',(-0.295275590551,-1.77165354331,0.0590551181102)) ;
#298=CARTESIAN_POINT('Vertex',(0.,-1.77165354331,0.0590551181102)) ;
#301=CARTESIAN_POINT('Line Origine',(0.,-1.62401574803,0.0590551181102)) ;
#305=CARTESIAN_POINT('Vertex',(0.,-1.47637795276,0.0590551181102)) ;
#308=CARTESIAN_POINT('Line Origine',(-0.147637795276,-1.47637795276,0.0590551181102)) ;
#312=CARTESIAN_POINT('Vertex',(-0.295275590551,-1.47637795276,0.0590551181102)) ;
#315=CARTESIAN_POINT('Line Origine',(-0.295275590551,-1.09128722668,0.0590551181102)) ;
#340=CARTESIAN_POINT('Axis2P3D Location',(-0.393700787402,0.,0.)) ;
#351=CARTESIAN_POINT('Line Origine',(-0.393700787402,0.,-0.0590551181102)) ;
#362=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,-0.0590551181102)) ;
#367=CARTESIAN_POINT('Line Origine',(-0.295275590551,-1.09128722668,-0.0590551181102)) ;
#371=CARTESIAN_POINT('Vertex',(-0.295275590551,-1.47637795276,-0.0590551181102)) ;
#374=CARTESIAN_POINT('Line Origine',(-0.147637795276,-1.47637795276,-0.0590551181102)) ;
#378=CARTESIAN_POINT('Vertex',(0.,-1.47637795276,-0.0590551181102)) ;
#381=CARTESIAN_POINT('Line Origine',(0.,-1.62401574803,-0.0590551181102)) ;
#385=CARTESIAN_POINT('Vertex',(0.,-1.77165354331,-0.0590551181102)) ;
#388=CARTESIAN_POINT('Line Origine',(-0.295275590551,-1.77165354331,-0.0590551181102)) ;
#392=CARTESIAN_POINT('Vertex',(-0.590551181102,-1.77165354331,-0.0590551181102)) ;
#395=CARTESIAN_POINT('Line Origine',(-0.590551181102,-1.47637795276,-0.0590551181102)) ;
#399=CARTESIAN_POINT('Vertex',(-0.590551181102,-1.1811023622,-0.0590551181102)) ;
#402=CARTESIAN_POINT('Line Origine',(-1.1811023622,-1.1811023622,-0.0590551181102)) ;
#406=CARTESIAN_POINT('Vertex',(-1.77165354331,-1.1811023622,-0.0590551181102)) ;
#409=CARTESIAN_POINT('Line Origine',(-1.77165354331,-0.590551181102,-0.0590551181102)) ;
#413=CARTESIAN_POINT('Vertex',(-1.77165354331,0.,-0.0590551181102)) ;
#416=CARTESIAN_POINT('Line Origine',(-1.77165354331,0.590551181102,-0.0590551181102)) ;
#420=CARTESIAN_POINT('Vertex',(-1.77165354331,1.1811023622,-0.0590551181102)) ;
#423=CARTESIAN_POINT('Line Origine',(-1.1811023622,1.1811023622,-0.0590551181102)) ;
#427=CARTESIAN_POINT('Vertex',(-0.590551181102,1.1811023622,-0.0590551181102)) ;
#430=CARTESIAN_POINT('Line Origine',(-0.590551181102,1.47637795276,-0.0590551181102)) ;
#434=CARTESIAN_POINT('Vertex',(-0.590551181102,1.77165354331,-0.0590551181102)) ;
#437=CARTESIAN_POINT('Line Origine',(-0.295275590551,1.77165354331,-0.0590551181102)) ;
#441=CARTESIAN_POINT('Vertex',(0.,1.77165354331,-0.0590551181102)) ;
#444=CARTESIAN_POINT('Line Origine',(0.,1.62401574803,-0.0590551181102)) ;
#448=CARTESIAN_POINT('Vertex',(0.,1.47637795276,-0.0590551181102)) ;
#451=CARTESIAN_POINT('Line Origine',(-0.147637795276,1.47637795276,-0.0590551181102)) ;
#455=CARTESIAN_POINT('Vertex',(-0.295275590551,1.47637795276,-0.0590551181102)) ;
#458=CARTESIAN_POINT('Line Origine',(-0.295275590551,1.09128722668,-0.0590551181102)) ;
#483=CARTESIAN_POINT('Axis2P3D Location',(-0.295275590551,0.,0.0590551181102)) ;
#488=CARTESIAN_POINT('Line Origine',(-0.295275590551,1.47637795276,0.)) ;
#500=CARTESIAN_POINT('Axis2P3D Location',(-0.295275590551,0.,0.0590551181102)) ;
#505=CARTESIAN_POINT('Line Origine',(-0.295275590551,-1.47637795276,0.)) ;
#517=CARTESIAN_POINT('Axis2P3D Location',(-0.295275590551,1.47637795276,0.0590551181102)) ;
#522=CARTESIAN_POINT('Line Origine',(0.,1.47637795276,0.)) ;
#534=CARTESIAN_POINT('Axis2P3D Location',(0.,1.47637795276,0.0590551181102)) ;
#539=CARTESIAN_POINT('Line Origine',(0.,1.77165354331,0.)) ;
#551=CARTESIAN_POINT('Axis2P3D Location',(0.,1.77165354331,0.0590551181102)) ;
#556=CARTESIAN_POINT('Line Origine',(-0.590551181102,1.77165354331,0.)) ;
#568=CARTESIAN_POINT('Axis2P3D Location',(-0.590551181102,1.77165354331,0.0590551181102)) ;
#573=CARTESIAN_POINT('Line Origine',(-0.590551181102,1.1811023622,0.)) ;
#585=CARTESIAN_POINT('Axis2P3D Location',(-0.590551181102,1.1811023622,0.0590551181102)) ;
#590=CARTESIAN_POINT('Line Origine',(-1.77165354331,1.1811023622,0.)) ;
#602=CARTESIAN_POINT('Axis2P3D Location',(-1.77165354331,1.1811023622,0.0590551181102)) ;
#607=CARTESIAN_POINT('Line Origine',(-1.77165354331,-1.1811023622,0.)) ;
#621=CARTESIAN_POINT('Axis2P3D Location',(-0.590551181102,-1.1811023622,0.0590551181102)) ;
#626=CARTESIAN_POINT('Line Origine',(-0.590551181102,-1.1811023622,0.)) ;
#638=CARTESIAN_POINT('Axis2P3D Location',(-0.590551181102,-1.77165354331,0.0590551181102)) ;
#643=CARTESIAN_POINT('Line Origine',(-0.590551181102,-1.77165354331,0.)) ;
#655=CARTESIAN_POINT('Axis2P3D Location',(0.,-1.77165354331,0.0590551181102)) ;
#660=CARTESIAN_POINT('Line Origine',(0.,-1.77165354331,0.)) ;
#672=CARTESIAN_POINT('Axis2P3D Location',(0.,-1.47637795276,0.0590551181102)) ;
#677=CARTESIAN_POINT('Line Origine',(0.,-1.47637795276,0.)) ;
#689=CARTESIAN_POINT('Axis2P3D Location',(-0.295275590551,-1.47637795276,0.0590551181102)) ;
#37=DIRECTION('Axis2P3D Direction',(-0.0393700787402,-0.,-0.)) ;
#38=DIRECTION('Axis2P3D XDirection',(0.,0.,-0.0393700787402)) ;
#103=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#104=DIRECTION('Axis2P3D XDirection',(-0.,-4.82144409113E-018,0.0393700787402)) ;
#108=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#117=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#124=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#129=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#136=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#143=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#150=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#166=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#167=DIRECTION('Axis2P3D XDirection',(0.,0.,-0.0393700787402)) ;
#171=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#180=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#187=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#194=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#199=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#215=DIRECTION('Axis2P3D Direction',(0.,-0.,0.0393700787402)) ;
#216=DIRECTION('Axis2P3D XDirection',(0.,0.0393700787402,0.)) ;
#220=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#225=DIRECTION('Vector Direction',(0.,-0.0393700787402,0.)) ;
#232=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#239=DIRECTION('Vector Direction',(0.,-0.0393700787402,0.)) ;
#246=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#253=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#260=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#267=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#274=DIRECTION('Vector Direction',(0.,-0.0393700787402,0.)) ;
#281=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#288=DIRECTION('Vector Direction',(0.,-0.0393700787402,0.)) ;
#295=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#302=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#309=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#316=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#341=DIRECTION('Axis2P3D Direction',(-0.0393700787402,-0.,-0.)) ;
#342=DIRECTION('Axis2P3D XDirection',(0.,0.,-0.0393700787402)) ;
#352=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#363=DIRECTION('Axis2P3D Direction',(0.,-0.,0.0393700787402)) ;
#364=DIRECTION('Axis2P3D XDirection',(0.,0.0393700787402,0.)) ;
#368=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#375=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#382=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#389=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#396=DIRECTION('Vector Direction',(0.,-0.0393700787402,0.)) ;
#403=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#410=DIRECTION('Vector Direction',(0.,-0.0393700787402,0.)) ;
#417=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#424=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#431=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#438=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#445=DIRECTION('Vector Direction',(0.,-0.0393700787402,0.)) ;
#452=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#459=DIRECTION('Vector Direction',(0.,-0.0393700787402,0.)) ;
#484=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#485=DIRECTION('Axis2P3D XDirection',(0.,0.,0.0393700787402)) ;
#489=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#501=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,-0.)) ;
#502=DIRECTION('Axis2P3D XDirection',(0.,0.,0.0393700787402)) ;
#506=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#518=DIRECTION('Axis2P3D Direction',(0.,0.0393700787402,0.)) ;
#519=DIRECTION('Axis2P3D XDirection',(0.,0.,0.0393700787402)) ;
#523=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#535=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#536=DIRECTION('Axis2P3D XDirection',(0.,0.,0.0393700787402)) ;
#540=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#552=DIRECTION('Axis2P3D Direction',(0.,-0.0393700787402,0.)) ;
#553=DIRECTION('Axis2P3D XDirection',(0.,0.,0.0393700787402)) ;
#557=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#569=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,-0.)) ;
#570=DIRECTION('Axis2P3D XDirection',(0.,0.,0.0393700787402)) ;
#574=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#586=DIRECTION('Axis2P3D Direction',(0.,-0.0393700787402,0.)) ;
#587=DIRECTION('Axis2P3D XDirection',(0.,0.,0.0393700787402)) ;
#591=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#603=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,-0.)) ;
#604=DIRECTION('Axis2P3D XDirection',(0.,0.,0.0393700787402)) ;
#608=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#622=DIRECTION('Axis2P3D Direction',(0.,-0.0393700787402,0.)) ;
#623=DIRECTION('Axis2P3D XDirection',(0.,0.,0.0393700787402)) ;
#627=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#639=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#640=DIRECTION('Axis2P3D XDirection',(0.,0.,0.0393700787402)) ;
#644=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#656=DIRECTION('Axis2P3D Direction',(0.,-0.0393700787402,0.)) ;
#657=DIRECTION('Axis2P3D XDirection',(0.,0.,0.0393700787402)) ;
#661=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#673=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,-0.)) ;
#674=DIRECTION('Axis2P3D XDirection',(0.,0.,0.0393700787402)) ;
#678=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#690=DIRECTION('Axis2P3D Direction',(0.,0.0393700787402,0.)) ;
#691=DIRECTION('Axis2P3D XDirection',(0.,0.,0.0393700787402)) ;
#34=PRESENTATION_LAYER_ASSIGNMENT('0',' ',(#25)) ;
#8=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#5)) ;
#7=PRODUCT_CATEGORY('part','specification') ;
#33=STYLED_ITEM(' ',(#32),#25) ;
#32=PRESENTATION_STYLE_ASSIGNMENT((#31)) ;
#31=SURFACE_STYLE_USAGE(.BOTH.,#30) ;
#30=SURFACE_SIDE_STYLE(' ',(#29)) ;
#29=SURFACE_STYLE_FILL_AREA(#28) ;
#28=FILL_AREA_STYLE(' ',(#27)) ;
#27=FILL_AREA_STYLE_COLOUR(' ',#26) ;
#109=VECTOR('Line Direction',#108,0.0393700787402) ;
#125=VECTOR('Line Direction',#124,0.0393700787402) ;
#130=VECTOR('Line Direction',#129,0.0393700787402) ;
#144=VECTOR('Line Direction',#143,0.0393700787402) ;
#172=VECTOR('Line Direction',#171,0.0393700787402) ;
#188=VECTOR('Line Direction',#187,0.0393700787402) ;
#221=VECTOR('Line Direction',#220,0.0393700787402) ;
#226=VECTOR('Line Direction',#225,0.0393700787402) ;
#233=VECTOR('Line Direction',#232,0.0393700787402) ;
#240=VECTOR('Line Direction',#239,0.0393700787402) ;
#247=VECTOR('Line Direction',#246,0.0393700787402) ;
#254=VECTOR('Line Direction',#253,0.0393700787402) ;
#261=VECTOR('Line Direction',#260,0.0393700787402) ;
#268=VECTOR('Line Direction',#267,0.0393700787402) ;
#275=VECTOR('Line Direction',#274,0.0393700787402) ;
#282=VECTOR('Line Direction',#281,0.0393700787402) ;
#289=VECTOR('Line Direction',#288,0.0393700787402) ;
#296=VECTOR('Line Direction',#295,0.0393700787402) ;
#303=VECTOR('Line Direction',#302,0.0393700787402) ;
#310=VECTOR('Line Direction',#309,0.0393700787402) ;
#317=VECTOR('Line Direction',#316,0.0393700787402) ;
#353=VECTOR('Line Direction',#352,0.0393700787402) ;
#369=VECTOR('Line Direction',#368,0.0393700787402) ;
#376=VECTOR('Line Direction',#375,0.0393700787402) ;
#383=VECTOR('Line Direction',#382,0.0393700787402) ;
#390=VECTOR('Line Direction',#389,0.0393700787402) ;
#397=VECTOR('Line Direction',#396,0.0393700787402) ;
#404=VECTOR('Line Direction',#403,0.0393700787402) ;
#411=VECTOR('Line Direction',#410,0.0393700787402) ;
#418=VECTOR('Line Direction',#417,0.0393700787402) ;
#425=VECTOR('Line Direction',#424,0.0393700787402) ;
#432=VECTOR('Line Direction',#431,0.0393700787402) ;
#439=VECTOR('Line Direction',#438,0.0393700787402) ;
#446=VECTOR('Line Direction',#445,0.0393700787402) ;
#453=VECTOR('Line Direction',#452,0.0393700787402) ;
#460=VECTOR('Line Direction',#459,0.0393700787402) ;
#490=VECTOR('Line Direction',#489,0.0393700787402) ;
#507=VECTOR('Line Direction',#506,0.0393700787402) ;
#524=VECTOR('Line Direction',#523,0.0393700787402) ;
#541=VECTOR('Line Direction',#540,0.0393700787402) ;
#558=VECTOR('Line Direction',#557,0.0393700787402) ;
#575=VECTOR('Line Direction',#574,0.0393700787402) ;
#592=VECTOR('Line Direction',#591,0.0393700787402) ;
#609=VECTOR('Line Direction',#608,0.0393700787402) ;
#628=VECTOR('Line Direction',#627,0.0393700787402) ;
#645=VECTOR('Line Direction',#644,0.0393700787402) ;
#662=VECTOR('Line Direction',#661,0.0393700787402) ;
#679=VECTOR('Line Direction',#678,0.0393700787402) ;
#19=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#18,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#702=SHAPE_REPRESENTATION_RELATIONSHIP(' ',' ',#23,#701) ;
#98=ORIENTED_EDGE('',*,*,#70,.F.) ;
#99=ORIENTED_EDGE('',*,*,#96,.F.) ;
#155=ORIENTED_EDGE('',*,*,#115,.T.) ;
#156=ORIENTED_EDGE('',*,*,#122,.F.) ;
#157=ORIENTED_EDGE('',*,*,#127,.F.) ;
#158=ORIENTED_EDGE('',*,*,#70,.T.) ;
#159=ORIENTED_EDGE('',*,*,#134,.T.) ;
#160=ORIENTED_EDGE('',*,*,#141,.F.) ;
#161=ORIENTED_EDGE('',*,*,#148,.F.) ;
#162=ORIENTED_EDGE('',*,*,#153,.F.) ;
#204=ORIENTED_EDGE('',*,*,#178,.F.) ;
#205=ORIENTED_EDGE('',*,*,#185,.T.) ;
#206=ORIENTED_EDGE('',*,*,#192,.T.) ;
#207=ORIENTED_EDGE('',*,*,#197,.F.) ;
#208=ORIENTED_EDGE('',*,*,#134,.F.) ;
#209=ORIENTED_EDGE('',*,*,#96,.T.) ;
#210=ORIENTED_EDGE('',*,*,#127,.T.) ;
#211=ORIENTED_EDGE('',*,*,#202,.F.) ;
#321=ORIENTED_EDGE('',*,*,#223,.T.) ;
#322=ORIENTED_EDGE('',*,*,#115,.F.) ;
#323=ORIENTED_EDGE('',*,*,#230,.F.) ;
#324=ORIENTED_EDGE('',*,*,#237,.F.) ;
#325=ORIENTED_EDGE('',*,*,#244,.F.) ;
#326=ORIENTED_EDGE('',*,*,#251,.F.) ;
#327=ORIENTED_EDGE('',*,*,#258,.F.) ;
#328=ORIENTED_EDGE('',*,*,#265,.F.) ;
#329=ORIENTED_EDGE('',*,*,#272,.F.) ;
#330=ORIENTED_EDGE('',*,*,#279,.T.) ;
#331=ORIENTED_EDGE('',*,*,#286,.T.) ;
#332=ORIENTED_EDGE('',*,*,#293,.T.) ;
#333=ORIENTED_EDGE('',*,*,#300,.T.) ;
#334=ORIENTED_EDGE('',*,*,#307,.T.) ;
#335=ORIENTED_EDGE('',*,*,#314,.T.) ;
#336=ORIENTED_EDGE('',*,*,#319,.T.) ;
#337=ORIENTED_EDGE('',*,*,#178,.T.) ;
#346=ORIENTED_EDGE('',*,*,#223,.F.) ;
#347=ORIENTED_EDGE('',*,*,#202,.T.) ;
#348=ORIENTED_EDGE('',*,*,#122,.T.) ;
#357=ORIENTED_EDGE('',*,*,#355,.T.) ;
#358=ORIENTED_EDGE('',*,*,#141,.T.) ;
#359=ORIENTED_EDGE('',*,*,#197,.T.) ;
#464=ORIENTED_EDGE('',*,*,#355,.F.) ;
#465=ORIENTED_EDGE('',*,*,#192,.F.) ;
#466=ORIENTED_EDGE('',*,*,#373,.F.) ;
#467=ORIENTED_EDGE('',*,*,#380,.F.) ;
#468=ORIENTED_EDGE('',*,*,#387,.F.) ;
#469=ORIENTED_EDGE('',*,*,#394,.F.) ;
#470=ORIENTED_EDGE('',*,*,#401,.F.) ;
#471=ORIENTED_EDGE('',*,*,#408,.F.) ;
#472=ORIENTED_EDGE('',*,*,#415,.F.) ;
#473=ORIENTED_EDGE('',*,*,#422,.T.) ;
#474=ORIENTED_EDGE('',*,*,#429,.T.) ;
#475=ORIENTED_EDGE('',*,*,#436,.T.) ;
#476=ORIENTED_EDGE('',*,*,#443,.T.) ;
#477=ORIENTED_EDGE('',*,*,#450,.T.) ;
#478=ORIENTED_EDGE('',*,*,#457,.T.) ;
#479=ORIENTED_EDGE('',*,*,#462,.T.) ;
#480=ORIENTED_EDGE('',*,*,#148,.T.) ;
#494=ORIENTED_EDGE('',*,*,#153,.T.) ;
#495=ORIENTED_EDGE('',*,*,#462,.F.) ;
#496=ORIENTED_EDGE('',*,*,#492,.F.) ;
#497=ORIENTED_EDGE('',*,*,#230,.T.) ;
#511=ORIENTED_EDGE('',*,*,#185,.F.) ;
#512=ORIENTED_EDGE('',*,*,#319,.F.) ;
#513=ORIENTED_EDGE('',*,*,#509,.T.) ;
#514=ORIENTED_EDGE('',*,*,#373,.T.) ;
#528=ORIENTED_EDGE('',*,*,#492,.T.) ;
#529=ORIENTED_EDGE('',*,*,#457,.F.) ;
#530=ORIENTED_EDGE('',*,*,#526,.F.) ;
#531=ORIENTED_EDGE('',*,*,#237,.T.) ;
#545=ORIENTED_EDGE('',*,*,#526,.T.) ;
#546=ORIENTED_EDGE('',*,*,#450,.F.) ;
#547=ORIENTED_EDGE('',*,*,#543,.F.) ;
#548=ORIENTED_EDGE('',*,*,#244,.T.) ;
#562=ORIENTED_EDGE('',*,*,#543,.T.) ;
#563=ORIENTED_EDGE('',*,*,#443,.F.) ;
#564=ORIENTED_EDGE('',*,*,#560,.F.) ;
#565=ORIENTED_EDGE('',*,*,#251,.T.) ;
#579=ORIENTED_EDGE('',*,*,#560,.T.) ;
#580=ORIENTED_EDGE('',*,*,#436,.F.) ;
#581=ORIENTED_EDGE('',*,*,#577,.F.) ;
#582=ORIENTED_EDGE('',*,*,#258,.T.) ;
#596=ORIENTED_EDGE('',*,*,#577,.T.) ;
#597=ORIENTED_EDGE('',*,*,#429,.F.) ;
#598=ORIENTED_EDGE('',*,*,#594,.F.) ;
#599=ORIENTED_EDGE('',*,*,#265,.T.) ;
#613=ORIENTED_EDGE('',*,*,#272,.T.) ;
#614=ORIENTED_EDGE('',*,*,#594,.T.) ;
#615=ORIENTED_EDGE('',*,*,#422,.F.) ;
#616=ORIENTED_EDGE('',*,*,#415,.T.) ;
#617=ORIENTED_EDGE('',*,*,#611,.F.) ;
#618=ORIENTED_EDGE('',*,*,#279,.F.) ;
#632=ORIENTED_EDGE('',*,*,#286,.F.) ;
#633=ORIENTED_EDGE('',*,*,#611,.T.) ;
#634=ORIENTED_EDGE('',*,*,#408,.T.) ;
#635=ORIENTED_EDGE('',*,*,#630,.F.) ;
#649=ORIENTED_EDGE('',*,*,#293,.F.) ;
#650=ORIENTED_EDGE('',*,*,#630,.T.) ;
#651=ORIENTED_EDGE('',*,*,#401,.T.) ;
#652=ORIENTED_EDGE('',*,*,#647,.F.) ;
#666=ORIENTED_EDGE('',*,*,#300,.F.) ;
#667=ORIENTED_EDGE('',*,*,#647,.T.) ;
#668=ORIENTED_EDGE('',*,*,#394,.T.) ;
#669=ORIENTED_EDGE('',*,*,#664,.F.) ;
#683=ORIENTED_EDGE('',*,*,#307,.F.) ;
#684=ORIENTED_EDGE('',*,*,#664,.T.) ;
#685=ORIENTED_EDGE('',*,*,#387,.T.) ;
#686=ORIENTED_EDGE('',*,*,#681,.F.) ;
#695=ORIENTED_EDGE('',*,*,#314,.F.) ;
#696=ORIENTED_EDGE('',*,*,#681,.T.) ;
#697=ORIENTED_EDGE('',*,*,#380,.T.) ;
#698=ORIENTED_EDGE('',*,*,#509,.F.) ;
#35=CLOSED_SHELL('Closed Shell',(#101,#164,#213,#339,#350,#361,#482,#499,#516,#533,#550,#567,#584,#601,#620,#637,#654,#671,#688,#700)) ;
#701=ADVANCED_BREP_SHAPE_REPRESENTATION('NONE',(#25),#20) ;
#101=ADVANCED_FACE('*VOL7',(#100),#40,.F.) ;
#164=ADVANCED_FACE('*VOL7',(#163),#106,.T.) ;
#213=ADVANCED_FACE('*VOL7',(#212),#169,.T.) ;
#339=ADVANCED_FACE('*VOL7',(#338),#218,.T.) ;
#350=ADVANCED_FACE('*VOL7',(#349),#344,.T.) ;
#361=ADVANCED_FACE('*VOL7',(#360),#344,.T.) ;
#482=ADVANCED_FACE('*VOL7',(#481),#366,.F.) ;
#499=ADVANCED_FACE('*VOL7',(#498),#487,.F.) ;
#516=ADVANCED_FACE('*VOL7',(#515),#504,.T.) ;
#533=ADVANCED_FACE('*VOL7',(#532),#521,.F.) ;
#550=ADVANCED_FACE('*VOL7',(#549),#538,.F.) ;
#567=ADVANCED_FACE('*VOL7',(#566),#555,.F.) ;
#584=ADVANCED_FACE('*VOL7',(#583),#572,.F.) ;
#601=ADVANCED_FACE('*VOL7',(#600),#589,.F.) ;
#620=ADVANCED_FACE('*VOL7',(#619),#606,.F.) ;
#637=ADVANCED_FACE('*VOL7',(#636),#625,.T.) ;
#654=ADVANCED_FACE('*VOL7',(#653),#642,.T.) ;
#671=ADVANCED_FACE('*VOL7',(#670),#659,.T.) ;
#688=ADVANCED_FACE('*VOL7',(#687),#676,.T.) ;
#700=ADVANCED_FACE('*VOL7',(#699),#693,.T.) ;
#4=APPLICATION_PROTOCOL_DEFINITION('international standard','automotive_design',2001,#1) ;
#41=B_SPLINE_CURVE_WITH_KNOTS('',5,(#42,#43,#44,#45,#46,#47,#48,#49,#50,#51,#52,#53,#54,#55,#56,#57,#58,#59,#60,#61,#62,#63,#64,#65),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,6),(0.,13.8141111457,27.6282222955,41.4423334075,55.2564445238,69.0705556547,82.8846668006,83.5200852343),.UNSPECIFIED.) ;
#71=B_SPLINE_CURVE_WITH_KNOTS('',5,(#72,#73,#74,#75,#76,#77,#78,#79,#80,#81,#82,#83,#84,#85,#86,#87,#88,#89,#90,#91,#92,#93,#94,#95),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,3,6),(0.,13.8141111467,27.6282222964,41.4423334083,55.2564445247,69.0705556556,82.8846668015,83.5200852351),.UNSPECIFIED.) ;
#25=MANIFOLD_SOLID_BREP('*VOL7',#35) ;
#119=CIRCLE('generated circle',#118,0.708661417323) ;
#138=CIRCLE('generated circle',#137,0.708661417323) ;
#152=CIRCLE('generated circle',#151,0.708661417323) ;
#182=CIRCLE('generated circle',#181,0.708661417323) ;
#196=CIRCLE('generated circle',#195,0.708661417323) ;
#201=CIRCLE('generated circle',#200,0.708661417323) ;
#106=CYLINDRICAL_SURFACE('generated cylinder',#105,0.708661417323) ;
#169=CYLINDRICAL_SURFACE('generated cylinder',#168,0.708661417323) ;
#26=DRAUGHTING_PRE_DEFINED_COLOUR('yellow') ;
#70=EDGE_CURVE('',#67,#69,#41,.T.) ;
#96=EDGE_CURVE('',#69,#67,#71,.T.) ;
#115=EDGE_CURVE('',#112,#114,#110,.T.) ;
#122=EDGE_CURVE('',#121,#114,#119,.T.) ;
#127=EDGE_CURVE('',#67,#121,#126,.T.) ;
#134=EDGE_CURVE('',#69,#133,#131,.T.) ;
#141=EDGE_CURVE('',#140,#133,#138,.T.) ;
#148=EDGE_CURVE('',#147,#140,#145,.T.) ;
#153=EDGE_CURVE('',#112,#147,#152,.T.) ;
#178=EDGE_CURVE('',#175,#177,#173,.T.) ;
#185=EDGE_CURVE('',#175,#184,#182,.F.) ;
#192=EDGE_CURVE('',#184,#191,#189,.T.) ;
#197=EDGE_CURVE('',#133,#191,#196,.T.) ;
#202=EDGE_CURVE('',#177,#121,#201,.T.) ;
#223=EDGE_CURVE('',#177,#114,#222,.T.) ;
#230=EDGE_CURVE('',#229,#112,#227,.T.) ;
#237=EDGE_CURVE('',#236,#229,#234,.T.) ;
#244=EDGE_CURVE('',#243,#236,#241,.T.) ;
#251=EDGE_CURVE('',#250,#243,#248,.T.) ;
#258=EDGE_CURVE('',#257,#250,#255,.T.) ;
#265=EDGE_CURVE('',#264,#257,#262,.T.) ;
#272=EDGE_CURVE('',#271,#264,#269,.T.) ;
#279=EDGE_CURVE('',#271,#278,#276,.T.) ;
#286=EDGE_CURVE('',#278,#285,#283,.T.) ;
#293=EDGE_CURVE('',#285,#292,#290,.T.) ;
#300=EDGE_CURVE('',#292,#299,#297,.T.) ;
#307=EDGE_CURVE('',#299,#306,#304,.T.) ;
#314=EDGE_CURVE('',#306,#313,#311,.T.) ;
#319=EDGE_CURVE('',#313,#175,#318,.T.) ;
#355=EDGE_CURVE('',#191,#140,#354,.T.) ;
#373=EDGE_CURVE('',#372,#184,#370,.T.) ;
#380=EDGE_CURVE('',#379,#372,#377,.T.) ;
#387=EDGE_CURVE('',#386,#379,#384,.T.) ;
#394=EDGE_CURVE('',#393,#386,#391,.T.) ;
#401=EDGE_CURVE('',#400,#393,#398,.T.) ;
#408=EDGE_CURVE('',#407,#400,#405,.T.) ;
#415=EDGE_CURVE('',#414,#407,#412,.T.) ;
#422=EDGE_CURVE('',#414,#421,#419,.T.) ;
#429=EDGE_CURVE('',#421,#428,#426,.T.) ;
#436=EDGE_CURVE('',#428,#435,#433,.T.) ;
#443=EDGE_CURVE('',#435,#442,#440,.T.) ;
#450=EDGE_CURVE('',#442,#449,#447,.T.) ;
#457=EDGE_CURVE('',#449,#456,#454,.T.) ;
#462=EDGE_CURVE('',#456,#147,#461,.T.) ;
#492=EDGE_CURVE('',#229,#456,#491,.T.) ;
#509=EDGE_CURVE('',#313,#372,#508,.T.) ;
#526=EDGE_CURVE('',#236,#449,#525,.T.) ;
#543=EDGE_CURVE('',#243,#442,#542,.T.) ;
#560=EDGE_CURVE('',#250,#435,#559,.T.) ;
#577=EDGE_CURVE('',#257,#428,#576,.T.) ;
#594=EDGE_CURVE('',#264,#421,#593,.T.) ;
#611=EDGE_CURVE('',#278,#407,#610,.T.) ;
#630=EDGE_CURVE('',#285,#400,#629,.T.) ;
#647=EDGE_CURVE('',#292,#393,#646,.T.) ;
#664=EDGE_CURVE('',#299,#386,#663,.T.) ;
#681=EDGE_CURVE('',#306,#379,#680,.T.) ;
#97=EDGE_LOOP('',(#98,#99)) ;
#154=EDGE_LOOP('',(#155,#156,#157,#158,#159,#160,#161,#162)) ;
#203=EDGE_LOOP('',(#204,#205,#206,#207,#208,#209,#210,#211)) ;
#320=EDGE_LOOP('',(#321,#322,#323,#324,#325,#326,#327,#328,#329,#330,#331,#332,#333,#334,#335,#336,#337)) ;
#345=EDGE_LOOP('',(#346,#347,#348)) ;
#356=EDGE_LOOP('',(#357,#358,#359)) ;
#463=EDGE_LOOP('',(#464,#465,#466,#467,#468,#469,#470,#471,#472,#473,#474,#475,#476,#477,#478,#479,#480)) ;
#493=EDGE_LOOP('',(#494,#495,#496,#497)) ;
#510=EDGE_LOOP('',(#511,#512,#513,#514)) ;
#527=EDGE_LOOP('',(#528,#529,#530,#531)) ;
#544=EDGE_LOOP('',(#545,#546,#547,#548)) ;
#561=EDGE_LOOP('',(#562,#563,#564,#565)) ;
#578=EDGE_LOOP('',(#579,#580,#581,#582)) ;
#595=EDGE_LOOP('',(#596,#597,#598,#599)) ;
#612=EDGE_LOOP('',(#613,#614,#615,#616,#617,#618)) ;
#631=EDGE_LOOP('',(#632,#633,#634,#635)) ;
#648=EDGE_LOOP('',(#649,#650,#651,#652)) ;
#665=EDGE_LOOP('',(#666,#667,#668,#669)) ;
#682=EDGE_LOOP('',(#683,#684,#685,#686)) ;
#694=EDGE_LOOP('',(#695,#696,#697,#698)) ;
#100=FACE_OUTER_BOUND('',#97,.T.) ;
#163=FACE_OUTER_BOUND('',#154,.T.) ;
#212=FACE_OUTER_BOUND('',#203,.T.) ;
#338=FACE_OUTER_BOUND('',#320,.T.) ;
#349=FACE_OUTER_BOUND('',#345,.T.) ;
#360=FACE_OUTER_BOUND('',#356,.T.) ;
#481=FACE_OUTER_BOUND('',#463,.T.) ;
#498=FACE_OUTER_BOUND('',#493,.T.) ;
#515=FACE_OUTER_BOUND('',#510,.T.) ;
#532=FACE_OUTER_BOUND('',#527,.T.) ;
#549=FACE_OUTER_BOUND('',#544,.T.) ;
#566=FACE_OUTER_BOUND('',#561,.T.) ;
#583=FACE_OUTER_BOUND('',#578,.T.) ;
#600=FACE_OUTER_BOUND('',#595,.T.) ;
#619=FACE_OUTER_BOUND('',#612,.T.) ;
#636=FACE_OUTER_BOUND('',#631,.T.) ;
#653=FACE_OUTER_BOUND('',#648,.T.) ;
#670=FACE_OUTER_BOUND('',#665,.T.) ;
#687=FACE_OUTER_BOUND('',#682,.T.) ;
#699=FACE_OUTER_BOUND('',#694,.T.) ;
#16=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#12) ;
#110=LINE('Line',#107,#109) ;
#126=LINE('Line',#123,#125) ;
#131=LINE('Line',#128,#130) ;
#145=LINE('Line',#142,#144) ;
#173=LINE('Line',#170,#172) ;
#189=LINE('Line',#186,#188) ;
#222=LINE('Line',#219,#221) ;
#227=LINE('Line',#224,#226) ;
#234=LINE('Line',#231,#233) ;
#241=LINE('Line',#238,#240) ;
#248=LINE('Line',#245,#247) ;
#255=LINE('Line',#252,#254) ;
#262=LINE('Line',#259,#261) ;
#269=LINE('Line',#266,#268) ;
#276=LINE('Line',#273,#275) ;
#283=LINE('Line',#280,#282) ;
#290=LINE('Line',#287,#289) ;
#297=LINE('Line',#294,#296) ;
#304=LINE('Line',#301,#303) ;
#311=LINE('Line',#308,#310) ;
#318=LINE('Line',#315,#317) ;
#354=LINE('Line',#351,#353) ;
#370=LINE('Line',#367,#369) ;
#377=LINE('Line',#374,#376) ;
#384=LINE('Line',#381,#383) ;
#391=LINE('Line',#388,#390) ;
#398=LINE('Line',#395,#397) ;
#405=LINE('Line',#402,#404) ;
#412=LINE('Line',#409,#411) ;
#419=LINE('Line',#416,#418) ;
#426=LINE('Line',#423,#425) ;
#433=LINE('Line',#430,#432) ;
#440=LINE('Line',#437,#439) ;
#447=LINE('Line',#444,#446) ;
#454=LINE('Line',#451,#453) ;
#461=LINE('Line',#458,#460) ;
#491=LINE('Line',#488,#490) ;
#508=LINE('Line',#505,#507) ;
#525=LINE('Line',#522,#524) ;
#542=LINE('Line',#539,#541) ;
#559=LINE('Line',#556,#558) ;
#576=LINE('Line',#573,#575) ;
#593=LINE('Line',#590,#592) ;
#610=LINE('Line',#607,#609) ;
#629=LINE('Line',#626,#628) ;
#646=LINE('Line',#643,#645) ;
#663=LINE('Line',#660,#662) ;
#680=LINE('Line',#677,#679) ;
#40=PLANE('Plane',#39) ;
#218=PLANE('Plane',#217) ;
#344=PLANE('Plane',#343) ;
#366=PLANE('Plane',#365) ;
#487=PLANE('Plane',#486) ;
#504=PLANE('Plane',#503) ;
#521=PLANE('Plane',#520) ;
#538=PLANE('Plane',#537) ;
#555=PLANE('Plane',#554) ;
#572=PLANE('Plane',#571) ;
#589=PLANE('Plane',#588) ;
#606=PLANE('Plane',#605) ;
#625=PLANE('Plane',#624) ;
#642=PLANE('Plane',#641) ;
#659=PLANE('Plane',#658) ;
#676=PLANE('Plane',#675) ;
#693=PLANE('Plane',#692) ;
#14=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.0174532925199),#13) ;
#9=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#7,#8) ;
#6=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#5,.NOT_KNOWN.) ;
#24=SHAPE_DEFINITION_REPRESENTATION(#11,#23) ;
#67=VERTEX_POINT('',#66) ;
#69=VERTEX_POINT('',#68) ;
#112=VERTEX_POINT('',#111) ;
#114=VERTEX_POINT('',#113) ;
#121=VERTEX_POINT('',#120) ;
#133=VERTEX_POINT('',#132) ;
#140=VERTEX_POINT('',#139) ;
#147=VERTEX_POINT('',#146) ;
#175=VERTEX_POINT('',#174) ;
#177=VERTEX_POINT('',#176) ;
#184=VERTEX_POINT('',#183) ;
#191=VERTEX_POINT('',#190) ;
#229=VERTEX_POINT('',#228) ;
#236=VERTEX_POINT('',#235) ;
#243=VERTEX_POINT('',#242) ;
#250=VERTEX_POINT('',#249) ;
#257=VERTEX_POINT('',#256) ;
#264=VERTEX_POINT('',#263) ;
#271=VERTEX_POINT('',#270) ;
#278=VERTEX_POINT('',#277) ;
#285=VERTEX_POINT('',#284) ;
#292=VERTEX_POINT('',#291) ;
#299=VERTEX_POINT('',#298) ;
#306=VERTEX_POINT('',#305) ;
#313=VERTEX_POINT('',#312) ;
#372=VERTEX_POINT('',#371) ;
#379=VERTEX_POINT('',#378) ;
#386=VERTEX_POINT('',#385) ;
#393=VERTEX_POINT('',#392) ;
#400=VERTEX_POINT('',#399) ;
#407=VERTEX_POINT('',#406) ;
#414=VERTEX_POINT('',#413) ;
#421=VERTEX_POINT('',#420) ;
#428=VERTEX_POINT('',#427) ;
#435=VERTEX_POINT('',#434) ;
#442=VERTEX_POINT('',#441) ;
#449=VERTEX_POINT('',#448) ;
#456=VERTEX_POINT('',#455) ;
#12=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)) ;
#13=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)) ;
#15=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()) ;
#18=(CONVERSION_BASED_UNIT('INCH',#16)LENGTH_UNIT()NAMED_UNIT(#17)) ;
#20=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#19))GLOBAL_UNIT_ASSIGNED_CONTEXT((#18,#13,#15))REPRESENTATION_CONTEXT(' ',' ')) ;
ENDSEC;
END-ISO-10303-21;
@@ -0,0 +1,25 @@
STEPcheck v 2.0 (February 21, 2000) for stepcheck_stage_1_2 schema
Copyright ERIM (July 1997)
Checking STEP file: TAIL_MIDDLE_PART.stp
Reading Data from TAIL_MIDDLE_PART.stp...
HEADER read:
FIRST PASS complete: 703 instances created.
0 ERRORS 0 WARNINGS
SECOND PASS complete: 703 instances valid.
0 ERRORS 0 WARNINGS
Finished reading file.
total violations = 0
total parse errors = 0
total parse warnings = 0
elapsed time : 1.318 seconds
+717
View File
@@ -0,0 +1,717 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('CATIA V5 STEP'),'2;1');
FILE_NAME('E:\\Public\\Archive_PDES\\TR22\\NativeFiles\\s1\\TAIL_TURBINE.stp','2008-08-18T12:41:44+00:00',('none'),('none'),'CATIA Version 5 Release 19 SP 1 (IN-PROTO)','CATIA V5 STEP AP214','none');
FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
ENDSEC;
/* file written by CATIA V5R19 */
DATA;
#5=PRODUCT('TAIL_TURBINE','TAIL_TURBINE',' ',(#2)) ;
#2=PRODUCT_CONTEXT(' ',#1,'mechanical') ;
#1=APPLICATION_CONTEXT('automotive design') ;
#10=PRODUCT_DEFINITION(' ',' ',#6,#3) ;
#3=PRODUCT_DEFINITION_CONTEXT('part definition',#1,' ') ;
#11=PRODUCT_DEFINITION_SHAPE(' ',' ',#10) ;
#17=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#704=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION(' ',(#33),#20) ;
#23=SHAPE_REPRESENTATION(' ',(#22),#20) ;
#22=AXIS2_PLACEMENT_3D(' ',#21,$,$) ;
#39=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#36,#37,#38) ;
#151=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#148,#149,#150) ;
#180=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#178,#179,$) ;
#185=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#183,#184,$) ;
#190=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#188,#189,$) ;
#227=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#225,#226,$) ;
#255=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#252,#253,#254) ;
#290=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#287,#288,#289) ;
#314=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#311,#312,#313) ;
#338=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#335,#336,#337) ;
#362=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#359,#360,#361) ;
#395=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#392,#393,#394) ;
#419=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#416,#417,#418) ;
#443=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#440,#441,#442) ;
#467=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#464,#465,#466) ;
#495=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#492,#493,#494) ;
#505=AXIS2_PLACEMENT_3D('Sphere Axis2P3D',#502,#503,#504) ;
#519=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#517,#518,$) ;
#547=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#545,#546,$) ;
#562=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#559,#560,#561) ;
#573=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#571,#572,$) ;
#597=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#594,#595,#596) ;
#621=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#618,#619,#620) ;
#645=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#642,#643,#644) ;
#662=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#659,#660,#661) ;
#688=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#685,#686,#687) ;
#21=CARTESIAN_POINT(' ',(0.,0.,0.)) ;
#36=CARTESIAN_POINT('Axis2P3D Location',(-7.87401574803,3.11023622047,0.)) ;
#41=CARTESIAN_POINT('Line Origine',(-7.08661417323,3.11023622047,0.707566958859)) ;
#45=CARTESIAN_POINT('Vertex',(-7.87401574803,3.11023622047,0.707566958859)) ;
#47=CARTESIAN_POINT('Vertex',(-6.29921259843,3.11023622047,0.707566958859)) ;
#50=CARTESIAN_POINT('Line Origine',(-6.29921259843,3.11023622047,1.14118505423)) ;
#54=CARTESIAN_POINT('Vertex',(-6.29921259843,3.11023622047,1.57480314961)) ;
#57=CARTESIAN_POINT('Line Origine',(-7.03386826921,3.11023622047,1.77165354331)) ;
#61=CARTESIAN_POINT('Vertex',(-7.76852394,3.11023622047,1.96850393701)) ;
#64=CARTESIAN_POINT('Line Origine',(-8.26064992425,3.11023622047,1.96850393701)) ;
#68=CARTESIAN_POINT('Vertex',(-8.7527759085,3.11023622047,1.96850393701)) ;
#71=CARTESIAN_POINT('Line Origine',(-9.10079740307,3.11023622047,1.87007874016)) ;
#75=CARTESIAN_POINT('Vertex',(-9.44881889764,3.11023622047,1.77165354331)) ;
#78=CARTESIAN_POINT('Line Origine',(-9.44881889764,3.11023622047,0.885826771654)) ;
#82=CARTESIAN_POINT('Vertex',(-9.44881889764,3.11023622047,0.)) ;
#85=CARTESIAN_POINT('Line Origine',(-9.44881889764,3.11023622047,-0.885826771654)) ;
#89=CARTESIAN_POINT('Vertex',(-9.44881889764,3.11023622047,-1.77165354331)) ;
#92=CARTESIAN_POINT('Line Origine',(-9.10079740307,3.11023622047,-1.87007874016)) ;
#96=CARTESIAN_POINT('Vertex',(-8.7527759085,3.11023622047,-1.96850393701)) ;
#99=CARTESIAN_POINT('Line Origine',(-8.26064992425,3.11023622047,-1.96850393701)) ;
#103=CARTESIAN_POINT('Vertex',(-7.76852394,3.11023622047,-1.96850393701)) ;
#106=CARTESIAN_POINT('Line Origine',(-7.03386826921,3.11023622047,-1.77165354331)) ;
#110=CARTESIAN_POINT('Vertex',(-6.29921259843,3.11023622047,-1.57480314961)) ;
#113=CARTESIAN_POINT('Line Origine',(-6.29921259843,3.11023622047,-1.14118505423)) ;
#117=CARTESIAN_POINT('Vertex',(-6.29921259843,3.11023622047,-0.707566958859)) ;
#120=CARTESIAN_POINT('Line Origine',(-7.08661417323,3.11023622047,-0.707566958859)) ;
#124=CARTESIAN_POINT('Vertex',(-7.87401574803,3.11023622047,-0.707566958859)) ;
#127=CARTESIAN_POINT('Line Origine',(-7.87401574803,3.11023622047,0.)) ;
#148=CARTESIAN_POINT('Axis2P3D Location',(-7.87401574803,3.14960629921,0.)) ;
#154=CARTESIAN_POINT('Control Point',(-5.49531368179,2.44340978485,0.0590549532189)) ;
#155=CARTESIAN_POINT('Control Point',(-5.49226508262,2.44929995974,0.129491398457)) ;
#156=CARTESIAN_POINT('Control Point',(-5.48470251501,2.46396546898,0.199117188699)) ;
#157=CARTESIAN_POINT('Control Point',(-5.47266122329,2.48716747371,0.265799514272)) ;
#158=CARTESIAN_POINT('Control Point',(-5.4433346629,2.54329589658,0.379938195256)) ;
#159=CARTESIAN_POINT('Control Point',(-5.40259987579,2.6205630849,0.476423429666)) ;
#160=CARTESIAN_POINT('Control Point',(-5.38206091876,2.65938991435,0.516131690689)) ;
#161=CARTESIAN_POINT('Control Point',(-5.3231390114,2.77002088551,0.609418308478)) ;
#162=CARTESIAN_POINT('Control Point',(-5.25407169175,2.89743733858,0.670806208669)) ;
#163=CARTESIAN_POINT('Control Point',(-5.20841333659,2.98051839452,0.696120248789)) ;
#164=CARTESIAN_POINT('Control Point',(-5.16129833784,3.06528575715,0.708661417323)) ;
#165=CARTESIAN_POINT('Control Point',(-5.1137247895,3.14960629921,0.708661417323)) ;
#166=CARTESIAN_POINT('Vertex',(-5.49531368179,2.44340978485,0.0590549532189)) ;
#168=CARTESIAN_POINT('Vertex',(-5.1137247895,3.14960629921,0.708661417323)) ;
#171=CARTESIAN_POINT('Line Origine',(-7.87401574803,3.14960629921,0.708661417323)) ;
#175=CARTESIAN_POINT('Vertex',(-6.29921259843,3.14960629921,0.708661417323)) ;
#178=CARTESIAN_POINT('Axis2P3D Location',(-6.29921259843,3.14960629921,0.)) ;
#183=CARTESIAN_POINT('Axis2P3D Location',(-7.87401574803,3.14960629921,0.)) ;
#188=CARTESIAN_POINT('Axis2P3D Location',(-6.29921259843,3.14960629921,0.)) ;
#192=CARTESIAN_POINT('Vertex',(-6.29921259843,3.14960629921,-0.708661417323)) ;
#195=CARTESIAN_POINT('Line Origine',(-7.87401574803,3.14960629921,-0.708661417323)) ;
#199=CARTESIAN_POINT('Vertex',(-5.1137247895,3.14960629921,-0.708661417323)) ;
#203=CARTESIAN_POINT('Control Point',(-5.1137247895,3.14960629921,-0.708661417323)) ;
#204=CARTESIAN_POINT('Control Point',(-5.1670434202,3.05510303006,-0.708661417323)) ;
#205=CARTESIAN_POINT('Control Point',(-5.21979595677,2.96001969452,-0.692908358701)) ;
#206=CARTESIAN_POINT('Control Point',(-5.27040940924,2.86756414984,-0.661173028417)) ;
#207=CARTESIAN_POINT('Control Point',(-5.34952582736,2.72101880063,-0.580409462622)) ;
#208=CARTESIAN_POINT('Control Point',(-5.41292027437,2.60112364111,-0.456825343512)) ;
#209=CARTESIAN_POINT('Control Point',(-5.43564262538,2.55787437675,-0.39966057489)) ;
#210=CARTESIAN_POINT('Control Point',(-5.46555113891,2.50076774003,-0.29988353167)) ;
#211=CARTESIAN_POINT('Control Point',(-5.48440677787,2.46451097666,-0.188950800285)) ;
#212=CARTESIAN_POINT('Control Point',(-5.48979094097,2.45411969323,-0.146300390543)) ;
#213=CARTESIAN_POINT('Control Point',(-5.49344328519,2.44706963554,-0.102820525198)) ;
#214=CARTESIAN_POINT('Control Point',(-5.4953285207,2.44340978485,-0.0590549532189)) ;
#215=CARTESIAN_POINT('Vertex',(-5.4953285207,2.44340978485,-0.0590549532189)) ;
#218=CARTESIAN_POINT('Line Origine',(-7.87401574803,2.44340978485,-0.0590549532189)) ;
#222=CARTESIAN_POINT('Vertex',(-6.2839950022,2.44340978485,-0.0590549532189)) ;
#225=CARTESIAN_POINT('Axis2P3D Location',(-6.2839950022,3.14960629921,0.)) ;
#229=CARTESIAN_POINT('Vertex',(-6.2839950022,2.44340979864,0.0590551181089)) ;
#232=CARTESIAN_POINT('Line Origine',(-7.87401574803,2.44340978485,0.0590549532189)) ;
#252=CARTESIAN_POINT('Axis2P3D Location',(-6.29921259843,3.11023622047,1.57480314961)) ;
#257=CARTESIAN_POINT('Line Origine',(-6.29921259843,3.18897637795,1.14118505423)) ;
#261=CARTESIAN_POINT('Vertex',(-6.29921259843,3.18897637795,0.707566958859)) ;
#263=CARTESIAN_POINT('Vertex',(-6.29921259843,3.18897637795,1.57480314961)) ;
#266=CARTESIAN_POINT('Line Origine',(-6.29921259843,3.14960629921,1.57480314961)) ;
#272=CARTESIAN_POINT('Control Point',(-6.29921259843,3.18897637795,0.707566958859)) ;
#273=CARTESIAN_POINT('Control Point',(-6.29921259843,3.18111097934,0.70800460136)) ;
#274=CARTESIAN_POINT('Control Point',(-6.29921259843,3.17323949982,0.708332952974)) ;
#275=CARTESIAN_POINT('Control Point',(-6.29921259843,3.16536142858,0.708551957379)) ;
#276=CARTESIAN_POINT('Control Point',(-6.29921259843,3.15748386401,0.708661417323)) ;
#277=CARTESIAN_POINT('Control Point',(-6.29921259843,3.14960629921,0.708661417323)) ;
#287=CARTESIAN_POINT('Axis2P3D Location',(-6.29921259843,3.11023622047,1.57480314961)) ;
#292=CARTESIAN_POINT('Line Origine',(-7.03386826923,3.18897637795,1.77165354331)) ;
#296=CARTESIAN_POINT('Vertex',(-7.76852394,3.18897637795,1.96850393701)) ;
#299=CARTESIAN_POINT('Line Origine',(-7.76852394003,3.14960629921,1.96850393702)) ;
#311=CARTESIAN_POINT('Axis2P3D Location',(-8.7527759085,3.11023622047,1.96850393701)) ;
#316=CARTESIAN_POINT('Line Origine',(-8.26064992425,3.18897637795,1.96850393701)) ;
#320=CARTESIAN_POINT('Vertex',(-8.7527759085,3.18897637795,1.96850393701)) ;
#323=CARTESIAN_POINT('Line Origine',(-8.7527759085,3.14960629921,1.96850393701)) ;
#335=CARTESIAN_POINT('Axis2P3D Location',(-8.7527759085,3.11023622047,1.96850393701)) ;
#340=CARTESIAN_POINT('Line Origine',(-9.10079740306,3.18897637795,1.87007874016)) ;
#344=CARTESIAN_POINT('Vertex',(-9.44881889764,3.18897637795,1.77165354331)) ;
#347=CARTESIAN_POINT('Line Origine',(-9.44881889761,3.14960629921,1.77165354332)) ;
#359=CARTESIAN_POINT('Axis2P3D Location',(-9.44881889764,3.11023622047,1.77165354331)) ;
#364=CARTESIAN_POINT('Line Origine',(-9.44881889764,3.18897637795,0.885826771654)) ;
#368=CARTESIAN_POINT('Vertex',(-9.44881889764,3.18897637795,0.)) ;
#371=CARTESIAN_POINT('Line Origine',(-9.44881889764,3.18897637795,-0.885826771654)) ;
#375=CARTESIAN_POINT('Vertex',(-9.44881889764,3.18897637795,-1.77165354331)) ;
#378=CARTESIAN_POINT('Line Origine',(-9.44881889764,3.14960629921,-1.77165354331)) ;
#392=CARTESIAN_POINT('Axis2P3D Location',(-8.7527759085,3.11023622047,-1.96850393701)) ;
#397=CARTESIAN_POINT('Line Origine',(-9.10079740306,3.18897637795,-1.87007874016)) ;
#401=CARTESIAN_POINT('Vertex',(-8.7527759085,3.18897637795,-1.96850393701)) ;
#404=CARTESIAN_POINT('Line Origine',(-8.7527759085,3.14960629921,-1.96850393701)) ;
#416=CARTESIAN_POINT('Axis2P3D Location',(-8.7527759085,3.11023622047,-1.96850393701)) ;
#421=CARTESIAN_POINT('Line Origine',(-8.26064992425,3.18897637795,-1.96850393701)) ;
#425=CARTESIAN_POINT('Vertex',(-7.76852394,3.18897637795,-1.96850393701)) ;
#428=CARTESIAN_POINT('Line Origine',(-7.76852394,3.14960629921,-1.96850393701)) ;
#440=CARTESIAN_POINT('Axis2P3D Location',(-6.29921259843,3.11023622047,-1.57480314961)) ;
#445=CARTESIAN_POINT('Line Origine',(-7.03386826923,3.18897637795,-1.77165354331)) ;
#449=CARTESIAN_POINT('Vertex',(-6.29921259843,3.18897637795,-1.57480314961)) ;
#452=CARTESIAN_POINT('Line Origine',(-6.29921259843,3.14960629921,-1.57480314961)) ;
#464=CARTESIAN_POINT('Axis2P3D Location',(-6.29921259843,3.11023622047,-1.57480314961)) ;
#469=CARTESIAN_POINT('Line Origine',(-6.29921259843,3.18897637795,-1.14118505423)) ;
#473=CARTESIAN_POINT('Vertex',(-6.29921259843,3.18897637795,-0.707566958859)) ;
#477=CARTESIAN_POINT('Control Point',(-6.29921259843,3.18897637795,-0.707566958859)) ;
#478=CARTESIAN_POINT('Control Point',(-6.29921259843,3.18111097934,-0.70800460136)) ;
#479=CARTESIAN_POINT('Control Point',(-6.29921259843,3.17323949982,-0.708332952974)) ;
#480=CARTESIAN_POINT('Control Point',(-6.29921259843,3.16536142858,-0.708551957379)) ;
#481=CARTESIAN_POINT('Control Point',(-6.29921259843,3.15748386401,-0.708661417323)) ;
#482=CARTESIAN_POINT('Control Point',(-6.29921259843,3.14960629921,-0.708661417323)) ;
#492=CARTESIAN_POINT('Axis2P3D Location',(-7.87401574803,3.14960629921,0.)) ;
#502=CARTESIAN_POINT('Axis2P3D Location',(-0.787401574803,0.708661417323,0.)) ;
#508=CARTESIAN_POINT('Control Point',(-5.37684514941,2.7362213792,0.0590551133168)) ;
#509=CARTESIAN_POINT('Control Point',(-5.37735213513,2.73622043626,0.0196873035574)) ;
#510=CARTESIAN_POINT('Control Point',(-5.37735213445,2.73622043779,-0.0196873035494)) ;
#511=CARTESIAN_POINT('Control Point',(-5.37684515181,2.73622137378,-0.0590551133478)) ;
#512=CARTESIAN_POINT('Vertex',(-5.37684514941,2.7362213792,0.0590551133168)) ;
#514=CARTESIAN_POINT('Vertex',(-5.37684551978,2.73622054052,-0.0590551253363)) ;
#517=CARTESIAN_POINT('Axis2P3D Location',(-0.787401574803,0.708661417323,-0.0590551253363)) ;
#523=CARTESIAN_POINT('Control Point',(-5.11372425262,3.14960599629,0.708661329377)) ;
#524=CARTESIAN_POINT('Control Point',(-5.04281458847,3.2752849993,0.708665008155)) ;
#525=CARTESIAN_POINT('Control Point',(-4.97068747207,3.4006162216,0.680568895395)) ;
#526=CARTESIAN_POINT('Control Point',(-4.90092811413,3.51889627282,0.625865599071)) ;
#527=CARTESIAN_POINT('Control Point',(-4.81234763843,3.66580603447,0.510771628593)) ;
#528=CARTESIAN_POINT('Control Point',(-4.74878234999,3.76923672825,0.350017459746)) ;
#529=CARTESIAN_POINT('Control Point',(-4.73336670198,3.79417509611,0.30193426247)) ;
#530=CARTESIAN_POINT('Control Point',(-4.71038174251,3.83119673523,0.20969167428)) ;
#531=CARTESIAN_POINT('Control Point',(-4.69753217963,3.85178159838,0.110812892286)) ;
#532=CARTESIAN_POINT('Control Point',(-4.69403451478,3.85739005629,0.0658258757386)) ;
#533=CARTESIAN_POINT('Control Point',(-4.69108711921,3.86211609519,-0.0414510872174)) ;
#534=CARTESIAN_POINT('Control Point',(-4.70062289631,3.84682569015,-0.147721065147)) ;
#535=CARTESIAN_POINT('Control Point',(-4.71026961205,3.83138556355,-0.207113967056)) ;
#536=CARTESIAN_POINT('Control Point',(-4.73422882928,3.79284028915,-0.309292265988)) ;
#537=CARTESIAN_POINT('Control Point',(-4.76825776754,3.7375374382,-0.39984945847)) ;
#538=CARTESIAN_POINT('Control Point',(-4.78516914982,3.70992412469,-0.4375530994)) ;
#539=CARTESIAN_POINT('Control Point',(-4.8499617257,3.60350073269,-0.560593363427)) ;
#540=CARTESIAN_POINT('Control Point',(-4.92964446875,3.4699883082,-0.646828951756)) ;
#541=CARTESIAN_POINT('Control Point',(-4.9903927497,3.36632059171,-0.687758029794)) ;
#542=CARTESIAN_POINT('Control Point',(-5.05251161662,3.25809816243,-0.708664505077)) ;
#543=CARTESIAN_POINT('Control Point',(-5.11372425262,3.14960599629,-0.708661329377)) ;
#545=CARTESIAN_POINT('Axis2P3D Location',(-0.787401574803,0.708661417323,0.0590551253361)) ;
#559=CARTESIAN_POINT('Axis2P3D Location',(-7.87401574803,3.14960629921,0.)) ;
#564=CARTESIAN_POINT('Line Origine',(-7.87401574803,3.18897637795,-0.707566958882)) ;
#568=CARTESIAN_POINT('Vertex',(-7.87401574803,3.18897637795,-0.707566958859)) ;
#571=CARTESIAN_POINT('Axis2P3D Location',(-7.87401574803,3.14960629921,0.)) ;
#575=CARTESIAN_POINT('Vertex',(-7.87401574803,3.18897637795,0.707566958859)) ;
#578=CARTESIAN_POINT('Line Origine',(-7.87401574803,3.18897637795,0.707566958882)) ;
#594=CARTESIAN_POINT('Axis2P3D Location',(-6.28399500217,1.75196857152,-0.0590551181102)) ;
#599=CARTESIAN_POINT('Line Origine',(-5.83042026113,2.73622054002,-0.0590551181102)) ;
#603=CARTESIAN_POINT('Vertex',(-6.28399500217,2.73622054002,-0.0590551181102)) ;
#606=CARTESIAN_POINT('Line Origine',(-6.28399500217,2.58981516934,-0.0590551181102)) ;
#618=CARTESIAN_POINT('Axis2P3D Location',(-6.28399500217,2.73622054002,0.0590551181102)) ;
#623=CARTESIAN_POINT('Line Origine',(-6.28399500217,2.73622054002,0.)) ;
#627=CARTESIAN_POINT('Vertex',(-6.28399500217,2.73622054002,0.0590551181102)) ;
#630=CARTESIAN_POINT('Line Origine',(-6.28399500217,2.58981516934,0.0590551181102)) ;
#642=CARTESIAN_POINT('Axis2P3D Location',(-6.28399500217,1.75196857152,0.0590551181102)) ;
#647=CARTESIAN_POINT('Line Origine',(-5.83042026043,2.73622054002,0.0590551181102)) ;
#659=CARTESIAN_POINT('Axis2P3D Location',(-7.87401574803,3.18897637795,0.)) ;
#664=CARTESIAN_POINT('Line Origine',(-7.87401574803,3.18897637795,0.)) ;
#685=CARTESIAN_POINT('Axis2P3D Location',(-6.28399500217,2.73622054002,0.0590551181102)) ;
#37=DIRECTION('Axis2P3D Direction',(0.,-0.0393700787402,0.)) ;
#38=DIRECTION('Axis2P3D XDirection',(0.,0.,0.0393700787402)) ;
#42=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#51=DIRECTION('Vector Direction',(0.,0.,0.0393700787402)) ;
#58=DIRECTION('Vector Direction',(0.0380285758382,0.,-0.0101897261851)) ;
#65=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#72=DIRECTION('Vector Direction',(0.0378841651827,0.,0.0107141555157)) ;
#79=DIRECTION('Vector Direction',(0.,0.,0.0393700787402)) ;
#86=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#93=DIRECTION('Vector Direction',(0.0378841651827,0.,-0.0107141555157)) ;
#100=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#107=DIRECTION('Vector Direction',(0.0380285758382,0.,0.0101897261851)) ;
#114=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#121=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#128=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#149=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,-0.)) ;
#150=DIRECTION('Axis2P3D XDirection',(0.,1.05192548518E-025,0.0393700787402)) ;
#172=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#179=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,-0.)) ;
#184=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,-0.)) ;
#189=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,-0.)) ;
#196=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#219=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#226=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,-0.)) ;
#233=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#253=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#254=DIRECTION('Axis2P3D XDirection',(0.,0.0393700787402,0.)) ;
#258=DIRECTION('Vector Direction',(0.,0.,0.0393700787402)) ;
#267=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#288=DIRECTION('Axis2P3D Direction',(0.0101897261852,-0.,0.0380285758381)) ;
#289=DIRECTION('Axis2P3D XDirection',(0.,0.0393700787402,0.)) ;
#293=DIRECTION('Vector Direction',(0.0380285758381,0.,-0.0101897261852)) ;
#300=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#312=DIRECTION('Axis2P3D Direction',(0.,0.,-0.0393700787402)) ;
#313=DIRECTION('Axis2P3D XDirection',(0.,0.0393700787402,0.)) ;
#317=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#324=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#336=DIRECTION('Axis2P3D Direction',(-0.0107141555156,0.,0.0378841651828)) ;
#337=DIRECTION('Axis2P3D XDirection',(0.,0.0393700787402,0.)) ;
#341=DIRECTION('Vector Direction',(0.0378841651828,0.,0.0107141555156)) ;
#348=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#360=DIRECTION('Axis2P3D Direction',(-0.0393700787402,0.,0.)) ;
#361=DIRECTION('Axis2P3D XDirection',(0.,0.0393700787402,0.)) ;
#365=DIRECTION('Vector Direction',(0.,0.,0.0393700787402)) ;
#372=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#379=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#393=DIRECTION('Axis2P3D Direction',(0.0107141555156,-0.,0.0378841651828)) ;
#394=DIRECTION('Axis2P3D XDirection',(0.,0.0393700787402,0.)) ;
#398=DIRECTION('Vector Direction',(0.0378841651828,0.,-0.0107141555156)) ;
#405=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#417=DIRECTION('Axis2P3D Direction',(0.,0.,-0.0393700787402)) ;
#418=DIRECTION('Axis2P3D XDirection',(0.,0.0393700787402,0.)) ;
#422=DIRECTION('Vector Direction',(-0.0393700787402,0.,0.)) ;
#429=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#441=DIRECTION('Axis2P3D Direction',(-0.0101897261852,0.,0.0380285758381)) ;
#442=DIRECTION('Axis2P3D XDirection',(0.,0.0393700787402,0.)) ;
#446=DIRECTION('Vector Direction',(0.0380285758381,0.,0.0101897261852)) ;
#453=DIRECTION('Vector Direction',(0.,0.0393700787402,0.)) ;
#465=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,0.)) ;
#466=DIRECTION('Axis2P3D XDirection',(0.,0.0393700787402,0.)) ;
#470=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#493=DIRECTION('Axis2P3D Direction',(0.0393700787402,-0.,0.)) ;
#494=DIRECTION('Axis2P3D XDirection',(0.,0.,-0.0393700787402)) ;
#503=DIRECTION('Axis2P3D Direction',(0.,0.,0.0393700787402)) ;
#504=DIRECTION('Axis2P3D XDirection',(2.19490964732E-018,0.0393700787402,0.)) ;
#518=DIRECTION('Axis2P3D Direction',(0.,0.,0.0393700787402)) ;
#546=DIRECTION('Axis2P3D Direction',(0.,0.,0.0393700787402)) ;
#560=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,-0.)) ;
#561=DIRECTION('Axis2P3D XDirection',(0.,-4.82144419632E-018,-0.0393700787402)) ;
#565=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#572=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,-0.)) ;
#579=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#595=DIRECTION('Axis2P3D Direction',(0.,0.,0.0393700787402)) ;
#596=DIRECTION('Axis2P3D XDirection',(0.0393700787402,0.,0.)) ;
#600=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#607=DIRECTION('Vector Direction',(0.,-0.0393700787402,0.)) ;
#619=DIRECTION('Axis2P3D Direction',(0.0393700787402,0.,0.)) ;
#620=DIRECTION('Axis2P3D XDirection',(0.,-0.0393700787402,0.)) ;
#624=DIRECTION('Vector Direction',(0.,0.,0.0393700787402)) ;
#631=DIRECTION('Vector Direction',(0.,-0.0393700787402,0.)) ;
#643=DIRECTION('Axis2P3D Direction',(0.,0.,0.0393700787402)) ;
#644=DIRECTION('Axis2P3D XDirection',(0.0393700787402,0.,0.)) ;
#648=DIRECTION('Vector Direction',(0.0393700787402,0.,0.)) ;
#660=DIRECTION('Axis2P3D Direction',(0.,-0.0393700787402,0.)) ;
#661=DIRECTION('Axis2P3D XDirection',(0.,0.,0.0393700787402)) ;
#665=DIRECTION('Vector Direction',(0.,0.,-0.0393700787402)) ;
#686=DIRECTION('Axis2P3D Direction',(-0.,0.0393700787402,0.)) ;
#687=DIRECTION('Axis2P3D XDirection',(0.0393700787402,0.,0.)) ;
#34=PRESENTATION_LAYER_ASSIGNMENT('0',' ',(#25)) ;
#8=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#5)) ;
#7=PRODUCT_CATEGORY('part','specification') ;
#33=STYLED_ITEM(' ',(#32),#25) ;
#32=PRESENTATION_STYLE_ASSIGNMENT((#31)) ;
#31=SURFACE_STYLE_USAGE(.BOTH.,#30) ;
#30=SURFACE_SIDE_STYLE(' ',(#29)) ;
#29=SURFACE_STYLE_FILL_AREA(#28) ;
#28=FILL_AREA_STYLE(' ',(#27)) ;
#27=FILL_AREA_STYLE_COLOUR(' ',#26) ;
#43=VECTOR('Line Direction',#42,0.0393700787402) ;
#52=VECTOR('Line Direction',#51,0.0393700787402) ;
#59=VECTOR('Line Direction',#58,0.0393700787402) ;
#66=VECTOR('Line Direction',#65,0.0393700787402) ;
#73=VECTOR('Line Direction',#72,0.0393700787402) ;
#80=VECTOR('Line Direction',#79,0.0393700787402) ;
#87=VECTOR('Line Direction',#86,0.0393700787402) ;
#94=VECTOR('Line Direction',#93,0.0393700787402) ;
#101=VECTOR('Line Direction',#100,0.0393700787402) ;
#108=VECTOR('Line Direction',#107,0.0393700787402) ;
#115=VECTOR('Line Direction',#114,0.0393700787402) ;
#122=VECTOR('Line Direction',#121,0.0393700787402) ;
#129=VECTOR('Line Direction',#128,0.0393700787402) ;
#173=VECTOR('Line Direction',#172,0.0393700787402) ;
#197=VECTOR('Line Direction',#196,0.0393700787402) ;
#220=VECTOR('Line Direction',#219,0.0393700787402) ;
#234=VECTOR('Line Direction',#233,0.0393700787402) ;
#259=VECTOR('Line Direction',#258,0.0393700787402) ;
#268=VECTOR('Line Direction',#267,0.0393700787402) ;
#294=VECTOR('Line Direction',#293,0.0393700787402) ;
#301=VECTOR('Line Direction',#300,0.0393700787402) ;
#318=VECTOR('Line Direction',#317,0.0393700787402) ;
#325=VECTOR('Line Direction',#324,0.0393700787402) ;
#342=VECTOR('Line Direction',#341,0.0393700787402) ;
#349=VECTOR('Line Direction',#348,0.0393700787402) ;
#366=VECTOR('Line Direction',#365,0.0393700787402) ;
#373=VECTOR('Line Direction',#372,0.0393700787402) ;
#380=VECTOR('Line Direction',#379,0.0393700787402) ;
#399=VECTOR('Line Direction',#398,0.0393700787402) ;
#406=VECTOR('Line Direction',#405,0.0393700787402) ;
#423=VECTOR('Line Direction',#422,0.0393700787402) ;
#430=VECTOR('Line Direction',#429,0.0393700787402) ;
#447=VECTOR('Line Direction',#446,0.0393700787402) ;
#454=VECTOR('Line Direction',#453,0.0393700787402) ;
#471=VECTOR('Line Direction',#470,0.0393700787402) ;
#566=VECTOR('Line Direction',#565,0.0393700787402) ;
#580=VECTOR('Line Direction',#579,0.0393700787402) ;
#601=VECTOR('Line Direction',#600,0.0393700787402) ;
#608=VECTOR('Line Direction',#607,0.0393700787402) ;
#625=VECTOR('Line Direction',#624,0.0393700787402) ;
#632=VECTOR('Line Direction',#631,0.0393700787402) ;
#649=VECTOR('Line Direction',#648,0.0393700787402) ;
#666=VECTOR('Line Direction',#665,0.0393700787402) ;
#19=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#18,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#703=SHAPE_REPRESENTATION_RELATIONSHIP(' ',' ',#23,#702) ;
#133=ORIENTED_EDGE('',*,*,#49,.T.) ;
#134=ORIENTED_EDGE('',*,*,#56,.T.) ;
#135=ORIENTED_EDGE('',*,*,#63,.F.) ;
#136=ORIENTED_EDGE('',*,*,#70,.T.) ;
#137=ORIENTED_EDGE('',*,*,#77,.F.) ;
#138=ORIENTED_EDGE('',*,*,#84,.F.) ;
#139=ORIENTED_EDGE('',*,*,#91,.T.) ;
#140=ORIENTED_EDGE('',*,*,#98,.T.) ;
#141=ORIENTED_EDGE('',*,*,#105,.F.) ;
#142=ORIENTED_EDGE('',*,*,#112,.T.) ;
#143=ORIENTED_EDGE('',*,*,#119,.F.) ;
#144=ORIENTED_EDGE('',*,*,#126,.F.) ;
#145=ORIENTED_EDGE('',*,*,#131,.F.) ;
#238=ORIENTED_EDGE('',*,*,#170,.T.) ;
#239=ORIENTED_EDGE('',*,*,#177,.F.) ;
#240=ORIENTED_EDGE('',*,*,#182,.T.) ;
#241=ORIENTED_EDGE('',*,*,#49,.F.) ;
#242=ORIENTED_EDGE('',*,*,#187,.F.) ;
#243=ORIENTED_EDGE('',*,*,#126,.T.) ;
#244=ORIENTED_EDGE('',*,*,#194,.F.) ;
#245=ORIENTED_EDGE('',*,*,#201,.T.) ;
#246=ORIENTED_EDGE('',*,*,#217,.T.) ;
#247=ORIENTED_EDGE('',*,*,#224,.F.) ;
#248=ORIENTED_EDGE('',*,*,#231,.T.) ;
#249=ORIENTED_EDGE('',*,*,#236,.T.) ;
#280=ORIENTED_EDGE('',*,*,#265,.T.) ;
#281=ORIENTED_EDGE('',*,*,#270,.F.) ;
#282=ORIENTED_EDGE('',*,*,#56,.F.) ;
#283=ORIENTED_EDGE('',*,*,#182,.F.) ;
#284=ORIENTED_EDGE('',*,*,#278,.F.) ;
#305=ORIENTED_EDGE('',*,*,#270,.T.) ;
#306=ORIENTED_EDGE('',*,*,#298,.F.) ;
#307=ORIENTED_EDGE('',*,*,#303,.F.) ;
#308=ORIENTED_EDGE('',*,*,#63,.T.) ;
#329=ORIENTED_EDGE('',*,*,#70,.F.) ;
#330=ORIENTED_EDGE('',*,*,#303,.T.) ;
#331=ORIENTED_EDGE('',*,*,#322,.T.) ;
#332=ORIENTED_EDGE('',*,*,#327,.F.) ;
#353=ORIENTED_EDGE('',*,*,#327,.T.) ;
#354=ORIENTED_EDGE('',*,*,#346,.F.) ;
#355=ORIENTED_EDGE('',*,*,#351,.F.) ;
#356=ORIENTED_EDGE('',*,*,#77,.T.) ;
#384=ORIENTED_EDGE('',*,*,#351,.T.) ;
#385=ORIENTED_EDGE('',*,*,#370,.F.) ;
#386=ORIENTED_EDGE('',*,*,#377,.T.) ;
#387=ORIENTED_EDGE('',*,*,#382,.F.) ;
#388=ORIENTED_EDGE('',*,*,#91,.F.) ;
#389=ORIENTED_EDGE('',*,*,#84,.T.) ;
#410=ORIENTED_EDGE('',*,*,#382,.T.) ;
#411=ORIENTED_EDGE('',*,*,#403,.T.) ;
#412=ORIENTED_EDGE('',*,*,#408,.F.) ;
#413=ORIENTED_EDGE('',*,*,#98,.F.) ;
#434=ORIENTED_EDGE('',*,*,#408,.T.) ;
#435=ORIENTED_EDGE('',*,*,#427,.F.) ;
#436=ORIENTED_EDGE('',*,*,#432,.F.) ;
#437=ORIENTED_EDGE('',*,*,#105,.T.) ;
#458=ORIENTED_EDGE('',*,*,#112,.F.) ;
#459=ORIENTED_EDGE('',*,*,#432,.T.) ;
#460=ORIENTED_EDGE('',*,*,#451,.T.) ;
#461=ORIENTED_EDGE('',*,*,#456,.F.) ;
#485=ORIENTED_EDGE('',*,*,#194,.T.) ;
#486=ORIENTED_EDGE('',*,*,#119,.T.) ;
#487=ORIENTED_EDGE('',*,*,#456,.T.) ;
#488=ORIENTED_EDGE('',*,*,#475,.F.) ;
#489=ORIENTED_EDGE('',*,*,#483,.T.) ;
#498=ORIENTED_EDGE('',*,*,#131,.T.) ;
#499=ORIENTED_EDGE('',*,*,#187,.T.) ;
#551=ORIENTED_EDGE('',*,*,#516,.T.) ;
#552=ORIENTED_EDGE('',*,*,#521,.F.) ;
#553=ORIENTED_EDGE('',*,*,#217,.F.) ;
#554=ORIENTED_EDGE('',*,*,#544,.F.) ;
#555=ORIENTED_EDGE('',*,*,#170,.F.) ;
#556=ORIENTED_EDGE('',*,*,#549,.T.) ;
#584=ORIENTED_EDGE('',*,*,#201,.F.) ;
#585=ORIENTED_EDGE('',*,*,#483,.F.) ;
#586=ORIENTED_EDGE('',*,*,#570,.F.) ;
#587=ORIENTED_EDGE('',*,*,#577,.F.) ;
#588=ORIENTED_EDGE('',*,*,#582,.T.) ;
#589=ORIENTED_EDGE('',*,*,#278,.T.) ;
#590=ORIENTED_EDGE('',*,*,#177,.T.) ;
#591=ORIENTED_EDGE('',*,*,#544,.T.) ;
#612=ORIENTED_EDGE('',*,*,#521,.T.) ;
#613=ORIENTED_EDGE('',*,*,#605,.F.) ;
#614=ORIENTED_EDGE('',*,*,#610,.T.) ;
#615=ORIENTED_EDGE('',*,*,#224,.T.) ;
#636=ORIENTED_EDGE('',*,*,#610,.F.) ;
#637=ORIENTED_EDGE('',*,*,#629,.T.) ;
#638=ORIENTED_EDGE('',*,*,#634,.T.) ;
#639=ORIENTED_EDGE('',*,*,#231,.F.) ;
#653=ORIENTED_EDGE('',*,*,#634,.F.) ;
#654=ORIENTED_EDGE('',*,*,#651,.T.) ;
#655=ORIENTED_EDGE('',*,*,#549,.F.) ;
#656=ORIENTED_EDGE('',*,*,#236,.F.) ;
#670=ORIENTED_EDGE('',*,*,#570,.T.) ;
#671=ORIENTED_EDGE('',*,*,#475,.T.) ;
#672=ORIENTED_EDGE('',*,*,#451,.F.) ;
#673=ORIENTED_EDGE('',*,*,#427,.T.) ;
#674=ORIENTED_EDGE('',*,*,#403,.F.) ;
#675=ORIENTED_EDGE('',*,*,#377,.F.) ;
#676=ORIENTED_EDGE('',*,*,#370,.T.) ;
#677=ORIENTED_EDGE('',*,*,#346,.T.) ;
#678=ORIENTED_EDGE('',*,*,#322,.F.) ;
#679=ORIENTED_EDGE('',*,*,#298,.T.) ;
#680=ORIENTED_EDGE('',*,*,#265,.F.) ;
#681=ORIENTED_EDGE('',*,*,#582,.F.) ;
#682=ORIENTED_EDGE('',*,*,#668,.T.) ;
#691=ORIENTED_EDGE('',*,*,#651,.F.) ;
#692=ORIENTED_EDGE('',*,*,#629,.F.) ;
#693=ORIENTED_EDGE('',*,*,#605,.T.) ;
#694=ORIENTED_EDGE('',*,*,#516,.F.) ;
#698=ORIENTED_EDGE('',*,*,#577,.T.) ;
#699=ORIENTED_EDGE('',*,*,#668,.F.) ;
#35=CLOSED_SHELL('Closed Shell',(#147,#251,#286,#310,#334,#358,#391,#415,#439,#463,#491,#501,#558,#593,#617,#641,#658,#684,#696,#701)) ;
#702=ADVANCED_BREP_SHAPE_REPRESENTATION('NONE',(#25),#20) ;
#147=ADVANCED_FACE('*VOL8',(#146),#40,.T.) ;
#251=ADVANCED_FACE('*VOL8',(#250),#152,.T.) ;
#286=ADVANCED_FACE('*VOL8',(#285),#256,.F.) ;
#310=ADVANCED_FACE('*VOL8',(#309),#291,.T.) ;
#334=ADVANCED_FACE('*VOL8',(#333),#315,.F.) ;
#358=ADVANCED_FACE('*VOL8',(#357),#339,.T.) ;
#391=ADVANCED_FACE('*VOL8',(#390),#363,.T.) ;
#415=ADVANCED_FACE('*VOL8',(#414),#396,.F.) ;
#439=ADVANCED_FACE('*VOL8',(#438),#420,.T.) ;
#463=ADVANCED_FACE('*VOL8',(#462),#444,.F.) ;
#491=ADVANCED_FACE('*VOL8',(#490),#468,.T.) ;
#501=ADVANCED_FACE('*VOL8',(#500),#496,.F.) ;
#558=ADVANCED_FACE('*VOL8',(#557),#506,.F.) ;
#593=ADVANCED_FACE('*VOL8',(#592),#563,.T.) ;
#617=ADVANCED_FACE('*VOL8',(#616),#598,.T.) ;
#641=ADVANCED_FACE('*VOL8',(#640),#622,.T.) ;
#658=ADVANCED_FACE('*VOL8',(#657),#646,.F.) ;
#684=ADVANCED_FACE('*VOL8',(#683),#663,.F.) ;
#696=ADVANCED_FACE('*VOL8',(#695),#689,.F.) ;
#701=ADVANCED_FACE('*VOL8',(#700),#496,.F.) ;
#4=APPLICATION_PROTOCOL_DEFINITION('international standard','automotive_design',2001,#1) ;
#153=B_SPLINE_CURVE_WITH_KNOTS('',5,(#154,#155,#156,#157,#158,#159,#160,#161,#162,#163,#164,#165),.UNSPECIFIED.,.F.,.U.,(6,3,3,6),(0.,12.7829255529,23.4031503844,40.8973305368),.UNSPECIFIED.) ;
#202=B_SPLINE_CURVE_WITH_KNOTS('',5,(#203,#204,#205,#206,#207,#208,#209,#210,#211,#212,#213,#214),.UNSPECIFIED.,.F.,.U.,(6,3,3,6),(0.,19.6071824992,32.9386507813,40.882174887),.UNSPECIFIED.) ;
#271=B_SPLINE_CURVE_WITH_KNOTS('',5,(#272,#273,#274,#275,#276,#277),.UNSPECIFIED.,.F.,.U.,(6,6),(0.,1.41486919873),.UNSPECIFIED.) ;
#476=B_SPLINE_CURVE_WITH_KNOTS('',5,(#477,#478,#479,#480,#481,#482),.UNSPECIFIED.,.F.,.U.,(6,6),(0.,1.41486919873),.UNSPECIFIED.) ;
#507=B_SPLINE_CURVE_WITH_KNOTS('',3,(#508,#509,#510,#511),.UNSPECIFIED.,.F.,.U.,(4,4),(0.,4.24275505256),.UNSPECIFIED.) ;
#522=B_SPLINE_CURVE_WITH_KNOTS('',5,(#523,#524,#525,#526,#527,#528,#529,#530,#531,#532,#533,#534,#535,#536,#537,#538,#539,#540,#541,#542,#543),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,6),(0.,26.2278903975,36.3295033553,44.5608181948,55.6684921801,64.6390911618,87.2802647027),.UNSPECIFIED.) ;
#25=MANIFOLD_SOLID_BREP('*VOL8',#35) ;
#181=CIRCLE('generated circle',#180,0.708661417323) ;
#186=CIRCLE('generated circle',#185,0.708661417323) ;
#191=CIRCLE('generated circle',#190,0.708661417323) ;
#228=CIRCLE('generated circle',#227,0.708661417323) ;
#520=CIRCLE('generated circle',#519,5.01736900398) ;
#548=CIRCLE('generated circle',#547,5.01736900398) ;
#574=CIRCLE('generated circle',#573,0.708661417323) ;
#152=CYLINDRICAL_SURFACE('generated cylinder',#151,0.708661417323) ;
#563=CYLINDRICAL_SURFACE('generated cylinder',#562,0.708661417323) ;
#26=DRAUGHTING_PRE_DEFINED_COLOUR('yellow') ;
#49=EDGE_CURVE('',#46,#48,#44,.T.) ;
#56=EDGE_CURVE('',#48,#55,#53,.T.) ;
#63=EDGE_CURVE('',#62,#55,#60,.T.) ;
#70=EDGE_CURVE('',#62,#69,#67,.T.) ;
#77=EDGE_CURVE('',#76,#69,#74,.T.) ;
#84=EDGE_CURVE('',#83,#76,#81,.T.) ;
#91=EDGE_CURVE('',#83,#90,#88,.T.) ;
#98=EDGE_CURVE('',#90,#97,#95,.T.) ;
#105=EDGE_CURVE('',#104,#97,#102,.T.) ;
#112=EDGE_CURVE('',#104,#111,#109,.T.) ;
#119=EDGE_CURVE('',#118,#111,#116,.T.) ;
#126=EDGE_CURVE('',#125,#118,#123,.T.) ;
#131=EDGE_CURVE('',#46,#125,#130,.T.) ;
#170=EDGE_CURVE('',#167,#169,#153,.T.) ;
#177=EDGE_CURVE('',#176,#169,#174,.T.) ;
#182=EDGE_CURVE('',#176,#48,#181,.T.) ;
#187=EDGE_CURVE('',#125,#46,#186,.F.) ;
#194=EDGE_CURVE('',#193,#118,#191,.F.) ;
#201=EDGE_CURVE('',#193,#200,#198,.T.) ;
#217=EDGE_CURVE('',#200,#216,#202,.T.) ;
#224=EDGE_CURVE('',#223,#216,#221,.T.) ;
#231=EDGE_CURVE('',#223,#230,#228,.F.) ;
#236=EDGE_CURVE('',#230,#167,#235,.T.) ;
#265=EDGE_CURVE('',#262,#264,#260,.T.) ;
#270=EDGE_CURVE('',#55,#264,#269,.T.) ;
#278=EDGE_CURVE('',#262,#176,#271,.T.) ;
#298=EDGE_CURVE('',#297,#264,#295,.T.) ;
#303=EDGE_CURVE('',#62,#297,#302,.T.) ;
#322=EDGE_CURVE('',#297,#321,#319,.T.) ;
#327=EDGE_CURVE('',#69,#321,#326,.T.) ;
#346=EDGE_CURVE('',#345,#321,#343,.T.) ;
#351=EDGE_CURVE('',#76,#345,#350,.T.) ;
#370=EDGE_CURVE('',#369,#345,#367,.T.) ;
#377=EDGE_CURVE('',#369,#376,#374,.T.) ;
#382=EDGE_CURVE('',#90,#376,#381,.T.) ;
#403=EDGE_CURVE('',#376,#402,#400,.T.) ;
#408=EDGE_CURVE('',#97,#402,#407,.T.) ;
#427=EDGE_CURVE('',#426,#402,#424,.T.) ;
#432=EDGE_CURVE('',#104,#426,#431,.T.) ;
#451=EDGE_CURVE('',#426,#450,#448,.T.) ;
#456=EDGE_CURVE('',#111,#450,#455,.T.) ;
#475=EDGE_CURVE('',#474,#450,#472,.T.) ;
#483=EDGE_CURVE('',#474,#193,#476,.T.) ;
#516=EDGE_CURVE('',#513,#515,#507,.T.) ;
#521=EDGE_CURVE('',#216,#515,#520,.F.) ;
#544=EDGE_CURVE('',#169,#200,#522,.T.) ;
#549=EDGE_CURVE('',#167,#513,#548,.F.) ;
#570=EDGE_CURVE('',#569,#474,#567,.T.) ;
#577=EDGE_CURVE('',#576,#569,#574,.F.) ;
#582=EDGE_CURVE('',#576,#262,#581,.T.) ;
#605=EDGE_CURVE('',#604,#515,#602,.T.) ;
#610=EDGE_CURVE('',#604,#223,#609,.T.) ;
#629=EDGE_CURVE('',#604,#628,#626,.T.) ;
#634=EDGE_CURVE('',#628,#230,#633,.T.) ;
#651=EDGE_CURVE('',#628,#513,#650,.T.) ;
#668=EDGE_CURVE('',#576,#569,#667,.T.) ;
#132=EDGE_LOOP('',(#133,#134,#135,#136,#137,#138,#139,#140,#141,#142,#143,#144,#145)) ;
#237=EDGE_LOOP('',(#238,#239,#240,#241,#242,#243,#244,#245,#246,#247,#248,#249)) ;
#279=EDGE_LOOP('',(#280,#281,#282,#283,#284)) ;
#304=EDGE_LOOP('',(#305,#306,#307,#308)) ;
#328=EDGE_LOOP('',(#329,#330,#331,#332)) ;
#352=EDGE_LOOP('',(#353,#354,#355,#356)) ;
#383=EDGE_LOOP('',(#384,#385,#386,#387,#388,#389)) ;
#409=EDGE_LOOP('',(#410,#411,#412,#413)) ;
#433=EDGE_LOOP('',(#434,#435,#436,#437)) ;
#457=EDGE_LOOP('',(#458,#459,#460,#461)) ;
#484=EDGE_LOOP('',(#485,#486,#487,#488,#489)) ;
#497=EDGE_LOOP('',(#498,#499)) ;
#550=EDGE_LOOP('',(#551,#552,#553,#554,#555,#556)) ;
#583=EDGE_LOOP('',(#584,#585,#586,#587,#588,#589,#590,#591)) ;
#611=EDGE_LOOP('',(#612,#613,#614,#615)) ;
#635=EDGE_LOOP('',(#636,#637,#638,#639)) ;
#652=EDGE_LOOP('',(#653,#654,#655,#656)) ;
#669=EDGE_LOOP('',(#670,#671,#672,#673,#674,#675,#676,#677,#678,#679,#680,#681,#682)) ;
#690=EDGE_LOOP('',(#691,#692,#693,#694)) ;
#697=EDGE_LOOP('',(#698,#699)) ;
#146=FACE_OUTER_BOUND('',#132,.T.) ;
#250=FACE_OUTER_BOUND('',#237,.T.) ;
#285=FACE_OUTER_BOUND('',#279,.T.) ;
#309=FACE_OUTER_BOUND('',#304,.T.) ;
#333=FACE_OUTER_BOUND('',#328,.T.) ;
#357=FACE_OUTER_BOUND('',#352,.T.) ;
#390=FACE_OUTER_BOUND('',#383,.T.) ;
#414=FACE_OUTER_BOUND('',#409,.T.) ;
#438=FACE_OUTER_BOUND('',#433,.T.) ;
#462=FACE_OUTER_BOUND('',#457,.T.) ;
#490=FACE_OUTER_BOUND('',#484,.T.) ;
#500=FACE_OUTER_BOUND('',#497,.T.) ;
#557=FACE_OUTER_BOUND('',#550,.T.) ;
#592=FACE_OUTER_BOUND('',#583,.T.) ;
#616=FACE_OUTER_BOUND('',#611,.T.) ;
#640=FACE_OUTER_BOUND('',#635,.T.) ;
#657=FACE_OUTER_BOUND('',#652,.T.) ;
#683=FACE_OUTER_BOUND('',#669,.T.) ;
#695=FACE_OUTER_BOUND('',#690,.T.) ;
#700=FACE_OUTER_BOUND('',#697,.T.) ;
#16=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#12) ;
#44=LINE('Line',#41,#43) ;
#53=LINE('Line',#50,#52) ;
#60=LINE('Line',#57,#59) ;
#67=LINE('Line',#64,#66) ;
#74=LINE('Line',#71,#73) ;
#81=LINE('Line',#78,#80) ;
#88=LINE('Line',#85,#87) ;
#95=LINE('Line',#92,#94) ;
#102=LINE('Line',#99,#101) ;
#109=LINE('Line',#106,#108) ;
#116=LINE('Line',#113,#115) ;
#123=LINE('Line',#120,#122) ;
#130=LINE('Line',#127,#129) ;
#174=LINE('Line',#171,#173) ;
#198=LINE('Line',#195,#197) ;
#221=LINE('Line',#218,#220) ;
#235=LINE('Line',#232,#234) ;
#260=LINE('Line',#257,#259) ;
#269=LINE('Line',#266,#268) ;
#295=LINE('Line',#292,#294) ;
#302=LINE('Line',#299,#301) ;
#319=LINE('Line',#316,#318) ;
#326=LINE('Line',#323,#325) ;
#343=LINE('Line',#340,#342) ;
#350=LINE('Line',#347,#349) ;
#367=LINE('Line',#364,#366) ;
#374=LINE('Line',#371,#373) ;
#381=LINE('Line',#378,#380) ;
#400=LINE('Line',#397,#399) ;
#407=LINE('Line',#404,#406) ;
#424=LINE('Line',#421,#423) ;
#431=LINE('Line',#428,#430) ;
#448=LINE('Line',#445,#447) ;
#455=LINE('Line',#452,#454) ;
#472=LINE('Line',#469,#471) ;
#567=LINE('Line',#564,#566) ;
#581=LINE('Line',#578,#580) ;
#602=LINE('Line',#599,#601) ;
#609=LINE('Line',#606,#608) ;
#626=LINE('Line',#623,#625) ;
#633=LINE('Line',#630,#632) ;
#650=LINE('Line',#647,#649) ;
#667=LINE('Line',#664,#666) ;
#40=PLANE('Plane',#39) ;
#256=PLANE('Plane',#255) ;
#291=PLANE('Plane',#290) ;
#315=PLANE('Plane',#314) ;
#339=PLANE('Plane',#338) ;
#363=PLANE('Plane',#362) ;
#396=PLANE('Plane',#395) ;
#420=PLANE('Plane',#419) ;
#444=PLANE('Plane',#443) ;
#468=PLANE('Plane',#467) ;
#496=PLANE('Plane',#495) ;
#598=PLANE('Plane',#597) ;
#622=PLANE('Plane',#621) ;
#646=PLANE('Plane',#645) ;
#663=PLANE('Plane',#662) ;
#689=PLANE('Plane',#688) ;
#14=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.0174532925199),#13) ;
#9=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#7,#8) ;
#6=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#5,.NOT_KNOWN.) ;
#24=SHAPE_DEFINITION_REPRESENTATION(#11,#23) ;
#506=SPHERICAL_SURFACE('',#505,5.01771653543) ;
#46=VERTEX_POINT('',#45) ;
#48=VERTEX_POINT('',#47) ;
#55=VERTEX_POINT('',#54) ;
#62=VERTEX_POINT('',#61) ;
#69=VERTEX_POINT('',#68) ;
#76=VERTEX_POINT('',#75) ;
#83=VERTEX_POINT('',#82) ;
#90=VERTEX_POINT('',#89) ;
#97=VERTEX_POINT('',#96) ;
#104=VERTEX_POINT('',#103) ;
#111=VERTEX_POINT('',#110) ;
#118=VERTEX_POINT('',#117) ;
#125=VERTEX_POINT('',#124) ;
#167=VERTEX_POINT('',#166) ;
#169=VERTEX_POINT('',#168) ;
#176=VERTEX_POINT('',#175) ;
#193=VERTEX_POINT('',#192) ;
#200=VERTEX_POINT('',#199) ;
#216=VERTEX_POINT('',#215) ;
#223=VERTEX_POINT('',#222) ;
#230=VERTEX_POINT('',#229) ;
#262=VERTEX_POINT('',#261) ;
#264=VERTEX_POINT('',#263) ;
#297=VERTEX_POINT('',#296) ;
#321=VERTEX_POINT('',#320) ;
#345=VERTEX_POINT('',#344) ;
#369=VERTEX_POINT('',#368) ;
#376=VERTEX_POINT('',#375) ;
#402=VERTEX_POINT('',#401) ;
#426=VERTEX_POINT('',#425) ;
#450=VERTEX_POINT('',#449) ;
#474=VERTEX_POINT('',#473) ;
#513=VERTEX_POINT('',#512) ;
#515=VERTEX_POINT('',#514) ;
#569=VERTEX_POINT('',#568) ;
#576=VERTEX_POINT('',#575) ;
#604=VERTEX_POINT('',#603) ;
#628=VERTEX_POINT('',#627) ;
#12=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)) ;
#13=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)) ;
#15=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()) ;
#18=(CONVERSION_BASED_UNIT('INCH',#16)LENGTH_UNIT()NAMED_UNIT(#17)) ;
#20=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#19))GLOBAL_UNIT_ASSIGNED_CONTEXT((#18,#13,#15))REPRESENTATION_CONTEXT(' ',' ')) ;
ENDSEC;
END-ISO-10303-21;
+25
View File
@@ -0,0 +1,25 @@
STEPcheck v 2.0 (February 21, 2000) for stepcheck_stage_1_2 schema
Copyright ERIM (July 1997)
Checking STEP file: TAIL_TURBINE.stp
Reading Data from TAIL_TURBINE.stp...
HEADER read:
FIRST PASS complete: 704 instances created.
0 ERRORS 0 WARNINGS
SECOND PASS complete: 704 instances valid.
0 ERRORS 0 WARNINGS
Finished reading file.
total violations = 0
total parse errors = 0
total parse warnings = 0
elapsed time : 1.353 seconds
+211
View File
@@ -0,0 +1,211 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('CATIA V5 STEP'),'2;1');
FILE_NAME('E:\\Public\\Archive_PDES\\TR22\\NativeFiles\\s1\\s1-c5-214.stp','2008-08-18T12:41:46+00:00',('none'),('none'),'CATIA Version 5 Release 19 SP 1 (IN-PROTO)','CATIA V5 STEP AP214','none');
FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
ENDSEC;
/* file written by CATIA V5R19 */
DATA;
#5=PRODUCT('*MASTER','*MASTER',' ',(#2)) ;
#28=PRODUCT('TAIL','TAIL',' ',(#2)) ;
#68=PRODUCT('HEAD','HEAD',' ',(#2)) ;
#108=PRODUCT('MAINBODY','MAINBODY',' ',(#2)) ;
#148=PRODUCT('FOOT','FOOT',' ',(#2)) ;
#2=PRODUCT_CONTEXT(' ',#1,'mechanical') ;
#1=APPLICATION_CONTEXT('automotive design') ;
#39=OBJECT_ROLE('mandatory',$) ;
#79=OBJECT_ROLE('mandatory',$) ;
#119=OBJECT_ROLE('mandatory',$) ;
#159=OBJECT_ROLE('mandatory',$) ;
#33=DOCUMENT_FILE('TAIL.stp','','',#34,'',$) ;
#73=DOCUMENT_FILE('HEAD.stp','','',#74,'',$) ;
#113=DOCUMENT_FILE('MAINBODY.stp','','',#114,'',$) ;
#153=DOCUMENT_FILE('FOOT.stp','','',#154,'',$) ;
#34=DOCUMENT_TYPE('geometry') ;
#74=DOCUMENT_TYPE('geometry') ;
#114=DOCUMENT_TYPE('geometry') ;
#154=DOCUMENT_TYPE('geometry') ;
#40=DOCUMENT_REPRESENTATION_TYPE('digital',#33) ;
#80=DOCUMENT_REPRESENTATION_TYPE('digital',#73) ;
#120=DOCUMENT_REPRESENTATION_TYPE('digital',#113) ;
#160=DOCUMENT_REPRESENTATION_TYPE('digital',#153) ;
#13=PRODUCT_DEFINITION(' ',' ',#6,#3) ;
#30=PRODUCT_DEFINITION(' ',' ',#29,#3) ;
#70=PRODUCT_DEFINITION(' ',' ',#69,#3) ;
#110=PRODUCT_DEFINITION(' ',' ',#109,#3) ;
#150=PRODUCT_DEFINITION(' ',' ',#149,#3) ;
#3=PRODUCT_DEFINITION_CONTEXT('part definition',#1,' ') ;
#16=PRODUCT_DEFINITION_SHAPE(' ',' ',#13) ;
#31=PRODUCT_DEFINITION_SHAPE(' ',' ',#30) ;
#49=PRODUCT_DEFINITION_SHAPE(' ',' ',#48) ;
#71=PRODUCT_DEFINITION_SHAPE(' ',' ',#70) ;
#89=PRODUCT_DEFINITION_SHAPE(' ',' ',#88) ;
#111=PRODUCT_DEFINITION_SHAPE(' ',' ',#110) ;
#129=PRODUCT_DEFINITION_SHAPE(' ',' ',#128) ;
#151=PRODUCT_DEFINITION_SHAPE(' ',' ',#150) ;
#169=PRODUCT_DEFINITION_SHAPE(' ',' ',#168) ;
#187=PRODUCT_DEFINITION_SHAPE(' ',' ',#186) ;
#41=PROPERTY_DEFINITION('external definition','',#33) ;
#46=PROPERTY_DEFINITION('document property','',#33) ;
#81=PROPERTY_DEFINITION('external definition','',#73) ;
#86=PROPERTY_DEFINITION('document property','',#73) ;
#121=PROPERTY_DEFINITION('external definition','',#113) ;
#126=PROPERTY_DEFINITION('document property','',#113) ;
#161=PROPERTY_DEFINITION('external definition','',#153) ;
#166=PROPERTY_DEFINITION('document property','',#153) ;
#22=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#62=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#102=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#142=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#182=DIMENSIONAL_EXPONENTS(1.,0.,0.,0.,0.,0.,0.) ;
#36=IDENTIFICATION_ROLE('external document id and location',$) ;
#76=IDENTIFICATION_ROLE('external document id and location',$) ;
#116=IDENTIFICATION_ROLE('external document id and location',$) ;
#156=IDENTIFICATION_ROLE('external document id and location',$) ;
#45=REPRESENTATION('document format',(#43),#44) ;
#85=REPRESENTATION('document format',(#83),#84) ;
#125=REPRESENTATION('document format',(#123),#124) ;
#165=REPRESENTATION('document format',(#163),#164) ;
#44=REPRESENTATION_CONTEXT('','document parameters') ;
#84=REPRESENTATION_CONTEXT('','document parameters') ;
#124=REPRESENTATION_CONTEXT('','document parameters') ;
#164=REPRESENTATION_CONTEXT('','document parameters') ;
#15=SHAPE_REPRESENTATION(' ',(#53,#93,#133,#173,#191),#25) ;
#26=SHAPE_REPRESENTATION(' ',(#54),#65) ;
#66=SHAPE_REPRESENTATION(' ',(#94),#105) ;
#106=SHAPE_REPRESENTATION(' ',(#134),#145) ;
#146=SHAPE_REPRESENTATION(' ',(#174,#192),#185) ;
#42=PROPERTY_DEFINITION_REPRESENTATION(#41,#26) ;
#47=PROPERTY_DEFINITION_REPRESENTATION(#46,#45) ;
#82=PROPERTY_DEFINITION_REPRESENTATION(#81,#66) ;
#87=PROPERTY_DEFINITION_REPRESENTATION(#86,#85) ;
#122=PROPERTY_DEFINITION_REPRESENTATION(#121,#106) ;
#127=PROPERTY_DEFINITION_REPRESENTATION(#126,#125) ;
#162=PROPERTY_DEFINITION_REPRESENTATION(#161,#146) ;
#167=PROPERTY_DEFINITION_REPRESENTATION(#166,#165) ;
#43=DESCRIPTIVE_REPRESENTATION_ITEM('data format','STEP AP214 CC06') ;
#83=DESCRIPTIVE_REPRESENTATION_ITEM('data format','STEP AP214 CC06') ;
#123=DESCRIPTIVE_REPRESENTATION_ITEM('data format','STEP AP214 CC06') ;
#163=DESCRIPTIVE_REPRESENTATION_ITEM('data format','STEP AP214 CC06') ;
#32=EXTERNAL_SOURCE(IDENTIFIER('')) ;
#72=EXTERNAL_SOURCE(IDENTIFIER('')) ;
#112=EXTERNAL_SOURCE(IDENTIFIER('')) ;
#152=EXTERNAL_SOURCE(IDENTIFIER('')) ;
#52=ITEM_DEFINED_TRANSFORMATION(' ',' ',#54,#53) ;
#92=ITEM_DEFINED_TRANSFORMATION(' ',' ',#94,#93) ;
#132=ITEM_DEFINED_TRANSFORMATION(' ',' ',#134,#133) ;
#172=ITEM_DEFINED_TRANSFORMATION(' ',' ',#174,#173) ;
#190=ITEM_DEFINED_TRANSFORMATION(' ',' ',#192,#191) ;
#53=AXIS2_PLACEMENT_3D(' ',#56,#60,#59) ;
#54=AXIS2_PLACEMENT_3D(' ',#55,#58,#57) ;
#93=AXIS2_PLACEMENT_3D(' ',#96,#100,#99) ;
#94=AXIS2_PLACEMENT_3D(' ',#95,#98,#97) ;
#133=AXIS2_PLACEMENT_3D(' ',#136,#140,#139) ;
#134=AXIS2_PLACEMENT_3D(' ',#135,#138,#137) ;
#173=AXIS2_PLACEMENT_3D(' ',#176,#180,#179) ;
#174=AXIS2_PLACEMENT_3D(' ',#175,#178,#177) ;
#191=AXIS2_PLACEMENT_3D(' ',#194,#198,#197) ;
#192=AXIS2_PLACEMENT_3D(' ',#193,#196,#195) ;
#55=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#56=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#95=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#96=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#135=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#136=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#175=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#176=CARTESIAN_POINT('NONE',(0.,1.43622047244,-0.00905511811024)) ;
#193=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
#194=CARTESIAN_POINT('NONE',(0.,-1.43622047244,-0.00905511811024)) ;
#57=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#58=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#59=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#60=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#97=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#98=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#99=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#100=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#137=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#138=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#139=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#140=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#177=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#178=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#179=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#180=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#195=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#196=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#197=DIRECTION('NONE',(0.0393700787402,0.,0.)) ;
#198=DIRECTION('NONE',(0.,0.,0.0393700787402)) ;
#8=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,()) ;
#11=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#5,#28,#68,#108,#148)) ;
#7=PRODUCT_CATEGORY('part','specification') ;
#10=PRODUCT_CATEGORY('part','specification') ;
#24=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#23,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#64=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#63,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#104=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#103,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#144=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#143,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#184=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000196850393701),#183,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#50=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#51,#49) ;
#90=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#91,#89) ;
#130=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#131,#129) ;
#170=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#171,#169) ;
#188=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#189,#187) ;
#4=APPLICATION_PROTOCOL_DEFINITION('international standard','automotive_design',2001,#1) ;
#37=APPLIED_DOCUMENT_REFERENCE(#33,'',(#30)) ;
#77=APPLIED_DOCUMENT_REFERENCE(#73,'',(#70)) ;
#117=APPLIED_DOCUMENT_REFERENCE(#113,'',(#110)) ;
#157=APPLIED_DOCUMENT_REFERENCE(#153,'',(#150)) ;
#35=APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT('TAIL.stp',#36,#32,(#33)) ;
#75=APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT('HEAD.stp',#76,#72,(#73)) ;
#115=APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT('MAINBODY.stp',#116,#112,(#113)) ;
#155=APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT('FOOT.stp',#156,#152,(#153)) ;
#21=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#17) ;
#61=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#17) ;
#101=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#17) ;
#141=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#17) ;
#181=LENGTH_MEASURE_WITH_UNIT(LENGTH_MEASURE(25.4),#17) ;
#48=NEXT_ASSEMBLY_USAGE_OCCURRENCE('*DIT36','*DIT36','*DIT36',#13,#30,' ') ;
#88=NEXT_ASSEMBLY_USAGE_OCCURRENCE('*DIT39','*DIT39','*DIT39',#13,#70,' ') ;
#128=NEXT_ASSEMBLY_USAGE_OCCURRENCE('*DIT42','*DIT42','*DIT42',#13,#110,' ') ;
#168=NEXT_ASSEMBLY_USAGE_OCCURRENCE('*DIT57','*DIT57','*DIT57',#13,#150,' ') ;
#186=NEXT_ASSEMBLY_USAGE_OCCURRENCE('*DIT58','*DIT58','*DIT58',#13,#150,' ') ;
#19=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.0174532925199),#18) ;
#9=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#7,#8) ;
#12=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#10,#11) ;
#6=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#5,.NOT_KNOWN.) ;
#29=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#28,.NOT_KNOWN.) ;
#69=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#68,.NOT_KNOWN.) ;
#109=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#108,.NOT_KNOWN.) ;
#149=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE(' ',' ',#148,.NOT_KNOWN.) ;
#38=ROLE_ASSOCIATION(#39,#37) ;
#78=ROLE_ASSOCIATION(#79,#77) ;
#118=ROLE_ASSOCIATION(#119,#117) ;
#158=ROLE_ASSOCIATION(#159,#157) ;
#14=SHAPE_DEFINITION_REPRESENTATION(#16,#15) ;
#27=SHAPE_DEFINITION_REPRESENTATION(#31,#26) ;
#67=SHAPE_DEFINITION_REPRESENTATION(#71,#66) ;
#107=SHAPE_DEFINITION_REPRESENTATION(#111,#106) ;
#147=SHAPE_DEFINITION_REPRESENTATION(#151,#146) ;
#17=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)) ;
#18=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)) ;
#20=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()) ;
#23=(CONVERSION_BASED_UNIT('INCH',#21)LENGTH_UNIT()NAMED_UNIT(#22)) ;
#63=(CONVERSION_BASED_UNIT('INCH',#61)LENGTH_UNIT()NAMED_UNIT(#62)) ;
#103=(CONVERSION_BASED_UNIT('INCH',#101)LENGTH_UNIT()NAMED_UNIT(#102)) ;
#143=(CONVERSION_BASED_UNIT('INCH',#141)LENGTH_UNIT()NAMED_UNIT(#142)) ;
#183=(CONVERSION_BASED_UNIT('INCH',#181)LENGTH_UNIT()NAMED_UNIT(#182)) ;
#25=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#24))GLOBAL_UNIT_ASSIGNED_CONTEXT((#23,#18,#20))REPRESENTATION_CONTEXT(' ',' ')) ;
#65=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#64))GLOBAL_UNIT_ASSIGNED_CONTEXT((#63,#18,#20))REPRESENTATION_CONTEXT(' ','external')) ;
#105=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#104))GLOBAL_UNIT_ASSIGNED_CONTEXT((#103,#18,#20))REPRESENTATION_CONTEXT(' ','external')) ;
#145=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#144))GLOBAL_UNIT_ASSIGNED_CONTEXT((#143,#18,#20))REPRESENTATION_CONTEXT(' ','external')) ;
#185=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#184))GLOBAL_UNIT_ASSIGNED_CONTEXT((#183,#18,#20))REPRESENTATION_CONTEXT(' ','external')) ;
#51=(REPRESENTATION_RELATIONSHIP(' ',' ',#26,#15)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#52)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
#91=(REPRESENTATION_RELATIONSHIP(' ',' ',#66,#15)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#92)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
#131=(REPRESENTATION_RELATIONSHIP(' ',' ',#106,#15)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#132)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
#171=(REPRESENTATION_RELATIONSHIP(' ',' ',#146,#15)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#172)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
#189=(REPRESENTATION_RELATIONSHIP(' ',' ',#146,#15)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#190)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
ENDSEC;
END-ISO-10303-21;
+115
View File
@@ -0,0 +1,115 @@
STEPcheck v 2.0 (February 21, 2000) for stepcheck_stage_1_2 schema
Copyright ERIM (July 1997)
Checking STEP file: s1-c5-214.stp
Reading Data from s1-c5-214.stp...
HEADER read:
ERROR: instance #37 'APPLIED_DOCUMENT_REFERENCE': Unknown ENTITY type.
Data lost: (#33,,(#30))
ERROR: instance #77 'APPLIED_DOCUMENT_REFERENCE': Unknown ENTITY type.
Data lost: (#73,,(#70))
ERROR: instance #117 'APPLIED_DOCUMENT_REFERENCE': Unknown ENTITY type.
Data lost: (#113,,(#110))
ERROR: instance #157 'APPLIED_DOCUMENT_REFERENCE': Unknown ENTITY type.
Data lost: (#153,,(#150))
ERROR: instance #35 'APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT': Unknown ENTITY type.
Data lost: (TAIL.stp,#36,#32,(#33))
ERROR: instance #75 'APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT': Unknown ENTITY type.
Data lost: (HEAD.stp,#76,#72,(#73))
ERROR: instance #115 'APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT': Unknown ENTITY type.
Data lost: (MAINBODY.stp,#116,#112,(#113))
ERROR: instance #155 'APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT': Unknown ENTITY type.
Data lost: (FOOT.stp,#156,#152,(#153))
FIRST PASS complete: 190 instances created.
8 ERRORS 0 WARNINGS
ERROR: in 2nd pass, instance #37 not found.
Data lost: =APPLIED_DOCUMENT_REFERENCE(#33,,(#30))
ERROR: in 2nd pass, instance #77 not found.
Data lost: =APPLIED_DOCUMENT_REFERENCE(#73,,(#70))
ERROR: in 2nd pass, instance #117 not found.
Data lost: =APPLIED_DOCUMENT_REFERENCE(#113,,(#110))
ERROR: in 2nd pass, instance #157 not found.
Data lost: =APPLIED_DOCUMENT_REFERENCE(#153,,(#150))
ERROR: in 2nd pass, instance #35 not found.
Data lost: =APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT(TAIL.stp,#36,#32,(#33))
ERROR: in 2nd pass, instance #75 not found.
Data lost: =APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT(HEAD.stp,#76,#72,(#73))
ERROR: in 2nd pass, instance #115 not found.
Data lost: =APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT(MAINBODY.stp,#116,#112,(#113))
ERROR: in 2nd pass, instance #155 not found.
Data lost: =APPLIED_EXTERNAL_IDENTIFICATION_ASSIGNMENT(FOOT.stp,#156,#152,(#153))
Second pass complete - instance summary:
Total instances: 190
Invalid instances: 8
Incomplete instances (includes invalid instances): 0
Warnings: 0.
SECOND PASS complete: 190 instances valid.
12 ERRORS 0 WARNINGS
Finished reading file.
Where Rule Document_File_WR1 violated by :
1) #33=DOCUMENT_FILE('TAIL.stp','','',#34,'',$);
2) #73=DOCUMENT_FILE('HEAD.stp','','',#74,'',$);
3) #113=DOCUMENT_FILE('MAINBODY.stp','','',#114,'',$);
4) #153=DOCUMENT_FILE('FOOT.stp','','',#154,'',$);
Global Rule Dependent_instantiable_identification_role violated by :
1) #76=IDENTIFICATION_ROLE('external document id and location', ...
2) #156=IDENTIFICATION_ROLE('external document id and location' ...
3) #36=IDENTIFICATION_ROLE('external document id and location', ...
4) #116=IDENTIFICATION_ROLE('external document id and location' ...
Special Rule CheckAggregateBounds violated by :
1) #8=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,());
because lower bound check failed for products aggregate
total violations = 9
total parse errors = 12
total parse warnings = 0
elapsed time : 0.357 seconds
+473
View File
@@ -0,0 +1,473 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('CATIA V5 STEP Exchange'),'2;1');
FILE_NAME('\\\\db116dsp\\home\\ArchivePublic\\Archive_PDES\\TR26\\native\\SG\\sg1-c5-214.stp','2010-08-27T15:05:34+00:00',('none'),('none'),'CATIA Version 5 Release 20 SP 4 (IN-10)','CATIA V5 STEP AP214','none');
FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
ENDSEC;
/* file written by CATIA V5R20 */
DATA;
#5=PRODUCT('SG1','','',(#2)) ;
#2=PRODUCT_CONTEXT(' ',#1,'mechanical') ;
#1=APPLICATION_CONTEXT('automotive design') ;
#10=PRODUCT_DEFINITION('',' ',#6,#3) ;
#3=PRODUCT_DEFINITION_CONTEXT('part definition',#1,' ') ;
#11=PRODUCT_DEFINITION_SHAPE(' ',' ',#10) ;
#403=PROPERTY_DEFINITION('','shape for solid data with which properties are associated',#402) ;
#408=PROPERTY_DEFINITION('geometric validation property','centroid of #22',#402) ;
#414=PROPERTY_DEFINITION('geometric validation property','volume of #22',#402) ;
#420=PROPERTY_DEFINITION('geometric validation property','surface area of #22',#402) ;
#451=PROPERTY_DEFINITION('geometric validation property','centroid of Part',#11) ;
#455=PROPERTY_DEFINITION('geometric validation property','volume of Part',#11) ;
#459=PROPERTY_DEFINITION('geometric validation property','surface area of Part',#11) ;
#31=SHAPE_ASPECT('','',#11,.F.) ;
#347=SHAPE_ASPECT('','',#11,.F.) ;
#362=SHAPE_ASPECT('','',#11,.F.) ;
#377=SHAPE_ASPECT('','',#11,.F.) ;
#392=SHAPE_ASPECT('','',#11,.F.) ;
#402=SHAPE_ASPECT('','Solid',#11,.F.) ;
#429=SHAPE_ASPECT('','',#11,.F.) ;
#411=DERIVED_UNIT((#410)) ;
#417=DERIVED_UNIT((#416)) ;
#410=DERIVED_UNIT_ELEMENT(#12,3.) ;
#416=DERIVED_UNIT_ELEMENT(#12,2.) ;
#407=REPRESENTATION('centroid',(#406),#17) ;
#413=REPRESENTATION('volume',(#412),#17) ;
#419=REPRESENTATION('surface area',(#418),#17) ;
#450=REPRESENTATION('centroid',(#449),#17) ;
#454=REPRESENTATION('volume',(#453),#17) ;
#458=REPRESENTATION('surface area',(#457),#17) ;
#412=MEASURE_REPRESENTATION_ITEM('volume measure',VOLUME_MEASURE(355877.882829),#411) ;
#418=MEASURE_REPRESENTATION_ITEM('wetted area measure',AREA_MEASURE(46607.8737273),#417) ;
#453=MEASURE_REPRESENTATION_ITEM('volume measure',VOLUME_MEASURE(355877.882829),#411) ;
#457=MEASURE_REPRESENTATION_ITEM('wetted area measure',AREA_MEASURE(46607.8737273),#417) ;
#448=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION(' ',(#30),#17) ;
#20=SHAPE_REPRESENTATION(' ',(#19),#17) ;
#404=SHAPE_REPRESENTATION('',(#22),#17) ;
#409=PROPERTY_DEFINITION_REPRESENTATION(#408,#407) ;
#415=PROPERTY_DEFINITION_REPRESENTATION(#414,#413) ;
#421=PROPERTY_DEFINITION_REPRESENTATION(#420,#419) ;
#452=PROPERTY_DEFINITION_REPRESENTATION(#451,#450) ;
#456=PROPERTY_DEFINITION_REPRESENTATION(#455,#454) ;
#460=PROPERTY_DEFINITION_REPRESENTATION(#459,#458) ;
#19=AXIS2_PLACEMENT_3D(' ',#18,$,$) ;
#36=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#33,#34,#35) ;
#49=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#47,#48,$) ;
#63=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#61,#62,$) ;
#75=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#73,#74,$) ;
#80=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#78,#79,$) ;
#93=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#90,#91,#92) ;
#106=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#104,#105,$) ;
#120=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#118,#119,$) ;
#132=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#130,#131,$) ;
#137=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#135,#136,$) ;
#150=AXIS2_PLACEMENT_3D('Cone Axis2P3D',#147,#148,#149) ;
#161=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#159,#160,$) ;
#180=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#178,#179,$) ;
#193=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#190,#191,#192) ;
#204=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#202,#203,$) ;
#223=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#221,#222,$) ;
#236=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#233,#234,#235) ;
#249=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#247,#248,$) ;
#263=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#261,#262,$) ;
#275=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#273,#274,$) ;
#280=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#278,#279,$) ;
#301=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#299,#300,$) ;
#315=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#313,#314,$) ;
#327=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#325,#326,$) ;
#332=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#330,#331,$) ;
#345=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#342,#343,#344) ;
#360=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#357,#358,#359) ;
#375=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#372,#373,#374) ;
#390=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#387,#388,#389) ;
#427=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#424,#425,#426) ;
#435=AXIS2_PLACEMENT_3D('TARGET_1',#432,#433,#434) ;
#439=AXIS2_PLACEMENT_3D('TARGET_2',#436,#437,#438) ;
#443=AXIS2_PLACEMENT_3D('TARGET_3',#440,#441,#442) ;
#447=AXIS2_PLACEMENT_3D('TARGET_4',#444,#445,#446) ;
#18=CARTESIAN_POINT(' ',(0.,0.,0.)) ;
#33=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,7.01564121246)) ;
#38=CARTESIAN_POINT('Line Origine',(5.03354477349,-9.21384190457,7.01564121246)) ;
#42=CARTESIAN_POINT('Vertex',(5.03354477349,-9.21384190457,84.0312824249)) ;
#44=CARTESIAN_POINT('Vertex',(5.03354477349,-9.21384190457,-70.)) ;
#47=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,-70.)) ;
#51=CARTESIAN_POINT('Vertex',(-5.03354477349,9.21384190457,-70.)) ;
#54=CARTESIAN_POINT('Line Origine',(-5.03354477349,9.21384190457,7.01564121246)) ;
#58=CARTESIAN_POINT('Vertex',(-5.03354477349,9.21384190457,84.0312824249)) ;
#61=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,84.0312824249)) ;
#73=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,-70.)) ;
#78=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,84.0312824249)) ;
#90=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,7.01564121246)) ;
#95=CARTESIAN_POINT('Line Origine',(19.1770215442,-35.1033024756,-60.)) ;
#99=CARTESIAN_POINT('Vertex',(19.1770215442,-35.1033024756,-70.)) ;
#101=CARTESIAN_POINT('Vertex',(19.1770215442,-35.1033024756,-50.)) ;
#104=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,-50.)) ;
#108=CARTESIAN_POINT('Vertex',(-19.1770215442,35.1033024756,-50.)) ;
#111=CARTESIAN_POINT('Line Origine',(-19.1770215442,35.1033024756,-60.)) ;
#115=CARTESIAN_POINT('Vertex',(-19.1770215442,35.1033024756,-70.)) ;
#118=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,-70.)) ;
#130=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,-50.)) ;
#135=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,-70.)) ;
#147=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,20.)) ;
#152=CARTESIAN_POINT('Line Origine',(14.3827661581,-26.3274768567,-15.)) ;
#156=CARTESIAN_POINT('Vertex',(9.58851077208,-17.5516512378,20.)) ;
#159=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,20.)) ;
#163=CARTESIAN_POINT('Vertex',(-9.58851077208,17.5516512378,20.)) ;
#166=CARTESIAN_POINT('Line Origine',(-14.3827661581,26.3274768567,-15.)) ;
#178=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,20.)) ;
#190=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,7.01564121246)) ;
#195=CARTESIAN_POINT('Line Origine',(9.58851077208,-17.5516512378,52.0156412125)) ;
#199=CARTESIAN_POINT('Vertex',(9.58851077208,-17.5516512378,55.3991317749)) ;
#202=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,55.3991317749)) ;
#206=CARTESIAN_POINT('Vertex',(-9.58851077208,17.5516512378,55.3991317749)) ;
#209=CARTESIAN_POINT('Line Origine',(-9.58851077208,17.5516512378,52.0156412125)) ;
#221=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,55.3991317749)) ;
#233=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,7.01564121246)) ;
#238=CARTESIAN_POINT('Line Origine',(14.3827661581,-26.3274768567,62.7118263245)) ;
#242=CARTESIAN_POINT('Vertex',(14.3827661581,-26.3274768567,55.3991317749)) ;
#244=CARTESIAN_POINT('Vertex',(14.3827661581,-26.3274768567,70.024520874)) ;
#247=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,70.024520874)) ;
#251=CARTESIAN_POINT('Vertex',(-14.3827661581,26.3274768567,70.024520874)) ;
#254=CARTESIAN_POINT('Line Origine',(-14.3827661581,26.3274768567,62.7118263245)) ;
#258=CARTESIAN_POINT('Vertex',(-14.3827661581,26.3274768567,55.3991317749)) ;
#261=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,55.3991317749)) ;
#273=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,70.024520874)) ;
#278=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,55.3991317749)) ;
#290=CARTESIAN_POINT('Line Origine',(9.58851077208,-17.5516512378,52.0156412125)) ;
#294=CARTESIAN_POINT('Vertex',(9.58851077208,-17.5516512378,70.024520874)) ;
#296=CARTESIAN_POINT('Vertex',(9.58851077208,-17.5516512378,84.0312824249)) ;
#299=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,84.0312824249)) ;
#303=CARTESIAN_POINT('Vertex',(-9.58851077208,17.5516512378,84.0312824249)) ;
#306=CARTESIAN_POINT('Line Origine',(-9.58851077208,17.5516512378,52.0156412125)) ;
#310=CARTESIAN_POINT('Vertex',(-9.58851077208,17.5516512378,70.024520874)) ;
#313=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,70.024520874)) ;
#325=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,84.0312824249)) ;
#330=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,70.024520874)) ;
#342=CARTESIAN_POINT('Axis2P3D Location',(0.,40.,-70.)) ;
#357=CARTESIAN_POINT('Axis2P3D Location',(0.,30.,55.3991317749)) ;
#372=CARTESIAN_POINT('Axis2P3D Location',(0.,20.,70.024520874)) ;
#387=CARTESIAN_POINT('Axis2P3D Location',(0.,10.4991168976,84.0312824249)) ;
#406=CARTESIAN_POINT('centre point',(3.59833696299E-015,-1.00232085006E-014,-15.1684663878)) ;
#424=CARTESIAN_POINT('Axis2P3D Location',(0.,0.,20.)) ;
#432=CARTESIAN_POINT('Axis2P3D Location',(8.94427191,17.88854382,84.0312824249)) ;
#436=CARTESIAN_POINT('Axis2P3D Location',(15.6011753976,-12.5141250678,84.0312824249)) ;
#440=CARTESIAN_POINT('Axis2P3D Location',(-11.3791935265,-16.4473084329,84.0312824249)) ;
#444=CARTESIAN_POINT('Axis2P3D Location',(-17.2110400122,10.1872519208,84.0312824249)) ;
#449=CARTESIAN_POINT('centre point',(3.59833696299E-015,-1.00232085006E-014,-15.1684663878)) ;
#34=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#35=DIRECTION('Axis2P3D XDirection',(-0.479425538604,0.87758256189,0.)) ;
#39=DIRECTION('Vector Direction',(0.,0.,1.)) ;
#48=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#55=DIRECTION('Vector Direction',(0.,0.,1.)) ;
#62=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#74=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#79=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#91=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#92=DIRECTION('Axis2P3D XDirection',(-0.479425538604,0.87758256189,0.)) ;
#96=DIRECTION('Vector Direction',(0.,0.,1.)) ;
#105=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#112=DIRECTION('Vector Direction',(0.,0.,1.)) ;
#119=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#131=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#136=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#148=DIRECTION('Axis2P3D Direction',(-0.,-0.,-1.)) ;
#149=DIRECTION('Axis2P3D XDirection',(-0.479425538604,0.87758256189,0.)) ;
#153=DIRECTION('Vector Direction',(0.131708324708,-0.241090471226,-0.961523947641)) ;
#160=DIRECTION('Axis2P3D Direction',(0.,0.,-1.)) ;
#167=DIRECTION('Vector Direction',(-0.131708324708,0.241090471226,-0.961523947641)) ;
#179=DIRECTION('Axis2P3D Direction',(0.,0.,-1.)) ;
#191=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#192=DIRECTION('Axis2P3D XDirection',(-0.479425538604,0.87758256189,0.)) ;
#196=DIRECTION('Vector Direction',(0.,0.,1.)) ;
#203=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#210=DIRECTION('Vector Direction',(0.,0.,1.)) ;
#222=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#234=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#235=DIRECTION('Axis2P3D XDirection',(-0.479425538604,0.87758256189,0.)) ;
#239=DIRECTION('Vector Direction',(0.,0.,1.)) ;
#248=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#255=DIRECTION('Vector Direction',(0.,0.,1.)) ;
#262=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#274=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#279=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#291=DIRECTION('Vector Direction',(0.,0.,1.)) ;
#300=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#307=DIRECTION('Vector Direction',(0.,0.,1.)) ;
#314=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#326=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#331=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#343=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#344=DIRECTION('Axis2P3D XDirection',(1.,0.,0.)) ;
#358=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#359=DIRECTION('Axis2P3D XDirection',(1.,0.,0.)) ;
#373=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#374=DIRECTION('Axis2P3D XDirection',(1.,0.,0.)) ;
#388=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#389=DIRECTION('Axis2P3D XDirection',(1.,0.,0.)) ;
#425=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#426=DIRECTION('Axis2P3D XDirection',(1.,0.,0.)) ;
#433=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#434=DIRECTION('Axis2P3D XDirection',(0.860552000611,-0.509362596039,0.)) ;
#437=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#438=DIRECTION('Axis2P3D XDirection',(-0.568959676326,-0.822365421644,0.)) ;
#441=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#442=DIRECTION('Axis2P3D XDirection',(-0.860552000611,0.509362596039,0.)) ;
#445=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
#446=DIRECTION('Axis2P3D XDirection',(0.568959676326,0.822365421644,0.)) ;
#8=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#5)) ;
#7=PRODUCT_CATEGORY('part','specification') ;
#30=STYLED_ITEM(' ',(#29),#22) ;
#29=PRESENTATION_STYLE_ASSIGNMENT((#28)) ;
#28=SURFACE_STYLE_USAGE(.BOTH.,#27) ;
#27=SURFACE_SIDE_STYLE(' ',(#26)) ;
#26=SURFACE_STYLE_FILL_AREA(#25) ;
#25=FILL_AREA_STYLE(' ',(#24)) ;
#24=FILL_AREA_STYLE_COLOUR(' ',#23) ;
#40=VECTOR('Line Direction',#39,1.) ;
#56=VECTOR('Line Direction',#55,1.) ;
#97=VECTOR('Line Direction',#96,1.) ;
#113=VECTOR('Line Direction',#112,1.) ;
#154=VECTOR('Line Direction',#153,1.) ;
#168=VECTOR('Line Direction',#167,1.) ;
#197=VECTOR('Line Direction',#196,1.) ;
#211=VECTOR('Line Direction',#210,1.) ;
#240=VECTOR('Line Direction',#239,1.) ;
#256=VECTOR('Line Direction',#255,1.) ;
#292=VECTOR('Line Direction',#291,1.) ;
#308=VECTOR('Line Direction',#307,1.) ;
#16=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.005),#12,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
#423=SHAPE_REPRESENTATION_RELATIONSHIP(' ',' ',#20,#422) ;
#67=ORIENTED_EDGE('',*,*,#46,.T.) ;
#68=ORIENTED_EDGE('',*,*,#53,.F.) ;
#69=ORIENTED_EDGE('',*,*,#60,.F.) ;
#70=ORIENTED_EDGE('',*,*,#65,.T.) ;
#84=ORIENTED_EDGE('',*,*,#60,.T.) ;
#85=ORIENTED_EDGE('',*,*,#77,.F.) ;
#86=ORIENTED_EDGE('',*,*,#46,.F.) ;
#87=ORIENTED_EDGE('',*,*,#82,.T.) ;
#124=ORIENTED_EDGE('',*,*,#103,.T.) ;
#125=ORIENTED_EDGE('',*,*,#110,.F.) ;
#126=ORIENTED_EDGE('',*,*,#117,.F.) ;
#127=ORIENTED_EDGE('',*,*,#122,.T.) ;
#141=ORIENTED_EDGE('',*,*,#117,.T.) ;
#142=ORIENTED_EDGE('',*,*,#134,.F.) ;
#143=ORIENTED_EDGE('',*,*,#103,.F.) ;
#144=ORIENTED_EDGE('',*,*,#139,.T.) ;
#172=ORIENTED_EDGE('',*,*,#158,.T.) ;
#173=ORIENTED_EDGE('',*,*,#165,.F.) ;
#174=ORIENTED_EDGE('',*,*,#170,.F.) ;
#175=ORIENTED_EDGE('',*,*,#110,.T.) ;
#184=ORIENTED_EDGE('',*,*,#170,.T.) ;
#185=ORIENTED_EDGE('',*,*,#182,.F.) ;
#186=ORIENTED_EDGE('',*,*,#158,.F.) ;
#187=ORIENTED_EDGE('',*,*,#134,.T.) ;
#215=ORIENTED_EDGE('',*,*,#201,.T.) ;
#216=ORIENTED_EDGE('',*,*,#208,.F.) ;
#217=ORIENTED_EDGE('',*,*,#213,.F.) ;
#218=ORIENTED_EDGE('',*,*,#165,.T.) ;
#227=ORIENTED_EDGE('',*,*,#213,.T.) ;
#228=ORIENTED_EDGE('',*,*,#225,.F.) ;
#229=ORIENTED_EDGE('',*,*,#201,.F.) ;
#230=ORIENTED_EDGE('',*,*,#182,.T.) ;
#267=ORIENTED_EDGE('',*,*,#246,.T.) ;
#268=ORIENTED_EDGE('',*,*,#253,.F.) ;
#269=ORIENTED_EDGE('',*,*,#260,.F.) ;
#270=ORIENTED_EDGE('',*,*,#265,.T.) ;
#284=ORIENTED_EDGE('',*,*,#260,.T.) ;
#285=ORIENTED_EDGE('',*,*,#277,.F.) ;
#286=ORIENTED_EDGE('',*,*,#246,.F.) ;
#287=ORIENTED_EDGE('',*,*,#282,.T.) ;
#319=ORIENTED_EDGE('',*,*,#298,.T.) ;
#320=ORIENTED_EDGE('',*,*,#305,.F.) ;
#321=ORIENTED_EDGE('',*,*,#312,.F.) ;
#322=ORIENTED_EDGE('',*,*,#317,.T.) ;
#336=ORIENTED_EDGE('',*,*,#312,.T.) ;
#337=ORIENTED_EDGE('',*,*,#329,.F.) ;
#338=ORIENTED_EDGE('',*,*,#298,.F.) ;
#339=ORIENTED_EDGE('',*,*,#334,.T.) ;
#349=ORIENTED_EDGE('',*,*,#122,.F.) ;
#350=ORIENTED_EDGE('',*,*,#139,.F.) ;
#353=ORIENTED_EDGE('',*,*,#77,.T.) ;
#354=ORIENTED_EDGE('',*,*,#53,.T.) ;
#364=ORIENTED_EDGE('',*,*,#265,.F.) ;
#365=ORIENTED_EDGE('',*,*,#282,.F.) ;
#368=ORIENTED_EDGE('',*,*,#225,.T.) ;
#369=ORIENTED_EDGE('',*,*,#208,.T.) ;
#379=ORIENTED_EDGE('',*,*,#277,.T.) ;
#380=ORIENTED_EDGE('',*,*,#253,.T.) ;
#383=ORIENTED_EDGE('',*,*,#317,.F.) ;
#384=ORIENTED_EDGE('',*,*,#334,.F.) ;
#394=ORIENTED_EDGE('',*,*,#329,.T.) ;
#395=ORIENTED_EDGE('',*,*,#305,.T.) ;
#398=ORIENTED_EDGE('',*,*,#65,.F.) ;
#399=ORIENTED_EDGE('',*,*,#82,.F.) ;
#355=FACE_BOUND('',#352,.T.) ;
#370=FACE_BOUND('',#367,.T.) ;
#385=FACE_BOUND('',#382,.T.) ;
#400=FACE_BOUND('',#397,.T.) ;
#32=CLOSED_SHELL('Closed Shell',(#72,#89,#129,#146,#177,#189,#220,#232,#272,#289,#324,#341,#356,#371,#386,#401)) ;
#422=ADVANCED_BREP_SHAPE_REPRESENTATION('NONE',(#22),#17) ;
#72=ADVANCED_FACE('PartBody',(#71),#37,.F.) ;
#89=ADVANCED_FACE('PartBody',(#88),#37,.F.) ;
#129=ADVANCED_FACE('PartBody',(#128),#94,.T.) ;
#146=ADVANCED_FACE('PartBody',(#145),#94,.T.) ;
#177=ADVANCED_FACE('PartBody',(#176),#151,.T.) ;
#189=ADVANCED_FACE('PartBody',(#188),#151,.T.) ;
#220=ADVANCED_FACE('PartBody',(#219),#194,.T.) ;
#232=ADVANCED_FACE('PartBody',(#231),#194,.T.) ;
#272=ADVANCED_FACE('PartBody',(#271),#237,.T.) ;
#289=ADVANCED_FACE('PartBody',(#288),#237,.T.) ;
#324=ADVANCED_FACE('PartBody',(#323),#194,.T.) ;
#341=ADVANCED_FACE('PartBody',(#340),#194,.T.) ;
#356=ADVANCED_FACE('PartBody',(#351,#355),#346,.F.) ;
#371=ADVANCED_FACE('PartBody',(#366,#370),#361,.F.) ;
#386=ADVANCED_FACE('PartBody',(#381,#385),#376,.T.) ;
#401=ADVANCED_FACE('PartBody',(#396,#400),#391,.T.) ;
#4=APPLICATION_PROTOCOL_DEFINITION('international standard','automotive_design',2001,#1) ;
#22=MANIFOLD_SOLID_BREP('PartBody',#32) ;
#50=CIRCLE('generated circle',#49,10.4991168976) ;
#64=CIRCLE('generated circle',#63,10.4991168976) ;
#76=CIRCLE('generated circle',#75,10.4991168976) ;
#81=CIRCLE('generated circle',#80,10.4991168976) ;
#107=CIRCLE('generated circle',#106,40.) ;
#121=CIRCLE('generated circle',#120,40.) ;
#133=CIRCLE('generated circle',#132,40.) ;
#138=CIRCLE('generated circle',#137,40.) ;
#162=CIRCLE('generated circle',#161,20.) ;
#181=CIRCLE('generated circle',#180,20.) ;
#205=CIRCLE('generated circle',#204,20.) ;
#224=CIRCLE('generated circle',#223,20.) ;
#250=CIRCLE('generated circle',#249,30.) ;
#264=CIRCLE('generated circle',#263,30.) ;
#276=CIRCLE('generated circle',#275,30.) ;
#281=CIRCLE('generated circle',#280,30.) ;
#302=CIRCLE('generated circle',#301,20.) ;
#316=CIRCLE('generated circle',#315,20.) ;
#328=CIRCLE('generated circle',#327,20.) ;
#333=CIRCLE('generated circle',#332,20.) ;
#23=COLOUR_RGB('Colour',0.827450980392,0.698039215686,0.490196078431) ;
#151=CONICAL_SURFACE('Cone',#150,20.,0.278299659005) ;
#430=CONSTRUCTIVE_GEOMETRY_REPRESENTATION('supplemental geometry',(#428,#435,#439,#443,#447),#17) ;
#431=CONSTRUCTIVE_GEOMETRY_REPRESENTATION_RELATIONSHIP('supplemental geometry','',#20,#430) ;
#37=CYLINDRICAL_SURFACE('generated cylinder',#36,10.4991168976) ;
#94=CYLINDRICAL_SURFACE('generated cylinder',#93,40.) ;
#194=CYLINDRICAL_SURFACE('generated cylinder',#193,20.) ;
#237=CYLINDRICAL_SURFACE('generated cylinder',#236,30.) ;
#46=EDGE_CURVE('',#43,#45,#41,.F.) ;
#53=EDGE_CURVE('',#52,#45,#50,.T.) ;
#60=EDGE_CURVE('',#59,#52,#57,.F.) ;
#65=EDGE_CURVE('',#59,#43,#64,.T.) ;
#77=EDGE_CURVE('',#45,#52,#76,.T.) ;
#82=EDGE_CURVE('',#43,#59,#81,.T.) ;
#103=EDGE_CURVE('',#100,#102,#98,.T.) ;
#110=EDGE_CURVE('',#109,#102,#107,.T.) ;
#117=EDGE_CURVE('',#116,#109,#114,.T.) ;
#122=EDGE_CURVE('',#116,#100,#121,.T.) ;
#134=EDGE_CURVE('',#102,#109,#133,.T.) ;
#139=EDGE_CURVE('',#100,#116,#138,.T.) ;
#158=EDGE_CURVE('',#102,#157,#155,.F.) ;
#165=EDGE_CURVE('',#164,#157,#162,.F.) ;
#170=EDGE_CURVE('',#109,#164,#169,.F.) ;
#182=EDGE_CURVE('',#157,#164,#181,.F.) ;
#201=EDGE_CURVE('',#157,#200,#198,.T.) ;
#208=EDGE_CURVE('',#207,#200,#205,.T.) ;
#213=EDGE_CURVE('',#164,#207,#212,.T.) ;
#225=EDGE_CURVE('',#200,#207,#224,.T.) ;
#246=EDGE_CURVE('',#243,#245,#241,.T.) ;
#253=EDGE_CURVE('',#252,#245,#250,.T.) ;
#260=EDGE_CURVE('',#259,#252,#257,.T.) ;
#265=EDGE_CURVE('',#259,#243,#264,.T.) ;
#277=EDGE_CURVE('',#245,#252,#276,.T.) ;
#282=EDGE_CURVE('',#243,#259,#281,.T.) ;
#298=EDGE_CURVE('',#295,#297,#293,.T.) ;
#305=EDGE_CURVE('',#304,#297,#302,.T.) ;
#312=EDGE_CURVE('',#311,#304,#309,.T.) ;
#317=EDGE_CURVE('',#311,#295,#316,.T.) ;
#329=EDGE_CURVE('',#297,#304,#328,.T.) ;
#334=EDGE_CURVE('',#295,#311,#333,.T.) ;
#66=EDGE_LOOP('',(#67,#68,#69,#70)) ;
#83=EDGE_LOOP('',(#84,#85,#86,#87)) ;
#123=EDGE_LOOP('',(#124,#125,#126,#127)) ;
#140=EDGE_LOOP('',(#141,#142,#143,#144)) ;
#171=EDGE_LOOP('',(#172,#173,#174,#175)) ;
#183=EDGE_LOOP('',(#184,#185,#186,#187)) ;
#214=EDGE_LOOP('',(#215,#216,#217,#218)) ;
#226=EDGE_LOOP('',(#227,#228,#229,#230)) ;
#266=EDGE_LOOP('',(#267,#268,#269,#270)) ;
#283=EDGE_LOOP('',(#284,#285,#286,#287)) ;
#318=EDGE_LOOP('',(#319,#320,#321,#322)) ;
#335=EDGE_LOOP('',(#336,#337,#338,#339)) ;
#348=EDGE_LOOP('',(#349,#350)) ;
#352=EDGE_LOOP('',(#353,#354)) ;
#363=EDGE_LOOP('',(#364,#365)) ;
#367=EDGE_LOOP('',(#368,#369)) ;
#378=EDGE_LOOP('',(#379,#380)) ;
#382=EDGE_LOOP('',(#383,#384)) ;
#393=EDGE_LOOP('',(#394,#395)) ;
#397=EDGE_LOOP('',(#398,#399)) ;
#71=FACE_OUTER_BOUND('',#66,.T.) ;
#88=FACE_OUTER_BOUND('',#83,.T.) ;
#128=FACE_OUTER_BOUND('',#123,.T.) ;
#145=FACE_OUTER_BOUND('',#140,.T.) ;
#176=FACE_OUTER_BOUND('',#171,.T.) ;
#188=FACE_OUTER_BOUND('',#183,.T.) ;
#219=FACE_OUTER_BOUND('',#214,.T.) ;
#231=FACE_OUTER_BOUND('',#226,.T.) ;
#271=FACE_OUTER_BOUND('',#266,.T.) ;
#288=FACE_OUTER_BOUND('',#283,.T.) ;
#323=FACE_OUTER_BOUND('',#318,.T.) ;
#340=FACE_OUTER_BOUND('',#335,.T.) ;
#351=FACE_OUTER_BOUND('',#348,.T.) ;
#366=FACE_OUTER_BOUND('',#363,.T.) ;
#381=FACE_OUTER_BOUND('',#378,.T.) ;
#396=FACE_OUTER_BOUND('',#393,.T.) ;
#41=LINE('Line',#38,#40) ;
#57=LINE('Line',#54,#56) ;
#98=LINE('Line',#95,#97) ;
#114=LINE('Line',#111,#113) ;
#155=LINE('Line',#152,#154) ;
#169=LINE('Line',#166,#168) ;
#198=LINE('Line',#195,#197) ;
#212=LINE('Line',#209,#211) ;
#241=LINE('Line',#238,#240) ;
#257=LINE('Line',#254,#256) ;
#293=LINE('Line',#290,#292) ;
#309=LINE('Line',#306,#308) ;
#346=PLANE('',#345) ;
#361=PLANE('',#360) ;
#376=PLANE('',#375) ;
#391=PLANE('',#390) ;
#428=PLANE('Plane.2',#427) ;
#14=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.0174532925199),#13) ;
#9=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#7,#8) ;
#6=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('',' ',#5,.NOT_KNOWN.) ;
#21=SHAPE_DEFINITION_REPRESENTATION(#11,#20) ;
#405=SHAPE_DEFINITION_REPRESENTATION(#403,#404) ;
#43=VERTEX_POINT('',#42) ;
#45=VERTEX_POINT('',#44) ;
#52=VERTEX_POINT('',#51) ;
#59=VERTEX_POINT('',#58) ;
#100=VERTEX_POINT('',#99) ;
#102=VERTEX_POINT('',#101) ;
#109=VERTEX_POINT('',#108) ;
#116=VERTEX_POINT('',#115) ;
#157=VERTEX_POINT('',#156) ;
#164=VERTEX_POINT('',#163) ;
#200=VERTEX_POINT('',#199) ;
#207=VERTEX_POINT('',#206) ;
#243=VERTEX_POINT('',#242) ;
#245=VERTEX_POINT('',#244) ;
#252=VERTEX_POINT('',#251) ;
#259=VERTEX_POINT('',#258) ;
#295=VERTEX_POINT('',#294) ;
#297=VERTEX_POINT('',#296) ;
#304=VERTEX_POINT('',#303) ;
#311=VERTEX_POINT('',#310) ;
#12=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)) ;
#13=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)) ;
#15=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()) ;
#17=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#16))GLOBAL_UNIT_ASSIGNED_CONTEXT((#12,#13,#15))REPRESENTATION_CONTEXT(' ',' ')) ;
ENDSEC;
END-ISO-10303-21;
@@ -0,0 +1,18 @@
SCHEMA test_derived_attribute;
ENTITY point;
END_ENTITY;
ENTITY vector;
END_ENTITY;
ENTITY circle;
centre : point;
radius : REAL;
axis : vector;
DERIVE
area : REAL := PI*radius**2;
perimeter : REAL := 2.0*PI*radius;
END_ENTITY;
END_SCHEMA;
@@ -0,0 +1,37 @@
SCHEMA test_select_data_type;
TYPE attachment_method = SELECT(permanent_attachment, temporary_attachment);
END_TYPE;
TYPE permanent_attachment = SELECT(glue, weld);
END_TYPE;
TYPE temporary_attachment = SELECT(nail, screw);
END_TYPE;
ENTITY nail;
body_length : REAL;
head_area : REAL;
END_ENTITY;
ENTITY screw;
body_length : REAL;
pitch : REAL;
END_ENTITY;
ENTITY glue;
composition : STRING;
solvent : STRING;
END_ENTITY;
ENTITY weld;
composition : STRING;
END_ENTITY;
ENTITY wall_mounting;
mounting : STRING;
on : STRING;
using : attachment_method;
END_ENTITY;
END_SCHEMA;
@@ -0,0 +1,24 @@
SCHEMA test_single_inheritance;
TYPE label = STRING;
END_TYPE;
TYPE length_measure = REAL;
END_TYPE;
TYPE point = REAL;
END_TYPE;
ENTITY shape
SUPERTYPE OF (rectangle);
item_name : label;
number_of_sides : INTEGER;
END_ENTITY;
ENTITY rectangle
SUBTYPE OF (shape);
height : length_measure;
width : length_measure;
END_ENTITY;
END_SCHEMA;
+52
View File
@@ -0,0 +1,52 @@
; ISO 10303-21:1994
alphabet = reverse_solidus 'P' upper reverse_solidus .
apostrophe = '''' .
arbitrary = reverse_solidus 'X' reverse_solidus hex_one .
binary = '"' ( '0' | '1' | '2' | '3' ) { hex } '"' .
character = space | digit | lower | upper | special | reverse_solidus | apostrophe .
complex_entity_instance = entity_instance_name '=' [ scope ] subsuper_record ';' .
control_directive = page | alphabet | extended2 | extended4 | arbitrary .
data_section = 'DATA' ';' entity_instance_list 'ENDSEC' ';' .
digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' .
end_extended = reverse_solidus 'X0' reverse_solidus .
entity_instance = simple_entity_instance | complex_entity_instance .
entity_instance_list = entity_instance { entity_instance } .
entity_instance_name = '#' digit { digit } .
enumeration = '.' upper { upper | digit } '.' .
exchange_file = 'ISO-10303-21' ';' header_section data_section 'END-ISO-10303-21' ';' .
export_list = '/' entity_instance_name { ',' entity_instance_name } '/' .
extended2 = reverse_solidus 'X2' reverse_solidus hex_two { hex_two } end_extended .
extended4 = reverse_solidus 'X4' reverse_solidus hex_four { hex_four } end_extended .
header_entity = keyword '(' [ parameter_list ] ')' ';' .
header_entity_list = header_entity { header_entity } .
header_section = 'HEADER' ';' header_entity header_entity header_entity [ header_entity_list ] 'ENDSEC' ';' .
hex = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' .
hex_four = hex_two hex_two .
hex_one = hex hex .
hex_two = hex_one hex_one .
integer = [ sign ] digit { digit } .
keyword = user_defined_keyword | standard_keyword .
list = '(' [ parameter { ',' parameter } ] ')' .
lower = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' .
non_q_char = special | digit | space | lower | upper .
omitted_parameter = '*' .
page = reverse_solidus 'S' reverse_solidus character .
parameter = typed_parameter | untyped_parameter | omitted_parameter .
parameter_list = parameter { ',' parameter } .
real = [ sign ] digit { digit } '.' { digit } [ 'E' [ sign ] digit { digit } ] .
reverse_solidus = '\' .
scope = '&' 'SCOPE' entity_instance_list 'ENDSCOPE' [ export_list ] .
sign = '+' | '-' .
simple_entity_instance = entity_instance_name '=' [ scope ] simple_record ';' .
simple_record = keyword '(' [ parameter_list ] ')' .
simple_record_list = simple_record { simple_record } .
space = ' ' .
special = '!' | '"' | '*' | '$' | '%' | '&' | '.' | '#' | '+' | ',' | '-' | '(' | ')' | '?' | '/' | ':' | ';' | '<' | '=' | '>' | '@' | '[' | ']' | '{' | '|' | '}' | '^' | '`' .
standard_keyword = upper { upper | digit } .
string = '''' { non_q_char | apostrophe apostrophe | reverse_solidus reverse_solidus | control_directive } '''' .
subsuper_record = '(' simple_record_list ')' .
typed_parameter = keyword '(' parameter ')' .
untyped_parameter = '$' | integer | real | string | entity_instance_name | enumeration | binary | list .
upper = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' .
user_defined_keyword = '!' upper { upper | digit } .
+50
View File
@@ -0,0 +1,50 @@
; ISO 10303-21:2002
alphabet = reverse_solidus 'P' upper reverse_solidus .
apostrophe = '''' .
arbitrary = reverse_solidus 'X' reverse_solidus hex_one .
binary = '"' ( '0' | '1' | '2' | '3' ) { hex } '"' .
character = space | digit | lower | upper | special | reverse_solidus | apostrophe .
complex_entity_instance = entity_instance_name '=' subsuper_record ';' .
control_directive = page | alphabet | extended2 | extended4 | arbitrary .
data_section = 'DATA' [ '(' parameter_list ')' ] ';' entity_instance_list 'ENDSEC;' .
digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' .
end_extended = reverse_solidus 'X0' reverse_solidus .
entity_instance = simple_entity_instance | complex_entity_instance .
entity_instance_list = { entity_instance } .
entity_instance_name = '#' digit { digit } .
enumeration = '.' upper { upper | digit } '.' .
exchange_file = 'ISO-10303-21;' header_section data_section { data_section } 'END-ISO-10303-21;' .
extended2 = reverse_solidus 'X2' reverse_solidus hex_two { hex_two } end_extended .
extended4 = reverse_solidus 'X4' reverse_solidus hex_four { hex_four } end_extended .
header_entity = keyword '(' [ parameter_list ] ')' ';' .
header_entity_list = header_entity { header_entity } .
header_section = 'HEADER;' header_entity header_entity header_entity [header_entity_list] 'ENDSEC;' .
hex = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' .
hex_four = hex_two hex_two .
hex_one = hex hex .
hex_two = hex_one hex_one .
integer = [ sign ] digit { digit } .
keyword = user_defined_keyword | standard_keyword .
list = '(' [ parameter { ',' parameter } ] ')' .
lower = 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' .
non_q_char = special | digit | space | lower | upper .
omitted_parameter = '*' .
page = reverse_solidus 'S' reverse_solidus character .
parameter = typed_parameter | untyped_parameter | omitted_parameter .
parameter_list = parameter { ',' parameter } .
real = [ sign ] digit { digit } '.' { digit } [ 'E' [ sign ] digit { digit } ] .
reverse_solidus = '\' .
sign = '+' | '-' .
simple_entity_instance = entity_instance_name '=' simple_record ';' .
simple_record = keyword '(' [ parameter_list ] ')' .
simple_record_list = simple_record { simple_record } .
space = ' ' .
special = '!' | '"' | '*' | '$' | '%' | '&' | '.' | '#' | '+' | ',' | '-' | '(' | ')' | '?' | '/' | ':' | ';' | '<' | '=' | '>' | '@' | '[' | ']' | '{' | '|' | '}' | '^' | '`' | '~' .
standard_keyword = upper { upper | digit } .
string = '''' { non_q_char | apostrophe apostrophe | reverse_solidus reverse_solidus | control_directive } '''' .
subsuper_record = '(' simple_record_list ')' .
typed_parameter = keyword '(' parameter ')' .
untyped_parameter = '$' | integer | real | string | entity_instance_name | enumeration | binary | list .
upper = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' | '_' .
user_defined_keyword = '!' upper { upper | digit } .
+3
View File
@@ -8,3 +8,6 @@
#cmakedefine HAVE_MEMCPY 1
#cmakedefine HAVE_MEMMOVE 1
#cmakedefine HAVE_SSIZE_T 1
//cmake updates this at build time
#define SCL_COMMIT_ID "@GIT_COMMIT_ID@"
+172
View File
@@ -0,0 +1,172 @@
#!/bin/sh
#run from the scl root dir
#creates files for upload to the scl wiki. some are in markdown format, others are raw text
out_dir="wiki"
matrix_file="$out_dir/Schema-build-matrix.md"
result_dir="."
mk="make -j4"
#separated by ; for cmake
schemas="../data/example/example.exp;../data/ap227/ap227.exp;../data/ap214e3/AP214E3_2010.exp;../data/select.exp;../data/ap203e2/ap203e2_mim_lf.exp;../data/ap203/203wseds.exp;../data/ifc2x3/IFC2X3_TC1.exp;../data/pdmnet.exp;../data/ifc2x4/IFC2X4_RC2.exp;/opt/step/notingit/part409cdts_wg3n2617mim_lf.exp;/opt/step/notingit/ap242_managed_model_based_3d_engineering_mim_lf.exp;/opt/step/notingit/AP224E3_wg3n1941.exp;/opt/step/notingit/AP238E2_aim_lf_20100903.exp"
#count warnings and errors, append to $matrix_file. creates hypertext links to stderr,stdout txt
# $1 is the name of the row, $2 is the path and first part of the filename, $3 is the schema
function count_we {
e="$2"_stderr.txt
o="$2"_stdout.txt
(
if [ -s $e ]; then
echo "<tr><td><b>$1</b></td>"
echo "<td><font color="red">`grep -ci error $e` errors</font></td>"
echo "<td><font color="blue">`grep -ci warning $e` warnings</font></td>"
if [ -s $e ]; then
echo -n "<td><a href=schema_$3#wiki-$1_e>stderr text</a></td>"
else
echo "<td> ---- </td>"
fi
echo "</td>"
else #empty
echo "<tr><td><b>$1</b></td>"
echo "<td><font color="red">0 errors</font></td>"
echo "<td><font color="blue">0 warnings</font></td>"
echo "<td> ---- </td>"
fi
if [ -s $o ]; then
echo -n "<td><a href=schema_$3#wiki-$1_o>stdout text</a></td>"
else #empty
echo "<td> ---- </td>"
fi
echo "</td></tr>"
) >>$matrix_file
}
#make fedex warnings and errors pretty
function fedex_details {
i="$result_dir/fedex_$1_stderr.txt"
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><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><table width=100%><tr><th>Line</th><th>Message</th>$e</tr></table>"
echo
fi
o=`grep -ve ": WARNING:" -e ": --ERROR:" -e ^$ $i`
if [ "x$o" != "x" ]; then
echo "### Other text from Standard Error"
echo "<pre>"
sed -e 's|^.*:[0-9]\+: WARNING: .*$||g;' -e 's|^.*:[0-9]\+: --ERROR: .*$||g;' -e 's|$|\n|;' -e 's/\t/ /;' $i|grep -v ^$
echo "</pre>"
echo
fi
if [ -s $result_dir/fedex_$1_stdout.txt ]; then
echo "<a name=\"fedex_plus_o\">"
echo "### Standard Output"
echo "</a><pre>"
cat $result_dir/fedex_$1_stdout.txt
echo "</pre>"
fi
}
function build_one_schema {
#set $i to the schema name, all caps (to match fedex_plus output)
i=`sed -ne '0,/^\s*SCHEMA/s/^.*SCHEMA\s\+\(.*\);.*$/\1/p;' $1|tr a-z A-Z`
echo "Running fedex_plus and gcc for $i..."
make -f data/CMakeFiles/sdai_$i.dir/build.make $i/compstructs.cc 2>"$result_dir/fedex_"$i"_stderr.txt" >"$result_dir/fedex_"$i"_stdout.txt" && \
$mk sdai_$i >/dev/null 2>"$result_dir/compile_libsdai_"$i"_stderr.txt" && \
$mk p21read_sdai_$i >/dev/null 2>"$result_dir/compile_p21read_sdai_"$i"_stderr.txt"
#todo: test p21read_sdai_$i
}
function build {
echo "Running cmake..."
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_STATIC_LIBS=OFF -DBUILD_SCHEMAS=$schemas >/dev/null
# build all parts of scl that are necessary for schema libs to 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"
for h in `echo $schemas | sed -e 's/;/\n/g;'`
do
build_one_schema $h
done
}
function make_schema_page {
# $1 is schema name, i.e. AUTOMOTIVE_DESIGN, $2 is schema *file* name, i.e. ap214e3_mim_lf.exp
echo "## File $2"
echo "### Schema $1"
fedex_details $1
echo "<a name=\"lib_e\"></a><a name=\"lib_w\"></a>"
echo "### stderr from compiling lib"
if [ -s $result_dir/compile_libsdai_${1}_stderr.txt ]; then
echo "<pre>"
cat $result_dir/compile_libsdai_${1}_stderr.txt
echo "</pre>"
fi
echo "<a name=\"p21read_e\"></a><a name=\"p21read_w\"></a>"
echo "### stderr from compiling p21read"
if [ -s $result_dir/compile_p21read_sdai_${1}_stderr.txt ]; then
echo "<pre>"
cat $result_dir/compile_p21read_sdai_${1}_stderr.txt
echo "</pre>"
fi
echo "### end"
}
function gen_wiki {
echo "## `date`" >$matrix_file
git log --decorate=short -n1 |\
head -n1 |\
sed -e 's|^.*commit \([a-z0-9]\+\) .*$|### Current as of commit [\1](http://github.com/mpictor/StepClassLibrary/commit/\1)|;' >>$matrix_file
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>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
for h in `echo $schemas | sed -e 's/;/\n/g;'`
do
i=`sed -ne '0,/^\s*SCHEMA/s/^.*SCHEMA\s\+\(.*\);.*$/\1/p;' $h | tr a-z A-Z`
#create a table for this schema
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 "lib" $result_dir/compile_libsdai_$i $i
count_we "p21read" $result_dir/compile_p21read_sdai_$i $i
echo "</table></td></tr>" >>$matrix_file
echo "</table></td></tr>" >>$matrix_file
# if [ -s $result_dir/fedex_"$i"_stderr.txt ]; then
# fedex_details $i
# fi
make_schema_page $i $j | sed -e "s/\`/'/g;" >$out_dir/schema_$i.md # the backtick confuses github's wiki
done
echo "</table>" >>$matrix_file
}
# if pwd is build_all, assume everything is up to date and just create wiki pages
if [ ! ${PWD##*/} == "build_all" ]; then
mkdir -p build_all && cd build_all && rm -rf * && mkdir -p $out_dir && mkdir -p $result_dir
build
echo -n "Done building. "
fi
echo "Creating wiki pages..."
gen_wiki
echo "Done!"
echo "Copy everything in build_all/$out_dir to the wiki"
-4
View File
@@ -11,10 +11,6 @@ set(LIBSTEPDAI_SRCS
)
SET(LIBSTEPDAI_PRIVATE_HDRS
ErrorMap.hh
ErrorRpt.hh
impconv.hh
imptypes.hh
sdaiApplication_instance_set.h
sdaiDaObject.h
sdaiEntity_extent.h
-247
View File
@@ -1,247 +0,0 @@
//
// File: ErrorMap.cc
//
// Description: Definitions for members of class ErrorMap
//
// Rev: $Revision: 1.1 $
// Created: $Date: 1998/01/09 21:39:30 $
// Author: $Author: sauderd $
//
// Copyright Industrial Technology Institute 1997 -- All Rights Reserved
//
#include <sdai.h>
#include "ErrorMap.hh"
char * ErrorMap::ServerErrorText[] = {
"Server Error: no error",
"Server Error: out of dynamic memory",
"Server Error: type conversion error",
"Server Error: event time format error",
"Server Error: bad pointer to transaction encountered",
"Server Error: bad pointer to database encountered",
"Server Error: bad pointer to session encountered",
"Server Error: bad pointer to repository contents encountered",
"Server Error: bad pointer to repository encountered",
"Server Error: bad pointer to set of repositories encountered",
"Server Error: bad pointer to set of models encountered",
"Server Error: bad pointer to model encountered",
"Server Error: bad pointer to PID encountered",
"Server Error: bad pointer to set of schema instances encountered",
"Server Error: bad pointer to set of sessions encountered",
"Server Error: bad pointer encountered",
"Server Error: Unknown repository type",
"Server Error: ObjectStore error",
"Server Error: Unknown error"
};
char * ErrorMap::SdaiErrorText[] = {
"SDAI Error: (sdaiNO_ERR) No error",
"SDAI Error: (sdaiSS_OPN) Session is already open",
"SDAI Error: (sdaiSS_NAVL) Session is not available",
"SDAI Error: (sdaiSS_NOPN) Session is not open",
"SDAI Error: (sdaiRP_NEXS) Repository does not exist",
"SDAI Error: (sdaiRP_NAVL) Repository not available",
"SDAI Error: (sdaiRP_OPN) Repository already opened",
"SDAI Error: (sdaiRP_NOPN) Repository is not open",
"SDAI Error: (sdaiTR_EAB) Transaction ended abnormally so it no longer exists",
"SDAI Error: (sdaiTR_EXS) Transaction already exists",
"SDAI Error: (sdaiTR_NAVL) Transaction not available",
"SDAI Error: (sdaiTR_RW) Transaction read-write",
"SDAI Error: (sdaiTR_NRW) Transaction not read-write",
"SDAI Error: (sdaiTR_NEXS) Transaction does not exist",
"SDAI Error: (sdaiMO_NDEQ) SDAI-model not domain-equivalent ",
"SDAI Error: (sdaiMO_NEXS) SDAI-model does not exist",
"SDAI Error: (sdaiMO_NVLD) SDAI-model invalid",
"SDAI Error: (sdaiMO_DUP) SDAI-model duplicate",
"SDAI Error: (sdaiMX_NRW) SDAI-model access not read-write",
"SDAI Error: (sdaiMX_NDEF) SDAI-model access is not defined",
"SDAI Error: (sdaiMX_RW) SDAI-model access read-write",
"SDAI Error: (sdaiMX_RO) SDAI-model access read-only",
"SDAI Error: (sdaiSD_NDEF) Schema definition is not defined",
"SDAI Error: (sdaiED_NDEF) Entity definition not defined",
"SDAI Error: (sdaiED_NDEQ) Entity definition not domain equivalent",
"SDAI Error: (sdaiED_NVLD) Entity definition invalid",
"SDAI Error: (sdaiRU_NDEF) Rule not defined ",
"SDAI Error: (sdaiEX_NSUP) Expression evaluation not supported ",
"SDAI Error: (sdaiAT_NVLD) Attribute invalid",
"SDAI Error: (sdaiAT_NDEF) Attribute not defined",
"SDAI Error: (sdaiSI_DUP) Schema instance duplicate",
"SDAI Error: (sdaiSI_NEXS) Schema instance does not exist",
"SDAI Error: (sdaiEI_NEXS) Entity instance does not exist ",
"SDAI Error: (sdaiEI_NAVL) Entity instance not available",
"SDAI Error: (sdaiEI_NVLD) Entity instance invalid",
"SDAI Error: (sdaiEI_NEXP) Entity instance not exported",
"SDAI Error: (sdaiSC_NEXS) Scope does not exist ",
"SDAI Error: (sdaiSC_EXS) Scope exists ",
"SDAI Error: (sdaiAI_NEXS) Aggregate instance does not exist ",
"SDAI Error: (sdaiAI_NVLD) Aggregate instance invalid ",
"SDAI Error: (sdaiAI_NSET) Aggregate instance is empty ",
"SDAI Error: (sdaiVA_NVLD) Value invalid",
"SDAI Error: (sdaiVA_NEXS) Value does not exist",
"SDAI Error: (sdaiVA_NSET) Value not set ",
"SDAI Error: (sdaiVT_NVLD) Value type invalid",
"SDAI Error: (sdaiIR_NEXS) Iterator does not exist ",
"SDAI Error: (sdaiIR_NSET) Current member is not defined",
"SDAI Error: (sdaiIX_NVLD) Index invalid",
"SDAI Error: (sdaiER_NSET) Event recording not set",
"SDAI Error: (sdaiOP_NVLD) Operator invalid ",
"SDAI Error: (sdaiFN_NAVL) Function not available",
"SDAI Error: (sdaiSY_ERR) Underlying system error "
};
//
// Return the error code of the error reported to the client
//
long ErrorMap::serverErrorCode( ServerError_id error_id ) {
switch( error_id ) {
case serverNoError:
return ( long ) SCLP22( sdaiNO_ERR );
case serverNoMemoryError:
return ( long ) SCLP22( sdaiSY_ERR );
case serverTimeFormatError:
return ( long ) SCLP22( sdaiSY_ERR );
case serverUnknownError:
return ( long ) SCLP22( sdaiSY_ERR );
default:
return ( long ) SCLP22( sdaiSY_ERR );
}
}
//
// Return a pointer to the string describing the server error
//
char * ErrorMap::serverErrorDescription( ServerError_id error_id ) {
if( error_id >= serverNoError && error_id <= serverUnknownError ) {
return ServerErrorText[error_id];
} else {
return ServerErrorText[serverUnknownError];
}
}
//
// Return the error code of the error reported to the client
//
long ErrorMap::sdaiErrorCode( SCLP23( Error_id ) error_id ) {
switch( error_id ) {
case SCLP23( sdaiNO_ERR ):
return SCLP22( sdaiNO_ERR );
case SCLP23( sdaiSS_OPN ):
return SCLP22( sdaiSS_OPN );
case SCLP23( sdaiSS_NAVL ):
return SCLP22( sdaiSS_NAVL );
case SCLP23( sdaiSS_NOPN ):
return SCLP22( sdaiSS_NOPN );
case SCLP23( sdaiRP_NEXS ):
return SCLP22( sdaiRP_NEXS );
case SCLP23( sdaiRP_NAVL ):
return SCLP22( sdaiRP_NAVL );
case SCLP23( sdaiRP_OPN ):
return SCLP22( sdaiRP_OPN );
case SCLP23( sdaiRP_NOPN ):
return SCLP22( sdaiRP_NOPN );
case SCLP23( sdaiTR_EAB ):
return SCLP22( sdaiTR_EAB );
case SCLP23( sdaiTR_EXS ):
return SCLP22( sdaiTR_EXS );
case SCLP23( sdaiTR_NAVL ):
return SCLP22( sdaiTR_NAVL );
case SCLP23( sdaiTR_RW ):
return SCLP22( sdaiTR_RW );
case SCLP23( sdaiTR_NRW ):
return SCLP22( sdaiTR_NRW );
case SCLP23( sdaiTR_NEXS ):
return SCLP22( sdaiTR_NEXS );
case SCLP23( sdaiMO_NDEQ ):
return SCLP22( sdaiMO_NDEQ );
case SCLP23( sdaiMO_NEXS ):
return SCLP22( sdaiMO_NEXS );
case SCLP23( sdaiMO_NVLD ):
return SCLP22( sdaiMO_NVLD );
case SCLP23( sdaiMO_DUP ):
return SCLP22( sdaiMO_DUP );
case SCLP23( sdaiMX_NRW ):
return SCLP22( sdaiMX_NRW );
case SCLP23( sdaiMX_NDEF ):
return SCLP22( sdaiMX_NDEF );
case SCLP23( sdaiMX_RW ):
return SCLP22( sdaiMX_RW );
case SCLP23( sdaiMX_RO ):
return SCLP22( sdaiMX_RO );
case SCLP23( sdaiSD_NDEF ):
return SCLP22( sdaiSD_NDEF );
case SCLP23( sdaiED_NDEF ):
return SCLP22( sdaiED_NDEF );
case SCLP23( sdaiED_NDEQ ):
return SCLP22( sdaiED_NDEQ );
case SCLP23( sdaiED_NVLD ):
return SCLP22( sdaiED_NVLD );
case SCLP23( sdaiRU_NDEF ):
return SCLP22( sdaiRU_NDEF );
case SCLP23( sdaiEX_NSUP ):
return SCLP22( sdaiEX_NSUP );
case SCLP23( sdaiAT_NVLD ):
return SCLP22( sdaiAT_NVLD );
case SCLP23( sdaiAT_NDEF ):
return SCLP22( sdaiAT_NDEF );
case SCLP23( sdaiSI_DUP ):
return SCLP22( sdaiSI_DUP );
case SCLP23( sdaiSI_NEXS ):
return SCLP22( sdaiSI_NEXS );
case SCLP23( sdaiEI_NEXS ):
return SCLP22( sdaiEI_NEXS );
case SCLP23( sdaiEI_NAVL ):
return SCLP22( sdaiEI_NAVL );
case SCLP23( sdaiEI_NVLD ):
return SCLP22( sdaiEI_NVLD );
case SCLP23( sdaiEI_NEXP ):
return SCLP22( sdaiEI_NEXP );
case SCLP23( sdaiSC_NEXS ):
return SCLP22( sdaiSC_NEXS );
case SCLP23( sdaiSC_EXS ):
return SCLP22( sdaiSC_EXS );
case SCLP23( sdaiAI_NEXS ):
return SCLP22( sdaiAI_NEXS );
case SCLP23( sdaiAI_NVLD ):
return SCLP22( sdaiAI_NVLD );
case SCLP23( sdaiAI_NSET ):
return SCLP22( sdaiAI_NSET );
case SCLP23( sdaiVA_NVLD ):
return SCLP22( sdaiVA_NVLD );
case SCLP23( sdaiVA_NEXS ):
return SCLP22( sdaiVA_NEXS );
case SCLP23( sdaiVA_NSET ):
return SCLP22( sdaiVA_NSET );
case SCLP23( sdaiVT_NVLD ):
return SCLP22( sdaiVT_NVLD );
case SCLP23( sdaiIR_NEXS ):
return SCLP22( sdaiIR_NEXS );
case SCLP23( sdaiIR_NSET ):
return SCLP22( sdaiIR_NSET );
case SCLP23( sdaiIX_NVLD ):
return SCLP22( sdaiIX_NVLD );
case SCLP23( sdaiER_NSET ):
return SCLP22( sdaiER_NSET );
case SCLP23( sdaiOP_NVLD ):
return SCLP22( sdaiOP_NVLD );
case SCLP23( sdaiFN_NAVL ):
return SCLP22( sdaiFN_NAVL );
case SCLP23( sdaiSY_ERR ):
return SCLP22( sdaiSY_ERR );
default:
return SCLP22( sdaiSY_ERR );
}
}
//
// Return a pointer to the string describing the SDAI error
//
// It uses the fact the Part23 error codes are multiples of 10.
//
char * ErrorMap::sdaiErrorDescription( SCLP23( Error_id ) error_id ) {
if( error_id >= SCLP23( sdaiNO_ERR ) && error_id <= SCLP23( sdaiSY_ERR ) ) {
return SdaiErrorText[( int ) error_id / 10];
} else {
return SdaiErrorText[( ( int ) SCLP23( sdaiSY_ERR ) ) / 10];
}
}
-60
View File
@@ -1,60 +0,0 @@
//
// File: ErrorMap.hh
//
// Description: Declaration of class ErrorMap. ErrorMap is used to
// map internal server errors, which include Part 23
// binding errors, into Part26 binding errors and error
// description strings.
//
// Rev: $Revision: 1.1 $
// Created: $Date: 1998/01/09 21:39:30 $
// Author: $Author: sauderd $
//
// Copyright Industrial Technology Institute 1997 -- All Rights Reserved
//
#ifndef ERRORMAP_HH
#define ERRORMAP_HH
#include <sdai.h>
enum ServerError_id
{
serverNoError = 0,
serverNoMemoryError = 1,
serverTypeConversionError = 2,
serverTimeFormatError = 3,
serverBadTransactionPointer = 4,
serverBadDatabasePointer = 5,
serverBadSessionPointer = 6,
serverBadRepositoryContentsPointer = 7,
serverBadRepositoryPointer = 8,
serverBadRepositorySetPointer = 9,
serverBadModelSetPointer = 10,
serverBadModelPointer = 11,
serverBadPIDPointer = 12,
serverBadSchemaSetPointer = 13,
serverBadSessionSetPointer = 14,
serverBadPointer = 15,
serverUnknownRepoType = 16,
serverObjectStoreError = 17,
serverUnknownError = 18
};
class ErrorMap
{
public:
static long serverErrorCode(ServerError_id);
static char * serverErrorDescription(ServerError_id);
static long sdaiErrorCode(SCLP23(Error_id));
static char * sdaiErrorDescription(SCLP23(Error_id));
private:
static char * ServerErrorText[];
static char * SdaiErrorText[];
};
#endif
-128
View File
@@ -1,128 +0,0 @@
//
// File: ErrorRpt.cc
//
// Description: Implementation of global error reporting functions
//
// Rev: $Revision: 1.1 $
// Created: $Date: 1998/01/09 21:39:30 $
// Author: $Author: sauderd $
//
// Copyright Industrial Technology Institute 1997 -- All Rights Reserved
//
#include <iostream.h>
#include <sdai.h>
//#include "sdaiimp.hh"
#include "ErrorMap.hh"
#include "ErrorRpt.hh"
//#include "SessionMgr.hh"
//extern SessionManager SessionMgr;
//
// Report a server error
//
// A server error is any error that is not an SDAI error
//
// The error is mapped into a Part 26 SDAI error.
//
void reportServerError( ServerError_id error_id ) {
long error_code = 0;
/*
SCLP23(Session_ptr) session = SessionMgr.active_session_();
if (session != SCLP23(Session)::_nil())
{
char * function_id = SessionMgr.function_id_();
error_code = ErrorMap::serverErrorCode(error_id);
char * description = ErrorMap::serverErrorDescription(error_id);
session->recordError(function_id, error_code, description);
}
else // there is no active session for this user
{
error_code = ErrorMap::sdaiErrorCode(SCLP23(sdaiSS_NOPN));
}
*/
throw SCLP22( SDAIException )( error_code );
}
//
// Report an ObjectStore error
//
// The error is mapped into a Part 26 SDAI error.
//
void reportObjectStoreError( const char * message ) {
long error_code = 0;
/*
SCLP23(Session_ptr) session = SessionMgr.active_session_();
long error_code;
if (session != SCLP23(Session)::_nil())
{
char * function_id = SessionMgr.function_id_();
error_code = ErrorMap::serverErrorCode(serverObjectStoreError);
char * header = "ObjectStore Error: ";
char * description = new char [strlen(header)+ strlen(message)+1];
if (description != NULL)
{
sprintf(description, "%s%s", header, message);
session->recordError(function_id, error_code, description);
}
else
{
reportServerError(serverNoMemoryError);
}
}
else // there is no active session for this user
{
error_code = ErrorMap::sdaiErrorCode(SCLP23(sdaiSS_NOPN));
}
*/
throw SCLP22( SDAIException )( error_code );
}
//
// Report an SDAI error
//
// Part 23 binding errors are mapped into Part 26 binding errors
//
void reportSDAIError( SCLP23( Error_id ) error_id ) {
long error_code = 0;
/*
SCLP23(Session_ptr) session = SessionMgr.active_session_();
long error_code;
if (session != SCLP23(Session)::_nil())
{
char * function_id = SessionMgr.function_id_();
error_code = ErrorMap::sdaiErrorCode(error_id);
char * description = ErrorMap::sdaiErrorDescription(error_id);
cout << "Error description: " << description << endl;
session->recordError(function_id, error_code, description);
}
else // there is no active session for this user
{
error_code = ErrorMap::sdaiErrorCode(SCLP23(sdaiSS_NOPN));
}
*/
throw SCLP22( SDAIException )( error_code );
}
-25
View File
@@ -1,25 +0,0 @@
//
// File: ErrorRpt.hh
//
// Description: Declaration of global error reporting functions
//
// Rev: $Revision: 1.1 $
// Created: $Date: 1998/01/09 21:39:30 $
// Author: $Author: sauderd $
//
// Copyright Industrial Technology Institute 1997 -- All Rights Reserved
//
#ifndef ERRORRPT_HH
#define ERRORRPT_HH
#include <sdai.h>
#include "ErrorMap.hh"
void reportServerError(ServerError_id error_id);
void reportObjectStoreError(const char * message);
void reportSDAIError(SCLP23(Error_id) error_id);
#endif
-90
View File
@@ -1,90 +0,0 @@
//
// File: StrUtil.cc
//
// Description: Implementation of string utility functions
//
// Rev: $Revision: 1.1 $
// Created: $Date: 1998/01/09 21:39:30 $
// Author: $Author: sauderd $
//
// Copyright Industrial Technology Institute 1997 -- All Rights Reserved
//
#include <string.h>
#include <time.h>
#include "StrUtil.hh"
//#include "imppackages.hh"
#include "ErrorRpt.hh"
//
// Duplicate a string
//
// Returns a pointer to a new string that is a duplicate of the string
// pointed to by srcStr. If the destination string pointer is not NULL,
// the memory the destination string points to is deallocated using delete().
// The space for the new string is obtained using ::new(). If the new string
// cannot be created, a null pointer is returned.
//
char * strDup( char * destStr, const char * srcStr ) {
if( destStr != NULL ) {
delete [] destStr;
destStr = NULL;
}
if( srcStr != NULL ) {
destStr = new char[strlen( srcStr ) + 1];
if( destStr != NULL ) {
strcpy( destStr, srcStr );
} else {
reportServerError( serverNoMemoryError );
}
}
return destStr;
}
//
// Free the memory allocated to a string
//
void strFree( char * str ) {
if( str != NULL ) {
delete [] str;
}
}
//
// Return the current date and time as a string
//
// It is the caller's responsibility to deallocate the memory for the string.
//
char * getCurrentDate( void ) {
// need to get format of time stamp from ISO 8601
#define TIME_STR_LEN 256
char * timeStr = NULL;
char time_buf[TIME_STR_LEN];
char * time_format = NULL; // use default locale format for now
struct timeval time_of_day;
struct tm * time_struct;
( void ) gettimeofday( &time_of_day, ( void * ) NULL );
time_struct = localtime( &( time_of_day.tv_sec ) );
int length = strftime( time_buf, TIME_STR_LEN, time_format , time_struct );
if( length > 0 ) {
timeStr = strDup( timeStr, time_buf );
} else {
reportServerError( serverTimeFormatError );
}
return timeStr;
}
-37
View File
@@ -1,37 +0,0 @@
//
// File: StrUtil.hh
//
// Description: Declaration of string utility functions.
//
// Rev: $Revision: 1.1 $
// Created: $Date: 1998/01/09 21:39:30 $
// Author: $Author: sauderd $
//
// Copyright Industrial Technology Institute 1997 -- All Rights Reserved
//
#ifndef STRUTIL_HH
#define STRUTIL_HH
//
// Returns a pointer to a new string that is a duplicate of the string
// pointed to by srcStr. If the destination string pointer is not NULL,
// the memory the destination string points to is deallocated using delete().
// The space for the new string is obtained using ::new(). If the new string
// cannot be created, a null pointer is returned.
//
char * strDup(char *destStr, const char *srcStr);
//
// Free the memory allocated for the given string
//
void strFree(char * str);
//
// Get the current date, caller has the responsibility to deallocate
// the returned string.
//
char * getCurrentDate(void);
#endif
-218
View File
@@ -1,218 +0,0 @@
//
// File: impconv.hh
//
// Description: Macro definitions for type conversions between interface
// and implementation types.
//
// Rev: $Revision: 1.3 $
// Created: $Date: 1998/01/13 20:24:39 $
// Author: $Author: sauderd $
//
// Copyright Industrial Technology Institute 1997 -- All Rights Reserved
//
#ifndef IMPCONV_HH
#define IMPCONV_HH
#include <sdai.h>
#ifdef PART26
#define P22toP23Ptr(T, X, Y) \
SCLP23(T) * Y; \
{ \
if ((X)) \
{ \
Y = (SCLP23(T) *) DEREF((X)); \
} \
else \
{ \
Y = SCLP23(T)::_nil(); \
} \
}
#define P23toP22Ptr(T, X, Y) \
SCLP22(T) * Y; \
{ \
if ((X)) \
{ \
Y = SCLP22(T)::_duplicate(SCLP22(T)::_narrow((X)->tie_())); \
} \
else \
{ \
Y = SCLP22(T)::_nil(); \
} \
}
/////////////////////////
#define myP23toP22Ptr(T, X, Y) \
SCLP22(T) * Y; \
{ \
if ((X)) \
{ \
Y = SCLP22(T)::_duplicate(SCLP22(T)::_narrow((X)->tie_())); \
} \
else \
{ \
Y = SCLP22(T)::_nil(); \
} \
}
#if 0
if(X /*_containing_machine*/ != 0)
{
try
{
const char *hostName = CORBA_REF(Orbix).myHost();
char markerServer[64];
sprintf(markerServer, "%d:%s", X /*_containing_machine*/->STEPfile_id, serverName);
cout << "*****" << markerServer << endl;
Machine_var x = Machine::_bind((const char *)markerServer,hostName);
Machine::_duplicate(x);
cout << endl << "x->_refCount(): " << x->_refCount();
cout << endl << "STEPfile id inside _containing_machine's get function is: "
<< _containing_machine->STEPfile_id << endl;
cout << "x's marker name in server's implementation object's attr _containing_machine's get function is: '"
<< x->_marker() << "'" << endl << endl;
return x;
}
catch (CORBA::SystemException &se) {
cerr << "Unexpected system exception in _containing_machine's get funct: " << &se;
throw;
}
catch(...) {
cerr << "Caught Unknown Exception in _containing_machine's get funct!" << endl;
throw;
}
}
else
cout << "nil object ref in attr _containing_machine's put funct" << endl;
return Machine::_nil();
/////////////////////////
#endif
//
// Convert a Part 22 (interface) set into a Part 23 (implementation) set
//
// Note: this macro cannot be used with nested collections.
//
// T is the type of the elements in the set. The straight name of the
// type must be given, i.e., Repository instead of SCLP23(Repository).
//
// X is a variable (not a pointer to) of interface (Part 22) set type
// object. It must be declared before invoking this macro.
//
// Y is a variable of the implementation (Part 23) set type. It is
// declared inside this macro.
//
#define P22toP23Set(T, X, Y) \
SCLP23(T##__set) Y; \
{ \
long length = (X).length(); \
\
for (long i = 0; i < length_; ++i) \
{ \
SCLP23(T) * x_el = (SCLP23(T) *) DEREF((&X)[i]); \
\
if (y_el != (SCLP22(T) *) NULL) \
{ \
Y.insert(y_el); \
} \
else \
{ \
reportServerError(serverTypeConversionError); \
} \
} \
}
//
// Convert a Part 22 (interface) list into a Part 23 (implementation) list
//
// Note: this macro cannot be used with nested collections.
//
// T is the type of the elements in the list. The straight name of the
// type must be given, i.e., Repository instead of SCLP23(Repository).
//
// X is a variable (not a pointer to) of interface (Part 22) list type
// object. It must be declared before invoking this macro.
//
// Y is a variable of the implementation (Part 23) set type. It is
// declared inside this macro.
//
#define P22toP23List(T, X, Y) \
SCLP23(T##__list) Y; \
{ \
long length = (X).length(); \
\
for (long i = 0; i < length_; ++i) \
{ \
SCLP23(T) * x_el = (SCLP23(T) *) DEREF((&X)[i]); \
\
if (y_el != (SCLP22(T) *) NULL) \
{ \
Y.insert(y_el); \
} \
else \
{ \
reportServerError(serverTypeConversionError); \
} \
} \
}
#define P23toP22Set(T, X, Y) \
SCLP22(T##__set) * Y = new SCLP22(T##__set); \
{ \
/* long length = (X)->cardinality(); */\
/* os_Cursor<SCLP23(T) *> c(*(X)); */\
long length = (X)->_rep.cardinality(); \
\
Y->length(length); \
int i = 0; \
\
/* for (SCLP23(T) * x_el = c.first(); c.more(); x_el = c.next())*/ \
for (SCLP23(T) * x_el = X->first(); X->more(); x_el = X->next()) \
{ \
SCLP22(T) * y_el = SCLP22(T)::_narrow(x_el->tie_()); \
if (y_el != (SCLP22(T) *) NULL) \
{ \
(*Y)[i++] = y_el; \
} \
else \
{ \
reportServerError(serverTypeConversionError); \
} \
} \
}
#define P23toP22List(T, X, Y) \
SCLP22(T##__list) * Y = new SCLP22(T##__list); \
{ \
long length = (X)->_rep.cardinality(); \
/* long length = (X)->cardinality();*/ \
/* os_Cursor<SCLP23(T) *> c(*(X));*/ \
\
Y->length(length); \
int i = 0; \
\
/* for (SCLP23(T) * x_el = c.first(); c.more(); x_el = c.next()) */\
for (SCLP23(T) * x_el = (X)->first(); (X)->more(); x_el = (X)->next()) \
{ \
SCLP22(T) * y_el = SCLP22(T)::_narrow(x_el->tie_()); \
if (y_el != (SCLP22(T) *) NULL) \
{ \
(*Y)[i++] = y_el; \
} \
else \
{ \
reportServerError(serverTypeConversionError); \
} \
} \
}
#else
#endif // PART26
#endif // IMPCONV_HH
-91
View File
@@ -1,91 +0,0 @@
//
// File: imptypes.hh
//
// Description: Type definitions for SDAI implementation classes
//
// This software was developed by NIST and the Industrial Technology Institute
//
// NOTE: This header file will be included within a namespace. Do not
// #include any headers that contain class declarations or functions
// you don't want included in the namespace.
// You should probably only #include sdai.h which #includes this one
//
#ifndef IMPTYPES_HH
#define IMPTYPES_HH
class SCLP23_NAME(Object);
typedef SCLP23_NAME(Object)* SCLP23_NAME(Object_ptr);
typedef SCLP23_NAME(Object_ptr) SCLP23_NAME(Object_var);
class SCLP23_NAME(Session_instance);
typedef SCLP23_NAME(Session_instance)* SCLP23_NAME(Session_instance_ptr);
typedef SCLP23_NAME(Session_instance_ptr) SCLP23_NAME(Session_instance_var);
typedef char * SCLP23_NAME(DAObjectID);
class SCLP23_NAME(PID);
typedef SCLP23_NAME(PID)* SCLP23_NAME(PID_ptr);
typedef SCLP23_NAME(PID_ptr) SCLP23_NAME(PID_var);
class SCLP23_NAME(PID_DA);
typedef SCLP23_NAME(PID_DA)* SCLP23_NAME(PID_DA_ptr);
typedef SCLP23_NAME(PID_DA_ptr) SCLP23_NAME(PID_DA_var);
class SCLP23_NAME(PID_SDAI);
typedef SCLP23_NAME(PID_SDAI)* SCLP23_NAME(PID_SDAI_ptr);
typedef SCLP23_NAME(PID_SDAI_ptr) SCLP23_NAME(PID_SDAI_var);
class SCLP23_NAME(DAObject);
typedef SCLP23_NAME(DAObject)* SCLP23_NAME(DAObject_ptr);
typedef SCLP23_NAME(DAObject_ptr) SCLP23_NAME(DAObject_var);
class SCLP23_NAME(DAObject__set);
typedef SCLP23_NAME(DAObject__set)* SCLP23_NAME(DAObject__set_ptr);
typedef SCLP23_NAME(DAObject__set_ptr) SCLP23_NAME(DAObject__set_var);
class SCLP23_NAME(DAObject_SDAI);
typedef SCLP23_NAME(DAObject_SDAI)* SCLP23_NAME(DAObject_SDAI_ptr);
typedef SCLP23_NAME(DAObject_SDAI_ptr) SCLP23_NAME(DAObject_SDAI_var);
class SCLP23_NAME(Model_contents_instances);
typedef SCLP23_NAME(Model_contents_instances) *
SCLP23_NAME(Model_contents_instances_ptr);
typedef SCLP23_NAME(Model_contents_instances_ptr)
SCLP23_NAME(Model_contents_instances_var);
class SCLP23_NAME(Model_contents);
typedef SCLP23_NAME(Model_contents) * SCLP23_NAME(Model_contents_ptr);
typedef SCLP23_NAME(Model_contents_ptr) SCLP23_NAME(Model_contents_var);
class SCLP23_NAME(Model_contents__list);
typedef SCLP23_NAME(Model_contents__list)*
SCLP23_NAME(Model_contents__list_ptr);
typedef SCLP23_NAME(Model_contents__list_ptr)
SCLP23_NAME(Model_contents__list_var);
class SCLP23_NAME(Entity_extent);
typedef SCLP23_NAME(Entity_extent) * SCLP23_NAME(Entity_extent_ptr);
typedef SCLP23_NAME(Entity_extent_ptr) SCLP23_NAME(Entity_extent_var);
class SCLP23_NAME(Entity_extent__set);
typedef SCLP23_NAME(Entity_extent__set)* SCLP23_NAME(Entity_extent__set_ptr);
typedef SCLP23_NAME(Entity_extent__set_ptr) SCLP23_NAME(Entity_extent__set_var);
class SCLP23_NAME(Application_instance);
// current style of CORBA handles for Part 23
typedef SCLP23_NAME(Application_instance)* SCLP23_NAME(Application_instance_ptr);
typedef SCLP23_NAME(Application_instance_ptr) SCLP23_NAME(Application_instance_var);
class SCLP23_NAME(Application_instance__set);
typedef SCLP23_NAME(Application_instance__set) *
SCLP23_NAME(Application_instance__set_ptr);
typedef SCLP23_NAME(Application_instance__set_ptr)
SCLP23_NAME(Application_instance__set_var);
/*
typedef SCLP23_NAME(Application_instance__list) *
SCLP23_NAME(Application_instance__list_var);
*/
#endif // IMPTYPES_HH
+6 -115
View File
@@ -1,22 +1,7 @@
#ifndef SDAIDAOBJECT_H
#define SDAIDAOBJECT_H 1
/*
#include <sclprefixes.h>
#ifdef PART26
#include <CORBA.h>
#include <corbaIncludes.h>
#else
typedef char* DAObjectID;
#endif
#include <Object.h>
*/
#ifndef PART26
typedef char* SCLP23_NAME(DAObjectID);
#endif
// interface PID (ISO/DIS 10303-23:1996(E) 5.3.10.1)
// Also, CORBA POS specification, Section 5.4
@@ -56,7 +41,6 @@ class SCLP23_NAME(PID) : public SCLP23_NAME(sdaiObject)
SCLP23_NAME(PID)();
virtual ~SCLP23_NAME(PID)();
#ifndef PART26
/*
The Datestore_type attribute shall identify the type of the underlying
datastore.
@@ -68,23 +52,8 @@ class SCLP23_NAME(PID) : public SCLP23_NAME(sdaiObject)
This function shall return a string version of the receiver.
*/
char* get_PIDString();
#else
virtual void datastore_type (const char * x, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
{ _datastore_type = x; }
virtual char * datastore_type (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
{ return CORBA::string_dupl(_datastore_type); }
virtual char * get_PIDString (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
{ return CORBA::string_dupl(_pidstring); }
#endif
};
#ifdef PART26
//DEF_TIE_PID( SCLP23_NAME(PID) )
#endif
typedef SCLP23_NAME(PID)* SCLP23_NAME(PID_ptr);
typedef SCLP23_NAME(PID_ptr) SCLP23_NAME(PID_var);
@@ -132,25 +101,11 @@ class SCLP23_NAME(PID_DA): public SCLP23_NAME(PID)
SCLP23_NAME(PID_DA)();
virtual ~SCLP23_NAME(PID_DA)();
#ifndef PART26
virtual void oid (const SCLP23_NAME(DAObjectID) x) { _oid = x; }
virtual SCLP23_NAME(DAObjectID) oid () const
{ return const_cast<char *>(_oid.c_str()); }
#else
// virtual void oid (const SCLP26(DAObjectID) x, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
virtual void oid (const DAObjectID x, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
{ _oid = x; }
// virtual SCLP26(DAObjectID) oid (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
virtual DAObjectID oid (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
{ return CORBA::string_dupl(_oid); }
#endif
};
#ifdef PART26
//DEF_TIE_PID_DA( SCLP23(PID_DA) )
#endif
typedef SCLP23_NAME(PID_DA)* SCLP23_NAME(PID_DA_ptr);
typedef SCLP23_NAME(PID_DA_ptr) SCLP23_NAME(PID_DA_var);
@@ -164,10 +119,6 @@ class SCLP23_NAME(PID_SDAI) : public SCLP23_NAME(PID)
public:
SCLP23_NAME(String) _modelid ;
// static PID_SDAI_ptr _duplicate(PID_SDAI_ptr);
// static PID_SDAI_ptr _narrow(SCLP23_NAME(sdaiObject_ptr));
// static PID_SDAI_ptr _nil();
// constructor/destructor
SCLP23_NAME(PID_SDAI)();
virtual ~SCLP23_NAME(PID_SDAI)();
@@ -178,23 +129,10 @@ class SCLP23_NAME(PID_SDAI) : public SCLP23_NAME(PID)
// the persistent identifier of the cluster of data for the
// Model_contents referred to by this PID.
//
#ifndef PART26
virtual void Modelid (const char * x) { _modelid = x; }
virtual char * Modelid () const { return const_cast<char *>(_modelid.c_str()); }
#else
virtual void Modelid (const char * x, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
{ _modelid = x; }
virtual char * Modelid (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
{ return CORBA::string_dupl(_modelid); }
#endif
};
#ifdef PART26
//DEF_TIE_PID_SDAI( SCLP23(PID_SDAI) )
#endif
typedef SCLP23_NAME(PID_SDAI)* SCLP23_NAME(PID_SDAI_ptr);
typedef SCLP23_NAME(PID_SDAI_ptr) SCLP23_NAME(PID_SDAI_var);
@@ -215,14 +153,10 @@ typedef SCLP23_NAME(DAObject)* SCLP23_NAME(DAObject_ptr);
typedef SCLP23_NAME(DAObject_ptr) SCLP23_NAME(DAObject_var);
class SCLP23_NAME(DAObject) : public SCLP23_NAME(sdaiObject)
//class DAObject : public SCLP23_NAME(sdaiObject)
{
public:
SCLP23_NAME(String) _dado_oid;
// static DAObject_ptr _duplicate(DAObject_ptr);
// static DAObject_ptr _narrow(SCLP23_NAME(sdaiObject_ptr));
// static DAObject_ptr _nil();
// dado_same (ISO/DIS 10303-23:1996(E) 5.3.10.5)
//
@@ -238,21 +172,9 @@ class SCLP23_NAME(DAObject) : public SCLP23_NAME(sdaiObject)
SCLP23_NAME(DAObject)();
virtual ~SCLP23_NAME(DAObject)();
#ifdef PART26
// virtual SCLP26(Application_instance_ptr) create_TIE();
virtual IDL_Application_instance_ptr create_TIE();
#endif
#ifndef PART26
Boolean dado_same(SCLP23_NAME(DAObject_ptr) obj)
{
// this will make the compiler happy that we used obj
strcmp(obj->dado_oid(),dado_oid());
return BUnset;
}
#else
virtual Boolean dado_same (SCLP23_NAME(DAObject_ptr) obj, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) { return BUnset; }
#endif
Logical dado_same(SCLP23_NAME(DAObject_ptr) obj) {
return LUnknown;
}
// Get persistent label (ISO/DIS 10303-22:1996(E) 10.11.6)
//
@@ -283,14 +205,8 @@ class SCLP23_NAME(DAObject) : public SCLP23_NAME(sdaiObject)
note that the return value as described in the text above
should be a string type.
*/
#ifndef PART26
SCLP23_NAME(DAObjectID) dado_oid()
{ return const_cast<char *>(_dado_oid.c_str()); }
#else
// virtual SCLP26(DAObjectID) dado_oid (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
virtual DAObjectID dado_oid (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
{ return CORBA::string_dupl(_dado_oid); }
#endif
// dado_pid
//
@@ -301,13 +217,7 @@ class SCLP23_NAME(DAObject) : public SCLP23_NAME(sdaiObject)
part of interface DAObject in the specification of the
Persistent Object Service.
*/
#ifndef PART26
SCLP23_NAME(PID_DA_ptr) dado_pid()
{ return 0; }
#else
virtual SCLP23_NAME(PID_DA_ptr) dado_pid (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
{ return 0; }
#endif
SCLP23_NAME(PID_DA_ptr) dado_pid() { return 0; }
// dado_remove (ISO/DIS 10303-23:1996(E) 5.3.10.5)
//
@@ -318,13 +228,7 @@ class SCLP23_NAME(DAObject) : public SCLP23_NAME(sdaiObject)
// POS specification description: This deletes the object from the
// persistent store and deletes the in-memory data object.
//
#ifndef PART26
void dado_remove()
{ }
#else
virtual void dado_remove (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
{ }
#endif
void dado_remove() { }
// dado_free (ISO/DIS 10303-23:1996(E) 5.3.10.5)
//
@@ -338,14 +242,7 @@ class SCLP23_NAME(DAObject) : public SCLP23_NAME(sdaiObject)
// referenced. This operation is only a hint and is provided to improve
// performance and resource usage.
//
#ifndef PART26
void dado_free()
{ }
#else
virtual void dado_free (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException)
{ }
#endif
void dado_free() { }
};
/*
@@ -356,15 +253,9 @@ class SCLP23_NAME(DAObject_SDAI) : public SCLP23_NAME(DAObject) {
public:
SCLP23_NAME(DAObject_SDAI)();
// SCLP23_NAME(DAObject_SDAI)(const SCLP23_NAME(DAObject_SDAI)&);
virtual ~SCLP23_NAME(DAObject_SDAI)();
#ifdef PART26
// virtual SCLP26(Application_instance_ptr) create_TIE();
virtual IDL_Application_instance_ptr create_TIE();
#endif
/*
5.3.10.1.1 Find entity instance SDAI-model
*/
+50 -289
View File
@@ -10,8 +10,6 @@
* and is not subject to copyright.
*/
/* $Id: STEPfile.cc,v 3.0.1.10 1998/02/17 18:04:30 sauderd Exp $ */
/********************************************************************
TODO LIST:
- ReadHeader doesn't merge the information from more than one instance
@@ -23,6 +21,9 @@
list according to the symbol which precedes them in the working session
file
**********************************************************************/
#include <iostream>
#include <iterator>
#include <STEPfile.h>
#include <sdai.h>
#include <STEPcomplex.h>
@@ -35,37 +36,21 @@
/***************************
function: SetFileName
returns: (const char*) The new file name for the class.
parameters: (const char*) The file name to be set.
returns: (const std::string) The new file name for the class.
parameters: (const std::string) The file name to be set.
description:
This function sets the (char*)_fileName member variable to an
This function sets the _fileName member variable to an
absolute path name to a directory on the file system. If newName
cannot be resolved to a file, then an empty char* is returned.
cannot be resolved to a file, then an empty string is returned.
side effects: STEPfile::_fileName value may change.
***************************/
const char *
STEPfile::SetFileName( const char * newName ) {
char tmp[MAXPATHLEN + 1];
const char * path = tmp;
const std::string STEPfile::SetFileName( const std::string newName ) {
// if a newName is not given or is the same as the old, use the old name
if( ( !newName ) || ( !strcmp( newName, "" ) ) || ( newName == _fileName ) ) {
if( ( newName.empty() ) || ( newName == _fileName ) ) {
return FileName();
}
path = _currentDir->Normalize( newName );
if( !_currentDir->LoadDirectory( path ) ) {
_error.AppendToUserMsg( "Cannot Load Directory.\n" );
return ( char * )0;
}
delete [] _fileName;
_fileName = new char[strlen( newName ) + 1];
if( !_fileName ) {
_error.AppendToUserMsg( "free store exhausted.\n" );
return ( char * )0;
}
strcpy( _fileName, newName );
_fileName = DirObj::Normalize( newName );
return _fileName;
}
@@ -603,7 +588,7 @@ STEPfile::ReadData1( istream & in ) {
tmpbuf.clear();
FindStartOfInstance( in, tmpbuf );
cout << "ERROR: trying to recover from invalid data. skipping: "
<< tmpbuf.c_str() << endl;
<< tmpbuf << endl;
in >> c;
ReadTokenSeparator( in );
}
@@ -713,7 +698,7 @@ STEPfile::ReadData1( istream & in ) {
tmpbuf.set_null();
SkipInstance( in, tmpbuf );
cout << "ERROR: trying to recover from invalid data. skipping: "
<< tmpbuf.c_str() << endl;
<< tmpbuf << endl;
ReadTokenSeparator( in );
}
@@ -786,7 +771,7 @@ STEPfile::ReadData1( istream & in ) {
tmpbuf.set_null();
SkipInstance( in, tmpbuf );
cout << "ERROR: trying to recover from invalid data. skipping: "
<< tmpbuf.c_str() << endl;
<< tmpbuf << endl;
ReadTokenSeparator( in );
}
if( c == ENTITY_NAME_DELIM ) {
@@ -1020,7 +1005,7 @@ STEPfile::ReadData2( istream & in, int useTechCor ) {
tmpbuf.clear();
FindStartOfInstance( in, tmpbuf );
cout << "ERROR: trying to recover from invalid data. skipping: "
<< tmpbuf.c_str() << endl;
<< tmpbuf << endl;
in >> c;
ReadTokenSeparator( in, &cmtStr );
}
@@ -1193,7 +1178,7 @@ STEPfile::ReadData2( istream & in ) {
tmpbuf.set_null();
SkipInstance( in, tmpbuf );
cout << "ERROR: trying to recover from invalid data. skipping: "
<< tmpbuf.c_str() << endl;
<< tmpbuf << endl;
ReadTokenSeparator( in );
}
@@ -1527,7 +1512,7 @@ STEPfile::CreateInstance( istream & in, ostream & out ) {
SkipInstance( in, tmpbuf );
out << "WARNING: instance #" << fileid
<< " User Defined Entity in DATA section ignored.\n"
<< "\tData lost: \'!" << objnm.c_str() << "\': " << tmpbuf
<< "\tData lost: \'!" << objnm << "\': " << tmpbuf
<< endl;
return ENTITY_NULL;
} else {
@@ -1540,7 +1525,7 @@ STEPfile::CreateInstance( istream & in, ostream & out ) {
// Common causes of error is that obj is an abstract supertype
// or that it can only be instantiated using external mapping.
// If neither are the case, create a generic message.
if( *obj->Error().UserMsg() != '\0' ) {
if( !obj->Error().UserMsg().empty() ) {
result.UserMsg( obj->Error().UserMsg() );
} else {
result.UserMsg( "Could not create ENTITY" );
@@ -1549,23 +1534,17 @@ STEPfile::CreateInstance( istream & in, ostream & out ) {
delete obj;
obj = ENTITY_NULL;
}
#ifdef __O3DB__
if( obj ) {
obj -> persist();
}
#endif
}
}
if( obj == ENTITY_NULL ) {
SkipInstance( in, tmpbuf );
out << "ERROR: instance #" << fileid << " \'" << objnm.c_str()
out << "ERROR: instance #" << fileid << " \'" << objnm
<< "\': " << result.UserMsg()
<< ".\n\tData lost: " << tmpbuf << "\n\n";
return ENTITY_NULL;
}
obj -> STEPfile_id = fileid;
// AppendEntityErrorMsg( &(obj->Error()) );
// scan values
SkipInstance( in, tmpbuf );
@@ -1728,15 +1707,7 @@ STEPfile::CreateSubSuperInstance( istream & in, int fileid, ErrorDescriptor & e
entNmArr[enaIndex] = 0;
schemaName( schnm );
#ifdef __O3DB__
obj = new STEPcomplex( _reg, ( const std::string ** )entNmArr, fileid,
schnm );
#else
obj = new STEPcomplex( &_reg, ( const std::string ** )entNmArr, fileid,
schnm );
#endif
// SkipInstance(in, tmpstr);
obj = new STEPcomplex( &_reg, ( const std::string ** )entNmArr, fileid, schnm );
if( obj->Error().severity() <= SEVERITY_WARNING ) {
// If obj is not legal, record its error info and delete it:
@@ -1832,25 +1803,13 @@ STEPfile::ReadScopeInstances( istream & in ) {
}
/*
Severity
STEPfile::ReadSubSuperInstance (istream& in)
{
std::string tmp;
SkipInstance(in, tmp);
return SEVERITY_NULL;
}
*/
#ifdef junk
void
ReadEntityError( char c, int i, istream & in ) {
//FIXME: do we keep this?
void ReadEntityError( char c, int i, istream & in ) {
char errStr[BUFSIZ];
errStr[0] = '\0';
/* sprintf(errStr, " for instance #%d : %s\n", STEPfile_id, EntityName());*/
/* _error.AppendToDetailMsg(errStr);*/
if( ( i >= 0 ) && ( i < attributes.list_length() ) ) { // i is an attribute
sprintf( errStr, " invalid data for type \'%s\'\n",
attributes[i].TypeName() );
@@ -1870,8 +1829,6 @@ ReadEntityError( char c, int i, istream & in ) {
_error.AppendToDetailMsg( " data lost looking for end of entity:" );
// scan over the rest of the instance and echo it
// cerr << " ERROR Trying to find the end of the ENTITY to recover...\n";
// cerr << " skipping the following input:\n";
in.clear();
int foundEnd = 0;
@@ -1883,14 +1840,11 @@ ReadEntityError( char c, int i, istream & in ) {
while( in.good() && ( c != ')' ) ) {
in.get( c );
tmp.Append( c );
// cerr << c;
}
if( in.good() && ( c == ')' ) ) {
in >> ws; // skip whitespace
in.get( c );
tmp.Append( c );
// cerr << c;
// cerr << "\n";
if( c == ';' ) {
foundEnd = 1;
}
@@ -1997,7 +1951,6 @@ STEPfile::ReadInstance( istream & in, ostream & out, std::string & cmtStr,
//check for subtype/supertype record
if( c == '(' ) {
// TODO
// ReadSubSuperInstance(in);
sev = obj->STEPread( fileid, idIncrNum, &instances(), in, currSch,
useTechCor );
@@ -2011,7 +1964,6 @@ STEPfile::ReadInstance( istream & in, ostream & out, std::string & cmtStr,
if( c != 'E' ) {
in >> c; // read the semicolon
}
// return ENTITY_NULL;
} else {
ReadTokenSeparator( in, &cmtStr );
c = in.peek();
@@ -2038,7 +1990,7 @@ STEPfile::ReadInstance( istream & in, ostream & out, std::string & cmtStr,
SkipInstance( in, tmpbuf );
out << "WARNING: #" << fileid <<
". Ignoring User defined entity.\n\tdata lost: !"
<< objnm.c_str() << tmpbuf << "\n";
<< objnm << tmpbuf << "\n";
++_warningCount;
return ENTITY_NULL;
}
@@ -2132,40 +2084,22 @@ BUG: doesn't check to see if the backup command works.
******************************************************/
void
STEPfile::MakeBackupFile() {
char backup_call [2 * BUFSIZ];
char backup_file [BUFSIZ];
std::string bckup = FileName();
bckup.append(".bak");
// sprintf (backup_file, "%s.%d", FileName(), ++i);
sprintf( backup_file, "%s.bak", FileName() );
std::fstream f(FileName().c_str(), std::fstream::in|std::fstream::binary);
f << std::noskipws;
std::istream_iterator<unsigned char> begin(f);
std::istream_iterator<unsigned char> end;
sprintf( backup_call,
"if (test -f %s )"
" then mv %s %s ;",
FileName(),
FileName(), backup_file );
std::fstream f2(bckup.c_str(), std::fstream::out|std::fstream::trunc|std::fstream::binary);
std::ostream_iterator<char> begin2(f2);
// if (i > 4)
// sprintf (backup_call + strlen (backup_call), "rm %s.%d ; ", FileName (), i -2);
strcat( backup_call, "fi" );
copy(begin, end, begin2);
_error.AppendToDetailMsg( "Making backup file: " );
_error.AppendToDetailMsg( backup_file );
_error.AppendToDetailMsg( bckup.c_str() );
_error.AppendToDetailMsg( "\n" );
system( backup_call );
/*
strcpy (backup_call, "if (test -f ");
strcat (backup_call, FileName());
strcat (backup_call, ") then mv ");
strcat (backup_call, FileName());
strcat (backup_call, " ");
strcat (backup_call, FileName());
strcat (backup_call, ".bak ; fi ", ++i);
_error.AppendToDetailMsg("Making backup file: executing system call:\n\t");
_error.AppendToDetailMsg(backup_call);
_error.AppendToDetailMsg("\n");
system(backup_call);
*/
}
@@ -2200,7 +2134,7 @@ STEPfile::WriteExchangeFile( ostream & out, int validate, int clearError,
/***************************
***************************/
Severity
STEPfile::WriteExchangeFile( const char * filename, int validate, int clearError,
STEPfile::WriteExchangeFile( const std::string filename, int validate, int clearError,
int writeComments ) {
Severity rval = SEVERITY_NULL;
@@ -2249,10 +2183,7 @@ STEPfile::WriteValuePairsFile( ostream & out, int validate, int clearError,
}
}
// out << FILE_DELIM << "\n";
// WriteHeader(out);
WriteValuePairsData( out, writeComments, mixedCase );
// out << END_FILE_DELIM << "\n";
return rval;
}
@@ -2287,21 +2218,10 @@ STEPfile::HeaderId( const char * name ) {
/***************************
***************************/
int
STEPfile::HeaderIdOld( const char * name ) {
/*
char* nms[5] =
{
"FILE_IDENTIFICATION\0",
"FILE_DESCRIPTION\0",
"IMP_LEVEL\0",
"CLASSIFICATION\0",
"MAXSIG\0"
};
*/
int STEPfile::HeaderIdOld( const char * name ) {
const char * nms[5];
nms[0] = "FILE_IDENTIFICATION",
nms[1] = "FILE_DESCRIPTION";
nms[1] = "FILE_DESCRIPTION";
nms[2] = "IMP_LEVEL";
nms[3] = "CLASSIFICATION";
nms[4] = "MAXSIG";
@@ -2330,7 +2250,6 @@ STEPfile::WriteHeader( ostream & out ) {
SCLP23( Application_instance )* se;
int n = _headerInstances->InstanceCount();
for( int i = 0; i < n; ++i ) {
/* se = (*_headerInstances)[i]->GetApplication_instance();*/
se = _headerInstances->GetMgrNode( i ) ->GetApplication_instance();
if( !(
( se->StepFileId() == HeaderId( "File_Name" ) ) ||
@@ -2339,8 +2258,6 @@ STEPfile::WriteHeader( ostream & out ) {
) )
WriteHeaderInstance(
_headerInstances->GetMgrNode( i )->GetApplication_instance(), out );
/* WriteHeaderInstance((*_headerInstances)[i] -> GetApplication_instance(),
out );*/
}
out << "ENDSEC;\n";
}
@@ -2350,7 +2267,7 @@ STEPfile::WriteHeader( ostream & out ) {
void
STEPfile::WriteHeaderInstance( SCLP23( Application_instance )* obj, ostream & out ) {
std::string tmp;
if( obj->P21CommentRep() ) {
if( !obj->P21Comment().empty() ) {
out << obj->P21Comment();
}
out << StrToUpper( obj->EntityName(), tmp ) << "(";
@@ -2372,9 +2289,6 @@ STEPfile::WriteHeaderInstanceFileName( ostream & out ) {
SCLP23( Application_instance ) *se = 0;
se = _headerInstances->GetApplication_instance( "File_Name" );
if( se == ENTITY_NULL ) {
// ERROR: no File_Name instance in _headerInstances
// create a File_Name instance
// (p21DIS_File_name*)se = HeaderDefaultFileName();
se = ( SCLP23( Application_instance ) * )HeaderDefaultFileName();
}
@@ -2391,173 +2305,39 @@ STEPfile::WriteHeaderInstanceFileName( ostream & out ) {
struct tm * timeptr = localtime( &t );
char time_buf[26];
strftime( time_buf, 26, "%Y-%m-%dT%H:%M:%S", timeptr );
//s_String s = fn->time_stamp();
//strncpy((char*)s,time_buf,27);
fn->time_stamp( time_buf );
//output the values to the file
WriteHeaderInstance( se, out );
}
/**************************************************
DAVE, should this section be deleted now?
p21DIS_File_name * fn;
int fileid = HeaderId("File_Name");
MgrNode * mn = _headerInstances->FindFileId(fileid);
if (!mn)
{
// ERROR: no File_Name instance in _headerInstances
// create a File_Name instance
(SCLP23(Application_instance)*)fn = HeaderDefaultFileName();
}
else
{
(SCLP23(Application_instance)*)fn = _headerInstances->GetApplication_instance(mn);
}
// Write the values for the FileName instance to the ostream
std::string tmp;
out << StrToUpper (fn->EntityName()) << "(";
// write name
//out << "\'" << (char*)fn->name() << "\',";
SCLP23(String) * s = new SCLP23(String)((char*)fn->name());
s->STEPwrite(out);
delete s;
out << ",";
// write time_stamp (as specified in ISO Standard 8601)
// output the current system time to the file, using the following format:
// example: '1994-04-12 15:27:46'
// for Calendar Date, 12 April 1994, 27 minute 46 seconds past 15 hours
time_t t = time(NULL);
struct tm *timeptr = localtime(&t);
char time_buf[26];
strftime(time_buf,26,"%Y-%m-%d %H:%M:%S",timeptr);
out << '\'' << time_buf << "\',";
// write author
fn->author().STEPwrite(out);
out << ",";
// write organization
fn->organization().STEPwrite(out);
out << ",";
// write preprocessor_version
s = new SCLP23(String)((char*)fn->preprocessor_version());
s->STEPwrite(out);
delete s;
out << ",";
// write originating_system
s = new SCLP23(String)((char*)fn->originating_system());
s->STEPwrite(out);
delete s;
out << ",";
// write authorization
s = new SCLP23(String)((char*)fn->authorization());
s->STEPwrite(out);
delete s;
out << ");\n";
}
**************************************************/
void
STEPfile::WriteHeaderInstanceFileDescription( ostream & out ) {
void STEPfile::WriteHeaderInstanceFileDescription( ostream & out ) {
// Get the FileDescription instance from _headerInstances
SCLP23( Application_instance ) *se = 0;
se = _headerInstances->GetApplication_instance( "File_Description" );
if( se == ENTITY_NULL ) {
// ERROR: no File_Name instance in _headerInstances
// create a File_Name instance
// (s_File_Description*)se = HeaderDefaultFileDescription();
se = ( SCLP23( Application_instance ) * )HeaderDefaultFileDescription();
}
WriteHeaderInstance( se, out );
/**************************************************
p21DIS_File_description * fd;
int fileid = HeaderId("File_Description");
MgrNode * mn = _headerInstances->FindFileId(fileid);
if (!mn)
{
// ERROR: no File_Description instance in _headerInstances
// create a File_Description instance
(SCLP23(Application_instance)*)fd = HeaderDefaultFileDescription();
}
else
{
(SCLP23(Application_instance)*)fd = _headerInstances->GetApplication_instance(mn);
}
// Write the values for the FileDescription instance to the ostream
out << StrToUpper (fd->EntityName()) << "(";
//write description
fd->description().STEPwrite(out,&_error,a_16DESCRIPTION);
out << ",";
//write implementation_level
SCLP23(String) *s = new SCLP23(String)((char*)fd->implementation_level());
s->STEPwrite(out);
delete s;
out << ");\n";
**************************************************/
}
void
STEPfile::WriteHeaderInstanceFileSchema( ostream & out ) {
// Get the FileName instance from _headerInstances
void STEPfile::WriteHeaderInstanceFileSchema( ostream & out ) {
SCLP23( Application_instance ) *se = 0;
// Get the FileName instance from _headerInstances
se = _headerInstances->GetApplication_instance( "File_Schema" );
if( se == ENTITY_NULL ) {
// ERROR: no File_Name instance in _headerInstances
// create a File_Name instance
// (p21DIS_File_schema*)se = HeaderDefaultFileSchema();
se = ( SCLP23( Application_instance ) * ) HeaderDefaultFileSchema();
}
WriteHeaderInstance( se, out );
/**************************************************
p21DIS_File_schema * fs;
int fileid = HeaderId("File_Schema");
MgrNode * mn = _headerInstances->FindFileId(fileid);
if (!mn)
{
// ERROR: no File_Schema instance in _headerInstances
// create a File_Schema instance
(SCLP23(Application_instance)*)fs = HeaderDefaultFileSchema();
}
else
{
(SCLP23(Application_instance)*)fs = _headerInstances->GetApplication_instance(mn);
}
// Write the values for the FileName instance to the ostream
out << StrToUpper (fs->EntityName()) << "(";
// write schema_identifiers
fs->schema_identifiers().STEPwrite(out);
out << ");\n";
**************************************************/
}
/***************************
***************************/
void
STEPfile::WriteData( ostream & out, int writeComments ) {
void STEPfile::WriteData( ostream & out, int writeComments ) {
char currSch[BUFSIZ];
currSch[0] = '\0';
@@ -2566,7 +2346,6 @@ STEPfile::WriteData( ostream & out, int writeComments ) {
schemaName( currSch );
int n = instances().InstanceCount();
for( int i = 0; i < n; ++i )
/* instances ()[i] -> GetApplication_instance()->STEPwrite(out);*/
{
instances().GetMgrNode( i )->GetApplication_instance()->STEPwrite( out, currSch, writeComments );
}
@@ -2581,18 +2360,12 @@ void
STEPfile::WriteValuePairsData( ostream & out, int writeComments, int mixedCase ) {
char currSch[BUFSIZ];
currSch[0] = '\0';
// out << "DATA;\n";
schemaName( currSch );
int n = instances().InstanceCount();
for( int i = 0; i < n; ++i )
/* instances ()[i] -> GetApplication_instance()->STEPwrite(out);*/
{
instances().GetMgrNode( i )->GetApplication_instance()->WriteValuePairs( out, currSch, writeComments, mixedCase );
}
// out << "ENDSEC;\n";
}
Severity
@@ -2636,13 +2409,13 @@ STEPfile::AppendFile( istream * in, int useTechCor ) {
sprintf( errbuf,
"Faulty input at beginning of file. \"ISO-10303-21;\" or"
" \"STEP;\" or \"STEP_WORKING_SESSION;\" expected. File "
"not read: %s\n", ( ( strcmp( FileName(), "-" ) == 0 ) ? "standard input" : FileName() ) );
"not read: %s\n", ( ( FileName().compare( "-" ) == 0 ) ? "standard input" : FileName().c_str() ) );
_error.AppendToUserMsg( errbuf );
_error.GreaterSeverity( SEVERITY_INPUT_ERROR );
return SEVERITY_INPUT_ERROR;
}
cout << "Reading Data from " << ( ( strcmp( FileName(), "-" ) == 0 ) ? "standard input" : FileName() ) << "...\n";
cout << "Reading Data from " << ( ( FileName().compare( "-" ) == 0 ) ? "standard input" : FileName() ) << "...\n";
// Read header
rval = ReadHeader( *in );
@@ -2687,14 +2460,12 @@ STEPfile::AppendFile( istream * in, int useTechCor ) {
// parsing. SO we are using istreams and this works, but could
// be better.
// reset the error count so you\'re not counting things twice:
// reset the error count so you're not counting things twice:
_errorCount = 0;
// delete in; // yikes -- deleted by caller
istream * in2;
if( !( ( in2 = OpenInputFile() ) && ( in2 -> good() ) ) ) {
// if the stream is not readable, there's an error
_error.AppendToUserMsg( "Cannot open file for 2nd pass -- No data read.\n" );
// return total_insts;
CloseInputFile( in2 );
return SEVERITY_INPUT_ERROR;
}
@@ -2712,7 +2483,6 @@ STEPfile::AppendFile( istream * in, int useTechCor ) {
break;
case WORKING_SESSION:
// valid_insts = ReadWorkingData2 (*in2);
valid_insts = ReadData2( *in2, useTechCor );
break;
default:
@@ -2723,17 +2493,9 @@ STEPfile::AppendFile( istream * in, int useTechCor ) {
//check for "ENDSEC;"
ReadTokenSeparator( *in2 );
// keywd = GetKeyword(*in2,";", _error);
// if ( strncmp (keywd, "ENDSEC;",strlen(keywd)) || !in2 -> good () )
// {
// _error.AppendToUserMsg("Unknown value in DATA section. Terminated parsing.\n\tvalue was: %s\n");
// _error.AppendToUserMsg(keywd);
// _error.GreaterSeverity(SEVERITY_WARNING);
// }
if( total_insts != valid_insts ) {
sprintf( errbuf, "%d invalid instances in file: %s\n",
total_insts - valid_insts, ( ( strcmp( FileName(), "-" ) == 0 ) ? "standard input" : FileName() ) );
total_insts - valid_insts, ( ( FileName().compare( "-" ) == 0 ) ? "standard input" : FileName().c_str() ) );
_error.AppendToUserMsg( errbuf );
CloseInputFile( in2 );
return _error.GreaterSeverity( SEVERITY_WARNING );
@@ -2759,6 +2521,8 @@ STEPfile::AppendFile( istream * in, int useTechCor ) {
in2->get( c );
if( c == ';' ) {
;
} else {
//FIXME shouldn't *something* be done based upon the value of c? MAP, 9/2011
}
}
@@ -2778,8 +2542,7 @@ STEPfile::AppendFile( istream * in, int useTechCor ) {
/***************************
***************************/
/******************************************************/
Severity
STEPfile::WriteWorkingFile( ostream & out, int clearError, int writeComments ) {
SetFileType( WORKING_SESSION );
@@ -2802,10 +2565,9 @@ STEPfile::WriteWorkingFile( ostream & out, int clearError, int writeComments ) {
return _error.severity();
}
/***************************
***************************/
/******************************************************/
Severity
STEPfile::WriteWorkingFile( const char * filename, int clearError,
STEPfile::WriteWorkingFile( const std::string filename, int clearError,
int writeComments ) {
if( clearError ) {
_error.ClearErrorMsg();
@@ -2892,7 +2654,6 @@ STEPfile::AppendEntityErrorMsg( ErrorDescriptor * e ) {
return SEVERITY_NULL;
default: {
// cerr << e->UserMsg();
cerr << e->DetailMsg();
e->ClearErrorMsg();
+17 -34
View File
@@ -13,13 +13,6 @@
* and is not subject to copyright.
*/
/* $Id: STEPfile.h,v 3.0.1.6 1998/02/17 18:04:30 sauderd Exp $ */
#ifdef __O3DB__
#include <OpenOODB.h>
#endif
/*#include <math.h>*/
#include <instmgr.h>
#include <Registry.h>
#include <fstream>
@@ -47,32 +40,22 @@ class STEPfile
protected:
//data members
#ifdef __O3DB__
InstMgr * _instances;
Registry * _reg;
InstMgr & instances () { return *_instances; }
Registry & reg () { return *_reg; }
#else
InstMgr& _instances;
Registry& _reg;
InstMgr & instances () { return _instances; }
Registry & reg () { return _reg; }
#endif
int _fileIdIncr; //Increment value to be added to FileId Numbers on input
//header information
InstMgr* _headerInstances;
Registry *_headerRegistry;
//Registry *_headerUserDefined;
// Registry *_headerRegistryOld;
int _headerId; //STEPfile_id given to SCLP23(Application_instance) from header section
//file information
DirObj* _currentDir;
char* _fileName;
std::string _fileName;
//error information
ErrorDescriptor _error;
@@ -81,10 +64,10 @@ class STEPfile
int _entsNotCreated; // num entities not created in first pass
int _entsInvalid; // num entities that had invalid attr values
int _entsIncomplete; // num entities that had missing attr values
// (includes entities that had invalid values
// for required attrs)
int _entsWarning; // num entities that may have had problems
// with attrs - reported as an attr user msg
// (includes entities that had invalid values
// for required attrs)
int _entsWarning; // num entities that may have had problems
// with attrs - reported as an attr user msg
// old errors
int _errorCount;
@@ -113,9 +96,9 @@ class STEPfile
SCLP23(Application_instance)* HeaderDefaultFileSchema();
//file information
const char* FileName() const { return _fileName; }
const char* SetFileName (const char* name = "");
const char* TruncFileName (const char* name) const;
const std::string FileName() const { return _fileName; }
const std::string SetFileName (const std::string name = "");
const std::string TruncFileName (const std::string name) const;
//error information
ErrorDescriptor& Error() /* const */ { return _error; }
@@ -129,17 +112,17 @@ class STEPfile
int SetFileType (FileTypeCode ft = VERSION_CURRENT);
//Reading and Writing
Severity ReadExchangeFile (const char* filename =0, int useTechCor =1);
Severity AppendExchangeFile (const char* filename =0, int useTechCor =1);
Severity ReadExchangeFile (const std::string filename = "", int useTechCor =1);
Severity AppendExchangeFile (const std::string filename = "", int useTechCor =1);
Severity ReadWorkingFile (const char* filename =0, int useTechCor =1);
Severity AppendWorkingFile (const char* filename =0, int useTechCor =1);
Severity ReadWorkingFile (const std::string filename = "", int useTechCor =1);
Severity AppendWorkingFile (const std::string filename = "", int useTechCor =1);
Severity AppendFile (istream* in, int useTechCor =1) ;
Severity WriteExchangeFile (ostream& out, int validate =1,
int clearError = 1, int writeComments = 1);
Severity WriteExchangeFile (const char* filename =0, int validate =1,
Severity WriteExchangeFile (const std::string filename = "", int validate =1,
int clearError = 1, int writeComments = 1);
Severity WriteValuePairsFile(ostream& out, int validate =1,
int clearError =1,
@@ -147,7 +130,7 @@ class STEPfile
Severity WriteWorkingFile (ostream& out, int clearError = 1,
int writeComments = 1);
Severity WriteWorkingFile (const char* filename =0, int clearError = 1,
Severity WriteWorkingFile (const std::string filename = "", int clearError = 1,
int writeComments = 1);
stateEnum EntityWfState(char c);
@@ -155,7 +138,7 @@ class STEPfile
void Renumber ();
//constructors
STEPfile (Registry& r, InstMgr& i, const char *filename = (const char*)0);
STEPfile (Registry& r, InstMgr& i, const std::string filename = "");
virtual ~STEPfile();
protected:
@@ -163,7 +146,7 @@ class STEPfile
char *schemaName( char * ); // returns and copies out schema name from
// header instances
//called by ReadExchangeFile
istream* OpenInputFile (const char* filename = "");
istream* OpenInputFile (const std::string filename = "");
void CloseInputFile(istream* in);
Severity ReadHeader(istream& in);
@@ -209,7 +192,7 @@ class STEPfile
void WriteWorkingData(ostream& out, int writeComments = 1);
//called by WriteExchangeFile
ofstream* OpenOutputFile(const char* filename =0);
ofstream* OpenOutputFile(const std::string filename = "");
void CloseOutputFile(ostream* out);
void WriteHeader (ostream& out);
+46 -94
View File
@@ -11,19 +11,12 @@
* and is not subject to copyright.
*/
/* $Id: STEPfile.inline.cc,v 3.0.1.4 1997/11/05 22:11:46 sauderd DP3.1 $ */
#include <STEPfile.h>
#include <s_HEADER_SCHEMA.h>
#include <STEPaggregate.h>
/* for strrchr */
#include <cstring>
//#ifdef __GNUG__
//#ifdef __SUNCPLUSPLUS__
//#ifdef __OBJECTCENTER__
//#ifdef __xlC__
extern "C" {
double ceil( double );
}
@@ -35,27 +28,18 @@ extern void HeaderSchemaInit( Registry & reg );
//constructor & destructor
STEPfile::STEPfile( Registry & r, InstMgr & i, const char * filename )
#ifdef __O3DB__
: _reg( &r ), _instances( &i ),
#else
:
_instances( i ), _reg( r ),
#endif
_fileIdIncr( 0 ), _headerId( 0 ),
_fileName( 0 ), _entsNotCreated( 0 ), _entsInvalid( 0 ),
_entsIncomplete( 0 ), _entsWarning( 0 ),
_errorCount( 0 ), _warningCount( 0 ), _maxErrorCount( 5000 )
STEPfile::STEPfile( Registry & r, InstMgr & i, const std::string filename ) :
_instances( i ), _reg( r ), _fileIdIncr( 0 ), _headerId( 0 ),
_entsNotCreated( 0 ), _entsInvalid( 0 ), _entsIncomplete( 0 ),
_entsWarning( 0 ), _errorCount( 0 ), _warningCount( 0 ),
_maxErrorCount( 5000 )
{
SetFileType( VERSION_CURRENT );
SetFileIdIncrement();
_currentDir = new DirObj( "" );
// _headerRegistry = new Registry(&s_HeaderSchemaInit);
_headerRegistry = new Registry( HeaderSchemaInit );
_headerInstances = new InstMgr;
if( filename ) {
if( !filename.empty() ) {
ReadExchangeFile( filename );
}
}
@@ -71,8 +55,7 @@ STEPfile::~STEPfile() {
delete _headerInstances;
}
int
STEPfile::SetFileType( FileTypeCode ft ) {
int STEPfile::SetFileType( FileTypeCode ft ) {
FileType( ft );
switch( _fileType ) {
@@ -80,12 +63,6 @@ STEPfile::SetFileType( FileTypeCode ft ) {
ENTITY_NAME_DELIM = '@';
FILE_DELIM = ( char * )"STEP;";
END_FILE_DELIM = ( char * )"ENDSTEP;";
/*DAS
if (!_headerRegistryOld)
_headerRegistryOld =
new Registry(& s_Header_Section_Schema_N279Init);
*/
break;
case( VERSION_UNKNOWN ):
case( VERSION_CURRENT ):
@@ -109,22 +86,27 @@ STEPfile::SetFileType( FileTypeCode ft ) {
}
/******************************************************/
const char *
STEPfile::TruncFileName( const char * filename ) const {
const char * tmp = strrchr( filename, '/' );
if( tmp ) {
return tmp++;
} else {
/******************************************************
** remove any slashes, and anything before the slash,
** from filename
*/
const std::string STEPfile::TruncFileName( const std::string filename ) const {
#if defined(__WIN32__) && !defined(__mingw32__)
char slash = '\\';
#else
char slash = '/';
#endif
size_t l = filename.find_last_of(slash);
if( l == std::string::npos ) {
return filename;
} else {
return filename.substr(l);
}
}
/******************************************************/
Severity
STEPfile::ReadExchangeFile( const char * filename, int useTechCor ) {
Severity STEPfile::ReadExchangeFile( const std::string filename, int useTechCor ) {
_error.ClearErrorMsg();
_errorCount = 0;
istream * in = OpenInputFile( filename );
@@ -143,8 +125,7 @@ STEPfile::ReadExchangeFile( const char * filename, int useTechCor ) {
return rval;
}
Severity
STEPfile::AppendExchangeFile( const char * filename, int useTechCor ) {
Severity STEPfile::AppendExchangeFile( const std::string filename, int useTechCor ) {
_error.ClearErrorMsg();
_errorCount = 0;
istream * in = OpenInputFile( filename );
@@ -158,8 +139,7 @@ STEPfile::AppendExchangeFile( const char * filename, int useTechCor ) {
}
/******************************************************/
Severity
STEPfile::ReadWorkingFile( const char * filename, int useTechCor ) {
Severity STEPfile::ReadWorkingFile( const std::string filename, int useTechCor ) {
_error.ClearErrorMsg();
_errorCount = 0;
istream * in = OpenInputFile( filename );
@@ -179,8 +159,7 @@ STEPfile::ReadWorkingFile( const char * filename, int useTechCor ) {
}
Severity
STEPfile::AppendWorkingFile( const char * filename, int useTechCor ) {
Severity STEPfile::AppendWorkingFile( const std::string filename, int useTechCor ) {
_error.ClearErrorMsg();
_errorCount = 0;
istream * in = OpenInputFile( filename );
@@ -198,36 +177,33 @@ STEPfile::AppendWorkingFile( const char * filename, int useTechCor ) {
/******************************************************/
istream *
STEPfile::OpenInputFile( const char * filename ) {
istream * STEPfile::OpenInputFile( const std::string filename ) {
// if there's no filename to use, fail
if( !( strcmp( filename, "" ) || strcmp( FileName(), "" ) ) ) {
if( filename.empty() && FileName().empty() ) {
_error.AppendToUserMsg( "Unable to open file for input. No current file name.\n" );
_error.GreaterSeverity( SEVERITY_INPUT_ERROR );
return ( 0 );
return( 0 );
} else {
if( !SetFileName( filename ) && ( strcmp( filename, "-" ) != 0 ) ) {
if( SetFileName( filename ).empty() && ( filename.compare( "-" ) != 0 ) ) {
char msg[BUFSIZ];
sprintf( msg, "Unable to find file for input: \'%s\'. File not read.\n", filename );
sprintf( msg, "Unable to find file for input: \'%s\'. File not read.\n", filename.c_str() );
_error.AppendToUserMsg( msg );
_error.GreaterSeverity( SEVERITY_INPUT_ERROR );
return ( 0 );
return( 0 );
}
}
std::istream * in;
if( strcmp( filename, "-" ) == 0 ) {
if( filename.compare( "-" ) == 0 ) {
in = &std::cin;
} else {
// istream* in = new istream(FileName(), io_readonly, a_useonly);
// port 29-Mar-1994 kcm
in = new ifstream( FileName() );
in = new ifstream( FileName().c_str() );
}
if( !in || !( in -> good() ) ) {
char msg[BUFSIZ];
sprintf( msg, "Unable to open file for input: \'%s\'. File not read.\n", filename );
sprintf( msg, "Unable to open file for input: \'%s\'. File not read.\n", filename.c_str() );
_error.AppendToUserMsg( msg );
_error.GreaterSeverity( SEVERITY_INPUT_ERROR );
return ( 0 );
@@ -237,8 +213,7 @@ STEPfile::OpenInputFile( const char * filename ) {
}
/******************************************************/
void
STEPfile::CloseInputFile( istream * in ) {
void STEPfile::CloseInputFile( istream * in ) {
if( in && *in != std::cin ) {
delete in;
}
@@ -246,45 +221,25 @@ STEPfile::CloseInputFile( istream * in ) {
/******************************************************/
/*
void
STEPfile::ReadWhiteSpace (istream& in)
{
char c = ' ';
while ((c == ' ') || (c == '\n') || (c == '\t')) {
in >> c;
}
in.putback (c);
}
*/
/***************************
***************************/
ofstream *
STEPfile::OpenOutputFile( const char * filename ) {
if( !filename ) {
if( !FileName() ) {
ofstream * STEPfile::OpenOutputFile( const std::string filename ) {
if( filename.empty() ) {
if( FileName().empty() ) {
_error.AppendToUserMsg( "No current file name.\n" );
_error.GreaterSeverity( SEVERITY_INPUT_ERROR );
}
} else {
if( !SetFileName( filename ) ) {
if( SetFileName( filename ).empty() ) {
char msg[BUFSIZ];
sprintf( msg, "can't find file: %s\nFile not written.\n", filename );
sprintf( msg, "can't find file: %s\nFile not written.\n", filename.c_str() );
_error.AppendToUserMsg( msg );
_error.GreaterSeverity( SEVERITY_INPUT_ERROR );
}
}
if( _currentDir->FileExists( TruncFileName( FileName() ) ) ) {
if( _currentDir->FileExists( TruncFileName( filename ) ) ) {
MakeBackupFile();
}
// ostream* out = new ostream(FileName(), io_writeonly, a_create);
// - port 29-Mar-1994 kcm
ofstream * out = new ofstream( FileName() );
// default for ostream is writeonly and protections are set to 644
ofstream * out = new ofstream( filename.c_str() );
if( !out ) {
_error.AppendToUserMsg( "unable to open file for output\n" );
_error.GreaterSeverity( SEVERITY_INPUT_ERROR );
@@ -292,25 +247,22 @@ STEPfile::OpenOutputFile( const char * filename ) {
return out;
}
void
STEPfile::CloseOutputFile( ostream * out ) {
void STEPfile::CloseOutputFile( ostream * out ) {
delete out;
}
/******************************************************/
int
STEPfile::IncrementFileId( int fileid ) {
int STEPfile::IncrementFileId( int fileid ) {
return ( fileid + FileIdIncr() );
}
void
STEPfile::SetFileIdIncrement() {
void STEPfile::SetFileIdIncrement() {
if( instances().MaxFileId() < 0 ) {
_fileIdIncr = 0;
} else _fileIdIncr = // (int)((ceil((instances ().MaxFileId() + 99)/1000) + 1) * 1000);
} else _fileIdIncr =
( int )( ( ceil( ( double )( ( instances().MaxFileId() + 99 ) / 1000 ) ) + 1 ) * 1000 );
// FIXME: Is this correct? Why put an integer expression into ceil()?
}
+1 -8
View File
@@ -10,8 +10,6 @@
* and is not subject to copyright.
*/
/* $Id: instmgr.cc,v 3.0.1.5 1997/11/05 22:11:42 sauderd DP3.1 $ */
//////////////////////////////////////////////////////////////////////////////
//
// InstMgr member functions
@@ -19,14 +17,13 @@
//////////////////////////////////////////////////////////////////////////////
#include <sdai.h>
//#include <STEPentity.h>
#include <instmgr.h>
///////////////////////////////////////////////////////////////////////////////
// debug_level >= 2 => tells when a command is chosen
// debug_level >= 3 => prints values within functions:
///////////////////////////////////////////////////////////////////////////////
static int debug_level = 2;
static int debug_level = 3;
// if debug_level is greater than this number then
// function names get printed out when executed
//static int PrintFunctionTrace = 2;
@@ -65,16 +62,12 @@ InstMgr::~InstMgr() {
///////////////////////////////////////////////////////////////////////////////
void InstMgr::ClearInstances() {
// delete master;
// master = new MgrNodeArray();
master->ClearEntries();
sortedMaster->ClearEntries();
maxFileId = -1;
}
void InstMgr::DeleteInstances() {
// delete master;
// master = new MgrNodeArray();
master->DeleteEntries();
sortedMaster->ClearEntries();
maxFileId = -1;
+1 -8
View File
@@ -13,9 +13,7 @@
* and is not subject to copyright.
*/
/* $Id: instmgr.h,v 3.0.1.4 1997/11/05 22:11:42 sauderd DP3.1 $ */
///// future? ////////////////
///// future? TODO? ////////////////
// InstMgr can maintain an undo list for the last operation
// performed on a node
// InstMgr can have a startUndo() and endUndo() so it knows when to
@@ -23,10 +21,6 @@
/////////////////////
#ifdef __O3DB__
#include <OpenOODB.h>
#endif
typedef unsigned boolean;
extern char * EntityClassName ( char *);
@@ -35,7 +29,6 @@ extern char * EntityClassName ( char *);
#include <gennode.h>
#include <gennodelist.h>
//#include <gennode.inline.h>
#include <gennodearray.h>
#include <mgrnode.h>
+1 -1
View File
@@ -28,7 +28,7 @@ void * MgrNode::SEE() {
}
int MgrNode::GetFileId() {
return ( se ? se->GetFileId() : -1 );
return ( se ? se->StepFileId() : -1 );
}
void MgrNode::Remove() {
+4 -4
View File
@@ -123,7 +123,7 @@ int MgrNodeArray::MgrNodeIndex( int fileId ) {
}
int i;
for( i = 0; i < _count; ++i ) {
if( ( ( MgrNode * )_buf[i] )->GetApplication_instance()->GetFileId() == fileId ) {
if( ( ( MgrNode * )_buf[i] )->GetApplication_instance()->StepFileId() == fileId ) {
return i;
}
}
@@ -143,7 +143,7 @@ int MgrNodeArraySorted::Insert( GenericNode * gn ) {
// cout << "MgrNodeArraySorted::Insert()\n";
// since gn is really a MgrNode
int fileId = ( ( MgrNode * )gn )->GetApplication_instance()->GetFileId();
int fileId = ( ( MgrNode * )gn )->GetApplication_instance()->StepFileId();
int index = FindInsertPosition( fileId );
@@ -201,7 +201,7 @@ int MgrNodeArraySorted::FindInsertPosition( const int fileId ) {
int curFileId;
for( i = _count - 1; i >= 0; --i ) {
curFileId = ( ( MgrNode * )_buf[i] )->GetApplication_instance()->GetFileId();
curFileId = ( ( MgrNode * )_buf[i] )->GetApplication_instance()->StepFileId();
if( curFileId < fileId /*|| curFileId == fileId*/ ) {
return i + 1;
}
@@ -226,7 +226,7 @@ int MgrNodeArraySorted::MgrNodeIndex( int fileId ) {
while( !found && ( low <= high ) ) {
mid = ( low + high ) / 2;
curFileId = ( ( MgrNode * )_buf[mid] )->GetApplication_instance()->GetFileId();
curFileId = ( ( MgrNode * )_buf[mid] )->GetApplication_instance()->StepFileId();
if( curFileId == fileId ) {
found = 1;
} else if( curFileId < fileId ) {
-78
View File
@@ -1,78 +0,0 @@
#include <ebutton.h> // ivfasd/ebutton.h
#include <InterViews/font.h>
#include <InterViews/pattern.h>
#include <IV-2_6/InterViews/painter.h>
#include <IV-2_6/InterViews/sensor.h>
#include <IV-2_6/InterViews/shape.h>
#include <IV-2_6/InterViews/subject.h>
#include <IV-2_6/_enter.h>
static const int pad = 5;
EButton::EButton( const char * c,
ButtonState * b,
int i,
const int horz,
const int vert ) : PushButton( c, b, i ) {
_vert = vert;
_horz = horz;
SetClassName( "EButton" );
Listen( noEvents );
}
EButton::EButton( const char * c,
ButtonState * b,
int i ) : PushButton( c, b, i ) {
_vert = -1;
_horz = -1;
SetClassName( "EButton" );
Listen( noEvents );
}
void EButton::Reconfig() {
TextButton::Reconfig();
MakeBackground();
if( shape->Undefined() ) {
MakeShape();
if( _vert < 0 || _horz < 0 ) {
_vert = ( output->GetFont()->Height() + pad * 2 ) / 2;
_horz = ( output->GetFont()->Width( text ) + output->GetFont()->Width( " " ) ) / 2;
}
shape->width = 2 * _horz + 1;
shape->height = 2 * _vert + 1;
}
}
void EButton::Redraw( IntCoord x1, IntCoord y1, IntCoord x2, IntCoord y2 ) {
output->ClearRect( canvas, x1, y1, x2, y2 );
Refresh();
}
void EButton::Refresh() {
IntCoord x, y;
IntCoord tx, ty;
x = xmax / 2;
y = ymax / 2;
tx = ( xmax - output->GetFont()->Width( text ) ) / 2;
ty = ( ymax - output->GetFont()->Height() ) / 2;
if( chosen || hit ) {
/* (Redundant casts to work around a bug in cfront 1.2 .) */
output->FillEllipse( canvas, x, y, _horz, _vert );
background->Text( canvas, text, tx, ty );
} else {
background->FillRect( canvas, x - _horz, y - _vert, x + _horz, y + _vert );
/* (Redundant casts to work around a bug in cfront 1.2 .) */
output->Ellipse( canvas, x, y, _horz, _vert );
output->Text( canvas, text, tx, ty );
}
if( !enabled ) {
grayout->FillRect( canvas, 0, 0, xmax, ymax );
}
}
#include <IV-2_6/_leave.h>
-20
View File
@@ -1,20 +0,0 @@
#include <IV-2_6/InterViews/button.h>
#include <IV-2_6/_enter.h>
class EButton : public PushButton
{
public:
EButton(const char*, ButtonState*, int, const int, const int);
EButton(const char*, ButtonState*, int);
protected:
virtual void Reconfig();
virtual void Refresh();
virtual void Redraw(IntCoord, IntCoord, IntCoord, IntCoord);
private:
int _vert;
int _horz;
};
#include <IV-2_6/_leave.h>
-19
View File
@@ -1,19 +0,0 @@
#include <errordisplay.h>
ErrorDisplay::~ErrorDisplay() {
if( errorButSt != nil ) {
errorButSt->Detach( this );
}
}
void ErrorDisplay::Update() {
int v = 0;
errorButSt->GetValue( v );
if( v == 1 ) {
errorButSt->SetValue( 0 );
errorDisp->Message( "\0" );
}
}
-53
View File
@@ -1,53 +0,0 @@
/*
* ErrorDisplay - a HBox that provides a label, followed by a
* framed stringdisplay, followed by a pushbutton.
* Call ErrorMsg(const char *msg) to display an error, when the user
* pushes the button the error is cleared.
*
*/
#ifndef errordisplay_h
#define errordisplay_h
#include <IV-2_6/InterViews/box.h>
#include <IV-2_6/InterViews/frame.h>
#include <IV-2_6/InterViews/glue.h>
#include <mybutton.h>
#include <strdisplay.h> // ivfasd/strdisplay.h"
#include <variousmessage.h> // ivfasd/variousmessage.h"
#include <IV-2_6/_enter.h>
class ErrorDisplay : public HBox
{
public:
ErrorDisplay(const char *labelText = "Error Messages:",
const char *buttonText = " Clear ", const char *initStr = "\0");
virtual ~ErrorDisplay();
void ErrorMsg(const char *msg) { errorDisp->Message(msg); };
void Update();
private:
StringDisplay *errorDisp;
ButtonState *errorButSt;
MyButton *errorButton;
};
inline ErrorDisplay::ErrorDisplay(const char *labelText,
const char *buttonText, const char *initStr)
{
errorButSt = new ButtonState(0);
errorButSt->Attach(this);
errorButton = new MyPushButton(buttonText, errorButSt, 1);
errorDisp = new StringDisplay(errorButSt, initStr);
Insert(new BoldMessage(labelText));
Insert(new HGlue(round(.05*inch), 0, 0));
Insert(new Frame(errorDisp));
Insert(new HGlue(round(.05*inch), 0, 0));
Insert(errorButton);
};
#include <IV-2_6/_leave.h>
#endif
-6
View File
@@ -1,6 +0,0 @@
#define m_width 16
#define m_height 16
static char m_bits[] = {
0xff, 0xff, 0x01, 0x80, 0x01, 0x80, 0x19, 0x98, 0x19, 0x98, 0x39, 0x9c,
0x79, 0x9e, 0xf9, 0x9f, 0xd9, 0x9b, 0x99, 0x99, 0x19, 0x98, 0x19, 0x98,
0x19, 0x98, 0x01, 0x80, 0x01, 0x80, 0xff, 0xff};
-6
View File
@@ -1,6 +0,0 @@
#define mHit_width 16
#define mHit_height 16
static char mHit_bits[] = {
0xff, 0xff, 0xff, 0xff, 0x03, 0xc0, 0x1b, 0xd8, 0x1b, 0xd8, 0x3b, 0xdc,
0x7b, 0xde, 0xfb, 0xdf, 0xdb, 0xdb, 0x9b, 0xd9, 0x1b, 0xd8, 0x1b, 0xd8,
0x1b, 0xd8, 0x03, 0xc0, 0xff, 0xff, 0xff, 0xff};
-5
View File
@@ -1,5 +0,0 @@
#define menu12_width 12
#define menu12_height 12
static char menu12_bits[] = {
0x00, 0x00, 0xfe, 0x03, 0x02, 0x06, 0x72, 0x06, 0x02, 0x06, 0x72, 0x06,
0x02, 0x06, 0x72, 0x06, 0x02, 0x06, 0xfe, 0x07, 0xf8, 0x07, 0x00, 0x00};
-5
View File
@@ -1,5 +0,0 @@
#define menu12_mask_width 12
#define menu12_mask_height 12
static char menu12_mask_bits[] = {
0xff, 0x07, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f,
0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xff, 0x0f, 0xfc, 0x0f};
-6
View File
@@ -1,6 +0,0 @@
#define menu16_width 16
#define menu16_height 16
static char menu16_bits[] = {
0x00, 0x00, 0xfc, 0x1f, 0x04, 0x10, 0x04, 0x30, 0xe4, 0x33, 0x04, 0x30,
0xe4, 0x33, 0x04, 0x30, 0xe4, 0x33, 0x04, 0x30, 0xe4, 0x33, 0x04, 0x30,
0x04, 0x30, 0xfc, 0x3f, 0xf0, 0x3f, 0x00, 0x00};
-6
View File
@@ -1,6 +0,0 @@
#define menu16_mask_width 16
#define menu16_mask_height 16
static char menu16_mask_bits[] = {
0xfe, 0x3f, 0xfe, 0x3f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f,
0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f,
0xfe, 0x7f, 0xfe, 0x7f, 0xfe, 0x7f, 0xfc, 0x7f};
-6
View File
@@ -1,6 +0,0 @@
#define mvmask_width 16
#define mvmask_height 16
static char mvmask_bits[] = {
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
-8
View File
@@ -1,8 +0,0 @@
#define pin2mask_width 15
#define pin2mask_height 15
#define pin2mask_x_hot 7
#define pin2mask_y_hot 7
static char pin2mask_bits[] = {
0xe0, 0x03, 0xf8, 0x0f, 0xfc, 0x1f, 0xfe, 0x3f, 0xfe, 0x3f, 0xff, 0x7f,
0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xff, 0x7f, 0xfe, 0x3f, 0xfe, 0x3f,
0xfc, 0x1f, 0xf8, 0x0f, 0xe0, 0x03};
-8
View File
@@ -1,8 +0,0 @@
#define pinin2_width 15
#define pinin2_height 15
#define pinin2_x_hot 7
#define pinin2_y_hot 7
static char pinin2_bits[] = {
0xe0, 0x03, 0x18, 0x0c, 0x04, 0x10, 0x02, 0x20, 0x02, 0x20, 0xc1, 0x41,
0xe1, 0x43, 0xe1, 0x43, 0xe1, 0x43, 0xc1, 0x41, 0x02, 0x20, 0x02, 0x20,
0x04, 0x10, 0x18, 0x0c, 0xe0, 0x03};
-8
View File
@@ -1,8 +0,0 @@
#define pinin2Hit_width 15
#define pinin2Hit_height 15
#define pinin2Hit_x_hot 7
#define pinin2Hit_y_hot 7
static char pinin2Hit_bits[] = {
0xe0, 0x03, 0xf8, 0x0f, 0xfc, 0x1f, 0x1e, 0x3c, 0x0e, 0x38, 0xc7, 0x71,
0xe7, 0x73, 0xe7, 0x73, 0xe7, 0x73, 0xc7, 0x71, 0x0e, 0x38, 0x1e, 0x3c,
0xfc, 0x1f, 0xf8, 0x0f, 0xe0, 0x03};
-8
View File
@@ -1,8 +0,0 @@
#define pinout2_width 15
#define pinout2_height 15
#define pinout2_x_hot 7
#define pinout2_y_hot 7
static char pinout2_bits[] = {
0xe0, 0x03, 0x18, 0x0c, 0x04, 0x10, 0x02, 0x20, 0x02, 0x20, 0x01, 0x42,
0x01, 0x46, 0xe1, 0x47, 0x01, 0x46, 0x01, 0x42, 0x02, 0x20, 0x02, 0x20,
0x04, 0x10, 0x18, 0x0c, 0xe0, 0x03};
-8
View File
@@ -1,8 +0,0 @@
#define pinout2Hit_width 15
#define pinout2Hit_height 15
#define pinout2Hit_x_hot 7
#define pinout2Hit_y_hot 7
static char pinout2Hit_bits[] = {
0xe0, 0x03, 0xf8, 0x0f, 0xfc, 0x1f, 0x1e, 0x3c, 0x0e, 0x38, 0x07, 0x71,
0x07, 0x73, 0xc7, 0x73, 0x07, 0x73, 0x07, 0x71, 0x0e, 0x38, 0x1e, 0x3c,
0xfc, 0x1f, 0xf8, 0x0f, 0xe0, 0x03};
-6
View File
@@ -1,6 +0,0 @@
#define v_width 16
#define v_height 16
static char v_bits[] = {
0xff, 0xff, 0x01, 0x80, 0x01, 0x80, 0x19, 0x98, 0x19, 0x98, 0x39, 0x9c,
0x31, 0x8c, 0x31, 0x8c, 0x61, 0x86, 0x61, 0x86, 0xc1, 0x83, 0xc1, 0x83,
0x81, 0x81, 0x01, 0x80, 0x01, 0x80, 0xff, 0xff};
-6
View File
@@ -1,6 +0,0 @@
#define vHit_width 16
#define vHit_height 16
static char vHit_bits[] = {
0xff, 0xff, 0xff, 0xff, 0x03, 0xc0, 0x1b, 0xd8, 0x1b, 0xd8, 0x3b, 0xdc,
0x33, 0xcc, 0x33, 0xcc, 0x63, 0xc6, 0x63, 0xc6, 0xc3, 0xc3, 0xc3, 0xc3,
0x83, 0xc1, 0x03, 0xc0, 0xff, 0xff, 0xff, 0xff};
-298
View File
@@ -1,298 +0,0 @@
// ~sauderd/src/iv/cfiles/intstreditor.c
/*
* IntStringEditor - Interactive editor for character strings based on
* on StringEditor2. This object accepts only integer
* characters and possibly an optional sign. This is
* done by redefining InsertValidChar(char c). It
* performs type checking when a terminating char is
* typed by redefining TypeCheck().
*
* RealStringEditor - Interactive editor for character strings based on
* on StringEditor2. This object accepts only chars
* that would be found in a real number
* (i.e. 0-9, '+', '-', '.', 'e', and 'E'). This is
* done by redefining InsertValidChar(char c).
* It performs type checking by redefining TypeCheck().
* Type checking is done when a terminating char is
* typed. Valid real numbers are defined as following:
* optional sign ,
* zero or more decimal digits,
* optional decimal point,
* zero or more decimal digits,
* then possibly:
* the letter e or E which may be followed by
* an optional sign and then
* zero or more decimal digits.
*/
#include <ctype.h>
#include <stdio.h>
#include <string.h>
#include <IV-2_6/InterViews/textbuffer.h>
#include <intstreditor.h>
const char RingBell = '\007'; // <CNTRL> G
///////////////////////////////////////////////////////////////////////////////
//
// IntStringEditor member functions.
//
///////////////////////////////////////////////////////////////////////////////
IntStringEditor::IntStringEditor(
ButtonState * s, const char * samp, const char * Done, int width
) : StringEditor2( s, samp, Done, width ) {
SetClassName( "IntStringEditor" );
acceptSigns = true;
}
IntStringEditor::IntStringEditor(
const char * name, ButtonState * s, const char * samp, const char * Done,
int width
) : StringEditor2( s, samp, Done, width ) {
SetInstance( name );
SetClassName( "IntStringEditor" );
acceptSigns = true;
}
int IntStringEditor::TypeCheck() {
long int tmpI = 0;
char tmpstr[3];
int numFound = sscanf( ( char * )text->Text(), "%ld%1s", &tmpI,
tmpstr );
switch( numFound ) {
case 0:
// 0 => bogus beginning;
fprintf( stderr, "%c invalid int attr value\n" , RingBell );
fflush( stderr );
return 0;
case 2:
// 2 => bogus ending
fprintf( stderr, "%c invalid int attr value: '%c'\n" , RingBell,
tmpstr[0] );
fflush( stderr );
return 0;
case 1:
case EOF:
// 1 => success; EOF => blank field
// printf("edit results returned %d\n", numFound);
// printf("attr value: %ld\n", tmpI);
// printf("term char (hex): %x, 'this' address(hex): %x\n",
// (int)subInfo->GetValue(), subInfo->GetSubordinate());
if( acceptSigns ) {
return SETYPE_SIGNED_INTEGER;
} else {
return SETYPE_UNSIGNED_INTEGER;
}
default:
return 0;
}
}
boolean IntStringEditor::InsertValidChar( char c ) {
switch( c ) {
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
InsertText( &c, 1 );
return true;
case '+':
case '-':
if( acceptSigns ) {
InsertText( &c, 1 );
return true;
} else {
return false;
}
default:
return false;
}
}
/*
boolean IntStringEditor::HandleChar (char c) {
if (strchr(done, c) != nil) {
if (subject != nil) {
subject->SetValue(c);
}
return true;
} else {
switch (c) {
case SEBeginningOfLine:
Select(text->BeginningOfLine(left));
break;
case SEEndOfLine:
Select(text->EndOfLine(right));
break;
case SESelectAll:
Select(text->BeginningOfText(), text->EndOfText());
break;
// case SESelectWord:
// Select(
// text->BeginningOfWord(text->PreviousCharacter(left)), right
// );
// break;
case SESelectWord:
if(text->IsEndOfWord(right))
Select(
left, text->EndOfWord(text->BeginningOfNextWord(right))
);
else
Select(
left, text->EndOfWord(right)
);
break;
case SEDeleteToEndOfLine:
Select(left, text->EndOfLine(right));
break;
case SEPreviousCharacter:
Select(text->PreviousCharacter(left));
break;
case SENextCharacter:
Select(text->NextCharacter(right));
break;
case SEDeleteNextCharacter:
if (left == right) {
right = text->NextCharacter(right);
}
InsertText("", 0);
break;
case SEDeletePreviousCharacter:
case SEDeletePreviousCharacterAlt:
if (left == right) {
left = text->PreviousCharacter(left);
}
InsertText("", 0);
break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
if (!iscntrl(c)) {
InsertText(&c, 1);
}
break;
case ESCAPE_KEY:
meta = true;
break;
default:
if(meta){
switch(c){
case 'f':
Select(text->BeginningOfNextWord(right));
break;
case 'b':
if(text->IsBeginningOfWord(left))
Select(text->BeginningOfWord(
text->PreviousCharacter(left)));
else
Select(text->BeginningOfWord(left));
break;
}
}
else {
fprintf(stdout, "%c" , RingBell);
fflush(stdout);
}
break;
}
if(meta)
if(c != ESCAPE_KEY)
meta = false;
return false;
}
}
*/
///////////////////////////////////////////////////////////////////////////////
//
// RealStringEditor member functions.
//
///////////////////////////////////////////////////////////////////////////////
RealStringEditor::RealStringEditor(
ButtonState * s, const char * samp, const char * Done, int width
) : StringEditor2( s, samp, Done, width ) {
SetClassName( "RealStringEditor" );
}
RealStringEditor::RealStringEditor(
const char * name, ButtonState * s, const char * samp, const char * Done,
int width
) : StringEditor2( s, samp, Done, width ) {
SetInstance( name );
SetClassName( "RealStringEditor" );
}
int RealStringEditor::TypeCheck() {
double tmpD = 0;
char tmpstr[3];
int numFound = sscanf( ( char * )text->Text(), "%lf%1s", &tmpD,
tmpstr );
switch( numFound ) {
case 0:
// 0 => bogus beginning;
fprintf( stderr, "%c invalid real attr value\n" , RingBell );
fflush( stderr );
return 0;
case 2:
// 2 => bogus ending
fprintf( stderr, "%c invalid real attr value: '%c'\n" , RingBell,
tmpstr[0] );
fflush( stderr );
return 0;
case 1:
case EOF:
// 1 => success; EOF => blank field
// printf("edit results returned %d\n", numFound);
// printf("attr value: %e\n", tmpD);
// printf("term char (hex): %x, 'this' address(hex): %x\n",
// (int)subInfo->GetValue(), subInfo->GetSubordinate());
return SETYPE_REAL;
default:
return 0;
}
}
boolean RealStringEditor::InsertValidChar( char c ) {
switch( c ) {
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case 'e':
case 'E':
case '.':
case '+':
case '-':
InsertText( &c, 1 );
return true;
default:
return false;
}
}
-98
View File
@@ -1,98 +0,0 @@
// ~sauderd/src/iv/hfiles/intstreditor.h
/*
* IntStringEditor - Interactive editor for character strings based on
* on StringEditor2. This object accepts only integer
* characters and possibly an optional sign. This is
* done by redefining InsertValidChar(char c). It
* performs type checking when a terminating char is
* typed by redefining TypeCheck().
*
* RealStringEditor - Interactive editor for character strings based on
* on StringEditor2. This object accepts only chars
* that would be found in a real number
* (i.e. 0-9, '+', '-', '.', 'e', and 'E'). This is
* done by redefining InsertValidChar(char c).
* It performs type checking by redefining TypeCheck().
* Type checking is done when a terminating char is
* typed. Valid real numbers are defined as following:
* optional sign ,
* zero or more decimal digits,
* optional decimal point,
* zero or more decimal digits,
* then possibly:
* the letter e or E which may be followed by
* an optional sign and then
* zero or more decimal digits.
*/
#ifndef intstreditor_h
#define intstreditor_h
#include <streditor2.h>
#include <IV-2_6/_enter.h>
///////////////////////////////////////////////////////////////////////////////
//
// IntStringEditor class definition
//
///////////////////////////////////////////////////////////////////////////////
class IntStringEditor : public StringEditor2 {
public:
IntStringEditor(ButtonState*, const char* sample,
const char* Done = SEDone, int width = 0);
IntStringEditor(
const char* name, ButtonState*, const char*, const char* = SEDone,
int width = 0
);
virtual ~IntStringEditor() {};
// decide if signs are accepted and if they pass type checking.
void AcceptSigns(boolean boolvar = true) { acceptSigns = boolvar; };
// returns SETYPE_UNSIGNED_INTEGER or SETYPE_SIGNED_INTEGER if success
// otherwise returns zero.
virtual int TypeCheck();
virtual void SetSubject(int c)
{ if (subject != nil) { subject->SetValue(c); } };
protected:
virtual boolean InsertValidChar(char c);
boolean acceptSigns;
private:
};
///////////////////////////////////////////////////////////////////////////////
//
// RealStringEditor class definition
//
///////////////////////////////////////////////////////////////////////////////
class RealStringEditor : public StringEditor2 {
public:
RealStringEditor(ButtonState*, const char* sample,
const char* Done = SEDone, int width = 0);
RealStringEditor(
const char* name, ButtonState*, const char*, const char* = SEDone,
int width = 0
);
virtual ~RealStringEditor() {};
// returns SETYPE_REAL if success otherwise returns zero.
virtual int TypeCheck();
virtual void SetSubject(int c)
{ if (subject != nil) { subject->SetValue(c); } };
protected:
virtual boolean InsertValidChar(char c);
private:
};
#include <IV-2_6/_leave.h>
#endif
-427
View File
@@ -1,427 +0,0 @@
// ~sauderd/src/iv/hfiles/intstreditor2sub.h
/*
* IntStringEditorSub - Interactive editor for character strings based
* on IntStringEditor. This one is sociable with
* a supervisor. In addition to supplying the
* supervisor with the terminating char it also
* returns a pointer to itself.
* It does this by redefining SetSubject() to
* communicate with the supervisor supplying the
* fields contained in class SubordinateInfo.
*
* RealStringEditorSub - Same as above except for real numbers and based
* on RealStringEditor.
*/
#include <ctype.h>
#include <stdio.h>
#include <stream.h>
#include <string.h>
#include <intstreditorsub.h>
#include <IV-2_6/InterViews/button.h>
#include <IV-2_6/InterViews/textbuffer.h>
const char RingBell = '\007'; // <CNTRL> G
IntStringEditorSub::~IntStringEditorSub() {
delete subInfo;
}
void IntStringEditorSub::SetSubject( int c ) {
if( subject != nil ) {
subInfo->SetValue( c );
subject->SetValue( subInfo ); // don't cast this to (void*)
// it makes it not work.
}
}
RealStringEditorSub::~RealStringEditorSub() {
}
void RealStringEditorSub::SetSubject( int c ) {
if( subject != nil ) {
subInfo->SetValue( c );
subject->SetValue( subInfo ); // don't cast this to (void*)
// it makes it not work.
}
}
///////////////////////////////////////////////////////////////////////////////
//
// IntStringEditorSub member functions.
//
///////////////////////////////////////////////////////////////////////////////
/*
define this if you want the supervisor to be notified before this
IntStringEditorSub handles it's own event. If you do define this you will
probably want to call StringEditor2::Handle() for this object when the
supervisor has done what it wanted to do before this object handled it's
event. You will need to read the event if you don't call handle for this
object otherwise this function will cause an infinite loop (i.e. read the
event, unread the event, read the event, unread the event, etc)
*/
/*
void IntStringEditorSub::Handle(Event& e)
{
// if(e.eventType == 2 || e.eventType == 4)
if(e.eventType == DownEvent || e.eventType == KeyEvent)
{
UnRead(e);
subInfo->SetValue(' ');
subject->SetValue(subInfo); // don't cast this to (void*)
// call notify for subject (which calls see update)
}
else
StringEditor2::Handle(e);
}
*/
/*
define this if you want the supervisor to be notified before this
RealStringEditorSub handles it's own event. If you do define this you will
probably want to call StringEditor2::Handle() for this object when the
supervisor has done what it wanted to do before this object handled it's
event. You will need to read the event if you don't call handle for this
object otherwise this function will cause an infinite loop (i.e. read the
event, unread the event, read the event, unread the event, etc)
*/
/*
void RealStringEditorSub::Handle(Event& e)
{
// if(e.eventType == 2 || e.eventType == 4)
if(e.eventType == DownEvent || e.eventType == KeyEvent)
{
UnRead(e);
subInfo->SetValue(' ');
subject->SetValue(subInfo); // don't cast this to (void*)
// call notify for subject (which calls see update)
StringEditor2::Handle(e);
}
else
StringEditor2::Handle(e);
}
*/
/*
IntStringEditorSub::IntStringEditorSub (
ButtonState* s, const char* samp, const char* done, int width
) : (s, samp, done, width)
{
Init();
}
IntStringEditorSub::IntStringEditorSub (
const char* name, ButtonState* s, const char* samp, const char* done,
int width
) : ( s, samp, done, width)
{
SetInstance(name);
Init();
}
void IntStringEditorSub::Init()
{
SetClassName("IntStringEditorSub");
subInfo = new SubordinateInfo(0, this);
}
void IntStringEditorSub::SetSubject(char c)
{
if (subject != nil) {
subInfo->SetValue(c);
subject->SetValue(subInfo); // don't cast this to (void*)
// it makes it not work.
}
}
*/
/*
boolean IntStringEditorSub::HandleChar (char c) {
if (strchr(done, c) != nil) {
if (subject != nil) {
subInfo->SetValue(c);
subject->SetValue(subInfo); // don't cast this to (void*)
// it makes it not work.
long int tmpI = 0;
char tmpstr[3];
int numFound = sscanf((char *)text->Text(),"%ld%1s", &tmpI,
tmpstr);
if(numFound == 0 || numFound == 2){
// 0 => bogus beginning; 2 => bogus ending
fprintf(stderr, "%c bogus int attr value\n" , RingBell);
fflush(stderr);
}
else if(numFound == 1 || numFound == EOF){
// 1 => success; EOF => blank field
printf("edit results returned %d\n", numFound);
printf("attr value: %ld\n", tmpI);
printf("term char (hex): %x, 'this' address(hex): %x\n",
(int)subInfo->GetValue(), subInfo->GetSubordinate());
return true;
}
}
} else {
switch (c) {
case SEBeginningOfLine:
Select(text->BeginningOfLine(left));
break;
case SEEndOfLine:
Select(text->EndOfLine(right));
break;
case SESelectAll:
Select(text->BeginningOfText(), text->EndOfText());
break;
// case SESelectWord:
// Select(
// text->BeginningOfWord(text->PreviousCharacter(left)), right
// );
// break;
case SESelectWord:
if(text->IsEndOfWord(right))
Select(
left, text->EndOfWord(text->BeginningOfNextWord(right))
);
else
Select(
left, text->EndOfWord(right)
);
break;
case SEDeleteToEndOfLine:
Select(left, text->EndOfLine(right));
break;
case SEPreviousCharacter:
Select(text->PreviousCharacter(left));
break;
case SENextCharacter:
Select(text->NextCharacter(right));
break;
case SEDeleteNextCharacter:
if (left == right) {
right = text->NextCharacter(right);
}
InsertText("", 0);
break;
case SEDeletePreviousCharacter:
case SEDeletePreviousCharacterAlt:
if (left == right) {
left = text->PreviousCharacter(left);
}
InsertText("", 0);
break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
InsertText(&c, 1);
break;
case '+':
case '-':
if (acceptSigns)
InsertText(&c, 1);
else {
fprintf(stdout, "%c" , RingBell);
fflush(stdout);
}
break;
case ESCAPE_KEY:
meta = true;
break;
default:
if(meta){
switch(c){
case 'f':
Select(text->BeginningOfNextWord(right));
break;
case 'b':
if(text->IsBeginningOfWord(left))
Select(text->BeginningOfWord(
text->PreviousCharacter(left)));
else
Select(text->BeginningOfWord(left));
break;
}
}
else {
fprintf(stdout, "%c" , RingBell);
fflush(stdout);
}
break;
}
if(meta)
if(c != ESCAPE_KEY)
meta = false;
return false;
}
}
*/
///////////////////////////////////////////////////////////////////////////////
//
// RealStringEditorSub member functions.
//
///////////////////////////////////////////////////////////////////////////////
/*
RealStringEditorSub::RealStringEditorSub (
ButtonState* s, const char* samp, const char* done, int width
) : (s, samp, done, width)
{
Init();
}
RealStringEditorSub::RealStringEditorSub (
const char* name, ButtonState* s, const char* samp, const char* done,
int width
) : ( s, samp, done, width)
{
SetInstance(name);
Init();
}
void RealStringEditorSub::Init()
{
SetClassName("RealStringEditorSub");
subInfo = new SubordinateInfo(0, this);
printf("se this: %d\n", this);
}
void RealStringEditorSub::SetSubject(char c)
{
if (subject != nil) {
subInfo->SetValue(c);
subject->SetValue(subInfo); // don't cast this to (void*)
// it makes it not work.
}
}
*/
/*
boolean RealStringEditorSub::HandleChar (char c) {
if (strchr(done, c) != nil) {
if (subject != nil) {
subInfo->SetValue(c);
subject->SetValue(subInfo); // don't cast this to (void*)
// it makes it not work.
double tmpD = 0;
char tmpstr[3];
int numFound = sscanf((char *)text->Text(),"%lf%1s", &tmpD,
tmpstr);
if(numFound == 0 || numFound == 2){
// 0 => bogus beginning; 2 => bogus ending
fprintf(stderr, "%c bogus real attr value\n" , RingBell);
fflush(stderr);
}
else if(numFound == 1 || numFound == EOF){
// 1 => success; EOF => blank field
printf("edit results returned %d\n", numFound);
printf("attr value: %e\n", tmpD);
printf("term char (hex): %x, this address(hex): %x\n",
(int)subInfo->GetValue(), subInfo->GetSubordinate());
return true;
}
}
} else {
switch (c) {
case SEBeginningOfLine:
Select(text->BeginningOfLine(left));
break;
case SEEndOfLine:
Select(text->EndOfLine(right));
break;
case SESelectAll:
Select(text->BeginningOfText(), text->EndOfText());
break;
// case SESelectWord:
// Select(
// text->BeginningOfWord(text->PreviousCharacter(left)), right
// );
// break;
case SESelectWord:
if(text->IsEndOfWord(right))
Select(
left, text->EndOfWord(text->BeginningOfNextWord(right))
);
else
Select(
left, text->EndOfWord(right)
);
break;
case SEDeleteToEndOfLine:
Select(left, text->EndOfLine(right));
break;
case SEPreviousCharacter:
Select(text->PreviousCharacter(left));
break;
case SENextCharacter:
Select(text->NextCharacter(right));
break;
case SEDeleteNextCharacter:
if (left == right) {
right = text->NextCharacter(right);
}
InsertText("", 0);
break;
case SEDeletePreviousCharacter:
case SEDeletePreviousCharacterAlt:
if (left == right) {
left = text->PreviousCharacter(left);
}
InsertText("", 0);
break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case 'e':
case 'E':
case '.':
case '+':
case '-':
if (!iscntrl(c)) {
InsertText(&c, 1);
}
break;
case ESCAPE_KEY:
meta = true;
break;
default:
if(meta){
switch(c){
case 'f':
Select(text->BeginningOfNextWord(right));
break;
case 'b':
if(text->IsBeginningOfWord(left))
Select(text->BeginningOfWord(
text->PreviousCharacter(left)));
else
Select(text->BeginningOfWord(left));
break;
}
}
else {
fprintf(stdout, "%c" , RingBell);
fflush(stdout);
}
break;
}
if(meta)
if(c != ESCAPE_KEY)
meta = false;
return false;
}
}
*/
-136
View File
@@ -1,136 +0,0 @@
// ~sauderd/src/iv/hfiles/intstreditor2sub.h
/*
* IntStringEditorSub - Interactive editor for character strings based
* on IntStringEditor. This one is sociable with
* a supervisor. In addition to supplying the
* supervisor with the terminating char it also
* returns a pointer to itself.
* It does this by redefining SetSubject() to
* communicate with the supervisor supplying the
* fields contained in class SubordinateInfo.
*
* RealStringEditorSub - Same as above except for real numbers and based
* on RealStringEditor.
*/
#ifndef intstreditorsub_h
#define intstreditorsub_h
#include <InterViews/event.h>
#include <intstreditor.h>
#include <subinfo.h>
#include <IV-2_6/_enter.h>
///////////////////////////////////////////////////////////////////////////////
//
// IntStringEditorSub class definition
//
///////////////////////////////////////////////////////////////////////////////
class IntStringEditorSub : public IntStringEditor {
public:
IntStringEditorSub(ButtonState*, const char* sample,
const char* donechars = SEDone, int width = 0);
IntStringEditorSub(
const char* name, ButtonState*, const char*, const char* = SEDone,
int width = 0
);
~IntStringEditorSub();
virtual void SetSubject(int c);
protected:
SubordinateInfo *subInfo;
private:
void Init();
};
///////////////////////////////////////////////////////////////////////////////
//
// RealStringEditorSub class definition
//
///////////////////////////////////////////////////////////////////////////////
class RealStringEditorSub : public RealStringEditor {
public:
RealStringEditorSub(ButtonState*, const char* sample,
const char* donechars = SEDone, int width = 0);
RealStringEditorSub(
const char* name, ButtonState*, const char*, const char* = SEDone,
int width = 0
);
virtual ~RealStringEditorSub();
virtual void SetSubject(int c);
protected:
// virtual boolean HandleChar(char);
SubordinateInfo *subInfo;
private:
void Init();
};
///////////////////////////////////////////////////////////////////////////////
//
// IntStringEditorSub class inline member functions
//
///////////////////////////////////////////////////////////////////////////////
inline void IntStringEditorSub::Init()
{
SetClassName("IntStringEditorSub");
subInfo = new SubordinateInfo(0, this);
}
inline IntStringEditorSub::IntStringEditorSub (
ButtonState* s, const char* samp, const char* donechars, int width
) : IntStringEditor(s, samp, donechars, width)
{
Init();
}
inline IntStringEditorSub::IntStringEditorSub (
const char* name, ButtonState* s, const char* samp, const char* donechars,
int width
) : IntStringEditor( s, samp, donechars, width)
{
SetInstance(name);
Init();
}
///////////////////////////////////////////////////////////////////////////////
//
// RealStringEditorSub class inline member functions
//
///////////////////////////////////////////////////////////////////////////////
inline void RealStringEditorSub::Init()
{
SetClassName("RealStringEditorSub");
subInfo = new SubordinateInfo(0, this);
}
inline RealStringEditorSub::RealStringEditorSub (
ButtonState* s, const char* samp, const char* donechars, int width
) : RealStringEditor(s, samp, donechars, width)
{
Init();
}
inline RealStringEditorSub::RealStringEditorSub (
const char* name, ButtonState* s, const char* samp, const char* donechars,
int width
) : RealStringEditor( s, samp, donechars, width)
{
SetInstance(name);
Init();
}
#include <IV-2_6/_leave.h>
#endif
-140
View File
@@ -1,140 +0,0 @@
/*
* Copyright (c) 1987, 1988, 1989 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* myLabel class implementation.
*/
#define iv2_6_compatible
#include <label.h>
#include <InterViews/font.h>
#include <IV-2_6/InterViews/painter.h>
#include <IV-2_6/InterViews/shape.h>
#include <stdlib.h>
#include <string.h>
void myLabel::Init( Alignment a, int width, int p,
int hstr, int vstr ) {
SetClassName( "myLabel" );
alignment = a;
textWidth = width;
pad = p;
shape->hstretch = hstr;
shape->vstretch = vstr;
highlighted = false;
}
myLabel::myLabel( const char * msg, Alignment al, int width, int pad_,
int hstr, int vstr ) {
text = msg;
Init( al, width, pad_, hstr, vstr );
}
myLabel::myLabel( char * msg, Alignment al, int width, int pad_,
int hstr, int vstr ) {
text = new char[strlen( msg ) + 1];
strncpy( ( char * )text, msg, strlen( msg ) + 1 );
Init( al, width, pad_, hstr, vstr );
}
myLabel::myLabel(
const char * name,
const char * msg, Alignment al, int width, int pad_, int hstr, int vstr
) : Interactor( name ) {
text = msg;
Init( al, width, pad_, hstr, vstr );
}
myLabel::myLabel(
const char * name,
char * msg, Alignment al, int width, int pad_, int hstr, int vstr
) : Interactor( name ) {
text = new char[strlen( msg ) + 1];
strncpy( ( char * )text, msg, strlen( msg ) + 1 );
Init( al, width, pad_, hstr, vstr );
}
void myLabel::Reconfig() {
const char * a = GetAttribute( "text" );
if( a != nil ) {
text = a;
}
a = GetAttribute( "padding" );
if( a != nil ) {
pad = atoi( a );
}
const Font * f = output->GetFont();
if( textWidth ) {
shape->width = pad + f->Width( "n" ) * textWidth + pad;
} else {
shape->width = pad + f->Width( text ) + pad;
}
shape->height = pad + f->Height() + pad;
shape->hshrink = pad + pad;
shape->vshrink = pad + pad;
}
void myLabel::Realign( Alignment a ) {
alignment = a;
Draw();
}
void myLabel::Redraw( IntCoord l, IntCoord b, IntCoord r, IntCoord t ) {
IntCoord x = 0, y = 0;
Align( alignment, shape->width, shape->height, x, y );
output->Clip( canvas, l, b, r, t );
if( highlighted ) {
output->SetColors( output->GetBgColor(), output->GetFgColor() );
}
output->ClearRect( canvas, l, b, r, t );
const Font * f = output->GetFont();
if( textWidth - strlen( text ) > 0 ) {
if( alignment == Right ) {
output->Text( canvas, text,
x + ( ( textWidth - strlen( text ) ) * f->Width( "n" ) ) + pad,
y + pad );
} else if( alignment == Center ) {
output->Text( canvas, text,
x + ( ( textWidth - strlen( text ) ) * f->Width( "n" ) ) / 2 + pad,
y + pad );
} else {
output->Text( canvas, text, x + pad, y + pad );
}
} else {
output->Text( canvas, text, x + pad, y + pad );
}
if( highlighted ) {
output->SetColors( output->GetBgColor(), output->GetFgColor() );
}
output->NoClip();
}
void myLabel::Highlight( boolean b ) {
if( highlighted != b ) {
highlighted = b;
Draw();
}
}
-73
View File
@@ -1,73 +0,0 @@
/*
* Copyright (c) 1987, 1988, 1989 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* myLabel - display a string of text
*/
#ifndef mylabel_h
#define mylabel_h
#include <IV-2_6/InterViews/interactor.h>
#include <IV-2_6/_enter.h>
class myLabel : public Interactor {
public:
myLabel(
const char* msg, Alignment al = Center, int width = 0, int pad_ = 0,
int hstretch = 0, int vstretch = 0
);
myLabel(
char* msg, Alignment al = Center, int width = 0, int pad_ = 0,
int hstretch = 0, int vstretch = 0
);
myLabel(
const char* name,
const char* msg, Alignment al = Center, int width = 0, int pad_ = 0,
int hstretch = 0, int vstretch = 0
);
myLabel(
const char* name,
char* msg, Alignment al = Center, int width = 0, int pad_ = 0,
int hstretch = 0, int vstretch = 0
);
virtual void Highlight(boolean);
virtual void Realign(Alignment);
protected:
const char* text;
Alignment alignment : 16;
unsigned pad : 15;
boolean highlighted : 1;
int textWidth;
virtual void Reconfig();
virtual void Redraw(IntCoord, IntCoord, IntCoord, IntCoord);
private:
void Init(Alignment, int width, int pad,
int hstretch, int vstretch);
};
#include <IV-2_6/_leave.h>
#endif
-176
View File
@@ -1,176 +0,0 @@
/*
* FileChooser implementation.
*/
#include <InterViews/event.h>
#include <IV-2_6/InterViews/adjuster.h>
#include <IV-2_6/InterViews/border.h>
#include <IV-2_6/InterViews/box.h>
#include <IV-2_6/InterViews/button.h>
#include <IV-2_6/InterViews/filechooser.h>
#include <IV-2_6/InterViews/frame.h>
#include <IV-2_6/InterViews/glue.h>
#include <IV-2_6/InterViews/message.h>
#include <IV-2_6/InterViews/scroller.h>
#include <IV-2_6/InterViews/sensor.h>
#include <string.h>
#include <listitemchooser.h>
#include <IV-2_6/_enter.h>
void ListItemChooser::Init( ButtonState * bs, const char * boxtitle,
int r, int c, const char * acptLbl ) {
input = new Sensor;
input->Reference();
// input->Catch(DownEvent);
input->Catch( KeyEvent );
state = bs;
if( *boxtitle == '\0' ) {
title = new MarginFrame( new VGlue( 0, 0 ) );
} else {
title = new MarginFrame( new Message( boxtitle ) );
}
_browser = new MyStringBrowser( bs, r, c );
_cancelBut = new PushButton( "Cancel", state, CANCEL_VAL );
_acceptBut = new PushButton( acptLbl, state, '\r' );
}
ListItemChooser::ListItemChooser(
ButtonState * bs, const char * boxtitle, int r, int c,
const char * acceptLabel, Alignment a ) : Dialog( bs, nil, a ) {
Init( bs, boxtitle, r, c, acceptLabel );
Scene::Insert( Interior() );
}
ListItemChooser::ListItemChooser(
const char * name, ButtonState * bs, const char * boxtitle,
int r, int c, const char * acceptLabel, Alignment a )
: Dialog( name, bs, nil, a ) {
SetInstance( name );
Init( bs, boxtitle, r, c, acceptLabel );
Scene::Insert( Interior() );
}
ListItemChooser::~ListItemChooser() {
input->unref();
};
// loop until an item is chosen
boolean ListItemChooser::Accept() {
Event e;
int v;
state->SetValue( 0 );
v = 0;
do {
Read( e );
// this dialog box will hog probe input until a selection is made
// (either select or quit) so check to see if an event
// happened that this dialog box cares about. i.e. did anything
// inside the dialog box receive an event. I added the Movers and
// the VScroller to this list since before they were being ignored.
if( ( e.target == _cancelBut ) ||
( e.target == _acceptBut ) ||
( e.target == _upMover ) ||
( e.target == _downMover ) ||
( e.target == _vScroller )
) {
e.target->Handle( e );
} else if( ( e.eventType == KeyEvent ) ||
( e.target == _browser ) ) {
_browser->Handle( e );
}
/*
if(e.target == _browser)
_browser->Handle(e);
else if(e.target == _cancelBut)
_cancelBut->Handle(e);
else if(e.target == _acceptBut)
_acceptBut->Handle(e);
*/
state->GetValue( v );
} while( v == 0 && e.target != nil );
return ( v && v != CANCEL_VAL ) || e.target == nil;
/*
boolean accepted, dirSelected;
do {
accepted = StringChooser::Accept();
dirSelected = Browser()->IsADirectory(Choice());
} while (accepted && dirSelected);
return accepted;
*/
}
static void ChangeMsg( const char * name, MarginFrame * frame ) {
Interactor * msg;
if( *name == '\0' ) {
msg = new VGlue( 0, 0 );
} else {
msg = new Message( name );
}
frame->Insert( msg );
frame->Change( msg );
}
void ListItemChooser::SetTitle( const char * name ) {
ChangeMsg( name, title );
}
Interactor * ListItemChooser::AddScroller( Interactor * i ) {
return new HBox(
new MarginFrame( i, 2 ),
new VBorder,
new VBox(
new UpMover( i, 1 ),
new HBorder,
new VScroller( i ),
new HBorder,
new DownMover( i, 1 )
)
);
}
Interactor * ListItemChooser::Interior() {
const int space = round( .5 * cm );
HBox * titleblock = new HBox( title, new HGlue );
_upMover = new UpMover( _browser, 1 );
_vScroller = new VScroller( _browser );
_downMover = new DownMover( _browser, 1 );
return new MarginFrame(
new VBox(
titleblock,
new VGlue( space, 0 ),
// new Frame(AddScroller(_browser)),
new Frame(
new HBox(
new MarginFrame( _browser, 2 ),
new VBorder,
new VBox(
_upMover,
new HBorder,
_vScroller,
new HBorder,
_downMover
)
)
),
new VGlue( space, 0 ),
new HBox(
// new VGlue(space, 0),
new HGlue,
_cancelBut,
new HGlue( space, 0 ),
_acceptBut
)
), space, space / 2, 0
);
}
#include <IV-2_6/_leave.h>
-97
View File
@@ -1,97 +0,0 @@
/*
* ListItemChooser - a StringChooser for choosing an item from a list.
*/
#ifndef listitemchooser_h
#define listitemchooser_h
#include <IV-2_6/InterViews/button.h>
#include <IV-2_6/InterViews/dialog.h>
#include <IV-2_6/InterViews/frame.h>
#include <IV-2_6/InterViews/scroller.h>
#include <mystrbrowser.h>
#include <IV-2_6/_enter.h>
#define CANCEL_VAL ('\007')
class UpMover;
class DownMover;
class Vscroller;
class ListItemChooser : public Dialog {
public:
ListItemChooser(ButtonState* bs,
const char* boxtitle = "Please select one of the following:",
int rows = 10, int cols = 24,
const char* acceptLabel = " Choose ", Alignment = Center
);
ListItemChooser(const char* name, ButtonState* bs,
const char* boxtitle = "Please select one of the following:",
int rows = 10, int cols = 24,
const char* acceptLabel = " Choose ", Alignment = Center
);
virtual ~ListItemChooser();
void SetTitle(const char*);
virtual boolean Accept(); // loop until an item is chosen
int Choice(); // return the index of the selected line
char* String(int index); // return the text for the line at index
int Count() // return the num of entries in the browser
{ return _browser->Count(); }
void Select(int index); // select one of the entries in the list
void Browse(); // initiate the selecting process for the user
void Insert(const char* line, int index);
void Append(const char* line);
void Remove(int index);
MyStringBrowser* Browser();
protected:
void Init (ButtonState* bs, const char* title, int r, int c,
const char* acptlbl);
Interactor* Interior();
Interactor* AddScroller(Interactor*);
protected:
MarginFrame* title;
MyStringBrowser* _browser;
PushButton *_cancelBut;
PushButton *_acceptBut;
UpMover *_upMover;
DownMover *_downMover;
VScroller *_vScroller;
};
inline MyStringBrowser* ListItemChooser::Browser () { return _browser; }
// return the index of the selected line
inline int ListItemChooser::Choice()
{ return _browser->Selection(); }
// return the text for the line at index
inline char* ListItemChooser::String(int index)
{ return _browser->String(index); }
// initiate the selecting process for the user
inline void ListItemChooser::Browse()
{ _browser->Browse(); }
// select one of the entries in the list
inline void ListItemChooser::Select(int index)
{ _browser->Select(index); }
inline void ListItemChooser::Insert(const char* line, int index)
{ _browser->Insert(line, index); }
inline void ListItemChooser::Append(const char* line)
{ _browser->Append(line); }
inline void ListItemChooser::Remove(int index)
{ _browser->Remove(index); }
#include <IV-2_6/_leave.h>
#endif
-181
View File
@@ -1,181 +0,0 @@
/* ivfasd/listmgrcore.c */
/*
* ListMgrCore - an object that let's you manage a list. Meaning that you
* can mark an entry on the list for:
* 1) v(iew) or m(odify)
* 2) r(eplicate) or d(elete)
* 3) p(rint)
* 4) c(hoose)
* 5) h(ide)
* 6) s(ave complete)
* 7) i(save incomplete)
*/
#include <stdio.h>
#include <string.h>
#include <memory.h>
#include <listmgrcore.h> // ivfasd/listmgrcore.h
void ListMgrCore::WriteChar( char c, int col, int index ) {
strbuf[index][col] = c;
display->ReplaceText( index, strbuf[index], strlen( strbuf[index] ) );
display->Style( index, 0, index, columns, Plain );
};
//////////////////////////////////////////
void ListMgrCore::Insert( const char * s, int index ) {
int len = strlen( s ) + 1 + opColumns;
char * sCopy = new char[len];
memset( sCopy, ' ', opColumns );
// memset(sCopy, ' ', opColumns);
// bcopy(s, sCopy + opColumns, strlen(s) + 1); // non ANSI
// the 1st two operands are reversed from bcopy. memcpy() is ANSI
// memcpy is o.k. since memory areas do not overlap - DAS
memcpy( sCopy + opColumns, s, strlen( s ) + 1 );
MyStringBrowser::Insert( sCopy, index );
delete [] sCopy;
}
//////////////////////////////////////////
void ListMgrCore::Append( const char * s ) {
Insert( s, strcount );
}
//////////////////////////////////////////
void ListMgrCore::ReplaceText( const char * s, int index ) {
int len = strlen( s ) + 1 + opColumns;
char * sCopy = new char[len];
// memset(sCopy, ' ', opColumns);
strncpy( sCopy, MyStringBrowser::String( index ), opColumns );
// sCopy[opColumns] = '\0';
// bcopy(s, sCopy + opColumns, strlen(s) + 1); // non ANSI
// the 1st two operands are reversed from bcopy. memcpy() is ANSI
// memcpy is o.k. since memory areas do not overlap - DAS
memcpy( sCopy + opColumns, s, strlen( s ) + 1 );
MyStringBrowser::ReplaceText( sCopy, index );
delete [] sCopy;
}
//////////////////////////////////////////
char * ListMgrCore::String( int index ) {
return MyStringBrowser::String( index ) + opColumns;
}
char * ListMgrCore::CmdString( int index, char * str, int strSize ) {
if( strSize > opColumns ) {
strncpy( str, MyStringBrowser::String( index ), opColumns );
str[opColumns] = '\0';
} else {
strncpy( str, MyStringBrowser::String( index ), strSize );
str[strSize - 1] = '\0';
}
return str;
}
//////////////////////////////////////////
// if found, returns the position of 'ch' in the cmd string at 'index'
// otherwise returns -1
int ListMgrCore::InCmdString( char ch, int index ) {
int len = opColumns + 1;
char * str = new char[len];
CmdString( index, str, opColumns + 1 );
char * strptr = strchr( str, ch );
if( strptr ) {
int rindex = strptr - str;
delete [] str;
return rindex;
}
delete [] str;
return -1;
}
//////////////////////////////////////////
void ListMgrCore::Init( lmCommand * CmdArray, int arraySize ) {
SetClassName( "ListMgrCore" );
opColumns = 0;
lmCmdArray = CmdArray;
lmCmdStr = new char[arraySize + 1];
int i;
for( i = 0; i < arraySize; i++ ) {
lmCmdStr[i] = lmCmdArray[i].cmdChar;
opColumns = max( opColumns, lmCmdArray[i].cmdCol );
}
lmCmdStr[i] = '\0';
opColumns++; // cols start at zero, so add 1 to total columns
}
//////////////////////////////////////////
boolean ListMgrCore::HandleCharExtra( char c ) {
int index = Selection();
if( index >= 0 ) {
// since g++ is missing strpos() use strchr() work around.
char * cmdIndexPtr = strchr( ( const char * )lmCmdStr, c );
int cmdIndex = -1;
if( cmdIndexPtr ) {
cmdIndex = cmdIndexPtr - lmCmdStr;
}
if( cmdIndex >= 0 ) {
DoCommand( lmCmdArray[cmdIndex], index );
return true;
} else {
if( strchr( done, c ) == nil ) {
printf( "index %d invalid char '%c'\n", index, c );
}
}
// char* copy = new char[strlen(s)+1];
// strcpy(copy, s);
// display->ReplaceText(index, s, strlen(s));
} else {
printf( "no Selections\n" );
}
return false;
}
//////////////////////////////////////////
void ListMgrCore::DoCommand( lmCommand lm, int index ) {
printf( "ListMgrCore doCommand() - char '%c', col: %d, index: %d\n",
lm.cmdChar, lm.cmdCol, index );
};
/*
void ListMgrCore::Save(int index)
{
}
void ListMgrCore::Delete(int index)
{
}
void ListMgrCore::Print(int index)
{
}
void ListMgrCore::Unmark(int index)
{
}
void ListMgrCore::Choose(int index)
{
}
void ListMgrCore::
{
}
*/
-123
View File
@@ -1,123 +0,0 @@
/* ivfasd/listmgrcore.c */
/*
* ListMgrCore - an object that let's you manage a list. Meaning that you
* can mark an entry on the list for:
* 1) v(iew) or m(odify)
* 2) r(eplicate) or d(elete)
* 3) p(rint)
* 4) c(hoose)
* 5) h(ide)
* 6) s(ave complete)
* 7) i(save incomplete)
*/
#ifndef listmgrcore_h
#define listmgrcore_h
#include <stdlib.h>
#include <string.h>
#include <IV-2_6/InterViews/button.h>
#include <IV-2_6/InterViews/interactor.h>
#include <mystrbrowser.h>
#include <IV-2_6/_enter.h>
//typedef void (*ListMgrCore::lmFunc)();
///////////////////////////////////////////////////////////////////////////////
//
// lmCommand class
//
///////////////////////////////////////////////////////////////////////////////
class lmCommand {
public:
lmCommand(char ch, int col) { cmdChar = ch; cmdCol = col; }
~lmCommand() {};
char cmdChar;
int cmdCol;
};
///////////////////////////////////////////////////////////////////////////////
//
// ListMgrCore class
//
///////////////////////////////////////////////////////////////////////////////
class ListMgrCore : public MyStringBrowser {
public:
ListMgrCore(ButtonState* bs, int Rows, int Cols,
lmCommand *CmdArray, int arraySize,
const char* Done = mySBDone);
ListMgrCore (const char* name, ButtonState* bs, int Rows, int Cols,
lmCommand *CmdArray, int arraySize,
const char* Done = mySBDone);
virtual ~ListMgrCore() { };
virtual void Insert(const char*, int index);
virtual void Append(const char*);
virtual void ReplaceText(const char* s, int index);
virtual char* String(int index); // returns the data portion of the line
// returns the command portion of the line
virtual char* CmdString(int index, char *str, int strSize);
virtual int InCmdString(char ch, int index);
virtual void DoCommand(lmCommand lm, int index) ;
virtual void WriteChar(char c, int col, int index);
virtual int MaxIndex() { return strcount - 1; }
virtual int Count() { return strcount; }
protected:
// used to implement extra char bindings in subclasses
virtual boolean HandleCharExtra(char);
void DoNothing() { printf("did nothing\n"); };
protected:
// the number of columns in Cmd portion of the display
int opColumns;
// a string that has all the keystrokes accepted as commands;
// it's used for querying for valid keystrokes on key events;
// the position of the char in this string corresponds to the
// position of the corresponding lmCommand in lmCmdArray
char *lmCmdStr;
// an array of entries containing valid keystrokes and where
// they will be written in the Cmd portion of the display
lmCommand *lmCmdArray;
private:
void Init(lmCommand *CmdArray, int arraySize);
};
///////////////////////////////////////////////////////////////////////////////
//
// ListMgrCore inline member functions
//
///////////////////////////////////////////////////////////////////////////////
inline ListMgrCore::ListMgrCore(
ButtonState* bs, int Rows, int Cols,
lmCommand *LmCmdArray, int arraySize, const char* Done) :
MyStringBrowser(bs, Rows, Cols, true, Reversed, Done)
{
Init(LmCmdArray, arraySize);
}
//////////////////////////////////////////
inline ListMgrCore::ListMgrCore (
const char* name, ButtonState* bs, int Rows, int Cols,
lmCommand *LmCmdArray, int arraySize, const char* Done) :
MyStringBrowser(bs, Rows, Cols, true, Reversed, Done)
{
SetInstance(name);
Init(LmCmdArray, arraySize);
}
//////////////////////////////////////////
//////////////////////////////////////////
#include <IV-2_6/_leave.h>
#endif
-909
View File
@@ -1,909 +0,0 @@
/*
* Copyright (c) 1987, 1988, 1989 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* Button management.
*/
#include <string.h>
#include <InterViews/bitmap.h>
#include <InterViews/cursor.h>
#include <InterViews/font.h>
#include <InterViews/pattern.h>
#include <IV-2_6/InterViews/button.h>
#include <IV-2_6/InterViews/painter.h>
#include <IV-2_6/InterViews/sensor.h>
#include <IV-2_6/InterViews/shape.h>
#include <IV-2_6/InterViews/subject.h>
#include <OS/math.h>
#include <mybutton.h>
static Cursor * origCursor = 0;
static Cursor * handCursor = 0;
#include <InterViews/Bitmaps/radioBoth.bm>
#include <InterViews/Bitmaps/radioChosen.bm>
#include <InterViews/Bitmaps/radioHit.bm>
#include <InterViews/Bitmaps/radioMask.bm>
#include <InterViews/Bitmaps/radio.bm>
#include <InterViews/Bitmaps/hand.bm>
#include <InterViews/Bitmaps/handMask.bm>
#include <fasdBitmaps/m.bm>
#include <fasdBitmaps/mHit.bm>
#include <fasdBitmaps/v.bm>
#include <fasdBitmaps/vHit.bm>
#include <fasdBitmaps/mvmask.bm>
#include <fasdBitmaps/pin2mask.bm> // mask
// not hit, not pinned - hollow circle with tack
#include <fasdBitmaps/pinout2.bm>
// hit & not pinned - thick hollow circle with tack
#include <fasdBitmaps/pinout2Hit.bm>
// not hit, pinned - hollow circle with tack pushed in
#include <fasdBitmaps/pinin2.bm>
// hit & pinned - thick hollow circle with tack pushed in
#include <fasdBitmaps/pinin2Hit.bm>
#include <IV-2_6/_enter.h>
static const int sep = 3;
static const int pad = 3;
inline int HalfRadioButtonSize( int h ) {
return Math::round( .4 * h );
}
inline int HalfCheckBoxSize( int h ) {
return Math::round( .4 * h );
}
/*
* A mybutton has a ButtonState subject that it modifies when pressed.
* Also, a mybutton may have associated buttons that are enabled/disabled
* when it is chosen/unchosen.
*/
void MyButton::Init() {
SetClassName( "MyButton" );
}
MyButton::MyButton( ButtonState * s, void * v ) : Button( s, v ) {
Init();
}
MyButton::MyButton( const char * name, ButtonState * s, void * v ) : Button( s, v ) {
SetInstance( name );
Init();
}
/*
MyButton::MyButton (Painter* out, ButtonState* s, void* v) : Button(out, s, v)
{
Init();
}
*/
MyButton::~MyButton() {
}
void MyButton::Handle( register Event & e ) {
if( !origCursor ) {
origCursor = GetCursor();
}
if( handCursor == nil ) {
int handHotx = 7; // The Bitmap object seems to have changed how the
int handHoty = 1; // coords for hot spot is calculated. DAS
// Used to be x = 7, y = 14. i.e. 0,0 is bottom left.
// now 0,0 seems to be top left. bm is 16x16
handCursor = new Cursor(
new Bitmap(
/* put the hot spot at the finger tip */
hand_bits, hand_width, hand_height, handHotx, handHoty
// hand_bits, hand_width, hand_height, hand_x_hot, hand_y_hot
),
new Bitmap( hand_mask_bits, hand_mask_width, hand_mask_height ),
output->GetFgColor(), output->GetBgColor()
);
}
if( e.eventType == EnterEvent ) {
SetCursor( handCursor );
this->Flush();
}
// else (e.eventType == LeaveEvent)
// SetCursor(origCursor);
if( e.eventType == DownEvent && e.target == this ) {
boolean inside = true;
do {
if( enabled && e.target == this ) {
if( e.eventType == EnterEvent ) {
SetCursor( handCursor );
inside = true;
} else if( e.eventType == LeaveEvent ) {
SetCursor( origCursor );
inside = false;
}
if( inside ) {
if( !hit ) {
hit = true;
Refresh();
}
} else {
if( hit ) {
hit = false;
Refresh();
}
}
}
Read( e );
} while( e.eventType != UpEvent );
if( hit ) {
hit = false;
Refresh();
}
if( enabled && inside ) {
Press();
}
}
}
////////////////////////////////////////////////////////////////////////
void MyTextButton::Init( const char * str ) {
SetClassName( "MyTextButton" );
if( str == nil ) {
text = nil;
} else {
text = new char[strlen( str ) + 1];
strcpy( text, str );
}
background = nil;
grayout = nil;
}
MyTextButton::MyTextButton( const char * str, ButtonState * s, void * v )
: MyButton( s, v ) {
Init( str );
}
MyTextButton::MyTextButton(
const char * name, const char * str, ButtonState * s, void * v )
: MyButton( name, s, v ) {
Init( str );
}
/*
MyTextButton::MyTextButton (
const char* str, ButtonState* s, void* v, Painter* out)
: MyButton(out, s, v)
{
Init(str);
}
*/
void MyTextButton::Reconfig() {
const char * a = GetAttribute( "text" );
if( a != nil ) {
delete text;
text = new char[strlen( a ) + 1];
strcpy( text, a );
}
}
void MyTextButton::MakeBackground() {
Unref( background );
background = new Painter( output );
background->Reference();
background->SetColors( output->GetBgColor(), output->GetFgColor() );
static Pattern * gray_pat;
if( gray_pat == nil ) {
gray_pat = new Pattern( Pattern::gray );
gray_pat->Reference();
}
Unref( grayout );
grayout = new Painter( background );
grayout->Reference();
grayout->SetPattern( gray_pat );
grayout->FillBg( false );
}
void MyTextButton::MakeShape() {
if( text != nil ) {
const Font * f = output->GetFont();
shape->width += f->Width( text );
shape->height += f->Height();
}
shape->Rigid();
}
MyTextButton::~MyTextButton() {
delete text;
Unref( background );
Unref( grayout );
}
////////////////////////////////////////////////////////////////////////
void MyPushButton::Init() {
SetClassName( "MyPushButton" );
}
MyPushButton::MyPushButton(
const char * str, ButtonState * s, int v ) : MyTextButton( str, s, ( void * )v ) {
Init();
}
MyPushButton::MyPushButton(
const char * str, ButtonState * s, void * v ) : MyTextButton( str, s, v ) {
Init();
}
MyPushButton::MyPushButton(
const char * name, const char * str, ButtonState * s, int v )
: MyTextButton( name, str, s, ( void * )v ) {
Init();
}
MyPushButton::MyPushButton(
const char * name, const char * str, ButtonState * s, void * v )
: MyTextButton( name, str, s, v ) {
Init();
}
/*
MyPushButton::MyPushButton (
const char* str, ButtonState* s, int v, Painter* out)
: MyTextButton(str, s, (void*)v, out)
{
Init();
}
MyPushButton::MyPushButton (
const char* str, ButtonState* s, void* v, Painter* out)
: MyTextButton(str, s, v, out)
{
Init();
}
*/
MyPushButton::~MyPushButton() { }
void MyPushButton::Reconfig() {
MyTextButton::Reconfig();
MakeBackground();
if( shape->Undefined() ) {
MakeShape();
shape->width += output->GetFont()->Width( " " );
shape->height += 2 * pad;
}
}
void MyPushButton::Redraw( IntCoord x1, IntCoord y1,
IntCoord x2, IntCoord y2 ) {
output->ClearRect( canvas, x1, y1, x2, y2 );
Refresh();
}
void MyPushButton::Refresh() {
register int r;
IntCoord x[16], y[16];
IntCoord tx, ty;
r = Math::min( 10 * pixels, Math::min( xmax + 1, ymax + 1 ) / 6 );
x[0] = 0;
y[0] = r;
x[1] = 0;
y[1] = r + r;
x[2] = 0;
y[2] = ymax - r - r;
x[3] = 0;
y[3] = ymax - r;
x[4] = r;
y[4] = ymax;
x[5] = r + r;
y[5] = ymax;
x[6] = xmax - r - r;
y[6] = ymax;
x[7] = xmax - r;
y[7] = ymax;
x[8] = xmax;
y[8] = ymax - r;
x[9] = xmax;
y[9] = ymax - r - r;
x[10] = xmax;
y[10] = r + r;
x[11] = xmax;
y[11] = r;
x[12] = xmax - r;
y[12] = 0;
x[13] = xmax - r - r;
y[13] = 0;
x[14] = r + r;
y[14] = 0;
x[15] = r;
y[15] = 0;
tx = ( xmax - output->GetFont()->Width( text ) ) / 2;
ty = pad;
if( chosen || hit ) {
output->FillBSpline( canvas, x, y, 16 );
background->Text( canvas, text, tx, ty );
} else {
background->FillRect( canvas, 0, 0, xmax, ymax );
output->ClosedBSpline( canvas, x, y, 16 );
output->Text( canvas, text, tx, ty );
}
if( !enabled ) {
grayout->FillRect( canvas, 0, 0, xmax, ymax );
}
}
static Bitmap * myRadioMask;
static Bitmap * myRadioPlain;
static Bitmap * myRadioHit;
static Bitmap * myRadioChosen;
static Bitmap * myRadioBoth;
void MyRadioButton::Init() {
SetClassName( "MyRadioButton" );
}
MyRadioButton::MyRadioButton(
const char * str, ButtonState * s, int v ) : MyTextButton( str, s, ( void * )v ) {
Init();
}
MyRadioButton::MyRadioButton(
const char * str, ButtonState * s, void * v ) : MyTextButton( str, s, v ) {
Init();
}
MyRadioButton::MyRadioButton(
const char * name, const char * str, ButtonState * s, int v )
: MyTextButton( name, str, s, ( void * )v ) {
Init();
}
MyRadioButton::MyRadioButton(
const char * name, const char * str, ButtonState * s, void * v )
: MyTextButton( name, str, s, v ) {
Init();
}
/*
MyRadioButton::MyRadioButton (
const char* str, ButtonState* s, int v, Painter* out)
: MyTextButton(str, s, (void*)v, out)
{
Init();
}
MyRadioButton::MyRadioButton (
const char* str, ButtonState* s, void* v, Painter* out)
: MyTextButton(str, s, v, out)
{
Init();
}
*/
MyRadioButton::~MyRadioButton() { }
void MyRadioButton::Reconfig() {
MyTextButton::Reconfig();
MakeBackground();
if( shape->Undefined() ) {
MakeShape();
shape->width += shape->height + sep;
}
if( myRadioMask == nil ) {
myRadioMask = new Bitmap(
radio_mask_bits, radio_mask_width, radio_mask_height
);
myRadioMask->Reference();
myRadioPlain = new Bitmap(
radio_plain_bits, radio_plain_width, radio_plain_height
);
myRadioPlain->Reference();
myRadioHit = new Bitmap(
radio_hit_bits, radio_hit_width, radio_hit_height
);
myRadioHit->Reference();
myRadioChosen = new Bitmap(
radio_chosen_bits, radio_chosen_width, radio_chosen_height
);
myRadioChosen->Reference();
myRadioBoth = new Bitmap(
radio_both_bits, radio_both_width, radio_both_height
);
myRadioBoth->Reference();
}
}
void MyRadioButton::Redraw( IntCoord x1, IntCoord y1,
IntCoord x2, IntCoord y2 ) {
int h = output->GetFont()->Height();
int r = radio_plain_width;
output->ClearRect( canvas, x1, y1, x2, y2 );
Coord tx = r + sep;
Coord ty = ( ymax + 1 - h ) / 2;
output->Text( canvas, text, tx, ty );
Refresh();
}
void MyRadioButton::Refresh() {
IntCoord x = 0;
IntCoord y = ( ymax + 1 - radio_plain_height ) / 2;
if( !hit && !chosen ) {
output->Stencil( canvas, x, y, myRadioPlain, myRadioMask );
} else if( hit && !chosen ) {
output->Stencil( canvas, x, y, myRadioHit, myRadioMask );
} else if( !hit && chosen ) {
output->Stencil( canvas, x, y, myRadioChosen, myRadioMask );
} else if( hit && chosen ) {
output->Stencil( canvas, x, y, myRadioBoth, myRadioMask );
}
if( !enabled ) {
grayout->FillRect( canvas, 0, 0, xmax, ymax );
}
}
/*
static Bitmap* myCheckBoxMask;
static Bitmap* myCheckBoxPlain;
static Bitmap* myCheckBoxHit;
static Bitmap* myCheckBoxChosen;
static Bitmap* myCheckBoxBoth;
*/
void MyCheckBox::Init( void * v ) {
SetClassName( "MyCheckBox" );
offvalue = v;
}
MyCheckBox::MyCheckBox(
const char * str, ButtonState * s, int on, int off )
: MyTextButton( str, s, ( void * )on ) {
Init( ( void * )off );
}
MyCheckBox::MyCheckBox(
const char * str, ButtonState * s, void * on, void * off )
: MyTextButton( str, s, on ) {
Init( off );
}
MyCheckBox::MyCheckBox(
const char * name, const char * str, ButtonState * s, int on, int off )
: MyTextButton( name, str, s, ( void * )on ) {
Init( ( void * )off );
}
MyCheckBox::MyCheckBox(
const char * name, const char * str, ButtonState * s, void * on, void * off )
: MyTextButton( name, str, s, on ) {
Init( off );
}
/*
MyCheckBox::MyCheckBox (
const char* str, ButtonState* s, int on, int off, Painter* out)
: MyTextButton(str, s, (void*)on, out)
{
Init((void*)off);
}
MyCheckBox::MyCheckBox (
const char* str, ButtonState* s, void* on, void* off, Painter* out)
: MyTextButton(str, s, on, out)
{
Init(off);
}
*/
MyCheckBox::~MyCheckBox() { }
void MyCheckBox::Reconfig() {
MyTextButton::Reconfig();
MakeBackground();
if( shape->Undefined() ) {
MakeShape();
shape->width += shape->height + sep;
}
Update();
/*
MakeBackground();
if (shape->Undefined()) {
MakeShape();
shape->width += shape->height + sep;
}
if (myCheckBoxMask == nil) {
myCheckBoxMask = new Bitmap(radio_mask_bits, radio_mask_width,
radio_mask_height);
myCheckBoxMask->Reference();
myCheckBoxPlain = new Bitmap(
radio_plain_bits, radio_plain_width, radio_plain_height
);
myCheckBoxPlain->Reference();
myCheckBoxHit = new Bitmap(
radio_hit_bits, radio_hit_width, radio_hit_height
);
myCheckBoxHit->Reference();
myCheckBoxChosen = new Bitmap(
radio_chosen_bits, radio_chosen_width, radio_chosen_height
);
myCheckBoxChosen->Reference();
myCheckBoxBoth = new Bitmap(
radio_both_bits, radio_both_width, radio_both_height
);
myCheckBoxBoth->Reference();
}
*/
}
void MyCheckBox::Press() {
if( chosen ) {
subject->GetValue( value );
subject->SetValue( offvalue );
} else {
subject->SetValue( value );
}
}
void MyCheckBox::Update() {
void * v;
subject->GetValue( v );
if( v != offvalue ) {
Choose();
value = v;
} else {
UnChoose();
}
}
void MyCheckBox::Redraw( IntCoord x1, IntCoord y1, IntCoord x2, IntCoord y2 ) {
int h = output->GetFont()->Height();
int t = HalfCheckBoxSize( h );
output->ClearRect( canvas, x1, y1, x2, y2 );
IntCoord tx = 2 * t + sep;
IntCoord ty = ( ymax + 1 - h ) / 2;
output->Text( canvas, text, tx, ty );
Refresh();
/*
int h = output->GetFont()->Height();
int r = radio_plain_width;
output->ClearRect(canvas, x1, y1, x2, y2);
Coord tx = r + sep;
Coord ty = (ymax + 1 - h) / 2;
output->Text(canvas, text, tx, ty);
Refresh();
*/
}
void MyCheckBox::Refresh() {
int h = output->GetFont()->Height();
int t = HalfCheckBoxSize( h );
IntCoord cx = t;
IntCoord cy = ( ymax + 1 ) / 2;
IntCoord left = cx - t;
IntCoord right = cx + t;
IntCoord bottom = cy - t;
IntCoord top = cy + t;
output->Rect( canvas, left, bottom, right, top );
background->FillRect( canvas, left + 1, bottom + 1, right - 1, top - 1 );
if( hit ) {
output->Rect( canvas, left + 1, bottom + 1, right - 1, top - 1 );
}
if( chosen ) {
output->Line( canvas, left, bottom, right, top );
output->Line( canvas, left, top, right, bottom );
}
if( !enabled ) {
grayout->FillRect( canvas, 0, 0, xmax, ymax );
}
/*
Coord x = 0;
Coord y = (ymax+1 - radio_plain_height)/2;
if (!hit && !chosen) {
output->Stencil(canvas, x, y, myCheckBoxPlain, myCheckBoxMask);
} else if (hit && !chosen) {
output->Stencil(canvas, x, y, myCheckBoxHit, myCheckBoxMask);
} else if (!hit && chosen) {
output->Stencil(canvas, x, y, myCheckBoxChosen, myCheckBoxMask);
} else if (hit && chosen) {
output->Stencil(canvas, x, y, myCheckBoxBoth, myCheckBoxMask);
}
if (!enabled) {
grayout->FillRect(canvas, 0, 0, xmax, ymax);
}
*/
}
///////////////////////////////////////////////////////////////////////////////
static Bitmap * pin2mask;
static Bitmap * pinin2;
static Bitmap * pinin2Hit;
static Bitmap * pinout2;
static Bitmap * pinout2Hit;
void PinCheckBox::Init() {
SetClassName( "PinCheckBox" );
}
PinCheckBox::PinCheckBox(
const char * str, ButtonState * s, int on, int off )
: MyCheckBox( str, s, ( void * )on, ( void * )off ) {
Init();
}
PinCheckBox::PinCheckBox(
const char * str, ButtonState * s, void * on, void * off )
: MyCheckBox( str, s, on, off ) {
Init();
}
PinCheckBox::PinCheckBox(
const char * name, const char * str, ButtonState * s, int on, int off )
: MyCheckBox( name, str, s, ( void * )on, ( void * )off ) {
Init();
}
PinCheckBox::PinCheckBox(
const char * name, const char * str, ButtonState * s, void * on, void * off )
: MyCheckBox( name, str, s, on, off ) {
Init();
}
/*
PinCheckBox::PinCheckBox (
const char* str, ButtonState* s, int on, int off, Painter* out)
: MyCheckBox(str, s, (void*)on, (void*)off, out)
{
Init ();
}
PinCheckBox::PinCheckBox (
const char* str, ButtonState* s, void* on, void* off, Painter* out)
: MyCheckBox(str, s, on, off, out)
{
Init ();
}
*/
PinCheckBox::~PinCheckBox() { }
void PinCheckBox::Reconfig() {
MyTextButton::Reconfig();
MakeBackground();
if( shape->Undefined() ) {
MakeShape();
// shape->width += shape->height + sep;
shape->width += pinin2_width + sep;
shape->height = pinin2_height;
}
if( pin2mask == nil ) {
pin2mask = new Bitmap( pin2mask_bits, pin2mask_width,
pin2mask_height );
pin2mask->Reference();
pinout2 = new Bitmap(
pinout2_bits, pinout2_width, pinout2_height
);
pinout2->Reference();
pinout2Hit = new Bitmap(
pinout2Hit_bits, pinout2Hit_width, pinout2Hit_height
);
pinout2Hit->Reference();
pinin2 = new Bitmap(
pinin2_bits, pinin2_width, pinin2_height
);
pinin2->Reference();
pinin2Hit = new Bitmap(
pinin2Hit_bits, pinin2Hit_width, pinin2Hit_height
);
pinin2Hit->Reference();
}
MakeBackground();
Update();
}
void PinCheckBox::Redraw( IntCoord x1, IntCoord y1, IntCoord x2, IntCoord y2 ) {
// int h = output->GetFont()->Height();
int h = pinout2_height;
int r = pinout2_width;
output->ClearRect( canvas, x1, y1, x2, y2 );
IntCoord tx = r + sep;
IntCoord ty = ( ymax + 1 - h ) / 2;
output->Text( canvas, text, tx, ty );
Refresh();
}
void PinCheckBox::Refresh() {
IntCoord x = 0;
IntCoord y = ( ymax + 1 - pinout2_height ) / 2;
if( !hit && !chosen ) {
output->Stencil( canvas, x, y, pinout2, pin2mask );
} else if( hit && !chosen ) {
output->Stencil( canvas, x, y, pinin2Hit, pin2mask );
// output->Stencil(canvas, x, y, pinout2Hit, pin2mask);
} else if( !hit && chosen ) {
output->Stencil( canvas, x, y, pinin2, pin2mask );
} else if( hit && chosen ) {
output->Stencil( canvas, x, y, pinout2Hit, pin2mask );
// output->Stencil(canvas, x, y, pinin2Hit, pin2mask);
}
if( !enabled ) {
grayout->FillRect( canvas, 0, 0, xmax, ymax );
}
}
///////////////////////////////////////////////////////////////////////////////
static Bitmap * MVCheckBoxMask;
static Bitmap * ViewCheckBox;
static Bitmap * ViewCheckBoxHit;
static Bitmap * ModifyCheckBox;
static Bitmap * ModifyCheckBoxHit;
void ModifyViewCheckBox::Init() {
SetClassName( "ModifyViewCheckBox" );
}
ModifyViewCheckBox::ModifyViewCheckBox(
const char * str, ButtonState * s, int on, int off )
: MyCheckBox( str, s, ( void * )on, ( void * )off ) {
Init();
}
ModifyViewCheckBox::ModifyViewCheckBox(
const char * str, ButtonState * s, void * on, void * off )
: MyCheckBox( str, s, on, off ) {
Init();
}
ModifyViewCheckBox::ModifyViewCheckBox(
const char * name, const char * str, ButtonState * s, int on, int off )
: MyCheckBox( name, str, s, ( void * )on, ( void * )off ) {
Init();
}
ModifyViewCheckBox::ModifyViewCheckBox(
const char * name, const char * str, ButtonState * s, void * on, void * off )
: MyCheckBox( name, str, s, on, off ) {
Init();
}
/*
ModifyViewCheckBox::ModifyViewCheckBox (
const char* str, ButtonState* s, int on, int off, Painter* out)
: MyCheckBox(str, s, (void*)on, (void*)off, out)
{
Init ();
}
ModifyViewCheckBox::ModifyViewCheckBox (
const char* str, ButtonState* s, void* on, void* off, Painter* out)
: MyCheckBox(str, s, on, off, out)
{
Init ();
}
*/
ModifyViewCheckBox::~ModifyViewCheckBox() { }
void ModifyViewCheckBox::Reconfig() {
MyTextButton::Reconfig();
MakeBackground();
if( shape->Undefined() ) {
MakeShape();
// shape->width += shape->height + sep;
shape->width += m_width + sep;
shape->height = m_height;
}
// printf("shape: \nwidth: %d height: %d \n", shape->width, shape->height);
if( MVCheckBoxMask == nil ) {
MVCheckBoxMask = new Bitmap( mvmask_bits, mvmask_width, mvmask_height );
MVCheckBoxMask->Reference();
ViewCheckBox = new Bitmap( v_bits, v_width, v_height );
ViewCheckBox->Reference();
ViewCheckBoxHit = new Bitmap( vHit_bits, vHit_width, vHit_height );
ViewCheckBoxHit->Reference();
ModifyCheckBox = new Bitmap( m_bits, m_width, m_height );
ModifyCheckBox->Reference();
ModifyCheckBoxHit = new Bitmap( mHit_bits, mHit_width, mHit_height );
ModifyCheckBoxHit->Reference();
}
MakeBackground();
/*
if (shape->Undefined()) {
MakeShape();
shape->width += shape->height + sep;
}
*/
Update();
}
void ModifyViewCheckBox::Redraw( IntCoord x1, IntCoord y1,
IntCoord x2, IntCoord y2 ) {
// int h = output->GetFont()->Height();
int h = m_height;
int r = m_width;
output->ClearRect( canvas, x1, y1, x2, y2 );
IntCoord tx = r + sep;
IntCoord ty = ( ymax + 1 - h ) / 2;
output->Text( canvas, text, tx, ty );
Refresh();
/*
int h = output->GetFont()->Height();
int t = HalfCheckBoxSize(h);
output->ClearRect(canvas, x1, y1, x2, y2);
Coord tx = 2*t + sep;
Coord ty = (ymax + 1 - h) / 2;
output->Text(canvas, text, tx, ty);
Refresh();
*/
}
void ModifyViewCheckBox::Refresh() {
IntCoord x = 0;
IntCoord y = ( ymax + 1 - m_height ) / 2;
if( !hit && !chosen ) {
output->Stencil( canvas, x, y, ViewCheckBox, MVCheckBoxMask );
} else if( hit && !chosen ) {
output->Stencil( canvas, x, y, ViewCheckBoxHit, MVCheckBoxMask );
} else if( !hit && chosen ) {
output->Stencil( canvas, x, y, ModifyCheckBox, MVCheckBoxMask );
} else if( hit && chosen ) {
output->Stencil( canvas, x, y, ModifyCheckBoxHit, MVCheckBoxMask );
}
if( !enabled ) {
grayout->FillRect( canvas, 0, 0, xmax, ymax );
}
/*
int h = output->GetFont()->Height();
int t = HalfCheckBoxSize(h);
Coord cx = t;
Coord cy = (ymax + 1)/2;
Coord left = cx - t;
Coord right = cx + t;
Coord bottom = cy - t;
Coord top = cy + t;
output->Rect(canvas, left, bottom, right, top);
background->FillRect(canvas, left+1, bottom+1, right-1, top-1);
if (chosen) {
output->Line(canvas, left, bottom, right, top);
output->Line(canvas, left, top, right, bottom);
}
if (hit) {
output->Rect(canvas, left+1, bottom+1, right-1, top-1);
}
if (!enabled) {
grayout->FillRect(canvas, 0, 0, xmax, ymax);
}
*/
}
-167
View File
@@ -1,167 +0,0 @@
/*
* Copyright (c) 1987, 1988, 1989 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* A button is a view of some value that is normally set when
* the button is pressed.
*/
#ifndef mybutton_h
#define mybutton_h
#include <IV-2_6/InterViews/interactor.h>
#include <IV-2_6/InterViews/subject.h>
#include <IV-2_6/InterViews/button.h>
#include <IV-2_6/_enter.h>
class MyButton : public Button {
public:
virtual void Handle(Event&);
protected:
MyButton(ButtonState*, void*);
MyButton(const char*, ButtonState*, void*);
// MyButton(Painter*, ButtonState*, void*);
virtual ~MyButton();
private:
void Init();
};
class MyTextButton : public MyButton {
protected:
char* text;
Painter* background;
Painter* grayout; /* for disabled buttons */
MyTextButton(const char*, const char*, ButtonState*, void*);
MyTextButton(const char*, ButtonState*, void*);
// MyTextButton(const char*, ButtonState*, void*, Painter*);
virtual ~MyTextButton();
virtual void Reconfig();
void MakeBackground();
void MakeShape();
private:
void Init(const char*);
};
class MyPushButton : public MyTextButton {
public:
MyPushButton(const char*, ButtonState*, int);
MyPushButton(const char*, ButtonState*, void*);
MyPushButton(const char*, const char*, ButtonState*, int);
MyPushButton(const char*, const char*, ButtonState*, void*);
// MyPushButton(const char*, ButtonState*, int, Painter*);
// MyPushButton(const char*, ButtonState*, void*, Painter*);
virtual ~MyPushButton();
virtual void Refresh();
protected:
virtual void Reconfig();
virtual void Redraw(IntCoord, IntCoord, IntCoord, IntCoord);
private:
void Init();
};
class MyRadioButton : public MyTextButton {
public:
MyRadioButton(const char*, ButtonState*, int);
MyRadioButton(const char*, ButtonState*, void*);
MyRadioButton(const char*, const char*, ButtonState*, int);
MyRadioButton(const char*, const char*, ButtonState*, void*);
// MyRadioButton(const char*, ButtonState*, int, Painter*);
// MyRadioButton(const char*, ButtonState*, void*, Painter*);
virtual ~MyRadioButton();
virtual void Refresh();
protected:
virtual void Reconfig();
virtual void Redraw(IntCoord, IntCoord, IntCoord, IntCoord);
private:
void Init();
};
class MyCheckBox : public MyTextButton {
public:
MyCheckBox(const char*, ButtonState*, int, int);
MyCheckBox(const char*, ButtonState*, void*, void*);
MyCheckBox(const char*, const char*, ButtonState*, int, int);
MyCheckBox(const char*, const char*, ButtonState*, void*, void*);
// MyCheckBox(const char*, ButtonState*, int, int, Painter*);
// MyCheckBox(const char*, ButtonState*, void*, void*, Painter*);
virtual ~MyCheckBox();
virtual void Press();
virtual void Refresh();
virtual void Update();
protected:
virtual void Reconfig();
virtual void Redraw(IntCoord, IntCoord, IntCoord, IntCoord);
private:
void* offvalue;
void Init(void*);
};
class PinCheckBox : public MyCheckBox {
public:
PinCheckBox(const char*, ButtonState*, int, int);
PinCheckBox(const char*, ButtonState*, void*, void*);
PinCheckBox(const char*, const char*, ButtonState*, int, int);
PinCheckBox(const char*, const char*, ButtonState*, void*, void*);
// PinCheckBox(const char*, ButtonState*, int, int, Painter*);
// PinCheckBox(const char*, ButtonState*, void*, void*, Painter*);
virtual ~PinCheckBox();
virtual void Refresh();
protected:
virtual void Reconfig();
virtual void Redraw(IntCoord, IntCoord, IntCoord, IntCoord);
private:
void Init();
};
class ModifyViewCheckBox : public MyCheckBox {
public:
ModifyViewCheckBox(const char*, ButtonState*, int, int);
ModifyViewCheckBox(const char*, ButtonState*, void*, void*);
ModifyViewCheckBox(const char*, const char*, ButtonState*, int, int);
ModifyViewCheckBox(const char*, const char*, ButtonState*, void*, void*);
// ModifyViewCheckBox(const char*, ButtonState*, int, int, Painter*);
// ModifyViewCheckBox(const char*, ButtonState*, void*, void*, Painter*);
virtual ~ModifyViewCheckBox();
virtual void Refresh();
protected:
virtual void Reconfig();
virtual void Redraw(IntCoord, IntCoord, IntCoord, IntCoord);
private:
void Init();
};
#include <IV-2_6/_leave.h>
#endif
-39
View File
@@ -1,39 +0,0 @@
#ifndef mybuttonstate_h
#define mybuttonstate_h
#include <IV-2_6/InterViews/button.h>
#include <IV-2_6/_enter.h>
/*
///////////////////////////////////////////////////////////////////////////////
// This class was created to avoid all views being notified when the
// ButtonState value is nulled.
///////////////////////////////////////////////////////////////////////////////
*/
class MyButtonState : public ButtonState {
public:
MyButtonState () {
value = nil;
Reference();
}
MyButtonState (int v) {
value = (void*)v;
Reference();
}
MyButtonState (void* v) {
value = v;
Reference();
}
virtual ~MyButtonState () { };
void SetNull(void *val = 0, int notify = 0) {
value = val;
if (notify) Notify();
}
};
#include <IV-2_6/_leave.h>
#endif
-309
View File
@@ -1,309 +0,0 @@
/*
* Copyright (c) 1987, 1988, 1989 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* Implementation of control classes
*/
#include <mycontrol.h>
#include <InterViews/bitmap.h>
#include <InterViews/cursor.h>
#include <IV-2_6/InterViews/painter.h>
#include <IV-2_6/InterViews/message.h>
#include <IV-2_6/InterViews/sensor.h>
#include <fasdBitmaps/menu16.bm>
#include <fasdBitmaps/menu16_mask.bm>
#include <fasdBitmaps/menu12.bm>
#include <fasdBitmaps/menu12_mask.bm>
static Cursor * menu16Cursor = 0;
static Cursor * menu12Cursor = 0;
static Cursor * origCursor = 0;
/** class MyControl **/
MyControl::MyControl( Interactor * i ) {
Init( nil, i );
}
MyControl::MyControl( const char * name, Interactor * i ) {
Init( name, i );
}
void MyControl::Init( const char * name, Interactor * i ) {
SetClassName( "MyControl" );
if( name != nil ) {
SetInstance( name );
}
enabled_ = true;
parent_ = nil;
state_ = new MyControlState;
state_->Attach( this );
input = new Sensor;
input->Catch( EnterEvent );
input->Catch( LeaveEvent );
input->Catch( DownEvent );
input->Catch( UpEvent );
if( i != nil ) {
Insert( i );
}
}
MyControl::~MyControl() {
state_->Detach( this );
}
void MyControl::Handle( Event & e ) {
switch( e.eventType ) {
case DownEvent:
Down();
break;
case UpEvent:
Up();
break;
case EnterEvent:
Enter();
break;
case LeaveEvent:
Leave();
break;
}
}
void MyControl::Enable( boolean b ) {
if( b != enabled_ ) {
enabled_ = b;
}
}
/*
* Hitting a control is equivalent to making the state active and
* then selecting it.
*/
void MyControl::Down() {
if( Enabled() && !state_->Active() ) {
state_->Activate();
state_->NotifySelection( this );
}
}
void MyControl::Enter() {
if( !origCursor ) {
origCursor = GetCursor();
}
/* if (menu16Cursor == nil) {
Bitmap menu16(menu16_bits, menu16_width, menu16_height, 8, 8);
Bitmap menu16mask(menu16_mask_bits, menu16_mask_width,
menu16_mask_height);
menu16Cursor = new Cursor(
&menu16, &menu16mask, output->GetFgColor(), output->GetBgColor()
);
}
*/
int handHotx = 6; // The Bitmap object seems to have changed how the
int handHoty = 1; // coords for hot spot is calculated. DAS
// Used to be x = 6, y = 10. i.e. 0,0 is bottom left.
// now 0,0 seems to be top left. bm is 12x12
if( menu12Cursor == nil ) {
Bitmap * menu12 = new Bitmap( menu12_bits, menu12_width, menu12_height,
handHotx, handHoty );
Bitmap * menu12mask = new Bitmap( menu12_mask_bits, menu12_mask_width,
menu12_mask_height );
menu12Cursor = new Cursor(
menu12, menu12mask, output->GetFgColor(), output->GetBgColor()
);
}
// SetCursor(menu16Cursor);
SetCursor( menu12Cursor );
if( Enabled() && state_->Active() ) {
state_->NotifySelection( this );
}
}
void MyControl::Leave() {
SetCursor( origCursor );
if( Enabled() && state_->Active() ) {
state_->NotifySelection( nil );
}
}
void MyControl::Select() {
Highlight( true );
Open();
Grab();
}
void MyControl::Unselect() {
Close();
Highlight( false );
}
void MyControl::Grab() {
Event e;
do {
Read( e );
e.target->Handle( e );
if( e.target == this && e.eventType == LeaveEvent ) {
Skip();
break;
}
} while( state_->Active() );
}
/*
* Skip all input events until we see something for another open control.
*/
void MyControl::Skip() {
Event e;
for( ;; ) {
Read( e );
if( e.eventType == EnterEvent && IsGrabbing( e.target ) ) {
UnRead( e );
break;
} else if( e.eventType == UpEvent ) {
Up();
break;
}
}
}
/*
* Check whether an interactor (usually an event target) is a grabbing
* control. Trivially, the current control is grabbing. Any other controls
* attached to the control's state are also grabbing. Similarly, any controls
* attached to other control's state up the stack from the current one
* are also considered to be grabbing.
*/
boolean MyControl::IsGrabbing( Interactor * i ) {
if( i == this ) {
return true;
}
for( MyControlState * c = state_; c != nil; c = c->Next() ) {
if( c->IsView( i ) ) {
return true;
}
}
for( c = state_->Prev(); c != nil; c = c->Prev() ) {
if( c->IsView( i ) ) {
return true;
}
}
return false;
}
/*
* On an up event, deactivate all the control states and then
* call Do the current selection (if any).
*/
void MyControl::Up() {
if( state_->Active() ) {
MyControl * target = state_->Selection();
state_->Action( target );
for( MyControlState * c = state_; c != nil; c = c->Prev() ) {
c->Deactivate();
}
if( target != nil ) {
Busy();
target->Do();
Done();
}
}
}
void MyControl::Open() { }
void MyControl::Close() { }
void MyControl::Do() { }
void MyControl::Busy() { }
void MyControl::Done() { }
MyControl * MyControl::RootControl() {
MyControl * root = this;
MyControl * Parent = ParentControl();
while( Parent != nil ) {
root = Parent;
Parent = Parent->ParentControl();
}
return root;
}
void MyControl::SetState( MyControlState * s ) {
state_->Detach( this );
state_ = s;
s->Attach( this );
}
void MyControl::Reparent( MyControl * ctrl, MyControl * Parent ) {
ctrl->parent_ = Parent;
}
/** class MyControlState **/
MyControlState::MyControlState( unsigned s ) {
status = s;
selection = nil;
action = nil;
next = nil;
prev = nil;
}
MyControlState::~MyControlState() { }
void MyControlState::NotifySelection( MyControl * c ) {
if( selection != c ) {
if( selection != nil ) {
selection->Unselect();
}
selection = c;
if( selection != nil ) {
selection->Select();
}
}
}
void MyControlState::Push( MyControlState * s ) {
next = s;
s->prev = this;
}
void MyControlState::Pop() {
if( prev != nil ) {
prev->next = next;
prev = nil;
}
Deactivate();
}
void MyControlState::Deactivate() {
Set( MyControlActive, false );
if( selection != nil ) {
selection->Unselect();
selection = nil;
}
}
-130
View File
@@ -1,130 +0,0 @@
/*
* Copyright (c) 1987, 1988, 1989 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* Controls provide an interface to selecting and executing some action.
*/
#ifndef mycontrol_h
#define mycontrol_h
#include <InterViews/resource.h>
#include <IV-2_6/InterViews/scene.h>
#include <IV-2_6/InterViews/subject.h>
#include <InterViews/_enter.h>
class MyControl;
class MyControlState;
class MyControl : public MonoScene {
public:
MyControl(Interactor*);
MyControl(const char* name, Interactor*);
~MyControl();
MyControlState* State() { return state_; }
void SetState(MyControlState*);
virtual void Handle(Event&);
virtual void Enable(boolean);
boolean Enabled();
virtual void Select(); /* highlight, open, and grab */
virtual void Unselect(); /* close, unhighlight */
virtual void Do(); /* action for selection */
MyControl* ParentControl();
MyControl* RootControl();
protected:
virtual void Down(); /* activate control */
virtual void Enter(); /* select a control if active */
virtual void Open(); /* open subviews, if any */
virtual void Grab(); /* read input events */
virtual void Skip(); /* ignore input until enters active control */
virtual void Leave(); /* unselect if active */
virtual void Close(); /* close subviews, if any */
virtual void Up(); /* deactivate control, exec selection */
virtual void Busy();
virtual void Done();
virtual boolean IsGrabbing(Interactor*);
void Reparent(MyControl*, MyControl* parent);
private:
MyControlState* state_;
boolean enabled_;
MyControl* parent_;
private:
void Init(const char*, Interactor*);
};
inline boolean MyControl::Enabled() { return enabled_; }
inline MyControl* MyControl::ParentControl() { return parent_; }
/*
* MyControlState is a subject that several controls share to exchange
* common information.
*/
enum MyControlStatus { MyControlActive = 0x1 };
class MyControlState : virtual public Subject {
public:
MyControlState(unsigned status = 0);
~MyControlState();
boolean Active() { return Set(MyControlActive); }
void Activate() { Set(MyControlActive, true); }
virtual void Deactivate();
MyControl* Selection() { return selection; }
void Selection(MyControl* c) { selection = c; }
virtual void NotifySelection(MyControl*);
MyControl* Action() { return action; }
void Action(MyControl* c) { action = c; }
void Push(MyControlState*);
void Pop();
MyControlState* Next() { return next; }
MyControlState* Prev() { return prev; }
protected:
unsigned status;
MyControl* selection;
MyControl* action;
MyControlState* next;
MyControlState* prev;
boolean Set(MyControlStatus s) { return (status & s) != 0; }
void Set(MyControlStatus s, boolean b) {
status = b ? (status | s) : (status & ~s);
}
};
#include <InterViews/_leave.h>
#endif
-561
View File
@@ -1,561 +0,0 @@
/*
* Copyright (c) 1987, 1988, 1989 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* MyFileBrowser implementation.
*/
#include <string.h>
#include <memory.h>
#include <stdlib.h> // for bcopy() function
#include <stream.h>
#include <myfilebrowser.h>
//#include "/proj/pdevel/autoc/arch.sunCC.iv/scl_cf.h"
// This is an scl configuration file generated by the configure script
// generated using gnu's autoconf
#ifdef HAVE_CONFIG_H
# include <scl_config.h>
#endif
#ifdef HAVE_SYSENT_H
#include <sysent.h>
#endif
#ifdef HAVE_UNISTD_H
// needed at least for getuid()
#include <unistd.h>
#endif
// sys/stat.h is apparently needed for ObjectCenter?
#ifdef HAVE_SYS_STAT_H
#include <sys/stat.h>
#endif
// to help ObjectCenter
#ifndef HAVE_MEMMOVE
extern "C"
{
void * memmove( void * __s1, const void * __s2, size_t __n );
}
#endif
//#ifdef __GNUC__
// needed at least for getuid()
//#include <unistd.h>
//#endif
//#ifdef __SUNCPLUSPLUS__
// needed at least for getuid()
//#include <sysent.h>
//#include <unistd.h>
//#endif
//#ifdef __OBJECTCENTER__
// needed at least for getuid()
//#include <sysent.h>
//#include <sys/stat.h>
//extern "C"
//{
//void * memmove(void *__s1, const void *__s2, size_t __n);
//}
//#endif
#include <pwd.h>
//#include <os/auth.h>
//#include <os/fs.h>
#include <sys/param.h>
#include <scldir.h>
#include <stat.h>
//#include <sys/dir.h>
//#include <sys/stat.h>
//#include <InterViews/Std/sys/dir.h>
//#include <InterViews/Std/sys/stat.h>
/*****************************************************************************/
class MyFBDirectory {
public:
MyFBDirectory( const char * name );
virtual ~MyFBDirectory();
boolean LoadDirectory( const char * );
const char * Normalize( const char * );
const char * ValidDirectories( const char * );
int Index( const char * );
const char * File( int index );
int Count();
boolean IsADirectory( const char * );
private:
const char * Home( const char* = nil );
const char * ElimDot( const char * );
const char * ElimDotDot( const char * );
const char * InterpSlashSlash( const char * );
const char * InterpTilde( const char * );
const char * ExpandTilde( const char *, int );
const char * RealPath( const char * );
boolean Reset( const char * );
void Clear();
void Check( int index );
void Insert( const char *, int index );
void Append( const char * );
void Remove( int index );
virtual int Position( const char * );
private:
char ** strbuf;
int strcount;
int strbufsize;
};
inline int MyFBDirectory::Count() {
return strcount;
}
inline void MyFBDirectory::Append( const char * s ) {
Insert( s, strcount );
}
inline const char * MyFBDirectory::File( int index ) {
return ( 0 <= index && index < strcount ) ? strbuf[index] : nil;
}
// evidently strdup is defined with sun but not with gnu, changed to not use it
//#ifndef __SUNCPLUSPLUS__
//char* strdup (const char* s) {
//#endif
char * mystrdup( const char * s ) {
char * dup = new char[strlen( s ) + 1];
strcpy( dup, s );
return dup;
}
MyFBDirectory::MyFBDirectory( const char * name ) {
const int defaultSize = 256;
strbufsize = defaultSize;
strbuf = new char*[strbufsize];
strcount = 0;
LoadDirectory( name );
}
MyFBDirectory::~MyFBDirectory() {
Clear();
}
const char * MyFBDirectory::RealPath( const char * path ) {
const char * realpath;
if( *path == '\0' ) {
realpath = "./";
} else {
realpath = InterpTilde( InterpSlashSlash( path ) );
}
return realpath;
}
boolean MyFBDirectory::LoadDirectory( const char * name ) {
char buf[MAXPATHLEN + 2];
const char * path = buf;
strcpy( buf, ValidDirectories( RealPath( name ) ) );
return Reset( buf );
}
int MyFBDirectory::Index( const char * name ) {
for( int i = 0; i < strcount; ++i ) {
if( strcmp( strbuf[i], name ) == 0 ) {
return i;
}
}
return -1;
}
boolean MyFBDirectory::Reset( const char * path ) {
boolean successful = IsADirectory( path );
if( successful ) {
DIR * dir = opendir( path );
Clear();
for( struct dirent * d = readdir( dir ); d != NULL; d = readdir( dir ) ) {
/*
//#if defined(SYSV)
// for (struct dirent* d = readdir(dir); d != NULL; d = readdir(dir)) {
//#else
// for (struct direct* d = readdir(dir); d != NULL; d = readdir(dir)) {
//#endif
*/
Insert( d->d_name, Position( d->d_name ) );
}
closedir( dir );
}
return successful;
}
boolean MyFBDirectory::IsADirectory( const char * path ) {
struct stat st;
return stat( path, &st ) == 0 && ( st.st_mode & S_IFMT ) == S_IFDIR;
}
const char * MyFBDirectory::Home( const char * name ) {
struct passwd * pw =
( name == nil ) ? getpwuid( getuid() ) : getpwnam( ( char * )name );
return ( pw == nil ) ? nil : pw->pw_dir;
}
inline boolean DotSlash( const char * path ) {
return
path[0] != '\0' && path[0] == '.' &&
( path[1] == '/' || path[1] == '\0' );
}
inline boolean DotDotSlash( const char * path ) {
return
path[0] != '\0' && path[1] != '\0' &&
path[0] == '.' && path[1] == '.' &&
( path[2] == '/' || path[2] == '\0' );
}
const char * MyFBDirectory::Normalize( const char * path ) {
static char newpath[MAXPATHLEN + 1];
const char * buf;
buf = InterpSlashSlash( path );
buf = ElimDot( buf );
buf = ElimDotDot( buf );
buf = InterpTilde( buf );
if( *buf == '\0' ) {
strcpy( newpath, "./" );
} else if( !DotSlash( buf ) && !DotDotSlash( buf ) && *buf != '/' ) {
strcpy( newpath, "./" );
strcat( newpath, buf );
} else if( IsADirectory( buf ) && buf[strlen( buf ) - 1] != '/' ) {
strcpy( newpath, buf );
strcat( newpath, "/" );
} else {
strcpy( newpath, buf );
}
return newpath;
}
const char * MyFBDirectory::ValidDirectories( const char * path ) {
static char buf[MAXPATHLEN + 1];
strcpy( buf, path );
int i = strlen( path );
while( !IsADirectory( RealPath( buf ) ) && i >= 0 ) {
for( --i; buf[i] != '/' && i >= 0; --i ) {
;
}
buf[i + 1] = '\0';
}
return buf;
}
const char * MyFBDirectory::InterpSlashSlash( const char * path ) {
for( int i = strlen( path ) - 1; i > 0; --i ) {
if( path[i] == '/' && path[i - 1] == '/' ) {
return &path[i];
}
}
return path;
}
const char * MyFBDirectory::ElimDot( const char * path ) {
static char newpath[MAXPATHLEN + 1];
const char * src;
char * dest = newpath;
for( src = path; src < &path[strlen( path )]; ++src ) {
if( !DotSlash( src ) ) {
*dest++ = *src;
} else if( *( dest - 1 ) == '/' ) {
++src;
} else {
*dest++ = *src;
}
}
*dest = '\0';
return newpath;
}
static boolean CollapsedDotDotSlash( const char * path, const char*& start ) {
if( path == start || *( start - 1 ) != '/' ) {
return false;
} else if( path == start - 1 && *path == '/' ) {
return true;
} else if( path == start - 2 ) { // NB: won't handle '//' right
start = path;
return *start != '.';
} else if( path < start - 2 && !DotDotSlash( start - 3 ) ) {
for( start -= 2; path <= start; --start ) {
if( *start == '/' ) {
++start;
return true;
}
}
start = path;
return true;
}
return false;
}
const char * MyFBDirectory::ElimDotDot( const char * path ) {
static char newpath[MAXPATHLEN + 1];
const char * src;
char * dest = newpath;
for( src = path; src < &path[strlen( path )]; ++src ) {
if( DotDotSlash( src ) && CollapsedDotDotSlash( newpath,
( const char * & )dest ) ) {
// DAS PORT gnu 2.6 (const char *)dest)) {
src += 2;
} else {
*dest++ = *src;
}
}
*dest = '\0';
return newpath;
}
const char * MyFBDirectory::InterpTilde( const char * path ) {
static char realpath[MAXPATHLEN + 1];
const char * beg = strrchr( path, '~' );
boolean validTilde = beg != NULL && ( beg == path || *( beg - 1 ) == '/' );
if( validTilde ) {
const char * end = strchr( beg, '/' );
int length = ( end == nil ) ? strlen( beg ) : end - beg;
const char * expandedTilde = ExpandTilde( beg, length );
if( expandedTilde == nil ) {
validTilde = false;
} else {
strcpy( realpath, expandedTilde );
if( end != nil ) {
strcat( realpath, end );
}
}
}
return validTilde ? realpath : path;
}
const char * MyFBDirectory::ExpandTilde( const char * tildeName, int length ) {
const char * name = nil;
if( length > 1 ) {
static char buf[MAXNAMLEN + 1];
strncpy( buf, tildeName + 1, length - 1 );
buf[length - 1] = '\0';
name = buf;
}
return Home( name );
}
void MyFBDirectory::Check( int index ) {
char ** newstrbuf;
if( index >= strbufsize ) {
strbufsize = ( index + 1 ) * 2;
newstrbuf = new char*[strbufsize];
// bcopy(strbuf, newstrbuf, strcount*sizeof(char*)); // non ANSI
// the 1st two operands are reversed from bcopy. memcpy() is ANSI
// memcpy is o.k. since memory areas do not overlap - DAS
memcpy( newstrbuf, strbuf, strcount * sizeof( char * ) ); // ANSI
delete strbuf;
strbuf = newstrbuf;
}
}
// this makes a copy of 's' before it inserts it.
void MyFBDirectory::Insert( const char * s, int index ) {
char ** spot;
index = ( index < 0 ) ? strcount : index;
if( index < strcount ) {
Check( strcount + 1 );
spot = &strbuf[index];
// bcopy(spot, spot+1, (strcount - index)*sizeof(char*)); // non ANSI
// the 1st two operands are reversed from bcopy. memcpy() is ANSI
// memcpy is not always o.k. since memory areas overlap - DAS
// memcpy(spot+1, spot, (strcount - index)*sizeof(char*)); // ANSI
memmove( spot + 1, spot, ( strcount - index )*sizeof( char * ) ); // ANSI
} else {
Check( index );
spot = &strbuf[index];
}
char * string = mystrdup( s );
*spot = string;
++strcount;
}
void MyFBDirectory::Remove( int index ) {
if( index < --strcount ) {
char ** spot = &strbuf[index];
delete *spot;
// bcopy(spot+1, spot, (strcount - index)*sizeof(char*));
// the 1st two operands are reversed from bcopy. memcpy() is ANSI
// memcpy is not always o.k. since memory areas overlap - DAS
// memcpy(spot, spot+1, (strcount - index)*sizeof(char*)); // ANSI
memmove( spot, spot + 1, ( strcount - index )*sizeof( char * ) ); // ANSI
}
}
void MyFBDirectory::Clear() {
for( int i = 0; i < strcount; ++i ) {
delete strbuf[i];
}
strcount = 0;
}
int MyFBDirectory::Position( const char * s ) {
int i;
for( i = 0; i < strcount; ++i ) {
if( strcmp( s, strbuf[i] ) < 0 ) {
return i;
}
}
return strcount;
}
/*****************************************************************************/
MyFileBrowser::MyFileBrowser(
ButtonState * bs, const char * dir_, int r, int c,
boolean u, int h, const char * d, int restrictBool
) : StringBrowser( bs, r, c, u, h, d ) {
// set restrict before Update() is called
restrict = restrictBool;
Init( dir_ );
Update();
}
MyFileBrowser::MyFileBrowser(
const char * name, ButtonState * bs, const char * dir_, int r, int c,
boolean u, int h, const char * d, int restrictBool
) : StringBrowser( name, bs, r, c, u, h, d ) {
// set restrict before Update() is called
restrict = restrictBool;
Init( dir_ );
Update();
}
void MyFileBrowser::Init( const char * d ) {
dir = new MyFBDirectory( d );
lastpath = mystrdup( ValidDirectories( Normalize( d ) ) );
}
MyFileBrowser::~MyFileBrowser() {
delete dir;
delete lastpath;
}
static const char * Concat( const char * path, const char * file ) {
static char buf[MAXPATHLEN + 1];
strcpy( buf, path );
if( path[strlen( path ) - 1] != '/' ) {
strcat( buf, "/" );
}
return strcat( buf, file );
}
boolean MyFileBrowser::IsADirectory( const char * path ) {
return dir->IsADirectory( Normalize( path ) );
}
boolean MyFileBrowser::SetDirectory( const char * path ) {
boolean successful = true;
path = ValidDirectories( path );
const char * normpath = Normalize( path );
if( strcmp( normpath, lastpath ) != 0 ) {
char * newnormpath = mystrdup( normpath );
successful = dir->LoadDirectory( newnormpath );
if( successful ) {
delete lastpath;
lastpath = newnormpath;
Update();
} else {
delete newnormpath;
}
}
return successful;
}
const char * MyFileBrowser::ValidDirectories( const char * path ) {
return dir->ValidDirectories( path );
}
const char * MyFileBrowser::Normalize( const char * path ) {
return dir->Normalize( path );
}
const char * MyFileBrowser::Path( int index ) {
const char * s = String( index );
return ( s == nil ) ? nil : Normalize( Concat( lastpath, s ) );
}
void MyFileBrowser::UpdateDir() {
boolean successful = dir->LoadDirectory( lastpath );
if( successful ) {
Update();
}
}
void MyFileBrowser::Update() {
Clear();
for( int i = 0; i < dir->Count(); ++i ) {
const char * name = dir->File( i );
if( dir->IsADirectory( Concat( lastpath, name ) ) ) {
char buf[MAXPATHLEN + 1];
strcpy( buf, name );
strcat( buf, "/" );
// if(buf[0] != '.' || !restrict)
if( !restrict ) {
Append( buf );
}
} else {
if( name[0] != '.' || !restrict ) {
Append( name );
}
}
}
}
-76
View File
@@ -1,76 +0,0 @@
/*
* Copyright (c) 1987, 1988, 1989 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* MyFileBrowser - a StringBrowser that displays file names.
*/
#ifndef myfilebrowser_h
#define myfilebrowser_h
#include <IV-2_6/InterViews/strbrowser.h>
#include <IV-2_6/_enter.h>
class MyFileBrowser : public StringBrowser {
public:
MyFileBrowser(
ButtonState*, const char* dir_ = "~", int rows = 10, int cols = 24,
boolean uniqueSel = true, int highlight = Reversed,
const char* done = SBDone, int restrictBool = 0
);
MyFileBrowser(
const char* name, ButtonState*, const char* = "~", int = 10, int = 24,
boolean = true, int = Reversed, const char* = SBDone,
int restrictBool = 0
);
virtual ~MyFileBrowser();
boolean IsADirectory(const char*);
boolean SetDirectory(const char*);
const char* GetDirectory();
const char* ValidDirectories(const char*);
const char* Normalize(const char*);
const char* Path(int index);
virtual void Update();
void UpdateDir();
void Restrict(int boolvar) {
restrict = boolvar;
}
int Restrict() {
return restrict;
}
private:
void Init(const char*);
private:
class MyFBDirectory* dir;
char* lastpath;
int restrict;
};
inline const char* MyFileBrowser::GetDirectory () { return lastpath; }
#include <IV-2_6/_leave.h>
#endif
-279
View File
@@ -1,279 +0,0 @@
/*
* Copyright (c) 1987, 1988, 1989 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* MyFileChooser implementation.
*/
#include <stream.h>
#include <InterViews/event.h>
#include <IV-2_6/InterViews/adjuster.h>
#include <IV-2_6/InterViews/border.h>
#include <IV-2_6/InterViews/box.h>
#include <IV-2_6/InterViews/button.h>
#include <IV-2_6/InterViews/frame.h>
#include <IV-2_6/InterViews/glue.h>
#include <IV-2_6/InterViews/message.h>
#include <IV-2_6/InterViews/scroller.h>
#include <IV-2_6/InterViews/scene.h>
#include <IV-2_6/InterViews/sensor.h>
#include <IV-2_6/InterViews/streditor.h>
#include <streditor2.h>
#include <myfilebrowser.h>
#include <myfilechooser.h>
#include <IV-2_6/_enter.h>
#include <string.h>
void MyFileChooser::Restrict( int boolvar ) {
restrict = boolvar;
( ( MyFileBrowser * )_browser )->Restrict( boolvar );
_sedit->Message( "" );
( ( MyFileBrowser * )_browser )->Update();
}
MyFileChooser::MyFileChooser(
const char * Title, const char * Subtitle, const char * dir,
int rows, int cols, const char * acceptLabel, Alignment a, int restrictBool )
: StringChooser( new ButtonState, a ) {
MyFileBrowser * fb = new MyFileBrowser( state, dir, rows, cols, true,
Reversed, SBDone, restrictBool );
//DAS Initialize the StringChooser with the customized file brower
if( restrictBool ) {
StringChooser::Init( new StringEditor2( state, "", SEDone, 40 ), fb );
} else {
StringChooser::Init( new StringEditor2( state, fb->GetDirectory() ), fb );
}
Init( Title, Subtitle );
Insert( Interior( acceptLabel ) );
}
MyFileChooser::MyFileChooser(
const char * name, const char * Title, const char * Subtitle, const char * dir,
int rows, int cols, const char * acceptLabel, Alignment a, int restrictBool )
: StringChooser( new ButtonState, a ) {
SetInstance( name );
MyFileBrowser * fb = new MyFileBrowser( state, dir, rows, cols, true,
Reversed, SBDone, restrictBool );
//DAS Initialize the StringChooser with the customized file brower
if( restrictBool ) {
StringChooser::Init( new StringEditor2( state, "", SEDone, 40 ), fb );
} else {
StringChooser::Init( new StringEditor2( state, fb->GetDirectory() ), fb );
}
Init( Title, Subtitle );
Insert( Interior( acceptLabel ) );
}
MyFileChooser::MyFileChooser(
ButtonState * bs, const char * dir, int rows, int cols, Alignment a ) :
StringChooser( bs, a ) {
MyFileBrowser * fb = new MyFileBrowser( state, dir, rows, cols );
StringChooser::Init( new StringEditor2( state, fb->GetDirectory() ), fb );
}
MyFileChooser::MyFileChooser( ButtonState * bs, Alignment a ) :
StringChooser( bs, a )
{ }
void MyFileChooser::Init( const char * t, const char * subt ) {
if( *t == '\0' ) {
title = new MarginFrame( new VGlue( 0, 0 ) );
} else {
// Interactor *i = new class Message(t, 4);
// title = new MarginFrame(i);
title = new MarginFrame( new class Message( t ) );
}
if( *subt == '\0' ) {
subtitle = new MarginFrame( new VGlue( 0, 0 ) );
} else {
subtitle = new MarginFrame( new class Message( subt ) );
}
restrict = 0;
// set parents _browser also to not be restricted
( ( MyFileBrowser * )_browser )->Restrict( 0 );
}
void MyFileChooser::SelectFile() {
const char * path = _sedit->Text();
int left = strlen( browser()->ValidDirectories( path ) );
int right = strlen( path );
Select( left, right );
}
void
MyFileChooser::UpdateDir() {
( ( MyFileBrowser * )_browser )->UpdateDir();
}
void MyFileChooser::UpdateEditor() {
int index = browser()->Selection();
if( !restrict ) {
if( index >= 0 ) {
_sedit->Message( browser()->Path( index ) );
browser()->UnselectAll();
} else {
_sedit->Message( browser()->Normalize( _sedit->Text() ) );
}
} else {
if( index >= 0 ) {
_sedit->Message( browser()->String( index ) );
browser()->UnselectAll();
} else {
const char * selection = _sedit->Text();
int illegal = 0;
char * foundDot = strchr( selection, '.' );
if( ( foundDot == selection ||
( foundDot > selection && *( foundDot - 1 ) == '/' ) ||
( foundDot > selection && *( foundDot + 1 ) == '.' ) ||
( selection[0] == '/' ) ||
( selection[0] == '~' )
) &&
restrict
) {
illegal = 1;
}
if( !illegal ) {
browser()->SetDirectory( selection );
} else {
cerr << "\007***ERROR*** Choice is restricted... "
<< "Will not accept it.\n";
_sedit->Message( "" );
}
}
}
SelectFile();
}
void MyFileChooser::UpdateBrowser() {
const char * selection = Choice();
int illegal = 0;
char * foundDot = strchr( selection, '.' );
if( ( foundDot == selection ||
( foundDot > selection && *( foundDot - 1 ) == '/' ) ||
( foundDot > selection && *( foundDot + 1 ) == '.' ) ||
( selection[0] == '/' ) ||
( selection[0] == '~' )
) &&
restrict
) {
illegal = 1;
}
if( !illegal ) {
browser()->SetDirectory( selection );
} else {
_sedit->Message( "" );
cerr << "\007***ERROR*** Choice is restricted... Will not accept it.\n";
}
// browser()->SetDirectory(Choice());
}
boolean MyFileChooser::Accept() {
boolean accepted, dirSelected;
do {
accepted = StringChooser::Accept();
dirSelected = browser()->IsADirectory( Choice() );
} while( accepted && dirSelected );
return accepted;
}
static void ChangeMsg( const char * name, MarginFrame * frame ) {
Interactor * msg;
if( *name == '\0' ) {
msg = new VGlue( 0, 0 );
} else {
msg = new Message( name );
}
frame->Insert( msg );
frame->Change( msg );
}
void MyFileChooser::SetTitle( const char * name ) {
ChangeMsg( name, title );
}
void MyFileChooser::SetSubtitle( const char * name ) {
ChangeMsg( name, subtitle );
}
Interactor * MyFileChooser::AddScroller( Interactor * i ) {
return new HBox(
new MarginFrame( i, 2 ),
new VBorder,
new VBox(
new UpMover( i, 1 ),
new HBorder,
new VScroller( i ),
new HBorder,
new DownMover( i, 1 )
)
);
}
Interactor * MyFileChooser::Interior( const char * acptLbl ) {
const int space = round( .5 * cm );
VBox * titleblock = new VBox(
new HBox( title, new HGlue ),
new HBox( subtitle, new HGlue )
);
addButsArea = new MyMonoScene;
// addButsArea = new Scene;
VGlue * vg = new VGlue( space, 0 );
addButsArea->Insert( vg );
return new MarginFrame(
new VBox(
titleblock,
new VGlue( space, 0 ),
new Frame( new MarginFrame( _sedit, 2 ) ),
new VGlue( space, 0 ),
new Frame( AddScroller( browser() ) ),
new VGlue( space, 0 ),
new HBox(
addButsArea,
new HGlue,
new PushButton( "Cancel", state, '\007' ),
new HGlue( space, 0 ),
new PushButton( acptLbl, state, '\r' )
)
), space, space / 2, 0
);
}
#include <IV-2_6/_leave.h>
-97
View File
@@ -1,97 +0,0 @@
/*
* Copyright (c) 1987, 1988, 1989 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* MyFileChooser - a StringChooser for choosing files from a directory.
*/
#ifndef myfilechooser_h
#define myfilechooser_h
#include <IV-2_6/InterViews/strchooser.h>
#include <IV-2_6/InterViews/scene.h>
#include <IV-2_6/_enter.h>
class Button;
class MyFileBrowser;
class MarginFrame;
// I created this class so that I can create a Monoscene since the constructor
// is protected for MonoScene.
class MyMonoScene : public MonoScene
{
public:
MyMonoScene() { }
};
class MyFileChooser : public StringChooser {
public:
MyFileChooser(
const char* Title = "Please select a file:",
const char* Subtitle = "",
const char* dir = "~",
int rows = 10, int cols = 24,
const char* acceptLabel = " Open ",
Alignment a = Center,
int restrictBool = 0
);
MyFileChooser(
const char* name, const char* Title, const char* Subtitle,
const char* dir, int rows, int cols, const char* acceptLabel,
Alignment a, int restrictBool = 0
);
void SetTitle(const char*);
void SetSubtitle(const char*);
void SelectFile();
virtual boolean Accept();
void Restrict(int boolvar);
int Restrict() {
return restrict;
}
void UpdateDir();
protected:
MyFileChooser(ButtonState*, Alignment = Center);
MyFileChooser(ButtonState*, const char* dir, int rows, int cols,Alignment);
void Init(const char*, const char*);
virtual Interactor* Interior(const char* acptlbl);
Interactor* AddScroller(Interactor*);
MyFileBrowser* browser();
virtual void UpdateEditor();
virtual void UpdateBrowser();
protected:
MarginFrame* title, *subtitle;
int restrict;
// Scene *addButsArea;
MyMonoScene *addButsArea;
};
inline MyFileBrowser* MyFileChooser::browser () { return (MyFileBrowser*) _browser; }
#include <IV-2_6/_leave.h>
#endif
-383
View File
@@ -1,383 +0,0 @@
/*
* Copyright (c) 1987, 1988, 1989 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* Implementation of common menus.
*/
#include <InterViews/event.h>
#include <InterViews/pattern.h>
#include <InterViews/window.h>
#include <IV-2_6/InterViews/box.h>
#include <IV-2_6/InterViews/frame.h>
#include <IV-2_6/InterViews/glue.h>
//#include <IV-2_6/InterViews/menu.h>
#include <IV-2_6/InterViews/message.h>
#include <IV-2_6/InterViews/painter.h>
#include <IV-2_6/InterViews/shape.h>
#include <IV-2_6/InterViews/world.h>
#include <OS/math.h>
#include <stdlib.h>
#include <mymenu.h>
#include <IV-2_6/_enter.h>
/** class MyMenuItem **/
MyMenuItem::MyMenuItem( Interactor * i ) : MyControl( i ) {
Init();
}
MyMenuItem::MyMenuItem( const char * name, Interactor * i ) : MyControl( name, i ) {
Init();
}
MyMenuItem::MyMenuItem(
const char * str, Alignment al )
: MyControl( new Message( str, al, 2, hfil, 0 ) )
// : MyControl(str, new Message(str, al, 2, hfil, 0))
{
Init();
}
MyMenuItem::MyMenuItem(
const char * name,
const char * str, Alignment al )
: MyControl( name, new Message( str, al, 2, hfil, 0 ) ) {
Init();
}
MyMenuItem::~MyMenuItem() { }
void MyMenuItem::Init() {
SetClassName( "MyMenuItem" );
}
void MyMenuItem::Busy() {
RootControl()->Highlight( true );
}
void MyMenuItem::Done() {
RootControl()->Highlight( false );
}
/** class MyMenuShadow **/
class MyMenuShadow : public MonoScene {
public:
static Pattern * halftone;
int depth_;
MyMenuShadow( Interactor *, int depth = 4 );
virtual ~MyMenuShadow();
virtual void Reconfig();
virtual void Resize();
virtual void Redraw( IntCoord, IntCoord, IntCoord, IntCoord );
};
Pattern * MyMenuShadow::halftone;
MyMenuShadow::MyMenuShadow( Interactor * i, int d ) {
SetClassName( "MyMenuShadow" );
depth_ = d;
if( halftone == nil ) {
halftone = new Pattern( Pattern::gray );
halftone->ref();
}
if( i != nil ) {
Insert( new Frame( i ) );
}
}
MyMenuShadow::~MyMenuShadow() { }
void MyMenuShadow::Reconfig() {
MonoScene::Reconfig();
const char * d = GetAttribute( "depth" );
if( d != nil ) {
depth_ = atoi( d );
}
shape->width += depth_;
shape->height += depth_;
}
void MyMenuShadow::Resize() {
// if (component != nil) {
if( interior() != nil ) {
// Place(component, 0, depth_, xmax - depth_, ymax);
Place( interior(), 0, depth_, xmax - depth_, ymax );
}
}
void MyMenuShadow::Redraw( IntCoord x1, IntCoord y1, IntCoord x2, IntCoord y2 ) {
if( x2 >= depth_ && y1 <= ymax - depth_ ) {
const Pattern * p = output->GetPattern();
Resource::ref( p );
boolean b = output->BgFilled();
output->SetPattern( halftone );
output->FillBg( false );
IntCoord left = Math::max( x1, depth_ );
IntCoord top = Math::min( y2, ymax - depth_ );
output->FillRect( canvas, left, y1, x2, top );
output->FillBg( b );
output->SetPattern( p );
Resource::unref( p );
}
}
/** class MyMenu **/
MyMenu::MyMenu( Interactor * i ) : MyControl( i ) {
Init();
}
MyMenu::MyMenu( const char * name, Interactor * i ) : MyControl( name, i ) {
Init();
}
void MyMenu::Init() {
SetClassName( "MyMenu" );
state_ = new MyControlState;
state_->Reference();
scene_ = new VBox;
body_ = new MyMenuShadow( scene_ );
depth_ = 3;
align_ = BottomLeft;
world_ = nil;
rel_x_ = 0;
rel_y_ = 0;
ins_x_ = 0;
ins_y_ = 0;
}
MyMenu::~MyMenu() {
delete body_;
Unref( state_ );
}
void MyMenu::SetBody( Interactor * i ) {
body_ = i;
}
void MyMenu::SetAlign( Alignment a ) {
align_ = a;
}
void MyMenu::SetDepth( int d ) {
depth_ = d;
}
void MyMenu::SetBodyState( MyControlState * s ) {
Unref( state_ );
state_ = s;
s->Reference();
}
void MyMenu::SetScene( Scene * s ) {
delete body_;
scene_ = s;
body_ = nil;
for( Scene * p = scene_; p != nil; p = p->Parent() ) {
body_ = p;
}
/*
if (scene_ != nil) {
delete scene_;
}
scene_ = s;
body_ = scene_->Root();
*/
}
void MyMenu::Include( MyControl * c ) {
/*
scene_->Insert(c);
if (scene_ == nil) {
scene_ = new VBox;
body_ = new MyMenuShadow(scene_);
}
*/
scene_->Insert( c );
c->SetState( GetBodyState() );
Reparent( c, this );
}
void MyMenu::Reconfig() {
MyControl::Reconfig();
world_ = GetWorld();
Setup();
}
void MyMenu::Setup() {
body_->Config( world_ );
Shape * s = body_->GetShape();
rel_x_ = s->width / 2;
rel_y_ = s->height / 2;
}
void MyMenu::Popup( Event & e ) {
if( Enabled() ) {
World * w;
IntCoord wx, wy;
e.GetAbsolute( w, wx, wy );
if( w != world_ ) {
world_ = w;
Setup();
}
InsertBody( wx - rel_x_, wy - rel_y_ );
State()->Selection( this );
}
}
void MyMenu::Leave() { }
void MyMenu::Open() {
IntCoord x, y;
Align( align_, 0, 0, x, y );
GetRelative( x, y );
InsertBody( x, y - body_->GetShape()->height );
}
void MyMenu::InsertBody( IntCoord x, IntCoord y ) {
ins_x_ = x;
ins_y_ = y;
world_->InsertPopup( body_, x, y );
State()->Push( state_ );
state_->Activate();
world_->Flush();
}
void MyMenu::Close() {
if( body_->GetCanvas() != nil ) {
MyControl * action = state_->Action();
state_->Action( nil );
if( action != nil ) {
action->Align( Center, 0, 0, rel_x_, rel_y_ );
action->GetRelative( rel_x_, rel_y_, body_ );
}
}
state_->Pop();
world_->Remove( body_ );
world_->Flush();
}
/** class MyMenuBar **/
MyMenuBar::MyMenuBar() {
Init();
}
MyMenuBar::MyMenuBar( const char * name ) {
SetInstance( name );
Init();
}
void MyMenuBar::Init() {
SetClassName( "MyMenuBar" );
state_ = new MyControlState;
state_->Reference();
}
MyMenuBar::~MyMenuBar() {
Unref( state_ );
}
void MyMenuBar::Include( MyControl * c ) {
Insert( c );
c->SetState( state_ );
}
/** class MyPulldownMenu **/
MyPulldownMenu::MyPulldownMenu( Interactor * i ) : MyMenu( i ) {
Init();
}
MyPulldownMenu::MyPulldownMenu(
const char * name, Interactor * i ) : MyMenu( name, i ) {
Init();
}
MyPulldownMenu::MyPulldownMenu(
const char * str ) : MyMenu( str, new Message( str, Center, 2 ) ) {
Init();
}
MyPulldownMenu::MyPulldownMenu(
const char * name, const char * str )
: MyMenu( name, new Message( str, Center, 2 ) ) {
Init();
}
MyPulldownMenu::~MyPulldownMenu() { }
void MyPulldownMenu::Init() {
SetClassName( "MyPulldownMenu" );
SetAlign( BottomLeft );
}
/** class MyPullrightMenu **/
MyPullrightMenu::MyPullrightMenu( Interactor * i ) : MyMenu( i ) {
Init();
}
MyPullrightMenu::MyPullrightMenu(
const char * name, Interactor * i ) : MyMenu( name, i ) {
Init();
}
MyPullrightMenu::MyPullrightMenu(
const char * str ) : MyMenu( str, new Message( str, Left, 2 ) ) {
Init();
}
MyPullrightMenu::MyPullrightMenu(
const char * name, const char * str )
: MyMenu( name, new Message( str, Left, 2 ) ) {
Init();
}
MyPullrightMenu::~MyPullrightMenu() { }
void MyPullrightMenu::Init() {
SetClassName( "MyPullrightMenu" );
SetAlign( TopRight );
}
/** class PopupMenu **/
MyPopupMenu::MyPopupMenu() : MyMenu( ( Interactor * )nil ) {
Init();
}
MyPopupMenu::MyPopupMenu( const char * name ) : MyMenu( name, ( Interactor * )nil ) {
Init();
}
MyPopupMenu::~MyPopupMenu() { }
void MyPopupMenu::Init() {
SetClassName( "MyPopupMenu" );
SetState( new MyControlState );
SetAlign( Center );
}
-147
View File
@@ -1,147 +0,0 @@
/*
* Copyright (c) 1987, 1988, 1989 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* Common menus built on top of controls
*/
#ifndef mymenu_h
#define mymenu_h
#include <IV-2_6/InterViews/box.h>
#include <mycontrol.h>
#include <IV-2_6/_enter.h>
class MyMenuItem : public MyControl {
public:
MyMenuItem(Interactor*);
MyMenuItem(const char* name, Interactor*);
MyMenuItem(const char* str, Alignment = Left);
MyMenuItem(const char* name, const char* str, Alignment = Left);
virtual ~MyMenuItem();
protected:
virtual void Busy();
virtual void Done();
private:
void Init();
};
class MyMenu : public MyControl {
public:
MyMenu(Interactor*);
MyMenu(const char* name, Interactor* i);
virtual ~MyMenu();
void SetBody(Interactor*);
Interactor* GetBody() { return body_; }
void SetAlign(Alignment);
Alignment GetAlign() { return align_; }
void SetDepth(int);
int GetDepth() { return depth_; }
void SetBodyState(MyControlState*);
MyControlState* GetBodyState() { return state_; }
void SetScene(Scene*);
Scene* GetScene() { return scene_; }
virtual void Include(MyControl*);
virtual void Popup(Event&);
IntCoord InsertX() { return ins_x_; }
IntCoord InsertY() { return ins_y_; }
protected:
virtual void Leave();
virtual void Open();
virtual void Close();
virtual void Reconfig();
virtual void Setup();
virtual void InsertBody(IntCoord, IntCoord);
private:
Interactor* body_;
Scene* scene_;
MyControlState* state_;
Interactor* shadow_;
unsigned int depth_ : 16;
unsigned int align_ : 16;
class World* world_;
IntCoord ins_x_, ins_y_;
IntCoord rel_x_, rel_y_;
private:
void Init();
};
class MyMenuBar : public HBox {
public:
MyMenuBar();
MyMenuBar(const char* name);
virtual ~MyMenuBar();
virtual void Include(MyControl*);
protected:
MyControlState* state_;
private:
void Init();
};
class MyPulldownMenu : public MyMenu {
public:
MyPulldownMenu(Interactor* i);
MyPulldownMenu(const char* name, Interactor* i);
MyPulldownMenu(const char* str);
MyPulldownMenu(const char* name, const char* str);
virtual ~MyPulldownMenu();
private:
void Init();
};
class MyPullrightMenu : public MyMenu {
public:
MyPullrightMenu(Interactor* i);
MyPullrightMenu(const char* name, Interactor* i);
MyPullrightMenu(const char* str);
MyPullrightMenu(const char* name, const char* str);
virtual ~MyPullrightMenu();
private:
void Init();
};
class MyPopupMenu : public MyMenu {
public:
MyPopupMenu();
MyPopupMenu(const char*);
virtual ~MyPopupMenu();
private:
void Init();
};
#include <IV-2_6/_leave.h>
#endif
-148
View File
@@ -1,148 +0,0 @@
/*
* Copyright (c) 1987, 1988, 1989 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* MyMessage class implementation.
*
* adapted from Message by David Sauder
*/
#include <mymessage.h>
#include <InterViews/font.h>
#include <IV-2_6/InterViews/painter.h>
//#include <IV-2_6/InterViews/scene.h>
#include <IV-2_6/InterViews/shape.h>
#include <stdlib.h>
extern "C" {
#include <string.h>
}
MyMessage::MyMessage( const char * msg, Alignment al, int Pad,
int hstretch, int vstretch ) {
Init( msg, al, Pad, hstretch, vstretch );
}
MyMessage::MyMessage(
const char * name,
const char * msg, Alignment al, int Pad, int hstretch, int vstretch )
: Interactor( name ) {
Init( msg, al, Pad, hstretch, vstretch );
}
void MyMessage::Init( const char * t, Alignment a, int p, int hstr, int vstr ) {
SetClassName( "MyMessage" );
textLen = strlen( t ) + 1;
text = new char[textLen];
strcpy( text, t );
textReturned = new char[textLen];
strcpy( textReturned, t );
alignment = a;
pad = p;
shape->hstretch = hstr;
shape->vstretch = vstr;
highlighted = false;
}
MyMessage::~MyMessage() {
delete text;
}
void MyMessage::Reconfig() {
const char * a = GetAttribute( "text" );
if( a != nil ) {
delete text;
text = new char[strlen( a ) + 1];
strcpy( text, a );
}
a = GetAttribute( "padding" );
if( a != nil ) {
pad = atoi( a );
}
const Font * f = output->GetFont();
shape->width = pad + f->Width( text ) + pad;
shape->height = pad + f->Height() + pad;
shape->hshrink = pad + pad;
shape->vshrink = pad + pad;
}
void MyMessage::Realign( Alignment a ) {
alignment = a;
Draw();
}
void MyMessage::Redraw( IntCoord l, IntCoord b, IntCoord r, IntCoord t ) {
IntCoord x = 0, y = 0;
Align( alignment, shape->width, shape->height, x, y );
output->Clip( canvas, l, b, r, t );
if( highlighted ) {
output->SetColors( output->GetBgColor(), output->GetFgColor() );
}
output->ClearRect( canvas, l, b, r, t );
output->Text( canvas, text, x + pad, y + pad );
if( highlighted ) {
output->SetColors( output->GetBgColor(), output->GetFgColor() );
}
output->NoClip();
}
void MyMessage::Highlight( boolean b ) {
if( highlighted != b ) {
highlighted = b;
Draw();
}
}
void MyMessage::NewMessage( char * t ) {
IntCoord x = 0, y = 0;
/*
int len_t = strlen(t);
int len_text = strlen(text);
if(len_t > len_text){
delete text;
text = new char[len_t + 1];
strcpy(text, t);
} else {
strcpy(text, t);
for(i = len_t - 1; i < len_text; i++)
text[i] = ' ';
}
*/
strncpy( text, t, textLen );
text[textLen - 1] = '\0';
strncpy( textReturned, t, textLen );
textReturned[textLen - 1] = '\0';
output->Text( canvas, text, x + pad, y + pad );
Draw();
}
char * MyMessage::Text() {
return textReturned;
}
-71
View File
@@ -1,71 +0,0 @@
/*
* Copyright (c) 1987, 1988, 1989 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* MyMessage - display a string of text (fixed size)
*
* adapted from Message by David Sauder
*/
#ifndef MyMessage_h
#define MyMessage_h
#define iv2_6_compatible
#include <IV-2_6/InterViews/interactor.h>
#include <IV-2_6/_enter.h>
class MyMessage : public Interactor {
public:
MyMessage(
const char* msg, Alignment al = Center, int Pad = 0,
int hstretch = 0, int vstretch = 0
);
MyMessage(
const char* name,
const char* msg, Alignment al = Center, int Pad = 0,
int hstretch = 0, int vstretch = 0
);
virtual ~MyMessage();
virtual void Highlight(boolean);
virtual void Realign(Alignment);
void NewMessage (char* t);
char* Text ();
protected:
char* text;
char* textReturned;
Alignment alignment : 16;
unsigned pad : 15;
boolean highlighted : 1;
virtual void Reconfig();
virtual void Redraw(IntCoord, IntCoord, IntCoord, IntCoord);
int textLen;
private:
void Init(const char*, Alignment, int p, int hstretch, int vstretch);
};
#include <IV-2_6/_leave.h>
#endif
-161
View File
@@ -1,161 +0,0 @@
/*
* Copyright (c) 1987, 1988, 1989 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* MyMessage class implementation.
*
* adapted from Message by David Sauder
*/
#include <mymessage2.h>
#include <InterViews/font.h>
#include <IV-2_6/InterViews/painter.h>
#include <IV-2_6/InterViews/scene.h>
#include <IV-2_6/InterViews/shape.h>
#include <stdlib.h>
extern "C" {
#include <string.h>
}
MyMessage2::MyMessage2( const char * msg, Alignment al, int pad_,
int hstretch, int vstretch ) {
Init( msg, al, pad_, hstretch, vstretch );
}
MyMessage2::MyMessage2(
const char * name,
const char * msg, Alignment al, int Pad, int hstretch, int vstretch )
: Interactor( name ) {
Init( msg, al, Pad, hstretch, vstretch );
}
void MyMessage2::Init( const char * t, Alignment a, int p, int hstr, int vstr ) {
SetClassName( "MyMessage2" );
textLen = strlen( t ) + 1;
text = new char[textLen];
strcpy( text, t );
textReturned = new char[textLen];
strcpy( textReturned, t );
alignment = a;
pad = p;
shape->hstretch = hstr;
shape->vstretch = vstr;
highlighted = false;
}
MyMessage2::~MyMessage2() {
delete text;
}
void MyMessage2::Reconfig() {
const char * a = GetAttribute( "text" );
if( a != nil ) {
delete text;
text = new char[strlen( a ) + 1];
strcpy( text, a );
}
a = GetAttribute( "padding" );
if( a != nil ) {
pad = atoi( a );
}
const Font * f = output->GetFont();
shape->width = pad + f->Width( text ) + pad;
shape->height = pad + f->Height() + pad;
shape->hshrink = pad + pad;
shape->vshrink = pad + pad;
}
void MyMessage2::Realign( Alignment a ) {
alignment = a;
Draw();
}
void MyMessage2::Redraw( IntCoord l, IntCoord b, IntCoord r, IntCoord t ) {
IntCoord x = 0, y = 0;
Align( alignment, shape->width, shape->height, x, y );
output->Clip( canvas, l, b, r, t );
if( highlighted ) {
output->SetColors( output->GetBgColor(), output->GetFgColor() );
}
output->ClearRect( canvas, l, b, r, t );
output->Text( canvas, text, x + pad, y + pad );
if( highlighted ) {
output->SetColors( output->GetBgColor(), output->GetFgColor() );
}
output->NoClip();
}
void MyMessage2::Highlight( boolean b ) {
if( highlighted != b ) {
highlighted = b;
Draw();
}
}
void MyMessage2::NewMessage( char * t ) {
IntCoord x = 0, y = 0;
/*
int len_t = strlen(t);
int len_text = strlen(text);
if(len_t > len_text){
delete text;
text = new char[len_t + 1];
strcpy(text, t);
} else {
strcpy(text, t);
for(i = len_t - 1; i < len_text; i++)
text[i] = ' ';
}
*/
int bigger = 0;
if( strlen( t ) > strlen( text ) ) {
delete text;
textLen = strlen( t ) + 1;
text = new char[textLen];
bigger = 1;
}
strncpy( text, t, textLen );
text[textLen - 1] = '\0';
strncpy( textReturned, t, textLen );
textReturned[textLen - 1] = '\0';
if( bigger ) {
Reconfig();
}
output->Text( canvas, text, x + pad, y + pad );
if( bigger ) {
Draw();
Parent()->Change();
}
}
char * MyMessage2::Text() {
return textReturned;
}
-72
View File
@@ -1,72 +0,0 @@
/*
* Copyright (c) 1987, 1988, 1989 Stanford University
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation, and that the name of Stanford not be used in advertising or
* publicity pertaining to distribution of the software without specific,
* written prior permission. Stanford makes no representations about
* the suitability of this software for any purpose. It is provided "as is"
* without express or implied warranty.
*
* STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
* IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* MyMessage2 - display a string of text (resizable)
*
* adapted from Message by David Sauder
*/
#ifndef MyMessage2_h
#define MyMessage2_h
#define iv2_6_compatible
#include <IV-2_6/InterViews/interactor.h>
#include <IV-2_6/_enter.h>
class MyMessage2 : public Interactor {
public:
MyMessage2(
const char* msg, Alignment al = Center, int pad = 0,
int hstretch = 0, int vstretch = 0
);
MyMessage2(
const char* name,
const char* msg, Alignment al = Center, int pad = 0,
int hstretch = 0, int vstretch = 0
);
virtual ~MyMessage2();
virtual void Highlight(boolean);
virtual void Realign(Alignment);
void NewMessage (char* t);
char* Text ();
protected:
char* text;
char* textReturned;
Alignment alignment : 16;
unsigned pad : 15;
boolean highlighted : 1;
virtual void Reconfig();
virtual void Redraw(IntCoord, IntCoord, IntCoord, IntCoord);
int textLen;
private:
void Init(const char*, Alignment, int pad, int hstretch, int vstretch);
};
#include <IV-2_6/_leave.h>
#endif

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