Compare commits

..
652 changed files with 501547 additions and 346655 deletions
-277
View File
@@ -1,277 +0,0 @@
name: STEPCODE
on:
workflow_dispatch:
pull_request:
jobs:
windows:
name: Windows Latest MSVC
runs-on: windows-latest
strategy:
fail-fast: true
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Setup - Ninja
uses: seanmiddleditch/gha-setup-ninja@master
- name: Checkout
uses: actions/checkout@v2
- name: Add github workspace to path
# https://github.community/t/deprecated-add-path/136621
run: echo "$ENV{GITHUB_WORKSPACE}" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.2
- name: Add cl.exe to PATH
uses: ilammy/msvc-dev-cmd@v1
- name: Configure
run: |
cmake -S . -B build -G Ninja -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" -DSC_ENABLE_TESTING=ON
# We do the following in order to help ensure files are "flushed"
# to disk before compilation is attempted
# https://superuser.com/a/1553374/1286142
powershell Write-VolumeCache C
powershell Write-VolumeCache D
- name: Build
run: cd build && ninja -j1 -v
- name: Test
run: |
cd build && ctest -j1 .
linux:
name: Ubuntu Latest GCC
runs-on: ubuntu-20.04
strategy:
fail-fast: true
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Setup - Ninja
uses: seanmiddleditch/gha-setup-ninja@master
# TODO - we will want this when the new parser work comes in,
# as we won't need perplex and the system tools should suffice
# to exercise the generator logic:
#
# - name: Setup - System
# env:
# DEBIAN_FRONTEND: noninteractive
# run: |
# sudo apt-get update
# # Install dev tools
# sudo apt-get install re2c lemon
# sudo apt-get clean
- name: Checkout
uses: actions/checkout@v2
- name: Configure
run: |
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
cmake -S . -G Ninja -B build -D ENABLE_ALL=ON -D CMAKE_BUILD_TYPE=Release -DSC_ENABLE_TESTING=ON
- name: Build
run: |
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
cmake --build build --config Release
- name: Test
run: |
cd build && ctest -j1 . -C Release
linux_clang:
name: Ubuntu Latest Clang
runs-on: ubuntu-20.04
strategy:
fail-fast: true
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Setup - Ninja
uses: seanmiddleditch/gha-setup-ninja@master
# TODO - we will want this when the new parser work comes in,
# as we won't need perplex and the system tools should suffice
# to exercise the generator logic:
#
# - name: Setup - System
# env:
# DEBIAN_FRONTEND: noninteractive
# run: |
# sudo apt-get update
# # Install dev tools
# sudo apt-get install re2c lemon
# sudo apt-get clean
- name: Checkout
uses: actions/checkout@v2
- name: Configure
run: |
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
CC=clang CXX=clang++ cmake -S . -G Ninja -B build -D ENABLE_ALL=ON -D CMAKE_BUILD_TYPE=Release -DSC_ENABLE_TESTING=ON
- name: Build
run: |
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
CC=clang CXX=clang++ cmake --build build --config Release
- name: Test
run: |
cd build && ctest -j1 . -C Release
osx:
name: macOS Latest Clang
runs-on: macos-latest
strategy:
fail-fast: true
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Setup - Ninja
uses: seanmiddleditch/gha-setup-ninja@master
- name: Checkout
uses: actions/checkout@v2
- name: Configure
run: |
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
export CC=clang
export CXX=clang++
cmake -S . -G Ninja -B build -D CMAKE_BUILD_TYPE=Release -DSC_ENABLE_TESTING=ON
- name: Build
run: |
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
cd build && ninja -j1
- name: Test
run: |
cd build && ctest -j1 . -C Release
brlcad_linux:
name: BRL-CAD Linux step-g Test
runs-on: ubuntu-20.04
strategy:
fail-fast: true
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Setup - Ninja
uses: seanmiddleditch/gha-setup-ninja@master
- name: Setup - System
env:
DEBIAN_FRONTEND: noninteractive
run: |
sudo apt-get update
# Install dev tools
sudo apt-get install re2c lemon
sudo apt-get clean
- name: Checkout
run: |
git clone --depth 1 https://github.com/BRL-CAD/brlcad.git -b main
cd brlcad/src/other/ext && rm -rf stepcode
git clone --depth 1 https://github.com/stepcode/stepcode.git -b develop
# Ordinarily BRL-CAD keeps track of what files are supposed to be
# present in the repository. In this case we're not interested in
# updating the list to the working stepcode filelist, so use an empty
# list instead
echo "set(stepcode_ignore_files)" > stepcode.dist
cd ../../../../
- name: Configure
run: |
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
cd brlcad
cmake -S . -G Ninja -B build -DENABLE_ALL=ON -DCMAKE_BUILD_TYPE=Release -DEXT_BUILD_VERBOSE=ON
cd ..
- name: Build
run: |
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
cd brlcad
cmake --build build --config Release --target step-g
cd ..
- name: Test
run: |
export PATH=$ENV{GITHUB_WORKSPACE}:$PATH
cd brlcad/build
./bin/step-g ../db/nist/NIST_MBE_PMI_3.stp -o nist3.g
cd ../..
brlcad_windows:
name: BRL-CAD Windows step-g Test
runs-on: windows-latest
strategy:
fail-fast: true
steps:
- name: Setup - CMake
uses: lukka/get-cmake@latest
- name: Setup - Ninja
uses: seanmiddleditch/gha-setup-ninja@master
- name: Add github workspace to path
# https://github.community/t/deprecated-add-path/136621
run: echo "$ENV{GITHUB_WORKSPACE}" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.2
- name: Add cl.exe to PATH
uses: ilammy/msvc-dev-cmd@v1
- name: Checkout
run: |
git clone --depth 1 https://github.com/BRL-CAD/brlcad.git -b main
cd brlcad/src/other/ext
cmake -E rm -r stepcode
git clone --depth 1 https://github.com/stepcode/stepcode.git -b develop
# Ordinarily BRL-CAD keeps track of what files are supposed to be
# present in the repository. In this case we're not interested in
# updating the list to the working stepcode filelist, so use an empty
# list instead
echo "set(stepcode_ignore_files)" > stepcode.dist
cd ../../../../
- name: Configure
run: |
cd brlcad && cmake -S . -B build -G Ninja -DCMAKE_C_COMPILER="cl.exe" -DCMAKE_CXX_COMPILER="cl.exe" -DSC_ENABLE_TESTING=ON
cd ..
# We do the following in order to help ensure files are "flushed"
# to disk before compilation is attempted
# https://superuser.com/a/1553374/1286142
powershell Write-VolumeCache C
powershell Write-VolumeCache D
- name: Build
run: |
cd brlcad/build
ninja -j1 -v step-g
cd ../..
- name: Test
run: |
cd brlcad/build
./bin/step-g.exe ../db/nist/NIST_MBE_PMI_3.stp -o nist3.g
cd ../..
-21
View File
@@ -1,21 +0,0 @@
# Common build directories used in the source tree
/build
/.build
# Temporary files
*~
\#*\#
.\#*
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-v][a-z]
[._]sw[a-p]
**/__pycache__/
# OS specific files
.DS_Store
.DS_Store?
# Tool specific patterns
*.kdev4
.kdev_include_paths
-10
View File
@@ -5,30 +5,20 @@ http://brlcad.svn.sourceforge.net/viewvc/brlcad/brlcad/trunk/src/other/step/?vie
In alphabetical order:
Bertucat, Roch (rbertucat)
Bowman, W. Keith (indianlarry)
da Costa, Raphael Kubo (rakuco)
DeGraw, Jason (jasondegraw)
Easterbrook, Zach (lainiwakurax)
Greenwald, Erik (erikg, erikgreenwald)
Horler, Chris (cshorler)
Lanning, Craig (craigl64)
Loman, David (davidloman)
McDonald, Rob (ramcdona)
Mittal, Pulkit (hoiji09)
Morrison, Christopher Sean (sean, morrison, brlcad)
Paviot, Thomas (tpaviot)
Pictor, Mark (mpictor)
Reed, Nick (nickreed)
Shah, Kesha (kesha, keshashah)
Sparks, Devon (devonsparks)
Thomas, Dawn (homovulgaris, madant)
Wouters, Dave (davyw)
Yapp, Clifford (starseeker)
Special thanks:
Hunten, Keith (Lockheed Martin)
Lubbell, Joshua (NIST)
Stirk, Charlie (CostVision)
Thurman, Tom (TRThurman)
Between 2005 and 2006, Stefan Richter worked to make SCL compatible with
modern ANSI/ISO C++, and modified the build system. His patches are at
+273 -142
View File
@@ -1,6 +1,6 @@
# C M A K E L I S T S . T X T F O R S T E P C O D E
# C M A K E L I S T S . T X T F O R S C L
#
# This file is Copyright (c) 2010 United States Government as
# This file is Copyright (c) 2010 United States Government as
# represented by the U.S. Army Research Laboratory.
#
# Redistribution and use in source and binary forms, with or without
@@ -32,48 +32,109 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# *******************************************************************
# *** STEPcode's CMakeLists.txt ***
# *** SCL's CMakeLists.txt ***
# *******************************************************************
# This file contains the top level CMakeLists.txt logic for the
# STEPcode software package.
# This file contains the top level CMakeLists.txt logic for the
# SCL software package.
project(SC)
PROJECT(SCL)
# SCL version
SET(SCL_VERSION_MAJOR 0)
SET(SCL_VERSION_MINOR 5-dev)
SET(SCL_VERSION ${SCL_VERSION_MAJOR}.${SCL_VERSION_MINOR})
# SCL ABI version. SCL_ABI_SOVERSION should be incremented
# for each release introducing API incompatibilities
SET(SCL_ABI_SOVERSION 2)
SET(SCL_ABI_VERSION ${SCL_ABI_SOVERSION}.0.0)
# Minimum required version of CMake
cmake_minimum_required(VERSION 3.12)
if (POLICY CMP0077)
cmake_policy(SET CMP0077 OLD)
endif (POLICY CMP0077)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
IF(COMMAND CMAKE_POLICY)
CMAKE_POLICY(SET CMP0003 NEW)
ENDIF(COMMAND CMAKE_POLICY)
# SC version
set(SC_VERSION_MAJOR 0)
set(SC_VERSION_MINOR 9)
set(SC_VERSION_PATCH 1)
set(SC_VERSION ${SC_VERSION_MAJOR}.${SC_VERSION_MINOR}.${SC_VERSION_PATCH})
IF( NOT DEFINED SCL_BUILD_TYPE )
SET( SCL_BUILD_TYPE "Debug" CACHE STRING "Build type" ) # By default set debug build
ENDIF( NOT DEFINED SCL_BUILD_TYPE )
IF(NOT SCL_IS_SUBBUILD)
SET(CMAKE_BUILD_TYPE ${SCL_BUILD_TYPE} CACHE INTERNAL "Build type, immutable" FORCE )
ELSE(NOT SCL_IS_SUBBUILD)
SET(CMAKE_BUILD_TYPE ${SCL_BUILD_TYPE} )
ENDIF(NOT SCL_IS_SUBBUILD)
# Set language standards
set(CMAKE_C_EXTENSIONS OFF)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Define helper macro OPTION_WITH_DEFAULT
MACRO( OPTION_WITH_DEFAULT OPTION_NAME OPTION_STRING OPTION_DEFAULT )
IF( NOT DEFINED ${OPTION_NAME} )
SET( ${OPTION_NAME} ${OPTION_DEFAULT} )
ENDIF( NOT DEFINED ${OPTION_NAME} )
OPTION( ${OPTION_NAME} "${OPTION_STRING}" ${${OPTION_NAME}} )
ENDMACRO( OPTION_WITH_DEFAULT OPTION_NAME OPTION_STRING OPTION_DEFAULT )
# build shared libs by default
OPTION_WITH_DEFAULT(SCL_BUILD_SHARED_LIBS "Build shared libs" ON )
# don't build static libs by default
OPTION_WITH_DEFAULT(SCL_BUILD_STATIC_LIBS "Build static libs" OFF)
OPTION_WITH_DEFAULT(SCL_PYTHON_GENERATOR "Compile fedex_python" ON)
OPTION_WITH_DEFAULT(SCL_CPP_GENERATOR "Compile fedex_plus" ON)
OPTION_WITH_DEFAULT(SCL_MEMMGR_ENABLE_CHECKS "Enable scl_memmgr's memory leak detection" OFF)
OPTION_WITH_DEFAULT(SCL_TRACE_FPRINTF "Enable extra comments in generated code so the code's source in fedex_plus may be located" OFF)
# CMake derives much of its functionality from modules, typically
# stored in one directory - let CMake know where to find them.
set(SC_CMAKE_DIR "${SC_SOURCE_DIR}/cmake")
list(APPEND CMAKE_MODULE_PATH "${SC_CMAKE_DIR}")
SET(SCL_CMAKE_DIR "${SCL_SOURCE_DIR}/cmake")
if(NOT IS_SUBBUILD)
SET(CMAKE_MODULE_PATH "${SCL_CMAKE_DIR};${CMAKE_MODULE_PATH}")
else(NOT IS_SUBBUILD)
SET(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${SCL_CMAKE_DIR}")
endif(NOT IS_SUBBUILD)
# OpenBSD has its own naming conventions. Set a platform variable based on
# the OS name so we can test for it succinctly.
if ("${CMAKE_SYSTEM}" MATCHES ".*OpenBSD.*")
set(OPENBSD ON)
endif ("${CMAKE_SYSTEM}" MATCHES ".*OpenBSD.*")
INCLUDE(${SCL_CMAKE_DIR}/SCL_Utils.cmake)
# Save the current LC_ALL, LC_MESSAGES, and LANG environment variables and set them
# to "C" so things like date output are as expected
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)
ENDIF(_orig_lc_all)
IF(_orig_lc_messages)
SET(ENV{LC_MESSAGES} C)
ENDIF(_orig_lc_messages)
IF(_orig_lang)
SET(ENV{LANG} C)
ENDIF(_orig_lang)
#---------------------------------------------------------------------
# Set up various relative path variables and build output directories
include(Path_Setup)
# Testing option
OPTION_WITH_DEFAULT( SCL_ENABLE_TESTING "Enable unittesting framework" OFF )
IF(SCL_ENABLE_TESTING)
if( NOT DEFINED SCL_BUILD_SCHEMAS )
set( SCL_BUILD_SCHEMAS "ALL" ) #test all schemas, unless otherwise specified
endif()
INCLUDE(CTest)
ENABLE_TESTING()
ENDIF(SCL_ENABLE_TESTING)
#---------------------------------------------------------------------
# Coverage option
OPTION_WITH_DEFAULT( SCL_ENABLE_COVERAGE "Enable code coverage test" OFF )
IF(SCL_ENABLE_COVERAGE)
SET(SCL_ENABLE_TESTING ON CACHE BOOL "Testing enabled by coverage option" FORCE)
# build static libs, better coverage report
SET(SCL_BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libs" FORCE )
SET(SCL_BUILD_STATIC_LIBS ON CACHE BOOL "Build static libs" FORCE )
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -fprofile-arcs -ftest-coverage" CACHE STRING "Extra compile flags required by code coverage" FORCE)
SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -fprofile-arcs -ftest-coverage" CACHE STRING "Extra compile flags required by code coverage" FORCE)
SET(CMAKE_MODULE_LINKER_FLAGS_DEBUG "-fprofile-arcs -ftest-coverage" CACHE STRING "Extra linker flags required by code coverage" FORCE)
SET(SCL_BUILD_TYPE "Debug" CACHE STRING "Build type required by testing framework" FORCE)
ENDIF(SCL_ENABLE_COVERAGE)
#---------------------------------------------------------------------
# The following logic is what allows binaries to run successfully in
@@ -83,151 +144,221 @@ include(Path_Setup)
# http://www.cmake.org/Wiki/CMake_RPATH_handling
# use, i.e. don't skip the full RPATH for the build tree
if(NOT DEFINED CMAKE_SKIP_BUILD_RPATH)
set(CMAKE_SKIP_BUILD_RPATH FALSE)
endif()
set(CMAKE_SKIP_BUILD_RPATH FALSE)
# when building, don't use the install RPATH already
# (but later on when installing)
if(NOT DEFINED CMAKE_BUILD_WITH_INSTALL_RPATH)
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
endif()
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
# the RPATH/INSTALL_NAME_DIR to be used when installing
if (NOT APPLE)
if(NOT DEFINED CMAKE_INSTALL_RPATH)
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib:\$ORIGIN/../lib")
endif()
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib:\$ORIGIN/../lib")
endif(NOT APPLE)
# On OSX, we need to set INSTALL_NAME_DIR instead of RPATH
# http://www.cmake.org/cmake/help/cmake-2-8-docs.html#variable:CMAKE_INSTALL_NAME_DIR
if(NOT DEFINED CMAKE_INSTALL_NAME_DIR)
set(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
endif()
set(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
# add the automatically determined parts of the RPATH which point to
# directories outside the build tree to the install RPATH
if(NOT DEFINED CMAKE_INSTALL_RPATH_USE_LINK_PATH)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
endif()
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
#-----------------------------------------------------------------------------
# Output directories.
IF(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${SCL_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
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.")
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.")
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}")
SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SCL_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
ENDIF(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}")
IF(NOT "CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}")
SET("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}" ${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()
#---------------------------------------------------------------------
# Build options
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
option(BUILD_STATIC_LIBS "Build static libraries" OFF)
#-----------------------------------------------------------------------------
# Configure install locations.
option(SC_PYTHON_GENERATOR "Compile exp2python" ON)
option(SC_CPP_GENERATOR "Compile exp2cxx" ON)
# The location in which to install SCL. Need a good Debug location
# 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(NOT SCL_IS_SUBBUILD)
IF(NOT WIN32)
IF (${CMAKE_BUILD_TYPE} MATCHES "Debug")
SET(SCL_INSTALL_PREFIX "${SCL_SOURCE_DIR}/../scl-install")
ELSE()
SET(SCL_INSTALL_PREFIX "/usr/local")
ENDIF()
ENDIF(NOT WIN32)
SET( SCL_INSTALL_PREFIX ${SCL_INSTALL_PREFIX} CACHE
PATH "Install prefix prepended to target to create install location" )
SET( CMAKE_INSTALL_PREFIX ${SCL_INSTALL_PREFIX} CACHE INTERNAL "Prefix prepended to install directories if target destination is not absolute, immutable" FORCE )
endif(NOT SCL_IS_SUBBUILD)
option(SC_TRACE_FPRINTF "Enable extra comments in generated code so the code's source in exp2cxx may be located" OFF)
OPTION(SCL_BUILD_EXPRESS_ONLY "Only build express parser." OFF)
MARK_AS_ADVANCED(SCL_BUILD_EXPRESS_ONLY)
option(SC_ENABLE_COVERAGE "Enable code coverage test" OFF)
if (SC_ENABLE_COVERAGE AND ${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
set(CMAKE_C_FLAGS_DEBUG "-O0 -g -fprofile-arcs -ftest-coverage" CACHE STRING "Extra compile flags required by code coverage" FORCE)
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -fprofile-arcs -ftest-coverage" CACHE STRING "Extra compile flags required by code coverage" FORCE)
set(CMAKE_MODULE_LINKER_FLAGS_DEBUG "-fprofile-arcs -ftest-coverage" CACHE STRING "Extra linker flags required by code coverage" FORCE)
endif (SC_ENABLE_COVERAGE AND ${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
# Take the scl config file template as the starting point for
# scl_cf.h.in - scripts may need to append to the template, so
# it is read into memory initially.
SET(CONFIG_H_FILE ${SCL_BINARY_DIR}/include/scl_cf.h.in)
set(CMAKE_CURRENT_PROJECT SCL)
define_property(GLOBAL PROPERTY SCL_CONFIG_H_CONTENTS BRIEF_DOCS "config.h.in contents" FULL_DOCS "config.h.in contents for SCL project")
if(NOT COMMAND CONFIG_H_APPEND)
macro(CONFIG_H_APPEND PROJECT_NAME NEW_CONTENTS)
if(PROJECT_NAME)
get_property(${PROJECT_NAME}_CONFIG_H_CONTENTS GLOBAL PROPERTY ${PROJECT_NAME}_CONFIG_H_CONTENTS)
set(${PROJECT_NAME}_CONFIG_H_FILE_CONTENTS "${${PROJECT_NAME}_CONFIG_H_CONTENTS}${NEW_CONTENTS}")
set_property(GLOBAL PROPERTY ${PROJECT_NAME}_CONFIG_H_CONTENTS "${${PROJECT_NAME}_CONFIG_H_FILE_CONTENTS}")
endif(PROJECT_NAME)
endmacro(CONFIG_H_APPEND NEW_CONTENTS)
endif(NOT COMMAND CONFIG_H_APPEND)
file(READ ${SCL_SOURCE_DIR}/include/scl_cf_cmake.h.in CONFIG_H_FILE_CONTENTS)
CONFIG_H_APPEND(SCL "${CONFIG_H_FILE_CONTENTS}")
option(SC_BUILD_EXPRESS_ONLY "Only build express parser." OFF)
mark_as_advanced(SC_BUILD_EXPRESS_ONLY)
INCLUDE(CheckLibraryExists)
INCLUDE(CheckIncludeFile)
INCLUDE(CheckFunctionExists)
INCLUDE(CheckTypeSize)
INCLUDE(CMakePushCheckState)
INCLUDE(CheckCXXSourceRuns)
INCLUDE(${SCL_CMAKE_DIR}/FindLEX.cmake)
INCLUDE(${SCL_CMAKE_DIR}/FindYACC.cmake)
option(SC_ENABLE_TESTING "Enable unittesting framework" OFF)
if(SC_ENABLE_TESTING)
if(NOT "${SC_BUILD_EXPRESS_ONLY}" AND NOT DEFINED SC_BUILD_SCHEMAS)
set(SC_BUILD_SCHEMAS "ALL") #test all schemas, unless otherwise specified
endif()
include(CTest)
endif(SC_ENABLE_TESTING)
CHECK_INCLUDE_FILE(ndir.h HAVE_NDIR_H)
CHECK_INCLUDE_FILE(stdarg.h HAVE_STDARG_H)
CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H)
CHECK_INCLUDE_FILE(sys/param.h HAVE_SYS_PARAM_H)
CHECK_INCLUDE_FILE(sysent.h HAVE_SYSENT_H)
CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
CHECK_INCLUDE_FILE(dirent.h HAVE_DIRENT_H)
CHECK_INCLUDE_FILE(stdbool.h HAVE_STDBOOL_H)
CHECK_INCLUDE_FILE(process.h HAVE_PROCESS_H)
CHECK_INCLUDE_FILE(io.h HAVE_IO_H)
# SC_ADDEXEC and SC_ADDLIB macros, dllimport/export, etc
include(SC_Targets)
CHECK_FUNCTION_EXISTS(abs HAVE_ABS)
CHECK_FUNCTION_EXISTS(memcpy HAVE_MEMCPY)
CHECK_FUNCTION_EXISTS(memmove HAVE_MEMMOVE)
CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT)
# Macros related to paths
include(SC_Paths)
CHECK_TYPE_SIZE("ssize_t" SSIZE_T)
# locale stuff
include(SC_Locale)
set( TEST_STD_THREAD "
#include <iostream>
#include <thread>
void do_work() {
std::cout << \"thread\" << std::endl;
}
int main() {
std::thread t(do_work);
t.join();
}
" )
cmake_push_check_state()
if( UNIX )
set( CMAKE_REQUIRED_FLAGS "-pthread -std=c++0x" )
else( UNIX )
# vars probably need set for MSVC11, embarcadero, etc
endif( UNIX )
CHECK_CXX_SOURCE_RUNS( "${TEST_STD_THREAD}" HAVE_STD_THREAD ) #quotes are *required*!
cmake_pop_check_state()
# logic related to regenerating the lexer and parser source code
include(SC_Regenerate)
# create config.h header
include(SC_Config_Headers)
if(NOT DEFINED SC_SDAI_ADDITIONAL_EXES_SRCS)
set(SC_SDAI_ADDITIONAL_EXES_SRCS "" CACHE STRING "Source files for additional executables to be linked with SDAI libs")
endif(NOT DEFINED SC_SDAI_ADDITIONAL_EXES_SRCS)
if(NOT "${SC_BUILD_EXPRESS_ONLY}" AND NOT DEFINED SC_BUILD_SCHEMAS)
list(APPEND CONFIG_END_MESSAGES
"** Note: CMake variable SC_BUILD_SCHEMAS was not set - defaults to building ALL schemas")
# this makes SC_BUILD_SCHEMAS show up in cmake-gui
set(SC_BUILD_SCHEMAS "ALL" CACHE STRING "Semicolon-separated list of paths to EXPRESS schemas to be built")
endif()
if(NOT SC_IS_SUBBUILD)
list(APPEND CONFIG_END_MESSAGES
".. Don't worry about any messages above about missing headers or failed tests, as long as"
" you see 'Configuring done' below. Headers and features vary by compiler."
".. Generating step can take a while if you are building several schemas.")
endif(NOT SC_IS_SUBBUILD)
# Now that all the tests are done, configure the scl_cf.h file:
get_property(CONFIG_H_FILE_CONTENTS GLOBAL PROPERTY SCL_CONFIG_H_CONTENTS)
file(WRITE ${CONFIG_H_FILE} "${CONFIG_H_FILE_CONTENTS}")
configure_file(${CONFIG_H_FILE} ${SCL_BINARY_DIR}/include/scl_cf.h)
################ create scl_version_string.h, http://stackoverflow.com/questions/3780667
# Using 'ver_string' instead of 'scl_version_string.h' is a trick to force the
# command to always execute when the custom target is built. It works because
# a file by that name never exists.
configure_file(${SCL_CMAKE_DIR}/scl_version_string.cmake ${SCL_BINARY_DIR}/scl_version_string.cmake @ONLY)
add_custom_target(version_string ALL DEPENDS ver_string )
# creates scl_version_string.h using cmake script
add_custom_command(OUTPUT ver_string ${CMAKE_CURRENT_BINARY_DIR}/include/scl_version_string.h
COMMAND ${CMAKE_COMMAND} -DSOURCE_DIR=${SCL_SOURCE_DIR}
-DBINARY_DIR=${SCL_BINARY_DIR}
-P ${SCL_BINARY_DIR}/scl_version_string.cmake)
# scl_version_string.h is a generated file
set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/include/scl_version_string.h
PROPERTIES GENERATED TRUE
HEADER_FILE_ONLY TRUE )
################
if(MSVC)
# add_definitions( -Wall )
add_definitions( -D__MSVC__ -D__WIN32__ )
# Disable warning for preferred usage of secure functions (example strcpy should be strcpy_s, ...)
add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS)
endif()
if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU" OR ${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
add_definitions(-pedantic -W -Wall -Wundef -Wfloat-equal -Wshadow -Winline -Wno-long-long)
add_definitions( -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS )
elseif(BORLAND)
add_definitions( -D__BORLAND__ -D__WIN32__ )
else()
add_definitions( -pedantic -W -Wall -Wundef -Wfloat-equal -Wshadow -Winline -Wno-long-long )
endif()
include_directories(
${SC_SOURCE_DIR}/include
${SC_BINARY_DIR}/include
)
${SCL_SOURCE_DIR}/include
${SCL_BINARY_DIR}/include
)
add_subdirectory(src/express)
add_subdirectory(src/exppp)
add_subdirectory(src/exp2cxx)
add_subdirectory(src/exp2python)
add_subdirectory(src/clstepcore)
add_subdirectory(src/cleditor)
add_subdirectory(src/cldai)
add_subdirectory(src/clutils)
add_subdirectory(src/cllazyfile)
add_subdirectory(include)
add_subdirectory(data)
if(SC_ENABLE_TESTING)
add_subdirectory(test)
endif(SC_ENABLE_TESTING)
add_subdirectory(doc)
ADD_SUBDIRECTORY(src/base)
ADD_SUBDIRECTORY(src/express)
ADD_SUBDIRECTORY(src/exppp)
ADD_SUBDIRECTORY(src/fedex_plus)
ADD_SUBDIRECTORY(src/fedex_python)
ADD_SUBDIRECTORY(src/clstepcore)
ADD_SUBDIRECTORY(src/cleditor)
ADD_SUBDIRECTORY(src/cldai)
ADD_SUBDIRECTORY(src/clutils)
ADD_SUBDIRECTORY(include)
ADD_SUBDIRECTORY(data)
IF(SCL_ENABLE_TESTING)
ADD_SUBDIRECTORY( test )
ENDIF(SCL_ENABLE_TESTING)
ADD_SUBDIRECTORY(doc)
if(NOT SC_IS_SUBBUILD)
#-----------------------------------------------------------------------------
# SC Packaging
# $make package
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "STEPcode")
set(CPACK_SET_DESTDIR "ON")
set(CPACK_PACKAGE_VERSION_MAJOR ${SC_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${SC_VERSION_MINOR})
set(CPACK_PACKAGE_NAME SC)
set(CPACK_PACKAGE_CONTACT "SC Developers <scl-dev@googlegroups.com>")
include(CPack)
endif(NOT SC_IS_SUBBUILD)
# this is for testing - 'make core' builds everything that isn't generated
add_custom_target( core )
add_dependencies( core stepdai check-express stepeditor fedex_plus )
if(NOT SCL_IS_SUBBUILD)
###############################################################################
# SCL Packaging #
# $make package #
###############################################################################
# CONFIG_END_MESSAGES - list of messages to be printed after everything else is done.
# THIS MUST BE LAST to ensure that they are visible to the user without scrolling.
foreach(_msg ${CONFIG_END_MESSAGES})
message(STATUS "${_msg}")
endforeach(_msg ${CONFIG_END_MESSAGES})
SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "STEP Class Library")
SET(CPACK_SET_DESTDIR "ON")
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
SET(CPACK_PACKAGE_VERSION_MAJOR ${SCL_VERSION_MAJOR})
SET(CPACK_PACKAGE_VERSION_MINOR ${SCL_VERSION_MINOR})
SET(CPACK_PACKAGE_NAME SCL )
SET(CPACK_PACKAGE_CONTACT "SCL Developers <scl-dev@googlegroups.com>")
INCLUDE(CPack)
########################################################################################
# Uninstall code #
# From http://www.cmake.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F #
# ######################################################################################
configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
IMMEDIATE @ONLY)
add_custom_target(uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
endif(NOT SCL_IS_SUBBUILD)
-48
View File
@@ -1,48 +0,0 @@
# How to contribute
We love contributions!
## Getting started
* Create a github account if you haven't already, and fork the project
* Create a new branch, using a branch name that gives an idea of what the changes are about
* One topic per commit; a number of small commits are better than one big one
* Do not introduce whitespace changes! (**Windows users:** `git config --global core.autocrlf true`)
* Encouraged but not enforced: each commit should stand alone, in the sense that the code should compile and run at that point.
* One major topic per pull request. Commits that fix small things (typos, formatting) are perfectly acceptable in a PR fixing a bug or adding a feature.
* Tests are good. Tests are required unless you're fixing something simple or that was obviously broken.
* Do not change EXPRESS schema definition without reference to an upstream change.
* Make your changes and push them to your GitHub repo
* Once your branch is pushed, submit a pull request.
- enable github option on each PR 'Allow edits from maintainers', refer to github help if necessary
* We'll look at the PR and either merge (possibly after rebase) or add feedback.
- If there isn't any activity within several days send a message to the mailing list - `scl-dev` AT `groups.google.com`.
## Coding Standards
SC's source has been reformatted with astyle. When making changes, try
to match the current formatting. The main points are:
- compact (java-style) brackets:
```C
if( a == 3 ) {
c = 5;
function( a, b );
} else {
somefunc();
}
```
- indents are 4 spaces
- no tab characters
- line endings are LF (linux), not CRLF (windows)
- brackets around single-line conditionals
- spaces inside parentheses and around operators
- return type on the same line as the function name, unless that's
too long
- doxygen-style comments
(see http://www.stack.nl/~dimitri/doxygen/docblocks.html)
If in doubt about a large patch, run astyle with the config file
misc/astyle.cfg.
Download astyle from http://sourceforge.net/projects/astyle/files/astyle/
+97 -36
View File
@@ -1,47 +1,108 @@
STEPcode is provided as a collective work under the 3-clause BSD
license. As some portions are not subject to copyright in some
jurisdictions, see INTENT.md for additional details regarding intent
and history. See the AUTHORS file for a list of contributors and
copyright holders.
Code generated by STEPcode containing substantial parts of STEPcode
complex enough to have copyright protection are subject to the terms
of this license.
STEPcode acknowledgement and/or attribution is appreciated regardless
of license or copyright status.
Modifications to the original NIST code are (C)opyright by their
respective authors. Unless otherwise specified, they are copyright
on the date those changes were committed to whichever repository
they were committed to first (i.e. BRL-CAD on SourceForge.net,
mpictor/StepClassLibrary on github, etc).
Modifications which were first commited to the repository on github
are licensed under the 3-clause BSD license below. Changes committed
to BRL-CAD either contain license information mentioning BRL-CAD
near the top of the file, or are licensed under the same terms that
NIST used.
********************************************************************
3-Clause BSD License
********************************************************************
3-clause BSD license:
Copyright (c) 2009-2019 STEPcode AUTHORS
Copyright (c) <date committed>, <copyright holder>
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the <organization> nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
********************************************************************
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
********************************************************************
ORIGINAL NIST TEXT FOLLOWS
********************************************************************
This software was produced by the National Institute of Standards and
Technology (NIST), an agency of the U.S. government, and by statute is
not subject to copyright in the United States. Recipients of this
software assume all responsibility associated with its operation,
modification, maintenance, and subsequent redistribution.
Acknowledgements:
The STEP Class Library (SCL) was developed by the Manufacturing
Systems Integration Division at NIST to support testing of the
Standard for the Exchange of Product Model Data (a.k.a STEP) and
validation of STEP's emerging implementation specifications. Funding
for the project has come from the Department of Commerce and the
Department of Defense agencies including the Office of the Defense
CALS (Continuous Acquisition and Life-Cycle Support) Executive and
the Defense Advanced Research Projects Agency (DARPA). Recent
enhancements were sponsored by the National Information Infrastructure
Protocols Consortium and NIST's Systems Integration for Manufacturing
Applications (SIMA) program.
/* ********************************************************************
* D I S C L A I M E R
* (February 6, 1992)
*
* There is no warranty for the NIST PDES Toolkit.
* If the NIST PDES Toolkit
* is modified by someone else and passed on, NIST wants
* the Toolkit's recipients to know that what they have is not what NIST
* distributed.
*
* Policies
*
* 1. Anyone may copy and distribute verbatim copies of the NIST PDES Toolkit
* source code as received in any medium.
*
* 2. Anyone may modify your copy or copies of the NIST PDES Toolkit source
* code or any portion of it, and copy and distribute such modifications
* provided that all modifications are clearly associated with the entity
* that performs the modifications.
*
* NO WARRANTY
* ===========
*
* NIST PROVIDES ABSOLUTELY NO WARRANTY. THE NIST PDES TOOLKIT
* IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS
* WITH YOU. SHOULD ANY PORTION OF THE NIST PDES TOOLKIT PROVE DEFECTIVE,
* YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
*
* IN NO EVENT WILL NIST BE LIABLE FOR DAMAGES,
* INCLUDING ANY LOST PROFITS, LOST MONIES, OR OTHER SPECIAL,
* INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
* INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
* BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR A
* FAILURE OF THE PROGRAM TO OPERATE WITH PROGRAMS NOT DISTRIBUTED BY
* NIST) THE PROGRAMS, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY.
*/
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-8
View File
@@ -8,11 +8,3 @@ set(CTEST_DROP_METHOD "http")
set(CTEST_DROP_SITE "my.cdash.org")
set(CTEST_DROP_LOCATION "/submit.php?project=StepClassLibrary")
set(CTEST_DROP_SITE_CDASH TRUE)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
+2 -5
View File
@@ -1,8 +1,5 @@
Recent changes are recorded in the publicly available repository:
http://github.com/stepcode/stepcode
This repo was moved and renamed in May 2012. Previously, it was at
http://github.com/mpictor/StepClassLibrary
https://github.com/mpictor/StepClassLibrary
Some are duplicates of changes recorded in the BRL-CAD repo:
http://brlcad.svn.sourceforge.net/viewvc/brlcad/brlcad/trunk/src/other/step/?view=log
@@ -10,7 +7,7 @@ http://brlcad.svn.sourceforge.net/viewvc/brlcad/brlcad/trunk/src/other/step/?vie
Pre-BRL-CAD changes:
************************************************************************
Updates from http://www.statik.tu-cottbus.de/fileadmin/project_dth/scl/
Jan 2005 - Mar 2006
Jan 2005 - Mar 2006
************************************************************************
STEP Class Library Release 3.2 February 1998
************************************************************************
+18 -17
View File
@@ -1,15 +1,16 @@
INSTALL
This file is contains installation instructions for STEPcode.
This file is contains installation instructions for the
STEP Class Library.
These installation requires that you have the following software
available:
- C and C++ compilers (Tested with GCC, MSVC, Embarcadero)
- CMake (v2.8.7 or greater)
- bison, byacc, or yacc (only bison has been tested recently)
- flex or lex (only flex has been tested recently)
- CMake
- mingw (only on Windows)
- a lexer and parser (i.e. flex, bison) are NOT necessary anymore
-if you modify the lexer or parser, you will need LEMON, RE2C, PERPLEX from BRL-CAD
--------------------
Installation
@@ -20,16 +21,16 @@ Installation
* Build system uses CMake now: configure, Makefile, and all
autotools files have been removed, as has mkProbe.
* Building SC from the command prompt:
- cd sc
* Building SCL from the command prompt:
- cd scl
- mkdir build
- cd build
- cmake ..
- make
- make install # optional
* Building SC from the GUI:
- Run cmake-gui, set it to build in sc/build
* Building SCL from the GUI:
- Run cmake-gui, set it to build in scl/build
- Select the correct build file generator
- Press Configure
- Change options as necessary, configuring again afterwards
@@ -38,7 +39,7 @@ Installation
- Open the main build file using your preferred build tool
* Build options (append to the 'cmake ..' line):
-DSC_BUILD_SCHEMAS="path/to/schema.exp;path/to/schema2.exp"
-DBUILD_SCHEMAS="path/to/schema.exp;path/to/schema2.exp"
- this generates c++ for the schema, and compiles it into a
library. Also works with directories, as long as each dir only
has one express file.
@@ -47,23 +48,23 @@ Installation
and writes another. It may change whitespace or remove comments;
otherwise, the input and output files should be identical. If
they are not identical, either the file does not match the
schema, or SC generated incorrect source code.
-DSC_BUILD_SCHEMAS=ALL
- Added to make use of ctest easier. If SC_BUILD_SCHEMAS == ALL,
schema, or SCL generated incorrect source code.
-DBUILD_SCHEMAS=ALL
- Added to make use of ctest easier. If BUILD_SCHEMAS == ALL,
then CMake adds each *.exp file found in data/.
-DSC_BUILD_TYPE=Release
-DCMAKE_BUILD_TYPE=Release
- this causes binaries to be built without debugging information
- without this, cmake defaults to a Debug build
* Using CTest to test SC:
* Using CTest to test SCL:
- Read the comments in run_ctest.cmake
- (OPTIONAL) Create sc/../.SC_CTEST_PREFS.cmake, and set variables
- (OPTIONAL) Create scl/../.SCL_CTEST_PREFS.cmake, and set variables
in it (this file is required for CDash submission to be enabled)
- Run tests with `ctest -S run_ctest.cmake`
* Using CTest to regenerate the schema matrix on the github SC wiki:
* Using CTest to regenerate the schema matrix on the github SCL wiki:
- Requires:
- git
- python
- a clone of the git repo for the wiki at sc/../wiki-sc
- a clone of the git repo for the wiki at scl/../wiki-scl
- run `ctest -S ctest_matrix.cmake`
-102
View File
@@ -1,102 +0,0 @@
## Licensing Intent
The intent is that this software and documentation ("Project") should
be treated as if it is licensed under the license(s) associated with
the Project ("License") in the `COPYING` file. However, because some
contributors work for the United States (U.S.) Federal Government, it
is not that simple.
The portions of this Project written by United States (U.S.) federal
government employees within the scope of their federal employment are
ineligible for copyright protection in the U.S.; this is generally
understood to mean that these portions of the Project are placed in
the public domain.
In countries where copyright protection is available (which does not
include the U.S.), contributions made by U.S. Federal government
employees are released under the License. Merged contributions from
private contributors are released under the License.
## Background History
STEPcode was originally developed as the STEP Class Libraries (SCL) by
the U.S. National Institute of Standards and Technology (NIST). Prior
to 2009, the U.S. Army Research Laboratory and members of the BRL-CAD
open source community researched freely available open source options
for ISO 10303 STEP support. Development had ceased, no open source
community existed, the code was out of date in many regards, and
additional work was needed to become production-ready, but SCL was
found to be a usable reference implementation.
Consulting with NIST and others circa 2009, the BRL-CAD community
began efforts to take over SCL development, modernization, and code
enhancements. The BRL-CAD community purchased licenses for the ISO
10303 standard and began working to bring SCL up-to-date with the
latest specification. By 2011, significant progress had been made,
the project had garnered attention from others, and STEPcode was
establishd as an independent project.
## Original NIST License Text
This software was [originally] produced by the National Institute of
Standards and Technology (NIST), an agency of the U.S. government, and
by statute is not subject to copyright in the United
States. Recipients of this software assume all responsibility
associated with its operation, modification, maintenance, and
subsequent redistribution.
Acknowledgements:
The STEP Class Library (SCL) was developed by the Manufacturing
Systems Integration Division at NIST to support testing of the
Standard for the Exchange of Product Model Data (a.k.a STEP) and
validation of STEP's emerging implementation specifications. Funding
for the project has come from the Department of Commerce and the
Department of Defense agencies including the Office of the Defense
CALS (Continuous Acquisition and Life-Cycle Support) Executive and
the Defense Advanced Research Projects Agency (DARPA). Recent
enhancements [circa 1992] were sponsored by the National Information Infrastructure
Protocols Consortium and NIST's Systems Integration for Manufacturing
Applications (SIMA) program.
~~~~
/* ********************************************************************
* D I S C L A I M E R
* (February 6, 1992)
*
* There is no warranty for the NIST PDES Toolkit.
* If the NIST PDES Toolkit
* is modified by someone else and passed on, NIST wants
* the Toolkit's recipients to know that what they have is not what NIST
* distributed.
*
* Policies
*
* 1. Anyone may copy and distribute verbatim copies of the NIST PDES Toolkit
* source code as received in any medium.
*
* 2. Anyone may modify your copy or copies of the NIST PDES Toolkit source
* code or any portion of it, and copy and distribute such modifications
* provided that all modifications are clearly associated with the entity
* that performs the modifications.
*
* NO WARRANTY
* ===========
*
* NIST PROVIDES ABSOLUTELY NO WARRANTY. THE NIST PDES TOOLKIT
* IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
* THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS
* WITH YOU. SHOULD ANY PORTION OF THE NIST PDES TOOLKIT PROVE DEFECTIVE,
* YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
*
* IN NO EVENT WILL NIST BE LIABLE FOR DAMAGES,
* INCLUDING ANY LOST PROFITS, LOST MONIES, OR OTHER SPECIAL,
* INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
* INABILITY TO USE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
* BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR A
* FAILURE OF THE PROGRAM TO OPERATE WITH PROGRAMS NOT DISTRIBUTED BY
* NIST) THE PROGRAMS, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY.
*/
~~~~
+41 -99
View File
@@ -1,62 +1,4 @@
************************************************************************
STEPcode
http://github.com/stepcode/stepcode
************************************************************************
Release 0.8 (December, 2014)
New since v0.7:
* handle diamond inheritance, derived Attributes
* rename fedex_python, fedex_plus to exp2py, exp2cxx
* many changes to the pretty printer, due to use in reformatting draft
and IS schemas (Thanks Tom!)
* parser was also changed due to errors caught while pretty printing
- we can be much more confident that the parser is correct now
* fix incorrect quoting of timestamp in p21 header
* fix various copy constructors and ShallowCopy() members
* split generated code into many small files
- far easier to open generated code in editors
- support more compilers
- small files are combined (via #include statements) into a few
large files for faster "unitary" builds, if the compiler can handle it
- unitary builds are faster than the previous builds
* most compiler warnings fixed
* performance fixes and other changes from BRL-CAD
* finally, all tests pass!
************************************************************************
Release 0.7 (April, 2013)
New since v0.6:
* Requires CMake 2.8.7 or later
* Replace *ALL* references to SCL with SC - CMake, source, filenames.
* Lazy loading code (src/cllazyfile)
* greatly reduces memory requirements and loading time when not all
instances are needed
* doesn't work with complex instances yet
* doesn't work on windows or 32-bit platforms yet
* Merged all BRL-CAD changes; now, we can work on the same repo.
* Eliminate compile-time dependency on a lexer and parser
* When lexer/parser changes, use LEMON/RE2C/Perplex (in BRL-CAD repo)
* Fixed several bugs in the class libraries that cause segfaults
* update AP209, 210e3, 242, IFC2
* Fixes for MSVC, Embarcadero (there are still problems with both:
see comments on #178 & #190, also import/export macros)
* Fixed NIST test executables
************************************************************************
Release 0.6 (May, 2012)
New since v0.5:
* Renamed from STEP Class Library to STEPcode, moved to github.com/stepcode/stepcode
* Advances in [Python](http://github.com/stepcode/stepcode/wiki/python-generator) support (#185)
* ABI versioning
* Implement memory manager with reporting of memory that isn't freed,
fix many memory leaks (#148, #160, #162, #168)
* MSVC fixes (> 128 nested if...else - #152), etc
* Add AP219, AP238, PDM schema, AP203a1, syntax highlighting files
* Improvements to CMake files, mostly from Cliff @ BRL-CAD (#143, #163, #181)
* Allow runtime bounds for aggregates (discovered with AP209e2) (#166)
* exp2cxx fprintf's can be traced with -DSCL_TRACE_FPRINTF=ON (#176)
STEP Class Library ------ http://github.com/mpictor/StepClassLibrary
************************************************************************
Release 0.5 (Feb 23, 2012)
@@ -66,8 +8,8 @@ New since v0.4:
* Now handles most features of EXPRESS - all included schemas,
with the exception of AP209 CD, are parsed without error. Enums are
now in their own dictionary. Allow indexing on aggregates, generics,
and binaries.
* Changes to exp2cxx that improve the generated c++ - use a
and binaries.
* Changes to fedex_plus that improve the generated c++ - use a
namespace, break up large static strings, make EXPRESS multiple
inheritance work by not printing multiple copies of inherited members.
All schemas now compile without error, but there are numerous warnings.
@@ -80,13 +22,13 @@ Release 0.4 (Nov 13, 2011)
New since v0.3:
* Improve p21read performance by ~30%
* Improve exp2cxx performance by ~4300% (!)
* Improve fedex_plus performance by ~4300% (!)
* A variable defined in a LOCAL is not required to have a type label
(affected ap242,210e3,209)
* Enums and entities are allowed to have the same names
(affected ap242,210e3,209)
* Remove the SCLP23 macro
http://github.com/stepcode/stepcode/wiki/changelog-v0.4
http://github.com/mpictor/StepClassLibrary/wiki/changelog-v0.4
************************************************************************
Release 0.3 (Oct 29, 2011)
@@ -106,7 +48,7 @@ Release 0.2 (Oct 1, 2011)
What's new since v0.1?
* Retrieve aggregate type from the underlying type (issue #4)
* Fix aggregate select types naming convention in exp2cxx (issue #59)
* 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
@@ -116,10 +58,10 @@ What's new since v0.1?
* Add BNF files, schemas, and CAX-IF Part 21 files
For a detailed list of changes, see
https://github.com/stepcode/stepcode/wiki/changelog-v0.2
https://github.com/mpictor/StepClassLibrary/wiki/changelog-v0.2
For a list of closed issues, see
https://github.com/stepcode/stepcode/issues?state=closed&milestone=2
https://github.com/mpictor/StepClassLibrary/issues?state=closed&milestone=2
************************************************************************
@@ -138,14 +80,14 @@ What's new since the SCL 3.2 release in 1998?
* Bring SCL closer to alignment with modern coding standards - replace
String class with std::string, fix all GCC warnings
* Builds on Linux, OSX, and Windows; requires mingw on Windows.
* Add debugging option -d 9 -l nnn -u nnn to exp2cxx. This limits
* Add debugging option -d 9 -l nnn -u nnn to fedex_plus. This limits
parser debug output to a specified range of lines in the schema.
For a detailed list of changes, see
https://github.com/stepcode/stepcode/wiki/changelog-v0.1
https://github.com/mpictor/StepClassLibrary/wiki/changelog-v0.1
For a list of closed issues, see
https://github.com/stepcode/stepcode/issues?state=closed&milestone=1
https://github.com/mpictor/StepClassLibrary/issues?state=closed&milestone=1
Pre-BRL-CAD changes:
* Patches from http://www.statik.tu-cottbus.de/fileadmin/project_dth/scl/
@@ -179,7 +121,7 @@ There were also some issues with the configure script and some
makefiles which are addressed, as well as a new macro that is at
least required for gcc.
Remaining problem: The p21 file scanner of SCL currently
Remaing problem: The p21 file scanner of SCL currently
does not allow for comments within the parameter list of
data records. Only comments outside of data records are
accepted.
@@ -219,7 +161,7 @@ REFERENCE FROM clauses, global rules, PROCEDUREs, and
FUNCTIONS. Information about these objects is available but validation
based on it is not performed.
- enhanced exp2cxx C++ code generator to generate the necessary
- enhanced fedex_plus C++ code generator to generate the necessary
dictionary objects for the above EXPRESS constructs for a particular
schema. Also enhanced schema dictionary code generation to add
information necessary to generate an EXPRESS schema (i.e. which
@@ -234,7 +176,7 @@ types, entities, and attributes.
- Fixed a bug in the casting functions for the classes handling
instances of SELECT TYPEs in EXPRESS.
e.g.
SdaiMeasure_value::operator SDAI_Real)(
SdaiMeasure_value::operator SCLP23(Real)()
{
// was missing stmts such as these...
if( CurrentUnderlyingType () == config_control_designt_area_measure )
@@ -255,7 +197,7 @@ the TD for label.
- Fixed the casting operator for the class representing EXPRESS
enumeration types. It was returning the last element of the enum type
as the default when the enum was unset. This choice predated enums
as the the default when the enum was unset. This choice predated enums
having an unset enum value. It now returns <enum_name>_unset as the
default when the enum is unset.
@@ -351,20 +293,20 @@ classes is what allows for the flexibility in dealing with problem
areas when using SCL with other software.
An example of a name change and macro use: sdaiString has now become
SDAI_String which could translate to SDAI::String or SDAI_String
SCLP23(String) which could translate to SDAI::String or SDAI_String
(depending on whether you use the SDAI namespace or not) or any other
namespace or prefix as is necessary. To change the SDAI namespace name
or prefix name the macro definition for SDAI_ could be changed in
or prefix name the macro definition for SCLP23() could be changed in
the sclprefixes.h file.
The early bound access functions that are generated by exp2cxx from
The early bound access functions that are generated by fedex_plus from
EXPRESS defined entities have been updated to the latest version of
Part 23's C++ binding to SDAI. A previous early bound function defined
as "const SdaiLabel Name()" would now be defined according to Part 23 as
"const SdaiLabel name_()". *notice* that application schema defined
types are not yet defined in a namespace. Compatibility with previous
versions of SCL early bound functions has been maintained via the -a
exp2cxx option.
fedex_plus option.
-----------------------------------------------------
SDAI Session Schema objects implemented (model_contents, extents, etc)
@@ -374,7 +316,7 @@ Several classes and types defined as part of SDAI Part 23's Session
Schema have been implemented (where before they mostly had stub
functions). These have been implemented for use with or without the
ObjectStore object oriented database. Model_contents_<schema_name> is
now being generated by exp2cxx allowing Entity_extents to be
now being generated by fedex_plus allowing Entity_extents to be
maintained for entities as desired.
-----------------------------------------------------
@@ -390,7 +332,7 @@ database.
The SCL application, fedex_os, uses an application schema written in
EXPRESS to generate additional code needed for use with ObjectStore.
Fedex_os is used in conjunction with exp2cxx for generating the C++
Fedex_os is used in conjunction with fedex_plus for generating the C++
necessary to implement your application schema.
Although building SCL libraries for use with ObjectStore is
@@ -435,7 +377,7 @@ schema. The generation of IDL schemas by fedex_idl is according to
STEP's Part 26 Interface Definition Language binding to the SDAI. The
Orbix IDL compiler is then used to generate the client and server code
necessary for communication through an Orbix ORB. The SCL application,
exp2cxx, would then be run with the -c option on your application's
fedex_plus, would then be run with the -c option on your application's
EXPRESS schema to generate the server implementation objects required
to build an Orbix server (it uses the TIE approach). You would be
required to write the C++ main() function for the server code.
@@ -482,7 +424,7 @@ MULTIPLE SCHEMA SUPPORT
A library and Data Probe can now be generated for an EXPRESS file
containing multiple schemas. This is done primarily by dividing the
source code generated by exp2cxx into separate files. Separate
source code generated by fedex_plus into separate files. Separate
files are generated for each schema contained in the EXPRESS file. In
addition, often schemas are dependent on one another. This will be
the case if the schemas use and reference entities and types from each
@@ -490,7 +432,7 @@ other. If, for example, entity X in schema A is a subtype of entity Y
in schema B, X will not be processed until B in schema Y is processed.
Other such cases of interdependence occur if an entity in schema A
contains as an attribute an enumeration or select type defined in
another schema. To address such cases, exp2cxx may process a
another schema. To address such cases, fedex_plus may process a
schema in multiple passes. At each pass, only the objects in the
schema which are not dependent on not-yet-processed objects in other
schemas are processed. At each successive pass through the schemas as
@@ -502,16 +444,16 @@ B which is a supertype of C, etc.).
For an EXPRESS file with multiple dependent schemas, it is advisable
to organize the file with bottom-up design. Schemas containing the
simpler, building block types and entities should appear first. By
doing so, when exp2cxx begins processing the more complex schemas,
doing so, when fedex_plus begins processing the more complex schemas,
there will be fewer cases in which the parser will encounter not-yet-
defined objects from other schemas. (The objects which are referenced
the most will have already been defined.) This will minimize the
number of times exp2cxx is required to divide output files.
number of times fedex_plus is required to divide output files.
One known case of interdependence which exp2cxx is not able to
One known case of interdependence which fedex_plus is not able to
support occurs if say select A has select B as an item, and select B
has select A as an item. (This is unsupported even if A and B are in
the same schema.) exp2cxx has no way in which it can generate
the same schema.) fedex_plus has no way in which it can generate
compilable source code for the selects because each is dependent on
the other. In addition, this would cause the parser to fall into an
endless loop, so we strongly discourage it. ;-)
@@ -623,18 +565,18 @@ see below, next section.)
level, bypassing STEPfile. STEPentity will allow the initialization
but will place a warning in its errorDesc field.)
3. exp2cxx may be compiled with the flag COMPLEX_INFO. If this
flag is turned on, exp2cxx prints out (to `cout') a large amount of
3. fedex_plus may be compiled with the flag COMPLEX_INFO. If this
flag is turned on, fedex_plus prints out (to `cout') a large amount of
detail on the complex entities it finds and their overall structure.
This is useful to see how fedex interpreted the complex information of
an EXPRESS file, and to get a simple graphical view of the supertype-
subtype hierarchy of the file.
exp2cxx's makefile contains the commented-out line,
fedex_plus's makefile contains the commented-out line,
#USER_DEFS = -DCOMPLEX_INFO
If this line is uncommented, a exp2cxx executable will be built
If this line is uncommented, a fedex_plus executable will be built
which prints such information.
Limitations
@@ -671,12 +613,12 @@ the renaming of an individual entity places it out of order, the nodes
will be printed out of order.
4. "Diamond inheritance" is not handled automatically and must be
fixed by hand in the code generated by exp2cxx. (See
fixed by hand in the code generated by fedex_plus. (See
whatsnew.2-1.txt, section "Multiple Inheritance".)
5. Selects between aggregates: A select containing two aggregate
choices of the same type (e.g., ARRAY and ARRAY, as opposed to ARRAY
and SET) will cause exp2cxx to generate code which cannot be
and SET) will cause fedex_plus to generate code which cannot be
compiled.
6. Problem with sparcworks compiler version 4.0(?) - operator int() =
@@ -717,14 +659,14 @@ ANY OTHER PARTY.
What's new in the STEP Class Library and Data Probe release 2.1
June 1995
This release of the STEP Class Library (SCL), exp2cxx code
This release of the STEP Class Library (SCL), fedex_plus code
generator, and Data Probe also contains the latest releases of the
fedex syntax and semantic checker, the NIST Express Toolkit (also new
on SOLIS as of June 12, 1995), and the Express Pretty Printer Toolkit.
The NIST Express Toolkit and fedex have been updated to handle the IS
version of Express and various problems have been fixed as a result of
pre-validation conformance testing. Following is an overview of
what's new in the STEP Class Library (and hence exp2cxx) and the
what's new in the STEP Class Library (and hence fedex_plus) and the
Data Probe.
--------------------
@@ -797,13 +739,13 @@ When this case of multiple inheritance is encountered attributes are
duplicated. This case of multiple inheritance may possibly be
avoided by modifying the EXPRESS schema by breaking some links in the
inheritance hierarchy. This will not have an adverse affect on the
implementation. The user may choose to use the current or previous
implemementation. The user may choose to use the current or previous
method of handling multiple inheritance. The current method is the
default behavior. The previous method is obtained by supplying the
-s (or -S) option with the exp2cxx code generator or the mkProbe
-s (or -S) option with the fedex_plus code generator or the mkProbe
script.
When the exp2cxx code generator is generating the C++ class library
When the fedex_plus code generator is generating the C++ class library
representation of a schema, it outputs information calling attention
to the cases of multiple inheritance.
@@ -990,7 +932,7 @@ the attribute value field in the entity editor.
If there wasn't a value in the attribute previously, then the field will
contain just the type specifier, e.g., Str1() if Str1 is the type selected.
If a value exists in the field, it is modified to accommodate the new
If a value exists in the field, it is modified to accomodate the new
specifier. This means the following:
o If the value in the field starts with a single-quote ('), it is
assumed to be a string literal, and is completely wrapped in the new
@@ -1063,7 +1005,7 @@ functions.
--------
Attributes of type Boolean and aggregate of Boolean were previously
implemented using the Logical and Logicals classes (respectively).
The exp2cxx code generator now generates classes Boolean and
The fedex_plus code generator now generates classes Boolean and
Booleans to implement attributes of type Boolean and aggregate of
Boolean respectively.
+593
View File
@@ -0,0 +1,593 @@
***********************************************************************
Step Class Library v0.5 -- http://github.com/mpictor/StepClassLibrary
* What is SCL? SCL reads ISO10303-11 EXPRESS schemas and generates
C++ source code that can read and write Part 21 files conforming
to that schema. In addition to C++, v0.5 includes experimental
support for Python.
* SCL is packaged along with some other tools. See
"THE NIST STEP TOOLSET", below. In particular, Data Probe
requires InterViews, an obsolete UI toolkit. I (mpictor) have not
had luck building the data probe with it. It may be more productive
to replace InterViews with a modern toolkit such as Qt. I
expect that this would be non-trivial.
* Much of the work to update SCL has been done by the developers of
BRL-CAD, and SCL was originally created at NIST in the 90's.
* Build system uses only CMake now: configure, Makefile, and all
autotools files have been removed, as has mkProbe.
* Building and testing SCL - see the INSTALL file
***********************************************************************
***********************************************************************
CODING STANDARDS
SCL's source has been reformatted with astyle. When making changes, try
to match the current formatting. The main points are:
- compact (java-style) brackets:
if( a == 3 ) {
c = 5;
function( a, b );
} else {
somefunc( );
}
- indents are 4 spaces
- no tab characters
- line endings are LF (linux), not CRLF (windows)
- brackets around single-line conditionals
- spaces inside parentheses and around operators
- return type on the same line as the function name, unless that's
too long
- doxygen-style comments
(see http://www.stack.nl/~dimitri/doxygen/docblocks.html)
If in doubt about a large patch, run astyle with the config file
misc/astyle.cfg.
Download astyle from http://sourceforge.net/projects/astyle/files/astyle/
***********************************************************************
***********************************************************************
Notes/TODO items specific to the STEP libraries as included in BRL-CAD:
* Original build system has been replaced with Makefile.am and
configure.ac files in the style of BRL-CAD's autotools build
system.
* Changes have been made to src/express to get it compiling with
the output of different versions of lex/flex/bison. These
changes are not yet tested in terms of impact on functionality
and should be a starting point for any debugging of EXPRESS
parsing issues.
* Of the original test code, only p21read has been incorporated into
the new build system, but they are still present in src/test
* Express and exppp header files have been relocated to subdirectories
in include. The names of the library files being built have been
altered, and clstepcore and cleditor now build as separate libraries.
* Numerous minor changes have been made, mostly including stdlib
and other required files.
***********************************************************************
=====================================================
Much has changed since README.scl was written.
However, it is reproduced in its entirety below.
=====================================================
README.scl (top level README) February 1998
THE NIST STEP TOOLSET
=====================
Included in this release of the NIST STEP Toolset are
STEP Class Library (SCL)
fedex_plus
fedex_idl
fedex_os
Data Probe application
Part 21 Reader application
mkProbe script
NIST EXPRESS Toolkit
NIST EXPRESS Pretty Printing Toolkit
The focus of our work since our last release has been on developing a
reference implementation of the binding of EXPRESS to C++ and IDL as
specified by STEP's Parts 23 and 26 respectively. To this we have
added a persistence capability (based on the ObjectStore OODB from
Object Design, Inc) and a distribution capability (based on Orbix by
Iona Technologies, Ltd). We also experimented with the Open OODB from
Texas Instruments and with DSOM from IBM.
The STEP Class Library (SCL) and fedex_plus are used to build
STEP-related applications in C++. They support STEP Parts 21 (the
exchange file format), 22 (the functional specification of STEP's
Standard Data Access Interface, SDAI), 23 (the C++ binding to SDAI),
and 26 (the IDL interface to SDAI). fedex_plus is an application of
the NIST EXPRESS Toolkit (based on STEP Part 11) which generates a C++
class library representation of an EXPRESS schema based on STEP's Part
23. The generated classes work with the STEP Class Library. The NIST
EXPRESS Pretty Printing Toolkit is used to format and output EXPRESS.
fedex_os is used to generate software (in addition to fedex_plus)
needed to use SCL with the ObjectStore OODB. fedex_idl translates
EXPRESS to the Interface Definition Language (according to Part 26)
for use with Orbix.
The Data Probe software and mkProbe script are used to generate
schema-specific class libraries (a.k.a. "Schema Class Library"), Data
Probe editors, and Part 21 file readers. mkProbe generates a C++
library representing a schema (using fedex_plus) and links the schema
library with other libraries of the SCL and Data Probe to create a
schema specific editor, known as a Data Probe. The Data Probe is a
graphical editor for STEP data; it is used to browse and edit data
instances of the objects in an EXPRESS model. It may also be used to
visually browse the objects contained in the EXPRESS schema itself.
Data Probes are X Windows-based and use the InterViews Toolkit from
Stanford University.
The Data Probe source code was designed with reusability in mind. The
runtime-code uses three class libraries: the STEP Class Library
(developed at NIST), the InterViews Toolkit (user interface
developer's toolkit from Stanford), and a standard C++ Class Library.
The NIST STEP Class Library is divided into component libraries
including STEP Core, Editor, Utilities, Data Access Interface,
Interviews extensions, and Probe. The STEP Core, Editor, and Utils
libraries can be used without the user interface libraries (Interviews
extensions and Probe) for applications needing to represent the
EXPRESS data structures. At this point the Data Access Interface is a
partial implementation of SDAI's Session schema.
Dependencies between these modules have been minimized so that an
executable program, the Data Probe, can be easily reconfigured to
support different conceptual schemas.
We have experimented with replacing the Interviews-based interface
with a tcl interface with good success; however, it is not in our work
plan to complete. If anyone is interested in extending the toolkit
with a more modern interface, we would be glad to discuss it with you.
The Part 21 Reader was originally developed to test whether a Schema
Class built and linked without problems. It is also useful for
checking Part 21 files. It displays the error messages from the STEP
Class Library as a file is read.
SYSTEM REQUIREMENTS
===================
Depending on how you want to use the toolkit, additional pieces of
software will need to be available on your local system:
- UNIX SunOS 4.1.x or Solaris 5.x operating system.
At NIST, the SCL including the Data Probe has been built on
SunOS workstations. The SCL without the Data Probe has been
built on Solaris. (We did not build the InterViews Library
on Solaris.) NOTE: earlier versions of the SCL 2.1 without
the Data Probe had been ported to AIX, HP, linux, and Windows NT.
- a C++ compiler -- cfront version 2.1 or higher
NOTE: The current SCL release has been built with SUN C/C++,
and GNU's gcc/g++ compilers. Earlier versions of the SCL were
built using CenterLine on SunOS and CSet++ on AIX.
If you successfully port the current version to other
compilers and/or operating systems (and are willing to share)
please contact us (stepcl@cme.nist.gov) so that we can point
others to it.
- The NIST EXPRESS Toolkit -- available from NIST
Included in this release; also available as:
ftp.cme.nist.gov:pub/step/npttools/exptk.tar.Z
- The NIST EXPRESS Pretty Printer -- available from NIST
Included in this release; also available as:
ftp.cme.nist.gov:pub/step/npttools/exppp.tar.Z
The following components are optional:
- Version 3.1 of the InterViews Toolkit from Stanford.
ftp://interviews.stanford.edu:pub/3.1.tar.Z
NOTE: InterViews is only needed for the Data Probe portion of
the toolkit. The STEP Class Library without the Data Probe
and InterViews has been built on more platforms than with these
components.
- Orbix version 2.0. Available from Iona Technologies:
http://www.iona.com
- Object Store version 4. Available from Object Design Inc.:
http://www.odi.com.
INSTALLATION INSTRUCTIONS
=========================
Refer to the file INSTALL.
In the instructions below, you will see references to the directory
<ARCH_DIR>. This directory name should be interpreted as the directory
which is named to reflect your compiler and/or system architecture
when installing the SCL using configure: i.e. "arch.centerline" or
"arch-gnu.solaris"
CREATING A NEW SCHEMA CLASS LIBRARY AND/OR DATA PROBE
=====================================================
The <ARCH_DIR>/bin/mkProbe script automates the process of building
new Schema Class Libraries and Data Probe executables. When run with
the -l option only the Schema Class Library will be created. See man
page in ~scl/man.
Examples
Input command line output (name and location)
----------------------------------------------------
mkProbe part41.exp pt41 ./pt41/dp_pt41
mkProbe -i part101.exp dp ~scl/<ARCH_DIR>/Probes/dp/dp_dp
mkProbe -l example.exp example ./example/libCexample.a
mkProbe -p example.exp example ./example/p21read_example
CONTENTS
========
This directory contains the following files and subdirectories.
This software release includes all the NIST software needed for
creating new versions of the Data Probe program. Two example schemas
are included in the data directory.
INSTALL - File discussing installation of SCL.
README.scl - This file.
src/test/README - README discussing SCL coding examples under src/test/
disclaim.txt - NIST disclaimer for this distribution.
build-apps.txt - Discusses how to build applications using the STEP
Class Library.
whatsnew.3-1.txt- Discusses new features in the STEP Class Library and
Data Probe 3.1 release.
whatsnew.2-1.txt- This was the `whatsnew' file released with SCL 2.1.
Most of the information is still relevant.
configure - Script used to install the SCL.
configure.in - File used to create the configure script using gnu's
autoconf software.
configure.files_notes.txt - Discusses various files used by the
configure script.
Makefile - Contains a default rule to build SCL using the
configure installation script.
<ARCH_DIR>/bin/mkProbe - Script used to generate a new Schema Class Library
and/or Data Probe executable.
(see CREATING A NEW SCHEMA CLASS LIBRARY AND/OR DATA PROBE)
config/ - Directory containing various templates needed by the
configure installation script.
config/examples/ - Directory containing examples of using configure to
install SCL.
arch_template/ - Directory containing templates used by configure to
create an architecture specific SCL installation.
src/ - Source code files for the C++ libraries included in this
release.
src/cl* - Directories containing the source code for the C++
libraries in the STEP Class Library. These
libraries are documented in the VTS Design document
(see DOCUMENTATION below). They are as follows:
src/clutils - utilities needed by the other libraries.
src/clstepcore - "core" classes representing EXPRESS types
and dictionary info.
src/cldai - classes for a partial implementation of the
Session schema of STEP's Standard Data
Access Interface (STEP Part 23).
src/cleditor - classes for managing data instances and
exchange files.
src/clivfasd - customizations to the Interviews class
library.
src/clprobe-ui - user interface classes for the Data Probe.
src/clSchemas - Contain subdirectories with schema specific source
code generated by the mkProbe script.
src/express - Directory containing the EXPRESS Toolkit.
src/exppp - Directory containing EXPRESS Pretty Printer Toolkit.
src/test - Directory containing example STEP Class Library
applications.
src/fedex_plus - Directory containing source code and makefile for
fedex_plus, fedex_idl, fedex_os
<ARCH_DIR>
- <ARCH_DIR> is the installer-supplied name of the
directory which is created when you run configure to
install SCL. (See the file INSTALL for more
information.) This directory contains computer
architecture-specific files. Additional arch dirs
may be created to support multiple platforms or C++
compilers which all refer to the same source
code under src/. The arch dir contains the subdirectories
ofiles, bin, lib, and Probes.
<ARCH_DIR>/ofiles/ - Directory containing object (.o) files for SCL.
<ARCH_DIR>/ofiles/sdaiOrbix - Directory containing IDL files and
Makefile needed to build and use SCL with Orbix.
<ARCH_DIR>/lib/ - Directory containing library (.a) files for SCL.
<ARCH_DIR>/Probes/ - The <ARCH_DIR>/Probes directory will contain
directories for versions of the Schema Class Library
and Data Probe generated using the mkProbe script
with the -i option.
<ARCH_DIR>/bin/ - The fedex, fedex_plus, fedex_idl, and fedex_os,
exppp, and symlink executables and mkProbe,
sclbuild, and setup-arch scripts are placed in this
directory during installation.
data/ - Directory containing sample EXPRESS files to use to
create SCL applications such as the Data Probe or
Part 21 Reader. Also contains data for some of the
examples.
bin/ - Directory containing various scripts.
man/ - Directory containing man pages for the software in
the release. You may look at the man page by
issuing the command: nroff -man <manpagefile> or by
adding this directory to your MANPATH.
EXAMPLES
========
Example of creating a Data Probe
--------------------------------
To create a new version of the Data Probe run the script mkProbe. For
example, to create a Data Probe based on the "example_schema" EXPRESS
schema included in this release, issue the following command in a
directory from which you would like a subdirectory containing the new
Data Probe to be created:
% mkProbe ~scl/data/example/example.exp example
This command creates a new version of the Data Probe in the file:
% ./example/dp_example
(It also creates subdirectory example/ if it does not exist already.)
Examples of using the STEP Class Library
----------------------------------------
To use the Schema Class Library source code (without the Data Probe
software) refer to the examples in the directory src/test.
Example of a Part 21 file reader
--------------------------------
To create a file reader based on STEP's Part 21 format use the mkProbe
script with the -p option.
% mkProbe -p ~scl/data/example/example.exp example
The executable p21read_example is created. Run it as follows:
% p21read_example your_part_21_file
This program reads a file the name of which is supplied as an
argument to the program. Any errors encountered when reading the file
are reported to standard output. A summary of the file is also
reported. The file is then written back out to a file the name of
which may be supplied as the second argument to the program. If no
name is given, "file.out" is used.
FOR MORE INFORMATION
====================
SCL HOME PAGE
-------------
The SCL home page is located on the world wide web at,
http://www.nist.gov/scl
The SCL home page will provide important, up-to-date information on
the status of the SCL, new developments and fixes, links to related
software and projects, and may eventually contain an FAQ sheet.
SCL DOCUMENTATION
-----------------
Documentation can be accessed from the SCL world wide web home page
located at http://www.nist.gov/scl
The following files (in postscript format) are particularly relevant:
Design of a C++ Software Library for Implementing EXPRESS: The NIST
STEP Class Library
Data Probe User's Guide
Data Probe: A Tool for EXPRESS-based Data
Architecture for the Validation Testing System Software
Validation Testing System Software Reusable Software Component Design
Diagrams of basic SCL data structures
ISO DOCUMENTATION
-----------------
Copies of the International Standard documents (including STEP Part 11
the EXPRESS Language Reference Manual, Part 21 the STEP Exchange File
Format, Part 22 STEP's Standard Data Access Interface, and Part 23 the
C++ language binding to SDAI) can be ordered from the ISO
International Organization of Standardization or your national
body. The United States distribution is managed by the US Product Data
Exchange Association at:
U.S. Product Data Association (USPro)
Trident Research Center, Suite 204
5300 International Blvd.
N. Charleston, SC 29418
http://www.uspro.scra.org
uspro@scra.org
Ph: 803-760-3327
FAX: 803-760-3349
MAILING LIST
------------
Announcements of new releases or bug fixes will also be sent to the
mailing list scl@cme.nist.gov. To be added to the scl mailing list
send a request to majordomo@cme.nist.gov. Include in the body of the
message:
subscribe scl
For additional help, include in the body of the message:
help
If you use a signature within your email, end your majordomo
command sequence with the word "end". For example,
subscribe scl
end
REPORTING PROBLEMS AND SUGGESTIONS
==================================
We would like feedback on all parts of the software. Please let us
know if you
- have problems following the instructions in the README file,
- have problems installing the software,
- have problems compiling your own valid EXPRESS schema, or
- have suggestions for improvements to the software.
- really like the software :)
Send your comments to
stepcl@cme.nist.gov
(For users of version 2, note the new mailing address of "stepcl...".)
Questions about availability or accessing the software should be
directed to the SOLIS administrator
Gaylen Rinaudot
npt-info@cme.nist.gov
301-975-3386
ACKNOWLEDGMENTS
===============
The STEP Class Library (SCL) was developed by the Manufacturing
Systems Integration Division at the National Institute of Standards
and Technology (http://www.mel/nist.gov/msid) to support testing of
the Standard for the Exchange of Product Model Data (a.k.a STEP) and
validation of STEP's emerging implementation specifications. Funding
for the project has come from the U.S. Department of Commerce, and the
Department of Defense agencies including the Office of the Defense
CALS (Continuous Acquisition and Life-Cycle Support) Executive and the
Defense Advanced Research Projects Agency (DARPA). Recent
enhancements were sponsored by the National Industrial Information
Infrastructure Consortium (NIIIP) (http://www.niiip.org) and the NAMT
Framework project
(http://www.mel.nist.gov/msid/projs/97projs/framewrk.htm) of NIST's
Systems Integration for Manufacturing Applications (SIMA) program
(http://www.mel.nist.gov/msid/sima/sima.htm).
LICENSING RESTRICTIONS and DISCLAIMERS
======================================
This software was produced by the National Institute of Standards and
Technology (NIST), an agency of the U.S. government, and by statute
is not subject to copyright in the United States. Recipients of this
software assume all responsibility associated with its operation,
modification, maintenance, and subsequent re-distribution.
There is no warranty for the NIST STEP Toolkit.
If the NIST STEP Toolkit is modified by someone else and passed on,
NIST wants the Toolkit's recipients to know that what they have is not
what NIST originally distributed.
Distribution Rights
1. Anyone may copy and distribute verbatim copies of the NIST STEP Toolkit
source code as received in any medium.
2. Anyone may modify their copy or copies of the NIST STEP Toolkit source
code or any portion of it, and copy and distribute such modifications
provided that all modifications are clearly associated with the entity
that performs the modifications.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!DISCLAIMERS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Names of companies and products are provided in order to adequately
specify procedures and equipment used. In no case does such
identification imply recommendation or endorsement by the National
Institute of Standards and Technology, nor does it imply that the
products are necessarily the best available for the purpose.
NO WARRANTY
===========
NIST PROVIDES ABSOLUTELY NO WARRANTY. THE NIST STEP TOOLKIT
IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS
WITH YOU. SHOULD ANY PORTION OF THE NIST STEP TOOLKIT PROVE DEFECTIVE,
YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.
IN NO EVENT WILL NIST BE LIABLE FOR DAMAGES, INCLUDING ANY LOST
PROFITS, LOST MONIES, OR OTHER SPECIAL, INCIDENTAL OR CONSEQUENTIAL
DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE (INCLUDING BUT NOT
LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE, OR LOSSES
SUSTAINED BY THIRD PARTIES, OR A FAILURE OF THE PROGRAM TO OPERATE
WITH PROGRAMS NOT DISTRIBUTED BY NIST) THE PROGRAMS, EVEN IF YOU HAVE
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY
ANY OTHER PARTY.
-61
View File
@@ -1,61 +0,0 @@
![Build Status](https://github.com/stepcode/stepcode/actions/workflows/build.yml/badge.svg?branch=develop)
***********************************************************************
STEPcode v0.8 -- github.com/stepcode/stepcode
* What is STEPcode? SC reads ISO10303-11 EXPRESS schemas and generates
C++ source code that can read and write Part 21 files conforming
to that schema. In addition to C++, SC includes experimental
support for Python.
* Renamed in April/May 2012: SC was formerly known as STEP Class
Libraries, SCL for short. It was renamed because the name wasn't
accurate: the class libraries make up only a part of the code.
* Much of the work to update SC has been done by the developers of
BRL-CAD, and SC (then STEP Class Library) was originally created at
NIST in the 90's.
* For information on changes version-by-version, see the NEWS file
* Building and testing SCL - see the INSTALL file
* For more details on the libraries and executables, see the wiki:
http://github.com/stepcode/stepcode/wiki/About-STEPcode
* For license details, see the COPYING file. Summary: 3-clause BSD.
***********************************************************************
***********************************************************************
CODING STANDARDS
SC's source has been reformatted with astyle. When making changes, try
to match the current formatting. The main points are:
- compact (java-style) brackets:
```C
if( a == 3 ) {
c = 5;
function( a, b );
} else {
somefunc( );
}
```
- indents are 4 spaces
- no tab characters
- line endings are LF (linux), not CRLF (windows)
- brackets around single-line conditionals
- spaces inside parentheses and around operators
- return type on the same line as the function name, unless that's
too long
- doxygen-style comments
(see http://www.stack.nl/~dimitri/doxygen/docblocks.html)
If in doubt about a large patch, run astyle with the config file
misc/astyle.cfg.
Download astyle from http://sourceforge.net/projects/astyle/files/astyle/
***********************************************************************
For more info, see the wiki.
+1
View File
@@ -0,0 +1 @@
0.5
+6
View File
@@ -0,0 +1,6 @@
(from BRL-CAD)
* rewrite express parser to not require lex/yacc
* verify/fix step parser generation with newer AP schemas, seems to be
outputting invalid syntax.
+84
View File
@@ -0,0 +1,84 @@
# - Check if the given C source code compiles and runs.
# CHECK_C_SOURCE_RUNS(<code> <var>)
# <code> - source code to try to compile
# <var> - variable to store the result
# (1 for success, empty for failure)
# The following variables may be set before calling this macro to
# modify the way the check is run:
#
# CMAKE_REQUIRED_FLAGS = string of compile command line flags
# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
# CMAKE_REQUIRED_INCLUDES = list of include directories
# CMAKE_REQUIRED_LIBRARIES = list of libraries to link
#=============================================================================
# Copyright 2006-2009 Kitware, Inc.
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
# (To distributed this file outside of CMake, substitute the full
# License text for the above reference.)
MACRO(CHECK_C_FILE_RUNS SOURCE VAR)
IF("${VAR}" MATCHES "^${VAR}$")
SET(MACRO_CHECK_FUNCTION_DEFINITIONS
"-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
IF(CMAKE_REQUIRED_LIBRARIES)
SET(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES
"-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
ELSE(CMAKE_REQUIRED_LIBRARIES)
SET(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES)
ENDIF(CMAKE_REQUIRED_LIBRARIES)
IF(CMAKE_REQUIRED_INCLUDES)
SET(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES
"-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
ELSE(CMAKE_REQUIRED_INCLUDES)
SET(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES)
ENDIF(CMAKE_REQUIRED_INCLUDES)
MESSAGE(STATUS "Performing Test ${VAR}")
TRY_RUN(${VAR}_EXITCODE ${VAR}_COMPILED
${CMAKE_BINARY_DIR}
${SOURCE}
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} ${FILE_RUN_DEFINITIONS}
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
-DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
"${CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES}"
"${CHECK_C_SOURCE_COMPILES_ADD_INCLUDES}"
COMPILE_OUTPUT_VARIABLE OUTPUT)
# if it did not compile make the return value fail code of 1
IF(NOT ${VAR}_COMPILED)
SET(${VAR}_EXITCODE 1)
ENDIF(NOT ${VAR}_COMPILED)
# if the return value was 0 then it worked
IF("${${VAR}_EXITCODE}" EQUAL 0)
SET(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
MESSAGE(STATUS "Performing Test ${VAR} - Success")
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
"Performing C SOURCE FILE Test ${VAR} succeded with the following output:\n"
"${OUTPUT}\n"
"Return value: ${${VAR}}\n"
"Source file was:\n${SOURCE}\n")
ELSE("${${VAR}_EXITCODE}" EQUAL 0)
IF(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
SET(${VAR} "${${VAR}_EXITCODE}")
ELSE(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
SET(${VAR} "" CACHE INTERNAL "Test ${VAR}")
ENDIF(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES "FAILED_TO_RUN")
MESSAGE(STATUS "Performing Test ${VAR} - Failed")
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
"Performing C SOURCE FILE Test ${VAR} failed with the following output:\n"
"${OUTPUT}\n"
"Return value: ${${VAR}_EXITCODE}\n"
"Source file was:\n${SOURCE}\n")
ENDIF("${${VAR}_EXITCODE}" EQUAL 0)
ENDIF("${VAR}" MATCHES "^${VAR}$")
ENDMACRO(CHECK_C_FILE_RUNS)
-189
View File
@@ -1,189 +0,0 @@
#
# - Find lemon executable and provides macros to generate custom build rules
# The module defines the following variables
#
# LEMON_EXECUTABLE - path to the lemon program
# LEMON_TEMPLATE - location of the lemon template file
#=============================================================================
# F I N D L E M O N . C M A K E
#
# Originally based off of FindBISON.cmake from Kitware's CMake distribution
#
# Copyright (c) 2010-2016 United States Government as represented by
# the U.S. Army Research Laboratory.
# Copyright 2009 Kitware, Inc.
# Copyright 2006 Tristan Carel
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# * The names of the authors may not be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#=============================================================================
find_program(LEMON_EXECUTABLE lemon DOC "path to the lemon executable")
mark_as_advanced(LEMON_EXECUTABLE)
if (LEMON_EXECUTABLE)
if(NOT LEMON_TEMPLATE)
# look for the template, if we've not already been told where it is
if (DATA_DIR AND EXISTS "${DATA_DIR}/lemon/lempar.c")
find_file(LEMON_TEMPLATE lempar.c
PATHS "${DATA_DIR}/lemon/lempar.c"
NO_DEFAULT_PATH)
endif ()
# If the above did not succeed, check standard locations
get_filename_component(lemon_dir ${LEMON_EXECUTABLE} DIRECTORY)
find_file(LEMON_TEMPLATE lempar.c
PATHS "${lemon_dir}" "/usr/share/lemon"
NO_DEFAULT_PATH)
mark_as_advanced(LEMON_TEMPLATE)
endif()
# We need a template to be able to use lemon correctly
if(NOT LEMON_TEMPLATE)
message(FATAL_ERROR "Failed to find lemon template file (lempar.c) - need to set LEMON_TEMPLATE")
endif()
# Define the function
# LEMON_TARGET(<Name> <LemonInput> <LemonSource> <LemonHeader>
# [<ArgString>])
# which will create a custom rule to generate a parser. <LemonInput> is
# the path to a lemon file. <LemonSource> is the desired name for the
# generated source file. <LemonHeader> is the desired name for the
# generated header which contains the token list. Anything in the optional
# <ArgString> parameter is appended to the lemon command line.
#
# ====================================================================
# Example:
#
# find_package(LEMON)
# LEMON_TARGET(MyParser parser.y parser.c parser.h)
# add_executable(Foo main.cpp ${LEMON_MyParser_OUTPUTS})
# ====================================================================
include(CMakeParseArguments)
if(NOT COMMAND LEMON_TARGET)
function(LEMON_TARGET Name LemonInput LemonOutput)
set(LT_ARGS DEFINES_FILE COMPILE_FLAGS)
cmake_parse_arguments(LEMON_TARGET_ARG "" "${LT_ARGS}" "" ${ARGN})
if(NOT "${LEMON_TARGET_ARG_COMPILE_FLAGS}" STREQUAL "")
set(LEMON_EXECUTABLE_opts "${LEMON_TARGET_ARG_COMPILE_FLAGS}")
separate_arguments(LEMON_EXECUTABLE_opts)
else()
set(LEMON_EXECUTABLE_opts "")
endif()
# check for LemonOutput
get_filename_component(_basename ${LemonOutput} NAME_WE)
get_filename_component(_out_src_file ${LemonOutput} NAME)
get_filename_component(_out_dir ${LemonOutput} PATH)
if(NOT "${_out_dir}" STREQUAL "")
message(WARNING "Full path specified for LemonOutput - should be filename only")
endif()
# set report file
set(_out_rpt_file "${_basename}.out")
# check for DEFINES_FILE
if ("${LEMON_TARGET_ARG_DEFINES_FILE}" STREQUAL "")
set(_out_hdr_file "${_basename}.h")
else()
get_filename_component(_out_dir ${LEMON_TARGET_ARG_DEFINES_FILE} PATH)
get_filename_component(_out_hdr_file ${LEMON_TARGET_ARG_DEFINES_FILE} NAME)
if(NOT "${_out_dir}" STREQUAL "")
message(WARNING "Full path specified for DEFINES_FILE - should be filename only")
endif()
endif()
# input file
get_filename_component(_in_y_path ${LemonInput} ABSOLUTE)
get_filename_component(_in_y_file ${LemonInput} NAME)
# Stage the source file in the binary directory for lemon. We need to make
# sure it's fully copied, so use a sentinel guard
add_custom_command(
OUTPUT ${_in_y_file}
COMMAND ${CMAKE_COMMAND} -E copy ${_in_y_path} ${CMAKE_CURRENT_BINARY_DIR}
)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_in_y_file}.sentinel
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/${_in_y_file}.sentinel
DEPENDS ${_in_y_file}
)
add_custom_target(${Name}_input_cpy DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${_in_y_file}.sentinel)
# execute lemon
add_custom_command(
OUTPUT ${_out_src_file}
COMMAND ${LEMON_EXECUTABLE} -T${LEMON_TEMPLATE} ${LEMON_EXECUTABLE_opts} ${_in_y_file}
DEPENDS ${Name}_input_cpy
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "[LEMON][${Name}] Building parser with ${LEMON_EXECUTABLE}"
)
# rename the header
add_custom_command(
OUTPUT ${_out_hdr_file}
COMMAND ${CMAKE_COMMAND} ARGS -E rename ${_basename}.h ${_out_hdr_file}
DEPENDS ${_out_src_file}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
# set the return values
# TODO: for generated sources even headers should be target dependencies
set(LEMON_${Name}_DEFINED TRUE PARENT_SCOPE)
set(LEMON_${Name}_OUTPUT_HEADER "${CMAKE_CURRENT_BINARY_DIR}/${_out_hdr_file}" PARENT_SCOPE)
set(LEMON_${Name}_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}" PARENT_SCOPE)
set(LEMON_${Name}_OUTPUTS "${_out_src_file}" PARENT_SCOPE)
# TODO - remove once perplex goes away...
add_custom_target(${Name} DEPENDS ${_out_hdr_file})
# make sure we clean up generated output and copied input
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${_out_src_file}")
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_BINARY_DIR}/${_in_y_file}")
endfunction(LEMON_TARGET)
endif(NOT COMMAND LEMON_TARGET)
endif(LEMON_EXECUTABLE)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(LEMON REQUIRED_VARS LEMON_EXECUTABLE LEMON_TEMPLATE)
#============================================================
# FindLEMON.cmake ends here
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
+161
View File
@@ -0,0 +1,161 @@
# - Find lex executable and provides a macro to generate custom build rules
#
# The module defines the following variables:
# LEX_FOUND - true is lex executable is found
# LEX_EXECUTABLE - the path to the lex executable
# LEX_LIBRARIES - The lex libraries
#
# If lex is found on the system, the module provides the macro:
# LEX_TARGET(Name FlexInput FlexOutput [COMPILE_FLAGS <string>])
# which creates a custom command to generate the <FlexOutput> file from
# the <FlexInput> file. If COMPILE_FLAGS option is specified, the next
# parameter is added to the lex command line. Name is an alias used to
# get details of this custom command. Indeed the macro defines the
# following variables:
# LEX_${Name}_DEFINED - true is the macro ran successfully
# LEX_${Name}_OUTPUTS - the source file generated by the custom rule, an
# alias for FlexOutput
# LEX_${Name}_INPUT - the lex source file, an alias for ${FlexInput}
#
# Flex scanners oftenly use tokens defined by Yacc: the code generated
# by Flex depends of the header generated by Yacc. This module also
# defines a macro:
# ADD_LEX_YACC_DEPENDENCY(FlexTarget YaccTarget)
# which adds the required dependency between a scanner and a parser
# where <FlexTarget> and <YaccTarget> are the first parameters of
# respectively LEX_TARGET and YACC_TARGET macros.
#
# ====================================================================
# Example:
#
# find_package(YACC)
# find_package(LEX)
#
# YACC_TARGET(MyParser parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp
# LEX_TARGET(MyScanner lexer.l ${CMAKE_CURRENT_BIANRY_DIR}/lexer.cpp)
# ADD_LEX_YACC_DEPENDENCY(MyScanner MyParser)
#
# include_directories(${CMAKE_CURRENT_BINARY_DIR})
# add_executable(Foo
# Foo.cc
# ${YACC_MyParser_OUTPUTS}
# ${LEX_MyScanner_OUTPUTS}
# )
# ====================================================================
#
#=============================================================================
# Copyright 2010 United States Government as represented by
# the U.S. Army Research Laboratory.
# Copyright 2009 Kitware, Inc.
# Copyright 2006 Tristan Carel
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# * The names of the authors may not be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#=============================================================================
FIND_PROGRAM(LEX_EXECUTABLE flex DOC "path to the lex executable")
IF(NOT LEX_EXECUTABLE)
FIND_PROGRAM(LEX_EXECUTABLE lex DOC "path to the lex executable")
ENDIF(NOT LEX_EXECUTABLE)
MARK_AS_ADVANCED(LEX_EXECUTABLE)
FIND_LIBRARY(FL_LIBRARY NAMES fl
DOC "path to the fl library")
MARK_AS_ADVANCED(FL_LIBRARY)
SET(LEX_LIBRARIES ${FL_LIBRARY})
IF(LEX_EXECUTABLE)
#============================================================
# LEX_TARGET (public macro)
#============================================================
#
MACRO(LEX_TARGET Name Input Output)
SET(LEX_TARGET_usage "LEX_TARGET(<Name> <Input> <Output> [COMPILE_FLAGS <string>]")
IF(${ARGC} GREATER 3)
IF(${ARGC} EQUAL 5)
IF("${ARGV3}" STREQUAL "COMPILE_FLAGS")
SET(LEX_EXECUTABLE_opts "${ARGV4}")
SEPARATE_ARGUMENTS(LEX_EXECUTABLE_opts)
ELSE()
MESSAGE(SEND_ERROR ${LEX_TARGET_usage})
ENDIF()
ELSE()
MESSAGE(SEND_ERROR ${LEX_TARGET_usage})
ENDIF()
ENDIF()
ADD_CUSTOM_COMMAND(OUTPUT ${Output}
COMMAND ${LEX_EXECUTABLE}
ARGS ${LEX_EXECUTABLE_opts} -o${Output} ${Input}
DEPENDS ${Input}
COMMENT "[LEX][${Name}] Building scanner with ${LEX_EXECUTABLE}"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
SET(LEX_${Name}_DEFINED TRUE)
SET(LEX_${Name}_OUTPUTS ${Output})
SET(LEX_${Name}_INPUT ${Input})
SET(LEX_${Name}_COMPILE_FLAGS ${LEX_EXECUTABLE_opts})
ENDMACRO(LEX_TARGET)
#============================================================
#============================================================
# ADD_LEX_YACC_DEPENDENCY (public macro)
#============================================================
#
MACRO(ADD_LEX_YACC_DEPENDENCY FlexTarget YaccTarget)
IF(NOT LEX_${FlexTarget}_OUTPUTS)
MESSAGE(SEND_ERROR "Flex target `${FlexTarget}' does not exists.")
ENDIF()
IF(NOT YACC_${YaccTarget}_OUTPUT_HEADER)
MESSAGE(SEND_ERROR "Yacc target `${YaccTarget}' does not exists.")
ENDIF()
SET_SOURCE_FILES_PROPERTIES(${LEX_${FlexTarget}_OUTPUTS}
PROPERTIES OBJECT_DEPENDS ${YACC_${YaccTarget}_OUTPUT_HEADER})
ENDMACRO(ADD_LEX_YACC_DEPENDENCY)
#============================================================
#Need to run a test lex file to determine if YYTEXT_POINTER needs
#to be defined
EXEC_PROGRAM(${LEX_EXECUTABLE} ARGS ${CMAKE_SOURCE_DIR}/misc/CMake/test_srcs/lex_test.l -o ${CMAKE_BINARY_DIR}/CMakeTmp/lex_test.c RETURN_VALUE _retval OUTPUT_VARIABLE _lexOut)
INCLUDE (CheckCFileRuns)
SET(FILE_RUN_DEFINITIONS "-DYYTEXT_POINTER=1")
CHECK_C_FILE_RUNS(${CMAKE_CURRENT_SOURCE_DIR}/cmake/test_srcs/sys_wait_test.c YYTEXT_POINTER)
SET(FILE_RUN_DEFINITIONS)
ENDIF(LEX_EXECUTABLE)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(LEX DEFAULT_MSG LEX_EXECUTABLE)
# FindLEX.cmake ends here
-268
View File
@@ -1,268 +0,0 @@
#
# - Find perplex executable and provides macros to generate custom build rules
# The module defines the following variables
#
# PERPLEX_EXECUTABLE - path to the perplex program
# PERPLEX_TEMPLATE - location of the perplex template file
#=============================================================================
# F I N D P E R P L E X . C M A K E
#
# Originally based off of FindBISON.cmake from Kitware's CMake distribution
#
# Copyright (c) 2010-2016 United States Government as represented by
# the U.S. Army Research Laboratory.
# Copyright 2009 Kitware, Inc.
# Copyright 2006 Tristan Carel
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# * The names of the authors may not be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#=============================================================================
find_program(PERPLEX_EXECUTABLE perplex DOC "path to the perplex executable")
mark_as_advanced(PERPLEX_EXECUTABLE)
if(PERPLEX_EXECUTABLE AND NOT PERPLEX_TEMPLATE)
get_filename_component(perplex_path ${PERPLEX_EXECUTABLE} PATH)
if(perplex_path)
set(PERPLEX_TEMPLATE "")
if(EXISTS ${perplex_path}/../share/perplex/perplex_template.c)
get_filename_component(perplex_template_path "${perplex_path}/../share/perplex/perplex_template.c" ABSOLUTE)
set(PERPLEX_TEMPLATE "${perplex_template_path}")
endif(EXISTS ${perplex_path}/../share/perplex/perplex_template.c)
if(EXISTS ${perplex_path}/../share/perplex_template.c AND NOT PERPLEX_TEMPLATE)
get_filename_component(perplex_template_path "${perplex_path}/../share/perplex_template.c" ABSOLUTE)
set(PERPLEX_TEMPLATE "${perplex_template_path}")
endif(EXISTS ${perplex_path}/../share/perplex_template.c AND NOT PERPLEX_TEMPLATE)
endif(perplex_path)
if(EXISTS /usr/share/perplex/perplex_template.c AND NOT PERPLEX_TEMPLATE)
set(PERPLEX_TEMPLATE "/usr/share/perplex/perplex_template.c")
endif(EXISTS /usr/share/perplex/perplex_template.c AND NOT PERPLEX_TEMPLATE)
endif(PERPLEX_EXECUTABLE AND NOT PERPLEX_TEMPLATE)
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PERPLEX DEFAULT_MSG PERPLEX_EXECUTABLE PERPLEX_TEMPLATE)
mark_as_advanced(PERPLEX_TEMPLATE)
# Defines two macros - PERPLEX_TARGET, which takes perplex inputs and
# runs both perplex and re2c to generate C source code/headers, and
# ADD_PERPLEX_LEMON_DEPENDENCY which is used to set up dependencies between
# scanner and parser targets when necessary.
#
# #====================================================================
# Example:
#
# find_package(LEMON)
# find_package(RE2C)
# find_package(PERPLEX)
#
# LEMON_TARGET(MyParser parser.y "${CMAKE_CURRENT_BINARY_DIR}/parser.cpp")
# PERPLEX_TARGET(MyScanner scanner.re "${CMAKE_CURRENT_BINARY_DIR}/scanner.cpp" "${CMAKE_CURRENT_BINARY_DIR}/scanner_header.hpp")
# ADD_PERPLEX_LEMON_DEPENDENCY(MyScanner MyParser)
#
# include_directories("${CMAKE_CURRENT_BINARY_DIR}")
# add_executable(Foo
# Foo.cc
# ${LEMON_MyParser_OUTPUTS}
# ${PERPLEX_MyScanner_OUTPUTS}
# )
# ====================================================================
#
#=============================================================================
#
# Originally based off of FindBISON.cmake from Kitware's CMake distribution
#
# Copyright (c) 2010-2016 United States Government as represented by
# the U.S. Army Research Laboratory.
# Copyright 2009 Kitware, Inc.
# Copyright 2006 Tristan Carel
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# * The names of the authors may not be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#=============================================================================
#============================================================
# PERPLEX_TARGET (public macro)
#============================================================
include(CMakeParseArguments)
if(NOT COMMAND PERPLEX_TARGET)
macro(PERPLEX_TARGET Name Input)
get_filename_component(IN_FILE_WE ${Input} NAME_WE)
set(PVAR_PREFIX ${Name}_${IN_FILE_WE})
if(${ARGC} GREATER 3)
CMAKE_PARSE_ARGUMENTS(${PVAR_PREFIX} "" "TEMPLATE;OUT_SRC_FILE;OUT_HDR_FILE;WORKING_DIR" "" ${ARGN})
endif(${ARGC} GREATER 3)
# Need a working directory
if("${${PVAR_PREFIX}_WORKING_DIR}" STREQUAL "")
set(${PVAR_PREFIX}_WORKING_DIR "${CMAKE_CURRENT_BINARY_DIR}/${PVAR_PREFIX}")
endif("${${PVAR_PREFIX}_WORKING_DIR}" STREQUAL "")
file(MAKE_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR})
# Set up intermediate and final output names
# Output source file
if ("${${PVAR_PREFIX}_OUT_SRC_FILE}" STREQUAL "")
set(${PVAR_PREFIX}_OUT_SRC_FILE ${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE_WE}.c)
else ("${${PVAR_PREFIX}_OUT_SRC_FILE}" STREQUAL "")
get_filename_component(specified_out_dir ${${PVAR_PREFIX}_OUT_SRC_FILE} PATH)
if(NOT "${specified_out_dir}" STREQUAL "")
message(FATAL_ERROR "\nFull path specified for OUT_SRC_FILE - should be filename only.\n")
endif(NOT "${specified_out_dir}" STREQUAL "")
set(${PVAR_PREFIX}_OUT_SRC_FILE ${${PVAR_PREFIX}_WORKING_DIR}/${${PVAR_PREFIX}_OUT_SRC_FILE})
endif ("${${PVAR_PREFIX}_OUT_SRC_FILE}" STREQUAL "")
# Output header file
if ("${${PVAR_PREFIX}_OUT_HDR_FILE}" STREQUAL "")
set(${PVAR_PREFIX}_OUT_HDR_FILE ${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE_WE}.h)
else ("${${PVAR_PREFIX}_OUT_HDR_FILE}" STREQUAL "")
get_filename_component(specified_out_dir ${${PVAR_PREFIX}_OUT_HDR_FILE} PATH)
if(NOT "${specified_out_dir}" STREQUAL "")
message(FATAL_ERROR "\nFull path specified for OUT_HDR_FILE - should be filename only.\n")
endif(NOT "${specified_out_dir}" STREQUAL "")
set(${PVAR_PREFIX}_OUT_HDR_FILE ${${PVAR_PREFIX}_WORKING_DIR}/${${PVAR_PREFIX}_OUT_HDR_FILE})
endif ("${${PVAR_PREFIX}_OUT_HDR_FILE}" STREQUAL "")
# input file
get_filename_component(in_full ${Input} ABSOLUTE)
if("${in_full}" STREQUAL "${Input}")
set(perplex_in_file ${Input})
else("${in_full}" STREQUAL "${Input}")
set(perplex_in_file "${CMAKE_CURRENT_SOURCE_DIR}/${Input}")
endif("${in_full}" STREQUAL "${Input}")
# Intermediate file
set(re2c_src "${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE_WE}.re")
# Make sure we have a template
if ("${${PVAR_PREFIX}_TEMPLATE}" STREQUAL "")
if(PERPLEX_TEMPLATE)
set(${PVAR_PREFIX}_TEMPLATE ${PERPLEX_TEMPLATE})
else(PERPLEX_TEMPLATE)
message(FATAL_ERROR "\nNo Perplex template file specified - please specify the file using the PERPLEX_TEMPLATE variable:\ncmake .. -DPERPLEX_TEMPLATE=/path/to/template_file.c\n")
endif(PERPLEX_TEMPLATE)
endif ("${${PVAR_PREFIX}_TEMPLATE}" STREQUAL "")
get_filename_component(IN_FILE ${Input} NAME)
add_custom_command(
OUTPUT ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE} ${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE}
COMMAND ${CMAKE_COMMAND} -E copy ${perplex_in_file} ${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE}
COMMAND ${PERPLEX_EXECUTABLE} -c -o ${re2c_src} -i ${${PVAR_PREFIX}_OUT_HDR_FILE} -t ${${PVAR_PREFIX}_TEMPLATE} ${${PVAR_PREFIX}_WORKING_DIR}/${IN_FILE}
DEPENDS ${Input} ${${PVAR_PREFIX}_TEMPLATE} ${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
WORKING_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR}
COMMENT "[PERPLEX][${Name}] Generating re2c input with ${PERPLEX_EXECUTABLE}"
)
if(NOT DEBUGGING_GENERATED_SOURCES)
add_custom_command(
OUTPUT ${${PVAR_PREFIX}_OUT_SRC_FILE}
COMMAND ${RE2C_EXECUTABLE} --no-debug-info --no-generation-date -c -o ${${PVAR_PREFIX}_OUT_SRC_FILE} ${re2c_src}
DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE} ${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
WORKING_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR}
COMMENT "[RE2C][${Name}] Building scanner with ${RE2C_EXECUTABLE}"
)
else(NOT DEBUGGING_GENERATED_SOURCES)
add_custom_command(
OUTPUT ${${PVAR_PREFIX}_OUT_SRC_FILE}
COMMAND ${RE2C_EXECUTABLE} --no-generation-date -c -o ${${PVAR_PREFIX}_OUT_SRC_FILE} ${re2c_src}
DEPENDS ${Input} ${re2c_src} ${${PVAR_PREFIX}_OUT_HDR_FILE} ${PERPLEX_EXECUTABLE_TARGET} ${RE2C_EXECUTABLE_TARGET}
WORKING_DIRECTORY ${${PVAR_PREFIX}_WORKING_DIR}
COMMENT "[RE2C][${Name}] Building scanner with ${RE2C_EXECUTABLE}"
)
endif(NOT DEBUGGING_GENERATED_SOURCES)
set(PERPLEX_${Name}_DEFINED TRUE)
set(PERPLEX_${Name}_SRC ${${PVAR_PREFIX}_OUT_SRC_FILE})
set(PERPLEX_${Name}_HDR ${${PVAR_PREFIX}_OUT_HDR_FILE})
set(PERPLEX_${Name}_INCLUDE_DIR ${${PVAR_PREFIX}_WORKING_DIR})
add_custom_command(
OUTPUT ${${PVAR_PREFIX}_WORKING_DIR}/${Name}.sentinel
COMMAND ${CMAKE_COMMAND} -E touch ${${PVAR_PREFIX}_WORKING_DIR}/${Name}.sentinel
DEPENDS ${${PVAR_PREFIX}_OUT_SRC_FILE} ${${PVAR_PREFIX}_OUT_HDR_FILE}
)
add_custom_target(${Name} DEPENDS ${${PVAR_PREFIX}_WORKING_DIR}/${Name}.sentinel)
endmacro(PERPLEX_TARGET)
endif(NOT COMMAND PERPLEX_TARGET)
#============================================================
# ADD_PERPLEX_LEMON_DEPENDENCY (public macro)
#============================================================
if(NOT COMMAND ADD_PERPLEX_LEMON_DEPENDENCY)
macro(ADD_PERPLEX_LEMON_DEPENDENCY PERPLEXTarget LemonTarget)
if(NOT PERPLEX_${PERPLEXTarget}_SRC)
message(SEND_ERROR "PERPLEX target `${PERPLEXTarget}' does not exists.")
endif()
if(NOT TARGET ${LemonTarget})
message(SEND_ERROR "Lemon target `${LemonTarget}' does not exists.")
endif()
set_source_files_properties(${PERPLEX_${PERPLEXTarget}_SRC}
PROPERTIES OBJECT_DEPENDS ${LEMON_${LemonTarget}_OUTPUT_HEADER})
endmacro(ADD_PERPLEX_LEMON_DEPENDENCY)
endif(NOT COMMAND ADD_PERPLEX_LEMON_DEPENDENCY)
#============================================================
# FindPERPLEX.cmake ends here
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
-174
View File
@@ -1,174 +0,0 @@
# The module defines the following variables:
# RE2C_EXECUTABLE - the path to the re2c executable
#
#=============================================================================
find_program(RE2C_EXECUTABLE re2c DOC "path to the re2c executable")
mark_as_advanced(RE2C_EXECUTABLE)
if(RE2C_EXECUTABLE)
execute_process(COMMAND ${RE2C_EXECUTABLE} -v
OUTPUT_VARIABLE RE2C_version_output
ERROR_VARIABLE RE2C_version_error
RESULT_VARIABLE RE2C_version_result
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(NOT ${RE2C_version_result} EQUAL 0)
message(SEND_ERROR
"Command \"${RE2C_EXECUTABLE} -v\" failed with output:\n${RE2C_version_output}\n${RE2C_version_error}")
else()
string(REGEX REPLACE "^re2c ([0-9]+[^ ]*)( .*)?$" "\\1" RE2C_VERSION "${RE2C_version_output}")
endif()
# Provide a macro to generate custom build rules:
# RE2C_TARGET(Name RE2CInput RE2COutput [COMPILE_FLAGS <string>])
# which creates a custom command to generate the <RE2COutput> file from
# the <RE2CInput> file. If COMPILE_FLAGS option is specified, the next
# parameter is added to the re2c command line. Name is an alias used to
# get details of this custom command.
# This module also defines a macro:
# ADD_RE2C_LEMON_DEPENDENCY(RE2CTarget LemonTarget)
# which adds the required dependency between a scanner and a parser
# where <RE2CTarget> and <LemonTarget> are the first parameters of
# respectively RE2C_TARGET and LEMON_TARGET macros.
#
# ====================================================================
# Example:
#
# find_package(LEMON)
# find_package(RE2C)
#
# LEMON_TARGET(MyParser parser.y "${CMAKE_CURRENT_BINARY_DIR}/parser.cpp")
# RE2C_TARGET(MyScanner scanner.re "${CMAKE_CURRENT_BINARY_DIR}/scanner.cpp")
# ADD_RE2C_LEMON_DEPENDENCY(MyScanner MyParser)
#
# include_directories("${CMAKE_CURRENT_BINARY_DIR}")
# add_executable(Foo
# Foo.cc
# ${LEMON_MyParser_OUTPUTS}
# ${RE2C_MyScanner_OUTPUTS}
# )
# ====================================================================
#
#=============================================================================
# Copyright (c) 2010-2016 United States Government as represented by
# the U.S. Army Research Laboratory.
# Copyright 2009 Kitware, Inc.
# Copyright 2006 Tristan Carel
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# * The names of the authors may not be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#=============================================================================
#============================================================
# RE2C_TARGET (public macro)
#============================================================
#
if(NOT COMMAND RE2C_TARGET)
function(RE2C_TARGET Name RE2CInput RE2COutput)
set(_re2c_args COMPILE_FLAGS DEFINES_FILE)
cmake_parse_arguments(RE2C_TARGET_ARG "" "${_re2c_args}" "" ${ARGN})
if(NOT "${RE2C_TARGET_ARG_UNPARSED_ARGUMENTS}" STREQUAL "")
message(SEND_ERROR "RE2C_TARGET(<Name> <RE2CInput> <RE2COutput>
[COMPILE_FLAGS <string>]
[DEFINES_FILE <string>])")
else()
if(NOT "${RE2C_TARGET_ARG_COMPILE_FLAGS}" STREQUAL "")
set(RE2C_EXECUTABLE_opts "${RE2C_TARGET_ARG_COMPILE_FLAGS}")
separate_arguments(RE2C_EXECUTABLE_opts)
else()
set(RE2C_EXECUTABLE_opts "")
endif()
if(NOT "${RE2C_TARGET_ARG_DEFINES_FILE}" STREQUAL "")
list(APPEND RE2C_EXECUTABLE_opts -t ${RE2C_TARGET_ARG_DEFINES_FILE})
endif()
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${RE2COutput}
COMMAND ${RE2C_EXECUTABLE}
ARGS ${RE2C_EXECUTABLE_opts} -o ${RE2COutput} ${CMAKE_CURRENT_SOURCE_DIR}/${RE2CInput}
DEPENDS ${RE2CInput}
COMMENT "[RE2C][${Name}] Building scanner with ${RE2C_EXECUTABLE}"
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
# TODO: check, for generated sources headers should be included in outputs
set(RE2C_${Name}_DEFINED TRUE PARENT_SCOPE)
set(RE2C_${Name}_OUTPUTS ${RE2COutput} PARENT_SCOPE)
if("${RE2C_TARGET_ARG_DEFINES_FILE}" STREQUAL "")
set(RE2C_${Name}_OUTPUT_HEADER "" PARENT_SCOPE)
else()
set(RE2C_${Name}_OUTPUT_HEADER "${RE2C_TARGET_ARG_DEFINES_FILE}" PARENT_SCOPE)
endif()
set(RE2C_${Name}_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}" PARENT_SCOPE)
endif()
endfunction(RE2C_TARGET)
endif(NOT COMMAND RE2C_TARGET)
#============================================================
#============================================================
# ADD_RE2C_LEMON_DEPENDENCY (public macro)
#============================================================
#
if(NOT COMMAND ADD_RE2C_LEMON_DEPENDENCY)
function(ADD_RE2C_LEMON_DEPENDENCY RE2CTarget LemonTarget)
if(NOT RE2C_${RE2CTarget}_OUTPUTS)
message(SEND_ERROR "RE2C target `${RE2CTarget}' does not exists.")
endif()
if(NOT LEMON_${LemonTarget}_OUTPUT_HEADER)
message(SEND_ERROR "Lemon target `${LemonTarget}' does not exists.")
endif()
set_source_files_properties(${RE2C_${RE2CTarget}_OUTPUTS}
PROPERTIES OBJECT_DEPENDS ${LEMON_${LemonTarget}_OUTPUT_HEADER})
endfunction(ADD_RE2C_LEMON_DEPENDENCY)
endif(NOT COMMAND ADD_RE2C_LEMON_DEPENDENCY)
#============================================================
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(RE2C REQUIRED_VARS RE2C_EXECUTABLE
VERSION_VAR RE2C_VERSION)
# RE2C_Util.cmake ends here
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
+165
View File
@@ -0,0 +1,165 @@
# - Find yacc executable and provides macros to generate custom build rules
# The module defines the following variables
#
# YACC_EXECUTABLE - path to the yacc program
# YACC_FOUND - true if the program was found
#
# If yacc is found, the module defines the macros:
# YACC_TARGET(<Name> <YaccInput> <CodeOutput> [VERBOSE <file>]
# [COMPILE_FLAGS <string>])
# which will create a custom rule to generate a parser. <YaccInput> is
# the path to a yacc file. <CodeOutput> is the name of the source file
# generated by yacc. A header file is also be generated, and contains
# the token list. If COMPILE_FLAGS option is specified, the next
# parameter is added in the yacc command line. if VERBOSE option is
# specified, <file> is created and contains verbose descriptions of the
# grammar and parser. The macro defines a set of variables:
# YACC_${Name}_DEFINED - true is the macro ran successfully
# YACC_${Name}_INPUT - The input source file, an alias for <YaccInput>
# YACC_${Name}_OUTPUT_SOURCE - The source file generated by yacc
# YACC_${Name}_OUTPUT_HEADER - The header file generated by yacc
# YACC_${Name}_OUTPUTS - The sources files generated by yacc
# YACC_${Name}_COMPILE_FLAGS - Options used in the yacc command line
#
# ====================================================================
# Example:
#
# find_package(YACC)
# YACC_TARGET(MyParser parser.y ${CMAKE_CURRENT_BINARY_DIR}/parser.cpp)
# add_executable(Foo main.cpp ${YACC_MyParser_OUTPUTS})
# ====================================================================
#
#=============================================================================
# Copyright 2010 United States Government as represented by
# the U.S. Army Research Laboratory.
# Copyright 2009 Kitware, Inc.
# Copyright 2006 Tristan Carel
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# * The names of the authors may not be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#=============================================================================
FIND_PROGRAM(YACC_EXECUTABLE bison DOC "path to the yacc executable")
IF(NOT YACC_EXECUTABLE)
FIND_PROGRAM(YACC_EXECUTABLE yacc DOC "path to the yacc executable")
ENDIF(NOT YACC_EXECUTABLE)
MARK_AS_ADVANCED(YACC_EXECUTABLE)
IF(YACC_EXECUTABLE)
# internal macro
MACRO(YACC_TARGET_option_verbose Name YaccOutput filename)
LIST(APPEND YACC_TARGET_cmdopt "--verbose")
GET_FILENAME_COMPONENT(YACC_TARGET_output_path "${YaccOutput}" PATH)
GET_FILENAME_COMPONENT(YACC_TARGET_output_name "${YaccOutput}" NAME_WE)
ADD_CUSTOM_COMMAND(OUTPUT ${filename}
COMMAND ${CMAKE_COMMAND}
ARGS -E copy
"${YACC_TARGET_output_path}/${YACC_TARGET_output_name}.output"
"${filename}"
DEPENDS
"${YACC_TARGET_output_path}/${YACC_TARGET_output_name}.output"
COMMENT "[YACC][${Name}] Copying yacc verbose table to ${filename}"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
SET(YACC_${Name}_VERBOSE_FILE ${filename})
LIST(APPEND YACC_TARGET_extraoutputs
"${YACC_TARGET_output_path}/${YACC_TARGET_output_name}.output")
ENDMACRO(YACC_TARGET_option_verbose)
# internal macro
MACRO(YACC_TARGET_option_extraopts Options)
SET(YACC_TARGET_extraopts "${Options}")
SEPARATE_ARGUMENTS(YACC_TARGET_extraopts)
LIST(APPEND YACC_TARGET_cmdopt ${YACC_TARGET_extraopts})
ENDMACRO(YACC_TARGET_option_extraopts)
#============================================================
# YACC_TARGET (public macro)
#============================================================
#
MACRO(YACC_TARGET Name YaccInput YaccOutput)
SET(YACC_TARGET_output_header "")
SET(YACC_TARGET_command_opt "")
SET(YACC_TARGET_outputs "${YaccOutput}")
IF(NOT ${ARGC} EQUAL 3 AND NOT ${ARGC} EQUAL 5 AND NOT ${ARGC} EQUAL 7)
MESSAGE(SEND_ERROR "Usage")
ELSE()
# Parsing parameters
IF(${ARGC} GREATER 5 OR ${ARGC} EQUAL 5)
IF("${ARGV3}" STREQUAL "VERBOSE")
YACC_TARGET_option_verbose(${Name} ${YaccOutput} "${ARGV4}")
ENDIF()
IF("${ARGV3}" STREQUAL "COMPILE_FLAGS")
YACC_TARGET_option_extraopts("${ARGV4}")
ENDIF()
ENDIF()
IF(${ARGC} EQUAL 7)
IF("${ARGV5}" STREQUAL "VERBOSE")
YACC_TARGET_option_verbose(${Name} ${YaccOutput} "${ARGV6}")
ENDIF()
IF("${ARGV5}" STREQUAL "COMPILE_FLAGS")
YACC_TARGET_option_extraopts("${ARGV6}")
ENDIF()
ENDIF()
# Header's name generated by yacc (see option -d)
LIST(APPEND YACC_TARGET_cmdopt "-d")
STRING(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\2" _fileext "${ARGV2}")
STRING(REPLACE "c" "h" _fileext ${_fileext})
STRING(REGEX REPLACE "^(.*)(\\.[^.]*)$" "\\1${_fileext}"
YACC_${Name}_OUTPUT_HEADER "${ARGV2}")
LIST(APPEND YACC_TARGET_outputs "${YACC_${Name}_OUTPUT_HEADER}")
ADD_CUSTOM_COMMAND(OUTPUT ${YACC_TARGET_outputs}
${YACC_TARGET_extraoutputs}
COMMAND ${YACC_EXECUTABLE}
ARGS ${YACC_TARGET_cmdopt} -o ${ARGV2} ${ARGV1}
DEPENDS ${ARGV1}
COMMENT "[YACC][${Name}] Building parser with ${YACC_EXECUTABLE}"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
# define target variables
SET(YACC_${Name}_DEFINED TRUE)
SET(YACC_${Name}_INPUT ${ARGV1})
SET(YACC_${Name}_OUTPUTS ${YACC_TARGET_outputs})
SET(YACC_${Name}_COMPILE_FLAGS ${YACC_TARGET_cmdopt})
SET(YACC_${Name}_OUTPUT_SOURCE "${YaccOutput}")
ENDIF(NOT ${ARGC} EQUAL 3 AND NOT ${ARGC} EQUAL 5 AND NOT ${ARGC} EQUAL 7)
ENDMACRO(YACC_TARGET)
#
#============================================================
ENDIF(YACC_EXECUTABLE)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(YACC DEFAULT_MSG YACC_EXECUTABLE)
# FindYACC.cmake ends here
-164
View File
@@ -1,164 +0,0 @@
# Copyright (c) 2010-2020 United States Government as represented by
# the U.S. Army Research Laboratory.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
#
# 3. The name of the author may not be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#---------------------------------------------------------------------
# Define relative install locations. Don't set these if they have already
# been set by some other means (like a higher level CMakeLists.txt file
# including this one).
# The location in which to install BRL-CAD executables.
if(NOT BIN_DIR)
set(BIN_DIR bin)
endif(NOT BIN_DIR)
# Define a relative path that will "reset" a path back to
# the point before BIN_DIR was appended. This is primarily
# useful when working with generator expressions
unset(RBIN_DIR CACHE)
set(LBIN_DIR "${BIN_DIR}")
while (NOT "${LBIN_DIR}" STREQUAL "")
get_filename_component(LBDIR "${LBIN_DIR}" DIRECTORY)
set(LBIN_DIR "${LBDIR}")
if ("${RBIN_DIR}" STREQUAL "")
set(RBIN_DIR "..")
else ("${RBIN_DIR}" STREQUAL "")
set(RBIN_DIR "../${RBIN_DIR}")
endif ("${RBIN_DIR}" STREQUAL "")
endwhile (NOT "${LBIN_DIR}" STREQUAL "")
# The location in which to install BRL-CAD libraries.
if(NOT LIB_DIR)
set(LIB_DIR lib)
endif(NOT LIB_DIR)
if(NOT LIBEXEC_DIR)
set(LIBEXEC_DIR libexec)
endif(NOT LIBEXEC_DIR)
# The location in which to install BRL-CAD header files.
if(NOT INCLUDE_DIR)
set(INCLUDE_DIR include)
endif(NOT INCLUDE_DIR)
# The location in which to install BRL-CAD data files
if(NOT DATA_DIR)
set(DATA_DIR share)
endif(NOT DATA_DIR)
# The location in which to install BRL-CAD documentation files
if(NOT DOC_DIR)
set(DOC_DIR ${DATA_DIR}/doc)
endif(NOT DOC_DIR)
# The location in which to install BRL-CAD Manual pages
if(NOT MAN_DIR)
set(MAN_DIR ${DATA_DIR}/man)
endif(NOT MAN_DIR)
# Make sure no absolute paths have been supplied to these variables
set(INSTALL_DIRS BIN INCLUDE LIB LIBEXEC DATA MAN DOC)
foreach(instdir ${INSTALL_DIRS})
get_filename_component(instdir_full ${${instdir}_DIR} ABSOLUTE)
if("${${instdir}_DIR}" STREQUAL "${instdir_full}")
message(FATAL_ERROR "Error - absolute path supplied for ${instdir}_DIR. This path must be relative - e.g. \"bin\" instead of \"/usr/bin\"")
set(HAVE_INSTALL_DIR_FULL_PATH 1)
endif("${${instdir}_DIR}" STREQUAL "${instdir_full}")
endforeach(instdir ${INSTALL_DIRS})
#---------------------------------------------------------------------
# Output directories - this is where built library and executable
# files will be placed after building but prior to install. The
# necessary variables change between single and multi configuration
# build systems, so it is necessary to handle both cases on a
# conditional basis.
if(NOT CMAKE_CONFIGURATION_TYPES)
# If we're not doing multi-configuration, just set the three main
# variables to the correct values.
if(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${${PROJECT_NAME}_BINARY_DIR}/${LIB_DIR} CACHE INTERNAL "Single output directory for building all libraries.")
endif(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
if(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${${PROJECT_NAME}_BINARY_DIR}/${LIB_DIR} CACHE INTERNAL "Single output directory for building all archives.")
endif(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
if(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${${PROJECT_NAME}_BINARY_DIR}/${BIN_DIR} CACHE INTERNAL "Single output directory for building all executables.")
endif(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
else(NOT CMAKE_CONFIGURATION_TYPES)
# Multi-configuration is more difficult. Not only do we need to
# properly set the output directories, but we also need to
# identify the "toplevel" directory for each configuration so
# we can place files, documentation, etc. in the correct
# relative positions. Because files may be placed by CMake
# without a build target to put them in their proper relative build
# directory position using these paths, we must fully qualify them
# without using CMAKE_CFG_INTDIR.
#
# We define directories that may not be quite "standard"
# for a particular build tool - for example, native VS2010 projects use
# another directory to denote CPU type being compiled for - but CMake only
# supports multi-configuration setups having multiple configurations,
# not multiple compilers.
#
# One additional wrinkle we must watch for here is the case where
# a multi-configuration setup uses "." for its internal directory -
# if that's the case, we need to just set the various config output
# directories to the same value.
set(CFG_ROOT ${${PROJECT_NAME}_BINARY_DIR})
foreach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
if(NOT "${CMAKE_CFG_INTDIR}" STREQUAL ".")
set(CFG_ROOT ${${PROJECT_NAME}_BINARY_DIR}/${CFG_TYPE})
endif(NOT "${CMAKE_CFG_INTDIR}" STREQUAL ".")
string(TOUPPER "${CFG_TYPE}" CFG_TYPE_UPPER)
if(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER})
set("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}" ${CFG_ROOT}/${LIB_DIR} CACHE INTERNAL "Single output directory for building ${CFG_TYPE} libraries.")
endif(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER})
if(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER})
set("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}" ${CFG_ROOT}/${LIB_DIR} CACHE INTERNAL "Single output directory for building ${CFG_TYPE} archives.")
endif(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER})
if(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER})
set("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER}" ${CFG_ROOT}/${BIN_DIR} CACHE INTERNAL "Single output directory for building ${CFG_TYPE} executables.")
endif(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE_UPPER})
if(NOT DEFINED CMAKE_BINARY_DIR_${CFG_TYPE_UPPER})
set("CMAKE_BINARY_DIR_${CFG_TYPE_UPPER}" ${CFG_ROOT} CACHE INTERNAL "Toplevel binary dir for ${CFG_TYPE} building.")
endif(NOT DEFINED CMAKE_BINARY_DIR_${CFG_TYPE_UPPER})
if(NOT DEFINED ${PROJECT_NAME}_BINARY_DIR_${CFG_TYPE_UPPER})
set("${PROJECT_NAME}_BINARY_DIR_${CFG_TYPE_UPPER}" ${CFG_ROOT} CACHE INTERNAL "Toplevel binary dir for ${CFG_TYPE} building.")
endif(NOT DEFINED ${PROJECT_NAME}_BINARY_DIR_${CFG_TYPE_UPPER})
endforeach()
endif(NOT CMAKE_CONFIGURATION_TYPES)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
+75
View File
@@ -0,0 +1,75 @@
# Will need windows logic someday, even though it doesn't work yet, so go ahead
# and add the DLL_DEFINE macro
MACRO(DLL_DEFINE libname)
IF(MSVC)
STRING(REGEX REPLACE "lib" "" LOWERCORE "${libname}")
STRING(TOUPPER ${LOWERCORE} UPPER_CORE)
add_definitions("-D${UPPER_CORE}_EXPORT_DLL")
ENDIF(MSVC)
ENDMACRO()
MACRO(SCL_ADDEXEC execname srcs libs)
STRING(REGEX REPLACE " " ";" srcslist "${srcs}")
STRING(REGEX REPLACE " " ";" libslist "${libs}")
add_executable(${execname} ${srcslist})
target_link_libraries(${execname} ${libslist})
INSTALL(TARGETS ${execname} DESTINATION bin)
# Enable extra compiler flags if local executables and/or global options dictate
SET(LOCAL_COMPILE_FLAGS "")
FOREACH(extraarg ${ARGN})
IF(${extraarg} MATCHES "STRICT" AND SCL-ENABLE_STRICT)
SET(LOCAL_COMPILE_FLAGS "${LOCAL_COMPILE_FLAGS} ${STRICT_FLAGS}")
ENDIF(${extraarg} MATCHES "STRICT" AND SCL-ENABLE_STRICT)
ENDFOREACH(extraarg ${ARGN})
IF(LOCAL_COMPILE_FLAGS)
SET_TARGET_PROPERTIES(${execname} PROPERTIES COMPILE_FLAGS ${LOCAL_COMPILE_FLAGS})
ENDIF(LOCAL_COMPILE_FLAGS)
ENDMACRO(SCL_ADDEXEC execname srcs libs)
MACRO(SCL_ADDLIB libname srcs libs)
STRING(REGEX REPLACE " " ";" srcslist "${srcs}")
STRING(REGEX REPLACE " " ";" libslist1 "${libs}")
STRING(REGEX REPLACE "-framework;" "-framework " libslist "${libslist1}")
DLL_DEFINE(${libname})
IF(SCL_BUILD_SHARED_LIBS)
add_library(${libname} SHARED ${srcslist})
if(NOT ${libs} MATCHES "NONE")
target_link_libraries(${libname} ${libslist})
endif(NOT ${libs} MATCHES "NONE")
SET_TARGET_PROPERTIES(${libname} PROPERTIES VERSION ${SCL_ABI_VERSION} SOVERSION ${SCL_ABI_SOVERSION} )
INSTALL(TARGETS ${libname} DESTINATION lib)
ENDIF(SCL_BUILD_SHARED_LIBS)
IF(SCL_BUILD_STATIC_LIBS AND NOT MSVC)
add_library(${libname}-static STATIC ${srcslist})
if(NOT ${libs} MATCHES "NONE")
target_link_libraries(${libname}-static ${libslist})
endif(NOT ${libs} MATCHES "NONE")
IF(NOT WIN32)
SET_TARGET_PROPERTIES(${libname}-static PROPERTIES OUTPUT_NAME "${libname}")
ENDIF(NOT WIN32)
IF(WIN32)
# We need the lib prefix on win32, so add it even if our add_library
# wrapper function has removed it due to the target name - see
# http://www.cmake.org/Wiki/CMake_FAQ#How_do_I_make_my_shared_and_static_libraries_have_the_same_root_name.2C_but_different_suffixes.3F
SET_TARGET_PROPERTIES(${libname}-static PROPERTIES PREFIX "lib")
ENDIF(WIN32)
INSTALL(TARGETS ${libname}-static DESTINATION lib)
ENDIF(SCL_BUILD_STATIC_LIBS AND NOT MSVC)
# Enable extra compiler flags if local libraries and/or global options dictate
SET(LOCAL_COMPILE_FLAGS "")
FOREACH(extraarg ${ARGN})
IF(${extraarg} MATCHES "STRICT" AND SCL-ENABLE_STRICT)
SET(LOCAL_COMPILE_FLAGS "${LOCAL_COMPILE_FLAGS} ${STRICT_FLAGS}")
ENDIF(${extraarg} MATCHES "STRICT" AND SCL-ENABLE_STRICT)
ENDFOREACH(extraarg ${ARGN})
IF(LOCAL_COMPILE_FLAGS)
IF(BUILD_SHARED_LIBS)
SET_TARGET_PROPERTIES(${libname} PROPERTIES COMPILE_FLAGS ${LOCAL_COMPILE_FLAGS})
ENDIF(BUILD_SHARED_LIBS)
IF(BUILD_STATIC_LIBS AND NOT MSVC)
SET_TARGET_PROPERTIES(${libname}-static PROPERTIES COMPILE_FLAGS ${LOCAL_COMPILE_FLAGS})
ENDIF(BUILD_STATIC_LIBS AND NOT MSVC)
ENDIF(LOCAL_COMPILE_FLAGS)
ENDMACRO(SCL_ADDLIB libname srcs libs)
-136
View File
@@ -1,136 +0,0 @@
# macros to be used in the CMakeLists generated by the schema scanner
# uses SC_GENERATE_CXX_ONESHOT - if true, files will only be generated once. this is useful when debugging and modifying code, not otherwise. TODO: print a warning when set
if(NOT DEFINED SC_GENERATE_CXX_ONESHOT)
set(SC_GENERATE_CXX_ONESHOT FALSE)
endif(NOT DEFINED SC_GENERATE_CXX_ONESHOT)
# find all part 21 files in schema dir, add a test for each one
macro(P21_TESTS sfile)
get_filename_component(SCHEMA_DIR ${sfile} PATH)
file(GLOB_RECURSE P21_FILES ${SCHEMA_DIR}/*.stp ${SCHEMA_DIR}/*.step ${SCHEMA_DIR}/*.p21 ${SCHEMA_DIR}/*.ifc)
foreach(TEST_FILE ${P21_FILES})
get_filename_component(FNAME ${TEST_FILE} NAME_WE)
add_test(NAME read_write_cpp_${PROJECT_NAME}_${FNAME}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMAND p21read_${PROJECT_NAME} ${TEST_FILE})
set_tests_properties(read_write_cpp_${PROJECT_NAME}_${FNAME} PROPERTIES DEPENDS build_cpp_${PROJECT_NAME} LABELS cpp_schema_rw)
if(NOT WIN32)
add_test(NAME read_lazy_cpp_${PROJECT_NAME}_${FNAME}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMAND lazy_${PROJECT_NAME} ${TEST_FILE})
set_tests_properties(read_lazy_cpp_${PROJECT_NAME}_${FNAME} PROPERTIES DEPENDS build_lazy_cpp_${PROJECT_NAME} LABELS cpp_schema_rw)
endif(NOT WIN32)
endforeach()
endmacro(P21_TESTS sfile)
# create p21read_sdai_*, lazy_sdai_*, any exes listed in SC_SDAI_ADDITIONAL_EXES_SRCS
macro(SCHEMA_EXES)
RELATIVE_PATH_TO_TOPLEVEL(${CMAKE_CURRENT_SOURCE_DIR} RELATIVE_PATH_COMPONENT)
SC_ADDEXEC(p21read_${PROJECT_NAME} SOURCES "${RELATIVE_PATH_COMPONENT}/src/test/p21read/p21read.cc;${RELATIVE_PATH_COMPONENT}/src/test/p21read/sc_benchmark.cc" LINK_LIBRARIES ${PROJECT_NAME} stepdai stepcore stepeditor steputils TESTABLE)
if(NOT WIN32)
SC_ADDEXEC(lazy_${PROJECT_NAME} SOURCES "${RELATIVE_PATH_COMPONENT}/src/cllazyfile/lazy_test.cc;${RELATIVE_PATH_COMPONENT}/src/cllazyfile/sc_benchmark.cc" LINK_LIBRARIES ${PROJECT_NAME} steplazyfile stepdai stepcore stepeditor steputils TESTABLE)
endif(NOT WIN32)
#add user-defined executables
foreach(src ${SC_SDAI_ADDITIONAL_EXES_SRCS})
get_filename_component(name ${src} NAME_WE)
get_filename_component(path ${src} ABSOLUTE)
SC_ADDEXEC(${name}_${PROJECT_NAME} SOURCES ${src} LINK_LIBRARIES ${PROJECT_NAME} stepdai stepcore stepeditor steputils TESTABLE)
#set_target_properties(${name}_${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${${PROJECT_NAME}_COMPILE_FLAGS} -I${path}")
endforeach(src ${SC_SDAI_ADDITIONAL_EXES_SRCS})
ENDMACRO(SCHEMA_EXES)
# label the tests and set dependencies
macro(SCHEMA_TESTS)
add_test(NAME generate_cpp_${PROJECT_NAME}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} --build .
--target generate_cpp_${PROJECT_NAME}
--config $<CONFIGURATION>)
set_tests_properties(generate_cpp_${PROJECT_NAME} PROPERTIES LABELS cpp_schema_gen)
add_test(NAME build_cpp_${PROJECT_NAME}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} --build .
--target p21read_${PROJECT_NAME}
--config $<CONFIGURATION>)
set_tests_properties(build_cpp_${PROJECT_NAME} PROPERTIES DEPENDS generate_cpp_${PROJECT_NAME} LABELS cpp_schema_build)
if(NOT WIN32)
add_test(NAME build_lazy_cpp_${PROJECT_NAME}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} --build .
--target lazy_${PROJECT_NAME}
--config $<CONFIGURATION>)
set_tests_properties(build_lazy_cpp_${PROJECT_NAME} PROPERTIES DEPENDS build_cpp_${PROJECT_NAME} LABELS cpp_schema_build)
endif(NOT WIN32)
endmacro(SCHEMA_TESTS)
# SCHEMA_TARGETS macro -
# expFile: path to express file
# schemaName: name of the schema
# sourceFiles: list of .cc and .h files
#
# create targets for the schema(s) in expFile
# targets include gen_cxx_*, sdai_cxx_*, p21read_*, lazyp21_*, ...
macro(SCHEMA_TARGETS expFile schemaName sourceFiles)
# schema scanner comes up with a short schema name for PROJECT() (which sets ${PROJECT_NAME})
message(STATUS "Will generate ${${PROJECT_NAME}_file_count} C++ files for ${PROJECT_NAME}.")
add_custom_target(generate_cpp_${PROJECT_NAME} DEPENDS exp2cxx ${expFile} ${sourceFiles} SOURCES ${sourceFiles})
# this calls a cmake script because it doesn't seem to be possible
# to divert stdout, stderr in cmake except via execute_process
add_custom_command(OUTPUT ${sourceFiles}
COMMAND ${CMAKE_COMMAND} -DEXE=\"$<TARGET_FILE:exp2cxx>\" -DEXP=\"${expFile}\"
-DONESHOT=\"${SC_GENERATE_CXX_ONESHOT}\" -DSDIR=\"${CMAKE_CURRENT_LIST_DIR}\"
-P ${SC_CMAKE_DIR}/SC_Run_exp2cxx.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
COMMENT "[exp2cxx] Generating ${${PROJECT_NAME}_file_count} C++ files for ${PROJECT_NAME}."
)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR} ${SC_SOURCE_DIR}/src/cldai ${SC_SOURCE_DIR}/src/cleditor
${SC_SOURCE_DIR}/src/clutils ${SC_SOURCE_DIR}/src/clstepcore ${SC_SOURCE_DIR}/src/cllazyfile
${SC_SOURCE_DIR}/src/cllazyfile/judy/src
)
# if testing is enabled, "TESTABLE" sets property EXCLUDE_FROM_ALL and prevents installation
if(BUILD_SHARED_LIBS)
SC_ADDLIB(${PROJECT_NAME} SHARED SOURCES ${sourceFiles} LINK_LIBRARIES stepdai stepcore stepeditor steputils TESTABLE)
add_dependencies(${PROJECT_NAME} generate_cpp_${PROJECT_NAME})
if(WIN32)
target_compile_definitions("${PROJECT_NAME}" PRIVATE SC_SCHEMA_DLL_EXPORTS)
if(MSVC)
target_compile_options("${PROJECT_NAME}" PRIVATE "/bigobj")
endif()
endif()
# TODO - ideally we would avoid generating code that triggers this warning, but figuring out
# how to do so is a non-trivial exercise. In the meantime, suppress the (very verbose) warnings
# we get due to this issue so it doesn't mask other problems.
if(${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
target_compile_options("${PROJECT_NAME}" PRIVATE "-Wno-ignored-qualifiers")
endif()
endif()
if($CACHE{SC_BUILD_STATIC_LIBS})
SC_ADDLIB(${PROJECT_NAME}-static STATIC SOURCES ${sourceFiles} LINK_LIBRARIES stepdai-static stepcore-static stepeditor-static steputils-static TESTABLE)
add_dependencies(${PROJECT_NAME}-static generate_cpp_${PROJECT_NAME})
target_compile_definitions("${PROJECT_NAME}-static" PRIVATE SC_STATIC)
if(MSVC)
target_compile_options("${PROJECT_NAME}-static" PRIVATE "/bigobj")
endif()
endif()
SCHEMA_EXES()
SCHEMA_TESTS()
P21_TESTS(${expFile})
# TODO add test to verify that schema scanner output matches fedex_plus output
endmacro(SCHEMA_TARGETS expFile schemaName sourceFiles)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
-90
View File
@@ -1,90 +0,0 @@
# create config.h
include(CheckLibraryExists)
include(CheckIncludeFile)
include(CheckSymbolExists)
include(CheckTypeSize)
include(CMakePushCheckState)
include(CheckCSourceCompiles)
include(CheckCXXSourceRuns)
CHECK_INCLUDE_FILE(ndir.h HAVE_NDIR_H)
CHECK_INCLUDE_FILE(stdarg.h HAVE_STDARG_H)
CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H)
CHECK_INCLUDE_FILE(sys/param.h HAVE_SYS_PARAM_H)
CHECK_INCLUDE_FILE(sysent.h HAVE_SYSENT_H)
CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
CHECK_INCLUDE_FILE(dirent.h HAVE_DIRENT_H)
CHECK_INCLUDE_FILE(stdbool.h HAVE_STDBOOL_H)
CHECK_INCLUDE_FILE(process.h HAVE_PROCESS_H)
CHECK_INCLUDE_FILE(io.h HAVE_IO_H)
# ensure macro functions are captured
CHECK_SYMBOL_EXISTS(abs "stdlib.h" HAVE_ABS)
CHECK_SYMBOL_EXISTS(memcpy "string.h" HAVE_MEMCPY)
CHECK_SYMBOL_EXISTS(memmove "string.h" HAVE_MEMMOVE)
CHECK_SYMBOL_EXISTS(getopt "getopt.h" HAVE_GETOPT)
CHECK_SYMBOL_EXISTS(snprintf "stdio.h" HAVE_SNPRINTF)
CHECK_SYMBOL_EXISTS(vsnprintf "stdio.h" HAVE_VSNPRINTF)
CHECK_TYPE_SIZE("ssize_t" SSIZE_T)
if(SC_ENABLE_CXX11)
set( TEST_STD_THREAD "
#include <iostream>
#include <thread>
void do_work() {std::cout << \"thread\" << std::endl;}
int main() {std::thread t(do_work);t.join();}
" )
cmake_push_check_state()
if( UNIX )
set( CMAKE_REQUIRED_FLAGS "-pthread -std=c++11" )
else( UNIX )
# vars probably need set for embarcadero, etc
endif( UNIX )
CHECK_CXX_SOURCE_RUNS( "${TEST_STD_THREAD}" HAVE_STD_THREAD ) #quotes are *required*!
cmake_pop_check_state()
set( TEST_STD_CHRONO "
#include <iostream>
#include <chrono>
int main() {
std::chrono::seconds sec(1);
std::cout << \"1s is \"<< std::chrono::duration_cast<std::chrono::milliseconds>(sec).count() << \" ms\" << std::endl;
}
" )
cmake_push_check_state()
if( UNIX )
set( CMAKE_REQUIRED_FLAGS "-std=c++11" )
else( UNIX )
# vars probably need set for embarcadero, etc
endif( UNIX )
CHECK_CXX_SOURCE_RUNS( "${TEST_STD_CHRONO}" HAVE_STD_CHRONO ) #quotes are *required*!
cmake_pop_check_state()
set( TEST_NULLPTR "
#include <cstddef>
std::nullptr_t f() {return nullptr;}
int main() {return !(f() == f());}
" )
cmake_push_check_state()
if( UNIX )
set( CMAKE_REQUIRED_FLAGS "-std=c++11" )
else( UNIX )
# vars probably need set for embarcadero, etc
endif( UNIX )
CHECK_CXX_SOURCE_RUNS( "${TEST_NULLPTR}" HAVE_NULLPTR ) #quotes are *required*!
cmake_pop_check_state()
endif(SC_ENABLE_CXX11)
# Now that all the tests are done, configure the config.h file:
configure_file(${CMAKE_SOURCE_DIR}/include/config.h.in ${SC_BINARY_DIR}/${INCLUDE_DIR}/config.h.gen)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SC_BINARY_DIR}/${INCLUDE_DIR}/config.h.gen ${SC_BINARY_DIR}/${INCLUDE_DIR}/config.h)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
-22
View File
@@ -1,22 +0,0 @@
# Save the current LC_ALL, LC_MESSAGES, and LANG environment variables and set them
# to "C" so things like date output are as expected
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)
endif(_orig_lc_all)
if(_orig_lc_messages)
set(ENV{LC_MESSAGES} C)
endif(_orig_lc_messages)
if(_orig_lang)
set(ENV{LANG} C)
endif(_orig_lang)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
-30
View File
@@ -1,30 +0,0 @@
# in its own file so that it can be used by the schema scanner as well
if(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
endif(NOT DEFINED CMAKE_LIBRARY_OUTPUT_DIRECTORY)
if(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all archives.")
endif(NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
if(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${SC_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all executables.")
endif(NOT DEFINED CMAKE_RUNTIME_OUTPUT_DIRECTORY)
foreach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
string(TOUPPER "${CFG_TYPE}" CFG_TYPE)
if(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}")
set("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all libraries.")
endif(NOT "CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CFG_TYPE}")
if(NOT "CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}")
set("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SC_BINARY_DIR}/lib CACHE INTERNAL "Single output directory for building all archives.")
endif(NOT "CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CFG_TYPE}")
if(NOT "CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}")
set("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}" ${SC_BINARY_DIR}/bin CACHE INTERNAL "Single output directory for building all executables.")
endif(NOT "CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CFG_TYPE}")
endforeach()
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
-93
View File
@@ -1,93 +0,0 @@
macro(REVERSE_PATH in_path out_path drive_path)
set(reversed_path)
set(tmp_subpath "${in_path}")
while(NOT "${tmp_subpath}" STREQUAL "" AND NOT "${tmp_subpath}" STREQUAL "/")
get_filename_component(piece "${tmp_subpath}" NAME)
get_filename_component(tmp_subpath "${tmp_subpath}" PATH)
if(piece)
set(reversed_path "${reversed_path}/${piece}")
else(piece)
set(${drive_path} ${tmp_subpath})
set(tmp_subpath)
endif(piece)
endwhile(NOT "${tmp_subpath}" STREQUAL "" AND NOT "${tmp_subpath}" STREQUAL "/")
set("${out_path}" "${reversed_path}")
endmacro(REVERSE_PATH)
macro(GET_COMMON_ROOT_PATH dir1 dir2 common_subpath)
get_filename_component(testpath "${dir1}" REALPATH)
set(dir1_rev)
set(dir2_rev)
REVERSE_PATH("${dir1}" dir1_rev drive_name_1)
REVERSE_PATH("${dir2}" dir2_rev drive_name_2)
if("${drive_name_1}" STREQUAL "${drive_name_2}")
set(component_same 1)
set(${common_subpath})
while(component_same)
get_filename_component(piece1 "${dir1_rev}" NAME)
get_filename_component(dir1_rev "${dir1_rev}" PATH)
get_filename_component(piece2 "${dir2_rev}" NAME)
get_filename_component(dir2_rev "${dir2_rev}" PATH)
if("${piece1}" STREQUAL "${piece2}")
set(${common_subpath} "${${common_subpath}}/${piece1}")
else("${piece1}" STREQUAL "${piece2}")
set(component_same 0)
endif("${piece1}" STREQUAL "${piece2}")
endwhile(component_same)
if(drive_name_1)
set(${common_subpath} "${drive_name_1}${${common_subpath}}")
string(REPLACE "//" "/" ${common_subpath} "${${common_subpath}}")
endif(drive_name_1)
endif("${drive_name_1}" STREQUAL "${drive_name_2}")
endmacro(GET_COMMON_ROOT_PATH)
macro(RELATIVE_PATH_TO_TOPLEVEL current_dir rel_path)
set(common_root_path)
GET_COMMON_ROOT_PATH("${SC_SOURCE_DIR}" "${current_dir}" common_root_path)
string(REPLACE "${common_root_path}" "" subpath "${current_dir}")
string(REPLACE "${common_root_path}" "" needed_src_path "${SC_SOURCE_DIR}")
string(REGEX REPLACE "^/" "" subpath "${subpath}")
string(REGEX REPLACE "^/" "" needed_src_path "${needed_src_path}")
string(LENGTH "${subpath}" PATH_LENGTH)
if(PATH_LENGTH GREATER 0)
set(${rel_path} "..")
get_filename_component(subpath "${subpath}" PATH)
string(LENGTH "${subpath}" PATH_LENGTH)
while(PATH_LENGTH GREATER 0)
set(${rel_path} "${${rel_path}}/..")
get_filename_component(subpath "${subpath}" PATH)
string(LENGTH "${subpath}" PATH_LENGTH)
endwhile(PATH_LENGTH GREATER 0)
endif(PATH_LENGTH GREATER 0)
set(${rel_path} "${${rel_path}}/${needed_src_path}")
string(REPLACE "//" "/" ${rel_path} "${${rel_path}}")
endmacro(RELATIVE_PATH_TO_TOPLEVEL current_dir rel_path)
macro(LOCATE_SCHEMA SCHEMA_FILE _res_var)
if(EXISTS "${CMAKE_BINARY_DIR}/${SCHEMA_FILE}") #is it a path relative to build dir?
set(${_res_var} "${CMAKE_BINARY_DIR}/${SCHEMA_FILE}")
elseif(EXISTS "${SC_SOURCE_DIR}/data/${SCHEMA_FILE}") # path relative to STEPcode/data?
set(${_res_var} "${SC_SOURCE_DIR}/data/${SCHEMA_FILE}")
elseif(EXISTS ${SCHEMA_FILE}) # already an absolute path
set(${_res_var} ${SCHEMA_FILE})
else()
message(FATAL_ERROR "Cannot find ${CMAKE_BINARY_DIR}/${SCHEMA_FILE} or ${SC_SOURCE_DIR}/data/${SCHEMA_FILE}/*.exp or ${SCHEMA_FILE}")
endif()
if(IS_DIRECTORY ${${_res_var}}) #if it is a dir, look for one .exp file inside
file(GLOB ${_res_var} ${${_res_var}}/*.exp)
endif()
if(NOT EXISTS ${${_res_var}})
message(FATAL_ERROR "Expected one express file. Found '${${_res_var}}' instead.")
endif()
endmacro(LOCATE_SCHEMA SCHEMA_FILE _res_var)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
-55
View File
@@ -1,55 +0,0 @@
# The Express parser uses the tools RE2C and Lemon to generate code
# from higher level inputs. Depending on available tools and options, the
# SC build can either re-generate code as part of the build, or use cached
# files that are ready for compilation.
#
# SC_GENERATE_LEXER_PARSER is the "high level" control a user sets to determine
# how the SC build will interact (or not) with these tools. AUTO (the
# default) means it will search for the necessary tools, and use them only if
# everything is found. If not, it will fall back to the cached versions. If
# this option is set to ON and the necessary tools are not found, the
# configure step will fail. If it is set to OFF, SC will not even try to use
# the generators and will instead use the cached sources.
set(_valid_gen_states AUTO ON OFF)
set(_verbosity "QUIET")
set(SC_GENERATE_LEXER_PARSER "AUTO" CACHE
STRING "Use Perplex, RE2C and Lemon to generate C source code.")
set_property(CACHE SC_GENERATE_LEXER_PARSER PROPERTY STRINGS ${_valid_gen_states})
string(TOUPPER "${SC_GENERATE_LEXER_PARSER}" SC_GENERATE_LEXER_PARSER)
if(NOT "${SC_GENERATE_LEXER_PARSER}" IN_LIST _valid_gen_states)
message(WARNING "Unknown value ${SC_GENERATE_LEXER_PARSER} supplied for SC_GENERATE_LEXER_PARSER - defaulting to AUTO")
message(WARNING "Valid options are AUTO, ON and OFF")
set(SC_GENERATE_LEXER_PARSER "AUTO" CACHE STRING "Use Perplex, RE2C and Lemon to generate C source code.")
endif()
# If the generators have not been turned off, we need to check for them
if(NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "OFF")
# NOTE: lemon doesn't have a stable versioning system (it's always 1)
find_package(LEMON ${_verbosity})
find_package(RE2C ${_verbosity})
find_package(PERPLEX ${_verbosity})
if(LEMON_FOUND AND RE2C_FOUND)
set(SC_GENERATE_LP_SOURCES 1)
message(".. Found re2c, and lemon - can regenerate lexer/parser if necessary")
else()
if("${SC_GENERATE_LEXER_PARSER}" STREQUAL "ON")
message(FATAL_ERROR "\nSC_GENERATE_LEXER_PARSER set to ON, but couldn't find lemon/re2c")
else("${SC_GENERATE_LEXER_PARSER}" STREQUAL "ON")
set(SC_GENERATE_LP_SOURCES 0)
endif("${SC_GENERATE_LEXER_PARSER}" STREQUAL "ON")
endif()
else(NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "OFF")
set(SC_GENERATE_LP_SOURCES 0)
endif(NOT "${SC_GENERATE_LEXER_PARSER}" STREQUAL "OFF")
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
-25
View File
@@ -1,25 +0,0 @@
# if oneshot is true, don't run exp2cxx if source files exist. if schema.cc exists, assume others do
if(ONESHOT AND EXISTS "${SDIR}/schema.cc")
message("WARNING: SC_GENERATE_CXX_ONESHOT is enabled. If generated code has been modified, it will NOT be rewritten!")
message("This is ONLY for debugging STEPcode internals!")
else()
execute_process(COMMAND ${EXE} ${EXP}
WORKING_DIRECTORY ${SDIR}
RESULT_VARIABLE _res
OUTPUT_FILE exp2cxx_stdout.txt
ERROR_FILE exp2cxx_stderr.txt
)
if(NOT "${_res}" STREQUAL "0")
message(FATAL_ERROR "${EXE} reported an error for ${EXP}.\nsee exp2cxx_stdout.txt and exp2cxx_stderr.txt in ${SDIR} for details.")
endif(NOT "${_res}" STREQUAL "0")
# TODO count number of lines in stdout/stderr and tell user?
endif()
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
-91
View File
@@ -1,91 +0,0 @@
macro(SC_ADDEXEC execname)
set(_addexec_opts NO_INSTALL TESTABLE)
set(_addexec_multikw SOURCES LINK_LIBRARIES)
string(TOUPPER "SC_ADDEXEC_${execname}_ARG" _arg_prefix)
cmake_parse_arguments(${_arg_prefix} "${_addexec_opts}" "" "${_addexec_multikw}" ${ARGN})
if(NOT DEFINED "${_arg_prefix}_SOURCES")
message(SEND_ERROR "SC_ADDEXEC usage error!")
endif()
add_executable(${execname} ${${_arg_prefix}_SOURCES})
if(DEFINED "${_arg_prefix}_LINK_LIBRARIES")
foreach(_lib ${${_arg_prefix}_LINK_LIBRARIES})
if($CACHE{SC_STATIC_UTILS})
if(NOT $<TARGET_PROPERTY:${_lib},TYPE> STREQUAL "STATIC_LIBRARY")
message(SEND_ERROR "SC_ADDEXEC usage error - expected STATIC LINK_LIBRARIES targets (${_lib})")
endif()
endif()
target_link_libraries(${execname} ${_lib})
endforeach()
endif()
if(NOT ${_arg_prefix}_NO_INSTALL AND NOT ${_arg_prefix}_TESTABLE)
install(TARGETS ${execname}
RUNTIME DESTINATION ${BIN_DIR}
LIBRARY DESTINATION ${LIB_DIR}
ARCHIVE DESTINATION ${LIB_DIR}
)
endif()
if(NOT SC_ENABLE_TESTING AND ${_arg_prefix}_TESTABLE)
set_target_properties(${execname} PROPERTIES EXCLUDE_FROM_ALL ON)
endif()
endmacro()
macro(SC_ADDLIB _addlib_target)
set(_addlib_opts SHARED STATIC NO_INSTALL TESTABLE)
set(_addlib_multikw SOURCES LINK_LIBRARIES)
string(TOUPPER "SC_ADDLIB_${libname}_ARG" _arg_prefix)
cmake_parse_arguments(${_arg_prefix} "${_addlib_opts}" "" "${_addlib_multikw}" ${ARGN})
if(NOT DEFINED ${_arg_prefix}_SOURCES)
message(SEND_ERROR "SC_ADDLIB usage error!")
endif()
if(${_arg_prefix}_SHARED)
add_library(${_addlib_target} SHARED ${${_arg_prefix}_SOURCES})
if(OPENBSD)
set_target_properties(${_addlib_target} PROPERTIES VERSION ${SC_VERSION_MAJOR}.${SC_VERSION_MINOR})
else(OPENBSD)
set_target_properties(${_addlib_target} PROPERTIES VERSION ${SC_VERSION} SOVERSION ${SC_VERSION_MAJOR})
endif(OPENBSD)
if(APPLE)
set_target_properties(${_addlib_target} PROPERTIES LINK_FLAGS "-flat_namespace -undefined suppress")
endif(APPLE)
elseif(${_arg_prefix}_STATIC)
add_library(${_addlib_target} STATIC ${${_arg_prefix}_SOURCES})
target_compile_definitions(${_addlib_target} PRIVATE SC_STATIC)
else()
message(SEND_ERROR "SC_ADDLIB usage error!")
endif()
if(DEFINED ${_arg_prefix}_LINK_LIBRARIES)
foreach(_lib ${${_arg_prefix}_LINK_LIBRARIES})
if(${_arg_prefix}_STATIC AND TARGET ${_lib})
get_property(_libtype TARGET ${_lib} PROPERTY TYPE)
if(NOT ${_libtype} STREQUAL "STATIC_LIBRARY")
message(SEND_ERROR "SC_ADDLIB usage error - expected (static) LINK_LIBRARIES targets (${_lib})")
endif()
endif()
target_link_libraries(${_addlib_target} ${_lib})
endforeach()
endif()
if(NOT ${_arg_prefix}_NO_INSTALL AND NOT ${_arg_prefix}_TESTABLE)
install(TARGETS ${_addlib_target}
RUNTIME DESTINATION ${BIN_DIR}
LIBRARY DESTINATION ${LIB_DIR}
ARCHIVE DESTINATION ${LIB_DIR}
)
endif()
endmacro()
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
-75
View File
@@ -1,75 +0,0 @@
project(SC_SUBPROJECT_SCHEMA_SCANNER)
cmake_minimum_required(VERSION 3.12)
if(NOT ("${CALLED_FROM}" STREQUAL "STEPCODE_CMAKELISTS" AND DEFINED SC_ROOT AND DEFINED SC_BUILDDIR))
message(" ${CALLED_FROM} ${SC_ROOT} ${SC_BUILDDIR}")
message(FATAL_ERROR "This is not a truly independent project; it should be built during the STEPcode configuration stage.")
endif()
# SC_ROOT: SC root dir
# SC_BUILDDIR: SC build dir, so generated headers can be found
set(CMAKE_BUILD_TYPE Debug)
# set all target location variables so that MSVC will put the executable the same place as other compilers
set(SC_BINARY_DIR ${SC_BUILDDIR})
include(${CMAKE_CURRENT_SOURCE_DIR}/../SC_Outdirs.cmake)
set(schema_scanner_src
${SC_ROOT}/src/exp2cxx/genCxxFilenames.c
${SC_ROOT}/src/exp2cxx/class_strings.c
${SC_ROOT}/src/express/generated/expparse.c
${SC_ROOT}/src/express/generated/expscan.c
${SC_ROOT}/src/express/alg.c
${SC_ROOT}/src/express/alloc.c
${SC_ROOT}/src/express/caseitem.c
${SC_ROOT}/src/express/dict.c
${SC_ROOT}/src/express/entity.c
${SC_ROOT}/src/express/error.c
${SC_ROOT}/src/express/exp_kw.c
${SC_ROOT}/src/express/expr.c
${SC_ROOT}/src/express/express.c
${SC_ROOT}/src/express/factory.c
${SC_ROOT}/src/express/hash.c
${SC_ROOT}/src/express/lexact.c
${SC_ROOT}/src/express/linklist.c
${SC_ROOT}/src/express/memory.c
${SC_ROOT}/src/express/object.c
${SC_ROOT}/src/express/info.c
${SC_ROOT}/src/express/resolve.c
${SC_ROOT}/src/express/resolve2.c
${SC_ROOT}/src/express/schema.c
${SC_ROOT}/src/express/scope.c
${SC_ROOT}/src/express/stmt.c
${SC_ROOT}/src/express/symbol.c
${SC_ROOT}/src/express/type.c
${SC_ROOT}/src/express/variable.c
${CMAKE_CURRENT_SOURCE_DIR}/schemaScanner.cc
)
include_directories(
${SC_ROOT}/include/
${SC_ROOT}/src/express/
${SC_ROOT}/src/express/generated
${SC_ROOT}/src/exp2cxx
${SC_BUILDDIR}/include
)
add_executable(schema_scanner ${schema_scanner_src})
if(MSVC)
# Disable warning for preferred usage of secure functions (example strcpy should be strcpy_s, ...)
target_compile_definitions(schema_scanner PUBLIC _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_WARNINGS)
else()
target_compile_options(schema_scanner PUBLIC -pedantic -W -Wall -Wundef -Wfloat-equal -Wshadow -Winline -Wno-long-long)
endif()
target_compile_definitions(schema_scanner PUBLIC SC_STATIC SCHEMA_SCANNER)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
-10
View File
@@ -1,10 +0,0 @@
README for STEPcode schema scanner
--------------
The files in this directory are for a schema scanner executable, built by CMake during the configuration stage.
This scanner is used to determine the file names that exp2cxx will use. In CMake, all file names must be known before
configuration finishes - so it is necessary to parse the schemas early.
This appears to be a standalone project to CMake, but it is intended to be built only as part of STEPcode. It is configured,
built, and executed during the configuration stage of STEPcode.
-365
View File
@@ -1,365 +0,0 @@
/** \file schemaScanner.cc
* This file, along with part of libexpress, are compiled (at configure time)
* into a static executable. This executable is a schema scanner that is used
* by CMake to determine what files exp2cxx will create. Otherwise, we'd need
* to use a few huge files - there is no other way to tell CMake what the
* generated files will be called.
*/
/* WARNING
* If you modify this file, you must re-run cmake. It doesn't seem to be possible
* to re-run cmake automatically, as CMake's configure_file() gets confused by
* the '${' and '}' in writeLists() below.
*/
extern "C" {
#define _XOPEN_SOURCE /* for S_IFDIR */
#include <sys/stat.h>
#include <sys/types.h>
#include <errno.h>
#include "expparse.h"
#include "expscan.h"
#include "express/scope.h"
#include "genCxxFilenames.h"
#include <string.h>
#ifdef _WIN32
# include <direct.h>
# define getcwd _getcwd
#else
# include <unistd.h>
#endif
}
#include <string>
#include <sstream>
#include <iomanip>
#include <fstream>
#include <iostream>
int multiple_inheritance = 0;
using std::string;
using std::stringstream;
using std::endl;
using std::ofstream;
using std::cerr;
using std::cout;
/** \return true for types that exp2cxx won't generate code for */
bool notGenerated( const Type t ) {
switch( TYPEget_body( t )->type ) {
case integer_:
case real_:
case string_:
case binary_:
case boolean_:
case number_:
case logical_:
case aggregate_:
case bag_:
case set_:
case list_:
case array_:
return true;
default:
break;
}
/* from addRenameTypedefs() in multpass.c - check for renamed
* enums and selects - exp2cxx prints typedefs for them */
if( ( TYPEis_enumeration( t ) || TYPEis_select( t ) ) && ( TYPEget_head( t ) ) ) {
return true;
}
return false;
}
/** \return a short name for the schema
* this name is intended to be unique, but no special care is put into its generation
* the official schema name seems most likely to not be unique, but it is generally the longest
*
* picks the shortest of:
* * the name of the dir containing the file (if in sc/data),
* * the name of the file containing the schema (minus extension),
* * the official name of the schema, passed in arg 'longName'
*
* TODO: maybe also consider an acronym, such that 'test_array_bounds_expr' becomes 'tabe', 'TABE', 'T_A_B_E', or similar
*/
string makeShortName( const char * longName ) {
//input_filename is path to file. we will extract dir name and file name from it.
string dirname = input_filename, filename = input_filename, schname = longName;
const char slash = '/';
//for filename, get rid of dir name(s), if any, as well as the extension
size_t sl = filename.rfind( slash );
if( sl != string::npos ) {
filename.erase( 0, sl + 1 );
}
size_t dot = filename.rfind( '.' );
if( dot != string::npos ) {
filename.erase( dot );
}
//for dirname, get rid of the filename and ensure it's in data/
sl = dirname.rfind( slash );
if( sl != string::npos ) {
dirname.erase( sl );
}
const char * dat = "data";
size_t data = dirname.find( dat );
if( ( data == string::npos ) || ( dirname[ data + strlen( dat ) ] != slash ) ) {
//doesn't contain 'data/'. clear it so it'll be ignored.
dirname.clear();
} else {
//get rid of all but last dir name
dirname.erase( 0, dirname.rfind( slash ) + 1 );
}
//use dir name if it's at least 3 chars and shorter than file name
//length requirement gets rid of short, undescriptive dir names - including '.' and '..'
if( ( dirname.size() > 2 ) && ( dirname.size() < filename.size() ) ) {
filename = dirname;
}
if( strlen( longName ) < filename.size() ) {
filename = longName;
}
filename.insert( 0, "sdai_" );
return filename;
}
/* cross-platform mkdir */
int sc_mkdir( const char * path ) {
#ifdef _WIN32
return mkdir( path );
#else
return mkdir( path, 0777 );
#endif /* _WIN32 */
}
/* return -1 if error, 0 if created, 1 if dir existed already */
static int mkDirIfNone( const char * path ) {
struct stat s;
if( stat( path, &s ) != 0 ) {
if( errno == ENOENT ) {
return sc_mkdir( path );
}
} else if( s.st_mode & S_IFDIR ) {
return 1;
}
/* either stat returned an error other than ENOENT, or 'path' exists but isn't a dir */
return -1;
}
/** write a CMakeLists.txt file for the schema; print its directory to stdout for CMake's add_subdirectory() command */
void writeLists( const char * schemaName, stringstream & eh, stringstream & ei, int ecount,
stringstream & th, stringstream & ti, int tcount ) {
string shortName = makeShortName( schemaName );
if( mkDirIfNone( shortName.c_str() ) < 0 ) {
cerr << "Error creating directory " << shortName << " at " << __FILE__ << ":" << __LINE__;
perror( 0 );
exit( EXIT_FAILURE );
}
size_t nameLen = strlen( schemaName );
string schema_upper( nameLen, char() );
for( size_t i = 0; i < nameLen; ++i) {
schema_upper[i] = toupper(schemaName[i]);
}
string cmListsPath = shortName;
cmListsPath += "/CMakeLists.txt";
ofstream cmLists;
cmLists.open( cmListsPath.c_str() );
if( !cmLists.good() ) {
cerr << "error opening file " << cmListsPath << " - exiting." << endl;
exit( EXIT_FAILURE );
}
cmLists << "# ----- GENERATED FILE -----" << endl;
cmLists << "# ----- Do not edit! -----" << endl << endl;
cmLists << "# schema name: " << schemaName << endl;
cmLists << "# (short name: " << shortName << ")" << endl;
cmLists << "# " << ecount << " entities, " << tcount << " types" << endl << endl;
cmLists << "# targets, logic, etc are within a set of macros shared by all schemas" << endl;
cmLists << "include(${SC_CMAKE_DIR}/SC_CXX_schema_macros.cmake)" << endl;
// * 2 for headers, + 10 other files
cmLists << "set(" << shortName << "_file_count " << ( ( ecount + tcount ) * 2 ) + 10 << ")" << endl << endl;
cmLists << "PROJECT(" << shortName << ")" << endl;
cmLists << "# list headers so they can be installed - entity, type, misc" << endl;
cmLists << "set(" << shortName << "_entity_hdrs" << endl;
cmLists << eh.str();
cmLists << " )" << endl << endl;
cmLists << "set(" << shortName << "_type_hdrs" << endl;
cmLists << th.str();
cmLists << " )" << endl << endl;
cmLists << "set(" << shortName << "_misc_hdrs" << endl;
cmLists << " Sdaiclasses.h schema.h" << endl;
cmLists << " Sdai" << schema_upper << "Names.h" << endl;
cmLists << " Sdai" << schema_upper << ".h" << endl;
cmLists << " )" << endl << endl;
cmLists << "# install all headers" << endl;
cmLists << "set(all_headers ${" << shortName << "_entity_hdrs} ${" << shortName << "_type_hdrs} ${" << shortName << "_misc_hdrs})" << endl;
cmLists << "foreach( header_file ${all_headers} )" << endl;
cmLists << " set(curr_dir)" << endl;
cmLists << " get_filename_component(curr_dir ${header_file} PATH)" << endl;
cmLists << " get_filename_component(curr_name ${header_file} NAME)" << endl;
cmLists << " if (curr_dir)" << endl;
cmLists << " install( FILES ${header_file} DESTINATION \"include/schemas/" << shortName << "/${curr_dir}\" )" << endl;
cmLists << " else (curr_dir)" << endl;
cmLists << " install( FILES ${header_file} DESTINATION \"include/schemas/" << shortName << "\" )" << endl;
cmLists << " endif (curr_dir)" << endl;
cmLists << "endforeach()" << endl;
cmLists << "# implementation files - 3 lists" << endl << endl;
cmLists << "# unity build: #include small .cc files to reduce the number" << endl;
cmLists << "# of translation units that must be compiled" << endl;
cmLists << "if(SC_UNITY_BUILD)" << endl << " # turns off include statements within type and entity .cc's - the unity T.U.'s include a unity header" << endl;
cmLists << " add_definitions( -DSC_SDAI_UNITY_BUILD)" << endl;
cmLists << " set(" << shortName << "_entity_impls Sdai" << schema_upper << "_unity_entities.cc)" << endl;
cmLists << " set(" << shortName << "_type_impls Sdai" << schema_upper << "_unity_types.cc)" << endl;
cmLists << "else(SC_UNITY_BUILD)" << endl;
cmLists << " set(" << shortName << "_entity_impls" << endl;
cmLists << ei.str();
cmLists << " )" << endl << endl;
cmLists << " set(" << shortName << "_type_impls" << endl;
cmLists << ti.str();
cmLists << " )" << endl;
cmLists << "endif(SC_UNITY_BUILD)" << endl << endl;
cmLists << "set( " << shortName << "_misc_impls" << endl;
cmLists << " SdaiAll.cc compstructs.cc schema.cc" << endl;
cmLists << " Sdai" << schema_upper << ".cc" << endl;
cmLists << " Sdai" << schema_upper << ".init.cc )" << endl << endl;
cmLists << "set(schema_target_files ${" << shortName << "_entity_impls} " << "${" << shortName << "_type_impls} " << "${" << shortName << "_misc_impls})" << endl;
cmLists << "SCHEMA_TARGETS(\"" << input_filename << "\" \"" << schemaName << "\"" << endl;
cmLists << " \"${schema_target_files}\")" << endl;
cmLists.close();
char pwd[BUFSIZ+1] = {0};
if( getcwd( pwd, BUFSIZ ) ) {
cout << pwd << "/" << shortName << endl;
} else {
cerr << "Error encountered by getcwd() for " << shortName << " - exiting. Error was ";
perror( 0 );
exit( EXIT_FAILURE );
}
}
void printSchemaFilenames( Schema sch ){
const int numColumns = 2;
const int colWidth = 75;
const char * tab = " ";
stringstream typeHeaders, typeImpls, entityHeaders, entityImpls;
typeHeaders << tab;
typeImpls << tab;
entityHeaders << tab;
entityImpls << tab;
int ecount = 0, tcount = 0;
DictionaryEntry de;
void *x;
filenames_t fn;
DICTdo_init( sch->symbol_table, &de );
while( 0 != ( x = DICTdo( &de ) ) ) {
switch( DICT_type ) {
case OBJ_ENTITY:
fn = getEntityFilenames( ( Entity ) x );
entityHeaders << std::left << std::setw( colWidth ) << fn.header << " ";
entityImpls << std::left << std::setw( colWidth ) << fn.impl << " ";
++ecount;
if( ( ecount % numColumns ) == 0 ) {
// columns
entityHeaders << endl << tab;
entityImpls << endl << tab;
}
break;
case OBJ_TYPE: {
Type t = ( Type ) x;
if( TYPEis_enumeration( t ) && ( TYPEget_head( t ) ) ) {
/* t is a renamed enum type, for which exp2cxx
* will print a typedef in an existing file */
break;
}
if( notGenerated( t ) ) {
/* skip builtin types */
break;
}
fn = getTypeFilenames( t );
typeHeaders << std::left << std::setw( colWidth ) << fn.header << " ";
typeImpls << std::left << std::setw( colWidth ) << fn.impl << " ";
++tcount;
if( ( tcount % numColumns ) == 0 ) {
typeHeaders << endl << tab;
typeImpls << endl << tab;
}
break;
}
/* case OBJ_FUNCTION:
* case OBJ_PROCEDURE:
* case OBJ_RULE: */
default:
/* ignore everything else */
/* TODO: if DEBUG is defined, print the names of these to stderr */
break;
}
}
//write the CMakeLists.txt
writeLists( sch->symbol.name, entityHeaders, entityImpls, ecount, typeHeaders, typeImpls, tcount );
}
int main( int argc, char ** argv ) {
/* TODO init globals! */
Schema schema;
DictionaryEntry de;
/* copied from fedex.c */
Express model;
if( ( argc != 2 ) || ( strlen( argv[1] ) < 1 ) ) {
fprintf( stderr, "\nUsage: %s file.exp\nOutput: a CMakeLists.txt to build the schema,", argv[0] );
fprintf( stderr, " containing file names for entities, types, etc\n" );
fprintf( stderr, "also prints (to stdout) the absolute path to the directory CMakeLists.txt was created in\n" );
exit( EXIT_FAILURE );
}
EXPRESSprogram_name = argv[0];
input_filename = argv[1];
EXPRESSinitialize();
model = EXPRESScreate();
EXPRESSparse( model, ( FILE * )0, input_filename );
if( ERRORoccurred ) {
EXPRESSdestroy( model );
exit( EXIT_FAILURE );
}
EXPRESSresolve( model );
if( ERRORoccurred ) {
int result = EXPRESS_fail( model );
EXPRESScleanup();
EXPRESSdestroy( model );
exit( result );
}
DICTdo_type_init( model->symbol_table, &de, OBJ_SCHEMA );
while( 0 != ( schema = ( Schema )DICTdo( &de ) ) ) {
printSchemaFilenames( schema );
}
EXPRESSdestroy( model );
exit( EXIT_SUCCESS );
}
-106
View File
@@ -1,106 +0,0 @@
# this file should be included from data/CMakeLists.txt
#
# at configure time, this builds a small program
# which will parse express schemas to determine
# what files exp2cxx will create for that schema.
#
# The SCHEMA_CMLIST macro is to be used to run this
# program. It will set variables for schema name(s),
# headers, and implementation files.
# in a unity build, many small .cc files are #included to create a few large translation units
# this makes compilation faster, but sometimes runs into compiler limitations
if(NOT DEFINED SC_UNITY_BUILD)
message( STATUS "Assuming compiler is capable of unity build. (SC_UNITY_BUILD=TRUE)")
set(SC_UNITY_BUILD TRUE)
message( STATUS "Override by setting SC_UNITY_BUILD; TRUE will result in faster build times but *huge* translation units and higher memory use in compilation.")
else(NOT DEFINED SC_UNITY_BUILD)
message( STATUS "Respecting user-defined SC_UNITY_BUILD value of ${SC_UNITY_BUILD}.")
endif(NOT DEFINED SC_UNITY_BUILD)
# --- variables ---
# SC_ROOT: SC root dir
# SC_BUILDDIR: SC build dir, so generated headers can be found
# SCANNER_SRC_DIR: dir this file is in
# SCANNER_OUT_DIR: location of binary, same dir as SC uses
# SCANNER_BUILD_DIR: location scanner is built
set(SCANNER_SRC_DIR ${SC_CMAKE_DIR}/schema_scanner)
set(SCANNER_BUILD_DIR ${SC_BINARY_DIR}/schema_scanner CACHE INTERNAL "location for scanner build, config files (copied schemas)")
set(SCANNER_OUT_DIR ${SC_BINARY_DIR}/bin CACHE INTERNAL "location for schema_scanner executable")
#write a cmake file for the cache. the alternative is a very long
# command line - and the command line can't have newlines in it
set(initial_scanner_cache ${SCANNER_BUILD_DIR}/initial_scanner_cache.cmake)
file(WRITE ${initial_scanner_cache} "
set(SC_ROOT \"${SC_SOURCE_DIR}\" CACHE STRING \"root dir\")
set(SC_BUILDDIR \"${SC_BINARY_DIR}\" CACHE PATH \"build dir\")
set(CALLED_FROM \"STEPCODE_CMAKELISTS\" CACHE STRING \"verification\")
set(CMAKE_BUILD_TYPE \"Debug\" CACHE STRING \"build type\")
set(CMAKE_C_COMPILER \"${CMAKE_C_COMPILER}\" CACHE STRING \"compiler\")
set(CMAKE_CXX_COMPILER \"${CMAKE_CXX_COMPILER}\" CACHE STRING \"compiler\")
")
message( STATUS "Compiling schema scanner...")
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${SC_BINARY_DIR}/schemas)
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${SCANNER_BUILD_DIR})
execute_process(COMMAND ${CMAKE_COMMAND} -C ${initial_scanner_cache} ${SCANNER_SRC_DIR} -G ${CMAKE_GENERATOR}
WORKING_DIRECTORY ${SCANNER_BUILD_DIR}
TIMEOUT 60
OUTPUT_VARIABLE _ss_config_out
RESULT_VARIABLE _ss_config_stat
ERROR_VARIABLE _ss_config_err
)
if(NOT ${_ss_config_stat} STREQUAL "0")
message(FATAL_ERROR "Scanner config status: ${_ss_config_stat}. stdout:\n${_ss_config_out}\nstderr:\n${_ss_config_err}")
endif(NOT ${_ss_config_stat} STREQUAL "0")
execute_process(COMMAND ${CMAKE_COMMAND} --build ${SCANNER_BUILD_DIR} --config Debug --clean-first
WORKING_DIRECTORY ${SCANNER_BUILD_DIR}
TIMEOUT 120 # should take far less than 2m
OUTPUT_VARIABLE _ss_build_out
RESULT_VARIABLE _ss_build_stat
ERROR_VARIABLE _ss_build_err
)
if(NOT ${_ss_build_stat} STREQUAL "0")
message(FATAL_ERROR "Scanner build status: ${_ss_build_stat}. stdout:\n${_ss_build_out}\nstderr:\n${_ss_build_err}")
endif(NOT ${_ss_build_stat} STREQUAL "0")
message( STATUS "Schema scanner built. Running it...")
# not sure if it makes sense to install this or not...
if(WIN32)
install(PROGRAMS ${SCANNER_OUT_DIR}/schema_scanner.exe DESTINATION ${BIN_DIR})
else(WIN32)
install(PROGRAMS ${SCANNER_OUT_DIR}/schema_scanner DESTINATION ${BIN_DIR})
endif(WIN32)
# macro SCHEMA_CMLIST
# runs the schema scanner on one express file, creating a CMakeLists.txt file for each schema found. Those files are added via add_subdirectory().
#
# SCHEMA_FILE - path to the schema
# TODO should we have a result variable to return schema name(s) found?
macro(SCHEMA_CMLIST SCHEMA_FILE)
execute_process(COMMAND ${SCANNER_OUT_DIR}/schema_scanner ${SCHEMA_FILE}
WORKING_DIRECTORY ${SC_BINARY_DIR}/schemas
RESULT_VARIABLE _ss_stat
OUTPUT_VARIABLE _ss_out
ERROR_VARIABLE _ss_err
)
if(NOT "${_ss_stat}" STREQUAL "0")
#check size of output, put in file if large?
message(FATAL_ERROR "Schema scan for '${SCHEMA_FILE}'\nexited with error code '${_ss_stat}'\nstdout:\n${_ss_out}\nstderr:\n${_ss_err}\n")
endif(NOT "${_ss_stat}" STREQUAL "0")
# scanner output format: each line contains an absolute path. each path is a dir containing a CMakeLists for one schema
# there will usually be a single line of output, but it is not illegal for multiple schemas to exist in one .exp file
string(STRIP "${_ss_out}" _ss_stripped)
string(REGEX REPLACE "\\\n" ";" _list ${_ss_stripped})
foreach(_dir ${_list})
add_subdirectory(${_dir} ${_dir}) #specify source and binary dirs as the same
endforeach(_dir ${_ss_out})
# configure_file forces cmake to run again if the schema has been modified
#if multiple schemas in one file, _schema is the last one printed.
# 2e6ee669 removed _schema, does this still work?
configure_file(${SCHEMA_FILE} ${SCANNER_BUILD_DIR}/${_schema})
endmacro(SCHEMA_CMLIST SCHEMA_FILE)
+58
View File
@@ -0,0 +1,58 @@
#use git for a pretty commit id
#uses 'git describe --tags', so tags are required in the repo
#create a tag with 'git tag <name>' and 'git push --tags'
# http://stackoverflow.com/questions/3780667
# http://www.cmake.org/pipermail/cmake/2009-February/027014.html
#scl_version_string.h defines scl_version() which returns a pretty commit description and a build timestamp.
set(SCL_IS_SUBBUILD "@SCL_IS_SUBBUILD@")
set(VERS_FILE ${SOURCE_DIR}/SCL_VERSION.txt )
if( EXISTS ${SOURCE_DIR}/.git )
find_package(Git QUIET)
if(GIT_FOUND)
execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags RESULT_VARIABLE res_var OUTPUT_VARIABLE GIT_COMMIT_ID )
if( NOT ${res_var} EQUAL 0 )
file( READ ${VERS_FILE} GIT_COMMIT_ID LIMIT 255 )
if(NOT SCL_IS_SUBBUILD)
message( WARNING "Git failed (probably no tags in repo). Build will contain revision info from ${VERS_FILE}." )
endif(NOT SCL_IS_SUBBUILD)
endif()
else(GIT_FOUND)
file( READ ${VERS_FILE} GIT_COMMIT_ID LIMIT 255 )
if(NOT SCL_IS_SUBBUILD)
message( WARNING "Git not found. Build will contain revision info from ${VERS_FILE}." )
endif(NOT SCL_IS_SUBBUILD)
endif(GIT_FOUND)
else()
file( READ ${VERS_FILE} GIT_COMMIT_ID LIMIT 255 )
if(NOT SCL_IS_SUBBUILD)
message( WARNING "Git failed ('.git' not found). Build will contain revision info from ${VERS_FILE}." )
endif(NOT SCL_IS_SUBBUILD)
endif()
string( REPLACE "\n" "" GIT_COMMIT_ID ${GIT_COMMIT_ID} )
set( vstring "//scl_version_string.h - written by cmake. Changes will be lost!\n"
"#ifndef SCL_VERSION_STRING\n"
"#define SCL_VERSION_STRING\n\n"
"/*\n** Returns a string like \"test-1-g5e1fb47, built at TIME on DATE\", where test is the\n"
"** name of the last tagged git revision, 1 is the number of commits since that tag,\n"
"** 'g' is unknown, 5e1fb47 is the first 7 chars of the git sha1 commit id, and TIME\n"
"** and DATE are substituted by the compiler.\n*/\n\n"
"const char* scl_version() {\n"
" return \"git commit id ${GIT_COMMIT_ID}, built at \"__TIME__\" on \"__DATE__\;\n"
"}\n\n"
"#endif\n"
)
file(WRITE scl_version_string.h.txt ${vstring} )
# copy the file to the final header only if the version changes
# reduces needless rebuilds
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
scl_version_string.h.txt ${BINARY_DIR}/include/scl_version_string.h)
if(NOT SCL_IS_SUBBUILD)
message("-- scl_version_string.h is up-to-date.")
endif(NOT SCL_IS_SUBBUILD)
+12 -20
View File
@@ -1,33 +1,25 @@
# run_ctest.cmake
# `ctest -S run_ctest.cmake`
set(CTEST_SOURCE_DIRECTORY .)
set(CTEST_BINARY_DIRECTORY build_matrix)
set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
set(CTEST_MEMORYCHECK_COMMAND /usr/bin/valgrind)
set(CTEST_INITIAL_CACHE "
set( CTEST_SOURCE_DIRECTORY . )
set( CTEST_BINARY_DIRECTORY build_matrix )
set( CTEST_CMAKE_GENERATOR "Unix Makefiles" )
set( CTEST_MEMORYCHECK_COMMAND /usr/bin/valgrind )
set( CTEST_INITIAL_CACHE "
SITE:STRING=${CTEST_SITE}
BUILDNAME:STRING=${CTEST_BUILD_NAME}
SC_ENABLE_TESTING:BOOL=ON
SC_BUILD_TYPE:STRING=Debug
SCL_ENABLE_TESTING:BOOL=ON
SCL_BUILD_TYPE:STRING=Debug
")
ctest_start(matrix)
ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
ctest_configure(BUILD "${CTEST_BINARY_DIRECTORY}" OPTIONS -DSC_ENABLE_TESTING=ON)
ctest_build(BUILD "${CTEST_BINARY_DIRECTORY}")
ctest_configure( BUILD "${CTEST_BINARY_DIRECTORY}" OPTIONS -DSCL_ENABLE_TESTING=ON )
ctest_build( BUILD "${CTEST_BINARY_DIRECTORY}" )
message("running tests")
ctest_test(BUILD "${CTEST_BINARY_DIRECTORY}" INCLUDE_LABEL "cpp_schema_....*")
ctest_test( BUILD "${CTEST_BINARY_DIRECTORY}" INCLUDE_LABEL "cpp_schema_....*" )
message("running python script")
execute_process(COMMAND python ../misc/wiki-scripts/update-matrix.py
WORKING_DIRECTORY ${CTEST_BINARY_DIRECTORY})
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
execute_process( COMMAND python ../misc/wiki-scripts/update-matrix.py
WORKING_DIRECTORY ${CTEST_BINARY_DIRECTORY} )
File diff suppressed because it is too large Load Diff
+22
View File
@@ -0,0 +1,22 @@
data/ap203/README
The EXPRESS schema in this directory is based on ISO 10303-203, an
international standard which is copyrighted by ISO. ISO has granted
NIST permission to publicly distribute the EXPRESS source from ISO
standards. The EXPRESS schema provided in this software release has
been modified to facilitate its use with this software and is provided
as an example schema only. This disclaimer must be included in any
redistribution of the EXPRESS schema. This disclaimer must also be
included in the file containing the EXPRESS schema.
The EXPRESS source for the modified AP 203 schema contained in the
file 203wseds.exp has modifications to it from the standard based on
Standard Enhancement and Discrepancy System (SEDS) reports. SEDS
reports are an informal way for ISO TC 184/SC4 to document errors,
ambiguities, and enhancements to the standard; and to recommend
corrections for formal adoption via a technical corrigendum,
amendment, or revision.
The data files in this directory were developed by ITI as part of the
STEP conformance testing project. The files contain data that conform
to the modified AP203 schema.
+227
View File
@@ -0,0 +1,227 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 2 - ntsw'),'1');
FILE_NAME('cube1.p21','1994-12-14 T10:00:00',
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
('Industrial Technology Institute',
'P.O. Box 1485',
'Ann Arbor',
'Michigan',
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1=PRODUCT('41114','Solid Cube','Description for part 41114',(#2));
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
#3333=APPLICATION_PROTOCOL_DEFINITION('status_str','config_control_design',1990,#3);
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
#5=PERSON_AND_ORGANIZATION(#6,#7);
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,('PhD.'));
#1097=PERSONAL_ADDRESS($,'17147','New Hamburg Road',$,'Whitmore Lake','Michigan','48189','USA',$,'(313) 769-4306',$,$,(#6));
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','Anot-for-profit engineering and research center');
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#2101=PRODUCT_CATEGORY_RELATIONSHIP('root-to-standard','Relate the root to the standard product category',#1098,#1109);
#1109=PRODUCT_CATEGORY('standard_part','Identifies this as a standard part') ;
#1101=PRODUCT_CATEGORY_RELATIONSHIP('standard-to-detail','Relate the standard to the detail product category',#1109,#9);
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('machined','Part Type for product 41114',(#1));
#1098=PRODUCT_CATEGORY('mechanical','mechanical product category: root node');
#1099=PRODUCT_CATEGORY_RELATIONSHIP('root-to-structural','Relates the root to the structural category',#1098,#1100);
#1100=PRODUCT_CATEGORY('structural','The structural product category');
#1110=PRODUCT_CATEGORY_RELATIONSHIP('structural-to-machined', 'Relates the structural to the machined category',#1100,#1102) ;
#1102=PRODUCT_RELATED_PRODUCT_CATEGORY('assembly','The machined product category',(#1));
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 41114',#1,.BOUGHT.);
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
#13=PERSON_AND_ORGANIZATION(#14,#7);
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
#44=CC_DESIGN_APPROVAL(#45,(#10));
#45=APPROVAL(#46,'Approved as initial STEP test case part');
#46=APPROVAL_STATUS('approved');
#47=APPROVAL_DATE_TIME(#48,#45);
#48=DATE_AND_TIME(#50,#51);
#50=CALENDAR_DATE(1993,17,7);
#51=LOCAL_TIME(13,29,52.0,#29);
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
#70=PERSON_AND_ORGANIZATION(#71,#7);
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
#72=APPROVAL_ROLE('Authorize part release');
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
#35=DATE_AND_TIME(#36,#37);
#36=CALENDAR_DATE(1993,17,7);
#37=LOCAL_TIME(13,$,$,#29);
#39=DATE_TIME_ROLE('classification_date');
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
#41=PERSON_AND_ORGANIZATION(#42,#7);
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#53=CC_DESIGN_APPROVAL(#54,(#32));
#54=APPROVAL(#55,'Approved as unclassified step test data');
#55=APPROVAL_STATUS('approved');
#56=APPROVAL_DATE_TIME(#57,#54);
#57=DATE_AND_TIME(#58,#59);
#58=CALENDAR_DATE(1993,17,7);
#59=LOCAL_TIME(13,47,28.0,#29);
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
#74=PERSON_AND_ORGANIZATION(#75,#7);
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
#76=APPROVAL_ROLE('Authorize the security code');
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
#18=DESIGN_CONTEXT('detailed design',#3,'design');
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
#25=DATE_AND_TIME(#27,#28);
#27=CALENDAR_DATE(1993,19,7);
#28=LOCAL_TIME(19,46,55.0,#29);
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
#30=DATE_TIME_ROLE('creation_date');
#61=CC_DESIGN_APPROVAL(#62,(#17));
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
#63=APPROVAL_STATUS('approved');
#64=APPROVAL_DATE_TIME(#65,#62);
#65=DATE_AND_TIME(#66,#67);
#66=CALENDAR_DATE(1993,19,7);
#67=LOCAL_TIME(19,47,51.0,#29);
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
#79=APPROVAL_ROLE('Authorize product definition');
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
#81=PERSON_AND_ORGANIZATION(#82,#83);
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization');
#1096=ORGANIZATIONAL_ADDRESS($,'2901','Hubbard','P.O. Box 1485','Ann Arbor','Michigan','48106','USA','(313) 769-4069','(313) 769-4000',$,$,(#83));
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
#87=CERTIFICATION_TYPE('design_supplier');
#89=CC_DESIGN_APPROVAL(#90,(#86));
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
#91=APPROVAL_STATUS('approved');
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
#93=APPROVAL_ROLE('Authorize supplier certification');
#94=DATE_AND_TIME(#95,#96);
#95=CALENDAR_DATE(1993,20,4);
#96=LOCAL_TIME(15,47,51.0,#29);
#97=APPROVAL_DATE_TIME(#94,#90);
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
#99=CALENDAR_DATE(1993,19,4);
#100=DATE_AND_TIME(#99,#101);
#101=LOCAL_TIME(10,41,59.0,#29);
#102=DATE_TIME_ROLE('certification_date');
#1103=PRODUCT('12345','Cube Solid','CDI''s part 12345 description',(#2));
#2009=PRODUCT_RELATED_PRODUCT_CATEGORY('customer_furnished_equipment','Part Type for product 12345',(#1103));
#1104=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#8,(#1103));
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Cube Solid',#1103,.MADE.);
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
#1014=PERSON('CDI-1','Brandenberg','Chad',('David','George'),$,$);
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
#1045=APPROVAL(#1046,'Approved as test part design');
#1046=APPROVAL_STATUS('approved');
#1047=APPROVAL_DATE_TIME(#1048,#1045);
#1048=DATE_AND_TIME(#1050,#1051);
#1050=CALENDAR_DATE(1993,19,7);
#1051=LOCAL_TIME(19,51,59.0,#29);
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
#1070=PERSON_AND_ORGANIZATION(#82,#83);
#1072=APPROVAL_ROLE('Authorize part version');
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
#1035=DATE_AND_TIME(#1036,#1037);
#1036=CALENDAR_DATE(1993,19,7);
#1037=LOCAL_TIME(19,45,41.0,#29);
#1039=DATE_TIME_ROLE('classification_date');
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#1111=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1112,#1115,(#1032));
#1112=DATE_AND_TIME(#1113,#1114);
#1113=CALENDAR_DATE(1993,1,10);
#1114=LOCAL_TIME(9,$,$,#29);
#1115=DATE_TIME_ROLE('declassification_date');
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
#1054=APPROVAL(#1055,'Approved as unclassified part design');
#1055=APPROVAL_STATUS('approved');
#1056=APPROVAL_DATE_TIME(#1057,#1054);
#1057=DATE_AND_TIME(#1058,#1059);
#1058=CALENDAR_DATE(1993,19,7);
#1059=LOCAL_TIME(19,47,58.0,#29);
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
#1076=APPROVAL_ROLE('Authorize the security code');
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
#1025=DATE_AND_TIME(#1027,#1028);
#1027=CALENDAR_DATE(1993,18,7);
#1028=LOCAL_TIME(10,51,59.0,#29);
#1030=DATE_TIME_ROLE('creation_date');
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
#1062=APPROVAL(#1063,'Approved as detailed drawing');
#1063=APPROVAL_STATUS('approved');
#1064=APPROVAL_DATE_TIME(#1065,#1062);
#1065=DATE_AND_TIME(#1066,#1067);
#1066=CALENDAR_DATE(1993,19,7);
#1067=LOCAL_TIME(19,51,59.0,#29);
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
#1017=PRODUCT_DEFINITION_WITH_ASSOCIATED_DOCUMENTS('D2','Description of product for part 1234',#1010,#1018, (#1116));
#1018=PRODUCT_DEFINITION_CONTEXT('detailed design',#3,'design');
#1079=APPROVAL_ROLE('Authorize product definition');
#1116=DOCUMENT('shape1b.dwg','cube solid CAD file','CAD file for solid cube',#1117);
#1117=DOCUMENT_TYPE('cad_filename');
#1080=CC_DESIGN_CONTRACT(#1081,(#10));
#1081=CONTRACT('ITI-1121','Development of STEP conformance testing',#1082);
#1082=CONTRACT_TYPE('fixed_price');
#1083=CC_DESIGN_APPROVAL(#1084,(#1081));
#1084=APPROVAL(#1085,'Approved as active project under contract');
#1085=APPROVAL_STATUS('approved');
#1086=APPROVAL_PERSON_ORGANIZATION(#1087,#1084,#1090);
#1087=PERSON_AND_ORGANIZATION(#1088,#1089);
#1088=PERSON('212-33-7485','Masters','Larry',$,$,$);
#1089=ORGANIZATION('NIST','National Institute of Standards and Technology',
'Institute within the Department of Commerce');
#1090=APPROVAL_ROLE('Authorized the contract');
#1105=APPROVAL_DATE_TIME(#1106,#1084);
#1106=DATE_AND_TIME(#1107,#1108);
#1107=WEEK_OF_YEAR_AND_DAY_DATE(1993,20,5);
#1108=LOCAL_TIME(14,21,7.0,#29);
#1091=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1092,#1095,(#1081));
#1092=PERSON_AND_ORGANIZATION(#1093,#7);
#1093=PERSON('355-55-6849','Kuper','George',$,$,$);
#1095=PERSON_AND_ORGANIZATION_ROLE('contractor');
#1200=SHAPE_DEFINITION_REPRESENTATION(#1201,#9200);
#1201=PRODUCT_DEFINITION_SHAPE('NTSW_Shape','Shape of Solid Cube',#17);
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040,'xx','yy');
#9110 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
#9111 = CARTESIAN_POINT('CartPt2',(2.0,0.0,0.0));
#9112 = CARTESIAN_POINT('CartPt3',(2.0,0.0,2.0));
#9113 = CARTESIAN_POINT('CartPt4',(0.0,0.0,2.0));
#9115 = CARTESIAN_POINT('CartPt5',(0.0,2.0,0.0));
#9116 = CARTESIAN_POINT('CartPt6',(2.0,2.0,0.0));
#9117 = CARTESIAN_POINT('CartPt7',(2.0,2.0,2.0));
#9118 = CARTESIAN_POINT('CartPt8',(0.0,2.0,2.0));
#9120 = POLYLINE('PolyLine2',(#9113,#9118,#9117,#9116));
#9130 = POLYLINE('PolyLine2',(#9110,#9113,#9112,#9117));
#9140 = POLYLINE('PolyLine3',(#9118,#9115,#9110,#9111));
#9150 = POLYLINE('PolyLine4',(#9112,#9111,#9116,#9115));
#9160 = GEOMETRIC_CURVE_SET('GeomCurSet1',(#9120,#9130,#9140,#9150));
#9190 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
REPRESENTATION_CONTEXT('CONTEXT for gbwr - simple cube','This is a 3d context using millimeters for linear dimension'));
#9200 = GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION('gbwsr',(#9160),#9190);
ENDSEC;
END-ISO-10303-21;
+219
View File
@@ -0,0 +1,219 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 2 - ntsw'),'1');
FILE_NAME('cube2.p21','1994-12-14 T10:00:00',
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
('Industrial Technology Institute',
'P.O. Box 1485',
'Ann Arbor',
'Michigan',
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1=PRODUCT('51114','Solid Cube with Parabola Face','Description for part 51114',(#2));
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
#5=PERSON_AND_ORGANIZATION(#6,#7);
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','A not-for-profit engineering and research center');
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 51114',(#1));
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 51114',#1,.BOUGHT.);
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
#13=PERSON_AND_ORGANIZATION(#14,#7);
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
#44=CC_DESIGN_APPROVAL(#45,(#10));
#45=APPROVAL(#46,'Approved as initial STEP test case part');
#46=APPROVAL_STATUS('approved');
#47=APPROVAL_DATE_TIME(#48,#45);
#48=DATE_AND_TIME(#50,#51);
#50=CALENDAR_DATE(1993,17,7);
#51=LOCAL_TIME(13,29,52.0,#29);
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
#70=PERSON_AND_ORGANIZATION(#71,#7);
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
#72=APPROVAL_ROLE('Authorize part release');
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
#35=DATE_AND_TIME(#36,#37);
#36=CALENDAR_DATE(1993,17,7);
#37=LOCAL_TIME(13,45,20.0,#29);
#39=DATE_TIME_ROLE('classification_date');
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
#41=PERSON_AND_ORGANIZATION(#42,#7);
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#53=CC_DESIGN_APPROVAL(#54,(#32));
#54=APPROVAL(#55,'Approved as unclassified step test data');
#55=APPROVAL_STATUS('approved');
#56=APPROVAL_DATE_TIME(#57,#54);
#57=DATE_AND_TIME(#58,#59);
#58=CALENDAR_DATE(1993,17,7);
#59=LOCAL_TIME(13,47,28.0,#29);
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
#74=PERSON_AND_ORGANIZATION(#75,#7);
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
#76=APPROVAL_ROLE('Authorize the security code');
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
#18=DESIGN_CONTEXT('detailed design',#3,'design');
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
#25=DATE_AND_TIME(#27,#28);
#27=CALENDAR_DATE(1993,19,7);
#28=LOCAL_TIME(19,46,55.0,#29);
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
#30=DATE_TIME_ROLE('creation_date');
#61=CC_DESIGN_APPROVAL(#62,(#17));
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
#63=APPROVAL_STATUS('approved');
#64=APPROVAL_DATE_TIME(#65,#62);
#65=DATE_AND_TIME(#66,#67);
#66=CALENDAR_DATE(1993,19,7);
#67=LOCAL_TIME(19,47,51.0,#29);
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
#79=APPROVAL_ROLE('Authorize product definition');
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
#81=PERSON_AND_ORGANIZATION(#82,#83);
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization.');
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
#87=CERTIFICATION_TYPE('design_supplier');
#89=CC_DESIGN_APPROVAL(#90,(#86));
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
#91=APPROVAL_STATUS('approved');
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
#93=APPROVAL_ROLE('Authorize supplier certification');
#94=DATE_AND_TIME(#95,#96);
#95=CALENDAR_DATE(1993,20,4);
#96=LOCAL_TIME(15,47,51.0,#29);
#97=APPROVAL_DATE_TIME(#94,#90);
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
#99=CALENDAR_DATE(1993,19,4);
#100=DATE_AND_TIME(#99,#101);
#101=LOCAL_TIME(10,41,59.0,#29);
#102=DATE_TIME_ROLE('certification_date');
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Solid Cube with Parabola Face',#1,.MADE.);
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
#1045=APPROVAL(#1046,'Approved as test part design');
#1046=APPROVAL_STATUS('approved');
#1047=APPROVAL_DATE_TIME(#1048,#1045);
#1048=DATE_AND_TIME(#1050,#1051);
#1050=CALENDAR_DATE(1993,19,7);
#1051=LOCAL_TIME(19,51,59.0,#29);
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
#1070=PERSON_AND_ORGANIZATION(#82,#83);
#1072=APPROVAL_ROLE('Authorize part version');
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
#1035=DATE_AND_TIME(#1036,#1037);
#1036=CALENDAR_DATE(1993,19,7);
#1037=LOCAL_TIME(19,45,41.0,#29);
#1039=DATE_TIME_ROLE('classification_date');
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
#1054=APPROVAL(#1055,'Approved as unclassified part design');
#1055=APPROVAL_STATUS('approved');
#1056=APPROVAL_DATE_TIME(#1057,#1054);
#1057=DATE_AND_TIME(#1058,#1059);
#1058=CALENDAR_DATE(1993,19,7);
#1059=LOCAL_TIME(19,47,58.0,#29);
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
#1076=APPROVAL_ROLE('Authorize the security code');
#1017=PRODUCT_DEFINITION('D2','Description of product for part 51114',#1010,#1018);
#1018=PRODUCT_DEFINITION_CONTEXT('detailed design',#3,'design');
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
#1025=DATE_AND_TIME(#1027,#1028);
#1027=CALENDAR_DATE(1993,18,7);
#1028=LOCAL_TIME(10,51,59.0,#29);
#1030=DATE_TIME_ROLE('creation_date');
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
#1062=APPROVAL(#1063,'Approved as detailed drawing');
#1063=APPROVAL_STATUS('approved');
#1064=APPROVAL_DATE_TIME(#1065,#1062);
#1065=DATE_AND_TIME(#1066,#1067);
#1066=CALENDAR_DATE(1993,19,7);
#1067=LOCAL_TIME(19,51,59.0,#29);
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
#1079=APPROVAL_ROLE('Authorize product definition');
#1200=SHAPE_DEFINITION_REPRESENTATION(#1201,#9260);
#1201=PRODUCT_DEFINITION_SHAPE('GBWR_Shape','Shape of Solid Cube with Parabola Face',#17);
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040,'xx','yy');
#9101 = DIRECTION('Dir1',(1.0,0.0,0.0));
#9102 = DIRECTION('Dir2',(0.0,1.0,0.0));
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
#9105 = DIRECTION('Dir4',(0.0,-1.0,0.0));
#9111 = CARTESIAN_POINT('CartPt2',(0.0, 1.0, 0.0));
#9112 = CARTESIAN_POINT('CartPt3',(1.0, 1.0, 0.0));
#9113 = CARTESIAN_POINT('CartPt4',(1.0, 2.0, 0.0));
#9114 = CARTESIAN_POINT('CartPt5',(0.0, 2.0, 0.0));
#9115 = CARTESIAN_POINT('CartPt6',(0.0, 1.0, 1.0));
#9116 = CARTESIAN_POINT('CartPt7',(1.0, 1.0, 1.0));
#9117 = CARTESIAN_POINT('CartPt8',(1.0, 2.0, 1.0));
#9118 = CARTESIAN_POINT('CartPt9',(0.0, 2.0, 1.0));
#9120 = CARTESIAN_POINT('CartPt10',(0.5, 1.25, 0.0));
#9121 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9120,$,#9105);
#9122 = PARABOLA('Parab1',#9121, 0.25);
#9123 = TRIMMED_CURVE('TrimCur1',#9122,(#9111),(#9112),.T.,.CARTESIAN.);
#9130 = CARTESIAN_POINT('CartPt11',(0.5, 1.25, 1.0));
#9131 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9130,$,#9105);
#9132 = PARABOLA('Parab2',#9131, 0.25);
#9133 = TRIMMED_CURVE('TrimCur2',#9132,(#9115),(#9116),.F.,.CARTESIAN.);
#9140 = VECTOR('Vec1',#9103,10.0);
#9141 = LINE('Line1',#9111,#9140);
#9142 = TRIMMED_CURVE('TrimCur3',#9141,(#9111,0.0),(#9115,0.1),.T.,.PARAMETER.);
#9150 = LINE('Line2',#9112,#9140);
#9151 = TRIMMED_CURVE('TrimCur4',#9150,(#9112,0.0),(#9116,0.1),.T.,.PARAMETER.);
#9160 = LINE('Line3',#9113,#9140);
#9161 = TRIMMED_CURVE('TrimCur5',#9160,(#9113,0.0),(#9117,0.1),.T.,.PARAMETER.);
#9170 = LINE('Line4',#9114,#9140);
#9171 = TRIMMED_CURVE('TrimCur6',#9170,(#9114,0.0),(#9116,0.1),.T.,.PARAMETER.);
#9180 = VECTOR('Vec2',#9102,10.0);
#9181 = LINE('Line5',#9111,#9180);
#9182 = TRIMMED_CURVE('TrimCur7',#9181,(#9111,0.0),(#9114,0.1),.T.,.PARAMETER.);
#9190 = LINE('Line6',#9112,#9180);
#9191 = TRIMMED_CURVE('TrimCur8',#9190,(#9112,0.0),(#9113,0.1),.T.,.PARAMETER.);
#9200 = LINE('Line7',#9116,#9180);
#9201 = TRIMMED_CURVE('TrimCur9',#9200,(#9116,0.0),(#9117,0.1),.T.,.PARAMETER.);
#9210 = LINE('Line8',#9115,#9180);
#9211 = TRIMMED_CURVE('TrimCur10',#9210,(#9115,0.0),(#9118,0.1),.T.,.PARAMETER.);
#9220 = VECTOR('Vec3',#9101,10.0);
#9221 = LINE('Line9',#9114,#9220);
#9222 = TRIMMED_CURVE('TrimCur11',#9221,(#9114,0.0),(#9113,0.1),.T.,.PARAMETER.);
#9230 = LINE('Line10',#9118,#9220);
#9231 = TRIMMED_CURVE('TrimCur12',#9230,(#9118,0.0),(#9117,0.1),.T.,.PARAMETER.);
#9240 = GEOMETRIC_CURVE_SET('GeomCurSet1',(#9123,#9133,#9142,#9151,#9161,#9171,#9182,#9191,#9201,#9211,#9222,#9231));
#9250 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
REPRESENTATION_CONTEXT('CONTEXT for gbwr test case cube with parabolic face','This is a 3d context using centimeters for linear dimension'));
#9260 = GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION('xx',(#9240),#9250);
ENDSEC;
END-ISO-10303-21;
+699
View File
@@ -0,0 +1,699 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 6 - abr'),'1');
FILE_NAME('g_r_assembly1.p21','1994-12-14 T10:00:00',
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
('Industrial Technology Institute',
'P.O. Box 1485',
'Ann Arbor',
'Michigan',
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1=PRODUCT('55555','Gasket Rod Assembly','Description for part 55555',(#2));
#2=MECHANICAL_CONTEXT('assembly specification',#3,'mechanical');
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
#5=PERSON_AND_ORGANIZATION(#6,#7);
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','A not-for-profit engineering and research center');
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('assembly','Part Type for product 55555',(#1));
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 55555',#1,.BOUGHT.);
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
#13=PERSON_AND_ORGANIZATION(#14,#7);
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
#44=CC_DESIGN_APPROVAL(#45,(#10));
#45=APPROVAL(#46,'Approved as initial STEP test case part');
#46=APPROVAL_STATUS('approved');
#47=APPROVAL_DATE_TIME(#48,#45);
#48=DATE_AND_TIME(#50,#51);
#50=CALENDAR_DATE(1993,17,7);
#51=LOCAL_TIME(13,29,52.0,#29);
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
#70=PERSON_AND_ORGANIZATION(#71,#7);
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
#72=APPROVAL_ROLE('Authorize part release');
#1251=CONFIGURATION_DESIGN(#1252,#10);
#1252=CONFIGURATION_ITEM('LX','name',$,#1253,'Concept Development');
#1350=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#1351,(#1252));
#1351=PERSON_AND_ORGANIZATION_ROLE('configuration_manager');
#1253=PRODUCT_CONCEPT('Super Gasket','The Super Gasket machined standard part','The Super Gasket Line',#1254);
#1254=PRODUCT_CONCEPT_CONTEXT('structural gasket',#3,'market segment type');
#1255=CC_DESIGN_APPROVAL(#1256,(#1252));
#1256=APPROVAL(#1257,'Not yet approved product configuration');
#1257=APPROVAL_STATUS('not_yet_approved');
#1258=APPROVAL_PERSON_ORGANIZATION(#70,#1256,#1259);
#1259=APPROVAL_ROLE('approval for configuration item');
#1260=APPROVAL_DATE_TIME(#1261,#1256);
#1261=DATE_AND_TIME(#1264,#1263);
#1263=LOCAL_TIME(11,56,19.0,#29);
#1264=ORDINAL_DATE(1993,202) ;
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
#35=DATE_AND_TIME(#36,#37);
#36=CALENDAR_DATE(1993,17,7);
#37=LOCAL_TIME(13,45,20.0,#29);
#39=DATE_TIME_ROLE('classification_date');
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
#41=PERSON_AND_ORGANIZATION(#42,#7);
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#53=CC_DESIGN_APPROVAL(#54,(#32));
#54=APPROVAL(#55,'Approved as unclassified step test data');
#55=APPROVAL_STATUS('approved');
#56=APPROVAL_DATE_TIME(#57,#54);
#57=DATE_AND_TIME(#58,#59);
#58=CALENDAR_DATE(1993,17,7);
#59=LOCAL_TIME(13,47,28.0,#29);
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
#74=PERSON_AND_ORGANIZATION(#75,#7);
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
#76=APPROVAL_ROLE('Authorize the security code');
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for STEP conformance testing',#10,#18);
#18=DESIGN_CONTEXT('assembly specification',#3,'design');
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
#25=DATE_AND_TIME(#27,#28);
#27=CALENDAR_DATE(1993,19,7);
#28=LOCAL_TIME(19,46,55.0,#29);
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
#30=DATE_TIME_ROLE('creation_date');
#61=CC_DESIGN_APPROVAL(#62,(#17));
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
#63=APPROVAL_STATUS('approved');
#64=APPROVAL_DATE_TIME(#65,#62);
#65=DATE_AND_TIME(#66,#67);
#66=CALENDAR_DATE(1993,19,7);
#67=LOCAL_TIME(19,47,51.0,#29);
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
#79=APPROVAL_ROLE('Authorize product definition');
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
#81=PERSON_AND_ORGANIZATION(#82,#83);
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization');
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
#87=CERTIFICATION_TYPE('design_supplier');
#89=CC_DESIGN_APPROVAL(#90,(#86));
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
#91=APPROVAL_STATUS('approved');
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
#93=APPROVAL_ROLE('Authorize supplier certification');
#94=DATE_AND_TIME(#95,#96);
#95=CALENDAR_DATE(1993,20,4);
#96=LOCAL_TIME(15,47,51.0,#29);
#97=APPROVAL_DATE_TIME(#94,#90);
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
#99=CALENDAR_DATE(1993,19,4);
#100=DATE_AND_TIME(#99,#101);
#101=LOCAL_TIME(10,41,59.0,#29);
#102=DATE_TIME_ROLE('certification_date');
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Gasket Rod Assembly',#1,.MADE.);
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
#1045=APPROVAL(#1046,'Approved as test part design');
#1046=APPROVAL_STATUS('approved');
#1047=APPROVAL_DATE_TIME(#1048,#1045);
#1048=DATE_AND_TIME(#1050,#1051);
#1050=CALENDAR_DATE(1993,19,7);
#1051=LOCAL_TIME(19,51,59.0,#29);
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
#1070=PERSON_AND_ORGANIZATION(#82,#83);
#1072=APPROVAL_ROLE('Authorize part version');
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
#1035=DATE_AND_TIME(#1036,#1037);
#1036=CALENDAR_DATE(1993,19,7);
#1037=LOCAL_TIME(19,45,41.0,#29);
#1039=DATE_TIME_ROLE('classification_date');
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
#1054=APPROVAL(#1055,'Approved as unclassified part design');
#1055=APPROVAL_STATUS('approved');
#1056=APPROVAL_DATE_TIME(#1057,#1054);
#1057=DATE_AND_TIME(#1058,#1059);
#1058=CALENDAR_DATE(1993,19,7);
#1059=LOCAL_TIME(19,47,58.0,#29);
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
#1076=APPROVAL_ROLE('Authorize the security code');
#1017=PRODUCT_DEFINITION('D2','Detailed drawing',#1010,#1018);
#1018=DESIGN_CONTEXT('assembly specification',#3,'design');
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
#1025=DATE_AND_TIME(#1027,#1028);
#1027=CALENDAR_DATE(1993,18,7);
#1028=LOCAL_TIME(10,51,59.0,#29);
#1030=DATE_TIME_ROLE('creation_date');
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
#1062=APPROVAL(#1063,'Approved as assembly specification');
#1063=APPROVAL_STATUS('approved');
#1064=APPROVAL_DATE_TIME(#1065,#1062);
#1065=DATE_AND_TIME(#1066,#1067);
#1066=CALENDAR_DATE(1993,19,7);
#1067=LOCAL_TIME(19,51,59.0,#29);
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
#1079=APPROVAL_ROLE('Authorize product definition');
#3265=ASSEMBLY_COMPONENT_USAGE('1993-A1','component assembly relationship','assembly relationship of gasket rod assembly to flat ring gasket with holes',#17,#2017,$);
#3281=CC_DESIGN_SECURITY_CLASSIFICATION(#3282,(#3265));
#3282=SECURITY_CLASSIFICATION('1993-C5','open availability of STEP test data',#3283);
#3283=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#3284=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#3285,#3289,(#3282));
#3285=DATE_AND_TIME(#3286,#3287);
#3286=CALENDAR_DATE(1993,19,7);
#3287=LOCAL_TIME(10,45,20.0,#29);
#3289=DATE_TIME_ROLE('classification_date');
#3290=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#3292,(#3282));
#3292=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#3293=CC_DESIGN_APPROVAL(#3294,(#3282));
#3294=APPROVAL(#3295,'Approved as unclassified step test data');
#3295=APPROVAL_STATUS('approved');
#3296=APPROVAL_DATE_TIME(#3297,#3294);
#3297=DATE_AND_TIME(#3298,#3299);
#3298=CALENDAR_DATE(1993,19,7);
#3299=LOCAL_TIME(10,47,28.0,#29);
#3300=APPROVAL_PERSON_ORGANIZATION(#74,#3294,#3301);
#3301=APPROVAL_ROLE('Authorize the security code');
#2001=PRODUCT('21113','Flat Ring Gasket with Holes','Description for part 21113',(#2002));
#2002=MECHANICAL_CONTEXT('assembly specification',#3,'mechanical');
#2004=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#2008,(#2001));
#2008=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#2009=PRODUCT_RELATED_PRODUCT_CATEGORY('assembly','Part Type for product 21113',(#2001));
#2010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('B','Description of version with specified source for part 21113',#2001,.BOUGHT.);
#2011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#2015,(#2010));
#2015=PERSON_AND_ORGANIZATION_ROLE('creator');
#2044=CC_DESIGN_APPROVAL(#2045,(#2010));
#2045=APPROVAL(#2046,'Approved as initial STEP test case part');
#2046=APPROVAL_STATUS('approved');
#2047=APPROVAL_DATE_TIME(#2048,#2045);
#2048=DATE_AND_TIME(#2050,#2051);
#2050=CALENDAR_DATE(1993,17,7);
#2051=LOCAL_TIME(13,29,52.0,#29);
#2069=APPROVAL_PERSON_ORGANIZATION(#70,#2045,#2072);
#2072=APPROVAL_ROLE('Authorize part release');
#2031=CC_DESIGN_SECURITY_CLASSIFICATION(#2032,(#2010));
#2032=SECURITY_CLASSIFICATION('1993-C3','open availability of STEP test data',#2033);
#2033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#2034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#2035,#2039,(#2032));
#2035=DATE_AND_TIME(#2036,#2037);
#2036=CALENDAR_DATE(1993,17,7);
#2037=LOCAL_TIME(13,45,20.0,#29);
#2039=DATE_TIME_ROLE('classification_date');
#2040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#2043,(#2032));
#2043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#2053=CC_DESIGN_APPROVAL(#2054,(#2032));
#2054=APPROVAL(#2055,'Approved as unclassified step test data');
#2055=APPROVAL_STATUS('approved');
#2056=APPROVAL_DATE_TIME(#2057,#2054);
#2057=DATE_AND_TIME(#2058,#2059);
#2058=CALENDAR_DATE(1993,17,7);
#2059=LOCAL_TIME(13,47,28.0,#29);
#2073=APPROVAL_PERSON_ORGANIZATION(#74,#2054,#2076);
#2076=APPROVAL_ROLE('Authorize the security code');
#2017=PRODUCT_DEFINITION('D3','Detailed drawing as planned for STEP conformance testing',#2010,#2018);
#2018=DESIGN_CONTEXT('assembly specification',#3,'design');
#2019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#2023,(#2017));
#2023=PERSON_AND_ORGANIZATION_ROLE('creator');
#2024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#2025,#2030,(#2017));
#2025=DATE_AND_TIME(#2027,#2028);
#2027=CALENDAR_DATE(1993,19,7);
#2028=LOCAL_TIME(19,46,55.0,#29);
#2030=DATE_TIME_ROLE('creation_date');
#2061=CC_DESIGN_APPROVAL(#2062,(#2017));
#2062=APPROVAL(#2063,'Approved as STEP conformance testing drawing');
#2063=APPROVAL_STATUS('approved');
#2064=APPROVAL_DATE_TIME(#2065,#2062);
#2065=DATE_AND_TIME(#2066,#2067);
#2066=CALENDAR_DATE(1993,19,7);
#2067=LOCAL_TIME(19,47,51.0,#29);
#2077=APPROVAL_PERSON_ORGANIZATION(#70,#2062,#2079);
#2079=APPROVAL_ROLE('Authorize product definition');
#2080=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#2084,(#2010,#3010));
#2084=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#2088=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides assembly specification',#2017,#3017);
#2085=CC_DESIGN_CERTIFICATION(#2086,(#2088));
#2086=CERTIFICATION('ISO-9000 certified design supplier','quality control',#2087);
#2087=CERTIFICATION_TYPE('design_supplier');
#2089=CC_DESIGN_APPROVAL(#2090,(#2086));
#2090=APPROVAL(#2091,'Approved as ISO-9000 certified supplier');
#2091=APPROVAL_STATUS('approved');
#2092=APPROVAL_PERSON_ORGANIZATION(#70,#2090,#2093);
#2093=APPROVAL_ROLE('Authorize supplier certification');
#2094=DATE_AND_TIME(#2095,#2096);
#2095=CALENDAR_DATE(1993,20,4);
#2096=LOCAL_TIME(15,47,51.0,#29);
#2097=APPROVAL_DATE_TIME(#2094,#2090);
#2098=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#2100,#2102,(#2086));
#2099=CALENDAR_DATE(1993,19,4);
#2100=DATE_AND_TIME(#2099,#2101);
#2101=LOCAL_TIME(10,41,59.0,#29);
#2102=DATE_TIME_ROLE('certification_date');
#3010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Solid Square',#2001,.MADE.);
#3011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#3016,(#3010));
#3016=PERSON_AND_ORGANIZATION_ROLE('creator');
#3044=CC_DESIGN_APPROVAL(#3045,(#3010));
#3045=APPROVAL(#3046,'Approved as test part design');
#3046=APPROVAL_STATUS('approved');
#3047=APPROVAL_DATE_TIME(#3048,#3045);
#3048=DATE_AND_TIME(#3050,#3051);
#3050=CALENDAR_DATE(1993,19,7);
#3051=LOCAL_TIME(19,51,59.0,#29);
#3069=APPROVAL_PERSON_ORGANIZATION(#1070,#3045,#3072);
#3072=APPROVAL_ROLE('Authorize part version');
#3031=CC_DESIGN_SECURITY_CLASSIFICATION(#3032,(#3010));
#3032=SECURITY_CLASSIFICATION('1993-C4','open availability of test part designs',#3033);
#3033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#3034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#3035,#3039,(#3032));
#3035=DATE_AND_TIME(#3036,#3037);
#3036=CALENDAR_DATE(1993,19,7);
#3037=LOCAL_TIME(19,45,41.0,#29);
#3039=DATE_TIME_ROLE('classification_date');
#3040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#3043,(#3032));
#3043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#3053=CC_DESIGN_APPROVAL(#3054,(#3032));
#3054=APPROVAL(#3055,'Approved as unclassified part design');
#3055=APPROVAL_STATUS('approved');
#3056=APPROVAL_DATE_TIME(#3057,#3054);
#3057=DATE_AND_TIME(#3058,#3059);
#3058=CALENDAR_DATE(1993,19,7);
#3059=LOCAL_TIME(19,47,58.0,#29);
#3073=APPROVAL_PERSON_ORGANIZATION(#81,#3054,#3076);
#3076=APPROVAL_ROLE('Authorize the security code');
#3017=PRODUCT_DEFINITION('D4','Detailed drawing',#3010,#3018);
#3018=DESIGN_CONTEXT('assembly specification',#3,'design');
#3019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#3023,(#3017));
#3023=PERSON_AND_ORGANIZATION_ROLE('creator');
#3024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#3025,#3030,(#3017));
#3025=DATE_AND_TIME(#3027,#3028);
#3027=CALENDAR_DATE(1993,18,7);
#3028=LOCAL_TIME(10,51,59.0,#29);
#3030=DATE_TIME_ROLE('creation_date');
#3061=CC_DESIGN_APPROVAL(#3062,(#3017));
#3062=APPROVAL(#3063,'Approved as assembly specification');
#3063=APPROVAL_STATUS('approved');
#3064=APPROVAL_DATE_TIME(#3065,#3062);
#3065=DATE_AND_TIME(#3066,#3067);
#3066=CALENDAR_DATE(1993,19,7);
#3067=LOCAL_TIME(19,51,59.0,#29);
#3077=APPROVAL_PERSON_ORGANIZATION(#81,#3062,#3079);
#3079=APPROVAL_ROLE('Authorize product definition');
#5265=(ASSEMBLY_COMPONENT_USAGE('designator 5')
NEXT_ASSEMBLY_USAGE_OCCURRENCE()
PRODUCT_DEFINITION_RELATIONSHIP('1993-N2','next assembly relationship','next occurance assembly relationship of flat ring gasket with holes to rod with conical tip',#2017,#4017)
PRODUCT_DEFINITION_USAGE()
QUANTIFIED_ASSEMBLY_COMPONENT_USAGE(#5305));
#5305=MEASURE_WITH_UNIT(COUNT_MEASURE(4),#5306);
#5306=CONTEXT_DEPENDENT_UNIT(#5307,'parts');
#5307=DIMENSIONAL_EXPONENTS(0.0,0.0,0.0,0.0,0.0,0.0,0.0);
#5281=CC_DESIGN_SECURITY_CLASSIFICATION(#5282,(#5265));
#5282=SECURITY_CLASSIFICATION('1993-C8','open availability of STEP test data',#5283);
#5283=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#5284=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#5285,#5289,(#5282));
#5285=DATE_AND_TIME(#5286,#5287);
#5286=CALENDAR_DATE(1993,19,7);
#5287=LOCAL_TIME(10,45,20.0,#29);
#5289=DATE_TIME_ROLE('classification_date');
#5290=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#5292,(#5282));
#5292=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#5293=CC_DESIGN_APPROVAL(#5294,(#5282));
#5294=APPROVAL(#5295,'Approved as unclassified step test data');
#5295=APPROVAL_STATUS('approved');
#5296=APPROVAL_DATE_TIME(#5297,#5294);
#5297=DATE_AND_TIME(#5298,#5299);
#5298=CALENDAR_DATE(1993,19,7);
#5299=LOCAL_TIME(10,47,28.0,#29);
#5300=APPROVAL_PERSON_ORGANIZATION(#74,#5294,#5301);
#5301=APPROVAL_ROLE('Authorize the security code');
#4001=PRODUCT('41113','Rod with Conical Tip','Description for part 41113',(#4002));
#4002=MECHANICAL_CONTEXT('assembly specification',#3,'mechanical');
#4004=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#4008,(#4001));
#4008=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#4009=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 41113',(#4001));
#4010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('B','Description of version with specified source for part 41113',#4001,.BOUGHT.);
#4011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#4015,(#4010));
#4015=PERSON_AND_ORGANIZATION_ROLE('creator');
#4044=CC_DESIGN_APPROVAL(#4045,(#4010));
#4045=APPROVAL(#4046,'Approved as initial STEP test case part');
#4046=APPROVAL_STATUS('approved');
#4047=APPROVAL_DATE_TIME(#4048,#4045);
#4048=DATE_AND_TIME(#4050,#4051);
#4050=CALENDAR_DATE(1993,17,7);
#4051=LOCAL_TIME(13,29,52.0,#29);
#4069=APPROVAL_PERSON_ORGANIZATION(#70,#4045,#4072);
#4072=APPROVAL_ROLE('Authorize part release');
#4031=CC_DESIGN_SECURITY_CLASSIFICATION(#4032,(#4010));
#4032=SECURITY_CLASSIFICATION('1993-C6','open availability of STEP test data',#4033);
#4033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#4034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#4035,#4039,(#4032));
#4035=DATE_AND_TIME(#4036,#4037);
#4036=CALENDAR_DATE(1993,17,7);
#4037=LOCAL_TIME(13,45,20.0,#29);
#4039=DATE_TIME_ROLE('classification_date');
#4040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#4043,(#4032));
#4043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#4053=CC_DESIGN_APPROVAL(#4054,(#4032));
#4054=APPROVAL(#4055,'Approved as unclassified step test data');
#4055=APPROVAL_STATUS('approved');
#4056=APPROVAL_DATE_TIME(#4057,#4054);
#4057=DATE_AND_TIME(#4058,#4059);
#4058=CALENDAR_DATE(1993,17,7);
#4059=LOCAL_TIME(13,47,28.0,#29);
#4073=APPROVAL_PERSON_ORGANIZATION(#74,#4054,#4076);
#4076=APPROVAL_ROLE('Authorize the security code');
#4017=PRODUCT_DEFINITION('D5','Detailed drawing as planned for STEP conformance testing',#4010,#4018);
#4018=DESIGN_CONTEXT('assembly specification',#3,'design');
#4019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#4023,(#4017));
#4023=PERSON_AND_ORGANIZATION_ROLE('creator');
#4024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#4025,#4030,(#4017));
#4025=DATE_AND_TIME(#4027,#4028);
#4027=CALENDAR_DATE(1993,19,7);
#4028=LOCAL_TIME(19,46,55.0,#29);
#4030=DATE_TIME_ROLE('creation_date');
#4061=CC_DESIGN_APPROVAL(#4062,(#4017));
#4062=APPROVAL(#4063,'Approved as STEP conformance testing drawing');
#4063=APPROVAL_STATUS('approved');
#4064=APPROVAL_DATE_TIME(#4065,#4062);
#4065=DATE_AND_TIME(#4066,#4067);
#4066=CALENDAR_DATE(1993,19,7);
#4067=LOCAL_TIME(19,47,51.0,#29);
#4077=APPROVAL_PERSON_ORGANIZATION(#70,#4062,#4079);
#4079=APPROVAL_ROLE('Authorize product definition');
#4080=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#4084,(#4010,#5010));
#4084=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#4088=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides assembly specification',#4017,#5017);
#4085=CC_DESIGN_CERTIFICATION(#4086,(#4088));
#4086=CERTIFICATION('ISO-9000 certified design supplier','quality control',#4087);
#4087=CERTIFICATION_TYPE('design_supplier');
#4089=CC_DESIGN_APPROVAL(#4090,(#4086));
#4090=APPROVAL(#4091,'Approved as ISO-9000 certified supplier');
#4091=APPROVAL_STATUS('approved');
#4092=APPROVAL_PERSON_ORGANIZATION(#70,#4090,#4093);
#4093=APPROVAL_ROLE('Authorize supplier certification');
#4094=DATE_AND_TIME(#4095,#4096);
#4095=CALENDAR_DATE(1993,20,4);
#4096=LOCAL_TIME(15,47,51.0,#29);
#4097=APPROVAL_DATE_TIME(#4094,#4090);
#4098=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#4100,#4102,(#4086));
#4099=CALENDAR_DATE(1993,19,4);
#4100=DATE_AND_TIME(#4099,#4101);
#4101=LOCAL_TIME(10,41,59.0,#29);
#4102=DATE_TIME_ROLE('certification_date');
#5010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Rod with Conical Tip',#4001,.MADE.);
#5011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#5016,(#5010));
#5016=PERSON_AND_ORGANIZATION_ROLE('creator');
#5044=CC_DESIGN_APPROVAL(#5045,(#5010));
#5045=APPROVAL(#5046,'Approved as test part design');
#5046=APPROVAL_STATUS('approved');
#5047=APPROVAL_DATE_TIME(#5048,#5045);
#5048=DATE_AND_TIME(#5050,#5051);
#5050=CALENDAR_DATE(1993,19,7);
#5051=LOCAL_TIME(19,51,59.0,#29);
#5069=APPROVAL_PERSON_ORGANIZATION(#1070,#5045,#5072);
#5072=APPROVAL_ROLE('Authorize part version');
#5031=CC_DESIGN_SECURITY_CLASSIFICATION(#5032,(#5010));
#5032=SECURITY_CLASSIFICATION('1993-C7','open availability of test part designs',#5033);
#5033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#5034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#5035,#5039,(#5032));
#5035=DATE_AND_TIME(#5036,#5037);
#5036=CALENDAR_DATE(1993,19,7);
#5037=LOCAL_TIME(19,45,41.0,#29);
#5039=DATE_TIME_ROLE('classification_date');
#5040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#5043,(#5032));
#5043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#5053=CC_DESIGN_APPROVAL(#5054,(#5032));
#5054=APPROVAL(#5055,'Approved as unclassified part design');
#5055=APPROVAL_STATUS('approved');
#5056=APPROVAL_DATE_TIME(#5057,#5054);
#5057=DATE_AND_TIME(#5058,#5059);
#5058=CALENDAR_DATE(1993,19,7);
#5059=LOCAL_TIME(19,47,58.0,#29);
#5073=APPROVAL_PERSON_ORGANIZATION(#81,#5054,#5076);
#5076=APPROVAL_ROLE('Authorize the security code');
#5017=PRODUCT_DEFINITION('D6','Detailed drawing',#5010,#5018);
#5018=DESIGN_CONTEXT('assembly specification',#3,'design');
#5019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#5023,(#5017));
#5023=PERSON_AND_ORGANIZATION_ROLE('creator');
#5024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#5025,#5030,(#5017));
#5025=DATE_AND_TIME(#5027,#5028);
#5027=CALENDAR_DATE(1993,18,7);
#5028=LOCAL_TIME(10,51,59.0,#29);
#5030=DATE_TIME_ROLE('creation_date');
#5061=CC_DESIGN_APPROVAL(#5062,(#5017));
#5062=APPROVAL(#5063,'Approved as assembly specification');
#5063=APPROVAL_STATUS('approved');
#5064=APPROVAL_DATE_TIME(#5065,#5062);
#5065=DATE_AND_TIME(#5066,#5067);
#5066=CALENDAR_DATE(1993,19,7);
#5067=LOCAL_TIME(19,51,59.0,#29);
#5077=APPROVAL_PERSON_ORGANIZATION(#81,#5062,#5079);
#5079=APPROVAL_ROLE('Authorize product definition');
/* component assembly position : method 1 */
#1211=PRODUCT_DEFINITION_SHAPE('ABR_Shape','Shape relationship between gasket and rod',#5265);
#1210=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1212,#1211);
#1212=( REPRESENTATION_RELATIONSHIP('label','description',#9370,#10370)
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1213)
SHAPE_REPRESENTATION_RELATIONSHIP());
#1213=ITEM_DEFINED_TRANSFORMATION('name','description',#9211,#9120);
#1214=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1216,#1211);
#1216=(REPRESENTATION_RELATIONSHIP('label','description',#9370,#10370)
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1217)
SHAPE_REPRESENTATION_RELATIONSHIP());
#1217=ITEM_DEFINED_TRANSFORMATION('name','description',#9241,#9120);
#1218=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1220,#1211);
#1220=(REPRESENTATION_RELATIONSHIP('label','description',#9370,#10370)
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1221)
SHAPE_REPRESENTATION_RELATIONSHIP());
#1221=ITEM_DEFINED_TRANSFORMATION('name','description',#9271,#9120);
#1222=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1224,#1211);
#1224=(REPRESENTATION_RELATIONSHIP('label','description',#9370,#10370)
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1225)
SHAPE_REPRESENTATION_RELATIONSHIP());
#1225=ITEM_DEFINED_TRANSFORMATION('name','description',#9301,#9120);
/* component assembly position : method 2 */
#1230=MAPPED_ITEM('MapPath1',#1234,#9211);
#1231=MAPPED_ITEM('MapPath2',#1234,#9241);
#1232=MAPPED_ITEM('MapPath3',#1234,#9271);
#1233=MAPPED_ITEM('MapPath4',#1234,#9301);
#1234=REPRESENTATION_MAP(#9120,#10370);
#9020=DIMENSIONAL_EXPONENTS(1.0,0.0,0.0,0.0,0.0,0.0,0.0);
#9021=DIMENSIONAL_EXPONENTS(0.0,0.0,0.0,0.0,0.0,0.0,0.0);
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040,'xx','yy');
#9100 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
#9101 = DIRECTION('Dir1',(0.1,0.0,0.0));
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
#9120 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9100,#9103,#9101);
#9121 = PLANE('Plane1',#9120);
#9122 = CIRCLE('Circ1',#9120,40.0);
#9123 = CARTESIAN_POINT('CartPt2',(40.0,0.0,0.0));
#9124 = VERTEX_POINT('VertPt1',#9123);
#9125 = EDGE_CURVE('EdgeCur1',#9124,#9124,#9122,.T.);
#9126 = ORIENTED_EDGE('OriEdge1',*,*,#9125,.T.);
#9127 = EDGE_LOOP('EdgeLoop1',(#9126));
#9128 = FACE_BOUND('FaceBnd1',#9127,.F.);
#9130 = CIRCLE('Circ2',#9120,25.0);
#9131 = CARTESIAN_POINT('CartPt3',(25.0,0.0,0.0));
#9132 = VERTEX_POINT('VertPt2',#9131);
#9133 = EDGE_CURVE('EdgeCur2',#9132,#9132,#9130,.T.);
#9134 = ORIENTED_EDGE('OriEdge2',*,*,#9133,.T.);
#9135 = EDGE_LOOP('EdgeLoop2',(#9134));
#9136 = FACE_BOUND('FaceBnd2',#9135,.T.);
#9140 = CARTESIAN_POINT('CartPt4',(0.0,0.0,5.0));
#9141 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9140,#9103,#9101);
#9142 = PLANE('Plane2',#9141);
#9143 = CIRCLE('Circ3',#9141,40.0);
#9144 = CARTESIAN_POINT('CartPt5',(40.0,0.0,5.0));
#9145 = VERTEX_POINT('VertPt3',#9144);
#9146 = EDGE_CURVE('EdgeCur3',#9145,#9145,#9143,.T.);
#9147 = ORIENTED_EDGE('OriEdge3',*,*,#9146,.T.);
#9148 = EDGE_LOOP('EdgeLoop3',(#9147));
#9149 = FACE_BOUND('FaceBnd3',#9148,.T.);
#9160 = CIRCLE('Circ4',#9141,25.0);
#9161 = CARTESIAN_POINT('CartPt6',(25.0,0.0,5.0));
#9162 = VERTEX_POINT('VertPt4',#9161);
#9163 = EDGE_CURVE('EdgeCur4',#9162,#9162,#9160,.T.);
#9164 = ORIENTED_EDGE('OriEdge4',*,*,#9163,.T.);
#9165 = EDGE_LOOP('EdgeLoop4',(#9164));
#9166 = FACE_BOUND('FaceBnd4',#9165,.F.);
#9180 = CYLINDRICAL_SURFACE('CylSur1',#9120,40.0);
#9190 = FACE_BOUND('FaceBnd5',#9127,.T.);
#9191 = FACE_BOUND('FaceBnd6',#9148,.F.);
#9192 = ADVANCED_FACE('AdvFace1',(#9190,#9191),#9180,.T.);
#9200 = CYLINDRICAL_SURFACE('CylSur2',#9120,25.0);
#9201 = FACE_BOUND('FaceBnd7',#9135,.F.);
#9202 = FACE_BOUND('FaceBnd8',#9165,.T.);
#9203 = ADVANCED_FACE('AdvFace2',(#9201,#9202),#9200,.F.);
#9210 = CARTESIAN_POINT('CartPt7',(0.0,32.5,0.0));
#9211 = AXIS2_PLACEMENT_3D('Ax2P3D3',#9210,#9103,#9101);
#9212 = CIRCLE('Circ5',#9211,2.5);
#9213 = CARTESIAN_POINT('CartPt8',(2.5,32.5,0.0));
#9214 = VERTEX_POINT('VertPt5',#9213);
#9215 = EDGE_CURVE('EdgeCur5',#9214,#9214,#9212,.T.);
#9216 = ORIENTED_EDGE('OriEdge5',*,*,#9215,.T.);
#9217 = EDGE_LOOP('EdgeLoop5',(#9216));
#9218 = FACE_BOUND('FaceBnd9',#9217,.F.);
#9219 = FACE_BOUND('FaceBnd10',#9217,.T.);
#9220 = CARTESIAN_POINT('CartPt9',(0.0,32.5,5.0));
#9221 = AXIS2_PLACEMENT_3D('Ax2P3D4',#9220,#9103,#9101);
#9222 = CIRCLE('Circ6',#9221,5.0);
#9223 = CARTESIAN_POINT('CartPt10',(5.0,32.5,5.0));
#9224 = VERTEX_POINT('VertPt6',#9223);
#9225 = EDGE_CURVE('EdgeCur6',#9224,#9224,#9222,.T.);
#9226 = ORIENTED_EDGE('OriEdge6',*,*,#9225,.T.);
#9227 = EDGE_LOOP('EdgeLoop6',(#9226));
#9228 = FACE_BOUND('FaceBnd11',#9227,.T.);
#9229 = FACE_BOUND('FaceBnd12',#9227,.F.);
#9230 = CONICAL_SURFACE('ConSur1',#9211,2.5,0.46364761);
#9231 = ADVANCED_FACE('AdvFace3',(#9218,#9228),#9230,.F.);
#9240 = CARTESIAN_POINT('CartPt11',(32.5,0.0,0.0));
#9241 = AXIS2_PLACEMENT_3D('Ax2P3D5',#9240,#9103,#9101);
#9242 = CIRCLE('Circ7',#9241,2.5);
#9243 = CARTESIAN_POINT('CartPt12',(35.0,0.0,0.0));
#9244 = VERTEX_POINT('VertPt7',#9243);
#9245 = EDGE_CURVE('EdgeCur7',#9244,#9244,#9242,.T.);
#9246 = ORIENTED_EDGE('OriEdge7',*,*,#9245,.T.);
#9247 = EDGE_LOOP('EdgeLoop7',(#9246));
#9248 = FACE_BOUND('FaceBnd13',#9247,.F.);
#9249 = FACE_BOUND('FaceBnd14',#9247,.T.);
#9250 = CARTESIAN_POINT('CartPt13',(32.5,0.0,5.0));
#9251 = AXIS2_PLACEMENT_3D('Ax2P3D6',#9250,#9103,#9101);
#9252 = CIRCLE('Circ8',#9251,5.0);
#9253 = CARTESIAN_POINT('CartPt14',(37.5,0.0,5.0));
#9254 = VERTEX_POINT('VertPt8',#9253);
#9255 = EDGE_CURVE('EdgeCur8',#9254,#9254,#9252,.T.);
#9256 = ORIENTED_EDGE('OriEdge8',*,*,#9255,.T.);
#9257 = EDGE_LOOP('EdgeLoop8',(#9256));
#9258 = FACE_BOUND('FaceBnd15',#9257,.T.);
#9259 = FACE_BOUND('FaceBnd16',#9257,.F.);
#9260 = CONICAL_SURFACE('ConSur2',#9241,2.5,0.46364761);
#9261 = ADVANCED_FACE('AdvFace4',(#9248,#9258),#9260,.F.);
#9270 = CARTESIAN_POINT('CartPt15',(0.0,-32.5,0.0));
#9271 = AXIS2_PLACEMENT_3D('Ax2P3D7',#9270,#9103,#9101);
#9272 = CIRCLE('Circ9',#9271,2.5);
#9273 = CARTESIAN_POINT('CartPt16',(2.5,-32.5,0.0));
#9274 = VERTEX_POINT('VertPt9',#9273);
#9275 = EDGE_CURVE('EdgeCur9',#9274,#9274,#9272,.T.);
#9276 = ORIENTED_EDGE('OriEdge9',*,*,#9275,.T.);
#9277 = EDGE_LOOP('EdgeLoop9',(#9276));
#9278 = FACE_BOUND('FaceBnd17',#9277,.F.);
#9279 = FACE_BOUND('FaceBnd18',#9277,.T.);
#9280 = CARTESIAN_POINT('CartPt17',(0.0,-32.5,5.0));
#9281 = AXIS2_PLACEMENT_3D('Ax2P3D8',#9280,#9103,#9101);
#9282 = CIRCLE('Circ10',#9281,5.0);
#9283 = CARTESIAN_POINT('CartPt18',(5.0,-32.5,5.0));
#9284 = VERTEX_POINT('VertPt10',#9283);
#9285 = EDGE_CURVE('EdgeCur10',#9284,#9284,#9282,.T.);
#9286 = ORIENTED_EDGE('OriEdge10',*,*,#9285,.T.);
#9287 = EDGE_LOOP('EdgeLoop10',(#9286));
#9288 = FACE_BOUND('FaceBnd19',#9287,.T.);
#9289 = FACE_BOUND('FaceBnd20',#9287,.F.);
#9290 = CONICAL_SURFACE('ConSur3',#9271,2.5,0.46364761);
#9291 = ADVANCED_FACE('AdvFace5',(#9278,#9288),#9290,.F.);
#9300 = CARTESIAN_POINT('CartPt19',(-32.5,0.0,0.0));
#9301 = AXIS2_PLACEMENT_3D('Ax2P3D9',#9300,#9103,#9101);
#9302 = CIRCLE('Circ11',#9301,2.5);
#9303 = CARTESIAN_POINT('CartPt20',(-30.0,0.0,0.0));
#9304 = VERTEX_POINT('VertPt11',#9303);
#9305 = EDGE_CURVE('EdgeCur11',#9304,#9304,#9302,.T.);
#9306 = ORIENTED_EDGE('OriEdge11',*,*,#9305,.T.);
#9307 = EDGE_LOOP('EdgeLoop11',(#9306));
#9308 = FACE_BOUND('FaceBnd21',#9307,.F.);
#9309 = FACE_BOUND('FaceBnd22',#9307,.T.);
#9310 = CARTESIAN_POINT('CartPt21',(-32.5,0.0,5.0));
#9311 = AXIS2_PLACEMENT_3D('Ax2P3D10',#9310,#9103,#9101);
#9312 = CIRCLE('Circ12',#9311,5.0);
#9313 = CARTESIAN_POINT('CartPt22',(37.5,0.0,5.0));
#9314 = VERTEX_POINT('VertPt12',#9313);
#9315 = EDGE_CURVE('EdgeCur12',#9314,#9314,#9312,.T.);
#9316 = ORIENTED_EDGE('OriEdge12',*,*,#9315,.T.);
#9317 = EDGE_LOOP('EdgeLoop12',(#9316));
#9318 = FACE_BOUND('FaceBnd23',#9317,.T.);
#9319 = FACE_BOUND('FaceBnd24',#9317,.F.);
#9320 = CONICAL_SURFACE('ConSur4',#9301,2.5,0.46364761);
#9321 = ADVANCED_FACE('AdvFace6',(#9308,#9318),#9320,.F.);
#9325 = ADVANCED_FACE('AdvFace7',(#9128,#9136,#9219,#9249,#9279,#9309),#9121,.F.);
#9326 = ADVANCED_FACE('AdvFace8',(#9149,#9166,#9229,#9259,#9289,#9319),#9142,.T.);
#9350 = CLOSED_SHELL('CloseSh1',(#9192,#9203,#9231,#9261,#9291,#9321,#9325,#9326));
#9351 = MANIFOLD_SOLID_BREP('ManSolBrep1',#9350);
#9360 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case gasket with conical holes','This is a 3d context using millimeters for linear dimension'));
#9370 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep1',(#9351,#1230,#1231,#1232,#1233),#9360);
#10121 = PLANE('Plane3',#9120);
#10122 = CIRCLE('Circ13',#9120,2.5);
#10123 = CARTESIAN_POINT('CartPt23',(2.5,0.0,0.0));
#10124 = VERTEX_POINT('VertPt13',#10123);
#10125 = EDGE_CURVE('EdgeCur13',#10124,#10124,#10122,.T.);
#10126 = ORIENTED_EDGE('OriEdge13',*,*,#10125,.T.);
#10127 = EDGE_LOOP('EdgeLoop13',(#10126));
#10128 = FACE_BOUND('FaceBnd25',#10127,.F.);
#10130 = ADVANCED_FACE('AdvFace9',(#10128),#10121,.F.);
#10140 = CARTESIAN_POINT('CartPt24',(0.0,0.0,5.0));
#10141 = AXIS2_PLACEMENT_3D('Ax2P3D11',#10140,#9103,#9101);
#10143 = CIRCLE('Circ14',#10141,5.0);
#10144 = CARTESIAN_POINT('CartPt25',(5.0,0.0,5.0));
#10145 = VERTEX_POINT('VertPt14',#10144);
#10146 = EDGE_CURVE('EdgeCur14',#10145,#10145,#10143,.T.);
#10147 = ORIENTED_EDGE('OriEdge14',*,*,#10146,.F.);
#10148 = EDGE_LOOP('EdgeLoop14',(#10147));
#10149 = FACE_BOUND('FaceBnd26',#10148,.T.);
#10150 = FACE_BOUND('FaceBnd27',#10127,.T.);
#10160 = CONICAL_SURFACE('ConSur5',#9120,2.5,0.46364761);
#10170 = ADVANCED_FACE('AdvFace10',(#10149,#10150),#10160,.T.);
#10180 = CARTESIAN_POINT('CartPt26',(0.0,0.0,50.0));
#10181 = AXIS2_PLACEMENT_3D('Ax2P3D12',#10180,#9103,#9101);
#10182 = CIRCLE('Circ15',#10181,5.0);
#10183 = CARTESIAN_POINT('CartPt27',(5.0,0.0,50.0));
#10184 = VERTEX_POINT('VertPt15',#10183);
#10185 = EDGE_CURVE('EdgeCur15',#10184,#10184,#10182,.T.);
#10186 = ORIENTED_EDGE('OriEdge15',*,*,#10185,.F.);
#10187 = EDGE_LOOP('EdgeLoop15',(#10186));
#10188 = FACE_BOUND('FaceBnd28',#10187,.T.);
#10190 = FACE_BOUND('FaceBnd29',#10148,.F.);
#10200 = CYLINDRICAL_SURFACE('CylSur3',#10141,5.0);
#10210 = ADVANCED_FACE('AdvFace11',(#10188,#10190),#10200,.T.);
#10211 = PLANE('Plane4',#10181);
#10212 = FACE_BOUND('FaceBnd30',#10187,.F.);
#10213 = ADVANCED_FACE('AdvFace12',(#10212),#10211,.T.);
#10230 = PLANE('Plane5',#10141);
#10232 = ADVANCED_FACE('AdvFace13',(#10190),#10230,.T.);
#10233 = ADVANCED_FACE('AdvFace14',(#10149),#10230,.F.);
#10240 = CLOSED_SHELL('CloseSh2',(#10130,#10170,#10232));
#10250 = CLOSED_SHELL('CloseSh3',(#10233,#10210,#10213));
#10260 = MANIFOLD_SOLID_BREP('ManSolBrep2',#10240);
#10270 = MANIFOLD_SOLID_BREP('ManSolBrep3',#10250);
#10360 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case rod with conical tip aspect','This is a 3d context using millimeters for linear dimension'));
#10370 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep2',(#10260,#10270),#10360);
ENDSEC;
END-ISO-10303-21;
+220
View File
@@ -0,0 +1,220 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 6 - advanced brep'),'1');
FILE_NAME('gasket1.p21','1994-12-14 T10:00:00',
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
('Industrial Technology Institute',
'P.O. Box 1485',
'Ann Arbor',
'Michigan',
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1=PRODUCT('11113','Flat Ring Gasket','Description for part 11113',(#2));
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
#5=PERSON_AND_ORGANIZATION(#6,#7);
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','A not-for-profit engineering and research center');
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 11113',(#1));
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 11113',#1,.BOUGHT.);
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
#13=PERSON_AND_ORGANIZATION(#14,#7);
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
#44=CC_DESIGN_APPROVAL(#45,(#10));
#45=APPROVAL(#46,'Approved as initial STEP test case part');
#46=APPROVAL_STATUS('approved');
#47=APPROVAL_DATE_TIME(#48,#45);
#48=DATE_AND_TIME(#50,#51);
#50=CALENDAR_DATE(1993,17,7);
#51=LOCAL_TIME(13,29,52.0,#29);
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
#70=PERSON_AND_ORGANIZATION(#71,#7);
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
#72=APPROVAL_ROLE('Authorize part release');
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
#35=DATE_AND_TIME(#36,#37);
#36=CALENDAR_DATE(1993,17,7);
#37=LOCAL_TIME(13,45,20.0,#29);
#39=DATE_TIME_ROLE('classification_date');
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
#41=PERSON_AND_ORGANIZATION(#42,#7);
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#53=CC_DESIGN_APPROVAL(#54,(#32));
#54=APPROVAL(#55,'Approved as unclassified step test data');
#55=APPROVAL_STATUS('approved');
#56=APPROVAL_DATE_TIME(#57,#54);
#57=DATE_AND_TIME(#58,#59);
#58=CALENDAR_DATE(1993,17,7);
#59=LOCAL_TIME(13,47,28.0,#29);
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
#74=PERSON_AND_ORGANIZATION(#75,#7);
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
#76=APPROVAL_ROLE('Authorize the security code');
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
#18=DESIGN_CONTEXT('detailed design',#3,'design');
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
#25=DATE_AND_TIME(#27,#28);
#27=CALENDAR_DATE(1993,19,7);
#28=LOCAL_TIME(19,46,55.0,#29);
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
#30=DATE_TIME_ROLE('creation_date');
#61=CC_DESIGN_APPROVAL(#62,(#17));
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
#63=APPROVAL_STATUS('approved');
#64=APPROVAL_DATE_TIME(#65,#62);
#65=DATE_AND_TIME(#66,#67);
#66=CALENDAR_DATE(1993,19,7);
#67=LOCAL_TIME(19,47,51.0,#29);
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
#79=APPROVAL_ROLE('Authorize product definition');
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
#81=PERSON_AND_ORGANIZATION(#82,#83);
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization.');
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
#87=CERTIFICATION_TYPE('design_supplier');
#89=CC_DESIGN_APPROVAL(#90,(#86));
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
#91=APPROVAL_STATUS('approved');
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
#93=APPROVAL_ROLE('Authorize supplier certification');
#94=DATE_AND_TIME(#95,#96);
#95=CALENDAR_DATE(1993,20,4);
#96=LOCAL_TIME(15,47,51.0,#29);
#97=APPROVAL_DATE_TIME(#94,#90);
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
#99=CALENDAR_DATE(1993,19,4);
#100=DATE_AND_TIME(#99,#101);
#101=LOCAL_TIME(10,41,59.0,#29);
#102=DATE_TIME_ROLE('certification_date');
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Flat Ring Gasket',#1,.MADE.);
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
#1045=APPROVAL(#1046,'Approved as test part design');
#1046=APPROVAL_STATUS('approved');
#1047=APPROVAL_DATE_TIME(#1048,#1045);
#1048=DATE_AND_TIME(#1050,#1051);
#1050=CALENDAR_DATE(1993,19,7);
#1051=LOCAL_TIME(19,51,59.0,#29);
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
#1070=PERSON_AND_ORGANIZATION(#82,#83);
#1072=APPROVAL_ROLE('Authorize part version');
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
#1035=DATE_AND_TIME(#1036,#1037);
#1036=CALENDAR_DATE(1993,19,7);
#1037=LOCAL_TIME(19,45,41.0,#29);
#1039=DATE_TIME_ROLE('classification_date');
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
#1054=APPROVAL(#1055,'Approved as unclassified part design');
#1055=APPROVAL_STATUS('approved');
#1056=APPROVAL_DATE_TIME(#1057,#1054);
#1057=DATE_AND_TIME(#1058,#1059);
#1058=CALENDAR_DATE(1993,19,7);
#1059=LOCAL_TIME(19,47,58.0,#29);
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
#1076=APPROVAL_ROLE('Authorize the security code');
#1017=PRODUCT_DEFINITION('D2','Description of product for part 11113',#1010,#1018);
#1018=DESIGN_CONTEXT('detailed design',#3,'design');
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
#1025=DATE_AND_TIME(#1027,#1028);
#1027=CALENDAR_DATE(1993,18,7);
#1028=LOCAL_TIME(10,51,59.0,#29);
#1030=DATE_TIME_ROLE('creation_date');
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
#1062=APPROVAL(#1063,'Approved as detailed drawing');
#1063=APPROVAL_STATUS('approved');
#1064=APPROVAL_DATE_TIME(#1065,#1062);
#1065=DATE_AND_TIME(#1066,#1067);
#1066=CALENDAR_DATE(1993,19,7);
#1067=LOCAL_TIME(19,51,59.0,#29);
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
#1079=APPROVAL_ROLE('Authorize product definition');
#1080=SHAPE_DEFINITION_REPRESENTATION(#1081,#9240);
#1081=PRODUCT_DEFINITION_SHAPE('ABR_Shape','Shape of Flat Ring Gasket',#17);
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040);
#9100 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
#9101 = DIRECTION('Dir1',(1.0,0.0,0.0));
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
#9120 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9100,#9103,#9101);
#9121 = PLANE('Plane1',#9120);
#9122 = CIRCLE('Circ1',#9120,30.0);
#9123 = CARTESIAN_POINT('CartPt2',(30.0,0.0,0.0));
#9124 = VERTEX_POINT('VertPt1',#9123);
#9125 = EDGE_CURVE('EdgeCur1',#9124,#9124,#9122,.T.);
#9126 = ORIENTED_EDGE('OriEdge1',*,*,#9125,.T.);
#9127 = EDGE_LOOP('EdgeLoop1',(#9126));
#9128 = FACE_BOUND('FaceBnd1',#9127,.F.);
#9130 = CIRCLE('Circ2',#9120,25.0);
#9131 = CARTESIAN_POINT('CartPt3',(25.0,0.0,0.0));
#9132 = VERTEX_POINT('VertPt2',#9131);
#9133 = EDGE_CURVE('EdgeCur2',#9132,#9132,#9130,.T.);
#9134 = ORIENTED_EDGE('OriEdge2',*,*,#9133,.T.);
#9135 = EDGE_LOOP('EdgeLoop2',(#9134));
#9136 = FACE_BOUND('FaceBnd2',#9135,.T.);
#9137 = ADVANCED_FACE('AdvFace1',(#9136,#9128),#9121,.F.);
#9140 = CARTESIAN_POINT('CartPt4',(0.0,0.0,5.0));
#9141 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9140,#9103,#9101);
#9142 = PLANE('Plane2',#9141);
#9143 = CIRCLE('Circ3',#9141,30.0);
#9144 = CARTESIAN_POINT('CartPt5',(30.0,0.0,5.0));
#9145 = VERTEX_POINT('VertPt3',#9144);
#9146 = EDGE_CURVE('EdgeCur3',#9145,#9145,#9143,.T.);
#9147 = ORIENTED_EDGE('OriEdge3',*,*,#9146,.T.);
#9148 = EDGE_LOOP('EdgeLoop3',(#9147));
#9149 = FACE_BOUND('FaceBnd3',#9148,.T.);
#9160 = CIRCLE('Circ4',#9141,25.0);
#9161 = CARTESIAN_POINT('CartPt6',(25.0,0.0,5.0));
#9162 = VERTEX_POINT('VertPt4',#9161);
#9163 = EDGE_CURVE('EdgeCur4',#9162,#9162,#9160,.T.);
#9164 = ORIENTED_EDGE('OriEdge4',*,*,#9163,.T.);
#9165 = EDGE_LOOP('EdgeLoop4',(#9164));
#9166 = FACE_BOUND('FaceBnd4',#9165,.F.);
#9167 = ADVANCED_FACE('AdvFace2',(#9149,#9166),#9142,.T.);
#9180 = CYLINDRICAL_SURFACE('CylSur1',#9120,30.0);
#9190 = FACE_BOUND('FaceBnd5',#9127,.T.);
#9191 = FACE_BOUND('FaceBnd6',#9148,.F.);
#9192 = ADVANCED_FACE('AdvFace3',(#9190,#9191),#9180,.T.);
#9200 = CYLINDRICAL_SURFACE('CylSur2',#9120,25.0);
#9201 = FACE_BOUND('FaceBnd7',#9135,.F.);
#9202 = FACE_BOUND('FaceBnd8',#9165,.T.);
#9203 = ADVANCED_FACE('AdvFace4',(#9201,#9202),#9200,.F.);
#9210 = CLOSED_SHELL('CloseSh1',(#9137,#9167,#9192,#9203));
#9220 = MANIFOLD_SOLID_BREP('ManSolBrep1',#9210);
#9230 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case gasket','This is a 3d context using millimeters for linear dimension'));
#9240 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep1',(#9220),#9230);
ENDSEC;
END-ISO-10303-21;
+340
View File
@@ -0,0 +1,340 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 6 - advanced brep'),'1');
FILE_NAME('gasket2.p21','1994-12-14 T10:00:00',
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
('Industrial Technology Institute',
'P.O. Box 1485',
'Ann Arbor',
'Michigan',
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1=PRODUCT('21113','Flat Ring Gasket with Holes','Description for part 21113',(#2));
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
#5=PERSON_AND_ORGANIZATION(#6,#7);
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
#1097=PERSONAL_ADDRESS($,'17147','New Hamburg Road',$,'Whitmore Lake','Michigan','48189','USA',$,'(313) 769-1234',$,$,(#6));
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','Anot-for-profit engineering and research center');
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 21113',(#1));
#1098=PRODUCT_CATEGORY('mechanical','root node');
#1099=PRODUCT_CATEGORY_RELATIONSHIP('root-to-structural','Relates the root to the structural category',#1098,#1100);
#1100=PRODUCT_CATEGORY('structural','The structural product category');
#1101=PRODUCT_CATEGORY_RELATIONSHIP('structural-to-machined','Relate the structural to the machined product categories',#1100,#1102);
#1102=PRODUCT_RELATED_PRODUCT_CATEGORY('machined','Machined category',(#1));
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 21113',#1,.BOUGHT.);
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
#13=PERSON_AND_ORGANIZATION(#14,#7);
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
#44=CC_DESIGN_APPROVAL(#45,(#10));
#45=APPROVAL(#46,'Approved as initial STEP test case part');
#46=APPROVAL_STATUS('approved');
#47=APPROVAL_DATE_TIME(#48,#45);
#48=DATE_AND_TIME(#50,#51);
#50=CALENDAR_DATE(1993,17,7);
#51=LOCAL_TIME(13,29,52.0,#29);
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
#70=PERSON_AND_ORGANIZATION(#71,#7);
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
#72=APPROVAL_ROLE('Authorize part release');
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
#35=DATE_AND_TIME(#36,#37);
#36=CALENDAR_DATE(1993,17,7);
#37=LOCAL_TIME(13,45,20.0,#29);
#39=DATE_TIME_ROLE('classification_date');
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
#41=PERSON_AND_ORGANIZATION(#42,#7);
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#53=CC_DESIGN_APPROVAL(#54,(#32));
#54=APPROVAL(#55,'Approved as unclassified step test data');
#55=APPROVAL_STATUS('approved');
#56=APPROVAL_DATE_TIME(#57,#54);
#57=DATE_AND_TIME(#58,#59);
#58=CALENDAR_DATE(1993,17,7);
#59=LOCAL_TIME(13,47,28.0,#29);
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
#74=PERSON_AND_ORGANIZATION(#75,#7);
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
#76=APPROVAL_ROLE('Authorize the security code');
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
#18=DESIGN_CONTEXT('detailed design',#3,'design');
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
#25=DATE_AND_TIME(#27,#28);
#27=CALENDAR_DATE(1993,19,7);
#28=LOCAL_TIME(19,46,55.0,#29);
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
#30=DATE_TIME_ROLE('creation_date');
#61=CC_DESIGN_APPROVAL(#62,(#17));
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
#63=APPROVAL_STATUS('approved');
#64=APPROVAL_DATE_TIME(#65,#62);
#65=DATE_AND_TIME(#66,#67);
#66=CALENDAR_DATE(1993,19,7);
#67=LOCAL_TIME(19,47,51.0,#29);
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
#79=APPROVAL_ROLE('Authorize product definition');
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
#81=PERSON_AND_ORGANIZATION(#82,#83);
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization');
#1096=ORGANIZATIONAL_ADDRESS($,'2901','Hubbard',$,'Ann Arbor','Michigan','48106','USA','(313) 769-4069','(313) 769-4000',$,$,(#83));
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
#87=CERTIFICATION_TYPE('design_supplier');
#89=CC_DESIGN_APPROVAL(#90,(#86));
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
#91=APPROVAL_STATUS('approved');
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
#93=APPROVAL_ROLE('Authorize supplier certification');
#94=DATE_AND_TIME(#95,#96);
#95=CALENDAR_DATE(1993,20,4);
#96=LOCAL_TIME(15,47,51.0,#29);
#97=APPROVAL_DATE_TIME(#94,#90);
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
#99=CALENDAR_DATE(1993,19,4);
#100=DATE_AND_TIME(#99,#101);
#101=LOCAL_TIME(10,41,59.0,#29);
#102=DATE_TIME_ROLE('certification_date');
#1103=PRODUCT('12345','Ring Gasket - Flat with Holes','CDI''s part 12345 description',(#2));
#1109=PRODUCT_RELATED_PRODUCT_CATEGORY('customer_furnished_equipment','Part Type for product 12345',(#1103));
#1104=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#8,(#1103));
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Ring Gasket - Flat with Holes ',#1103,.MADE.);
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
#1045=APPROVAL(#1046,'Approved as test part design');
#1046=APPROVAL_STATUS('approved');
#1047=APPROVAL_DATE_TIME(#1048,#1045);
#1048=DATE_AND_TIME(#1050,#1051);
#1050=CALENDAR_DATE(1993,19,7);
#1051=LOCAL_TIME(19,51,59.0,#29);
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
#1070=PERSON_AND_ORGANIZATION(#82,#83);
#1072=APPROVAL_ROLE('Authorize part version');
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
#1035=DATE_AND_TIME(#1036,#1037);
#1036=CALENDAR_DATE(1993,19,7);
#1037=LOCAL_TIME(19,45,41.0,#29);
#1039=DATE_TIME_ROLE('classification_date');
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
#1054=APPROVAL(#1055,'Approved as unclassified part design');
#1055=APPROVAL_STATUS('approved');
#1056=APPROVAL_DATE_TIME(#1057,#1054);
#1057=DATE_AND_TIME(#1058,#1059);
#1058=CALENDAR_DATE(1993,19,7);
#1059=LOCAL_TIME(19,47,58.0,#29);
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
#1076=APPROVAL_ROLE('Authorize the security code');
#1017=PRODUCT_DEFINITION('D2','Description of product for part 12345',#1010,#1018);
#1018=DESIGN_CONTEXT('detailed design',#3,'design');
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
#1025=DATE_AND_TIME(#1027,#1028);
#1027=CALENDAR_DATE(1993,18,7);
#1028=LOCAL_TIME(10,51,59.0,#29);
#1030=DATE_TIME_ROLE('creation_date');
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
#1062=APPROVAL(#1063,'Approved as detailed drawing');
#1063=APPROVAL_STATUS('approved');
#1064=APPROVAL_DATE_TIME(#1065,#1062);
#1065=DATE_AND_TIME(#1066,#1067);
#1066=CALENDAR_DATE(1993,19,7);
#1067=LOCAL_TIME(19,51,59.0,#29);
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
#1079=APPROVAL_ROLE('Authorize product definition');
#1080=CC_DESIGN_CONTRACT(#1081,(#10));
#1081=CONTRACT('ITI-1121','Development of STEP conformance testing',#1082);
#1082=CONTRACT_TYPE('fixed_price');
#1083=CC_DESIGN_APPROVAL(#1084,(#1081));
#1084=APPROVAL(#1085,'Approved as active project under contract');
#1085=APPROVAL_STATUS('approved');
#1086=APPROVAL_PERSON_ORGANIZATION(#1087,#1084,#1090);
#1087=PERSON_AND_ORGANIZATION(#1088,#1089);
#1088=PERSON('212-33-7485','Masters','Larry',$,$,$);
#1089=ORGANIZATION('NIST','National Institute of Standards and Technology','Institute within the Department of Commerce');
#1090=APPROVAL_ROLE('Authorized the contract');
#1105=APPROVAL_DATE_TIME(#1106,#1084);
#1106=DATE_AND_TIME(#1107,#1108);
#1107=CALENDAR_DATE(1993,3,5);
#1108=LOCAL_TIME(10,47,28.0,#29);
#1091=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1092,#1095,(#1081));
#1092=PERSON_AND_ORGANIZATION(#1093,#7);
#1093=PERSON('355-55-6849','Kuper','George',$,$,$);
#1095=PERSON_AND_ORGANIZATION_ROLE('contractor');
#1200=SHAPE_DEFINITION_REPRESENTATION(#1201,#9370);
#1201=PRODUCT_DEFINITION_SHAPE('ABR_Shape','Shape of flat ring gasket with conical holes',#17);
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040);
#9100 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
#9101 = DIRECTION('Dir1',(0.1,0.0,0.0));
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
#9120 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9100,#9103,#9101);
#9121 = PLANE('Plane1',#9120);
#9122 = CIRCLE('Circ1',#9120,40.0);
#9123 = CARTESIAN_POINT('CartPt2',(40.0,0.0,0.0));
#9124 = VERTEX_POINT('VertPt1',#9123);
#9125 = EDGE_CURVE('EdgeCur1',#9124,#9124,#9122,.T.);
#9126 = ORIENTED_EDGE('OriEdge1',*,*,#9125,.T.);
#9127 = EDGE_LOOP('EdgeLoop1',(#9126));
#9128 = FACE_BOUND('FaceBnd1',#9127,.F.);
#9130 = CIRCLE('Circ2',#9120,25.0);
#9131 = CARTESIAN_POINT('CartPt3',(25.0,0.0,0.0));
#9132 = VERTEX_POINT('VertPt2',#9131);
#9133 = EDGE_CURVE('EdgeCur2',#9132,#9132,#9130,.T.);
#9134 = ORIENTED_EDGE('OriEdge2',*,*,#9133,.T.);
#9135 = EDGE_LOOP('EdgeLoop2',(#9134));
#9136 = FACE_BOUND('FaceBnd2',#9135,.T.);
#9140 = CARTESIAN_POINT('CartPt4',(0.0,0.0,5.0));
#9141 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9140,#9103,#9101);
#9142 = PLANE('Plane2',#9141);
#9143 = CIRCLE('Circ3',#9141,40.0);
#9144 = CARTESIAN_POINT('CartPt5',(40.0,0.0,5.0));
#9145 = VERTEX_POINT('VertPt3',#9144);
#9146 = EDGE_CURVE('EdgeCur3',#9145,#9145,#9143,.T.);
#9147 = ORIENTED_EDGE('OriEdge3',*,*,#9146,.T.);
#9148 = EDGE_LOOP('EdgeLoop3',(#9147));
#9149 = FACE_BOUND('FaceBnd3',#9148,.T.);
#9160 = CIRCLE('Circ4',#9141,25.0);
#9161 = CARTESIAN_POINT('CartPt6',(25.0,0.0,5.0));
#9162 = VERTEX_POINT('VertPt4',#9161);
#9163 = EDGE_CURVE('EdgeCur4',#9162,#9162,#9160,.T.);
#9164 = ORIENTED_EDGE('OriEdge4',*,*,#9163,.T.);
#9165 = EDGE_LOOP('EdgeLoop4',(#9164));
#9166 = FACE_BOUND('FaceBnd4',#9165,.F.);
#9180 = CYLINDRICAL_SURFACE('CylSur1',#9120,40.0);
#9190 = FACE_BOUND('FaceBnd5',#9127,.T.);
#9191 = FACE_BOUND('FaceBnd6',#9148,.F.);
#9192 = ADVANCED_FACE('AdvFace1',(#9190,#9191),#9180,.T.);
#9200 = CYLINDRICAL_SURFACE('CylSur2',#9120,25.0);
#9201 = FACE_BOUND('FaceBnd7',#9135,.F.);
#9202 = FACE_BOUND('FaceBnd8',#9165,.T.);
#9203 = ADVANCED_FACE('AdvFace2',(#9201,#9202),#9200,.F.);
#9210 = CARTESIAN_POINT('CartPt7',(0.0,32.5,0.0));
#9211 = AXIS2_PLACEMENT_3D('Ax2P3D3',#9210,#9103,#9101);
#9212 = CIRCLE('Circ5',#9211,2.5);
#9213 = CARTESIAN_POINT('CartPt8',(2.5,32.5,0.0));
#9214 = VERTEX_POINT('VertPt5',#9213);
#9215 = EDGE_CURVE('EdgeCur5',#9214,#9214,#9212,.T.);
#9216 = ORIENTED_EDGE('OriEdge5',*,*,#9215,.T.);
#9217 = EDGE_LOOP('EdgeLoop5',(#9216));
#9218 = FACE_BOUND('FaceBnd9',#9217,.F.);
#9219 = FACE_BOUND('FaceBnd10',#9217,.T.);
#9220 = CARTESIAN_POINT('CartPt9',(0.0,32.5,5.0));
#9221 = AXIS2_PLACEMENT_3D('Ax2P3D4',#9220,#9103,#9101);
#9222 = CIRCLE('Circ6',#9221,5.0);
#9223 = CARTESIAN_POINT('CartPt10',(5.0,32.5,5.0));
#9224 = VERTEX_POINT('VertPt6',#9223);
#9225 = EDGE_CURVE('EdgeCur6',#9224,#9224,#9222,.T.);
#9226 = ORIENTED_EDGE('OriEdge6',*,*,#9225,.T.);
#9227 = EDGE_LOOP('EdgeLoop6',(#9226));
#9228 = FACE_BOUND('FaceBnd11',#9227,.T.);
#9229 = FACE_BOUND('FaceBnd12',#9227,.F.);
#9230 = CONICAL_SURFACE('ConSur1',#9211,2.5,0.46364761);
#9231 = ADVANCED_FACE('AdvFace3',(#9218,#9228),#9230,.F.);
#9240 = CARTESIAN_POINT('CartPt11',(32.5,0.0,0.0));
#9241 = AXIS2_PLACEMENT_3D('Ax2P3D5',#9240,#9103,#9101);
#9242 = CIRCLE('Circ7',#9241,2.5);
#9243 = CARTESIAN_POINT('CartPt12',(35.0,0.0,0.0));
#9244 = VERTEX_POINT('VertPt7',#9243);
#9245 = EDGE_CURVE('EdgeCur7',#9244,#9244,#9242,.T.);
#9246 = ORIENTED_EDGE('OriEdge7',*,*,#9245,.T.);
#9247 = EDGE_LOOP('EdgeLoop7',(#9246));
#9248 = FACE_BOUND('FaceBnd13',#9247,.F.);
#9249 = FACE_BOUND('FaceBnd14',#9247,.T.);
#9250 = CARTESIAN_POINT('CartPt13',(32.5,0.0,5.0));
#9251 = AXIS2_PLACEMENT_3D('Ax2P3D6',#9250,#9103,#9101);
#9252 = CIRCLE('Circ8',#9251,5.0);
#9253 = CARTESIAN_POINT('CartPt14',(37.5,0.0,5.0));
#9254 = VERTEX_POINT('VertPt8',#9253);
#9255 = EDGE_CURVE('EdgeCur8',#9254,#9254,#9252,.T.);
#9256 = ORIENTED_EDGE('OriEdge8',*,*,#9255,.T.);
#9257 = EDGE_LOOP('EdgeLoop8',(#9256));
#9258 = FACE_BOUND('FaceBnd15',#9257,.T.);
#9259 = FACE_BOUND('FaceBnd16',#9257,.F.);
#9260 = CONICAL_SURFACE('ConSur2',#9241,2.5,0.46364761);
#9261 = ADVANCED_FACE('AdvFace4',(#9248,#9258),#9260,.F.);
#9270 = CARTESIAN_POINT('CartPt15',(0.0,-32.5,0.0));
#9271 = AXIS2_PLACEMENT_3D('Ax2P3D7',#9270,#9103,#9101);
#9272 = CIRCLE('Circ9',#9271,2.5);
#9273 = CARTESIAN_POINT('CartPt16',(2.5,-32.5,0.0));
#9274 = VERTEX_POINT('VertPt9',#9273);
#9275 = EDGE_CURVE('EdgeCur9',#9274,#9274,#9272,.T.);
#9276 = ORIENTED_EDGE('OriEdge9',*,*,#9275,.T.);
#9277 = EDGE_LOOP('EdgeLoop9',(#9276));
#9278 = FACE_BOUND('FaceBnd17',#9277,.F.);
#9279 = FACE_BOUND('FaceBnd18',#9277,.T.);
#9280 = CARTESIAN_POINT('CartPt17',(0.0,-32.5,5.0));
#9281 = AXIS2_PLACEMENT_3D('Ax2P3D8',#9280,#9103,#9101);
#9282 = CIRCLE('Circ10',#9281,5.0);
#9283 = CARTESIAN_POINT('CartPt18',(5.0,-32.5,5.0));
#9284 = VERTEX_POINT('VertPt10',#9283);
#9285 = EDGE_CURVE('EdgeCur10',#9284,#9284,#9282,.T.);
#9286 = ORIENTED_EDGE('OriEdge10',*,*,#9285,.T.);
#9287 = EDGE_LOOP('EdgeLoop10',(#9286));
#9288 = FACE_BOUND('FaceBnd19',#9287,.T.);
#9289 = FACE_BOUND('FaceBnd20',#9287,.F.);
#9290 = CONICAL_SURFACE('ConSur3',#9271,2.5,0.46364761);
#9291 = ADVANCED_FACE('AdvFace5',(#9278,#9288),#9290,.F.);
#9300 = CARTESIAN_POINT('CartPt19',(-32.5,0.0,0.0));
#9301 = AXIS2_PLACEMENT_3D('Ax2P3D9',#9300,#9103,#9101);
#9302 = CIRCLE('Circ11',#9301,2.5);
#9303 = CARTESIAN_POINT('CartPt20',(-30.0,0.0,0.0));
#9304 = VERTEX_POINT('VertPt11',#9303);
#9305 = EDGE_CURVE('EdgeCur11',#9304,#9304,#9302,.T.);
#9306 = ORIENTED_EDGE('OriEdge11',*,*,#9305,.T.);
#9307 = EDGE_LOOP('EdgeLoop11',(#9306));
#9308 = FACE_BOUND('FaceBnd21',#9307,.F.);
#9309 = FACE_BOUND('FaceBnd22',#9307,.T.);
#9310 = CARTESIAN_POINT('CartPt21',(-32.5,0.0,5.0));
#9311 = AXIS2_PLACEMENT_3D('Ax2P3D10',#9310,#9103,#9101);
#9312 = CIRCLE('Circ12',#9311,5.0);
#9313 = CARTESIAN_POINT('CartPt22',(37.5,0.0,5.0));
#9314 = VERTEX_POINT('VertPt12',#9313);
#9315 = EDGE_CURVE('EdgeCur12',#9314,#9314,#9312,.T.);
#9316 = ORIENTED_EDGE('OriEdge12',*,*,#9315,.T.);
#9317 = EDGE_LOOP('EdgeLoop12',(#9316));
#9318 = FACE_BOUND('FaceBnd23',#9317,.T.);
#9319 = FACE_BOUND('FaceBnd24',#9317,.F.);
#9320 = CONICAL_SURFACE('ConSur4',#9301,2.5,0.46364761);
#9321 = ADVANCED_FACE('AdvFace6',(#9308,#9318),#9320,.F.);
#9325 = ADVANCED_FACE('AdvFace7',(#9128,#9136,#9219,#9249,#9279,#9309),#9121,.F.);
#9326 = ADVANCED_FACE('AdvFace8',(#9149,#9166,#9229,#9259,#9289,#9319),#9142,.T.);
#9350 = CLOSED_SHELL('CloseSh1',(#9192,#9203,#9231,#9261,#9291,#9321,#9325,#9326));
#9351 = MANIFOLD_SOLID_BREP('ManSolBrep1',#9350);
#9360 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case gasket with conical holes','This is a 3d context using millimeters for linear dimension'));
#9370 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep1',(#9351),#9360);
ENDSEC;
END-ISO-10303-21;
+315
View File
@@ -0,0 +1,315 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 6 - advanced brep'),'1');
FILE_NAME('gasket3.p21','1994-12-14 T10:00:00',
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
('Industrial Technology Institute',
'P.O. Box 1485',
'Ann Arbor',
'Michigan',
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1=PRODUCT('31113','Flat Semi-elliptical Gasket','Description for part 31113',(#2));
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
#5=PERSON_AND_ORGANIZATION(#6,#7);
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,('PhD.'));
#1097=PERSONAL_ADDRESS($,'17147','New Hamburg Road',$,'Whitmore Lake','Michigan','48189','USA',$,'(313) 769-1234',$,$,(#6));
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','Anot-for-profit engineering and research center');
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 31113',(#1));
#1098=PRODUCT_CATEGORY('mechanical','root node');
#1099=PRODUCT_CATEGORY_RELATIONSHIP('root-to-structural','Relates the root to the structural category',#1098,#1100);
#1100=PRODUCT_CATEGORY('structural','The structural product category');
#1101=PRODUCT_CATEGORY_RELATIONSHIP('structural-to-machined','Relate the structural to the machined product categories',#1100,#1102);
#1102=PRODUCT_RELATED_PRODUCT_CATEGORY('machined','Machined category',(#1));
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 31113',#1,.BOUGHT.);
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
#13=PERSON_AND_ORGANIZATION(#14,#7);
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
#44=CC_DESIGN_APPROVAL(#45,(#10));
#45=APPROVAL(#46,'Approved as initial STEP test case part');
#46=APPROVAL_STATUS('approved');
#47=APPROVAL_DATE_TIME(#48,#45);
#48=DATE_AND_TIME(#50,#51);
#50=CALENDAR_DATE(1993,17,7);
#51=LOCAL_TIME(13,29,52.0,#29);
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
#70=PERSON_AND_ORGANIZATION(#71,#7);
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
#72=APPROVAL_ROLE('Authorize part release');
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
#35=DATE_AND_TIME(#36,#37);
#36=CALENDAR_DATE(1993,17,7);
#37=LOCAL_TIME(13,$,$,#29);
#39=DATE_TIME_ROLE('classification_date');
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
#41=PERSON_AND_ORGANIZATION(#42,#7);
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#53=CC_DESIGN_APPROVAL(#54,(#32));
#54=APPROVAL(#55,'Approved as unclassified step test data');
#55=APPROVAL_STATUS('approved');
#56=APPROVAL_DATE_TIME(#57,#54);
#57=DATE_AND_TIME(#58,#59);
#58=CALENDAR_DATE(1993,17,7);
#59=LOCAL_TIME(13,47,28.0,#29);
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
#74=PERSON_AND_ORGANIZATION(#75,#7);
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
#76=APPROVAL_ROLE('Authorize the security code');
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
#18=DESIGN_CONTEXT('detailed design',#3,'design');
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
#25=DATE_AND_TIME(#27,#28);
#27=CALENDAR_DATE(1993,19,7);
#28=LOCAL_TIME(19,46,55.0,#29);
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
#30=DATE_TIME_ROLE('creation_date');
#61=CC_DESIGN_APPROVAL(#62,(#17));
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
#63=APPROVAL_STATUS('approved');
#64=APPROVAL_DATE_TIME(#65,#62);
#65=DATE_AND_TIME(#66,#67);
#66=CALENDAR_DATE(1993,19,7);
#67=LOCAL_TIME(19,47,51.0,#29);
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
#79=APPROVAL_ROLE('Authorize product definition');
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
#81=PERSON_AND_ORGANIZATION(#82,#83);
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization');
#1096=ORGANIZATIONAL_ADDRESS($,'2901','Hubbard','P.O. Box 1485','Ann Arbor','Michigan','48106','USA','(313) 769-4069','(313) 769-4000',$,$,(#83));
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
#87=CERTIFICATION_TYPE('design_supplier');
#89=CC_DESIGN_APPROVAL(#90,(#86));
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
#91=APPROVAL_STATUS('approved');
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
#93=APPROVAL_ROLE('Authorize supplier certification');
#94=DATE_AND_TIME(#95,#96);
#95=CALENDAR_DATE(1993,20,4);
#96=LOCAL_TIME(15,47,51.0,#29);
#97=APPROVAL_DATE_TIME(#94,#90);
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
#99=CALENDAR_DATE(1993,19,4);
#100=DATE_AND_TIME(#99,#101);
#101=LOCAL_TIME(10,41,59.0,#29);
#102=DATE_TIME_ROLE('certification_date');
#1103=PRODUCT('12345','Cube Solid','CDI''s part 12345 description',(#2));
#1109=PRODUCT_RELATED_PRODUCT_CATEGORY('customer_furnished_equipment','Part Type for product 12345',(#1103));
#1104=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#8,(#1103));
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Cube Solid',#1103,.MADE.);
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
#1014=PERSON('CDI-1','Brandenberg','Chad',('David','George'),$,$);
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
#1045=APPROVAL(#1046,'Approved as test part design');
#1046=APPROVAL_STATUS('approved');
#1047=APPROVAL_DATE_TIME(#1048,#1045);
#1048=DATE_AND_TIME(#1050,#1051);
#1050=CALENDAR_DATE(1993,19,7);
#1051=LOCAL_TIME(19,51,59.0,#29);
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
#1070=PERSON_AND_ORGANIZATION(#82,#83);
#1072=APPROVAL_ROLE('Authorize part version');
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
#1035=DATE_AND_TIME(#1036,#1037);
#1036=CALENDAR_DATE(1993,19,7);
#1037=LOCAL_TIME(19,45,41.0,#29);
#1039=DATE_TIME_ROLE('classification_date');
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
#1054=APPROVAL(#1055,'Approved as unclassified part design');
#1055=APPROVAL_STATUS('approved');
#1056=APPROVAL_DATE_TIME(#1057,#1054);
#1057=DATE_AND_TIME(#1058,#1059);
#1058=CALENDAR_DATE(1993,19,7);
#1059=LOCAL_TIME(19,47,58.0,#29);
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
#1076=APPROVAL_ROLE('Authorize the security code');
#1017=PRODUCT_DEFINITION('D2','Description of product for part 12345',#1010,#1018);
#1018=DESIGN_CONTEXT('detailed design',#3,'design');
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
#1025=DATE_AND_TIME(#1027,#1028);
#1027=CALENDAR_DATE(1993,18,7);
#1028=LOCAL_TIME(10,51,59.0,#29);
#1030=DATE_TIME_ROLE('creation_date');
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
#1062=APPROVAL(#1063,'Approved as detailed drawing');
#1063=APPROVAL_STATUS('approved');
#1064=APPROVAL_DATE_TIME(#1065,#1062);
#1065=DATE_AND_TIME(#1066,#1067);
#1066=CALENDAR_DATE(1993,19,7);
#1067=LOCAL_TIME(19,51,59.0,#29);
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
#1079=APPROVAL_ROLE('Authorize product definition');
#1080=CC_DESIGN_CONTRACT(#1081,(#10));
#1081=CONTRACT('ITI-1121','Development of STEP conformance testing',#1082);
#1082=CONTRACT_TYPE('fixed_price');
#1083=CC_DESIGN_APPROVAL(#1084,(#1081));
#1084=APPROVAL(#1085,'Approved as active project under contract');
#1085=APPROVAL_STATUS('approved');
#1086=APPROVAL_PERSON_ORGANIZATION(#1087,#1084,#1090);
#1087=PERSON_AND_ORGANIZATION(#1088,#1089);
#1088=PERSON('212-33-7485','Masters','Larry',$,$,$);
#1089=ORGANIZATION('NIST','National Institute of Standards and Technology','Institute within the Department of Commerce');
#1090=APPROVAL_ROLE('Authorized the contract');
#1105=APPROVAL_DATE_TIME(#1106,#1084);
#1106=DATE_AND_TIME(#1107,#1108);
#1107=WEEK_OF_YEAR_AND_DAY_DATE(1993,20,5);
#1108=LOCAL_TIME(14,21,7.0,#29);
#1091=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1092,#1095,(#1081));
#1092=PERSON_AND_ORGANIZATION(#1093,#7);
#1093=PERSON('355-55-6849','Kuper','George',$,$,$);
#1095=PERSON_AND_ORGANIZATION_ROLE('contractor');
#1200=SHAPE_DEFINITION_REPRESENTATION(#1201,#9430);
#1201=PRODUCT_DEFINITION_SHAPE('ABR_Shape','Shape of semi-elliptical gasket',#17);
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040,'xx','yy');
#9100 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
#9101 = DIRECTION('Dir1',(0.1,0.0,0.0));
#9102 = DIRECTION('Dir2',(0.0,1.0,0.0));
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
#9104 = DIRECTION('Dir4',(0.0,0.0,-1.0));
#9120 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9100,#9103,#9101);
#9121 = PLANE('Plane1',#9120);
#9122 = ELLIPSE('Ellip1',#9120,40.0,25.0);
#9123 = CARTESIAN_POINT('CartPt2',(0.0,25.0,0.0));
#9124 = VERTEX_POINT('VertPt1',#9123);
#9125 = CARTESIAN_POINT('CartPt3',(0.0,-25.0,0.0));
#9126 = VERTEX_POINT('VertPt2',#9125);
#9127 = EDGE_CURVE('EdgeCur1',#9124,#9126,#9122,.T.);
#9128 = ORIENTED_EDGE('OriEdge1',*,*,#9127,.F.);
#9130 = VECTOR('Vec1',#9102,50.0);
#9131 = LINE('Line1',#9125,#9130);
#9132 = EDGE_CURVE('EdgeCur2',#9126,#9124,#9131,.T.);
#9133 = ORIENTED_EDGE('OriEdge2',*,*,#9132,.F.);
#9134 = EDGE_LOOP('EdgeLoop1',(#9128,#9133));
#9135 = FACE_BOUND('FaceBnd1',#9134,.T.);
#9140 = CARTESIAN_POINT('CartPt4',(-5.0,0.0,0.0));
#9141 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9140,#9103,#9101);
#9142 = ELLIPSE('Ellip2',#9141,30.0,20.0);
#9143 = CARTESIAN_POINT('CartPt5',(-5.0,20.0,0.0));
#9144 = VERTEX_POINT('VertPt3',#9143);
#9145 = CARTESIAN_POINT('CartPt6',(-5.0,-20.0,0.0));
#9146 = VERTEX_POINT('VertPt4',#9145);
#9147 = EDGE_CURVE('EdgeCur3',#9144,#9146,#9142,.T.);
#9148 = ORIENTED_EDGE('OriEdge3',*,*,#9147,.T.);
#9150 = VECTOR('Vec2',#9102,40.0);
#9151 = LINE('Line2',#9145,#9150);
#9152 = EDGE_CURVE('EdgeCur4',#9146,#9144,#9151,.T.);
#9153 = ORIENTED_EDGE('OriEdge4',*,*,#9152,.T.);
#9154 = EDGE_LOOP('EdgeLoop2',(#9148,#9153));
#9155 = FACE_BOUND('FaceBnd2',#9154,.T.);
#9156 = ADVANCED_FACE('AdvFace1',(#9155,#9135),#9121,.F.);
#9160 = CARTESIAN_POINT('CartPt7',(0.0,0.0,5.0));
#9161 = AXIS2_PLACEMENT_3D('Ax2P3D3',#9160,#9103,#9101);
#9162 = PLANE('Plane2',#9161);
#9163 = ELLIPSE('Ellip3',#9161,40.0,25.0);
#9164 = CARTESIAN_POINT('CartPt8',(0.0,25.0,5.0));
#9165 = VERTEX_POINT('VertPt5',#9164);
#9166 = CARTESIAN_POINT('CartPt9',(0.0,-25.0,5.0));
#9167 = VERTEX_POINT('VertPt6',#9166);
#9168 = EDGE_CURVE('EdgeCur5',#9165,#9167,#9163,.T.);
#9169 = ORIENTED_EDGE('OriEdge5',*,*,#9168,.T.);
#9170 = LINE('Line3',#9166,#9130);
#9171 = EDGE_CURVE('EdgeCur6',#9167,#9165,#9170,.T.);
#9172 = ORIENTED_EDGE('OriEdge6',*,*,#9171,.T.);
#9173 = EDGE_LOOP('EdgeLoop3',(#9169,#9172));
#9174 = FACE_BOUND('FaceBnd3',#9173,.T.);
#9180 = CARTESIAN_POINT('CartPt10',(-5.0,0.0,5.0));
#9181 = AXIS2_PLACEMENT_3D('Ax2P3D4',#9180,#9103,#9101);
#9182 = ELLIPSE('Ellip4',#9181,30.0,20.0);
#9183 = CARTESIAN_POINT('CartPt11',(-5.0,20.0,5.0));
#9184 = VERTEX_POINT('VertPt7',#9183);
#9185 = CARTESIAN_POINT('CartPt12',(-5.0,-20.0,5.0));
#9186 = VERTEX_POINT('VertPt8',#9185);
#9187 = EDGE_CURVE('EdgeCur7',#9184,#9186,#9182,.T.);
#9188 = ORIENTED_EDGE('OriEdge7',*,*,#9187,.F.);
#9190 = LINE('Line4',#9185,#9150);
#9191 = EDGE_CURVE('EdgeCur8',#9186,#9184,#9190,.T.);
#9192 = ORIENTED_EDGE('OriEdge8',*,*,#9191,.F.);
#9193 = EDGE_LOOP('EdgeLoop4',(#9188,#9192));
#9194 = FACE_BOUND('FaceBnd4',#9193,.T.);
#9195 = ADVANCED_FACE('AdvFace2',(#9174,#9194),#9162,.T.);
#9200 = VECTOR('Vec3',#9103,5.0);
#9201 = SURFACE_OF_LINEAR_EXTRUSION('SurLExt1',#9122,#9200);
#9210 = ORIENTED_EDGE('OriEdge9',*,*,#9127,.T.);
#9220 = LINE('Line5',#9125,#9200);
#9221 = EDGE_CURVE('EdgeCur9',#9126,#9167,#9220,.T.);
#9222 = ORIENTED_EDGE('OriEdge10',*,*,#9221,.T.);
#9230 = ORIENTED_EDGE('OriEdge11',*,*,#9168,.F.);
#9240 = LINE('Line6',#9123,#9200);
#9241 = EDGE_CURVE('EdgeCur10',#9165,#9124,#9240,.F.);
#9242 = ORIENTED_EDGE('OriEdge12',*,*,#9241,.T.);
#9250 = EDGE_LOOP('EdgeLoop5',(#9210,#9222,#9230,#9242));
#9251 = FACE_BOUND('FaceBnd5',#9250,.T.);
#9252 = ADVANCED_FACE('AdvFace3',(#9251),#9201,.T.);
#9260 = AXIS2_PLACEMENT_3D('Ax2P3D5',#9100,#9101,#9104);
#9261 = PLANE('Plane3',#9260);
#9270 = ORIENTED_EDGE('OriEdge13',*,*,#9221,.F.);
#9280 = ORIENTED_EDGE('OriEdge14',*,*,#9132,.T.);
#9290 = ORIENTED_EDGE('OriEdge15',*,*,#9241,.F.);
#9300 = ORIENTED_EDGE('OriEdge16',*,*,#9171,.F.);
#9301 = EDGE_LOOP('EdgeLoop6',(#9270,#9280,#9290,#9300));
#9302 = FACE_BOUND('FaceBnd6',#9301,.T.);
#9303 = ADVANCED_FACE('AdvFace4',(#9302),#9261,.T.);
#9310 = SURFACE_OF_LINEAR_EXTRUSION('SurLExt2',#9142,#9200);
#9320 = ORIENTED_EDGE('OriEdge17',*,*,#9147,.F.);
#9330 = LINE('Line7',#9143,#9200);
#9331 = EDGE_CURVE('EdgeCur11',#9144,#9184,#9330,.T.);
#9332 = ORIENTED_EDGE('OriEdge18',*,*,#9331,.T.);
#9340 = ORIENTED_EDGE('OriEdge19',*,*,#9187,.T.);
#9350 = LINE('Line8',#9145,#9200);
#9351 = EDGE_CURVE('EdgeCur12',#9146,#9186,#9350,.F.);
#9352 = ORIENTED_EDGE('OriEdge20',*,*,#9351,.F.);
#9353 = EDGE_LOOP('EdgeLoop7',(#9320,#9332,#9340,#9352));
#9354 = FACE_BOUND('FaceBnd7',#9353,.T.);
#9355 = ADVANCED_FACE('AdvFace5',(#9354),#9310,.F.);
#9360 = AXIS2_PLACEMENT_3D('Ax2P3D6',#9140,#9101,#9104);
#9361 = PLANE('Plane4',#9360);
#9370 = ORIENTED_EDGE('OriEdge21',*,*,#9152,.F.);
#9380 = ORIENTED_EDGE('OriEdge22',*,*,#9351,.T.);
#9390 = ORIENTED_EDGE('OriEdge23',*,*,#9191,.T.);
#9400 = ORIENTED_EDGE('OriEdge24',*,*,#9331,.F.);
#9401 = EDGE_LOOP('EdgeLoop8',(#9370,#9380,#9390,#9400));
#9402 = FACE_BOUND('FaceBnd8',#9401,.T.);
#9403 = ADVANCED_FACE('AdvFace6',(#9402),#9361,.F.);
#9410 = CLOSED_SHELL('CloseSh1',(#9156,#9195,#9252,#9303,#9355,#9403));
#9411 = MANIFOLD_SOLID_BREP('ManSolBrep1',#9410);
#9420 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case semi-elliptical gasket','This is a 3d context using millimeters for linear dimension'));
#9430 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep1',(#9411),#9420);
ENDSEC;
END-ISO-10303-21;
+239
View File
@@ -0,0 +1,239 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 5 - facetted brep'),'1');
FILE_NAME('hex_prism1.p21','1994-12-14 T10:00:00',
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
('Industrial Technology Institute',
'P.O. Box 1485',
'Ann Arbor',
'Michigan',
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1=PRODUCT('11112','Solid Hexagonal Cylinder','Description for part 11112',(#2));
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
#5=PERSON_AND_ORGANIZATION(#6,#7);
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','A not-for-profit engineering and research center');
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 11112',(#1));
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 11112',#1,.BOUGHT.);
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
#13=PERSON_AND_ORGANIZATION(#14,#7);
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
#44=CC_DESIGN_APPROVAL(#45,(#10));
#45=APPROVAL(#46,'Approved as initial STEP test case part');
#46=APPROVAL_STATUS('approved');
#47=APPROVAL_DATE_TIME(#48,#45);
#48=DATE_AND_TIME(#50,#51);
#50=CALENDAR_DATE(1993,17,7);
#51=LOCAL_TIME(13,29,52.0,#29);
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
#70=PERSON_AND_ORGANIZATION(#71,#7);
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
#72=APPROVAL_ROLE('Authorize part release');
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
#35=DATE_AND_TIME(#36,#37);
#36=CALENDAR_DATE(1993,17,7);
#37=LOCAL_TIME(13,45,20.0,#29);
#39=DATE_TIME_ROLE('classification_date');
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
#41=PERSON_AND_ORGANIZATION(#42,#7);
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#53=CC_DESIGN_APPROVAL(#54,(#32));
#54=APPROVAL(#55,'Approved as unclassified step test data');
#55=APPROVAL_STATUS('approved');
#56=APPROVAL_DATE_TIME(#57,#54);
#57=DATE_AND_TIME(#58,#59);
#58=CALENDAR_DATE(1993,17,7);
#59=LOCAL_TIME(13,47,28.0,#29);
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
#74=PERSON_AND_ORGANIZATION(#75,#7);
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
#76=APPROVAL_ROLE('Authorize the security code');
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
#18=DESIGN_CONTEXT('detailed design',#3,'design');
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
#25=DATE_AND_TIME(#27,#28);
#27=CALENDAR_DATE(1993,19,7);
#28=LOCAL_TIME(19,46,55.0,#29);
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
#30=DATE_TIME_ROLE('creation_date');
#61=CC_DESIGN_APPROVAL(#62,(#17));
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
#63=APPROVAL_STATUS('approved');
#64=APPROVAL_DATE_TIME(#65,#62);
#65=DATE_AND_TIME(#66,#67);
#66=CALENDAR_DATE(1993,19,7);
#67=LOCAL_TIME(19,47,51.0,#29);
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
#79=APPROVAL_ROLE('Authorize product definition');
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
#81=PERSON_AND_ORGANIZATION(#82,#83);
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization.');
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
#87=CERTIFICATION_TYPE('design_supplier');
#89=CC_DESIGN_APPROVAL(#90,(#86));
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
#91=APPROVAL_STATUS('approved');
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
#93=APPROVAL_ROLE('Authorize supplier certification');
#94=DATE_AND_TIME(#95,#96);
#95=CALENDAR_DATE(1993,20,4);
#96=LOCAL_TIME(15,47,51.0,#29);
#97=APPROVAL_DATE_TIME(#94,#90);
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
#99=CALENDAR_DATE(1993,19,4);
#100=DATE_AND_TIME(#99,#101);
#101=LOCAL_TIME(10,41,59.0,#29);
#102=DATE_TIME_ROLE('certification_date');
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Solid Hexagonal Cylinder',#1,.MADE.);
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
#1045=APPROVAL(#1046,'Approved as test part design');
#1046=APPROVAL_STATUS('approved');
#1047=APPROVAL_DATE_TIME(#1048,#1045);
#1048=DATE_AND_TIME(#1050,#1051);
#1050=CALENDAR_DATE(1993,19,7);
#1051=LOCAL_TIME(19,51,59.0,#29);
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
#1070=PERSON_AND_ORGANIZATION(#82,#83);
#1072=APPROVAL_ROLE('Authorize part version');
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
#1035=DATE_AND_TIME(#1036,#1037);
#1036=CALENDAR_DATE(1993,19,7);
#1037=LOCAL_TIME(19,45,41.0,#29);
#1039=DATE_TIME_ROLE('classification_date');
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
#1054=APPROVAL(#1055,'Approved as unclassified part design');
#1055=APPROVAL_STATUS('approved');
#1056=APPROVAL_DATE_TIME(#1057,#1054);
#1057=DATE_AND_TIME(#1058,#1059);
#1058=CALENDAR_DATE(1993,19,7);
#1059=LOCAL_TIME(19,47,58.0,#29);
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
#1076=APPROVAL_ROLE('Authorize the security code');
#1017=PRODUCT_DEFINITION('D2','Description of product for part 11112',#1010,#1018);
#1018=DESIGN_CONTEXT('detailed design',#3,'design');
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
#1025=DATE_AND_TIME(#1027,#1028);
#1027=CALENDAR_DATE(1993,18,7);
#1028=LOCAL_TIME(10,51,59.0,#29);
#1030=DATE_TIME_ROLE('creation_date');
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
#1062=APPROVAL(#1063,'Approved as detailed drawing');
#1063=APPROVAL_STATUS('approved');
#1064=APPROVAL_DATE_TIME(#1065,#1062);
#1065=DATE_AND_TIME(#1066,#1067);
#1066=CALENDAR_DATE(1993,19,7);
#1067=LOCAL_TIME(19,51,59.0,#29);
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
#1079=APPROVAL_ROLE('Authorize product definition');
#1080=SHAPE_DEFINITION_REPRESENTATION(#1081,#9280);
#1081=PRODUCT_DEFINITION_SHAPE('FBR_Shape','Shape of Solid Hexagonal Cylinder',#17);
#9010 = DIMENSIONAL_EXPONENTS(1.0,0.0,0.0,0.0,0.0,0.0,0.0);
#9040 = (LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.CENTI.,.METRE.));
#9041 = LENGTH_MEASURE_WITH_UNIT(POSITIVE_LENGTH_MEASURE(2.54),#9040);
#9042 = (CONVERSION_BASED_UNIT('inch',#9041)LENGTH_UNIT()NAMED_UNIT(#9010));
#9043 = (NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#9044 = (NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#9045 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9042,'xx','yy');
#9100 = DIRECTION('Dir1',(0.0,0.0,1.0));
#9101 = DIRECTION('Dir2',(1.0,0.0,0.0));
#9103 = DIRECTION('Dir4',(0.0,0.0,-1.0));
#9104 = DIRECTION('Dir5',(-1.0,0.0,0.0));
#9120 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
#9121 = CARTESIAN_POINT('CartPt2',(0.0,2.0,0.0));
#9122 = CARTESIAN_POINT('CartPt3',(1.7320508,3.0,0.0));
#9123 = CARTESIAN_POINT('CartPt4',(3.4641016,2.0,0.0));
#9124 = CARTESIAN_POINT('CartPt5',(3.4641016,0.0,0.0));
#9125 = CARTESIAN_POINT('CartPt6',(1.7320508,-1.0,0.0));
#9126 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9120,#9100,#9101);
#9127 = PLANE('Plane1',#9126);
#9128 = POLY_LOOP('PolyLoop1',(#9120,#9121,#9122,#9123,#9124,#9125));
#9129 = FACE_BOUND('FaceBnd1',#9128,.T.);
#9130 = FACE_SURFACE('FaceSurf1',(#9129),#9127,.F.);
#9150 = CARTESIAN_POINT('CartPt7',(0.0,0.0,8.0));
#9151 = CARTESIAN_POINT('CartPt8',(0.0,2.0,8.0));
#9152 = CARTESIAN_POINT('CartPt9',(1.7320508,3.0,8.0));
#9153 = CARTESIAN_POINT('CartPt10',(3.4641016,2.0,8.0));
#9154 = CARTESIAN_POINT('CartPt11',(3.4641016,0.0,8.0));
#9155 = CARTESIAN_POINT('CartPt12',(1.7320508,-1.0,8.0));
#9156 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9150,#9100,#9101);
#9157 = PLANE('Plane2',#9156);
#9158 = POLY_LOOP('PolyLoop2',(#9150,#9151,#9152,#9153,#9154,#9155));
#9159 = FACE_BOUND('FaceBnd2',#9158,.F.);
#9160 = FACE_SURFACE('FaceSurf2',(#9159),#9157,.T.);
#9180 = AXIS2_PLACEMENT_3D('Ax2P3D3',#9120,#9101,#9103);
#9181 = PLANE('Plane3',#9180);
#9182 = POLY_LOOP('PolyLoop3',(#9120,#9121,#9151,#9150));
#9183 = FACE_BOUND('FaceBnd3',#9182,.F.);
#9184 = FACE_SURFACE('FaceSurf3',(#9183),#9181,.F.);
#9190 = DIRECTION('Dir6',(0.5,-0.8660254,0.0));
#9191 = AXIS2_PLACEMENT_3D('Ax2P3D4',#9121,#9190,#9103);
#9192 = PLANE('Plane4',#9191);
#9193 = POLY_LOOP('PolyLoop4',(#9121,#9122,#9152,#9151));
#9194 = FACE_BOUND('FaceBnd4',#9193,.F.);
#9195 = FACE_SURFACE('FaceSurf4',(#9194),#9192,.F.);
#9200 = DIRECTION('Dir7',(-0.5,-0.8660254,0.0));
#9201 = AXIS2_PLACEMENT_3D('Ax2P3D5',#9122,#9200,#9103);
#9202 = PLANE('Plane5',#9201);
#9203 = POLY_LOOP('PolyLoop5',(#9122,#9123,#9153,#9152));
#9204 = FACE_BOUND('FaceBnd5',#9203,.F.);
#9205 = FACE_SURFACE('FaceSurf5',(#9204),#9202,.F.);
#9210 = AXIS2_PLACEMENT_3D('Ax2P3D6',#9123,#9104,#9100);
#9211 = PLANE('Plane6',#9210);
#9212 = POLY_LOOP('PolyLoop6',(#9123,#9124,#9154,#9153));
#9213 = FACE_BOUND('FaceBnd6',#9212,.F.);
#9214 = FACE_SURFACE('FaceSurf6',(#9213),#9211,.F.);
#9220 = DIRECTION('Dir8',(-0.5,0.8660254,0.0));
#9221 = AXIS2_PLACEMENT_3D('Ax2P3D7',#9124,#9220,#9100);
#9222 = PLANE('Plane7',#9221);
#9223 = POLY_LOOP('PolyLoop7',(#9124,#9154,#9155,#9125));
#9224 = FACE_BOUND('FaceBnd7',#9223,.T.);
#9225 = FACE_SURFACE('FaceSurf7',(#9224),#9222,.F.);
#9230 = DIRECTION('Dir9',(0.5,0.8660254,0.0));
#9231 = AXIS2_PLACEMENT_3D('Ax2P3D8',#9125,#9230,#9100);
#9232 = PLANE('Plane8',#9231);
#9233 = POLY_LOOP('PolyLoop8',(#9125,#9120,#9150,#9155));
#9234 = FACE_BOUND('FaceBnd8',#9233,.F.);
#9235 = FACE_SURFACE('FaceSurf8',(#9234),#9232,.F.);
#9250 = CLOSED_SHELL('CloseSh1',(#9130,#9160,#9184,#9195,#9205,#9214,#9225,#9235));
#9260 = FACETED_BREP('FacedBrep1',#9250);
#9270 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9045))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9042,#9043,#9044))
REPRESENTATION_CONTEXT('CONTEXT for facetted brep test case','This is a 3d context using inches for linear dimension'));
#9280 = FACETED_BREP_SHAPE_REPRESENTATION('FBShapeRep1',(#9260),#9270);
ENDSEC;
END-ISO-10303-21;
+264
View File
@@ -0,0 +1,264 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 6 - advanced brep'),'1');
FILE_NAME('rod_aspect1.p21','1994-12-14 T10:00:00',
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
('Industrial Technology Institute',
'P.O. Box 1485',
'Ann Arbor',
'Michigan',
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1=PRODUCT('41113','Rod with Conical Tip','Description for part 41113',(#2));
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
#5=PERSON_AND_ORGANIZATION(#6,#7);
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,('PhD.'));
#1097=PERSONAL_ADDRESS($,'17147','New Hamburg Road',$,'Whitmore Lake','Michigan','48189','USA',$,'(313) 769-4306',$,$,(#6));
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','Anot-for-profit engineering and research center');
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#2101=PRODUCT_CATEGORY_RELATIONSHIP('root-to-standard','Relate the root to the standard product category',#1098,#1109);
#1109=PRODUCT_CATEGORY('standard_part','Identifies this as a standard part') ;
#1101=PRODUCT_CATEGORY_RELATIONSHIP('standard-to-detail','Relate the standard to the detail product category',#1109,#9);
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 41113',(#1));
#1098=PRODUCT_CATEGORY('mechanical','mechanical product category: root node');
#1099=PRODUCT_CATEGORY_RELATIONSHIP('root-to-structural','Relates the root to the structural category',#1098,#1100);
#1100=PRODUCT_CATEGORY('structural','The structural product category');
#1110=PRODUCT_CATEGORY_RELATIONSHIP('structural-to-machined', 'Relates the structural to the machined category',#1100,#1102) ;
#1102=PRODUCT_RELATED_PRODUCT_CATEGORY('machined','The machined product category',(#1));
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 41113',#1,.BOUGHT.);
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
#13=PERSON_AND_ORGANIZATION(#14,#7);
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
#44=CC_DESIGN_APPROVAL(#45,(#10));
#45=APPROVAL(#46,'Approved as initial STEP test case part');
#46=APPROVAL_STATUS('approved');
#47=APPROVAL_DATE_TIME(#48,#45);
#48=DATE_AND_TIME(#50,#51);
#50=CALENDAR_DATE(1993,17,7);
#51=LOCAL_TIME(13,29,52.0,#29);
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
#70=PERSON_AND_ORGANIZATION(#71,#7);
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
#72=APPROVAL_ROLE('Authorize part release');
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
#35=DATE_AND_TIME(#36,#37);
#36=CALENDAR_DATE(1993,17,7);
#37=LOCAL_TIME(13,$,$,#29);
#39=DATE_TIME_ROLE('classification_date');
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
#41=PERSON_AND_ORGANIZATION(#42,#7);
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#53=CC_DESIGN_APPROVAL(#54,(#32));
#54=APPROVAL(#55,'Approved as unclassified step test data');
#55=APPROVAL_STATUS('approved');
#56=APPROVAL_DATE_TIME(#57,#54);
#57=DATE_AND_TIME(#58,#59);
#58=CALENDAR_DATE(1993,17,7);
#59=LOCAL_TIME(13,47,28.0,#29);
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
#74=PERSON_AND_ORGANIZATION(#75,#7);
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
#76=APPROVAL_ROLE('Authorize the security code');
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
#18=DESIGN_CONTEXT('detailed design',#3,'design');
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
#25=DATE_AND_TIME(#27,#28);
#27=CALENDAR_DATE(1993,19,7);
#28=LOCAL_TIME(19,46,55.0,#29);
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
#30=DATE_TIME_ROLE('creation_date');
#61=CC_DESIGN_APPROVAL(#62,(#17));
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
#63=APPROVAL_STATUS('approved');
#64=APPROVAL_DATE_TIME(#65,#62);
#65=DATE_AND_TIME(#66,#67);
#66=CALENDAR_DATE(1993,19,7);
#67=LOCAL_TIME(19,47,51.0,#29);
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
#79=APPROVAL_ROLE('Authorize product definition');
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
#81=PERSON_AND_ORGANIZATION(#82,#83);
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization');
#1096=ORGANIZATIONAL_ADDRESS($,'2901','Hubbard','P.O. Box 1485','Ann Arbor','Michigan','48106','USA','(313) 769-4069','(313) 769-4000',$,$,(#83));
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
#87=CERTIFICATION_TYPE('design_supplier');
#89=CC_DESIGN_APPROVAL(#90,(#86));
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
#91=APPROVAL_STATUS('approved');
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
#93=APPROVAL_ROLE('Authorize supplier certification');
#94=DATE_AND_TIME(#95,#96);
#95=CALENDAR_DATE(1993,20,4);
#96=LOCAL_TIME(15,47,51.0,#29);
#97=APPROVAL_DATE_TIME(#94,#90);
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
#99=CALENDAR_DATE(1993,19,4);
#100=DATE_AND_TIME(#99,#101);
#101=LOCAL_TIME(10,41,59.0,#29);
#102=DATE_TIME_ROLE('certification_date');
#1103=PRODUCT('12345','Conical Tip Rod','CDI''s part 12345 description',(#2));
#2009=PRODUCT_RELATED_PRODUCT_CATEGORY('customer_furnished_equipment','Part Type for product 12345',(#1103));
#1104=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#8,(#1103));
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Conical Tip Rod ',#1103,.MADE.);
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
#1014=PERSON('CDI-1','Brandenberg','Chad',('David','George'),$,$);
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
#1045=APPROVAL(#1046,'Approved as test part design');
#1046=APPROVAL_STATUS('approved');
#1047=APPROVAL_DATE_TIME(#1048,#1045);
#1048=DATE_AND_TIME(#1050,#1051);
#1050=CALENDAR_DATE(1993,19,7);
#1051=LOCAL_TIME(19,51,59.0,#29);
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
#1070=PERSON_AND_ORGANIZATION(#82,#83);
#1072=APPROVAL_ROLE('Authorize part version');
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
#1035=DATE_AND_TIME(#1036,#1037);
#1036=CALENDAR_DATE(1993,19,7);
#1037=LOCAL_TIME(19,45,41.0,#29);
#1039=DATE_TIME_ROLE('classification_date');
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#1111=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1112,#1115,(#1032));
#1112=DATE_AND_TIME(#1113,#1114);
#1113=CALENDAR_DATE(1993,1,10);
#1114=LOCAL_TIME(9,$,$,#29);
#1115=DATE_TIME_ROLE('declassification_date');
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
#1054=APPROVAL(#1055,'Approved as unclassified part design');
#1055=APPROVAL_STATUS('approved');
#1056=APPROVAL_DATE_TIME(#1057,#1054);
#1057=DATE_AND_TIME(#1058,#1059);
#1058=CALENDAR_DATE(1993,19,7);
#1059=LOCAL_TIME(19,47,58.0,#29);
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
#1076=APPROVAL_ROLE('Authorize the security code');
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
#1025=DATE_AND_TIME(#1027,#1028);
#1027=CALENDAR_DATE(1993,18,7);
#1028=LOCAL_TIME(10,51,59.0,#29);
#1030=DATE_TIME_ROLE('creation_date');
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
#1062=APPROVAL(#1063,'Approved as detailed drawing');
#1063=APPROVAL_STATUS('approved');
#1064=APPROVAL_DATE_TIME(#1065,#1062);
#1065=DATE_AND_TIME(#1066,#1067);
#1066=CALENDAR_DATE(1993,19,7);
#1067=LOCAL_TIME(19,51,59.0,#29);
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
#1017=PRODUCT_DEFINITION_WITH_ASSOCIATED_DOCUMENTS('D2','Description of product for part 1234',#1010,#1018, (#1116));
#1018=PRODUCT_DEFINITION_CONTEXT('detailed design',#3,'design');
#1079=APPROVAL_ROLE('Authorize product definition');
#1116=DOCUMENT('rod_aspectA.dhc','Conical Tip Rod CAD file','CAD file for Rod with Conical Tip',#1117);
#1117=DOCUMENT_TYPE('cad_filename');
#1080=CC_DESIGN_CONTRACT(#1081,(#10));
#1081=CONTRACT('ITI-1121','Development of STEP conformance testing',#1082);
#1082=CONTRACT_TYPE('fixed_price');
#1083=CC_DESIGN_APPROVAL(#1084,(#1081));
#1084=APPROVAL(#1085,'Approved as active project under contract');
#1085=APPROVAL_STATUS('approved');
#1086=APPROVAL_PERSON_ORGANIZATION(#1087,#1084,#1090);
#1087=PERSON_AND_ORGANIZATION(#1088,#1089);
#1088=PERSON('212-33-7485','Masters','Larry',$,$,$);
#1089=ORGANIZATION('NIST','National Institute of Standards and Technology','Institute within the Department of Commerce');
#1090=APPROVAL_ROLE('Authorized the contract');
#1105=APPROVAL_DATE_TIME(#1106,#1084);
#1106=DATE_AND_TIME(#1107,#1108);
#1107=WEEK_OF_YEAR_AND_DAY_DATE(1993,20,5);
#1108=LOCAL_TIME(14,21,7.0,#29);
#1091=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1092,#1095,(#1081));
#1092=PERSON_AND_ORGANIZATION(#1093,#7);
#1093=PERSON('355-55-6849','Kuper','George',$,$,$);
#1095=PERSON_AND_ORGANIZATION_ROLE('contractor');
#1200=SHAPE_DEFINITION_REPRESENTATION(#1201,#9370);
#1201=PRODUCT_DEFINITION_SHAPE('ABR_Shape','Shape of rod with conical tip',#17);
#1202=SHAPE_DEFINITION_REPRESENTATION(#1201,#9390);
#9020=DIMENSIONAL_EXPONENTS(1.0,0.0,0.0,0.0,0.0,0.0,0.0);
#9040 =(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
#9041 =(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#9042 =(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#9043 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9040,'xx','yy');
#9100 = CARTESIAN_POINT('CartPt1',(0.0,0.0,0.0));
#9101 = DIRECTION('Dir1',(0.1,0.0,0.0));
#9103 = DIRECTION('Dir3',(0.0,0.0,1.0));
#9120 = AXIS2_PLACEMENT_3D('Ax2P3D1',#9100,#9103,#9101);
#9121 = PLANE('Plane1',#9120);
#9122 = CIRCLE('Circ1',#9120,2.5);
#9123 = CARTESIAN_POINT('CartPt2',(2.5,0.0,0.0));
#9124 = VERTEX_POINT('VertPt1',#9123);
#9125 = EDGE_CURVE('EdgeCur1',#9124,#9124,#9122,.T.);
#9126 = ORIENTED_EDGE('OriEdge1',*,*,#9125,.T.);
#9127 = EDGE_LOOP('EdgeLoop1',(#9126));
#9128 = FACE_BOUND('FaceBnd1',#9127,.F.);
#9130 = ADVANCED_FACE('AdvFace1',(#9128),#9121,.F.);
#9140 = CARTESIAN_POINT('CartPt3',(0.0,0.0,5.0));
#9141 = AXIS2_PLACEMENT_3D('Ax2P3D2',#9140,#9103,#9101);
#9143 = CIRCLE('Circ2',#9141,5.0);
#9144 = CARTESIAN_POINT('CartPt4',(5.0,0.0,5.0));
#9145 = VERTEX_POINT('VertPt2',#9144);
#9146 = EDGE_CURVE('EdgeCur2',#9145,#9145,#9143,.T.);
#9147 = ORIENTED_EDGE('OriEdge2',*,*,#9146,.F.);
#9148 = EDGE_LOOP('EdgeLoop2',(#9147));
#9149 = FACE_BOUND('FaceBnd2',#9148,.T.);
#9150 = FACE_BOUND('FaceBnd3',#9127,.T.);
#9160 = CONICAL_SURFACE('ConSur1',#9120,2.5,0.46364761);
#9170 = ADVANCED_FACE('AdvFace2',(#9149,#9150),#9160,.T.);
#9180 = CARTESIAN_POINT('CartPt5',(0.0,0.0,50.0));
#9181 = AXIS2_PLACEMENT_3D('Ax2P3D3',#9180,#9103,#9101);
#9182 = CIRCLE('Circ3',#9181,5.0);
#9183 = CARTESIAN_POINT('CartPt6',(5.0,0.0,50.0));
#9184 = VERTEX_POINT('VertPt3',#9183);
#9185 = EDGE_CURVE('EdgeCur3',#9184,#9184,#9182,.T.);
#9186 = ORIENTED_EDGE('OriEdge3',*,*,#9185,.F.);
#9187 = EDGE_LOOP('EdgeLoop3',(#9186));
#9188 = FACE_BOUND('FaceBnd4',#9187,.T.);
#9190 = FACE_BOUND('FaceBnd5',#9148,.F.);
#9200 = CYLINDRICAL_SURFACE('CylSur1',#9141,5.0);
#9210 = ADVANCED_FACE('AdvFace3',(#9188,#9190),#9200,.T.);
#9211 = PLANE('Plane2',#9181);
#9212 = FACE_BOUND('FaceBnd6',#9187,.F.);
#9213 = ADVANCED_FACE('AdvFace4',(#9212),#9211,.T.);
#9230 = PLANE('Plane3',#9141);
#9232 = ADVANCED_FACE('AdvFace5',(#9190),#9230,.T.);
#9233 = ADVANCED_FACE('AdvFace6',(#9149),#9230,.F.);
#9240 = CLOSED_SHELL('CloseSh1',(#9130,#9170,#9232));
#9250 = CLOSED_SHELL('CloseSh2',(#9233,#9210,#9213));
#9260 = MANIFOLD_SOLID_BREP('ManSolBrep1',#9240);
#9270 = MANIFOLD_SOLID_BREP('ManSolBrep2',#9250);
#9370 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep1',(#9260,#9270),#9360);
#9360 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case rod with conical tip aspect','This is a 3d context using millimeters for linear dimension'));
#9390 = ADVANCED_BREP_SHAPE_REPRESENTATION('ABShapeRep2',(#9260),#9380);
#9380 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9043))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9040,#9041,#9042))
REPRESENTATION_CONTEXT('CONTEXT for advanced brep test case conical tip aspect of rod','This is a 3d context using millimeters for linear dimension'));
ENDSEC;
END-ISO-10303-21;
+467
View File
@@ -0,0 +1,467 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('STEP conformance test data','AP203 class 2 - ntsw'),'1');
FILE_NAME('star1.p21','1994-12-14 T10:00:00',
('S. Dhar','S. Jetli','M. McFarland','J. Kindrick'),
('Industrial Technology Institute',
'P.O. Box 1485',
'Ann Arbor',
'Michigan',
'48106'),'NIST Data Probe, Release March 1993','conformance test suite','K. H. Muralidhar');
FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
ENDSEC;
DATA;
#1=PRODUCT('11114','Star Cog','Description for part 11114',(#2));
#2=MECHANICAL_CONTEXT('detailed design',#3,'mechanical');
#3=APPLICATION_CONTEXT('Control the configuration of three dimensional design');
#300=APPLICATION_PROTOCOL_DEFINITION('AP definition status','config_control_design', 1994, #3);
#4=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#5,#8,(#1));
#5=PERSON_AND_ORGANIZATION(#6,#7);
#6=PERSON('307-10-5806','Muralidhar','K.',('H.'),$,$);
#7=ORGANIZATION('ITI-Michigan','Industrial Technology Institute','A not-for-profit engineering and research center');
#8=PERSON_AND_ORGANIZATION_ROLE('design_owner');
#9=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','Part Type for product 11114',(#1));
#10=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A','Description of version with specified source for part 11114',#1,.BOUGHT.);
#11=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#15,(#10));
#13=PERSON_AND_ORGANIZATION(#14,#7);
#14=PERSON('302-30-6149','Quadir','Nur',$,$,$);
#15=PERSON_AND_ORGANIZATION_ROLE('creator');
#44=CC_DESIGN_APPROVAL(#45,(#10));
#45=APPROVAL(#46,'Approved as initial STEP test case part');
#46=APPROVAL_STATUS('approved');
#47=APPROVAL_DATE_TIME(#48,#45);
#48=DATE_AND_TIME(#50,#51);
#50=CALENDAR_DATE(1993,17,7);
#51=LOCAL_TIME(13,29,52.0,#29);
#69=APPROVAL_PERSON_ORGANIZATION(#70,#45,#72);
#70=PERSON_AND_ORGANIZATION(#71,#7);
#71=PERSON('574-20-7069','Kindrick','James',$,$,$);
#72=APPROVAL_ROLE('Authorize part release');
#31=CC_DESIGN_SECURITY_CLASSIFICATION(#32,(#10));
#32=SECURITY_CLASSIFICATION('1993-C1','open availability of STEP test data',#33);
#33=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#34=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#35,#39,(#32));
#35=DATE_AND_TIME(#36,#37);
#36=CALENDAR_DATE(1993,17,7);
#37=LOCAL_TIME(13,45,20.0,#29);
#39=DATE_TIME_ROLE('classification_date');
#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#41,#43,(#32));
#41=PERSON_AND_ORGANIZATION(#42,#7);
#42=PERSON('412-89-3456','Dhar','Shantanu',$,('Mr.'),$);
#43=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#53=CC_DESIGN_APPROVAL(#54,(#32));
#54=APPROVAL(#55,'Approved as unclassified step test data');
#55=APPROVAL_STATUS('approved');
#56=APPROVAL_DATE_TIME(#57,#54);
#57=DATE_AND_TIME(#58,#59);
#58=CALENDAR_DATE(1993,17,7);
#59=LOCAL_TIME(13,47,28.0,#29);
#73=APPROVAL_PERSON_ORGANIZATION(#74,#54,#76);
#74=PERSON_AND_ORGANIZATION(#75,#7);
#75=PERSON('525-94-5792','Matthews','Robert',('S.'),$,$);
#76=APPROVAL_ROLE('Authorize the security code');
#17=PRODUCT_DEFINITION('D1','Detailed drawing as planned for conformance testing',#10,#18);
#18=DESIGN_CONTEXT('detailed design',#3,'design');
#19=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#13,#23,(#17));
#23=PERSON_AND_ORGANIZATION_ROLE('creator');
#24=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#25,#30,(#17));
#25=DATE_AND_TIME(#27,#28);
#27=CALENDAR_DATE(1993,19,7);
#28=LOCAL_TIME(19,46,55.0,#29);
#29=COORDINATED_UNIVERSAL_TIME_OFFSET(8,$,.BEHIND.);
#30=DATE_TIME_ROLE('creation_date');
#61=CC_DESIGN_APPROVAL(#62,(#17));
#62=APPROVAL(#63,'Approved as STEP conformance testing drawing');
#63=APPROVAL_STATUS('approved');
#64=APPROVAL_DATE_TIME(#65,#62);
#65=DATE_AND_TIME(#66,#67);
#66=CALENDAR_DATE(1993,19,7);
#67=LOCAL_TIME(19,47,51.0,#29);
#77=APPROVAL_PERSON_ORGANIZATION(#70,#62,#79);
#79=APPROVAL_ROLE('Authorize product definition');
#80=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#81,#84,(#10,#1010));
#81=PERSON_AND_ORGANIZATION(#82,#83);
#82=PERSON('CDI-2','Dwaraka','B.',('K.'),$,$);
#83=ORGANIZATION('CDI','Contract Design, Inc.','Contract engineering organization.');
#84=PERSON_AND_ORGANIZATION_ROLE('design_supplier');
#88=SUPPLIED_PART_RELATIONSHIP('design','design supplier','The supplier provides detailed designs',#17,#1017);
#85=CC_DESIGN_CERTIFICATION(#86,(#88));
#86=CERTIFICATION('ISO-9000 certified design supplier','quality control',#87);
#87=CERTIFICATION_TYPE('design_supplier');
#89=CC_DESIGN_APPROVAL(#90,(#86));
#90=APPROVAL(#91,'Approved as ISO-9000 certified supplier');
#91=APPROVAL_STATUS('approved');
#92=APPROVAL_PERSON_ORGANIZATION(#70,#90,#93);
#93=APPROVAL_ROLE('Authorize supplier certification');
#94=DATE_AND_TIME(#95,#96);
#95=CALENDAR_DATE(1993,20,4);
#96=LOCAL_TIME(15,47,51.0,#29);
#97=APPROVAL_DATE_TIME(#94,#90);
#98=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#100,#102,(#86));
#99=CALENDAR_DATE(1993,19,4);
#100=DATE_AND_TIME(#99,#101);
#101=LOCAL_TIME(10,41,59.0,#29);
#102=DATE_TIME_ROLE('certification_date');
#1010=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('S-1','For Star Cog ',#1,.MADE.);
#1011=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1016,(#1010));
#1013=PERSON_AND_ORGANIZATION(#1014,#83);
#1014=PERSON('CDI-1','Brandenberg','Chad',$,$,$);
#1016=PERSON_AND_ORGANIZATION_ROLE('creator');
#1044=CC_DESIGN_APPROVAL(#1045,(#1010));
#1045=APPROVAL(#1046,'Approved as test part design');
#1046=APPROVAL_STATUS('approved');
#1047=APPROVAL_DATE_TIME(#1048,#1045);
#1048=DATE_AND_TIME(#1050,#1051);
#1050=CALENDAR_DATE(1993,19,7);
#1051=LOCAL_TIME(19,51,59.0,#29);
#1069=APPROVAL_PERSON_ORGANIZATION(#1070,#1045,#1072);
#1070=PERSON_AND_ORGANIZATION(#82,#83);
#1072=APPROVAL_ROLE('Authorize part version');
#1031=CC_DESIGN_SECURITY_CLASSIFICATION(#1032,(#1010));
#1032=SECURITY_CLASSIFICATION('1993-C2','open availability of test part designs',#1033);
#1033=SECURITY_CLASSIFICATION_LEVEL('unclassified');
#1034=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1035,#1039,(#1032));
#1035=DATE_AND_TIME(#1036,#1037);
#1036=CALENDAR_DATE(1993,19,7);
#1037=LOCAL_TIME(19,45,41.0,#29);
#1039=DATE_TIME_ROLE('classification_date');
#1040=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1041,#1043,(#1032));
#1041=PERSON_AND_ORGANIZATION(#1042,#83);
#1042=PERSON('CDI-3','Sauter','Mitch',$,$,$);
#1043=PERSON_AND_ORGANIZATION_ROLE('classification_officer');
#1053=CC_DESIGN_APPROVAL(#1054,(#1032));
#1054=APPROVAL(#1055,'Approved as unclassified part design');
#1055=APPROVAL_STATUS('approved');
#1056=APPROVAL_DATE_TIME(#1057,#1054);
#1057=DATE_AND_TIME(#1058,#1059);
#1058=CALENDAR_DATE(1993,19,7);
#1059=LOCAL_TIME(19,47,58.0,#29);
#1073=APPROVAL_PERSON_ORGANIZATION(#81,#1054,#1076);
#1076=APPROVAL_ROLE('Authorize the security code');
#1017=PRODUCT_DEFINITION('D2','Description of product for part 11114',#1010,#1018);
#1018=DESIGN_CONTEXT('detailed design',#3,'design');
#1019=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1013,#1023,(#1017));
#1023=PERSON_AND_ORGANIZATION_ROLE('creator');
#1024=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1025,#1030,(#1017));
#1025=DATE_AND_TIME(#1027,#1028);
#1027=CALENDAR_DATE(1993,18,7);
#1028=LOCAL_TIME(10,51,59.0,#29);
#1030=DATE_TIME_ROLE('creation_date');
#1061=CC_DESIGN_APPROVAL(#1062,(#1017));
#1062=APPROVAL(#1063,'Approved as detailed drawing');
#1063=APPROVAL_STATUS('approved');
#1064=APPROVAL_DATE_TIME(#1065,#1062);
#1065=DATE_AND_TIME(#1066,#1067);
#1066=CALENDAR_DATE(1993,19,7);
#1067=LOCAL_TIME(19,51,59.0,#29);
#1077=APPROVAL_PERSON_ORGANIZATION(#81,#1062,#1079);
#1079=APPROVAL_ROLE('Authorize product definition');
#1200=SHAPE_DEFINITION_REPRESENTATION(#1201,#9810);
#1201=PRODUCT_DEFINITION_SHAPE('GBWR_Shape','Shape of Star Cog',#17);
#9101=CARTESIAN_POINT('CartPt1',(0.0, 0.0, 0.5));
#9102=CARTESIAN_POINT('CartPt2',(0.125, 0.4841, 0.5));
#9103=CARTESIAN_POINT('CartPt3',(0.125, 0.7500, 0.5));
#9104=CARTESIAN_POINT('CartPt4',(-0.125, 0.4841, 0.5));
#9105=CARTESIAN_POINT('CartPt5',(-0.125, 0.7500, 0.5));
#9107=DIRECTION('Dir1',(0.0, 0.0, 1.0));
#9108=AXIS2_PLACEMENT_3D('Ax2P3D1',#9101,#9107, $);
#9109=CIRCLE('Circ1',#9108, 0.500);
#9110=TRIMMED_CURVE('TrimCur1',#9109, (#9102), (#9104), .F., .CARTESIAN.);
#9111=POLYLINE('PolyLine1',(#9102,#9103,#9105,#9104));
#9120=CARTESIAN_POINT('CartPt6',(0.0, 0.0, 0.0));
#9121=CARTESIAN_POINT('CartPt7',(0.125, 0.4841, 0.0));
#9122=CARTESIAN_POINT('CartPt8',(0.125, 0.7500, 0.0));
#9123=CARTESIAN_POINT('CartPt9',(-0.125, 0.4841, 0.0));
#9124=CARTESIAN_POINT('CartPt10',(-0.125, 0.7500, 0.0));
#9128=AXIS2_PLACEMENT_3D('Ax2P3D2',#9120,#9107, $);
#9129=CIRCLE('Circ2',#9128, 0.500);
#9130=TRIMMED_CURVE('TrimCur2',#9129, (#9121), (#9123), .F., .UNSPECIFIED.);
#9131=POLYLINE('PolyLine2',(#9121,#9122,#9124,#9123));
#9140=CIRCLE('Circ3',#9108, 2.880);
#9141=CIRCLE('Circ4',#9128, 2.880);
#9145=CARTESIAN_POINT('CartPt11',(0.25, 1.5, 0.5));
#9146=CARTESIAN_POINT('CartPt12',(0.25, 1.5, 0.0));
#9150=CARTESIAN_POINT('CartPt13',(0.25, 2.8691, 0.5));
#9151=CARTESIAN_POINT('CartPt14',(0.25, 2.8691, 0.0));
#9153=POLYLINE('PolyLine3',(#9150,#9145,#9146,#9151));
#9155=CARTESIAN_POINT('CartPt15',(0.6013, 2.8165, 0.5));
#9156=CARTESIAN_POINT('CartPt16',(0.6013, 2.8165, 0.0));
#9158=TRIMMED_CURVE('TrimCur3',#9140, (#9150), (#9155), .F., .CARTESIAN.);
#9159=TRIMMED_CURVE('TrimCur4',#9141, (#9151), (#9156), .F., .CARTESIAN.);
#9160=CARTESIAN_POINT('CartPt17',(2.1386, 1.9290, 0.5));
#9161=CARTESIAN_POINT('CartPt18',(2.1386, 1.9290, 0.0));
#9170=CARTESIAN_POINT('CartPt19',(1.81, 3.1350, 0.5));
#9171=AXIS2_PLACEMENT_3D('Ax2P3D3',#9170,#9107, $);
#9172=CIRCLE('Circ5',#9171, 1.25);
#9173=TRIMMED_CURVE('TrimCur5',#9172, (#9155), (#9160), .T., .CARTESIAN.);
#9175=CARTESIAN_POINT('CartPt20',(1.81, 3.1350, 0.0));
#9176=AXIS2_PLACEMENT_3D('Ax2P3D4',#9175,#9107, $);
#9177=CIRCLE('Circ6',#9176, 1.25);
#9178=TRIMMED_CURVE('TrimCur6',#9177, (#9156), (#9161), .T., .CARTESIAN.);
#9180=CARTESIAN_POINT('CartPt21',(2.3579, 1.6511, 0.5));
#9181=CARTESIAN_POINT('CartPt22',(2.3579, 1.6511, 0.0));
#9183=CARTESIAN_POINT('CartPt23',(1.1740, 0.9665, 0.5));
#9184=CARTESIAN_POINT('CartPt24',(1.1740, 0.9665, 0.0));
#9185=POLYLINE('PolyLine4',(#9180,#9183,#9184,#9181));
#9186=CARTESIAN_POINT('CartPt25',(1.0825, 0.625, 0.5));
#9187=CARTESIAN_POINT('CartPt26',(1.0825, 0.625, 0.0));
#9190=CARTESIAN_POINT('CartPt27',(1.4240, 0.5335, 0.5));
#9191=CARTESIAN_POINT('CartPt28',(1.4240, 0.5335, 0.0));
#9194=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot1',1, (#9183,#9186,#9190), .POLYLINE_FORM., .F.,
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
#9195=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot2',1, (#9184,#9187,#9191), .POLYLINE_FORM., .F.,
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
#9196=CARTESIAN_POINT('CartPt29',(2.6097, 1.2181, 0.5));
#9197=CARTESIAN_POINT('CartPt30',(2.6097, 1.2181, 0.0));
#9198=POLYLINE('PolyLine5',(#9190,#9196,#9197,#9191));
#9200=CARTESIAN_POINT('CartPt31',(2.7398, 0.8876, 0.5));
#9201=CARTESIAN_POINT('CartPt32',(2.7398, 0.8876, 0.0));
#9205=CARTESIAN_POINT('CartPt33',(2.7398, -0.8876, 0.5));
#9206=CARTESIAN_POINT('CartPt34',(2.7398, -0.8876, 0.0));
#9208=CARTESIAN_POINT('CartPt35',(3.62, 0.0, 0.5));
#9209=AXIS2_PLACEMENT_3D('Ax2P3D5',#9208,#9107, $);
#9210=CIRCLE('Circ7',#9209, 1.25);
#9211=TRIMMED_CURVE('TrimCur7',#9210, (#9200), (#9205), .T., .CARTESIAN.);
#9212=CARTESIAN_POINT('CartPt36',(3.62, 0.0, 0.0));
#9213=AXIS2_PLACEMENT_3D('Ax2P3D6',#9212,#9107, $);
#9214=CIRCLE('Circ8',#9213, 1.25);
#9215=TRIMMED_CURVE('TrimCur8',#9214, (#9201), (#9206), .T., .CARTESIAN.);
#9220=CARTESIAN_POINT('CartPt37',(2.6097, -1.2181, 0.5));
#9221=CARTESIAN_POINT('CartPt38',(2.6097, -1.2181, 0.0));
#9225=CARTESIAN_POINT('CartPt39',(1.4240, -0.5335, 0.5));
#9226=CARTESIAN_POINT('CartPt40',(1.4240, -0.5335, 0.0));
#9227=POLYLINE('PolyLine6',(#9220,#9225,#9226,#9221));
#9230=CARTESIAN_POINT('CartPt41',(1.0825, -0.625, 0.5));
#9231=CARTESIAN_POINT('CartPt42',(1.0825, -0.625, 0.0));
#9235=CARTESIAN_POINT('CartPt43',(1.1740, -0.9665, 0.5));
#9236=CARTESIAN_POINT('CartPt44',(1.1740, -0.9665, 0.0));
#9238=QUASI_UNIFORM_CURVE('QUnifCur1',1, (#9225,#9230,#9235), .POLYLINE_FORM., .F., .F.);
#9239=QUASI_UNIFORM_CURVE('QUnifCur2',1, (#9226,#9231,#9236),.UNSPECIFIED., .U., .U.);
#9240=CARTESIAN_POINT('CartPt45',(2.3579, -1.6511, 0.5));
#9241=CARTESIAN_POINT('CartPt46',(2.3579, -1.6511, 0.0));
#9242=POLYLINE('PolyLine7',(#9235,#9240,#9241,#9236));
#9245=CARTESIAN_POINT('CartPt47',(2.1386, -1.9290, 0.5));
#9246=CARTESIAN_POINT('CartPt48',(2.1386, -1.9290, 0.0));
#9250=CARTESIAN_POINT('CartPt49',(0.6013, -2.8165, 0.5));
#9251=CARTESIAN_POINT('CartPt50',(0.6013, -2.8165, 0.0));
#9255=CARTESIAN_POINT('CartPt51',(1.81, -3.1350, 0.5));
#9256=AXIS2_PLACEMENT_3D('Ax2P3D7',#9255,#9107, $);
#9257=CIRCLE('Circ9',#9256, 1.25);
#9258=TRIMMED_CURVE('TrimCur9',#9257, (#9245), (#9250), .T., .CARTESIAN.);
#9260=CARTESIAN_POINT('CartPt52',(1.81, -3.1350, 0.0));
#9261=AXIS2_PLACEMENT_3D('Ax2P3D8',#9260,#9107, $);
#9262=CIRCLE('Circ10',#9261, 1.25);
#9263=TRIMMED_CURVE('TrimCur10',#9262, (#9246), (#9251), .T., .CARTESIAN.);
#9265=CARTESIAN_POINT('CartPt53',(0.25, -2.8691, 0.5));
#9266=CARTESIAN_POINT('CartPt54',(0.25, -2.8691, 0.0));
#9270=CARTESIAN_POINT('CartPt55',(0.25, -1.5, 0.5));
#9271=CARTESIAN_POINT('CartPt56',(0.25, -1.5, 0.0));
#9272=POLYLINE('PolyLine8',(#9265,#9270,#9271,#9266));
#9275=CARTESIAN_POINT('CartPt57',(0.0, -1.25, 0.5));
#9276=CARTESIAN_POINT('CartPt58',(0.0, -1.25, 0.0));
#9280=CARTESIAN_POINT('CartPt59',(-0.25, -1.5, 0.5));
#9281=CARTESIAN_POINT('CartPt60',(-0.25, -1.5, 0.0));
#9283=QUASI_UNIFORM_CURVE('QUnifCur3',1, (#9270,#9275,#9280), .POLYLINE_FORM., .U., .U.);
#9284=QUASI_UNIFORM_CURVE('QUnifCur4',1, (#9271,#9276,#9281), .UNSPECIFIED., .F., .F.);
#9285=CARTESIAN_POINT('CartPt61',(-0.25, -2.8691, 0.5));
#9286=CARTESIAN_POINT('CartPt62',(-0.25, -2.8691, 0.0));
#9287=POLYLINE('PolyLine9',(#9280,#9285,#9286,#9281));
#9290=CARTESIAN_POINT('CartPt63',(-0.6013, -2.8165, 0.5));
#9291=CARTESIAN_POINT('CartPt64',(-0.6013, -2.8165, 0.0));
#9295=CARTESIAN_POINT('CartPt65',(-2.1386, -1.9290, 0.5));
#9296=CARTESIAN_POINT('CartPt66',(-2.1386, -1.9290, 0.0));
#9300=CARTESIAN_POINT('CartPt67',(-1.81, -3.1350, 0.5));
#9301=AXIS2_PLACEMENT_3D('Ax2P3D9',#9300,#9107, $);
#9302=CIRCLE('Circ11',#9301, 1.25);
#9303=TRIMMED_CURVE('TrimCur11',#9302, (#9290), (#9295), .T., .CARTESIAN.);
#9305=CARTESIAN_POINT('CartPt68',(-1.81, -3.1350, 0.0));
#9306=AXIS2_PLACEMENT_3D('Ax2P3D10',#9305,#9107, $);
#9307=CIRCLE('Circ12',#9306, 1.25);
#9308=TRIMMED_CURVE('TrimCur12',#9307, (#9291), (#9296), .T., .CARTESIAN.);
#9310=CARTESIAN_POINT('CartPt69',(-2.3579, -1.6511, 0.5));
#9311=CARTESIAN_POINT('CartPt70',(-2.3579, -1.6511, 0.0));
#9315=CARTESIAN_POINT('CartPt71',(-1.1740, -0.9665, 0.5));
#9316=CARTESIAN_POINT('CartPt72',(-1.1740, -0.9665, 0.0));
#9317=POLYLINE('PolyLine10',(#9310,#9315,#9316,#9311));
#9320=CARTESIAN_POINT('CartPt73',(-1.0825, -0.625, 0.5));
#9321=CARTESIAN_POINT('CartPt74',(-1.0825, -0.625, 0.0));
#9325=CARTESIAN_POINT('CartPt75',(-1.4240, -0.5335, 0.5));
#9326=CARTESIAN_POINT('CartPt76',(-1.4240, -0.5335, 0.0));
#9328=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot3',1, (#9315,#9320,#9325), .POLYLINE_FORM., .F.,
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
#9329=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot4',1, (#9316,#9321,#9326), .POLYLINE_FORM., .F.,
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
#9330=CARTESIAN_POINT('CartPt77',(-2.6097, -1.2181, 0.5));
#9331=CARTESIAN_POINT('CartPt78',(-2.6097, -1.2181, 0.0));
#9332=POLYLINE('PolyLine11',(#9325,#9330,#9331,#9326));
#9335=CARTESIAN_POINT('CartPt79',(-2.7398, -0.8876, 0.5));
#9336=CARTESIAN_POINT('CartPt80',(-2.7398, -0.8876, 0.0));
#9340=CARTESIAN_POINT('CartPt81',(-2.7398, 0.8876, 0.5));
#9341=CARTESIAN_POINT('CartPt82',(-2.7398, 0.8876, 0.0));
#9345=CARTESIAN_POINT('CartPt83',(-3.62, 0.0, 0.5));
#9346=AXIS2_PLACEMENT_3D('Ax2P3D11',#9345,#9107, $);
#9347=CIRCLE('Circ13',#9346, 1.25);
#9348=TRIMMED_CURVE('TrimCur13',#9347, (#9335), (#9340), .T., .CARTESIAN.);
#9350=CARTESIAN_POINT('CartPt84',(-3.62, 0.0, 0.0));
#9351=AXIS2_PLACEMENT_3D('Ax2P3D12',#9350,#9107, $);
#9352=CIRCLE('Circ14',#9351, 1.25);
#9353=TRIMMED_CURVE('TrimCur14',#9352, (#9336), (#9341), .T., .CARTESIAN.);
#9355=CARTESIAN_POINT('CartPt85',(-2.6097, 1.2181, 0.5));
#9356=CARTESIAN_POINT('CartPt86',(-2.6097, 1.2181, 0.0));
#9360=CARTESIAN_POINT('CartPt87',(-1.4240, 0.5335, 0.5));
#9361=CARTESIAN_POINT('CartPt88',(-1.4240, 0.5335, 0.0));
#9362=POLYLINE('PolyLine12',(#9355,#9360,#9361,#9356));
#9365=CARTESIAN_POINT('CartPt89',(-1.0825, 0.625, 0.5));
#9366=CARTESIAN_POINT('CartPt90',(-1.0825, 0.625, 0.0));
#9370=CARTESIAN_POINT('CartPt91',(-1.1740, 0.9665, 0.5));
#9371=CARTESIAN_POINT('CartPt92',(-1.1740, 0.9665, 0.0));
#9373=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot5',1, (#9360,#9365,#9370), .POLYLINE_FORM., .F.,
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
#9374=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot6',1, (#9361,#9366,#9371), .POLYLINE_FORM., .F.,
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
#9375=CARTESIAN_POINT('CartPt93',(-2.3579, 1.6511, 0.5));
#9376=CARTESIAN_POINT('CartPt94',(-2.3579, 1.6511, 0.0));
#9377=POLYLINE('PolyLine13',(#9370,#9375,#9376,#9371));
#9380=CARTESIAN_POINT('CartPt95',(-2.1386, 1.9290, 0.5));
#9381=CARTESIAN_POINT('CartPt96',(-2.1386, 1.9290, 0.0));
#9385=CARTESIAN_POINT('CartPt97',(-0.6013, 2.8165, 0.5));
#9386=CARTESIAN_POINT('CartPt98',(-0.6013, 2.8165, 0.0));
#9390=CARTESIAN_POINT('CartPt99',(-1.81, 3.1350, 0.5));
#9391=AXIS2_PLACEMENT_3D('Ax2P3D13',#9390,#9107, $);
#9392=CIRCLE('Circ15',#9391, 1.25);
#9393=TRIMMED_CURVE('TrimCur15',#9392, (#9380), (#9385), .T., .CARTESIAN.);
#9395=CARTESIAN_POINT('CartPt100',(-1.81, 3.1350, 0.0));
#9396=AXIS2_PLACEMENT_3D('Ax2P3D14',#9395,#9107, $);
#9397=CIRCLE('Circ16',#9396, 1.25);
#9398=TRIMMED_CURVE('TrimCur16',#9397, (#9381), (#9386), .T., .CARTESIAN.);
#9400=CARTESIAN_POINT('CartPt101',(-0.25, 2.8691, 0.5));
#9401=CARTESIAN_POINT('CartPt102',(-0.25, 2.8691, 0.0));
#9405=CARTESIAN_POINT('CartPt103',(-0.25, 1.50, 0.5));
#9406=CARTESIAN_POINT('CartPt104',(-0.25, 1.50, 0.0));
#9407=POLYLINE('PolyLine14',(#9400,#9405,#9406,#9401));
#9410=CARTESIAN_POINT('CartPt105',(0.0, 1.25, 0.5));
#9411=CARTESIAN_POINT('CartPt106',(0.0, 1.25, 0.0));
#9413=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot7',1, (#9405,#9410,#9145), .POLYLINE_FORM., .F.,
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
#9414=B_SPLINE_CURVE_WITH_KNOTS('BSCurKnot8',1, (#9406,#9411,#9146), .POLYLINE_FORM., .F.,
.F., (2,1,2), (0.0, 1.0, 2.0), .UNSPECIFIED.);
#9450=TRIMMED_CURVE('TrimCur17',#9140, (#9160), (#9180), .F., .CARTESIAN.);
#9451=TRIMMED_CURVE('TrimCur18',#9141, (#9161), (#9181), .F., .CARTESIAN.);
#9460=TRIMMED_CURVE('TrimCur19',#9140, (#9196), (#9200), .F., .CARTESIAN.);
#9461=TRIMMED_CURVE('TrimCur20',#9141, (#9197), (#9201), .F., .CARTESIAN.);
#9470=TRIMMED_CURVE('TrimCur21',#9140, (#9205), (#9220), .F., .CARTESIAN.);
#9471=TRIMMED_CURVE('TrimCur22',#9141, (#9206), (#9221), .F., .CARTESIAN.);
#9480=TRIMMED_CURVE('TrimCur23',#9140, (#9240), (#9245), .F., .CARTESIAN.);
#9481=TRIMMED_CURVE('TrimCur24',#9141, (#9241), (#9246), .F., .CARTESIAN.);
#9490=TRIMMED_CURVE('TrimCur25',#9140, (#9250), (#9265), .F., .CARTESIAN.);
#9491=TRIMMED_CURVE('TrimCur26',#9141, (#9251), (#9266), .F., .CARTESIAN.);
#9500=TRIMMED_CURVE('TrimCur27',#9140, (#9285), (#9290), .F., .CARTESIAN.);
#9501=TRIMMED_CURVE('TrimCur28',#9141, (#9286), (#9291), .F., .CARTESIAN.);
#9510=TRIMMED_CURVE('TrimCur29',#9140, (#9295), (#9310), .F., .CARTESIAN.);
#9511=TRIMMED_CURVE('TrimCur30',#9141, (#9296), (#9311), .F., .CARTESIAN.);
#9520=TRIMMED_CURVE('TrimCur31',#9140, (#9330), (#9335), .F., .CARTESIAN.);
#9521=TRIMMED_CURVE('TrimCur32',#9141, (#9331), (#9336), .F., .CARTESIAN.);
#9530=TRIMMED_CURVE('TrimCur33',#9140, (#9340), (#9355), .F., .CARTESIAN.);
#9531=TRIMMED_CURVE('TrimCur34',#9141, (#9341), (#9356), .F., .CARTESIAN.);
#9540=TRIMMED_CURVE('TrimCur35',#9140, (#9375), (#9380), .F., .CARTESIAN.);
#9541=TRIMMED_CURVE('TrimCur36',#9141, (#9376), (#9381), .F., .CARTESIAN.);
#9550=TRIMMED_CURVE('TrimCur37',#9140, (#9385), (#9400), .F., .CARTESIAN.);
#9551=TRIMMED_CURVE('TrimCur38',#9141, (#9386), (#9401), .F., .CARTESIAN.);
#9560 = VECTOR('Vec1',#9107,1.0);
#9561 = LINE('Line1',#9121,#9560);
#9562 = TRIMMED_CURVE('TrimCur39',#9561,(#9121),(#9102),.T.,.CARTESIAN.);
#9565 = LINE('Line2',#9122,#9560);
#9566 = TRIMMED_CURVE('TrimCur40',#9565,(#9121),(#9103),.T.,.CARTESIAN.);
#9570 = LINE('Line3',#9124,#9560);
#9571 = TRIMMED_CURVE('TrimCur41',#9570,(#9124),(#9105),.T.,.CARTESIAN.);
#9575 = LINE('Line4',#9123,#9560);
#9576 = TRIMMED_CURVE('TrimCur42',#9575,(#9123),(#9104),.T.,.CARTESIAN.);
#9580 = LINE('Line5',#9151,#9560);
#9581 = TRIMMED_CURVE('TrimCur43',#9580,(#9151),(#9150),.T.,.CARTESIAN.);
#9585 = LINE('Line6',#9156,#9560);
#9586 = TRIMMED_CURVE('TrimCur44',#9585,(#9156),(#9155),.T.,.CARTESIAN.);
#9590 = LINE('Line7',#9161,#9560);
#9591 = TRIMMED_CURVE('TrimCur45',#9590,(#9161),(#9160),.T.,.CARTESIAN.);
#9595 = LINE('Line8',#9181,#9560);
#9596 = TRIMMED_CURVE('TrimCur46',#9595,(#9181),(#9180),.T.,.CARTESIAN.);
#9600 = LINE('Line9',#9187,#9560);
#9601 = TRIMMED_CURVE('TrimCur47',#9600,(#9187),(#9186),.T.,.CARTESIAN.);
#9605 = LINE('Line10',#9191,#9560);
#9606 = TRIMMED_CURVE('TrimCur48',#9605,(#9191),(#9190),.T.,.CARTESIAN.);
#9610 = LINE('Line11',#9201,#9560);
#9611 = TRIMMED_CURVE('TrimCur49',#9610,(#9201),(#9200),.T.,.CARTESIAN.);
#9615 = LINE('Line12',#9206,#9560);
#9616 = TRIMMED_CURVE('TrimCur50',#9615,(#9206),(#9205),.T.,.CARTESIAN.);
#9620 = LINE('Line13',#9221,#9560);
#9621 = TRIMMED_CURVE('TrimCur51',#9620,(#9221),(#9220),.T.,.CARTESIAN.);
#9625 = LINE('Line14',#9231,#9560);
#9626 = TRIMMED_CURVE('TrimCur52',#9625,(#9231),(#9230),.T.,.CARTESIAN.);
#9630 = LINE('Line15',#9236,#9560);
#9631 = TRIMMED_CURVE('TrimCur53',#9630,(#9236),(#9235),.T.,.CARTESIAN.);
#9635 = LINE('Line16',#9246,#9560);
#9636 = TRIMMED_CURVE('TrimCur54',#9635,(#9246),(#9245),.T.,.CARTESIAN.);
#9640 = LINE('Line17',#9251,#9560);
#9641 = TRIMMED_CURVE('TrimCur55',#9640,(#9251),(#9250),.T.,.CARTESIAN.);
#9645 = LINE('Line18',#9266,#9560);
#9646 = TRIMMED_CURVE('TrimCur56',#9645,(#9266),(#9265),.T.,.CARTESIAN.);
#9650 = LINE('Line19',#9276,#9560);
#9651 = TRIMMED_CURVE('TrimCur57',#9650,(#9276),(#9275),.T.,.CARTESIAN.);
#9655 = LINE('Line20',#9281,#9560);
#9656 = TRIMMED_CURVE('TrimCur58',#9655,(#9281),(#9280),.T.,.CARTESIAN.);
#9660 = LINE('Line21',#9291,#9560);
#9661 = TRIMMED_CURVE('TrimCur59',#9660,(#9291),(#9290),.T.,.CARTESIAN.);
#9665 = LINE('Line22',#9296,#9560);
#9666 = TRIMMED_CURVE('TrimCur60',#9665,(#9296),(#9295),.T.,.CARTESIAN.);
#9670 = LINE('Line23',#9311,#9560);
#9671 = TRIMMED_CURVE('TrimCur61',#9670,(#9311),(#9310),.T.,.CARTESIAN.);
#9675 = LINE('Line24',#9321,#9560);
#9676 = TRIMMED_CURVE('TrimCur62',#9675,(#9321),(#9320),.T.,.CARTESIAN.);
#9680 = LINE('Line25',#9326,#9560);
#9681 = TRIMMED_CURVE('TrimCur63',#9680,(#9326),(#9325),.T.,.CARTESIAN.);
#9685 = LINE('Line26',#9336,#9560);
#9686 = TRIMMED_CURVE('TrimCur64',#9685,(#9336),(#9335),.T.,.CARTESIAN.);
#9690 = LINE('Line27',#9341,#9560);
#9691 = TRIMMED_CURVE('TrimCur65',#9690,(#9341),(#9340),.T.,.CARTESIAN.);
#9695 = LINE('Line28',#9356,#9560);
#9696 = TRIMMED_CURVE('TrimCur66',#9695,(#9356),(#9355),.T.,.CARTESIAN.);
#9700 = LINE('Line29',#9366,#9560);
#9701 = TRIMMED_CURVE('TrimCur67',#9700,(#9366),(#9365),.T.,.CARTESIAN.);
#9705 = LINE('Line30',#9371,#9560);
#9706 = TRIMMED_CURVE('TrimCur68',#9705,(#9371),(#9370),.T.,.CARTESIAN.);
#9710 = LINE('Line31',#9381,#9560);
#9711 = TRIMMED_CURVE('TrimCur69',#9710,(#9381),(#9380),.T.,.CARTESIAN.);
#9715 = LINE('Line32',#9386,#9560);
#9716 = TRIMMED_CURVE('TrimCur70',#9715,(#9386),(#9385),.T.,.CARTESIAN.);
#9720 = LINE('Line33',#9401,#9560);
#9721 = TRIMMED_CURVE('TrimCur71',#9720,(#9401),(#9400),.T.,.CARTESIAN.);
#9725 = LINE('Line34',#9411,#9560);
#9726 = TRIMMED_CURVE('TrimCur72',#9725,(#9411),(#9410),.T.,.CARTESIAN.);
#9800 = GEOMETRIC_CURVE_SET('GeomCurSet1',(#9110,#9111,#9130,#9131,
#9562,#9566,#9571,#9576,#9581,#9153, #9586,#9158,#9159,#9591,#9173,
#9178,#9596,#9185, #9601,#9606,#9194,#9195,#9198,#9611,
#9616,#9211,#9215, #9621,#9227,#9626,#9631,#9238,
#9239,#9242,#9636,#9641, #9258,#9263,#9646,#9272,
#9651,#9656,#9283,#9284,#9287, #9661,#9666,#9303,
#9308,#9671,#9317,#9676, #9681,#9328,#9329,#9332,#9686,#9691,
#9348,#9353,#9696, #9362,#9701,#9706,#9373,#9374,
#9377,#9711,#9716,#9393, #9398,#9721,#9407,#9726,
#9413,#9414,#9450,#9451,#9460,#9461,#9470,#9471,#9480,#9481,#9490,#9491,
#9500,#9501,#9510,#9511,#9520,#9521,#9530,#9531,#9540,#9541,#9550,#9551));
#9815=DIMENSIONAL_EXPONENTS(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
#9822=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.CENTI.,.METRE.));
#9824=LENGTH_MEASURE_WITH_UNIT(POSITIVE_LENGTH_MEASURE(2.54),#9822);
#9825=(CONVERSION_BASED_UNIT('inch',#9824)LENGTH_UNIT()NAMED_UNIT(#9815));
#9826=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
#9827=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
#9828 = (GEOMETRIC_REPRESENTATION_CONTEXT(3)
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9829))
GLOBAL_UNIT_ASSIGNED_CONTEXT((#9825,#9826,#9827))
REPRESENTATION_CONTEXT('CONTEXT for gbwr test case star','This is a 3d context using inches for linear dimension'));
#9829 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.000001),#9825,'xx','yy');
#9810=GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION('gbwsr',(#9800),#9828);
ENDSEC;
END-ISO-10303-21;
+128 -33
View File
@@ -1,36 +1,131 @@
# To build one or more schemas, configure with
# 'cmake -DSC_BUILD_SCHEMAS="path/to/schema.exp;path/to/schema2.exp"
# you can specify a schema in 3 ways:
# * path relative to build dir
# * path relative to sc/data (this dir)
# * absolute path
#
# cmake goes through the above options in order until it finds one
# that exists. if ${path} is a dir, cmake expects to find a single
# .exp file inside, which it uses. otherwise, ${path} is assumed to
# be an express file.
if(NOT "${SC_BUILD_EXPRESS_ONLY}" AND NOT "${SC_BUILD_SCHEMAS}" STREQUAL "")
include(${SC_CMAKE_DIR}/schema_scanner/schemaScanner.cmake)
foreach(src ${SC_SDAI_ADDITIONAL_EXES_SRCS})
get_filename_component(name ${src} NAME_WE)
message(STATUS "Additional SDAI executable: ${name}")
endforeach(src ${SC_SDAI_ADDITIONAL_EXES_SRCS})
#this sets a property so that the target doesn't get built by 'make' or 'make all'
#useful when testing generation of schema code/compiling schem libs/etc
FUNCTION( TESTABLE_TARGET target )
if(SCL_ENABLE_TESTING)
set_target_properties( ${target} PROPERTIES EXCLUDE_FROM_ALL ON )
endif()
ENDFUNCTION( TESTABLE_TARGET )
if(SC_BUILD_SCHEMAS STREQUAL "ALL")
file(GLOB_RECURSE SC_BUILD_SCHEMAS ${SC_SOURCE_DIR}/data/*.exp)
endif()
foreach(FILE ${SC_BUILD_SCHEMAS})
# figure out an absolute path to the file
LOCATE_SCHEMA(${FILE} abspath)
SCHEMA_CMLIST(${abspath})
endforeach()
# To build one or more schemas, configure with
# 'cmake -DSCL_BUILD_SCHEMAS="path/to/schema.exp;path/to/schema2.exp"
# This function runs fedex on one express file. The generated source goes in a dir
# in the build dir, and it is compiled into a library. A p21read executable is
# compiled and linked to the lib. p21read is used to test the lib.
FUNCTION(BUILD_A_SCHEMA SCHEMA_FILE)
if( EXISTS "${CMAKE_BINARY_DIR}/${SCHEMA_FILE}" ) #try absolute path. if that fails, must already be absolute.
set( SCHEMA_FILE "${CMAKE_BINARY_DIR}/${SCHEMA_FILE}" )
else()
if( NOT EXISTS ${SCHEMA_FILE} )
message( FATAL_ERROR "Cannot find ${CMAKE_BINARY_DIR}/${SCHEMA_FILE} or ${SCHEMA_FILE}")
endif()
endif()
if( IS_DIRECTORY ${SCHEMA_FILE} ) #if it is a dir, look for one .exp file inside
file(GLOB SCHEMA_FILE ${SCHEMA_FILE}/*.exp )
endif()
if( NOT EXISTS ${SCHEMA_FILE} )
message(FATAL_ERROR "Expected one express file. Found '${SCHEMA_FILE}' instead.")
endif()
# read the schema name from a line like 'SCHEMA AUTOMOTIVE_DESIGN;'
file(STRINGS ${SCHEMA_FILE} SCHEMA_STATEMENT LIMIT_COUNT 1 REGEX "^SCHEMA .*")
string(REGEX REPLACE "^SCHEMA \(.*\)\;$" "\\1" SCHEMA_N ${SCHEMA_STATEMENT} )
string(TOUPPER ${SCHEMA_N} SCHEMA_LONG_NAME) #fedex_plus always uses upper case for file names
get_filename_component( SCHEMA_SN ${SCHEMA_FILE} NAME )
string( REGEX REPLACE "\(.*\).[Ee][Xx][Pp]" "\\1" SCHEMA_SHORT_NAME ${SCHEMA_SN} )
project( sdai_${SCHEMA_SHORT_NAME} )
message( STATUS "Generating code for ${SCHEMA_SHORT_NAME}.")
set( SCHEMA_OUTPUT_DIR ${CMAKE_BINARY_DIR}/${SCHEMA_SHORT_NAME} )
#the names of the files that will be generated
set( FEDEX_OUT ${SCHEMA_OUTPUT_DIR}/compstructs.cc ${SCHEMA_OUTPUT_DIR}/Sdaiclasses.h
${SCHEMA_OUTPUT_DIR}/schema.cc ${SCHEMA_OUTPUT_DIR}/Sdai${SCHEMA_LONG_NAME}.cc
${SCHEMA_OUTPUT_DIR}/schema.h ${SCHEMA_OUTPUT_DIR}/Sdai${SCHEMA_LONG_NAME}.h
${SCHEMA_OUTPUT_DIR}/SdaiAll.cc ${SCHEMA_OUTPUT_DIR}/Sdai${SCHEMA_LONG_NAME}.init.cc )
# *cannot* use include_directories() because the includes keep piling up - if building
# multiple schemas, each one will use the include dirs from all previous schemas. Since
# one header (schema.h) is always named the same, this will not work. only workaround
# seems to be set_target_properties( <target> PROPERTIES COMPILE_FLAGS <flags> )
set( ${PROJECT_NAME}_COMPILE_FLAGS "-I${CMAKE_CURRENT_SOURCE_DIR} -I${SCL_SOURCE_DIR}/src/cldai -I${SCL_SOURCE_DIR}/src/cleditor -I${SCL_SOURCE_DIR}/src/clutils -I${SCHEMA_OUTPUT_DIR} -I${SCL_SOURCE_DIR}/src/clstepcore -I${SCL_SOURCE_DIR}/src/base" )
add_custom_target( generate_cpp_${SCHEMA_SHORT_NAME} SOURCES ${FEDEX_OUT} )
add_custom_command( OUTPUT ${SCHEMA_OUTPUT_DIR}
COMMAND cmake ARGS -E make_directory ${SCHEMA_OUTPUT_DIR}
COMMENT "Creating ${SCHEMA_OUTPUT_DIR} for schema ${SCHEMA_SHORT_NAME}")
add_custom_command( OUTPUT ${FEDEX_OUT}
COMMAND fedex_plus ARGS ${SCHEMA_FILE}
DEPENDS ${SCHEMA_FILE} ${SCHEMA_OUTPUT_DIR}
WORKING_DIRECTORY ${SCHEMA_OUTPUT_DIR}
COMMENT "Running fedex_plus for ${SCHEMA_SHORT_NAME}..."
VERBATIM )
if(MSVC OR BORLAND)
add_definitions( -DSCL_SCHEMA_DLL_EXPORTS )
add_definitions( -DSCL_BASE_DLL_IMPORTS )
add_definitions( -DSCL_EXPRESS_DLL_IMPORTS )
add_definitions( -DSCL_UTILS_DLL_IMPORTS )
add_definitions( -DSCL_DAI_DLL_IMPORTS )
add_definitions( -DSCL_CORE_DLL_IMPORTS )
add_definitions( -DSCL_EDITOR_DLL_IMPORTS )
endif()
add_library( ${PROJECT_NAME} SHARED ${FEDEX_OUT} )
target_link_libraries(${PROJECT_NAME} stepdai stepcore express stepeditor steputils base )
add_dependencies( ${PROJECT_NAME} generate_cpp_${SCHEMA_SHORT_NAME} )
set_target_properties( ${PROJECT_NAME} PROPERTIES COMPILE_FLAGS
${${PROJECT_NAME}_COMPILE_FLAGS} )
if(APPLE)
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "-flat_namespace -undefined suppress")
endif(APPLE)
TESTABLE_TARGET( ${PROJECT_NAME} )
add_test( NAME generate_cpp_${SCHEMA_SHORT_NAME}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} --build .
--target generate_cpp_${SCHEMA_SHORT_NAME}
--config $<CONFIGURATION> )
add_test( NAME build_cpp_${PROJECT_NAME}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} --build .
--target p21read_${PROJECT_NAME}
--config $<CONFIGURATION> )
# label the tests and set dependencies
set_tests_properties( generate_cpp_${SCHEMA_SHORT_NAME} PROPERTIES LABELS cpp_schema_gen )
set_tests_properties( build_cpp_${PROJECT_NAME} PROPERTIES DEPENDS generate_cpp_${SCHEMA_SHORT_NAME} LABELS cpp_schema_build )
if(MSVC OR BORLAND)
add_executable( p21read_${PROJECT_NAME} ${SCL_SOURCE_DIR}/src/test/p21read/p21read.cc ${SCL_SOURCE_DIR}/src/fedex_plus/xgetopt.cc )
else()
add_executable( p21read_${PROJECT_NAME} ${SCL_SOURCE_DIR}/src/test/p21read/p21read.cc )
endif()
add_dependencies( p21read_${PROJECT_NAME} version_string )
target_link_libraries( p21read_${PROJECT_NAME} ${PROJECT_NAME} )
set_target_properties( p21read_${PROJECT_NAME} PROPERTIES COMPILE_FLAGS
${${PROJECT_NAME}_COMPILE_FLAGS} )
TESTABLE_TARGET( p21read_${PROJECT_NAME} )
#find all part 21 files in schema dir, add a test for each one
get_filename_component( SCHEMA_DIR ${SCHEMA_FILE} PATH )
file( GLOB_RECURSE P21_FILES ${SCHEMA_DIR}/*.stp ${SCHEMA_DIR}/*.step ${SCHEMA_DIR}/*.p21 )
foreach( TEST_FILE ${P21_FILES} )
get_filename_component( FNAME ${TEST_FILE} NAME_WE )
add_test( NAME read_write_cpp_${SCHEMA_SHORT_NAME}_${FNAME}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMAND p21read_${PROJECT_NAME} ${TEST_FILE} )
set_tests_properties( read_write_cpp_${SCHEMA_SHORT_NAME}_${FNAME} PROPERTIES DEPENDS build_cpp_${PROJECT_NAME} LABELS cpp_schema_rw )
endforeach()
ENDFUNCTION(BUILD_A_SCHEMA)
if( DEFINED SCL_BUILD_SCHEMAS )
if( SCL_BUILD_SCHEMAS STREQUAL "ALL" )
file( GLOB_RECURSE SCL_BUILD_SCHEMAS ${SCL_SOURCE_DIR}/data/*.exp )
endif()
foreach( ap ${SCL_BUILD_SCHEMAS} )
BUILD_A_SCHEMA( ${ap} )
endforeach()
endif()
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
File diff suppressed because it is too large Load Diff
-5331
View File
File diff suppressed because it is too large Load Diff
-364
View File
@@ -1,364 +0,0 @@
ISO-10303-21;
HEADER;
/******************************************************************************************
* STEP Physical File produced by: The EXPRESS Data Manager Version 5.01.0100.b03 SimDM : 25 Apr 2012
* Module: EDMstepFileFactory/EDMstandAlone
* Creation date: Mon Jul 09 12:24:22 2012
* Host: AER4WA926171Z
* Database: C:\Documents and Settings\johnsjc2\Desktop\AP209\SimDM2010\DevCM\db\d
* Database version: 5207
* Database creation date: Wed Apr 18 15:33:55 2012
* Schema: AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF
* Model: DataRepository.FemTest
* Model creation date: Mon Jul 09 12:24:22 2012
* Header model:
* EDMuser: superuser
* EDMgroup:
* License ID and type: 5565 : Project license. Expiry date: 31 Dec 2012
* EDMstepFileFactory options: 010000000
******************************************************************************************/
FILE_DESCRIPTION((''),'2;1');
FILE_NAME(
'C:\\Documents and Settings\\johnsjc2\\Desktop\\AP209\\SimDM2010\\DevCM\\db\\d.DataRepository.FemTest'
,
'2012-07-09T12:24:22',
('ANONYMOUS USER'),
('ANONYMOUS ORGANISATION'),
'The EXPRESS Data Manager Version 5.01.0100.b03 SimDM : 25 Apr 2012',
'',
'');
FILE_SCHEMA(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF'));
ENDSEC;
DATA;
#637538235= APPLICATION_CONTEXT('SimDM');
#637538237= PRODUCT_DEFINITION_CONTEXT('assembly definition',#637538235,
'life cycle stage');
#637538239= PRODUCT_DEFINITION('default-id.0',$,#637538240,#637538244);
#637538240= PRODUCT_DEFINITION_FORMATION('default-id.0','',#637538241);
#637538241= PRODUCT('default-id.0','default-fea-part','',(#637538243));
#637538243= PRODUCT_CONTEXT('design_context',#637538235,'design_context'
);
#637538244= PRODUCT_DEFINITION_CONTEXT(
'product_definition_context_name_1',#637538245,'ANALYSIS-STAGE');
#637538245= APPLICATION_CONTEXT('FEA-ANALYSIS-DOMAIN');
#637538247= PRODUCT_DEFINITION_SHAPE('name',$,#637538239);
#637538248= SHAPE_DEFINITION_REPRESENTATION(#637538247,#637538249);
#637538249= POINT_REPRESENTATION('point_representation_name_1',(
#637538251,#637538359),#637538257);
#637538251= NODE_SET('node_set_name_1',(#637538253,#637538295,#637538299
,#637538303,#637538307,#637538311,#637538315,#637538319,#637538323,
#637538327,#637538331,#637538335,#637538339,#637538343,#637538347,
#637538351,#637538355));
#637538253= NODE('1',(#637538255),#637538257,#637538282);
#637538255= CARTESIAN_POINT('1',(0.,-2.,1.));
#637538257=
/* GEOMETRIC_REPRESENTATION_CONTEXT+GLOBAL_UNIT_ASSIGNED_CONTEXT */(
GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNIT_ASSIGNED_CONTEXT((
#637538260,#637538268,#637538271,#637538265,#637538263,#637538274,
#637538275,#637538278,#637538281,#637538267))REPRESENTATION_CONTEXT(
'CORD2R.1','3d'));
#637538260= SI_ENERGY_UNIT((#637538262,#637538264,#637538266),*,$,
.JOULE.);
#637538262= DERIVED_UNIT_ELEMENT(#637538263,1.);
#637538263= /* MASS_UNIT+SI_UNIT */(MASS_UNIT()NAMED_UNIT(*)SI_UNIT(
.KILO.,.GRAM.));
#637538264= DERIVED_UNIT_ELEMENT(#637538265,2.);
#637538265= /* LENGTH_UNIT+SI_UNIT */(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(
$,.METRE.));
#637538266= DERIVED_UNIT_ELEMENT(#637538267,-2.);
#637538267= /* SI_UNIT+TIME_UNIT */(NAMED_UNIT(*)SI_UNIT($,.SECOND.)
TIME_UNIT());
#637538268= SI_FORCE_UNIT((#637538262,#637538270,#637538266),*,$,
.NEWTON.);
#637538270= DERIVED_UNIT_ELEMENT(#637538265,1.);
#637538271= SI_FREQUENCY_UNIT((#637538273),*,$,.HERTZ.);
#637538273= DERIVED_UNIT_ELEMENT(#637538267,-1.);
#637538274= /* PLANE_ANGLE_UNIT+SI_UNIT */(NAMED_UNIT(*)PLANE_ANGLE_UNIT
()SI_UNIT($,.RADIAN.));
#637538275= SI_POWER_UNIT((#637538262,#637538264,#637538277),*,$,.WATT.
);
#637538277= DERIVED_UNIT_ELEMENT(#637538267,-3.);
#637538278= SI_PRESSURE_UNIT((#637538262,#637538280,#637538266),*,$,
.PASCAL.);
#637538280= DERIVED_UNIT_ELEMENT(#637538265,-1.);
#637538281= /* SI_UNIT+THERMODYNAMIC_TEMPERATURE_UNIT */(NAMED_UNIT(*)
SI_UNIT($,.DEGREE_CELSIUS.)THERMODYNAMIC_TEMPERATURE_UNIT());
#637538282= FEA_MODEL_3D('Identification',(#637538284),#637538291,
'NASTRAN BDF Converter v0.0.0',('NASTRAN'),'AnalysisModelType');
#637538284= FEA_AXIS2_PLACEMENT_3D('0',#637538285,#637538287,#637538289,
.CARTESIAN.,'FEA_BASIC_COORD_SYSTEM.0');
#637538285= CARTESIAN_POINT('',(0.,0.,0.));
#637538287= DIRECTION('AxisZ',(0.,0.,1.));
#637538289= DIRECTION('RefX',(1.,0.,0.));
#637538291=
/* GEOMETRIC_REPRESENTATION_CONTEXT+GLOBAL_UNIT_ASSIGNED_CONTEXT */(
GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNIT_ASSIGNED_CONTEXT((
#637538260,#637538268,#637538271,#637538265,#637538263,#637538274,
#637538275,#637538278,#637538281,#637538267))REPRESENTATION_CONTEXT(
'FEA_BASIC_COORD_SYSTEM.0','3d'));
#637538295= NODE('2',(#637538297),#637538257,#637538282);
#637538297= CARTESIAN_POINT('2',(1.,-2.,1.));
#637538299= NODE('3',(#637538301),#637538257,#637538282);
#637538301= CARTESIAN_POINT('3',(2.,-2.,1.));
#637538303= NODE('4',(#637538305),#637538257,#637538282);
#637538305= CARTESIAN_POINT('4',(3.,-2.,1.));
#637538307= NODE('5',(#637538309),#637538257,#637538282);
#637538309= CARTESIAN_POINT('5',(4.,-2.,1.));
#637538311= NODE('6',(#637538313),#637538257,#637538282);
#637538313= CARTESIAN_POINT('6',(5.,-2.,1.));
#637538315= NODE('7',(#637538317),#637538257,#637538282);
#637538317= CARTESIAN_POINT('7',(6.,-2.,1.));
#637538319= NODE('8',(#637538321),#637538257,#637538282);
#637538321= CARTESIAN_POINT('8',(7.,-2.,1.));
#637538323= NODE('9',(#637538325),#637538257,#637538282);
#637538325= CARTESIAN_POINT('9',(8.,-2.,1.));
#637538327= NODE('10',(#637538329),#637538257,#637538282);
#637538329= CARTESIAN_POINT('10',(9.,-2.,1.));
#637538331= NODE('11',(#637538333),#637538257,#637538282);
#637538333= CARTESIAN_POINT('11',(10.,-2.,1.));
#637538335= NODE('12',(#637538337),#637538257,#637538282);
#637538337= CARTESIAN_POINT('12',(11.,-2.,1.));
#637538339= NODE('13',(#637538341),#637538257,#637538282);
#637538341= CARTESIAN_POINT('13',(12.,-2.,1.));
#637538343= NODE('14',(#637538345),#637538257,#637538282);
#637538345= CARTESIAN_POINT('14',(13.,-2.,1.));
#637538347= NODE('15',(#637538349),#637538257,#637538282);
#637538349= CARTESIAN_POINT('15',(14.,-2.,1.));
#637538351= NODE('16',(#637538353),#637538257,#637538282);
#637538353= CARTESIAN_POINT('16',(15.,-2.,1.));
#637538355= NODE('17',(#637538357),#637538257,#637538282);
#637538357= CARTESIAN_POINT('17',(16.,-2.,1.));
#637538359= FEA_AXIS2_PLACEMENT_3D('1',#637538360,#637538362,#637538364,
.CARTESIAN.,'CORD2R.1');
#637538360= CARTESIAN_POINT('',(0.,0.,0.));
#637538362= DIRECTION('AxisZ',(0.,0.,1.));
#637538364= DIRECTION('RefX',(1.,0.,0.));
#637538366= FEA_MODEL_DEFINITION('fea_model_definition_id_1',$,
#637538247,.U.);
#637538367= STRUCTURAL_RESPONSE_PROPERTY(
'structural_response_property_id_1',$,#637538366);
#637538368= STRUCTURAL_RESPONSE_PROPERTY_DEFINITION_REPRESENTATION(
#637538367,#637538282);
#637538369= NAME_ATTRIBUTE('',#637538239);
#637538370= APPLIED_CLASSIFICATION_ASSIGNMENT(#637538371,#637538372,(
#637538239));
#637538371= GROUP('default-gpvv-type',$);
#637538372= CLASSIFICATION_ROLE('view_type',$);
#637538374= APPLIED_IDENTIFICATION_ASSIGNMENT('default-id.0',#637538375,
(#637538240,#637538239,#637538241));
#637538375= IDENTIFICATION_ROLE('default-role',$);
#637538377= APPLIED_ORGANIZATION_ASSIGNMENT(#637538378,#637538379,(
#637538374));
#637538378= ORGANIZATION($,'default-organization',$);
#637538379= ORGANIZATION_ROLE('id context');
#637538381= APPLIED_CLASSIFICATION_ASSIGNMENT(#637538382,#637538383,(
#637538374));
#637538382= GROUP('id',$);
#637538383= CLASSIFICATION_ROLE('',$);
#637538385= APPLICATION_PROTOCOL_DEFINITION('status',
'ap203_configuration_controlled_3d_design_of_mechanical_parts_and_assemblies'
,2011,#637538235);
#637538386= DESCRIPTION_ATTRIBUTE('SimDM',#637538235);
#637538387= ID_ATTRIBUTE('SimDM',#637538235);
#637538388= DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
#637538389= PRODUCT_RELATED_PRODUCT_CATEGORY('document',$,());
#637538391= PRODUCT_RELATED_PRODUCT_CATEGORY('product',$,(#637538241));
#637538393= DESCRIPTION_ATTRIBUTE('',#637538245);
#637538394= CARTESIAN_POINT('0',(0.,0.,0.));
#637538396= DUMMY_NODE('0',(#637538394),#637538291,#637538282);
#637538398= ITEM_DEFINED_TRANSFORMATION('','',#637538284,#637538359);
#637538399= REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION('','',
#637538282,#637538249,#637538398);
#637538400= ELEMENT_MATERIAL('MAT1.1','Fea Material',(#637538402,
#637538417,#637538422));
#637538402= FEA_MATERIAL_PROPERTY_REPRESENTATION(#637538403,#637538405,
#637538409);
#637538403= MATERIAL_PROPERTY('MAT1.1.0',$,#637538404);
#637538404= CHARACTERIZED_OBJECT('material_property',$);
#637538405= REPRESENTATION('representation_id_2',(#637538407),#637538291
);
#637538407= FEA_LINEAR_ELASTICITY('',FEA_ISOTROPIC_SYMMETRIC_TENSOR4_3D(
(10000000.,0.33)));
#637538409= DATA_ENVIRONMENT('DATA_ENV','Property_conditions',(
#637538411));
#637538411= PROPERTY_DEFINITION_REPRESENTATION(#637538412,#637538414);
#637538412= PROPERTY_DEFINITION('Material Property Definition',$,
#637538413);
#637538413= CHARACTERIZED_OBJECT('property',$);
#637538414= REPRESENTATION('representation_id_1',(#637538416),#637538291
);
#637538416= MEASURE_REPRESENTATION_ITEM('representation_item_name_1',
CONTEXT_DEPENDENT_MEASURE(70.),#637538281);
#637538417= FEA_MATERIAL_PROPERTY_REPRESENTATION(#637538418,#637538419,
#637538409);
#637538418= MATERIAL_PROPERTY('MAT1.1.1',$,#637538404);
#637538419= REPRESENTATION('representation_id_3',(#637538421),#637538291
);
#637538421= FEA_MASS_DENSITY('',0.000254);
#637538422= FEA_MATERIAL_PROPERTY_REPRESENTATION(#637538423,#637538424,
#637538409);
#637538423= MATERIAL_PROPERTY('MAT1.1.2',$,#637538404);
#637538424= REPRESENTATION('representation_id_4',(#637538426),#637538291
);
#637538426= FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION('',
ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
#637538427= CURVE_3D_ELEMENT_REPRESENTATION('16',(#637538429,#637538433)
,#637538435,(#637538351,#637538355),#637538282,#637538439,#637538443,
#637538400);
#637538429= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538430
);
#637538430= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538431);
#637538431= DIRECTION('undefined',(1.,0.,0.));
#637538433= FEA_PARAMETRIC_POINT('',(1.,0.,0.));
#637538435= PARAMETRIC_REPRESENTATION_CONTEXT(
'parametric_representation_context','parametric');
#637538439= CURVE_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,'LINEAR_CURVE.CROD',((
ENUMERATED_CURVE_ELEMENT_PURPOSE(.AXIAL.)),(
ENUMERATED_CURVE_ELEMENT_PURPOSE(.TORSION.))));
#637538443= CURVE_3D_ELEMENT_PROPERTY('PROD.1','',(#637538445),(
#637538456,#637538458),(#637538461,#637538464));
#637538445= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538446,#637538447,
#637538449);
#637538446= CURVE_ELEMENT_LOCATION(#637538433);
#637538447= EULER_ANGLES((0.,0.,0.));
#637538449= CURVE_ELEMENT_SECTION_DERIVED_DEFINITIONS('',0.,8.,(
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)),(0.,0.,0.),
0.,CONTEXT_DEPENDENT_MEASURE(0.),(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)),(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)),(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.));
#637538456= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538458= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538461= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538463));
#637538463= CURVE_ELEMENT_END_RELEASE_PACKET(
ENUMERATED_CURVE_ELEMENT_FREEDOM(.NONE.),0.);
#637538464= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538463));
#637538466= CURVE_3D_ELEMENT_REPRESENTATION('15',(#637538429,#637538433)
,#637538435,(#637538347,#637538351),#637538282,#637538439,#637538443,
#637538400);
#637538469= CURVE_3D_ELEMENT_REPRESENTATION('14',(#637538429,#637538433)
,#637538435,(#637538343,#637538347),#637538282,#637538439,#637538443,
#637538400);
#637538472= CURVE_3D_ELEMENT_REPRESENTATION('13',(#637538429,#637538433)
,#637538435,(#637538339,#637538343),#637538282,#637538439,#637538443,
#637538400);
#637538475= CURVE_3D_ELEMENT_REPRESENTATION('12',(#637538429,#637538433)
,#637538435,(#637538335,#637538339),#637538282,#637538439,#637538443,
#637538400);
#637538478= CURVE_3D_ELEMENT_REPRESENTATION('11',(#637538429,#637538433)
,#637538435,(#637538331,#637538335),#637538282,#637538439,#637538443,
#637538400);
#637538481= CURVE_3D_ELEMENT_REPRESENTATION('10',(#637538429,#637538433)
,#637538435,(#637538327,#637538331),#637538282,#637538439,#637538443,
#637538400);
#637538484= CURVE_3D_ELEMENT_REPRESENTATION('9',(#637538429,#637538433),
#637538435,(#637538323,#637538327),#637538282,#637538439,#637538443,
#637538400);
#637538487= CURVE_3D_ELEMENT_REPRESENTATION('8',(#637538429,#637538433),
#637538435,(#637538319,#637538323),#637538282,#637538439,#637538443,
#637538400);
#637538490= CURVE_3D_ELEMENT_REPRESENTATION('7',(#637538429,#637538433),
#637538435,(#637538315,#637538319),#637538282,#637538439,#637538443,
#637538400);
#637538493= CURVE_3D_ELEMENT_REPRESENTATION('6',(#637538429,#637538433),
#637538435,(#637538311,#637538315),#637538282,#637538439,#637538443,
#637538400);
#637538496= CURVE_3D_ELEMENT_REPRESENTATION('5',(#637538429,#637538433),
#637538435,(#637538307,#637538311),#637538282,#637538439,#637538443,
#637538400);
#637538499= CURVE_3D_ELEMENT_REPRESENTATION('4',(#637538429,#637538433),
#637538435,(#637538303,#637538307),#637538282,#637538439,#637538443,
#637538400);
#637538502= CURVE_3D_ELEMENT_REPRESENTATION('3',(#637538429,#637538433),
#637538435,(#637538299,#637538303),#637538282,#637538439,#637538443,
#637538400);
#637538505= CURVE_3D_ELEMENT_REPRESENTATION('2',(#637538429,#637538433),
#637538435,(#637538295,#637538299),#637538282,#637538439,#637538443,
#637538400);
#637538508= CURVE_3D_ELEMENT_REPRESENTATION('1',(#637538429,#637538433),
#637538435,(#637538253,#637538295),#637538282,#637538439,#637538443,
#637538400);
#637538511= ID_ATTRIBUTE('MAT1.1',#637538412);
#637538512= DESCRIPTION_ATTRIBUTE('Elasticity',#637538402);
#637538513= DESCRIPTION_ATTRIBUTE('MassDensity',#637538417);
#637538514= DESCRIPTION_ATTRIBUTE('TangentCTE',#637538422);
#637538515= CONTROL(#637538282,'Control.0','FemConvert',
'MSC.NASTRAN JOB CREATED ON 06-JUL-00 AT 06:14:07',('<SOL>101</SOL>',
'TIME 600','CEND','<GLOBALCASE>0</GLOBALCASE>','<SUBCASE>1</SUBCASE>',
'ENDDATA 8336E13E'),('NASTRAN'));
#637538518= CONTROL_LINEAR_STATIC_ANALYSIS_STEP(#637538515,
'STATIC STEP 1',1,#637538519,'',#637538520);
#637538519= SPECIFIED_STATE('STEP DEFAULT','default_initial_state');
#637538520= CONTROL_LINEAR_STATIC_LOAD_INCREMENT_PROCESS('STATIC STEP 1'
,'',#637538521);
#637538521= SPECIFIED_STATE('Step 1 Base Specified State',
'Relating Specified State');
#637538522= OUTPUT_REQUEST_STATE('Step 1 Output Request State','',(
#637538518));
#637538524= NODAL_FREEDOM_VALUES(#637538522,#637538525,#637538284,
#637538527,(UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.)));
#637538525= NODE_GROUP('','ALL',#637538282,(#637538253,#637538295,
#637538299,#637538303,#637538307,#637538311,#637538315,#637538319,
#637538323,#637538327,#637538331,#637538335,#637538339,#637538343,
#637538347,#637538351,#637538355));
#637538527= FREEDOMS_LIST((ENUMERATED_DEGREE_OF_FREEDOM(.X_TRANSLATION.)
,ENUMERATED_DEGREE_OF_FREEDOM(.Y_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.Z_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.X_ROTATION.),ENUMERATED_DEGREE_OF_FREEDOM(
.Y_ROTATION.),ENUMERATED_DEGREE_OF_FREEDOM(.Z_ROTATION.)));
#637538530= SINGLE_POINT_CONSTRAINT_ELEMENT('SPC1_1.0',(#637538518),
#637538253,#637538284,(#637538533,#637538534,#637538535),'');
#637538533= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.X_TRANSLATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538534= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.Y_TRANSLATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538535= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.Z_TRANSLATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538536= SINGLE_POINT_CONSTRAINT_ELEMENT_VALUES(#637538537,#637538530
,#637538538,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)
,CONTEXT_DEPENDENT_MEASURE(0.)));
#637538537= SPECIFIED_STATE('SPCVALSTATE_1_2','');
#637538538= FREEDOMS_LIST((ENUMERATED_DEGREE_OF_FREEDOM(.X_TRANSLATION.)
,ENUMERATED_DEGREE_OF_FREEDOM(.Y_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.Z_TRANSLATION.)));
#637538541= SPECIFIED_STATE('SPCCASE_2_2_1','Aggregator SPC 2 Step 1');
#637538542= STATE_RELATIONSHIP(
'SPCCASE_2_2_1 is related to Step 1 Base Specified State','',#637538521,
#637538541);
#637538543= STATE_RELATIONSHIP(
'SPCVALSTATE_1_2 is related to SPCCASE_2_2_1','',#637538541,#637538537);
#637538544= LINEARLY_SUPERIMPOSED_STATE('LOADSTATECOMBINATION_2',
'Overall Factor Combined State');
#637538546= STATE_RELATIONSHIP(
'LOADSTATECOMBINATION_2 is related to Step 1 Base Specified State','',
#637538521,#637538544);
#637538547= STATE_COMPONENT('OverallComp','',#637538544,1.);
#637538549= STATE_RELATIONSHIP(
'LOADSTATEITEM_1 is related to OverallComp','',#637538547,#637538550);
#637538550= LINEARLY_SUPERIMPOSED_STATE('LOADSTATEITEM_1',
'Item Factor State');
#637538551= SPECIFIED_STATE('LOADSTATECORE_1',
'Core Loads Specified State');
#637538552= STATE_RELATIONSHIP(
'LOADSTATECORE_1 is related to ItemComp_2_1','',#637538553,#637538551);
#637538553= STATE_COMPONENT('ItemComp_2_1','',#637538550,1.);
#637538555= NODAL_FREEDOM_ACTION_DEFINITION(#637538551,#637538355,
#637538284,#637538556,(CONTEXT_DEPENDENT_MEASURE(-1000.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538556= FREEDOMS_LIST((ENUMERATED_DEGREE_OF_FREEDOM(.X_TRANSLATION.)
,ENUMERATED_DEGREE_OF_FREEDOM(.Y_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.Z_TRANSLATION.)));
#637538559= ID_ATTRIBUTE('ALL',#637538525);
ENDSEC;
END-ISO-10303-21;
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-385
View File
@@ -1,385 +0,0 @@
ISO-10303-21;
HEADER;
/******************************************************************************************
* STEP Physical File produced by: The EXPRESS Data Manager Version 5.01.0100.b04 : 12 Apr 2012
* Module: EDMstepFileFactory/EDMstandAlone
* Creation date: Tue Jun 05 10:29:55 2012
* Host: AER4WA926171Z
* Database: C:\Documents and Settings\johnsjc2\Desktop\AP209\SimDM2010\DevCM\db\d
* Database version: 5207
* Database creation date: Wed Apr 18 15:33:55 2012
* Schema: AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF
* Model: DataRepository.FemTest
* Model creation date: Tue Jun 05 10:29:54 2012
* Header model:
* EDMuser: superuser
* EDMgroup:
* License ID and type: 5565 : Project license. Expiry date: 31 Dec 2012
* EDMstepFileFactory options: 010000000
******************************************************************************************/
FILE_DESCRIPTION((''),'2;1');
FILE_NAME(
'C:\\Documents and Settings\\johnsjc2\\Desktop\\AP209\\SimDM2010\\DevCM\\db\\d.DataRepository.FemTest'
,
'2012-06-05T10:29:55',
('ANONYMOUS USER'),
('ANONYMOUS ORGANISATION'),
'The EXPRESS Data Manager Version 5.01.0100.b04 : 12 Apr 2012',
'',
'');
FILE_SCHEMA(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF'));
ENDSEC;
DATA;
#637538233= APPLICATION_CONTEXT('SimDM');
#637538235= PRODUCT_DEFINITION_CONTEXT('assembly definition',#637538233,
'life cycle stage');
#637538237= PRODUCT_DEFINITION('default-id.0',$,#637538238,#637538242);
#637538238= PRODUCT_DEFINITION_FORMATION('default-id.0','',#637538239);
#637538239= PRODUCT('default-id.0','default-fea-part','',(#637538241));
#637538241= PRODUCT_CONTEXT('design_context',#637538233,'design_context'
);
#637538242= PRODUCT_DEFINITION_CONTEXT(
'product_definition_context_name_1',#637538243,'ANALYSIS-STAGE');
#637538243= APPLICATION_CONTEXT('FEA-ANALYSIS-DOMAIN');
#637538245= PRODUCT_DEFINITION_SHAPE('name',$,#637538237);
#637538246= SHAPE_DEFINITION_REPRESENTATION(#637538245,#637538247);
#637538247= POINT_REPRESENTATION('point_representation_name_1',(
#637538249,#637538357),#637538255);
#637538249= NODE_SET('node_set_name_1',(#637538251,#637538293,#637538297
,#637538301,#637538305,#637538309,#637538313,#637538317,#637538321,
#637538325,#637538329,#637538333,#637538337,#637538341,#637538345,
#637538349,#637538353));
#637538251= NODE('1',(#637538253),#637538255,#637538280);
#637538253= CARTESIAN_POINT('1',(0.,-2.,1.));
#637538255=
/* GEOMETRIC_REPRESENTATION_CONTEXT+GLOBAL_UNIT_ASSIGNED_CONTEXT */(
GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNIT_ASSIGNED_CONTEXT((
#637538258,#637538266,#637538269,#637538263,#637538261,#637538272,
#637538273,#637538276,#637538279,#637538265))REPRESENTATION_CONTEXT(
'CORD2R.1','3d'));
#637538258= SI_ENERGY_UNIT((#637538260,#637538262,#637538264),*,$,
.JOULE.);
#637538260= DERIVED_UNIT_ELEMENT(#637538261,1.);
#637538261= /* MASS_UNIT+SI_UNIT */(MASS_UNIT()NAMED_UNIT(*)SI_UNIT(
.KILO.,.GRAM.));
#637538262= DERIVED_UNIT_ELEMENT(#637538263,2.);
#637538263= /* LENGTH_UNIT+SI_UNIT */(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(
$,.METRE.));
#637538264= DERIVED_UNIT_ELEMENT(#637538265,-2.);
#637538265= /* SI_UNIT+TIME_UNIT */(NAMED_UNIT(*)SI_UNIT($,.SECOND.)
TIME_UNIT());
#637538266= SI_FORCE_UNIT((#637538260,#637538268,#637538264),*,$,
.NEWTON.);
#637538268= DERIVED_UNIT_ELEMENT(#637538263,1.);
#637538269= SI_FREQUENCY_UNIT((#637538271),*,$,.HERTZ.);
#637538271= DERIVED_UNIT_ELEMENT(#637538265,-1.);
#637538272= /* PLANE_ANGLE_UNIT+SI_UNIT */(NAMED_UNIT(*)PLANE_ANGLE_UNIT
()SI_UNIT($,.RADIAN.));
#637538273= SI_POWER_UNIT((#637538260,#637538262,#637538275),*,$,.WATT.
);
#637538275= DERIVED_UNIT_ELEMENT(#637538265,-3.);
#637538276= SI_PRESSURE_UNIT((#637538260,#637538278,#637538264),*,$,
.PASCAL.);
#637538278= DERIVED_UNIT_ELEMENT(#637538263,-1.);
#637538279= /* SI_UNIT+THERMODYNAMIC_TEMPERATURE_UNIT */(NAMED_UNIT(*)
SI_UNIT($,.DEGREE_CELSIUS.)THERMODYNAMIC_TEMPERATURE_UNIT());
#637538280= FEA_MODEL_3D('Identification',(#637538282),#637538289,
'NASTRAN BDF Converter v0.0.0',('NASTRAN'),'AnalysisModelType');
#637538282= FEA_AXIS2_PLACEMENT_3D('0',#637538283,#637538285,#637538287,
.CARTESIAN.,'FEA_BASIC_COORD_SYSTEM.0');
#637538283= CARTESIAN_POINT('',(0.,0.,0.));
#637538285= DIRECTION('AxisZ',(0.,0.,1.));
#637538287= DIRECTION('RefX',(1.,0.,0.));
#637538289=
/* GEOMETRIC_REPRESENTATION_CONTEXT+GLOBAL_UNIT_ASSIGNED_CONTEXT */(
GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNIT_ASSIGNED_CONTEXT((
#637538258,#637538266,#637538269,#637538263,#637538261,#637538272,
#637538273,#637538276,#637538279,#637538265))REPRESENTATION_CONTEXT(
'FEA_BASIC_COORD_SYSTEM.0','3d'));
#637538293= NODE('2',(#637538295),#637538255,#637538280);
#637538295= CARTESIAN_POINT('2',(1.,-2.,1.));
#637538297= NODE('3',(#637538299),#637538255,#637538280);
#637538299= CARTESIAN_POINT('3',(2.,-2.,1.));
#637538301= NODE('4',(#637538303),#637538255,#637538280);
#637538303= CARTESIAN_POINT('4',(3.,-2.,1.));
#637538305= NODE('5',(#637538307),#637538255,#637538280);
#637538307= CARTESIAN_POINT('5',(4.,-2.,1.));
#637538309= NODE('6',(#637538311),#637538255,#637538280);
#637538311= CARTESIAN_POINT('6',(5.,-2.,1.));
#637538313= NODE('7',(#637538315),#637538255,#637538280);
#637538315= CARTESIAN_POINT('7',(6.,-2.,1.));
#637538317= NODE('8',(#637538319),#637538255,#637538280);
#637538319= CARTESIAN_POINT('8',(7.,-2.,1.));
#637538321= NODE('9',(#637538323),#637538255,#637538280);
#637538323= CARTESIAN_POINT('9',(8.,-2.,1.));
#637538325= NODE('10',(#637538327),#637538255,#637538280);
#637538327= CARTESIAN_POINT('10',(9.,-2.,1.));
#637538329= NODE('11',(#637538331),#637538255,#637538280);
#637538331= CARTESIAN_POINT('11',(10.,-2.,1.));
#637538333= NODE('12',(#637538335),#637538255,#637538280);
#637538335= CARTESIAN_POINT('12',(11.,-2.,1.));
#637538337= NODE('13',(#637538339),#637538255,#637538280);
#637538339= CARTESIAN_POINT('13',(12.,-2.,1.));
#637538341= NODE('14',(#637538343),#637538255,#637538280);
#637538343= CARTESIAN_POINT('14',(13.,-2.,1.));
#637538345= NODE('15',(#637538347),#637538255,#637538280);
#637538347= CARTESIAN_POINT('15',(14.,-2.,1.));
#637538349= NODE('16',(#637538351),#637538255,#637538280);
#637538351= CARTESIAN_POINT('16',(15.,-2.,1.));
#637538353= NODE('17',(#637538355),#637538255,#637538280);
#637538355= CARTESIAN_POINT('17',(16.,-2.,1.));
#637538357= FEA_AXIS2_PLACEMENT_3D('1',#637538358,#637538360,#637538362,
.CARTESIAN.,'CORD2R.1');
#637538358= CARTESIAN_POINT('',(0.,0.,0.));
#637538360= DIRECTION('AxisZ',(0.,0.,1.));
#637538362= DIRECTION('RefX',(1.,0.,0.));
#637538364= FEA_MODEL_DEFINITION('fea_model_definition_id_1',$,
#637538245,.U.);
#637538365= STRUCTURAL_RESPONSE_PROPERTY(
'structural_response_property_id_1',$,#637538364);
#637538366= STRUCTURAL_RESPONSE_PROPERTY_DEFINITION_REPRESENTATION(
#637538365,#637538280);
#637538367= NAME_ATTRIBUTE('',#637538237);
#637538368= APPLIED_CLASSIFICATION_ASSIGNMENT(#637538369,#637538370,(
#637538237));
#637538369= GROUP('default-gpvv-type',$);
#637538370= CLASSIFICATION_ROLE('view_type',$);
#637538372= APPLIED_IDENTIFICATION_ASSIGNMENT('default-id.0',#637538373,
(#637538238,#637538237,#637538239));
#637538373= IDENTIFICATION_ROLE('default-role',$);
#637538375= APPLIED_ORGANIZATION_ASSIGNMENT(#637538376,#637538377,(
#637538372));
#637538376= ORGANIZATION($,'default-organization',$);
#637538377= ORGANIZATION_ROLE('id context');
#637538379= APPLIED_CLASSIFICATION_ASSIGNMENT(#637538380,#637538381,(
#637538372));
#637538380= GROUP('id',$);
#637538381= CLASSIFICATION_ROLE('',$);
#637538383= APPLICATION_PROTOCOL_DEFINITION('status',
'ap203_configuration_controlled_3d_design_of_mechanical_parts_and_assemblies'
,2011,#637538233);
#637538384= DESCRIPTION_ATTRIBUTE('SimDM',#637538233);
#637538385= ID_ATTRIBUTE('SimDM',#637538233);
#637538386= DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
#637538387= PRODUCT_RELATED_PRODUCT_CATEGORY('document',$,());
#637538389= PRODUCT_RELATED_PRODUCT_CATEGORY('product',$,(#637538239));
#637538391= DESCRIPTION_ATTRIBUTE('',#637538243);
#637538392= CARTESIAN_POINT('0',(0.,0.,0.));
#637538394= DUMMY_NODE('0',(#637538392),#637538289,#637538280);
#637538396= ITEM_DEFINED_TRANSFORMATION('','',#637538282,#637538357);
#637538397= REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION('','',
#637538280,#637538247,#637538396);
#637538398= ELEMENT_MATERIAL('MAT1.1','Fea Material',(#637538400,
#637538415,#637538420));
#637538400= FEA_MATERIAL_PROPERTY_REPRESENTATION(#637538401,#637538403,
#637538407);
#637538401= MATERIAL_PROPERTY('MAT1.1.0',$,#637538402);
#637538402= CHARACTERIZED_OBJECT('material_property',$);
#637538403= REPRESENTATION('representation_id_2',(#637538405),#637538289
);
#637538405= FEA_LINEAR_ELASTICITY('',FEA_ISOTROPIC_SYMMETRIC_TENSOR4_3D(
(10000000.,0.33)));
#637538407= DATA_ENVIRONMENT('DATA_ENV','Property_conditions',(
#637538409));
#637538409= PROPERTY_DEFINITION_REPRESENTATION(#637538410,#637538412);
#637538410= PROPERTY_DEFINITION('Material Property Definition',$,
#637538411);
#637538411= CHARACTERIZED_OBJECT('property',$);
#637538412= REPRESENTATION('representation_id_1',(#637538414),#637538289
);
#637538414= MEASURE_REPRESENTATION_ITEM('representation_item_name_1',
CONTEXT_DEPENDENT_MEASURE(70.),#637538279);
#637538415= FEA_MATERIAL_PROPERTY_REPRESENTATION(#637538416,#637538417,
#637538407);
#637538416= MATERIAL_PROPERTY('MAT1.1.1',$,#637538402);
#637538417= REPRESENTATION('representation_id_3',(#637538419),#637538289
);
#637538419= FEA_MASS_DENSITY('',0.000254);
#637538420= FEA_MATERIAL_PROPERTY_REPRESENTATION(#637538421,#637538422,
#637538407);
#637538421= MATERIAL_PROPERTY('MAT1.1.2',$,#637538402);
#637538422= REPRESENTATION('representation_id_4',(#637538424),#637538289
);
#637538424= FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION('',
ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
#637538425= CURVE_3D_ELEMENT_REPRESENTATION('16',(#637538427,#637538431)
,#637538433,(#637538349,#637538353),#637538280,#637538437,#637538441,
#637538398);
#637538427= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538428
);
#637538428= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538429);
#637538429= DIRECTION('undefined',(1.,0.,0.));
#637538431= FEA_PARAMETRIC_POINT('',(1.,0.,0.));
#637538433= PARAMETRIC_REPRESENTATION_CONTEXT(
'parametric_representation_context','parametric');
#637538437= CURVE_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,'LINEAR_CURVE.CROD',((
ENUMERATED_CURVE_ELEMENT_PURPOSE(.AXIAL.)),(
ENUMERATED_CURVE_ELEMENT_PURPOSE(.TORSION.))));
#637538441= CURVE_3D_ELEMENT_PROPERTY('PROD.1','',(#637538443),(
#637538454,#637538456),(#637538459,#637538462));
#637538443= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538444,#637538445,
#637538447);
#637538444= CURVE_ELEMENT_LOCATION(#637538431);
#637538445= EULER_ANGLES((0.,0.,0.));
#637538447= CURVE_ELEMENT_SECTION_DERIVED_DEFINITIONS('',0.,8.,(
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)),(0.,0.,0.),
0.,CONTEXT_DEPENDENT_MEASURE(0.),(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)),(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)),(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.));
#637538454= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538456= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538459= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538461));
#637538461= CURVE_ELEMENT_END_RELEASE_PACKET(
ENUMERATED_CURVE_ELEMENT_FREEDOM(.NONE.),0.);
#637538462= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538461));
#637538464= CURVE_3D_ELEMENT_REPRESENTATION('15',(#637538427,#637538431)
,#637538433,(#637538345,#637538349),#637538280,#637538437,#637538441,
#637538398);
#637538467= CURVE_3D_ELEMENT_REPRESENTATION('14',(#637538427,#637538431)
,#637538433,(#637538341,#637538345),#637538280,#637538437,#637538441,
#637538398);
#637538470= CURVE_3D_ELEMENT_REPRESENTATION('13',(#637538427,#637538431)
,#637538433,(#637538337,#637538341),#637538280,#637538437,#637538441,
#637538398);
#637538473= CURVE_3D_ELEMENT_REPRESENTATION('12',(#637538427,#637538431)
,#637538433,(#637538333,#637538337),#637538280,#637538437,#637538441,
#637538398);
#637538476= CURVE_3D_ELEMENT_REPRESENTATION('11',(#637538427,#637538431)
,#637538433,(#637538329,#637538333),#637538280,#637538437,#637538441,
#637538398);
#637538479= CURVE_3D_ELEMENT_REPRESENTATION('10',(#637538427,#637538431)
,#637538433,(#637538325,#637538329),#637538280,#637538437,#637538441,
#637538398);
#637538482= CURVE_3D_ELEMENT_REPRESENTATION('9',(#637538427,#637538431),
#637538433,(#637538321,#637538325),#637538280,#637538437,#637538441,
#637538398);
#637538485= CURVE_3D_ELEMENT_REPRESENTATION('8',(#637538427,#637538431),
#637538433,(#637538317,#637538321),#637538280,#637538437,#637538441,
#637538398);
#637538488= CURVE_3D_ELEMENT_REPRESENTATION('7',(#637538427,#637538431),
#637538433,(#637538313,#637538317),#637538280,#637538437,#637538441,
#637538398);
#637538491= CURVE_3D_ELEMENT_REPRESENTATION('6',(#637538427,#637538431),
#637538433,(#637538309,#637538313),#637538280,#637538437,#637538441,
#637538398);
#637538494= CURVE_3D_ELEMENT_REPRESENTATION('5',(#637538427,#637538431),
#637538433,(#637538305,#637538309),#637538280,#637538437,#637538441,
#637538398);
#637538497= CURVE_3D_ELEMENT_REPRESENTATION('4',(#637538427,#637538431),
#637538433,(#637538301,#637538305),#637538280,#637538437,#637538441,
#637538398);
#637538500= CURVE_3D_ELEMENT_REPRESENTATION('3',(#637538427,#637538431),
#637538433,(#637538297,#637538301),#637538280,#637538437,#637538441,
#637538398);
#637538503= CURVE_3D_ELEMENT_REPRESENTATION('2',(#637538427,#637538431),
#637538433,(#637538293,#637538297),#637538280,#637538437,#637538441,
#637538398);
#637538506= CURVE_3D_ELEMENT_REPRESENTATION('1',(#637538427,#637538431),
#637538433,(#637538251,#637538293),#637538280,#637538437,#637538441,
#637538398);
#637538509= ID_ATTRIBUTE('MAT1.1',#637538410);
#637538510= DESCRIPTION_ATTRIBUTE('Elasticity',#637538400);
#637538511= DESCRIPTION_ATTRIBUTE('MassDensity',#637538415);
#637538512= DESCRIPTION_ATTRIBUTE('TangentCTE',#637538420);
#637538513= CONTROL(#637538280,'Control.0','FemConvert',
'MSC.NASTRAN JOB CREATED ON 06-JUL-00 AT 06:14:07',('<SOL>101</SOL>',
'TIME 600','CEND','<GLOBALCASE>0</GLOBALCASE>','<SUBCASE>1</SUBCASE>',
'<SUBCASE>2</SUBCASE>','ENDDATA'),('NASTRAN'));
#637538516= CONTROL_LINEAR_STATIC_ANALYSIS_STEP(#637538513,
'STATIC STEP 2',2,#637538517,'',#637538518);
#637538517= SPECIFIED_STATE('STEP DEFAULT','default_initial_state');
#637538518= CONTROL_LINEAR_STATIC_LOAD_INCREMENT_PROCESS('STATIC STEP 2'
,'',#637538519);
#637538519= SPECIFIED_STATE('Step 2 Base Specified State',
'Relating Specified State');
#637538520= OUTPUT_REQUEST_STATE('Step 2 Output Request State','',(
#637538516));
#637538522= NODAL_FREEDOM_VALUES(#637538520,#637538523,#637538282,
#637538525,(UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.)));
#637538523= NODE_GROUP('','ALL',#637538280,(#637538251,#637538293,
#637538297,#637538301,#637538305,#637538309,#637538313,#637538317,
#637538321,#637538325,#637538329,#637538333,#637538337,#637538341,
#637538345,#637538349,#637538353));
#637538525= FREEDOMS_LIST((ENUMERATED_DEGREE_OF_FREEDOM(.X_TRANSLATION.)
,ENUMERATED_DEGREE_OF_FREEDOM(.Y_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.Z_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.X_ROTATION.),ENUMERATED_DEGREE_OF_FREEDOM(
.Y_ROTATION.),ENUMERATED_DEGREE_OF_FREEDOM(.Z_ROTATION.)));
#637538528= SINGLE_POINT_CONSTRAINT_ELEMENT('SPC1_1.0',(#637538530,
#637538516),#637538251,#637538282,(#637538534,#637538535,#637538536),''
);
#637538530= CONTROL_LINEAR_STATIC_ANALYSIS_STEP(#637538513,
'STATIC STEP 1',1,#637538517,'',#637538531);
#637538531= CONTROL_LINEAR_STATIC_LOAD_INCREMENT_PROCESS('STATIC STEP 1'
,'',#637538532);
#637538532= SPECIFIED_STATE('Step 1 Base Specified State',
'Relating Specified State');
#637538534= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.X_TRANSLATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538535= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.Y_TRANSLATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538536= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.Z_TRANSLATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538537= SINGLE_POINT_CONSTRAINT_ELEMENT_VALUES(#637538538,#637538528
,#637538539,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)
,CONTEXT_DEPENDENT_MEASURE(0.)));
#637538538= SPECIFIED_STATE('SPCVALSTATE_1_2','');
#637538539= FREEDOMS_LIST((ENUMERATED_DEGREE_OF_FREEDOM(.X_TRANSLATION.)
,ENUMERATED_DEGREE_OF_FREEDOM(.Y_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.Z_TRANSLATION.)));
#637538542= SPECIFIED_STATE('SPCCASE_2_2_1','Aggregator SPC 2 Step 1');
#637538543= STATE_RELATIONSHIP(
'SPCCASE_2_2_1 is related to Step 1 Base Specified State','',#637538532,
#637538542);
#637538544= STATE_RELATIONSHIP(
'SPCVALSTATE_1_2 is related to SPCCASE_2_2_1','',#637538542,#637538538);
#637538545= LINEARLY_SUPERIMPOSED_STATE('LOADSTATECOMBINATION_2',
'Overall Factor Combined State');
#637538547= STATE_RELATIONSHIP(
'LOADSTATECOMBINATION_2 is related to Step 2 Base Specified State','',
#637538519,#637538545);
#637538548= STATE_RELATIONSHIP(
'LOADSTATECOMBINATION_2 is related to Step 1 Base Specified State','',
#637538532,#637538545);
#637538549= STATE_COMPONENT('OverallComp','',#637538545,1.);
#637538551= STATE_RELATIONSHIP(
'LOADSTATEITEM_1 is related to OverallComp','',#637538549,#637538552);
#637538552= LINEARLY_SUPERIMPOSED_STATE('LOADSTATEITEM_1',
'Item Factor State');
#637538553= SPECIFIED_STATE('LOADSTATECORE_1',
'Core Loads Specified State');
#637538554= STATE_RELATIONSHIP(
'LOADSTATECORE_1 is related to ItemComp_2_1','',#637538555,#637538553);
#637538555= STATE_COMPONENT('ItemComp_2_1','',#637538552,1.);
#637538557= NODAL_FREEDOM_ACTION_DEFINITION(#637538553,#637538353,
#637538282,#637538558,(CONTEXT_DEPENDENT_MEASURE(-1000.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538558= FREEDOMS_LIST((ENUMERATED_DEGREE_OF_FREEDOM(.X_TRANSLATION.)
,ENUMERATED_DEGREE_OF_FREEDOM(.Y_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.Z_TRANSLATION.)));
#637538561= OUTPUT_REQUEST_STATE('Step 1 Output Request State','',(
#637538530));
#637538563= NODAL_FREEDOM_VALUES(#637538561,#637538523,#637538282,
#637538525,(UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.)));
#637538565= ID_ATTRIBUTE('ALL',#637538523);
#637538566= SPECIFIED_STATE('SPCCASE_2_2_2','Aggregator SPC 2 Step 2');
#637538567= STATE_RELATIONSHIP(
'SPCCASE_2_2_2 is related to Step 2 Base Specified State','',#637538519,
#637538566);
ENDSEC;
END-ISO-10303-21;
-559
View File
@@ -1,559 +0,0 @@
ISO-10303-21;
HEADER;
/******************************************************************************************
* STEP Physical File produced by: The EXPRESS Data Manager Version 5.01.0100.b03 SimDM : 25 Apr 2012
* Module: EDMstepFileFactory/EDMstandAlone
* Creation date: Mon Jul 09 13:15:28 2012
* Host: AER4WA926171Z
* Database: C:\Documents and Settings\johnsjc2\Desktop\AP209\SimDM2010\DevCM\db\d
* Database version: 5207
* Database creation date: Wed Apr 18 15:33:55 2012
* Schema: AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF
* Model: DataRepository.FemTest
* Model creation date: Mon Jul 09 13:15:28 2012
* Header model:
* EDMuser: superuser
* EDMgroup:
* License ID and type: 5565 : Project license. Expiry date: 31 Dec 2012
* EDMstepFileFactory options: 010000000
******************************************************************************************/
FILE_DESCRIPTION((''),'2;1');
FILE_NAME(
'C:\\Documents and Settings\\johnsjc2\\Desktop\\AP209\\SimDM2010\\DevCM\\db\\d.DataRepository.FemTest'
,
'2012-07-09T13:15:28',
('ANONYMOUS USER'),
('ANONYMOUS ORGANISATION'),
'The EXPRESS Data Manager Version 5.01.0100.b03 SimDM : 25 Apr 2012',
'',
'');
FILE_SCHEMA(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF'));
ENDSEC;
DATA;
#637538235= APPLICATION_CONTEXT('SimDM');
#637538237= PRODUCT_DEFINITION_CONTEXT('assembly definition',#637538235,
'life cycle stage');
#637538239= PRODUCT_DEFINITION('default-id.0',$,#637538240,#637538244);
#637538240= PRODUCT_DEFINITION_FORMATION('default-id.0','',#637538241);
#637538241= PRODUCT('default-id.0','default-fea-part','',(#637538243));
#637538243= PRODUCT_CONTEXT('design_context',#637538235,'design_context'
);
#637538244= PRODUCT_DEFINITION_CONTEXT(
'product_definition_context_name_1',#637538245,'ANALYSIS-STAGE');
#637538245= APPLICATION_CONTEXT('FEA-ANALYSIS-DOMAIN');
#637538247= PRODUCT_DEFINITION_SHAPE('name',$,#637538239);
#637538248= SHAPE_DEFINITION_REPRESENTATION(#637538247,#637538249);
#637538249= POINT_REPRESENTATION('point_representation_name_1',(
#637538251,#637538359),#637538257);
#637538251= NODE_SET('node_set_name_1',(#637538253,#637538295,#637538299
,#637538303,#637538307,#637538311,#637538315,#637538319,#637538323,
#637538327,#637538331,#637538335,#637538339,#637538343,#637538347,
#637538351,#637538355));
#637538253= NODE('1',(#637538255),#637538257,#637538282);
#637538255= CARTESIAN_POINT('1',(0.,-2.,1.));
#637538257=
/* GEOMETRIC_REPRESENTATION_CONTEXT+GLOBAL_UNIT_ASSIGNED_CONTEXT */(
GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNIT_ASSIGNED_CONTEXT((
#637538260,#637538268,#637538271,#637538265,#637538263,#637538274,
#637538275,#637538278,#637538281,#637538267))REPRESENTATION_CONTEXT(
'CORD2R.1','3d'));
#637538260= SI_ENERGY_UNIT((#637538262,#637538264,#637538266),*,$,
.JOULE.);
#637538262= DERIVED_UNIT_ELEMENT(#637538263,1.);
#637538263= /* MASS_UNIT+SI_UNIT */(MASS_UNIT()NAMED_UNIT(*)SI_UNIT(
.KILO.,.GRAM.));
#637538264= DERIVED_UNIT_ELEMENT(#637538265,2.);
#637538265= /* LENGTH_UNIT+SI_UNIT */(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(
$,.METRE.));
#637538266= DERIVED_UNIT_ELEMENT(#637538267,-2.);
#637538267= /* SI_UNIT+TIME_UNIT */(NAMED_UNIT(*)SI_UNIT($,.SECOND.)
TIME_UNIT());
#637538268= SI_FORCE_UNIT((#637538262,#637538270,#637538266),*,$,
.NEWTON.);
#637538270= DERIVED_UNIT_ELEMENT(#637538265,1.);
#637538271= SI_FREQUENCY_UNIT((#637538273),*,$,.HERTZ.);
#637538273= DERIVED_UNIT_ELEMENT(#637538267,-1.);
#637538274= /* PLANE_ANGLE_UNIT+SI_UNIT */(NAMED_UNIT(*)PLANE_ANGLE_UNIT
()SI_UNIT($,.RADIAN.));
#637538275= SI_POWER_UNIT((#637538262,#637538264,#637538277),*,$,.WATT.
);
#637538277= DERIVED_UNIT_ELEMENT(#637538267,-3.);
#637538278= SI_PRESSURE_UNIT((#637538262,#637538280,#637538266),*,$,
.PASCAL.);
#637538280= DERIVED_UNIT_ELEMENT(#637538265,-1.);
#637538281= /* SI_UNIT+THERMODYNAMIC_TEMPERATURE_UNIT */(NAMED_UNIT(*)
SI_UNIT($,.DEGREE_CELSIUS.)THERMODYNAMIC_TEMPERATURE_UNIT());
#637538282= FEA_MODEL_3D('Identification',(#637538284),#637538291,
'NASTRAN BDF Converter v0.0.0',('NASTRAN'),'AnalysisModelType');
#637538284= FEA_AXIS2_PLACEMENT_3D('0',#637538285,#637538287,#637538289,
.CARTESIAN.,'FEA_BASIC_COORD_SYSTEM.0');
#637538285= CARTESIAN_POINT('',(0.,0.,0.));
#637538287= DIRECTION('AxisZ',(0.,0.,1.));
#637538289= DIRECTION('RefX',(1.,0.,0.));
#637538291=
/* GEOMETRIC_REPRESENTATION_CONTEXT+GLOBAL_UNIT_ASSIGNED_CONTEXT */(
GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNIT_ASSIGNED_CONTEXT((
#637538260,#637538268,#637538271,#637538265,#637538263,#637538274,
#637538275,#637538278,#637538281,#637538267))REPRESENTATION_CONTEXT(
'FEA_BASIC_COORD_SYSTEM.0','3d'));
#637538295= NODE('2',(#637538297),#637538257,#637538282);
#637538297= CARTESIAN_POINT('2',(1.,-2.,1.));
#637538299= NODE('3',(#637538301),#637538257,#637538282);
#637538301= CARTESIAN_POINT('3',(2.,-2.,1.));
#637538303= NODE('4',(#637538305),#637538257,#637538282);
#637538305= CARTESIAN_POINT('4',(3.,-2.,1.));
#637538307= NODE('5',(#637538309),#637538257,#637538282);
#637538309= CARTESIAN_POINT('5',(4.,-2.,1.));
#637538311= NODE('6',(#637538313),#637538257,#637538282);
#637538313= CARTESIAN_POINT('6',(5.,-2.,1.));
#637538315= NODE('7',(#637538317),#637538257,#637538282);
#637538317= CARTESIAN_POINT('7',(6.,-2.,1.));
#637538319= NODE('8',(#637538321),#637538257,#637538282);
#637538321= CARTESIAN_POINT('8',(7.,-2.,1.));
#637538323= NODE('9',(#637538325),#637538257,#637538282);
#637538325= CARTESIAN_POINT('9',(8.,-2.,1.));
#637538327= NODE('10',(#637538329),#637538257,#637538282);
#637538329= CARTESIAN_POINT('10',(9.,-2.,1.));
#637538331= NODE('11',(#637538333),#637538257,#637538282);
#637538333= CARTESIAN_POINT('11',(10.,-2.,1.));
#637538335= NODE('12',(#637538337),#637538257,#637538282);
#637538337= CARTESIAN_POINT('12',(11.,-2.,1.));
#637538339= NODE('13',(#637538341),#637538257,#637538282);
#637538341= CARTESIAN_POINT('13',(12.,-2.,1.));
#637538343= NODE('14',(#637538345),#637538257,#637538282);
#637538345= CARTESIAN_POINT('14',(13.,-2.,1.));
#637538347= NODE('15',(#637538349),#637538257,#637538282);
#637538349= CARTESIAN_POINT('15',(14.,-2.,1.));
#637538351= NODE('16',(#637538353),#637538257,#637538282);
#637538353= CARTESIAN_POINT('16',(15.,-2.,1.));
#637538355= NODE('17',(#637538357),#637538257,#637538282);
#637538357= CARTESIAN_POINT('17',(16.,-2.,1.));
#637538359= FEA_AXIS2_PLACEMENT_3D('1',#637538360,#637538362,#637538364,
.CARTESIAN.,'CORD2R.1');
#637538360= CARTESIAN_POINT('',(0.,0.,0.));
#637538362= DIRECTION('AxisZ',(0.,0.,1.));
#637538364= DIRECTION('RefX',(1.,0.,0.));
#637538366= FEA_MODEL_DEFINITION('fea_model_definition_id_1',$,
#637538247,.U.);
#637538367= STRUCTURAL_RESPONSE_PROPERTY(
'structural_response_property_id_1',$,#637538366);
#637538368= STRUCTURAL_RESPONSE_PROPERTY_DEFINITION_REPRESENTATION(
#637538367,#637538282);
#637538369= NAME_ATTRIBUTE('',#637538239);
#637538370= APPLIED_CLASSIFICATION_ASSIGNMENT(#637538371,#637538372,(
#637538239));
#637538371= GROUP('default-gpvv-type',$);
#637538372= CLASSIFICATION_ROLE('view_type',$);
#637538374= APPLIED_IDENTIFICATION_ASSIGNMENT('default-id.0',#637538375,
(#637538240,#637538239,#637538241));
#637538375= IDENTIFICATION_ROLE('default-role',$);
#637538377= APPLIED_ORGANIZATION_ASSIGNMENT(#637538378,#637538379,(
#637538374));
#637538378= ORGANIZATION($,'default-organization',$);
#637538379= ORGANIZATION_ROLE('id context');
#637538381= APPLIED_CLASSIFICATION_ASSIGNMENT(#637538382,#637538383,(
#637538374));
#637538382= GROUP('id',$);
#637538383= CLASSIFICATION_ROLE('',$);
#637538385= APPLICATION_PROTOCOL_DEFINITION('status',
'ap203_configuration_controlled_3d_design_of_mechanical_parts_and_assemblies'
,2011,#637538235);
#637538386= DESCRIPTION_ATTRIBUTE('SimDM',#637538235);
#637538387= ID_ATTRIBUTE('SimDM',#637538235);
#637538388= DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
#637538389= PRODUCT_RELATED_PRODUCT_CATEGORY('document',$,());
#637538391= PRODUCT_RELATED_PRODUCT_CATEGORY('product',$,(#637538241));
#637538393= DESCRIPTION_ATTRIBUTE('',#637538245);
#637538394= CARTESIAN_POINT('0',(0.,0.,0.));
#637538396= DUMMY_NODE('0',(#637538394),#637538291,#637538282);
#637538398= ITEM_DEFINED_TRANSFORMATION('','',#637538284,#637538359);
#637538399= REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION('','',
#637538282,#637538249,#637538398);
#637538400= ELEMENT_MATERIAL('MAT1.1','Fea Material',(#637538402,
#637538417,#637538422));
#637538402= FEA_MATERIAL_PROPERTY_REPRESENTATION(#637538403,#637538405,
#637538409);
#637538403= MATERIAL_PROPERTY('MAT1.1.0',$,#637538404);
#637538404= CHARACTERIZED_OBJECT('material_property',$);
#637538405= REPRESENTATION('representation_id_2',(#637538407),#637538291
);
#637538407= FEA_LINEAR_ELASTICITY('',FEA_ISOTROPIC_SYMMETRIC_TENSOR4_3D(
(10000000.,0.33)));
#637538409= DATA_ENVIRONMENT('DATA_ENV','Property_conditions',(
#637538411));
#637538411= PROPERTY_DEFINITION_REPRESENTATION(#637538412,#637538414);
#637538412= PROPERTY_DEFINITION('Material Property Definition',$,
#637538413);
#637538413= CHARACTERIZED_OBJECT('property',$);
#637538414= REPRESENTATION('representation_id_1',(#637538416),#637538291
);
#637538416= MEASURE_REPRESENTATION_ITEM('representation_item_name_1',
CONTEXT_DEPENDENT_MEASURE(70.),#637538281);
#637538417= FEA_MATERIAL_PROPERTY_REPRESENTATION(#637538418,#637538419,
#637538409);
#637538418= MATERIAL_PROPERTY('MAT1.1.1',$,#637538404);
#637538419= REPRESENTATION('representation_id_3',(#637538421),#637538291
);
#637538421= FEA_MASS_DENSITY('',0.000254);
#637538422= FEA_MATERIAL_PROPERTY_REPRESENTATION(#637538423,#637538424,
#637538409);
#637538423= MATERIAL_PROPERTY('MAT1.1.2',$,#637538404);
#637538424= REPRESENTATION('representation_id_4',(#637538426),#637538291
);
#637538426= FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION('',
ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
#637538427= CURVE_3D_ELEMENT_REPRESENTATION('16',(#637538429,#637538433)
,#637538435,(#637538351,#637538355),#637538282,#637538439,#637538443,
#637538400);
#637538429= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538430
);
#637538430= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538431);
#637538431= DIRECTION('undefined',(1.,0.,0.));
#637538433= FEA_PARAMETRIC_POINT('',(1.,0.,0.));
#637538435= PARAMETRIC_REPRESENTATION_CONTEXT(
'parametric_representation_context','parametric');
#637538439= CURVE_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,'LINEAR_CURVE.CROD',((
ENUMERATED_CURVE_ELEMENT_PURPOSE(.AXIAL.)),(
ENUMERATED_CURVE_ELEMENT_PURPOSE(.TORSION.))));
#637538443= CURVE_3D_ELEMENT_PROPERTY('PROD.1','',(#637538445),(
#637538456,#637538458),(#637538461,#637538464));
#637538445= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538446,#637538447,
#637538449);
#637538446= CURVE_ELEMENT_LOCATION(#637538433);
#637538447= EULER_ANGLES((0.,0.,0.));
#637538449= CURVE_ELEMENT_SECTION_DERIVED_DEFINITIONS('',0.,8.,(
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)),(0.,0.,0.),
0.,CONTEXT_DEPENDENT_MEASURE(0.),(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)),(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)),(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.));
#637538456= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538458= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538461= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538463));
#637538463= CURVE_ELEMENT_END_RELEASE_PACKET(
ENUMERATED_CURVE_ELEMENT_FREEDOM(.NONE.),0.);
#637538464= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538463));
#637538466= CURVE_3D_ELEMENT_REPRESENTATION('15',(#637538429,#637538433)
,#637538435,(#637538347,#637538351),#637538282,#637538439,#637538443,
#637538400);
#637538469= CURVE_3D_ELEMENT_REPRESENTATION('14',(#637538429,#637538433)
,#637538435,(#637538343,#637538347),#637538282,#637538439,#637538443,
#637538400);
#637538472= CURVE_3D_ELEMENT_REPRESENTATION('13',(#637538429,#637538433)
,#637538435,(#637538339,#637538343),#637538282,#637538439,#637538443,
#637538400);
#637538475= CURVE_3D_ELEMENT_REPRESENTATION('12',(#637538429,#637538433)
,#637538435,(#637538335,#637538339),#637538282,#637538439,#637538443,
#637538400);
#637538478= CURVE_3D_ELEMENT_REPRESENTATION('11',(#637538429,#637538433)
,#637538435,(#637538331,#637538335),#637538282,#637538439,#637538443,
#637538400);
#637538481= CURVE_3D_ELEMENT_REPRESENTATION('10',(#637538429,#637538433)
,#637538435,(#637538327,#637538331),#637538282,#637538439,#637538443,
#637538400);
#637538484= CURVE_3D_ELEMENT_REPRESENTATION('9',(#637538429,#637538433),
#637538435,(#637538323,#637538327),#637538282,#637538439,#637538443,
#637538400);
#637538487= CURVE_3D_ELEMENT_REPRESENTATION('8',(#637538429,#637538433),
#637538435,(#637538319,#637538323),#637538282,#637538439,#637538443,
#637538400);
#637538490= CURVE_3D_ELEMENT_REPRESENTATION('7',(#637538429,#637538433),
#637538435,(#637538315,#637538319),#637538282,#637538439,#637538443,
#637538400);
#637538493= CURVE_3D_ELEMENT_REPRESENTATION('6',(#637538429,#637538433),
#637538435,(#637538311,#637538315),#637538282,#637538439,#637538443,
#637538400);
#637538496= CURVE_3D_ELEMENT_REPRESENTATION('5',(#637538429,#637538433),
#637538435,(#637538307,#637538311),#637538282,#637538439,#637538443,
#637538400);
#637538499= CURVE_3D_ELEMENT_REPRESENTATION('4',(#637538429,#637538433),
#637538435,(#637538303,#637538307),#637538282,#637538439,#637538443,
#637538400);
#637538502= CURVE_3D_ELEMENT_REPRESENTATION('3',(#637538429,#637538433),
#637538435,(#637538299,#637538303),#637538282,#637538439,#637538443,
#637538400);
#637538505= CURVE_3D_ELEMENT_REPRESENTATION('2',(#637538429,#637538433),
#637538435,(#637538295,#637538299),#637538282,#637538439,#637538443,
#637538400);
#637538508= CURVE_3D_ELEMENT_REPRESENTATION('1',(#637538429,#637538433),
#637538435,(#637538253,#637538295),#637538282,#637538439,#637538443,
#637538400);
#637538511= ID_ATTRIBUTE('MAT1.1',#637538412);
#637538512= DESCRIPTION_ATTRIBUTE('Elasticity',#637538402);
#637538513= DESCRIPTION_ATTRIBUTE('MassDensity',#637538417);
#637538514= DESCRIPTION_ATTRIBUTE('TangentCTE',#637538422);
#637538515= CONTROL(#637538282,'Control.0','FemConvert',
'MSC.NASTRAN JOB CREATED ON 06-JUL-00 AT 06:14:07',('<SOL>101</SOL>',
'TIME 600','CEND','<GLOBALCASE>0</GLOBALCASE>','<SUBCASE>1</SUBCASE>',
'<SUBCASE>2</SUBCASE>','ENDDATA'),('NASTRAN'));
#637538518= RESULT_LINEAR_STATIC_ANALYSIS_SUB_STEP(#637538515,#637538519
,#637538520);
#637538519= RESULT('Result.0','FemConvert',
'MSC.NASTRAN JOB CREATED ON 06-JUL-00 AT 06:14:07');
#637538520= CALCULATED_STATE('Calculated State for Step 2','');
#637538521= CONTROL_RESULT_RELATIONSHIP(#637538522,#637538518);
#637538522= CONTROL_LINEAR_STATIC_ANALYSIS_STEP(#637538515,
'STATIC STEP 2',2,#637538523,'',#637538524);
#637538523= SPECIFIED_STATE('STEP DEFAULT','default_initial_state');
#637538524= CONTROL_LINEAR_STATIC_LOAD_INCREMENT_PROCESS('STATIC STEP 2'
,'',#637538525);
#637538525= SPECIFIED_STATE('Step 2 Base Specified State',
'Relating Specified State');
#637538526= RESULT_LINEAR_STATIC_ANALYSIS_SUB_STEP(#637538515,#637538519
,#637538527);
#637538527= CALCULATED_STATE('Calculated State for Step 1','');
#637538528= CONTROL_RESULT_RELATIONSHIP(#637538529,#637538526);
#637538529= CONTROL_LINEAR_STATIC_ANALYSIS_STEP(#637538515,
'STATIC STEP 1',1,#637538523,'',#637538530);
#637538530= CONTROL_LINEAR_STATIC_LOAD_INCREMENT_PROCESS('STATIC STEP 1'
,'',#637538531);
#637538531= SPECIFIED_STATE('Step 1 Base Specified State',
'Relating Specified State');
#637538532= SPECIFIED_STATE('SPCCASE_2_2_1','Aggregator SPC 2 Step 1');
#637538533= STATE_RELATIONSHIP(
'SPCCASE_2_2_1 is related to Step 1 Base Specified State','',#637538531,
#637538532);
#637538534= STATE_RELATIONSHIP(
'SPCVALSTATE_1_2 is related to SPCCASE_2_2_1','',#637538532,#637538535);
#637538535= SPECIFIED_STATE('SPCVALSTATE_1_2','');
#637538536= SINGLE_POINT_CONSTRAINT_ELEMENT_VALUES(#637538535,#637538537
,#637538543,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)
,CONTEXT_DEPENDENT_MEASURE(0.)));
#637538537= SINGLE_POINT_CONSTRAINT_ELEMENT('SPC1_1.0',(#637538529,
#637538522),#637538253,#637538284,(#637538540,#637538541,#637538542),''
);
#637538540= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.X_TRANSLATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538541= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.Y_TRANSLATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538542= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.Z_TRANSLATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538543= FREEDOMS_LIST((ENUMERATED_DEGREE_OF_FREEDOM(.X_TRANSLATION.)
,ENUMERATED_DEGREE_OF_FREEDOM(.Y_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.Z_TRANSLATION.)));
#637538546= LINEARLY_SUPERIMPOSED_STATE('LOADSTATECOMBINATION_2',
'Overall Factor Combined State');
#637538548= STATE_RELATIONSHIP(
'LOADSTATECOMBINATION_2 is related to Step 2 Base Specified State','',
#637538525,#637538546);
#637538549= STATE_RELATIONSHIP(
'LOADSTATECOMBINATION_2 is related to Step 1 Base Specified State','',
#637538531,#637538546);
#637538550= STATE_COMPONENT('OverallComp','',#637538546,1.);
#637538552= STATE_RELATIONSHIP(
'LOADSTATEITEM_1 is related to OverallComp','',#637538550,#637538553);
#637538553= LINEARLY_SUPERIMPOSED_STATE('LOADSTATEITEM_1',
'Item Factor State');
#637538554= SPECIFIED_STATE('LOADSTATECORE_1',
'Core Loads Specified State');
#637538555= STATE_RELATIONSHIP(
'LOADSTATECORE_1 is related to ItemComp_2_1','',#637538556,#637538554);
#637538556= STATE_COMPONENT('ItemComp_2_1','',#637538553,1.);
#637538558= NODAL_FREEDOM_ACTION_DEFINITION(#637538554,#637538355,
#637538284,#637538559,(CONTEXT_DEPENDENT_MEASURE(-1000.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538559= FREEDOMS_LIST((ENUMERATED_DEGREE_OF_FREEDOM(.X_TRANSLATION.)
,ENUMERATED_DEGREE_OF_FREEDOM(.Y_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.Z_TRANSLATION.)));
#637538562= OUTPUT_REQUEST_STATE('Step 1 Output Request State','',(
#637538529));
#637538564= NODAL_FREEDOM_VALUES(#637538562,#637538565,#637538284,
#637538567,(UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.)));
#637538565= NODE_GROUP('','ALL',#637538282,(#637538253,#637538295,
#637538299,#637538303,#637538307,#637538311,#637538315,#637538319,
#637538323,#637538327,#637538331,#637538335,#637538339,#637538343,
#637538347,#637538351,#637538355));
#637538567= FREEDOMS_LIST((ENUMERATED_DEGREE_OF_FREEDOM(.X_TRANSLATION.)
,ENUMERATED_DEGREE_OF_FREEDOM(.Y_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.Z_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.X_ROTATION.),ENUMERATED_DEGREE_OF_FREEDOM(
.Y_ROTATION.),ENUMERATED_DEGREE_OF_FREEDOM(.Z_ROTATION.)));
#637538570= ID_ATTRIBUTE('ALL',#637538565);
#637538571= SPECIFIED_STATE('SPCCASE_2_2_2','Aggregator SPC 2 Step 2');
#637538572= STATE_RELATIONSHIP(
'SPCCASE_2_2_2 is related to Step 2 Base Specified State','',#637538525,
#637538571);
#637538573= OUTPUT_REQUEST_STATE('Step 2 Output Request State','',(
#637538522));
#637538575= NODAL_FREEDOM_VALUES(#637538573,#637538565,#637538284,
#637538567,(UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.)));
#637538577= NODAL_FREEDOM_VALUES(#637538527,#637538253,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538579= NODAL_FREEDOM_VALUES(#637538527,#637538295,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-1.25000000000000E-5),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538581= NODAL_FREEDOM_VALUES(#637538527,#637538299,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-2.50000000000000E-5),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538583= NODAL_FREEDOM_VALUES(#637538527,#637538303,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-3.75000000000000E-5),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538585= NODAL_FREEDOM_VALUES(#637538527,#637538307,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-5.00000000000000E-5),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538587= NODAL_FREEDOM_VALUES(#637538527,#637538311,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-6.25000000000000E-5),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538589= NODAL_FREEDOM_VALUES(#637538527,#637538315,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-7.50000000000000E-5),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538591= NODAL_FREEDOM_VALUES(#637538527,#637538319,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-8.75000000000000E-5),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538593= NODAL_FREEDOM_VALUES(#637538527,#637538323,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-0.0001),CONTEXT_DEPENDENT_MEASURE
(0.),CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538595= NODAL_FREEDOM_VALUES(#637538527,#637538327,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-0.0001125),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538597= NODAL_FREEDOM_VALUES(#637538527,#637538331,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-0.000125),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538599= NODAL_FREEDOM_VALUES(#637538527,#637538335,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-0.0001375),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538601= NODAL_FREEDOM_VALUES(#637538527,#637538339,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-0.00015),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538603= NODAL_FREEDOM_VALUES(#637538527,#637538343,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-0.0001625),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538605= NODAL_FREEDOM_VALUES(#637538527,#637538347,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-0.000175),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538607= NODAL_FREEDOM_VALUES(#637538527,#637538351,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-0.0001875),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538609= NODAL_FREEDOM_VALUES(#637538527,#637538355,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-0.0002),CONTEXT_DEPENDENT_MEASURE
(0.),CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538611= NODAL_FREEDOM_VALUES(#637538520,#637538253,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538613= NODAL_FREEDOM_VALUES(#637538520,#637538295,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-1.25000000000000E-5),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538615= NODAL_FREEDOM_VALUES(#637538520,#637538299,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-2.50000000000000E-5),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538617= NODAL_FREEDOM_VALUES(#637538520,#637538303,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-3.75000000000000E-5),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538619= NODAL_FREEDOM_VALUES(#637538520,#637538307,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-5.00000000000000E-5),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538621= NODAL_FREEDOM_VALUES(#637538520,#637538311,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-6.25000000000000E-5),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538623= NODAL_FREEDOM_VALUES(#637538520,#637538315,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-7.50000000000000E-5),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538625= NODAL_FREEDOM_VALUES(#637538520,#637538319,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-8.75000000000000E-5),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538627= NODAL_FREEDOM_VALUES(#637538520,#637538323,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-0.0001),CONTEXT_DEPENDENT_MEASURE
(0.),CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538629= NODAL_FREEDOM_VALUES(#637538520,#637538327,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-0.0001125),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538631= NODAL_FREEDOM_VALUES(#637538520,#637538331,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-0.000125),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538633= NODAL_FREEDOM_VALUES(#637538520,#637538335,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-0.0001375),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538635= NODAL_FREEDOM_VALUES(#637538520,#637538339,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-0.00015),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538637= NODAL_FREEDOM_VALUES(#637538520,#637538343,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-0.0001625),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538639= NODAL_FREEDOM_VALUES(#637538520,#637538347,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-0.000175),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538641= NODAL_FREEDOM_VALUES(#637538520,#637538351,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-0.0001875),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)));
#637538643= NODAL_FREEDOM_VALUES(#637538520,#637538355,#637538284,
#637538567,(CONTEXT_DEPENDENT_MEASURE(-0.0002),CONTEXT_DEPENDENT_MEASURE
(0.),CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
ENDSEC;
END-ISO-10303-21;
-685
View File
@@ -1,685 +0,0 @@
ISO-10303-21;
HEADER;
/******************************************************************************************
* STEP Physical File produced by: The EXPRESS Data Manager Version 5.01.0100.b03 SimDM : 25 Apr 2012
* Module: EDMstepFileFactory/EDMstandAlone
* Creation date: Mon Jul 09 12:24:23 2012
* Host: AER4WA926171Z
* Database: C:\Documents and Settings\johnsjc2\Desktop\AP209\SimDM2010\DevCM\db\d
* Database version: 5207
* Database creation date: Wed Apr 18 15:33:55 2012
* Schema: AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF
* Model: DataRepository.FemTest
* Model creation date: Mon Jul 09 12:24:23 2012
* Header model:
* EDMuser: superuser
* EDMgroup:
* License ID and type: 5565 : Project license. Expiry date: 31 Dec 2012
* EDMstepFileFactory options: 010000000
******************************************************************************************/
FILE_DESCRIPTION((''),'2;1');
FILE_NAME(
'C:\\Documents and Settings\\johnsjc2\\Desktop\\AP209\\SimDM2010\\DevCM\\db\\d.DataRepository.FemTest'
,
'2012-07-09T12:24:23',
('ANONYMOUS USER'),
('ANONYMOUS ORGANISATION'),
'The EXPRESS Data Manager Version 5.01.0100.b03 SimDM : 25 Apr 2012',
'',
'');
FILE_SCHEMA(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF'));
ENDSEC;
DATA;
#637538235= APPLICATION_CONTEXT('SimDM');
#637538237= PRODUCT_DEFINITION_CONTEXT('assembly definition',#637538235,
'life cycle stage');
#637538239= PRODUCT_DEFINITION('default-id.0',$,#637538240,#637538244);
#637538240= PRODUCT_DEFINITION_FORMATION('default-id.0','',#637538241);
#637538241= PRODUCT('default-id.0','default-fea-part','',(#637538243));
#637538243= PRODUCT_CONTEXT('design_context',#637538235,'design_context'
);
#637538244= PRODUCT_DEFINITION_CONTEXT(
'product_definition_context_name_1',#637538245,'ANALYSIS-STAGE');
#637538245= APPLICATION_CONTEXT('FEA-ANALYSIS-DOMAIN');
#637538247= PRODUCT_DEFINITION_SHAPE('name',$,#637538239);
#637538248= SHAPE_DEFINITION_REPRESENTATION(#637538247,#637538249);
#637538249= POINT_REPRESENTATION('point_representation_name_1',(
#637538251,#637538359),#637538257);
#637538251= NODE_SET('node_set_name_1',(#637538253,#637538295,#637538299
,#637538303,#637538307,#637538311,#637538315,#637538319,#637538323,
#637538327,#637538331,#637538335,#637538339,#637538343,#637538347,
#637538351,#637538355));
#637538253= NODE('1',(#637538255),#637538257,#637538282);
#637538255= CARTESIAN_POINT('1',(0.,-2.,1.));
#637538257=
/* GEOMETRIC_REPRESENTATION_CONTEXT+GLOBAL_UNIT_ASSIGNED_CONTEXT */(
GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNIT_ASSIGNED_CONTEXT((
#637538260,#637538268,#637538271,#637538265,#637538263,#637538274,
#637538275,#637538278,#637538281,#637538267))REPRESENTATION_CONTEXT(
'CORD2R.1','3d'));
#637538260= SI_ENERGY_UNIT((#637538262,#637538264,#637538266),*,$,
.JOULE.);
#637538262= DERIVED_UNIT_ELEMENT(#637538263,1.);
#637538263= /* MASS_UNIT+SI_UNIT */(MASS_UNIT()NAMED_UNIT(*)SI_UNIT(
.KILO.,.GRAM.));
#637538264= DERIVED_UNIT_ELEMENT(#637538265,2.);
#637538265= /* LENGTH_UNIT+SI_UNIT */(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(
$,.METRE.));
#637538266= DERIVED_UNIT_ELEMENT(#637538267,-2.);
#637538267= /* SI_UNIT+TIME_UNIT */(NAMED_UNIT(*)SI_UNIT($,.SECOND.)
TIME_UNIT());
#637538268= SI_FORCE_UNIT((#637538262,#637538270,#637538266),*,$,
.NEWTON.);
#637538270= DERIVED_UNIT_ELEMENT(#637538265,1.);
#637538271= SI_FREQUENCY_UNIT((#637538273),*,$,.HERTZ.);
#637538273= DERIVED_UNIT_ELEMENT(#637538267,-1.);
#637538274= /* PLANE_ANGLE_UNIT+SI_UNIT */(NAMED_UNIT(*)PLANE_ANGLE_UNIT
()SI_UNIT($,.RADIAN.));
#637538275= SI_POWER_UNIT((#637538262,#637538264,#637538277),*,$,.WATT.
);
#637538277= DERIVED_UNIT_ELEMENT(#637538267,-3.);
#637538278= SI_PRESSURE_UNIT((#637538262,#637538280,#637538266),*,$,
.PASCAL.);
#637538280= DERIVED_UNIT_ELEMENT(#637538265,-1.);
#637538281= /* SI_UNIT+THERMODYNAMIC_TEMPERATURE_UNIT */(NAMED_UNIT(*)
SI_UNIT($,.DEGREE_CELSIUS.)THERMODYNAMIC_TEMPERATURE_UNIT());
#637538282= FEA_MODEL_3D('Identification',(#637538284),#637538291,
'NASTRAN BDF Converter v0.0.0',('NASTRAN'),'AnalysisModelType');
#637538284= FEA_AXIS2_PLACEMENT_3D('0',#637538285,#637538287,#637538289,
.CARTESIAN.,'FEA_BASIC_COORD_SYSTEM.0');
#637538285= CARTESIAN_POINT('',(0.,0.,0.));
#637538287= DIRECTION('AxisZ',(0.,0.,1.));
#637538289= DIRECTION('RefX',(1.,0.,0.));
#637538291=
/* GEOMETRIC_REPRESENTATION_CONTEXT+GLOBAL_UNIT_ASSIGNED_CONTEXT */(
GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNIT_ASSIGNED_CONTEXT((
#637538260,#637538268,#637538271,#637538265,#637538263,#637538274,
#637538275,#637538278,#637538281,#637538267))REPRESENTATION_CONTEXT(
'FEA_BASIC_COORD_SYSTEM.0','3d'));
#637538295= NODE('2',(#637538297),#637538257,#637538282);
#637538297= CARTESIAN_POINT('2',(1.,-2.,1.));
#637538299= NODE('3',(#637538301),#637538257,#637538282);
#637538301= CARTESIAN_POINT('3',(2.,-2.,1.));
#637538303= NODE('4',(#637538305),#637538257,#637538282);
#637538305= CARTESIAN_POINT('4',(3.,-2.,1.));
#637538307= NODE('5',(#637538309),#637538257,#637538282);
#637538309= CARTESIAN_POINT('5',(4.,-2.,1.));
#637538311= NODE('6',(#637538313),#637538257,#637538282);
#637538313= CARTESIAN_POINT('6',(5.,-2.,1.));
#637538315= NODE('7',(#637538317),#637538257,#637538282);
#637538317= CARTESIAN_POINT('7',(6.,-2.,1.));
#637538319= NODE('8',(#637538321),#637538257,#637538282);
#637538321= CARTESIAN_POINT('8',(7.,-2.,1.));
#637538323= NODE('9',(#637538325),#637538257,#637538282);
#637538325= CARTESIAN_POINT('9',(8.,-2.,1.));
#637538327= NODE('10',(#637538329),#637538257,#637538282);
#637538329= CARTESIAN_POINT('10',(9.,-2.,1.));
#637538331= NODE('11',(#637538333),#637538257,#637538282);
#637538333= CARTESIAN_POINT('11',(10.,-2.,1.));
#637538335= NODE('12',(#637538337),#637538257,#637538282);
#637538337= CARTESIAN_POINT('12',(11.,-2.,1.));
#637538339= NODE('13',(#637538341),#637538257,#637538282);
#637538341= CARTESIAN_POINT('13',(12.,-2.,1.));
#637538343= NODE('14',(#637538345),#637538257,#637538282);
#637538345= CARTESIAN_POINT('14',(13.,-2.,1.));
#637538347= NODE('15',(#637538349),#637538257,#637538282);
#637538349= CARTESIAN_POINT('15',(14.,-2.,1.));
#637538351= NODE('16',(#637538353),#637538257,#637538282);
#637538353= CARTESIAN_POINT('16',(15.,-2.,1.));
#637538355= NODE('17',(#637538357),#637538257,#637538282);
#637538357= CARTESIAN_POINT('17',(16.,-2.,1.));
#637538359= FEA_AXIS2_PLACEMENT_3D('1',#637538360,#637538362,#637538364,
.CARTESIAN.,'CORD2R.1');
#637538360= CARTESIAN_POINT('',(0.,0.,0.));
#637538362= DIRECTION('AxisZ',(0.,0.,1.));
#637538364= DIRECTION('RefX',(1.,0.,0.));
#637538366= FEA_MODEL_DEFINITION('fea_model_definition_id_1',$,
#637538247,.U.);
#637538367= STRUCTURAL_RESPONSE_PROPERTY(
'structural_response_property_id_1',$,#637538366);
#637538368= STRUCTURAL_RESPONSE_PROPERTY_DEFINITION_REPRESENTATION(
#637538367,#637538282);
#637538369= NAME_ATTRIBUTE('',#637538239);
#637538370= APPLIED_CLASSIFICATION_ASSIGNMENT(#637538371,#637538372,(
#637538239));
#637538371= GROUP('default-gpvv-type',$);
#637538372= CLASSIFICATION_ROLE('view_type',$);
#637538374= APPLIED_IDENTIFICATION_ASSIGNMENT('default-id.0',#637538375,
(#637538240,#637538239,#637538241));
#637538375= IDENTIFICATION_ROLE('default-role',$);
#637538377= APPLIED_ORGANIZATION_ASSIGNMENT(#637538378,#637538379,(
#637538374));
#637538378= ORGANIZATION($,'default-organization',$);
#637538379= ORGANIZATION_ROLE('id context');
#637538381= APPLIED_CLASSIFICATION_ASSIGNMENT(#637538382,#637538383,(
#637538374));
#637538382= GROUP('id',$);
#637538383= CLASSIFICATION_ROLE('',$);
#637538385= APPLICATION_PROTOCOL_DEFINITION('status',
'ap203_configuration_controlled_3d_design_of_mechanical_parts_and_assemblies'
,2011,#637538235);
#637538386= DESCRIPTION_ATTRIBUTE('SimDM',#637538235);
#637538387= ID_ATTRIBUTE('SimDM',#637538235);
#637538388= DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
#637538389= PRODUCT_RELATED_PRODUCT_CATEGORY('document',$,());
#637538391= PRODUCT_RELATED_PRODUCT_CATEGORY('product',$,(#637538241));
#637538393= DESCRIPTION_ATTRIBUTE('',#637538245);
#637538394= CARTESIAN_POINT('0',(0.,0.,0.));
#637538396= DUMMY_NODE('0',(#637538394),#637538291,#637538282);
#637538398= ITEM_DEFINED_TRANSFORMATION('','',#637538284,#637538359);
#637538399= REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION('','',
#637538282,#637538249,#637538398);
#637538400= ELEMENT_MATERIAL('MAT1.1','Fea Material',(#637538402,
#637538417,#637538422));
#637538402= FEA_MATERIAL_PROPERTY_REPRESENTATION(#637538403,#637538405,
#637538409);
#637538403= MATERIAL_PROPERTY('MAT1.1.0',$,#637538404);
#637538404= CHARACTERIZED_OBJECT('material_property',$);
#637538405= REPRESENTATION('representation_id_2',(#637538407),#637538291
);
#637538407= FEA_LINEAR_ELASTICITY('',FEA_ISOTROPIC_SYMMETRIC_TENSOR4_3D(
(10000000.,0.33)));
#637538409= DATA_ENVIRONMENT('DATA_ENV','Property_conditions',(
#637538411));
#637538411= PROPERTY_DEFINITION_REPRESENTATION(#637538412,#637538414);
#637538412= PROPERTY_DEFINITION('Material Property Definition',$,
#637538413);
#637538413= CHARACTERIZED_OBJECT('property',$);
#637538414= REPRESENTATION('representation_id_1',(#637538416),#637538291
);
#637538416= MEASURE_REPRESENTATION_ITEM('representation_item_name_1',
CONTEXT_DEPENDENT_MEASURE(70.),#637538281);
#637538417= FEA_MATERIAL_PROPERTY_REPRESENTATION(#637538418,#637538419,
#637538409);
#637538418= MATERIAL_PROPERTY('MAT1.1.1',$,#637538404);
#637538419= REPRESENTATION('representation_id_3',(#637538421),#637538291
);
#637538421= FEA_MASS_DENSITY('',0.000254);
#637538422= FEA_MATERIAL_PROPERTY_REPRESENTATION(#637538423,#637538424,
#637538409);
#637538423= MATERIAL_PROPERTY('MAT1.1.2',$,#637538404);
#637538424= REPRESENTATION('representation_id_4',(#637538426),#637538291
);
#637538426= FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION('',
ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
#637538427= CURVE_3D_ELEMENT_REPRESENTATION('16',(#637538429,#637538433)
,#637538435,(#637538351,#637538355),#637538282,#637538439,#637538445,
#637538400);
#637538429= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538430
);
#637538430= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538431);
#637538431= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538433= FEA_PARAMETRIC_POINT('',(1.,0.,0.));
#637538435= PARAMETRIC_REPRESENTATION_CONTEXT(
'parametric_representation_context','parametric');
#637538439= CURVE_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,'LINEAR_CURVE.CBAR*',((
ENUMERATED_CURVE_ELEMENT_PURPOSE(.AXIAL.)),(
ENUMERATED_CURVE_ELEMENT_PURPOSE(.Y_Y_BENDING.),
ENUMERATED_CURVE_ELEMENT_PURPOSE(.Z_Z_BENDING.)),(
ENUMERATED_CURVE_ELEMENT_PURPOSE(.TORSION.)),(
ENUMERATED_CURVE_ELEMENT_PURPOSE(.X_Y_SHEAR.),
ENUMERATED_CURVE_ELEMENT_PURPOSE(.X_Z_SHEAR.))));
#637538445= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.16','',(#637538447),(
#637538458,#637538460),(#637538463,#637538470));
#637538447= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538448,#637538449,
#637538451);
#637538448= CURVE_ELEMENT_LOCATION(#637538433);
#637538449= EULER_ANGLES((0.,0.,0.));
#637538451= CURVE_ELEMENT_SECTION_DERIVED_DEFINITIONS('PBAR.1_0',0.,8.,(
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)),(2.667,
10.667,0.),0.,CONTEXT_DEPENDENT_MEASURE(0.),(CONTEXT_DEPENDENT_MEASURE(
0.),CONTEXT_DEPENDENT_MEASURE(0.)),(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)),(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.));
#637538458= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538460= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538463= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538465= CURVE_ELEMENT_END_RELEASE_PACKET(
ENUMERATED_CURVE_ELEMENT_FREEDOM(.X_TRANSLATION.),0.);
#637538466= CURVE_ELEMENT_END_RELEASE_PACKET(
ENUMERATED_CURVE_ELEMENT_FREEDOM(.Y_TRANSLATION.),0.);
#637538467= CURVE_ELEMENT_END_RELEASE_PACKET(
ENUMERATED_CURVE_ELEMENT_FREEDOM(.Z_TRANSLATION.),0.);
#637538468= CURVE_ELEMENT_END_RELEASE_PACKET(
ENUMERATED_CURVE_ELEMENT_FREEDOM(.X_ROTATION.),0.);
#637538469= CURVE_ELEMENT_END_RELEASE_PACKET(
ENUMERATED_CURVE_ELEMENT_FREEDOM(.Z_ROTATION.),0.);
#637538470= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538472= CURVE_3D_ELEMENT_REPRESENTATION('15',(#637538474,#637538433)
,#637538435,(#637538347,#637538351),#637538282,#637538439,#637538479,
#637538400);
#637538474= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538475
);
#637538475= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538476);
#637538476= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538479= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.15','',(#637538481),(
#637538486,#637538488),(#637538491,#637538493));
#637538481= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538482,#637538483,
#637538451);
#637538482= CURVE_ELEMENT_LOCATION(#637538433);
#637538483= EULER_ANGLES((0.,0.,0.));
#637538486= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538488= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538491= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538493= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538495= CURVE_3D_ELEMENT_REPRESENTATION('14',(#637538497,#637538433)
,#637538435,(#637538343,#637538347),#637538282,#637538439,#637538502,
#637538400);
#637538497= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538498
);
#637538498= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538499);
#637538499= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538502= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.14','',(#637538504),(
#637538509,#637538511),(#637538514,#637538516));
#637538504= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538505,#637538506,
#637538451);
#637538505= CURVE_ELEMENT_LOCATION(#637538433);
#637538506= EULER_ANGLES((0.,0.,0.));
#637538509= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538511= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538514= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538516= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538518= CURVE_3D_ELEMENT_REPRESENTATION('13',(#637538520,#637538433)
,#637538435,(#637538339,#637538343),#637538282,#637538439,#637538525,
#637538400);
#637538520= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538521
);
#637538521= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538522);
#637538522= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538525= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.13','',(#637538527),(
#637538532,#637538534),(#637538537,#637538539));
#637538527= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538528,#637538529,
#637538451);
#637538528= CURVE_ELEMENT_LOCATION(#637538433);
#637538529= EULER_ANGLES((0.,0.,0.));
#637538532= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538534= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538537= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538539= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538541= CURVE_3D_ELEMENT_REPRESENTATION('12',(#637538543,#637538433)
,#637538435,(#637538335,#637538339),#637538282,#637538439,#637538548,
#637538400);
#637538543= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538544
);
#637538544= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538545);
#637538545= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538548= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.12','',(#637538550),(
#637538555,#637538557),(#637538560,#637538562));
#637538550= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538551,#637538552,
#637538451);
#637538551= CURVE_ELEMENT_LOCATION(#637538433);
#637538552= EULER_ANGLES((0.,0.,0.));
#637538555= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538557= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538560= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538562= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538564= CURVE_3D_ELEMENT_REPRESENTATION('11',(#637538566,#637538433)
,#637538435,(#637538331,#637538335),#637538282,#637538439,#637538571,
#637538400);
#637538566= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538567
);
#637538567= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538568);
#637538568= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538571= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.11','',(#637538573),(
#637538578,#637538580),(#637538583,#637538585));
#637538573= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538574,#637538575,
#637538451);
#637538574= CURVE_ELEMENT_LOCATION(#637538433);
#637538575= EULER_ANGLES((0.,0.,0.));
#637538578= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538580= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538583= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538585= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538587= CURVE_3D_ELEMENT_REPRESENTATION('10',(#637538589,#637538433)
,#637538435,(#637538327,#637538331),#637538282,#637538439,#637538594,
#637538400);
#637538589= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538590
);
#637538590= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538591);
#637538591= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538594= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.10','',(#637538596),(
#637538601,#637538603),(#637538606,#637538608));
#637538596= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538597,#637538598,
#637538451);
#637538597= CURVE_ELEMENT_LOCATION(#637538433);
#637538598= EULER_ANGLES((0.,0.,0.));
#637538601= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538603= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538606= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538608= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538610= CURVE_3D_ELEMENT_REPRESENTATION('9',(#637538612,#637538433),
#637538435,(#637538323,#637538327),#637538282,#637538439,#637538617,
#637538400);
#637538612= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538613
);
#637538613= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538614);
#637538614= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538617= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.9','',(#637538619),(
#637538624,#637538626),(#637538629,#637538631));
#637538619= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538620,#637538621,
#637538451);
#637538620= CURVE_ELEMENT_LOCATION(#637538433);
#637538621= EULER_ANGLES((0.,0.,0.));
#637538624= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538626= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538629= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538631= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538633= CURVE_3D_ELEMENT_REPRESENTATION('8',(#637538635,#637538433),
#637538435,(#637538319,#637538323),#637538282,#637538439,#637538640,
#637538400);
#637538635= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538636
);
#637538636= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538637);
#637538637= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538640= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.8','',(#637538642),(
#637538647,#637538649),(#637538652,#637538654));
#637538642= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538643,#637538644,
#637538451);
#637538643= CURVE_ELEMENT_LOCATION(#637538433);
#637538644= EULER_ANGLES((0.,0.,0.));
#637538647= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538649= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538652= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538654= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538656= CURVE_3D_ELEMENT_REPRESENTATION('7',(#637538658,#637538433),
#637538435,(#637538315,#637538319),#637538282,#637538439,#637538663,
#637538400);
#637538658= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538659
);
#637538659= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538660);
#637538660= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538663= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.7','',(#637538665),(
#637538670,#637538672),(#637538675,#637538677));
#637538665= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538666,#637538667,
#637538451);
#637538666= CURVE_ELEMENT_LOCATION(#637538433);
#637538667= EULER_ANGLES((0.,0.,0.));
#637538670= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538672= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538675= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538677= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538679= CURVE_3D_ELEMENT_REPRESENTATION('6',(#637538681,#637538433),
#637538435,(#637538311,#637538315),#637538282,#637538439,#637538686,
#637538400);
#637538681= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538682
);
#637538682= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538683);
#637538683= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538686= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.6','',(#637538688),(
#637538693,#637538695),(#637538698,#637538700));
#637538688= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538689,#637538690,
#637538451);
#637538689= CURVE_ELEMENT_LOCATION(#637538433);
#637538690= EULER_ANGLES((0.,0.,0.));
#637538693= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538695= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538698= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538700= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538702= CURVE_3D_ELEMENT_REPRESENTATION('5',(#637538704,#637538433),
#637538435,(#637538307,#637538311),#637538282,#637538439,#637538709,
#637538400);
#637538704= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538705
);
#637538705= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538706);
#637538706= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538709= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.5','',(#637538711),(
#637538716,#637538718),(#637538721,#637538723));
#637538711= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538712,#637538713,
#637538451);
#637538712= CURVE_ELEMENT_LOCATION(#637538433);
#637538713= EULER_ANGLES((0.,0.,0.));
#637538716= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538718= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538721= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538723= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538725= CURVE_3D_ELEMENT_REPRESENTATION('4',(#637538727,#637538433),
#637538435,(#637538303,#637538307),#637538282,#637538439,#637538732,
#637538400);
#637538727= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538728
);
#637538728= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538729);
#637538729= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538732= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.4','',(#637538734),(
#637538739,#637538741),(#637538744,#637538746));
#637538734= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538735,#637538736,
#637538451);
#637538735= CURVE_ELEMENT_LOCATION(#637538433);
#637538736= EULER_ANGLES((0.,0.,0.));
#637538739= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538741= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538744= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538746= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538748= CURVE_3D_ELEMENT_REPRESENTATION('3',(#637538750,#637538433),
#637538435,(#637538299,#637538303),#637538282,#637538439,#637538755,
#637538400);
#637538750= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538751
);
#637538751= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538752);
#637538752= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538755= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.3','',(#637538757),(
#637538762,#637538764),(#637538767,#637538769));
#637538757= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538758,#637538759,
#637538451);
#637538758= CURVE_ELEMENT_LOCATION(#637538433);
#637538759= EULER_ANGLES((0.,0.,0.));
#637538762= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538764= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538767= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538769= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538771= CURVE_3D_ELEMENT_REPRESENTATION('2',(#637538773,#637538433),
#637538435,(#637538295,#637538299),#637538282,#637538439,#637538778,
#637538400);
#637538773= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538774
);
#637538774= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538775);
#637538775= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538778= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.2','',(#637538780),(
#637538785,#637538787),(#637538790,#637538792));
#637538780= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538781,#637538782,
#637538451);
#637538781= CURVE_ELEMENT_LOCATION(#637538433);
#637538782= EULER_ANGLES((0.,0.,0.));
#637538785= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538787= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538790= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538792= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538794= CURVE_3D_ELEMENT_REPRESENTATION('1',(#637538796,#637538433),
#637538435,(#637538253,#637538295),#637538282,#637538439,#637538801,
#637538400);
#637538796= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538797
);
#637538797= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538798);
#637538798= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538801= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.1','',(#637538803),(
#637538808,#637538810),(#637538813,#637538815));
#637538803= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538804,#637538805,
#637538451);
#637538804= CURVE_ELEMENT_LOCATION(#637538433);
#637538805= EULER_ANGLES((0.,0.,0.));
#637538808= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538810= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538813= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538815= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538817= ID_ATTRIBUTE('MAT1.1',#637538412);
#637538818= DESCRIPTION_ATTRIBUTE('Elasticity',#637538402);
#637538819= DESCRIPTION_ATTRIBUTE('MassDensity',#637538417);
#637538820= DESCRIPTION_ATTRIBUTE('TangentCTE',#637538422);
#637538821= CONTROL(#637538282,'Control.0','FemConvert',
'MSC.NASTRAN JOB CREATED ON 10-JUL-00 AT 06:54:00',('<SOL>101</SOL>',
'TIME 600','CEND','<GLOBALCASE>0</GLOBALCASE>','<SUBCASE>1</SUBCASE>',
'ENDDATA 07CFC18D'),('NASTRAN'));
#637538824= CONTROL_LINEAR_STATIC_ANALYSIS_STEP(#637538821,
'STATIC STEP 1',1,#637538825,'',#637538826);
#637538825= SPECIFIED_STATE('STEP DEFAULT','default_initial_state');
#637538826= CONTROL_LINEAR_STATIC_LOAD_INCREMENT_PROCESS('STATIC STEP 1'
,'',#637538827);
#637538827= SPECIFIED_STATE('Step 1 Base Specified State',
'Relating Specified State');
#637538828= OUTPUT_REQUEST_STATE('Step 1 Output Request State','',(
#637538824));
#637538830= NODAL_FREEDOM_VALUES(#637538828,#637538831,#637538284,
#637538833,(UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.)));
#637538831= NODE_GROUP('','ALL',#637538282,(#637538253,#637538295,
#637538299,#637538303,#637538307,#637538311,#637538315,#637538319,
#637538323,#637538327,#637538331,#637538335,#637538339,#637538343,
#637538347,#637538351,#637538355));
#637538833= FREEDOMS_LIST((ENUMERATED_DEGREE_OF_FREEDOM(.X_TRANSLATION.)
,ENUMERATED_DEGREE_OF_FREEDOM(.Y_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.Z_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.X_ROTATION.),ENUMERATED_DEGREE_OF_FREEDOM(
.Y_ROTATION.),ENUMERATED_DEGREE_OF_FREEDOM(.Z_ROTATION.)));
#637538836= SINGLE_POINT_CONSTRAINT_ELEMENT('SPC1_1.0',(#637538824),
#637538253,#637538284,(#637538839,#637538840,#637538841,#637538842,
#637538843,#637538844),'');
#637538839= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.X_TRANSLATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538840= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.Y_TRANSLATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538841= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.Z_TRANSLATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538842= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.X_ROTATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538843= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.Y_ROTATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538844= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.Z_ROTATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538845= SINGLE_POINT_CONSTRAINT_ELEMENT_VALUES(#637538846,#637538836
,#637538847,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)
,CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538846= SPECIFIED_STATE('SPCVALSTATE_1_2','');
#637538847= FREEDOMS_LIST((ENUMERATED_DEGREE_OF_FREEDOM(.X_TRANSLATION.)
,ENUMERATED_DEGREE_OF_FREEDOM(.Y_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.Z_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.X_ROTATION.),ENUMERATED_DEGREE_OF_FREEDOM(
.Y_ROTATION.),ENUMERATED_DEGREE_OF_FREEDOM(.Z_ROTATION.)));
#637538850= SPECIFIED_STATE('SPCCASE_2_2_1','Aggregator SPC 2 Step 1');
#637538851= STATE_RELATIONSHIP(
'SPCCASE_2_2_1 is related to Step 1 Base Specified State','',#637538827,
#637538850);
#637538852= STATE_RELATIONSHIP(
'SPCVALSTATE_1_2 is related to SPCCASE_2_2_1','',#637538850,#637538846);
#637538853= LINEARLY_SUPERIMPOSED_STATE('LOADSTATECOMBINATION_2',
'Overall Factor Combined State');
#637538855= STATE_RELATIONSHIP(
'LOADSTATECOMBINATION_2 is related to Step 1 Base Specified State','',
#637538827,#637538853);
#637538856= STATE_COMPONENT('OverallComp','',#637538853,1.);
#637538858= STATE_RELATIONSHIP(
'LOADSTATEITEM_4 is related to OverallComp','',#637538856,#637538859);
#637538859= LINEARLY_SUPERIMPOSED_STATE('LOADSTATEITEM_4',
'Item Factor State');
#637538860= STATE_RELATIONSHIP(
'LOADSTATEITEM_3 is related to OverallComp','',#637538856,#637538861);
#637538861= LINEARLY_SUPERIMPOSED_STATE('LOADSTATEITEM_3',
'Item Factor State');
#637538862= STATE_RELATIONSHIP(
'LOADSTATEITEM_1 is related to OverallComp','',#637538856,#637538863);
#637538863= LINEARLY_SUPERIMPOSED_STATE('LOADSTATEITEM_1',
'Item Factor State');
#637538864= SPECIFIED_STATE('LOADSTATECORE_1',
'Core Loads Specified State');
#637538865= STATE_RELATIONSHIP(
'LOADSTATECORE_1 is related to ItemComp_2_1','',#637538866,#637538864);
#637538866= STATE_COMPONENT('ItemComp_2_1','',#637538863,1.);
#637538868= NODAL_FREEDOM_ACTION_DEFINITION(#637538864,#637538355,
#637538284,#637538869,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-1010.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538869= FREEDOMS_LIST((ENUMERATED_DEGREE_OF_FREEDOM(.X_TRANSLATION.)
,ENUMERATED_DEGREE_OF_FREEDOM(.Y_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.Z_TRANSLATION.)));
#637538872= SPECIFIED_STATE('LOADSTATECORE_3',
'Core Loads Specified State');
#637538873= STATE_RELATIONSHIP(
'LOADSTATECORE_3 is related to ItemComp_2_3','',#637538874,#637538872);
#637538874= STATE_COMPONENT('ItemComp_2_3','',#637538861,1.);
#637538876= NODAL_FREEDOM_ACTION_DEFINITION(#637538872,#637538331,
#637538284,#637538869,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-10.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538878= SPECIFIED_STATE('LOADSTATECORE_4',
'Core Loads Specified State');
#637538879= STATE_RELATIONSHIP(
'LOADSTATECORE_4 is related to ItemComp_2_4','',#637538880,#637538878);
#637538880= STATE_COMPONENT('ItemComp_2_4','',#637538859,1.);
#637538882= NODAL_FREEDOM_ACTION_DEFINITION(#637538878,#637538351,
#637538284,#637538869,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-20.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538884= NODAL_FREEDOM_ACTION_DEFINITION(#637538878,#637538347,
#637538284,#637538869,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-20.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538886= NODAL_FREEDOM_ACTION_DEFINITION(#637538878,#637538343,
#637538284,#637538869,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-20.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538888= NODAL_FREEDOM_ACTION_DEFINITION(#637538878,#637538339,
#637538284,#637538869,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-20.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538890= NODAL_FREEDOM_ACTION_DEFINITION(#637538878,#637538335,
#637538284,#637538869,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-20.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538892= ID_ATTRIBUTE('ALL',#637538831);
ENDSEC;
END-ISO-10303-21;
-705
View File
@@ -1,705 +0,0 @@
ISO-10303-21;
HEADER;
/******************************************************************************************
* STEP Physical File produced by: The EXPRESS Data Manager Version 5.01.0100.b04 : 12 Apr 2012
* Module: EDMstepFileFactory/EDMstandAlone
* Creation date: Tue Jun 05 10:29:56 2012
* Host: AER4WA926171Z
* Database: C:\Documents and Settings\johnsjc2\Desktop\AP209\SimDM2010\DevCM\db\d
* Database version: 5207
* Database creation date: Wed Apr 18 15:33:55 2012
* Schema: AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF
* Model: DataRepository.FemTest
* Model creation date: Tue Jun 05 10:29:56 2012
* Header model:
* EDMuser: superuser
* EDMgroup:
* License ID and type: 5565 : Project license. Expiry date: 31 Dec 2012
* EDMstepFileFactory options: 010000000
******************************************************************************************/
FILE_DESCRIPTION((''),'2;1');
FILE_NAME(
'C:\\Documents and Settings\\johnsjc2\\Desktop\\AP209\\SimDM2010\\DevCM\\db\\d.DataRepository.FemTest'
,
'2012-06-05T10:29:56',
('ANONYMOUS USER'),
('ANONYMOUS ORGANISATION'),
'The EXPRESS Data Manager Version 5.01.0100.b04 : 12 Apr 2012',
'',
'');
FILE_SCHEMA(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF'));
ENDSEC;
DATA;
#637538233= APPLICATION_CONTEXT('SimDM');
#637538235= PRODUCT_DEFINITION_CONTEXT('assembly definition',#637538233,
'life cycle stage');
#637538237= PRODUCT_DEFINITION('default-id.0',$,#637538238,#637538242);
#637538238= PRODUCT_DEFINITION_FORMATION('default-id.0','',#637538239);
#637538239= PRODUCT('default-id.0','default-fea-part','',(#637538241));
#637538241= PRODUCT_CONTEXT('design_context',#637538233,'design_context'
);
#637538242= PRODUCT_DEFINITION_CONTEXT(
'product_definition_context_name_1',#637538243,'ANALYSIS-STAGE');
#637538243= APPLICATION_CONTEXT('FEA-ANALYSIS-DOMAIN');
#637538245= PRODUCT_DEFINITION_SHAPE('name',$,#637538237);
#637538246= SHAPE_DEFINITION_REPRESENTATION(#637538245,#637538247);
#637538247= POINT_REPRESENTATION('point_representation_name_1',(
#637538249,#637538357),#637538255);
#637538249= NODE_SET('node_set_name_1',(#637538251,#637538293,#637538297
,#637538301,#637538305,#637538309,#637538313,#637538317,#637538321,
#637538325,#637538329,#637538333,#637538337,#637538341,#637538345,
#637538349,#637538353));
#637538251= NODE('1',(#637538253),#637538255,#637538280);
#637538253= CARTESIAN_POINT('1',(0.,-2.,1.));
#637538255=
/* GEOMETRIC_REPRESENTATION_CONTEXT+GLOBAL_UNIT_ASSIGNED_CONTEXT */(
GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNIT_ASSIGNED_CONTEXT((
#637538258,#637538266,#637538269,#637538263,#637538261,#637538272,
#637538273,#637538276,#637538279,#637538265))REPRESENTATION_CONTEXT(
'CORD2R.1','3d'));
#637538258= SI_ENERGY_UNIT((#637538260,#637538262,#637538264),*,$,
.JOULE.);
#637538260= DERIVED_UNIT_ELEMENT(#637538261,1.);
#637538261= /* MASS_UNIT+SI_UNIT */(MASS_UNIT()NAMED_UNIT(*)SI_UNIT(
.KILO.,.GRAM.));
#637538262= DERIVED_UNIT_ELEMENT(#637538263,2.);
#637538263= /* LENGTH_UNIT+SI_UNIT */(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(
$,.METRE.));
#637538264= DERIVED_UNIT_ELEMENT(#637538265,-2.);
#637538265= /* SI_UNIT+TIME_UNIT */(NAMED_UNIT(*)SI_UNIT($,.SECOND.)
TIME_UNIT());
#637538266= SI_FORCE_UNIT((#637538260,#637538268,#637538264),*,$,
.NEWTON.);
#637538268= DERIVED_UNIT_ELEMENT(#637538263,1.);
#637538269= SI_FREQUENCY_UNIT((#637538271),*,$,.HERTZ.);
#637538271= DERIVED_UNIT_ELEMENT(#637538265,-1.);
#637538272= /* PLANE_ANGLE_UNIT+SI_UNIT */(NAMED_UNIT(*)PLANE_ANGLE_UNIT
()SI_UNIT($,.RADIAN.));
#637538273= SI_POWER_UNIT((#637538260,#637538262,#637538275),*,$,.WATT.
);
#637538275= DERIVED_UNIT_ELEMENT(#637538265,-3.);
#637538276= SI_PRESSURE_UNIT((#637538260,#637538278,#637538264),*,$,
.PASCAL.);
#637538278= DERIVED_UNIT_ELEMENT(#637538263,-1.);
#637538279= /* SI_UNIT+THERMODYNAMIC_TEMPERATURE_UNIT */(NAMED_UNIT(*)
SI_UNIT($,.DEGREE_CELSIUS.)THERMODYNAMIC_TEMPERATURE_UNIT());
#637538280= FEA_MODEL_3D('Identification',(#637538282),#637538289,
'NASTRAN BDF Converter v0.0.0',('NASTRAN'),'AnalysisModelType');
#637538282= FEA_AXIS2_PLACEMENT_3D('0',#637538283,#637538285,#637538287,
.CARTESIAN.,'FEA_BASIC_COORD_SYSTEM.0');
#637538283= CARTESIAN_POINT('',(0.,0.,0.));
#637538285= DIRECTION('AxisZ',(0.,0.,1.));
#637538287= DIRECTION('RefX',(1.,0.,0.));
#637538289=
/* GEOMETRIC_REPRESENTATION_CONTEXT+GLOBAL_UNIT_ASSIGNED_CONTEXT */(
GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNIT_ASSIGNED_CONTEXT((
#637538258,#637538266,#637538269,#637538263,#637538261,#637538272,
#637538273,#637538276,#637538279,#637538265))REPRESENTATION_CONTEXT(
'FEA_BASIC_COORD_SYSTEM.0','3d'));
#637538293= NODE('2',(#637538295),#637538255,#637538280);
#637538295= CARTESIAN_POINT('2',(1.,-2.,1.));
#637538297= NODE('3',(#637538299),#637538255,#637538280);
#637538299= CARTESIAN_POINT('3',(2.,-2.,1.));
#637538301= NODE('4',(#637538303),#637538255,#637538280);
#637538303= CARTESIAN_POINT('4',(3.,-2.,1.));
#637538305= NODE('5',(#637538307),#637538255,#637538280);
#637538307= CARTESIAN_POINT('5',(4.,-2.,1.));
#637538309= NODE('6',(#637538311),#637538255,#637538280);
#637538311= CARTESIAN_POINT('6',(5.,-2.,1.));
#637538313= NODE('7',(#637538315),#637538255,#637538280);
#637538315= CARTESIAN_POINT('7',(6.,-2.,1.));
#637538317= NODE('8',(#637538319),#637538255,#637538280);
#637538319= CARTESIAN_POINT('8',(7.,-2.,1.));
#637538321= NODE('9',(#637538323),#637538255,#637538280);
#637538323= CARTESIAN_POINT('9',(8.,-2.,1.));
#637538325= NODE('10',(#637538327),#637538255,#637538280);
#637538327= CARTESIAN_POINT('10',(9.,-2.,1.));
#637538329= NODE('11',(#637538331),#637538255,#637538280);
#637538331= CARTESIAN_POINT('11',(10.,-2.,1.));
#637538333= NODE('12',(#637538335),#637538255,#637538280);
#637538335= CARTESIAN_POINT('12',(11.,-2.,1.));
#637538337= NODE('13',(#637538339),#637538255,#637538280);
#637538339= CARTESIAN_POINT('13',(12.,-2.,1.));
#637538341= NODE('14',(#637538343),#637538255,#637538280);
#637538343= CARTESIAN_POINT('14',(13.,-2.,1.));
#637538345= NODE('15',(#637538347),#637538255,#637538280);
#637538347= CARTESIAN_POINT('15',(14.,-2.,1.));
#637538349= NODE('16',(#637538351),#637538255,#637538280);
#637538351= CARTESIAN_POINT('16',(15.,-2.,1.));
#637538353= NODE('17',(#637538355),#637538255,#637538280);
#637538355= CARTESIAN_POINT('17',(16.,-2.,1.));
#637538357= FEA_AXIS2_PLACEMENT_3D('1',#637538358,#637538360,#637538362,
.CARTESIAN.,'CORD2R.1');
#637538358= CARTESIAN_POINT('',(0.,0.,0.));
#637538360= DIRECTION('AxisZ',(0.,0.,1.));
#637538362= DIRECTION('RefX',(1.,0.,0.));
#637538364= FEA_MODEL_DEFINITION('fea_model_definition_id_1',$,
#637538245,.U.);
#637538365= STRUCTURAL_RESPONSE_PROPERTY(
'structural_response_property_id_1',$,#637538364);
#637538366= STRUCTURAL_RESPONSE_PROPERTY_DEFINITION_REPRESENTATION(
#637538365,#637538280);
#637538367= NAME_ATTRIBUTE('',#637538237);
#637538368= APPLIED_CLASSIFICATION_ASSIGNMENT(#637538369,#637538370,(
#637538237));
#637538369= GROUP('default-gpvv-type',$);
#637538370= CLASSIFICATION_ROLE('view_type',$);
#637538372= APPLIED_IDENTIFICATION_ASSIGNMENT('default-id.0',#637538373,
(#637538238,#637538237,#637538239));
#637538373= IDENTIFICATION_ROLE('default-role',$);
#637538375= APPLIED_ORGANIZATION_ASSIGNMENT(#637538376,#637538377,(
#637538372));
#637538376= ORGANIZATION($,'default-organization',$);
#637538377= ORGANIZATION_ROLE('id context');
#637538379= APPLIED_CLASSIFICATION_ASSIGNMENT(#637538380,#637538381,(
#637538372));
#637538380= GROUP('id',$);
#637538381= CLASSIFICATION_ROLE('',$);
#637538383= APPLICATION_PROTOCOL_DEFINITION('status',
'ap203_configuration_controlled_3d_design_of_mechanical_parts_and_assemblies'
,2011,#637538233);
#637538384= DESCRIPTION_ATTRIBUTE('SimDM',#637538233);
#637538385= ID_ATTRIBUTE('SimDM',#637538233);
#637538386= DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
#637538387= PRODUCT_RELATED_PRODUCT_CATEGORY('document',$,());
#637538389= PRODUCT_RELATED_PRODUCT_CATEGORY('product',$,(#637538239));
#637538391= DESCRIPTION_ATTRIBUTE('',#637538243);
#637538392= CARTESIAN_POINT('0',(0.,0.,0.));
#637538394= DUMMY_NODE('0',(#637538392),#637538289,#637538280);
#637538396= ITEM_DEFINED_TRANSFORMATION('','',#637538282,#637538357);
#637538397= REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION('','',
#637538280,#637538247,#637538396);
#637538398= ELEMENT_MATERIAL('MAT1.1','Fea Material',(#637538400,
#637538415,#637538420));
#637538400= FEA_MATERIAL_PROPERTY_REPRESENTATION(#637538401,#637538403,
#637538407);
#637538401= MATERIAL_PROPERTY('MAT1.1.0',$,#637538402);
#637538402= CHARACTERIZED_OBJECT('material_property',$);
#637538403= REPRESENTATION('representation_id_2',(#637538405),#637538289
);
#637538405= FEA_LINEAR_ELASTICITY('',FEA_ISOTROPIC_SYMMETRIC_TENSOR4_3D(
(10000000.,0.33)));
#637538407= DATA_ENVIRONMENT('DATA_ENV','Property_conditions',(
#637538409));
#637538409= PROPERTY_DEFINITION_REPRESENTATION(#637538410,#637538412);
#637538410= PROPERTY_DEFINITION('Material Property Definition',$,
#637538411);
#637538411= CHARACTERIZED_OBJECT('property',$);
#637538412= REPRESENTATION('representation_id_1',(#637538414),#637538289
);
#637538414= MEASURE_REPRESENTATION_ITEM('representation_item_name_1',
CONTEXT_DEPENDENT_MEASURE(70.),#637538279);
#637538415= FEA_MATERIAL_PROPERTY_REPRESENTATION(#637538416,#637538417,
#637538407);
#637538416= MATERIAL_PROPERTY('MAT1.1.1',$,#637538402);
#637538417= REPRESENTATION('representation_id_3',(#637538419),#637538289
);
#637538419= FEA_MASS_DENSITY('',0.000254);
#637538420= FEA_MATERIAL_PROPERTY_REPRESENTATION(#637538421,#637538422,
#637538407);
#637538421= MATERIAL_PROPERTY('MAT1.1.2',$,#637538402);
#637538422= REPRESENTATION('representation_id_4',(#637538424),#637538289
);
#637538424= FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION('',
ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
#637538425= CURVE_3D_ELEMENT_REPRESENTATION('16',(#637538427,#637538431)
,#637538433,(#637538349,#637538353),#637538280,#637538437,#637538443,
#637538398);
#637538427= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538428
);
#637538428= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538429);
#637538429= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538431= FEA_PARAMETRIC_POINT('',(1.,0.,0.));
#637538433= PARAMETRIC_REPRESENTATION_CONTEXT(
'parametric_representation_context','parametric');
#637538437= CURVE_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,'LINEAR_CURVE.CBAR*',((
ENUMERATED_CURVE_ELEMENT_PURPOSE(.AXIAL.)),(
ENUMERATED_CURVE_ELEMENT_PURPOSE(.Y_Y_BENDING.),
ENUMERATED_CURVE_ELEMENT_PURPOSE(.Z_Z_BENDING.)),(
ENUMERATED_CURVE_ELEMENT_PURPOSE(.TORSION.)),(
ENUMERATED_CURVE_ELEMENT_PURPOSE(.X_Y_SHEAR.),
ENUMERATED_CURVE_ELEMENT_PURPOSE(.X_Z_SHEAR.))));
#637538443= CURVE_3D_ELEMENT_PROPERTY('PBAR.1','',(#637538445),(
#637538456,#637538458),(#637538461,#637538468));
#637538445= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538446,#637538447,
#637538449);
#637538446= CURVE_ELEMENT_LOCATION(#637538431);
#637538447= EULER_ANGLES((0.,0.,0.));
#637538449= CURVE_ELEMENT_SECTION_DERIVED_DEFINITIONS('PBAR.1',0.,8.,(
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)),(2.667,
10.667,0.),0.,CONTEXT_DEPENDENT_MEASURE(0.),(CONTEXT_DEPENDENT_MEASURE(
0.),CONTEXT_DEPENDENT_MEASURE(0.)),(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)),(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.));
#637538456= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538458= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538461= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538463= CURVE_ELEMENT_END_RELEASE_PACKET(
ENUMERATED_CURVE_ELEMENT_FREEDOM(.X_TRANSLATION.),0.);
#637538464= CURVE_ELEMENT_END_RELEASE_PACKET(
ENUMERATED_CURVE_ELEMENT_FREEDOM(.Y_TRANSLATION.),0.);
#637538465= CURVE_ELEMENT_END_RELEASE_PACKET(
ENUMERATED_CURVE_ELEMENT_FREEDOM(.Z_TRANSLATION.),0.);
#637538466= CURVE_ELEMENT_END_RELEASE_PACKET(
ENUMERATED_CURVE_ELEMENT_FREEDOM(.X_ROTATION.),0.);
#637538467= CURVE_ELEMENT_END_RELEASE_PACKET(
ENUMERATED_CURVE_ELEMENT_FREEDOM(.Z_ROTATION.),0.);
#637538468= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538470= CURVE_3D_ELEMENT_REPRESENTATION('15',(#637538472,#637538431)
,#637538433,(#637538345,#637538349),#637538280,#637538437,#637538477,
#637538398);
#637538472= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538473
);
#637538473= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538474);
#637538474= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538477= CURVE_3D_ELEMENT_PROPERTY('PBAR.1','',(#637538479),(
#637538484,#637538486),(#637538489,#637538491));
#637538479= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538480,#637538481,
#637538449);
#637538480= CURVE_ELEMENT_LOCATION(#637538431);
#637538481= EULER_ANGLES((0.,0.,0.));
#637538484= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538486= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538489= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538491= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538493= CURVE_3D_ELEMENT_REPRESENTATION('14',(#637538495,#637538431)
,#637538433,(#637538341,#637538345),#637538280,#637538437,#637538500,
#637538398);
#637538495= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538496
);
#637538496= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538497);
#637538497= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538500= CURVE_3D_ELEMENT_PROPERTY('PBAR.1','',(#637538502),(
#637538507,#637538509),(#637538512,#637538514));
#637538502= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538503,#637538504,
#637538449);
#637538503= CURVE_ELEMENT_LOCATION(#637538431);
#637538504= EULER_ANGLES((0.,0.,0.));
#637538507= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538509= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538512= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538514= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538516= CURVE_3D_ELEMENT_REPRESENTATION('13',(#637538518,#637538431)
,#637538433,(#637538337,#637538341),#637538280,#637538437,#637538523,
#637538398);
#637538518= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538519
);
#637538519= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538520);
#637538520= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538523= CURVE_3D_ELEMENT_PROPERTY('PBAR.1','',(#637538525),(
#637538530,#637538532),(#637538535,#637538537));
#637538525= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538526,#637538527,
#637538449);
#637538526= CURVE_ELEMENT_LOCATION(#637538431);
#637538527= EULER_ANGLES((0.,0.,0.));
#637538530= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538532= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538535= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538537= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538539= CURVE_3D_ELEMENT_REPRESENTATION('12',(#637538541,#637538431)
,#637538433,(#637538333,#637538337),#637538280,#637538437,#637538546,
#637538398);
#637538541= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538542
);
#637538542= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538543);
#637538543= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538546= CURVE_3D_ELEMENT_PROPERTY('PBAR.1','',(#637538548),(
#637538553,#637538555),(#637538558,#637538560));
#637538548= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538549,#637538550,
#637538449);
#637538549= CURVE_ELEMENT_LOCATION(#637538431);
#637538550= EULER_ANGLES((0.,0.,0.));
#637538553= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538555= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538558= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538560= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538562= CURVE_3D_ELEMENT_REPRESENTATION('11',(#637538564,#637538431)
,#637538433,(#637538329,#637538333),#637538280,#637538437,#637538569,
#637538398);
#637538564= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538565
);
#637538565= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538566);
#637538566= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538569= CURVE_3D_ELEMENT_PROPERTY('PBAR.1','',(#637538571),(
#637538576,#637538578),(#637538581,#637538583));
#637538571= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538572,#637538573,
#637538449);
#637538572= CURVE_ELEMENT_LOCATION(#637538431);
#637538573= EULER_ANGLES((0.,0.,0.));
#637538576= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538578= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538581= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538583= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538585= CURVE_3D_ELEMENT_REPRESENTATION('10',(#637538587,#637538431)
,#637538433,(#637538325,#637538329),#637538280,#637538437,#637538592,
#637538398);
#637538587= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538588
);
#637538588= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538589);
#637538589= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538592= CURVE_3D_ELEMENT_PROPERTY('PBAR.1','',(#637538594),(
#637538599,#637538601),(#637538604,#637538606));
#637538594= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538595,#637538596,
#637538449);
#637538595= CURVE_ELEMENT_LOCATION(#637538431);
#637538596= EULER_ANGLES((0.,0.,0.));
#637538599= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538601= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538604= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538606= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538608= CURVE_3D_ELEMENT_REPRESENTATION('9',(#637538610,#637538431),
#637538433,(#637538321,#637538325),#637538280,#637538437,#637538615,
#637538398);
#637538610= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538611
);
#637538611= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538612);
#637538612= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538615= CURVE_3D_ELEMENT_PROPERTY('PBAR.1','',(#637538617),(
#637538622,#637538624),(#637538627,#637538629));
#637538617= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538618,#637538619,
#637538449);
#637538618= CURVE_ELEMENT_LOCATION(#637538431);
#637538619= EULER_ANGLES((0.,0.,0.));
#637538622= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538624= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538627= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538629= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538631= CURVE_3D_ELEMENT_REPRESENTATION('8',(#637538633,#637538431),
#637538433,(#637538317,#637538321),#637538280,#637538437,#637538638,
#637538398);
#637538633= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538634
);
#637538634= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538635);
#637538635= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538638= CURVE_3D_ELEMENT_PROPERTY('PBAR.1','',(#637538640),(
#637538645,#637538647),(#637538650,#637538652));
#637538640= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538641,#637538642,
#637538449);
#637538641= CURVE_ELEMENT_LOCATION(#637538431);
#637538642= EULER_ANGLES((0.,0.,0.));
#637538645= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538647= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538650= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538652= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538654= CURVE_3D_ELEMENT_REPRESENTATION('7',(#637538656,#637538431),
#637538433,(#637538313,#637538317),#637538280,#637538437,#637538661,
#637538398);
#637538656= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538657
);
#637538657= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538658);
#637538658= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538661= CURVE_3D_ELEMENT_PROPERTY('PBAR.1','',(#637538663),(
#637538668,#637538670),(#637538673,#637538675));
#637538663= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538664,#637538665,
#637538449);
#637538664= CURVE_ELEMENT_LOCATION(#637538431);
#637538665= EULER_ANGLES((0.,0.,0.));
#637538668= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538670= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538673= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538675= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538677= CURVE_3D_ELEMENT_REPRESENTATION('6',(#637538679,#637538431),
#637538433,(#637538309,#637538313),#637538280,#637538437,#637538684,
#637538398);
#637538679= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538680
);
#637538680= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538681);
#637538681= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538684= CURVE_3D_ELEMENT_PROPERTY('PBAR.1','',(#637538686),(
#637538691,#637538693),(#637538696,#637538698));
#637538686= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538687,#637538688,
#637538449);
#637538687= CURVE_ELEMENT_LOCATION(#637538431);
#637538688= EULER_ANGLES((0.,0.,0.));
#637538691= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538693= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538696= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538698= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538700= CURVE_3D_ELEMENT_REPRESENTATION('5',(#637538702,#637538431),
#637538433,(#637538305,#637538309),#637538280,#637538437,#637538707,
#637538398);
#637538702= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538703
);
#637538703= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538704);
#637538704= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538707= CURVE_3D_ELEMENT_PROPERTY('PBAR.1','',(#637538709),(
#637538714,#637538716),(#637538719,#637538721));
#637538709= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538710,#637538711,
#637538449);
#637538710= CURVE_ELEMENT_LOCATION(#637538431);
#637538711= EULER_ANGLES((0.,0.,0.));
#637538714= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538716= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538719= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538721= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538723= CURVE_3D_ELEMENT_REPRESENTATION('4',(#637538725,#637538431),
#637538433,(#637538301,#637538305),#637538280,#637538437,#637538730,
#637538398);
#637538725= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538726
);
#637538726= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538727);
#637538727= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538730= CURVE_3D_ELEMENT_PROPERTY('PBAR.1','',(#637538732),(
#637538737,#637538739),(#637538742,#637538744));
#637538732= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538733,#637538734,
#637538449);
#637538733= CURVE_ELEMENT_LOCATION(#637538431);
#637538734= EULER_ANGLES((0.,0.,0.));
#637538737= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538739= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538742= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538744= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538746= CURVE_3D_ELEMENT_REPRESENTATION('3',(#637538748,#637538431),
#637538433,(#637538297,#637538301),#637538280,#637538437,#637538753,
#637538398);
#637538748= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538749
);
#637538749= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538750);
#637538750= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538753= CURVE_3D_ELEMENT_PROPERTY('PBAR.1','',(#637538755),(
#637538760,#637538762),(#637538765,#637538767));
#637538755= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538756,#637538757,
#637538449);
#637538756= CURVE_ELEMENT_LOCATION(#637538431);
#637538757= EULER_ANGLES((0.,0.,0.));
#637538760= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538762= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538765= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538767= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538769= CURVE_3D_ELEMENT_REPRESENTATION('2',(#637538771,#637538431),
#637538433,(#637538293,#637538297),#637538280,#637538437,#637538776,
#637538398);
#637538771= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538772
);
#637538772= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538773);
#637538773= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538776= CURVE_3D_ELEMENT_PROPERTY('PBAR.1','',(#637538778),(
#637538783,#637538785),(#637538788,#637538790));
#637538778= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538779,#637538780,
#637538449);
#637538779= CURVE_ELEMENT_LOCATION(#637538431);
#637538780= EULER_ANGLES((0.,0.,0.));
#637538783= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538785= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538788= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538790= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538792= CURVE_3D_ELEMENT_REPRESENTATION('1',(#637538794,#637538431),
#637538433,(#637538251,#637538293),#637538280,#637538437,#637538799,
#637538398);
#637538794= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538795
);
#637538795= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538796);
#637538796= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538799= CURVE_3D_ELEMENT_PROPERTY('PBAR.1','',(#637538801),(
#637538806,#637538808),(#637538811,#637538813));
#637538801= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538802,#637538803,
#637538449);
#637538802= CURVE_ELEMENT_LOCATION(#637538431);
#637538803= EULER_ANGLES((0.,0.,0.));
#637538806= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538808= CURVE_ELEMENT_END_OFFSET(#637538282,(0.,0.,0.));
#637538811= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538813= CURVE_ELEMENT_END_RELEASE(#637538282,(#637538463,#637538464,
#637538465,#637538466,#637538467));
#637538815= ID_ATTRIBUTE('MAT1.1',#637538410);
#637538816= DESCRIPTION_ATTRIBUTE('Elasticity',#637538400);
#637538817= DESCRIPTION_ATTRIBUTE('MassDensity',#637538415);
#637538818= DESCRIPTION_ATTRIBUTE('TangentCTE',#637538420);
#637538819= CONTROL(#637538280,'Control.0','FemConvert',
'MSC.NASTRAN JOB CREATED ON 10-JUL-00 AT 06:54:00',('<SOL>101</SOL>',
'TIME 600','CEND','<GLOBALCASE>0</GLOBALCASE>','<SUBCASE>1</SUBCASE>',
'<SUBCASE>2</SUBCASE>','ENDDATA'),('NASTRAN'));
#637538822= CONTROL_LINEAR_STATIC_ANALYSIS_STEP(#637538819,
'STATIC STEP 2',2,#637538823,'',#637538824);
#637538823= SPECIFIED_STATE('STEP DEFAULT','default_initial_state');
#637538824= CONTROL_LINEAR_STATIC_LOAD_INCREMENT_PROCESS('STATIC STEP 2'
,'',#637538825);
#637538825= SPECIFIED_STATE('Step 2 Base Specified State',
'Relating Specified State');
#637538826= OUTPUT_REQUEST_STATE('Step 2 Output Request State','',(
#637538822));
#637538828= NODAL_FREEDOM_VALUES(#637538826,#637538829,#637538282,
#637538831,(UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.)));
#637538829= NODE_GROUP('','ALL',#637538280,(#637538251,#637538293,
#637538297,#637538301,#637538305,#637538309,#637538313,#637538317,
#637538321,#637538325,#637538329,#637538333,#637538337,#637538341,
#637538345,#637538349,#637538353));
#637538831= FREEDOMS_LIST((ENUMERATED_DEGREE_OF_FREEDOM(.X_TRANSLATION.)
,ENUMERATED_DEGREE_OF_FREEDOM(.Y_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.Z_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.X_ROTATION.),ENUMERATED_DEGREE_OF_FREEDOM(
.Y_ROTATION.),ENUMERATED_DEGREE_OF_FREEDOM(.Z_ROTATION.)));
#637538834= SINGLE_POINT_CONSTRAINT_ELEMENT('SPC1_1.0',(#637538836,
#637538822),#637538251,#637538282,(#637538840,#637538841,#637538842,
#637538843,#637538844,#637538845),'');
#637538836= CONTROL_LINEAR_STATIC_ANALYSIS_STEP(#637538819,
'STATIC STEP 1',1,#637538823,'',#637538837);
#637538837= CONTROL_LINEAR_STATIC_LOAD_INCREMENT_PROCESS('STATIC STEP 1'
,'',#637538838);
#637538838= SPECIFIED_STATE('Step 1 Base Specified State',
'Relating Specified State');
#637538840= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.X_TRANSLATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538841= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.Y_TRANSLATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538842= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.Z_TRANSLATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538843= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.X_ROTATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538844= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.Y_ROTATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538845= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.Z_ROTATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538846= SINGLE_POINT_CONSTRAINT_ELEMENT_VALUES(#637538847,#637538834
,#637538848,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)
,CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538847= SPECIFIED_STATE('SPCVALSTATE_1_2','');
#637538848= FREEDOMS_LIST((ENUMERATED_DEGREE_OF_FREEDOM(.X_TRANSLATION.)
,ENUMERATED_DEGREE_OF_FREEDOM(.Y_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.Z_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.X_ROTATION.),ENUMERATED_DEGREE_OF_FREEDOM(
.Y_ROTATION.),ENUMERATED_DEGREE_OF_FREEDOM(.Z_ROTATION.)));
#637538851= SPECIFIED_STATE('SPCCASE_2_2_1','Aggregator SPC 2 Step 1');
#637538852= STATE_RELATIONSHIP(
'SPCCASE_2_2_1 is related to Step 1 Base Specified State','',#637538838,
#637538851);
#637538853= STATE_RELATIONSHIP(
'SPCVALSTATE_1_2 is related to SPCCASE_2_2_1','',#637538851,#637538847);
#637538854= LINEARLY_SUPERIMPOSED_STATE('LOADSTATECOMBINATION_2',
'Overall Factor Combined State');
#637538856= STATE_RELATIONSHIP(
'LOADSTATECOMBINATION_2 is related to Step 2 Base Specified State','',
#637538825,#637538854);
#637538857= STATE_RELATIONSHIP(
'LOADSTATECOMBINATION_2 is related to Step 1 Base Specified State','',
#637538838,#637538854);
#637538858= STATE_COMPONENT('OverallComp','',#637538854,1.);
#637538860= STATE_RELATIONSHIP(
'LOADSTATEITEM_4 is related to OverallComp','',#637538858,#637538861);
#637538861= LINEARLY_SUPERIMPOSED_STATE('LOADSTATEITEM_4',
'Item Factor State');
#637538862= STATE_RELATIONSHIP(
'LOADSTATEITEM_3 is related to OverallComp','',#637538858,#637538863);
#637538863= LINEARLY_SUPERIMPOSED_STATE('LOADSTATEITEM_3',
'Item Factor State');
#637538864= STATE_RELATIONSHIP(
'LOADSTATEITEM_1 is related to OverallComp','',#637538858,#637538865);
#637538865= LINEARLY_SUPERIMPOSED_STATE('LOADSTATEITEM_1',
'Item Factor State');
#637538866= SPECIFIED_STATE('LOADSTATECORE_1',
'Core Loads Specified State');
#637538867= STATE_RELATIONSHIP(
'LOADSTATECORE_1 is related to ItemComp_2_1','',#637538868,#637538866);
#637538868= STATE_COMPONENT('ItemComp_2_1','',#637538865,1.);
#637538870= NODAL_FREEDOM_ACTION_DEFINITION(#637538866,#637538353,
#637538282,#637538871,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-1010.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538871= FREEDOMS_LIST((ENUMERATED_DEGREE_OF_FREEDOM(.X_TRANSLATION.)
,ENUMERATED_DEGREE_OF_FREEDOM(.Y_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.Z_TRANSLATION.)));
#637538874= SPECIFIED_STATE('LOADSTATECORE_3',
'Core Loads Specified State');
#637538875= STATE_RELATIONSHIP(
'LOADSTATECORE_3 is related to ItemComp_2_3','',#637538876,#637538874);
#637538876= STATE_COMPONENT('ItemComp_2_3','',#637538863,1.);
#637538878= NODAL_FREEDOM_ACTION_DEFINITION(#637538874,#637538329,
#637538282,#637538871,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-10.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538880= SPECIFIED_STATE('LOADSTATECORE_4',
'Core Loads Specified State');
#637538881= STATE_RELATIONSHIP(
'LOADSTATECORE_4 is related to ItemComp_2_4','',#637538882,#637538880);
#637538882= STATE_COMPONENT('ItemComp_2_4','',#637538861,1.);
#637538884= NODAL_FREEDOM_ACTION_DEFINITION(#637538880,#637538349,
#637538282,#637538871,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-20.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538886= NODAL_FREEDOM_ACTION_DEFINITION(#637538880,#637538345,
#637538282,#637538871,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-20.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538888= NODAL_FREEDOM_ACTION_DEFINITION(#637538880,#637538341,
#637538282,#637538871,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-20.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538890= NODAL_FREEDOM_ACTION_DEFINITION(#637538880,#637538337,
#637538282,#637538871,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-20.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538892= NODAL_FREEDOM_ACTION_DEFINITION(#637538880,#637538333,
#637538282,#637538871,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-20.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538894= OUTPUT_REQUEST_STATE('Step 1 Output Request State','',(
#637538836));
#637538896= NODAL_FREEDOM_VALUES(#637538894,#637538829,#637538282,
#637538831,(UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.)));
#637538898= ID_ATTRIBUTE('ALL',#637538829);
#637538899= SPECIFIED_STATE('SPCCASE_2_2_2','Aggregator SPC 2 Step 2');
#637538900= STATE_RELATIONSHIP(
'SPCCASE_2_2_2 is related to Step 2 Base Specified State','',#637538825,
#637538899);
ENDSEC;
END-ISO-10303-21;
-851
View File
@@ -1,851 +0,0 @@
ISO-10303-21;
HEADER;
/******************************************************************************************
* STEP Physical File produced by: The EXPRESS Data Manager Version 5.01.0100.b03 SimDM : 25 Apr 2012
* Module: EDMstepFileFactory/EDMstandAlone
* Creation date: Mon Jul 09 13:15:29 2012
* Host: AER4WA926171Z
* Database: C:\Documents and Settings\johnsjc2\Desktop\AP209\SimDM2010\DevCM\db\d
* Database version: 5207
* Database creation date: Wed Apr 18 15:33:55 2012
* Schema: AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF
* Model: DataRepository.FemTest
* Model creation date: Mon Jul 09 13:15:29 2012
* Header model:
* EDMuser: superuser
* EDMgroup:
* License ID and type: 5565 : Project license. Expiry date: 31 Dec 2012
* EDMstepFileFactory options: 010000000
******************************************************************************************/
FILE_DESCRIPTION((''),'2;1');
FILE_NAME(
'C:\\Documents and Settings\\johnsjc2\\Desktop\\AP209\\SimDM2010\\DevCM\\db\\d.DataRepository.FemTest'
,
'2012-07-09T13:15:29',
('ANONYMOUS USER'),
('ANONYMOUS ORGANISATION'),
'The EXPRESS Data Manager Version 5.01.0100.b03 SimDM : 25 Apr 2012',
'',
'');
FILE_SCHEMA(('AP209_MULTIDISCIPLINARY_ANALYSIS_AND_DESIGN_MIM_LF'));
ENDSEC;
DATA;
#637538235= APPLICATION_CONTEXT('SimDM');
#637538237= PRODUCT_DEFINITION_CONTEXT('assembly definition',#637538235,
'life cycle stage');
#637538239= PRODUCT_DEFINITION('default-id.0',$,#637538240,#637538244);
#637538240= PRODUCT_DEFINITION_FORMATION('default-id.0','',#637538241);
#637538241= PRODUCT('default-id.0','default-fea-part','',(#637538243));
#637538243= PRODUCT_CONTEXT('design_context',#637538235,'design_context'
);
#637538244= PRODUCT_DEFINITION_CONTEXT(
'product_definition_context_name_1',#637538245,'ANALYSIS-STAGE');
#637538245= APPLICATION_CONTEXT('FEA-ANALYSIS-DOMAIN');
#637538247= PRODUCT_DEFINITION_SHAPE('name',$,#637538239);
#637538248= SHAPE_DEFINITION_REPRESENTATION(#637538247,#637538249);
#637538249= POINT_REPRESENTATION('point_representation_name_1',(
#637538251,#637538359),#637538257);
#637538251= NODE_SET('node_set_name_1',(#637538253,#637538295,#637538299
,#637538303,#637538307,#637538311,#637538315,#637538319,#637538323,
#637538327,#637538331,#637538335,#637538339,#637538343,#637538347,
#637538351,#637538355));
#637538253= NODE('1',(#637538255),#637538257,#637538282);
#637538255= CARTESIAN_POINT('1',(0.,-2.,1.));
#637538257=
/* GEOMETRIC_REPRESENTATION_CONTEXT+GLOBAL_UNIT_ASSIGNED_CONTEXT */(
GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNIT_ASSIGNED_CONTEXT((
#637538260,#637538268,#637538271,#637538265,#637538263,#637538274,
#637538275,#637538278,#637538281,#637538267))REPRESENTATION_CONTEXT(
'CORD2R.1','3d'));
#637538260= SI_ENERGY_UNIT((#637538262,#637538264,#637538266),*,$,
.JOULE.);
#637538262= DERIVED_UNIT_ELEMENT(#637538263,1.);
#637538263= /* MASS_UNIT+SI_UNIT */(MASS_UNIT()NAMED_UNIT(*)SI_UNIT(
.KILO.,.GRAM.));
#637538264= DERIVED_UNIT_ELEMENT(#637538265,2.);
#637538265= /* LENGTH_UNIT+SI_UNIT */(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(
$,.METRE.));
#637538266= DERIVED_UNIT_ELEMENT(#637538267,-2.);
#637538267= /* SI_UNIT+TIME_UNIT */(NAMED_UNIT(*)SI_UNIT($,.SECOND.)
TIME_UNIT());
#637538268= SI_FORCE_UNIT((#637538262,#637538270,#637538266),*,$,
.NEWTON.);
#637538270= DERIVED_UNIT_ELEMENT(#637538265,1.);
#637538271= SI_FREQUENCY_UNIT((#637538273),*,$,.HERTZ.);
#637538273= DERIVED_UNIT_ELEMENT(#637538267,-1.);
#637538274= /* PLANE_ANGLE_UNIT+SI_UNIT */(NAMED_UNIT(*)PLANE_ANGLE_UNIT
()SI_UNIT($,.RADIAN.));
#637538275= SI_POWER_UNIT((#637538262,#637538264,#637538277),*,$,.WATT.
);
#637538277= DERIVED_UNIT_ELEMENT(#637538267,-3.);
#637538278= SI_PRESSURE_UNIT((#637538262,#637538280,#637538266),*,$,
.PASCAL.);
#637538280= DERIVED_UNIT_ELEMENT(#637538265,-1.);
#637538281= /* SI_UNIT+THERMODYNAMIC_TEMPERATURE_UNIT */(NAMED_UNIT(*)
SI_UNIT($,.DEGREE_CELSIUS.)THERMODYNAMIC_TEMPERATURE_UNIT());
#637538282= FEA_MODEL_3D('Identification',(#637538284),#637538291,
'NASTRAN BDF Converter v0.0.0',('NASTRAN'),'AnalysisModelType');
#637538284= FEA_AXIS2_PLACEMENT_3D('0',#637538285,#637538287,#637538289,
.CARTESIAN.,'FEA_BASIC_COORD_SYSTEM.0');
#637538285= CARTESIAN_POINT('',(0.,0.,0.));
#637538287= DIRECTION('AxisZ',(0.,0.,1.));
#637538289= DIRECTION('RefX',(1.,0.,0.));
#637538291=
/* GEOMETRIC_REPRESENTATION_CONTEXT+GLOBAL_UNIT_ASSIGNED_CONTEXT */(
GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNIT_ASSIGNED_CONTEXT((
#637538260,#637538268,#637538271,#637538265,#637538263,#637538274,
#637538275,#637538278,#637538281,#637538267))REPRESENTATION_CONTEXT(
'FEA_BASIC_COORD_SYSTEM.0','3d'));
#637538295= NODE('2',(#637538297),#637538257,#637538282);
#637538297= CARTESIAN_POINT('2',(1.,-2.,1.));
#637538299= NODE('3',(#637538301),#637538257,#637538282);
#637538301= CARTESIAN_POINT('3',(2.,-2.,1.));
#637538303= NODE('4',(#637538305),#637538257,#637538282);
#637538305= CARTESIAN_POINT('4',(3.,-2.,1.));
#637538307= NODE('5',(#637538309),#637538257,#637538282);
#637538309= CARTESIAN_POINT('5',(4.,-2.,1.));
#637538311= NODE('6',(#637538313),#637538257,#637538282);
#637538313= CARTESIAN_POINT('6',(5.,-2.,1.));
#637538315= NODE('7',(#637538317),#637538257,#637538282);
#637538317= CARTESIAN_POINT('7',(6.,-2.,1.));
#637538319= NODE('8',(#637538321),#637538257,#637538282);
#637538321= CARTESIAN_POINT('8',(7.,-2.,1.));
#637538323= NODE('9',(#637538325),#637538257,#637538282);
#637538325= CARTESIAN_POINT('9',(8.,-2.,1.));
#637538327= NODE('10',(#637538329),#637538257,#637538282);
#637538329= CARTESIAN_POINT('10',(9.,-2.,1.));
#637538331= NODE('11',(#637538333),#637538257,#637538282);
#637538333= CARTESIAN_POINT('11',(10.,-2.,1.));
#637538335= NODE('12',(#637538337),#637538257,#637538282);
#637538337= CARTESIAN_POINT('12',(11.,-2.,1.));
#637538339= NODE('13',(#637538341),#637538257,#637538282);
#637538341= CARTESIAN_POINT('13',(12.,-2.,1.));
#637538343= NODE('14',(#637538345),#637538257,#637538282);
#637538345= CARTESIAN_POINT('14',(13.,-2.,1.));
#637538347= NODE('15',(#637538349),#637538257,#637538282);
#637538349= CARTESIAN_POINT('15',(14.,-2.,1.));
#637538351= NODE('16',(#637538353),#637538257,#637538282);
#637538353= CARTESIAN_POINT('16',(15.,-2.,1.));
#637538355= NODE('17',(#637538357),#637538257,#637538282);
#637538357= CARTESIAN_POINT('17',(16.,-2.,1.));
#637538359= FEA_AXIS2_PLACEMENT_3D('1',#637538360,#637538362,#637538364,
.CARTESIAN.,'CORD2R.1');
#637538360= CARTESIAN_POINT('',(0.,0.,0.));
#637538362= DIRECTION('AxisZ',(0.,0.,1.));
#637538364= DIRECTION('RefX',(1.,0.,0.));
#637538366= FEA_MODEL_DEFINITION('fea_model_definition_id_1',$,
#637538247,.U.);
#637538367= STRUCTURAL_RESPONSE_PROPERTY(
'structural_response_property_id_1',$,#637538366);
#637538368= STRUCTURAL_RESPONSE_PROPERTY_DEFINITION_REPRESENTATION(
#637538367,#637538282);
#637538369= NAME_ATTRIBUTE('',#637538239);
#637538370= APPLIED_CLASSIFICATION_ASSIGNMENT(#637538371,#637538372,(
#637538239));
#637538371= GROUP('default-gpvv-type',$);
#637538372= CLASSIFICATION_ROLE('view_type',$);
#637538374= APPLIED_IDENTIFICATION_ASSIGNMENT('default-id.0',#637538375,
(#637538240,#637538239,#637538241));
#637538375= IDENTIFICATION_ROLE('default-role',$);
#637538377= APPLIED_ORGANIZATION_ASSIGNMENT(#637538378,#637538379,(
#637538374));
#637538378= ORGANIZATION($,'default-organization',$);
#637538379= ORGANIZATION_ROLE('id context');
#637538381= APPLIED_CLASSIFICATION_ASSIGNMENT(#637538382,#637538383,(
#637538374));
#637538382= GROUP('id',$);
#637538383= CLASSIFICATION_ROLE('',$);
#637538385= APPLICATION_PROTOCOL_DEFINITION('status',
'ap203_configuration_controlled_3d_design_of_mechanical_parts_and_assemblies'
,2011,#637538235);
#637538386= DESCRIPTION_ATTRIBUTE('SimDM',#637538235);
#637538387= ID_ATTRIBUTE('SimDM',#637538235);
#637538388= DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
#637538389= PRODUCT_RELATED_PRODUCT_CATEGORY('document',$,());
#637538391= PRODUCT_RELATED_PRODUCT_CATEGORY('product',$,(#637538241));
#637538393= DESCRIPTION_ATTRIBUTE('',#637538245);
#637538394= CARTESIAN_POINT('0',(0.,0.,0.));
#637538396= DUMMY_NODE('0',(#637538394),#637538291,#637538282);
#637538398= ITEM_DEFINED_TRANSFORMATION('','',#637538284,#637538359);
#637538399= REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION('','',
#637538282,#637538249,#637538398);
#637538400= ELEMENT_MATERIAL('MAT1.1','Fea Material',(#637538402,
#637538417,#637538422));
#637538402= FEA_MATERIAL_PROPERTY_REPRESENTATION(#637538403,#637538405,
#637538409);
#637538403= MATERIAL_PROPERTY('MAT1.1.0',$,#637538404);
#637538404= CHARACTERIZED_OBJECT('material_property',$);
#637538405= REPRESENTATION('representation_id_2',(#637538407),#637538291
);
#637538407= FEA_LINEAR_ELASTICITY('',FEA_ISOTROPIC_SYMMETRIC_TENSOR4_3D(
(10000000.,0.33)));
#637538409= DATA_ENVIRONMENT('DATA_ENV','Property_conditions',(
#637538411));
#637538411= PROPERTY_DEFINITION_REPRESENTATION(#637538412,#637538414);
#637538412= PROPERTY_DEFINITION('Material Property Definition',$,
#637538413);
#637538413= CHARACTERIZED_OBJECT('property',$);
#637538414= REPRESENTATION('representation_id_1',(#637538416),#637538291
);
#637538416= MEASURE_REPRESENTATION_ITEM('representation_item_name_1',
CONTEXT_DEPENDENT_MEASURE(70.),#637538281);
#637538417= FEA_MATERIAL_PROPERTY_REPRESENTATION(#637538418,#637538419,
#637538409);
#637538418= MATERIAL_PROPERTY('MAT1.1.1',$,#637538404);
#637538419= REPRESENTATION('representation_id_3',(#637538421),#637538291
);
#637538421= FEA_MASS_DENSITY('',0.000254);
#637538422= FEA_MATERIAL_PROPERTY_REPRESENTATION(#637538423,#637538424,
#637538409);
#637538423= MATERIAL_PROPERTY('MAT1.1.2',$,#637538404);
#637538424= REPRESENTATION('representation_id_4',(#637538426),#637538291
);
#637538426= FEA_TANGENTIAL_COEFFICIENT_OF_LINEAR_THERMAL_EXPANSION('',
ISOTROPIC_SYMMETRIC_TENSOR2_3D(0.));
#637538427= CURVE_3D_ELEMENT_REPRESENTATION('16',(#637538429,#637538433)
,#637538435,(#637538351,#637538355),#637538282,#637538439,#637538445,
#637538400);
#637538429= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538430
);
#637538430= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538431);
#637538431= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538433= FEA_PARAMETRIC_POINT('',(1.,0.,0.));
#637538435= PARAMETRIC_REPRESENTATION_CONTEXT(
'parametric_representation_context','parametric');
#637538439= CURVE_3D_ELEMENT_DESCRIPTOR(.LINEAR_ORDER.,'LINEAR_CURVE.CBAR*',((
ENUMERATED_CURVE_ELEMENT_PURPOSE(.AXIAL.)),(
ENUMERATED_CURVE_ELEMENT_PURPOSE(.Y_Y_BENDING.),
ENUMERATED_CURVE_ELEMENT_PURPOSE(.Z_Z_BENDING.)),(
ENUMERATED_CURVE_ELEMENT_PURPOSE(.TORSION.)),(
ENUMERATED_CURVE_ELEMENT_PURPOSE(.X_Y_SHEAR.),
ENUMERATED_CURVE_ELEMENT_PURPOSE(.X_Z_SHEAR.))));
#637538445= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.16','',(#637538447),(
#637538458,#637538460),(#637538463,#637538470));
#637538447= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538448,#637538449,
#637538451);
#637538448= CURVE_ELEMENT_LOCATION(#637538433);
#637538449= EULER_ANGLES((0.,0.,0.));
#637538451= CURVE_ELEMENT_SECTION_DERIVED_DEFINITIONS('PBAR.1_0',0.,8.,(
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)),(2.667,
10.667,0.),0.,CONTEXT_DEPENDENT_MEASURE(0.),(CONTEXT_DEPENDENT_MEASURE(
0.),CONTEXT_DEPENDENT_MEASURE(0.)),(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)),(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.)),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.));
#637538458= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538460= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538463= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538465= CURVE_ELEMENT_END_RELEASE_PACKET(
ENUMERATED_CURVE_ELEMENT_FREEDOM(.X_TRANSLATION.),0.);
#637538466= CURVE_ELEMENT_END_RELEASE_PACKET(
ENUMERATED_CURVE_ELEMENT_FREEDOM(.Y_TRANSLATION.),0.);
#637538467= CURVE_ELEMENT_END_RELEASE_PACKET(
ENUMERATED_CURVE_ELEMENT_FREEDOM(.Z_TRANSLATION.),0.);
#637538468= CURVE_ELEMENT_END_RELEASE_PACKET(
ENUMERATED_CURVE_ELEMENT_FREEDOM(.X_ROTATION.),0.);
#637538469= CURVE_ELEMENT_END_RELEASE_PACKET(
ENUMERATED_CURVE_ELEMENT_FREEDOM(.Z_ROTATION.),0.);
#637538470= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538472= CURVE_3D_ELEMENT_REPRESENTATION('15',(#637538474,#637538433)
,#637538435,(#637538347,#637538351),#637538282,#637538439,#637538479,
#637538400);
#637538474= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538475
);
#637538475= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538476);
#637538476= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538479= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.15','',(#637538481),(
#637538486,#637538488),(#637538491,#637538493));
#637538481= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538482,#637538483,
#637538451);
#637538482= CURVE_ELEMENT_LOCATION(#637538433);
#637538483= EULER_ANGLES((0.,0.,0.));
#637538486= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538488= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538491= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538493= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538495= CURVE_3D_ELEMENT_REPRESENTATION('14',(#637538497,#637538433)
,#637538435,(#637538343,#637538347),#637538282,#637538439,#637538502,
#637538400);
#637538497= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538498
);
#637538498= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538499);
#637538499= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538502= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.14','',(#637538504),(
#637538509,#637538511),(#637538514,#637538516));
#637538504= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538505,#637538506,
#637538451);
#637538505= CURVE_ELEMENT_LOCATION(#637538433);
#637538506= EULER_ANGLES((0.,0.,0.));
#637538509= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538511= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538514= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538516= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538518= CURVE_3D_ELEMENT_REPRESENTATION('13',(#637538520,#637538433)
,#637538435,(#637538339,#637538343),#637538282,#637538439,#637538525,
#637538400);
#637538520= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538521
);
#637538521= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538522);
#637538522= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538525= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.13','',(#637538527),(
#637538532,#637538534),(#637538537,#637538539));
#637538527= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538528,#637538529,
#637538451);
#637538528= CURVE_ELEMENT_LOCATION(#637538433);
#637538529= EULER_ANGLES((0.,0.,0.));
#637538532= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538534= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538537= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538539= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538541= CURVE_3D_ELEMENT_REPRESENTATION('12',(#637538543,#637538433)
,#637538435,(#637538335,#637538339),#637538282,#637538439,#637538548,
#637538400);
#637538543= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538544
);
#637538544= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538545);
#637538545= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538548= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.12','',(#637538550),(
#637538555,#637538557),(#637538560,#637538562));
#637538550= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538551,#637538552,
#637538451);
#637538551= CURVE_ELEMENT_LOCATION(#637538433);
#637538552= EULER_ANGLES((0.,0.,0.));
#637538555= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538557= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538560= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538562= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538564= CURVE_3D_ELEMENT_REPRESENTATION('11',(#637538566,#637538433)
,#637538435,(#637538331,#637538335),#637538282,#637538439,#637538571,
#637538400);
#637538566= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538567
);
#637538567= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538568);
#637538568= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538571= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.11','',(#637538573),(
#637538578,#637538580),(#637538583,#637538585));
#637538573= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538574,#637538575,
#637538451);
#637538574= CURVE_ELEMENT_LOCATION(#637538433);
#637538575= EULER_ANGLES((0.,0.,0.));
#637538578= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538580= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538583= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538585= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538587= CURVE_3D_ELEMENT_REPRESENTATION('10',(#637538589,#637538433)
,#637538435,(#637538327,#637538331),#637538282,#637538439,#637538594,
#637538400);
#637538589= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538590
);
#637538590= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538591);
#637538591= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538594= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.10','',(#637538596),(
#637538601,#637538603),(#637538606,#637538608));
#637538596= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538597,#637538598,
#637538451);
#637538597= CURVE_ELEMENT_LOCATION(#637538433);
#637538598= EULER_ANGLES((0.,0.,0.));
#637538601= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538603= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538606= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538608= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538610= CURVE_3D_ELEMENT_REPRESENTATION('9',(#637538612,#637538433),
#637538435,(#637538323,#637538327),#637538282,#637538439,#637538617,
#637538400);
#637538612= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538613
);
#637538613= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538614);
#637538614= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538617= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.9','',(#637538619),(
#637538624,#637538626),(#637538629,#637538631));
#637538619= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538620,#637538621,
#637538451);
#637538620= CURVE_ELEMENT_LOCATION(#637538433);
#637538621= EULER_ANGLES((0.,0.,0.));
#637538624= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538626= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538629= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538631= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538633= CURVE_3D_ELEMENT_REPRESENTATION('8',(#637538635,#637538433),
#637538435,(#637538319,#637538323),#637538282,#637538439,#637538640,
#637538400);
#637538635= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538636
);
#637538636= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538637);
#637538637= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538640= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.8','',(#637538642),(
#637538647,#637538649),(#637538652,#637538654));
#637538642= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538643,#637538644,
#637538451);
#637538643= CURVE_ELEMENT_LOCATION(#637538433);
#637538644= EULER_ANGLES((0.,0.,0.));
#637538647= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538649= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538652= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538654= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538656= CURVE_3D_ELEMENT_REPRESENTATION('7',(#637538658,#637538433),
#637538435,(#637538315,#637538319),#637538282,#637538439,#637538663,
#637538400);
#637538658= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538659
);
#637538659= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538660);
#637538660= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538663= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.7','',(#637538665),(
#637538670,#637538672),(#637538675,#637538677));
#637538665= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538666,#637538667,
#637538451);
#637538666= CURVE_ELEMENT_LOCATION(#637538433);
#637538667= EULER_ANGLES((0.,0.,0.));
#637538670= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538672= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538675= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538677= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538679= CURVE_3D_ELEMENT_REPRESENTATION('6',(#637538681,#637538433),
#637538435,(#637538311,#637538315),#637538282,#637538439,#637538686,
#637538400);
#637538681= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538682
);
#637538682= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538683);
#637538683= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538686= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.6','',(#637538688),(
#637538693,#637538695),(#637538698,#637538700));
#637538688= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538689,#637538690,
#637538451);
#637538689= CURVE_ELEMENT_LOCATION(#637538433);
#637538690= EULER_ANGLES((0.,0.,0.));
#637538693= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538695= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538698= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538700= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538702= CURVE_3D_ELEMENT_REPRESENTATION('5',(#637538704,#637538433),
#637538435,(#637538307,#637538311),#637538282,#637538439,#637538709,
#637538400);
#637538704= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538705
);
#637538705= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538706);
#637538706= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538709= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.5','',(#637538711),(
#637538716,#637538718),(#637538721,#637538723));
#637538711= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538712,#637538713,
#637538451);
#637538712= CURVE_ELEMENT_LOCATION(#637538433);
#637538713= EULER_ANGLES((0.,0.,0.));
#637538716= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538718= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538721= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538723= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538725= CURVE_3D_ELEMENT_REPRESENTATION('4',(#637538727,#637538433),
#637538435,(#637538303,#637538307),#637538282,#637538439,#637538732,
#637538400);
#637538727= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538728
);
#637538728= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538729);
#637538729= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538732= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.4','',(#637538734),(
#637538739,#637538741),(#637538744,#637538746));
#637538734= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538735,#637538736,
#637538451);
#637538735= CURVE_ELEMENT_LOCATION(#637538433);
#637538736= EULER_ANGLES((0.,0.,0.));
#637538739= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538741= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538744= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538746= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538748= CURVE_3D_ELEMENT_REPRESENTATION('3',(#637538750,#637538433),
#637538435,(#637538299,#637538303),#637538282,#637538439,#637538755,
#637538400);
#637538750= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538751
);
#637538751= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538752);
#637538752= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538755= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.3','',(#637538757),(
#637538762,#637538764),(#637538767,#637538769));
#637538757= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538758,#637538759,
#637538451);
#637538758= CURVE_ELEMENT_LOCATION(#637538433);
#637538759= EULER_ANGLES((0.,0.,0.));
#637538762= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538764= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538767= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538769= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538771= CURVE_3D_ELEMENT_REPRESENTATION('2',(#637538773,#637538433),
#637538435,(#637538295,#637538299),#637538282,#637538439,#637538778,
#637538400);
#637538773= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538774
);
#637538774= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538775);
#637538775= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538778= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.2','',(#637538780),(
#637538785,#637538787),(#637538790,#637538792));
#637538780= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538781,#637538782,
#637538451);
#637538781= CURVE_ELEMENT_LOCATION(#637538433);
#637538782= EULER_ANGLES((0.,0.,0.));
#637538785= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538787= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538790= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538792= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538794= CURVE_3D_ELEMENT_REPRESENTATION('1',(#637538796,#637538433),
#637538435,(#637538253,#637538295),#637538282,#637538439,#637538801,
#637538400);
#637538796= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_SYSTEM('',#637538797
);
#637538797= PARAMETRIC_CURVE_3D_ELEMENT_COORDINATE_DIRECTION('',
#637538798);
#637538798= DIRECTION('dxy',(0.,7.54979000000000E-8,1.));
#637538801= CURVE_3D_ELEMENT_PROPERTY('PBAR.1.1','',(#637538803),(
#637538808,#637538810),(#637538813,#637538815));
#637538803= CURVE_ELEMENT_INTERVAL_CONSTANT(#637538804,#637538805,
#637538451);
#637538804= CURVE_ELEMENT_LOCATION(#637538433);
#637538805= EULER_ANGLES((0.,0.,0.));
#637538808= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538810= CURVE_ELEMENT_END_OFFSET(#637538284,(0.,0.,0.));
#637538813= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538815= CURVE_ELEMENT_END_RELEASE(#637538284,(#637538465,#637538466,
#637538467,#637538468,#637538469));
#637538817= ID_ATTRIBUTE('MAT1.1',#637538412);
#637538818= DESCRIPTION_ATTRIBUTE('Elasticity',#637538402);
#637538819= DESCRIPTION_ATTRIBUTE('MassDensity',#637538417);
#637538820= DESCRIPTION_ATTRIBUTE('TangentCTE',#637538422);
#637538821= CONTROL(#637538282,'Control.0','FemConvert',
'MSC.NASTRAN JOB CREATED ON 10-JUL-00 AT 06:54:00',('<SOL>101</SOL>',
'TIME 600','CEND','<GLOBALCASE>0</GLOBALCASE>','<SUBCASE>1</SUBCASE>',
'<SUBCASE>2</SUBCASE>','ENDDATA'),('NASTRAN'));
#637538824= RESULT_LINEAR_STATIC_ANALYSIS_SUB_STEP(#637538821,#637538825
,#637538826);
#637538825= RESULT('Result.0','FemConvert',
'MSC.NASTRAN JOB CREATED ON 10-JUL-00 AT 06:54:00');
#637538826= CALCULATED_STATE('Calculated State for Step 2','');
#637538827= CONTROL_RESULT_RELATIONSHIP(#637538828,#637538824);
#637538828= CONTROL_LINEAR_STATIC_ANALYSIS_STEP(#637538821,
'STATIC STEP 2',2,#637538829,'',#637538830);
#637538829= SPECIFIED_STATE('STEP DEFAULT','default_initial_state');
#637538830= CONTROL_LINEAR_STATIC_LOAD_INCREMENT_PROCESS('STATIC STEP 2'
,'',#637538831);
#637538831= SPECIFIED_STATE('Step 2 Base Specified State',
'Relating Specified State');
#637538832= RESULT_LINEAR_STATIC_ANALYSIS_SUB_STEP(#637538821,#637538825
,#637538833);
#637538833= CALCULATED_STATE('Calculated State for Step 1','');
#637538834= CONTROL_RESULT_RELATIONSHIP(#637538835,#637538832);
#637538835= CONTROL_LINEAR_STATIC_ANALYSIS_STEP(#637538821,
'STATIC STEP 1',1,#637538829,'',#637538836);
#637538836= CONTROL_LINEAR_STATIC_LOAD_INCREMENT_PROCESS('STATIC STEP 1'
,'',#637538837);
#637538837= SPECIFIED_STATE('Step 1 Base Specified State',
'Relating Specified State');
#637538838= SPECIFIED_STATE('SPCCASE_2_2_1','Aggregator SPC 2 Step 1');
#637538839= STATE_RELATIONSHIP(
'SPCCASE_2_2_1 is related to Step 1 Base Specified State','',#637538837,
#637538838);
#637538840= STATE_RELATIONSHIP(
'SPCVALSTATE_1_2 is related to SPCCASE_2_2_1','',#637538838,#637538841);
#637538841= SPECIFIED_STATE('SPCVALSTATE_1_2','');
#637538842= SINGLE_POINT_CONSTRAINT_ELEMENT_VALUES(#637538841,#637538843
,#637538852,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)
,CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538843= SINGLE_POINT_CONSTRAINT_ELEMENT('SPC1_1.0',(#637538835,
#637538828),#637538253,#637538284,(#637538846,#637538847,#637538848,
#637538849,#637538850,#637538851),'');
#637538846= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.X_TRANSLATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538847= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.Y_TRANSLATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538848= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.Z_TRANSLATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538849= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.X_ROTATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538850= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.Y_ROTATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538851= FREEDOM_AND_COEFFICIENT(ENUMERATED_DEGREE_OF_FREEDOM(
.Z_ROTATION.),CONTEXT_DEPENDENT_MEASURE(1.));
#637538852= FREEDOMS_LIST((ENUMERATED_DEGREE_OF_FREEDOM(.X_TRANSLATION.)
,ENUMERATED_DEGREE_OF_FREEDOM(.Y_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.Z_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.X_ROTATION.),ENUMERATED_DEGREE_OF_FREEDOM(
.Y_ROTATION.),ENUMERATED_DEGREE_OF_FREEDOM(.Z_ROTATION.)));
#637538855= LINEARLY_SUPERIMPOSED_STATE('LOADSTATECOMBINATION_2',
'Overall Factor Combined State');
#637538857= STATE_RELATIONSHIP(
'LOADSTATECOMBINATION_2 is related to Step 2 Base Specified State','',
#637538831,#637538855);
#637538858= STATE_RELATIONSHIP(
'LOADSTATECOMBINATION_2 is related to Step 1 Base Specified State','',
#637538837,#637538855);
#637538859= STATE_COMPONENT('OverallComp','',#637538855,1.);
#637538861= STATE_RELATIONSHIP(
'LOADSTATEITEM_4 is related to OverallComp','',#637538859,#637538862);
#637538862= LINEARLY_SUPERIMPOSED_STATE('LOADSTATEITEM_4',
'Item Factor State');
#637538863= STATE_RELATIONSHIP(
'LOADSTATEITEM_3 is related to OverallComp','',#637538859,#637538864);
#637538864= LINEARLY_SUPERIMPOSED_STATE('LOADSTATEITEM_3',
'Item Factor State');
#637538865= STATE_RELATIONSHIP(
'LOADSTATEITEM_1 is related to OverallComp','',#637538859,#637538866);
#637538866= LINEARLY_SUPERIMPOSED_STATE('LOADSTATEITEM_1',
'Item Factor State');
#637538867= SPECIFIED_STATE('LOADSTATECORE_1',
'Core Loads Specified State');
#637538868= STATE_RELATIONSHIP(
'LOADSTATECORE_1 is related to ItemComp_2_1','',#637538869,#637538867);
#637538869= STATE_COMPONENT('ItemComp_2_1','',#637538866,1.);
#637538871= NODAL_FREEDOM_ACTION_DEFINITION(#637538867,#637538355,
#637538284,#637538872,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-1010.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538872= FREEDOMS_LIST((ENUMERATED_DEGREE_OF_FREEDOM(.X_TRANSLATION.)
,ENUMERATED_DEGREE_OF_FREEDOM(.Y_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.Z_TRANSLATION.)));
#637538875= SPECIFIED_STATE('LOADSTATECORE_3',
'Core Loads Specified State');
#637538876= STATE_RELATIONSHIP(
'LOADSTATECORE_3 is related to ItemComp_2_3','',#637538877,#637538875);
#637538877= STATE_COMPONENT('ItemComp_2_3','',#637538864,1.);
#637538879= NODAL_FREEDOM_ACTION_DEFINITION(#637538875,#637538331,
#637538284,#637538872,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-10.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538881= SPECIFIED_STATE('LOADSTATECORE_4',
'Core Loads Specified State');
#637538882= STATE_RELATIONSHIP(
'LOADSTATECORE_4 is related to ItemComp_2_4','',#637538883,#637538881);
#637538883= STATE_COMPONENT('ItemComp_2_4','',#637538862,1.);
#637538885= NODAL_FREEDOM_ACTION_DEFINITION(#637538881,#637538351,
#637538284,#637538872,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-20.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538887= NODAL_FREEDOM_ACTION_DEFINITION(#637538881,#637538347,
#637538284,#637538872,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-20.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538889= NODAL_FREEDOM_ACTION_DEFINITION(#637538881,#637538343,
#637538284,#637538872,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-20.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538891= NODAL_FREEDOM_ACTION_DEFINITION(#637538881,#637538339,
#637538284,#637538872,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-20.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538893= NODAL_FREEDOM_ACTION_DEFINITION(#637538881,#637538335,
#637538284,#637538872,(CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(-20.),CONTEXT_DEPENDENT_MEASURE(0.)),
.APPLIED_LOADS.);
#637538895= OUTPUT_REQUEST_STATE('Step 1 Output Request State','',(
#637538835));
#637538897= NODAL_FREEDOM_VALUES(#637538895,#637538898,#637538284,
#637538900,(UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.)));
#637538898= NODE_GROUP('','ALL',#637538282,(#637538253,#637538295,
#637538299,#637538303,#637538307,#637538311,#637538315,#637538319,
#637538323,#637538327,#637538331,#637538335,#637538339,#637538343,
#637538347,#637538351,#637538355));
#637538900= FREEDOMS_LIST((ENUMERATED_DEGREE_OF_FREEDOM(.X_TRANSLATION.)
,ENUMERATED_DEGREE_OF_FREEDOM(.Y_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.Z_TRANSLATION.),
ENUMERATED_DEGREE_OF_FREEDOM(.X_ROTATION.),ENUMERATED_DEGREE_OF_FREEDOM(
.Y_ROTATION.),ENUMERATED_DEGREE_OF_FREEDOM(.Z_ROTATION.)));
#637538903= ID_ATTRIBUTE('ALL',#637538898);
#637538904= SPECIFIED_STATE('SPCCASE_2_2_2','Aggregator SPC 2 Step 2');
#637538905= STATE_RELATIONSHIP(
'SPCCASE_2_2_2 is related to Step 2 Base Specified State','',#637538831,
#637538904);
#637538906= OUTPUT_REQUEST_STATE('Step 2 Output Request State','',(
#637538828));
#637538908= NODAL_FREEDOM_VALUES(#637538906,#637538898,#637538284,
#637538900,(UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.),UNSPECIFIED_VALUE(.UNSPECIFIED.),UNSPECIFIED_VALUE(
.UNSPECIFIED.)));
#637538910= NODAL_FREEDOM_VALUES(#637538833,#637538253,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538912= NODAL_FREEDOM_VALUES(#637538833,#637538295,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538914= NODAL_FREEDOM_VALUES(#637538833,#637538299,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538916= NODAL_FREEDOM_VALUES(#637538833,#637538303,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538918= NODAL_FREEDOM_VALUES(#637538833,#637538307,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538920= NODAL_FREEDOM_VALUES(#637538833,#637538311,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538922= NODAL_FREEDOM_VALUES(#637538833,#637538315,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538924= NODAL_FREEDOM_VALUES(#637538833,#637538319,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538926= NODAL_FREEDOM_VALUES(#637538833,#637538323,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538928= NODAL_FREEDOM_VALUES(#637538833,#637538327,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538930= NODAL_FREEDOM_VALUES(#637538833,#637538331,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538932= NODAL_FREEDOM_VALUES(#637538833,#637538335,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538934= NODAL_FREEDOM_VALUES(#637538833,#637538339,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538936= NODAL_FREEDOM_VALUES(#637538833,#637538343,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538938= NODAL_FREEDOM_VALUES(#637538833,#637538347,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538940= NODAL_FREEDOM_VALUES(#637538833,#637538351,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538942= NODAL_FREEDOM_VALUES(#637538833,#637538355,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538944= NODAL_FREEDOM_VALUES(#637538826,#637538253,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538946= NODAL_FREEDOM_VALUES(#637538826,#637538295,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538948= NODAL_FREEDOM_VALUES(#637538826,#637538299,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538950= NODAL_FREEDOM_VALUES(#637538826,#637538303,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538952= NODAL_FREEDOM_VALUES(#637538826,#637538307,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538954= NODAL_FREEDOM_VALUES(#637538826,#637538311,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538956= NODAL_FREEDOM_VALUES(#637538826,#637538315,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538958= NODAL_FREEDOM_VALUES(#637538826,#637538319,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538960= NODAL_FREEDOM_VALUES(#637538826,#637538323,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538962= NODAL_FREEDOM_VALUES(#637538826,#637538327,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538964= NODAL_FREEDOM_VALUES(#637538826,#637538331,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538966= NODAL_FREEDOM_VALUES(#637538826,#637538335,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538968= NODAL_FREEDOM_VALUES(#637538826,#637538339,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538970= NODAL_FREEDOM_VALUES(#637538826,#637538343,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538972= NODAL_FREEDOM_VALUES(#637538826,#637538347,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538974= NODAL_FREEDOM_VALUES(#637538826,#637538351,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
#637538976= NODAL_FREEDOM_VALUES(#637538826,#637538355,#637538284,
#637538900,(CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.),
CONTEXT_DEPENDENT_MEASURE(0.),CONTEXT_DEPENDENT_MEASURE(0.)));
ENDSEC;
END-ISO-10303-21;
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+300
View File
@@ -0,0 +1,300 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((''), '1');
FILE_NAME('MITRE ',
'1998-08-31T15:05:58+02:00',
(''),
(''),
'CATIA.STEP INTERFACE',
'CATIA SOLUTIONS V4 RELEASE 2.1 FR 4.2.1',
'');
FILE_SCHEMA(('PLANT_SPATIAL_CONFIGURATION'));
ENDSEC;
DATA;
#1=APPLICATION_CONTEXT('process plants');
#2=APPLICATION_PROTOCOL_DEFINITION('CD','plant_spatial_configuration',1995,#1);
#3=PRODUCT_CONTEXT('plant design',#1,'process plant');
#4=PRODUCT_DEFINITION_CONTEXT('physical definition',#1,'physical design');
#5=PRODUCT_DEFINITION_CONTEXT('physical occurrence',#1,'physical design');
#6=PRODUCT_DEFINITION_CONTEXT('functional definition',#1,'functional design');
#7=PRODUCT_DEFINITION_CONTEXT('functional occurrence',#1,'functional design');
#8=PRODUCT_DEFINITION_CONTEXT('catalogue definition',#1,'???? design');
#9=CARTESIAN_POINT($,(0.00000000000,0.00000000000,0.00000000000));
#10=DIMENSIONAL_EXPONENTS(0.00000000000,1.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000);
#11=(MASS_UNIT()NAMED_UNIT(#10)SI_UNIT(.KILO.,.GRAM.));
#12=DIMENSIONAL_EXPONENTS(1.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000);
#13=(LENGTH_UNIT()NAMED_UNIT(#12)SI_UNIT(.MILLI.,.METRE.));
#14=GLOBAL_UNIT_ASSIGNED_CONTEXT($,$,(#13));
#15=DESCRIPTIVE_REPRESENTATION_ITEM('flow direction','in');
#16=REPRESENTATION($,(#15),#14);
#17=DESCRIPTIVE_REPRESENTATION_ITEM('flow direction','out');
#18=REPRESENTATION($,(#17),#14);
#19=PLANT_LINE_DEFINITION('U1-P100-10"-CS150R-FG',$,$,#6,$);
#20=PLANT_LINE_SEGMENT_DEFINITION('en_dur',$,$,#6);
#21=PRODUCT_DEFINITION_RELATIONSHIP($,'',$,#19,#20);
#22=PRODUCT_DEFINITION_SHAPE($,$,#20);
#23=SHAPE_DIMENSION_REPRESENTATION($,(#25),$);
#24=SHAPE_DEFINITION_REPRESENTATION(#22,#23);
#25=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('line size'));
#26=DOCUMENT('CS150R',$,$,#28);
#27=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#26,$,(#20));
#28=DOCUMENT_TYPE('piping specification');
#29=DOCUMENT_USAGE_CONSTRAINT(#26,'service description',$);
#30=PRODUCT('',$,$,(#3));
#31=PRODUCT_DEFINITION_FORMATION($,$,#30);
#32=PIPING_COMPONENT_DEFINITION($,$,#31,#4);
#33=PRODUCT_DEFINITION_SHAPE($,$,#32);
#34=PIPING_COMPONENT_DEFINITION($,$,#31,#5);
#35=PRODUCT_DEFINITION_SHAPE($,$,#34);
#36=PRODUCT_DEFINITION_RELATIONSHIP($,'definition usage',$,#32,#34);
#37=PIPE_CLASSIFICATION('straight pipe',$);
#38=CLASSIFICATION_ASSIGNMENT(#37,(#32,#34,#88,#90));
#39=PRODUCT_RELATED_PRODUCT_CATEGORY('pipe',$,(#30,#86,#135));
#40=PRODUCT_DEFINITION_RELATIONSHIP($,'realization',$,#20,#34);
#41=PLANT_ITEM_CONNECTOR($,'end 1',#33,$);
#42=PLANT_ITEM_CONNECTOR($,'end 1',#35,$);
#43=SHAPE_ASPECT_RELATIONSHIP('usage',$,#41,#42);
#44=REPRESENTATION($,(#45,#49),$);
#45=CARTESIAN_POINT('location',(1000.00000000,0.00000000000,0.00000000000));
#46=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
#47=DIRECTION($,(0.101600309323,0.00000000000,0.00000000000));
#48=DIRECTION($,(-0.00000000000,0.00000000000,0.0508001546616));
#49=AXIS2_PLACEMENT_3D('connector orientation',#46,#47,#48);
#50=PROPERTY_DEFINITION($,$,#42);
#51=PROPERTY_DEFINITION_REPRESENTATION(#50,#44);
#52=PLANT_ITEM_CONNECTOR($,'end 2',#33,$);
#53=PLANT_ITEM_CONNECTOR($,'end 2',#35,$);
#54=SHAPE_ASPECT_RELATIONSHIP('usage',$,#52,#53);
#55=REPRESENTATION($,(#56,#60),$);
#56=CARTESIAN_POINT('location',(366.025403784,-4.80740671596E-14,0.00000000000));
#57=CARTESIAN_POINT($,(366.025403784,-4.80740671596E-14,0.00000000000));
#58=DIRECTION($,(-0.101600309323,-0.00000000000,-0.00000000000));
#59=DIRECTION($,(-0.00000000000,0.00000000000,0.0508001546616));
#60=AXIS2_PLACEMENT_3D('connector orientation',#57,#58,#59);
#61=PROPERTY_DEFINITION($,$,#53);
#62=PROPERTY_DEFINITION_REPRESENTATION(#61,#55);
#63=PROPERTY_DEFINITION($,$,#32);
#64=REPRESENTATION('piping component size',(#69),$);
#65=PROPERTY_DEFINITION_REPRESENTATION(#63,#64);
#66=PROPERTY_DEFINITION($,$,#32);
#67=SHAPE_DIMENSION_REPRESENTATION('piping component dimensions',(#70),$);
#68=PROPERTY_DEFINITION_REPRESENTATION(#66,#67);
#69=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('nominal size'));
#70=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(273.050000000),#13)REPRESENTATION_ITEM('outside diameter'));
#71=DOCUMENT($,$,$,#73);
#72=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#71,$,(#64));
#73=DOCUMENT_TYPE('dimensional standard');
#74=DOCUMENT_USAGE_CONSTRAINT(#71,'pipe schedule','STANDARD');
#75=PRODUCT_DEFINITION($,$,$,$);
#76=MATERIAL_PROPERTY($,$,#75);
#77=PRODUCT_DEFINITION_USAGE($,$,$,#32,#75);
#78=DOCUMENT_TYPE('material specification');
#79=DOCUMENT('ASTM A 53',$,$,#78);
#80=DOCUMENT_USAGE_CONSTRAINT(#79,$,'Carbon steel');
#81=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#79,$,(#75,#128,#179));
#82=DIMENSIONAL_LOCATION($,$,#42,#53);
#83=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(633.974596216),#13)REPRESENTATION_ITEM('end to end length'));
#84=SHAPE_DIMENSION_REPRESENTATION('pipe dimensional shape',(#83),#14);
#85=DIMENSIONAL_CHARACTERISTIC_REPRESENTATION(#82,#84);
#86=PRODUCT('',$,$,(#3));
#87=PRODUCT_DEFINITION_FORMATION($,$,#86);
#88=PIPING_COMPONENT_DEFINITION($,$,#87,#4);
#89=PRODUCT_DEFINITION_SHAPE($,$,#88);
#90=PIPING_COMPONENT_DEFINITION($,$,#87,#5);
#91=PRODUCT_DEFINITION_SHAPE($,$,#90);
#92=PRODUCT_DEFINITION_RELATIONSHIP($,'definition usage',$,#88,#90);
#93=PRODUCT_DEFINITION_RELATIONSHIP($,'realization',$,#20,#90);
#94=PLANT_ITEM_CONNECTOR($,'end 1',#89,$);
#95=PLANT_ITEM_CONNECTOR($,'end 1',#91,$);
#96=SHAPE_ASPECT_RELATIONSHIP('usage',$,#94,#95);
#97=REPRESENTATION($,(#98,#102),$);
#98=CARTESIAN_POINT('location',(0.00000000000,366.025403784,0.00000000000));
#99=CARTESIAN_POINT($,(0.00000000000,366.025403784,0.00000000000));
#100=DIRECTION($,(-0.00000000000,-0.101600309323,-0.00000000000));
#101=DIRECTION($,(0.0508001546616,0.00000000000,0.00000000000));
#102=AXIS2_PLACEMENT_3D('connector orientation',#99,#100,#101);
#103=PROPERTY_DEFINITION($,$,#95);
#104=PROPERTY_DEFINITION_REPRESENTATION(#103,#97);
#105=PLANT_ITEM_CONNECTOR($,'end 2',#89,$);
#106=PLANT_ITEM_CONNECTOR($,'end 2',#91,$);
#107=SHAPE_ASPECT_RELATIONSHIP('usage',$,#105,#106);
#108=REPRESENTATION($,(#109,#113),$);
#109=CARTESIAN_POINT('location',(0.00000000000,1000.00000000,0.00000000000));
#110=CARTESIAN_POINT($,(0.00000000000,1000.00000000,0.00000000000));
#111=DIRECTION($,(0.00000000000,0.101600309323,0.00000000000));
#112=DIRECTION($,(0.0508001546616,0.00000000000,0.00000000000));
#113=AXIS2_PLACEMENT_3D('connector orientation',#110,#111,#112);
#114=PROPERTY_DEFINITION($,$,#106);
#115=PROPERTY_DEFINITION_REPRESENTATION(#114,#108);
#116=PROPERTY_DEFINITION($,$,#88);
#117=REPRESENTATION('piping component size',(#122),$);
#118=PROPERTY_DEFINITION_REPRESENTATION(#116,#117);
#119=PROPERTY_DEFINITION($,$,#88);
#120=SHAPE_DIMENSION_REPRESENTATION('piping component dimensions',(#123),$);
#121=PROPERTY_DEFINITION_REPRESENTATION(#119,#120);
#122=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('nominal size'));
#123=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(273.050000000),#13)REPRESENTATION_ITEM('outside diameter'));
#124=DOCUMENT($,$,$,#126);
#125=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#124,$,(#117));
#126=DOCUMENT_TYPE('dimensional standard');
#127=DOCUMENT_USAGE_CONSTRAINT(#124,'pipe schedule','STANDARD');
#128=PRODUCT_DEFINITION($,$,$,$);
#129=MATERIAL_PROPERTY($,$,#128);
#130=PRODUCT_DEFINITION_USAGE($,$,$,#88,#128);
#131=DIMENSIONAL_LOCATION($,$,#95,#106);
#132=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(633.974596216),#13)REPRESENTATION_ITEM('end to end length'));
#133=SHAPE_DIMENSION_REPRESENTATION('pipe dimensional shape',(#132),#14);
#134=DIMENSIONAL_CHARACTERISTIC_REPRESENTATION(#131,#133);
#135=PRODUCT('',$,$,(#3));
#136=PRODUCT_DEFINITION_FORMATION($,$,#135);
#137=PIPING_COMPONENT_DEFINITION($,$,#136,#4);
#138=PRODUCT_DEFINITION_SHAPE($,$,#137);
#139=PIPING_COMPONENT_DEFINITION($,$,#136,#5);
#140=PRODUCT_DEFINITION_SHAPE($,$,#139);
#141=PRODUCT_DEFINITION_RELATIONSHIP($,'definition usage',$,#137,#139);
#142=PIPE_CLASSIFICATION('mitre bend pipe',$);
#143=CLASSIFICATION_ASSIGNMENT(#142,(#137,#139));
#144=PRODUCT_DEFINITION_RELATIONSHIP($,'realization',$,#20,#139);
#145=PLANT_ITEM_CONNECTOR($,'end 1',#138,$);
#146=PLANT_ITEM_CONNECTOR($,'end 1',#140,$);
#147=SHAPE_ASPECT_RELATIONSHIP('usage',$,#145,#146);
#148=REPRESENTATION($,(#149,#153),$);
#149=CARTESIAN_POINT('location',(366.025403784,-4.80740671596E-14,0.00000000000));
#150=CARTESIAN_POINT($,(366.025403784,-4.80740671596E-14,0.00000000000));
#151=DIRECTION($,(1.00000000000,-1.31340794006E-16,0.00000000000));
#152=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#153=AXIS2_PLACEMENT_3D('connector orientation',#150,#151,#152);
#154=PROPERTY_DEFINITION($,$,#146);
#155=PROPERTY_DEFINITION_REPRESENTATION(#154,#148);
#156=PLANT_ITEM_CONNECTOR($,'end 2',#138,$);
#157=PLANT_ITEM_CONNECTOR($,'end 2',#140,$);
#158=SHAPE_ASPECT_RELATIONSHIP('usage',$,#156,#157);
#159=REPRESENTATION($,(#160,#164),$);
#160=CARTESIAN_POINT('location',(0.00000000000,366.025403784,0.00000000000));
#161=CARTESIAN_POINT($,(0.00000000000,366.025403784,0.00000000000));
#162=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#163=DIRECTION($,(1.00000000000,0.00000000000,0.00000000000));
#164=AXIS2_PLACEMENT_3D('connector orientation',#161,#162,#163);
#165=PROPERTY_DEFINITION($,$,#157);
#166=PROPERTY_DEFINITION_REPRESENTATION(#165,#159);
#167=PROPERTY_DEFINITION($,$,#137);
#168=REPRESENTATION('piping component size',(#173),$);
#169=PROPERTY_DEFINITION_REPRESENTATION(#167,#168);
#170=PROPERTY_DEFINITION($,$,#137);
#171=SHAPE_DIMENSION_REPRESENTATION('piping component dimensions',(#174),$);
#172=PROPERTY_DEFINITION_REPRESENTATION(#170,#171);
#173=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('nominal size'));
#174=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(273.050000000),#13)REPRESENTATION_ITEM('outside diameter'));
#175=DOCUMENT($,$,$,#177);
#176=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#175,$,(#168));
#177=DOCUMENT_TYPE('dimensional standard');
#178=DOCUMENT_USAGE_CONSTRAINT(#175,'pipe schedule','STANDARD');
#179=PRODUCT_DEFINITION($,$,$,$);
#180=MATERIAL_PROPERTY($,$,#179);
#181=PRODUCT_DEFINITION_USAGE($,$,$,#137,#179);
#182=PROPERTY_DEFINITION($,$,#139);
#183=REPRESENTATION('pipe characteristics',(#185),$);
#184=PROPERTY_DEFINITION_REPRESENTATION(#182,#183);
#185=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(COUNT_MEASURE(3.00000000000),$)REPRESENTATION_ITEM('number of segments'));
#186=SHAPE_DEFINITION_REPRESENTATION(#33,#187);
#187=SHAPE_REPRESENTATION($,(#235),$);
#188=REPRESENTATION_MAP(#9,#187);
#189=SHAPE_REPRESENTATION($,(#191),#14);
#190=SHAPE_DEFINITION_REPRESENTATION(#35,#189);
#191=MAPPED_ITEM($,#188,#195);
#192=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
#193=DIRECTION($,(-1.00000000000,0.00000000000,0.00000000000));
#194=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#195=AXIS2_PLACEMENT_3D($,#192,#193,#194);
#196=SHAPE_DEFINITION_REPRESENTATION(#89,#197);
#197=SHAPE_REPRESENTATION($,(#251),$);
#198=REPRESENTATION_MAP(#9,#197);
#199=SHAPE_REPRESENTATION($,(#201),#14);
#200=SHAPE_DEFINITION_REPRESENTATION(#91,#199);
#201=MAPPED_ITEM($,#198,#205);
#202=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
#203=DIRECTION($,(-1.00000000000,0.00000000000,0.00000000000));
#204=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#205=AXIS2_PLACEMENT_3D($,#202,#203,#204);
#206=SHAPE_DEFINITION_REPRESENTATION(#138,#207);
#207=SHAPE_REPRESENTATION($,(#267,#283),$);
#208=REPRESENTATION_MAP(#9,#207);
#209=SHAPE_REPRESENTATION($,(#211),#14);
#210=SHAPE_DEFINITION_REPRESENTATION(#140,#209);
#211=MAPPED_ITEM($,#208,#215);
#212=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
#213=DIRECTION($,(-1.00000000000,0.00000000000,0.00000000000));
#214=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#215=AXIS2_PLACEMENT_3D($,#212,#213,#214);
#216=PLANT_ITEM_CONNECTION('',$,$,$,$,'',#146,#53);
#217=CONNECTION_FUNCTIONAL_CLASSIFICATION('fluid transference',$);
#218=CLASSIFICATION_ASSIGNMENT(#217,(#216,#219));
#219=PLANT_ITEM_CONNECTION('',$,$,$,$,'',#157,#95);
#220=CARTESIAN_POINT($,(7.85037143115E-31,0.00000000000,0.00000000000));
#221=DIRECTION($,(-7.58296427752E-17,0.00000000000,1.00000000000));
#222=AXIS1_PLACEMENT($,#220,#221);
#223=RIGHT_CIRCULAR_CYLINDER('',#222,670.556359712,136.525000000);
#224=CARTESIAN_POINT($,(0.00000000000,0.00000000000,0.00000000000));
#225=DIRECTION($,(-0.00000000000,0.00000000000,-1.00000000000));
#226=AXIS2_PLACEMENT_3D($,#224,#225,$);
#227=PLANE($,#226);
#228=HALF_SPACE_SOLID($,#227,$);
#229=CARTESIAN_POINT($,(-4.80740671596E-14,0.00000000000,633.974596216));
#230=DIRECTION($,(0.258819045103,0.00000000000,0.965925826289));
#231=AXIS2_PLACEMENT_3D($,#229,#230,$);
#232=PLANE($,#231);
#233=HALF_SPACE_SOLID($,#232,$);
#234=BOOLEAN_RESULT('',.DIFFERENCE.,#223,#228);
#235=BOOLEAN_RESULT('',.DIFFERENCE.,#234,#233);
#236=CARTESIAN_POINT($,(329.443640288,-0.00000000000,1000.00000000));
#237=DIRECTION($,(1.00000000000,0.00000000000,-8.75605293377E-17));
#238=AXIS1_PLACEMENT($,#236,#237);
#239=RIGHT_CIRCULAR_CYLINDER('',#238,670.556359712,136.525000000);
#240=CARTESIAN_POINT($,(366.025403784,-0.00000000000,1000.00000000));
#241=DIRECTION($,(-0.965925826289,0.00000000000,-0.258819045103));
#242=AXIS2_PLACEMENT_3D($,#240,#241,$);
#243=PLANE($,#242);
#244=HALF_SPACE_SOLID($,#243,$);
#245=CARTESIAN_POINT($,(1000.00000000,-0.00000000000,1000.00000000));
#246=DIRECTION($,(1.00000000000,-0.00000000000,0.00000000000));
#247=AXIS2_PLACEMENT_3D($,#245,#246,$);
#248=PLANE($,#247);
#249=HALF_SPACE_SOLID($,#248,$);
#250=BOOLEAN_RESULT('',.DIFFERENCE.,#239,#244);
#251=BOOLEAN_RESULT('',.DIFFERENCE.,#250,#249);
#252=CARTESIAN_POINT($,(-18.2908817483,0.00000000000,602.293859712));
#253=DIRECTION($,(0.500000000000,-0.00000000000,0.866025403784));
#254=AXIS1_PLACEMENT($,#252,#253);
#255=RIGHT_CIRCULAR_CYLINDER('',#254,341.112719424,136.525000000);
#256=CARTESIAN_POINT($,(-4.80740671596E-14,0.00000000000,633.974596216));
#257=DIRECTION($,(-0.258819045103,0.00000000000,-0.965925826289));
#258=AXIS2_PLACEMENT_3D($,#256,#257,$);
#259=PLANE($,#258);
#260=HALF_SPACE_SOLID($,#259,$);
#261=CARTESIAN_POINT($,(133.974596216,-0.00000000000,866.025403784));
#262=DIRECTION($,(0.707106781187,0.00000000000,0.707106781187));
#263=AXIS2_PLACEMENT_3D($,#261,#262,$);
#264=PLANE($,#263);
#265=HALF_SPACE_SOLID($,#264,$);
#266=BOOLEAN_RESULT('',.DIFFERENCE.,#255,#260);
#267=BOOLEAN_RESULT('',.DIFFERENCE.,#266,#265);
#268=CARTESIAN_POINT($,(102.293859712,-0.00000000000,847.734522036));
#269=DIRECTION($,(0.866025403784,-0.00000000000,0.500000000000));
#270=AXIS1_PLACEMENT($,#268,#269);
#271=RIGHT_CIRCULAR_CYLINDER('',#270,341.112719424,136.525000000);
#272=CARTESIAN_POINT($,(133.974596216,-0.00000000000,866.025403784));
#273=DIRECTION($,(-0.707106781187,0.00000000000,-0.707106781187));
#274=AXIS2_PLACEMENT_3D($,#272,#273,$);
#275=PLANE($,#274);
#276=HALF_SPACE_SOLID($,#275,$);
#277=CARTESIAN_POINT($,(366.025403784,-0.00000000000,1000.00000000));
#278=DIRECTION($,(0.965925826289,0.00000000000,0.258819045103));
#279=AXIS2_PLACEMENT_3D($,#277,#278,$);
#280=PLANE($,#279);
#281=HALF_SPACE_SOLID($,#280,$);
#282=BOOLEAN_RESULT('',.DIFFERENCE.,#271,#276);
#283=BOOLEAN_RESULT('',.DIFFERENCE.,#282,#281);
ENDSEC;
END-ISO-10303-21;
+299
View File
@@ -0,0 +1,299 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((''), '1');
FILE_NAME('MITRE ',
'1998-08-31T15:05:58+02:00',
(''),
(''),
'CATIA.STEP INTERFACE',
'CATIA SOLUTIONS V4 RELEASE 2.1 FR 4.2.1',
'');
FILE_SCHEMA(('PLANT_SPATIAL_CONFIGURATION'));
ENDSEC;
DATA;
#1=APPLICATION_CONTEXT('process plants');
#2=APPLICATION_PROTOCOL_DEFINITION('CD','plant_spatial_configuration',1995,#1);
#3=PRODUCT_CONTEXT('plant design',#1,'process plant');
#4=PRODUCT_DEFINITION_CONTEXT('physical definition',#1,'physical design');
#5=PRODUCT_DEFINITION_CONTEXT('physical occurrence',#1,'physical design');
#6=PRODUCT_DEFINITION_CONTEXT('functional definition',#1,'functional design');
#7=PRODUCT_DEFINITION_CONTEXT('functional occurrence',#1,'functional design');
#8=PRODUCT_DEFINITION_CONTEXT('catalogue definition',#1,'???? design');
#9=CARTESIAN_POINT($,(0.00000000000,0.00000000000,0.00000000000));
#10=DIMENSIONAL_EXPONENTS(0.00000000000,1.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000);
#11=(MASS_UNIT()NAMED_UNIT(#10)SI_UNIT(.KILO.,.GRAM.));
#12=DIMENSIONAL_EXPONENTS(1.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000,0.00000000000);
#13=(LENGTH_UNIT()NAMED_UNIT(#12)SI_UNIT(.MILLI.,.METRE.));
#14=GLOBAL_UNIT_ASSIGNED_CONTEXT($,$,(#13));
#15=DESCRIPTIVE_REPRESENTATION_ITEM('flow direction','in');
#16=REPRESENTATION($,(#15),#14);
#17=DESCRIPTIVE_REPRESENTATION_ITEM('flow direction','out');
#18=REPRESENTATION($,(#17),#14);
#19=PLANT_LINE_DEFINITION('U1-P100-10"-CS150R-FG',$,$,#6,$);
#20=PLANT_LINE_SEGMENT_DEFINITION('en_dur',$,$,#6);
#21=PRODUCT_DEFINITION_RELATIONSHIP($,'',$,#19,#20);
#22=PRODUCT_DEFINITION_SHAPE($,$,#20);
#23=SHAPE_DIMENSION_REPRESENTATION($,(#25),$);
#24=SHAPE_DEFINITION_REPRESENTATION(#22,#23);
#25=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('line size'));
#26=DOCUMENT('CS150R',$,$,#28);
#27=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#26,$,(#20));
#28=DOCUMENT_TYPE('piping specification');
#29=DOCUMENT_USAGE_CONSTRAINT(#26,'service description',$);
#30=PRODUCT('',$,$,(#3));
#31=PRODUCT_DEFINITION_FORMATION($,$,#30);
#32=PIPING_COMPONENT_DEFINITION($,$,#31,#4);
#33=PRODUCT_DEFINITION_SHAPE($,$,#32);
#34=PIPING_COMPONENT_DEFINITION($,$,#31,#5);
#35=PRODUCT_DEFINITION_SHAPE($,$,#34);
#36=PRODUCT_DEFINITION_RELATIONSHIP($,'definition usage',$,#32,#34);
#37=PIPE_CLASSIFICATION('straight pipe',$);
#38=CLASSIFICATION_ASSIGNMENT(#37,(#32,#34,#88,#90));
#39=PRODUCT_RELATED_PRODUCT_CATEGORY('pipe',$,(#30,#86,#135));
#40=PRODUCT_DEFINITION_RELATIONSHIP($,'realization',$,#20,#34);
#41=PLANT_ITEM_CONNECTOR($,'end 1',#33,$);
#42=PLANT_ITEM_CONNECTOR($,'end 1',#35,$);
#43=SHAPE_ASPECT_RELATIONSHIP('usage',$,#41,#42);
#44=REPRESENTATION($,(#45,#49),$);
#45=CARTESIAN_POINT('location',(1000.00000000,0.00000000000,0.00000000000));
#46=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
#47=DIRECTION($,(0.101600309323,0.00000000000,0.00000000000));
#48=DIRECTION($,(-0.00000000000,0.00000000000,0.0508001546616));
#49=AXIS2_PLACEMENT_3D('connector orientation',#46,#47,#48);
#50=PROPERTY_DEFINITION($,$,#42);
#51=PROPERTY_DEFINITION_REPRESENTATION(#50,#44);
#52=PLANT_ITEM_CONNECTOR($,'end 2',#33,$);
#53=PLANT_ITEM_CONNECTOR($,'end 2',#35,$);
#54=SHAPE_ASPECT_RELATIONSHIP('usage',$,#52,#53);
#55=REPRESENTATION($,(#56,#60),$);
#56=CARTESIAN_POINT('location',(366.025403784,-4.80740671596E-14,0.00000000000));
#57=CARTESIAN_POINT($,(366.025403784,-4.80740671596E-14,0.00000000000));
#58=DIRECTION($,(-0.101600309323,-0.00000000000,-0.00000000000));
#59=DIRECTION($,(-0.00000000000,0.00000000000,0.0508001546616));
#60=AXIS2_PLACEMENT_3D('connector orientation',#57,#58,#59);
#61=PROPERTY_DEFINITION($,$,#53);
#62=PROPERTY_DEFINITION_REPRESENTATION(#61,#55);
#63=PROPERTY_DEFINITION($,$,#32);
#64=REPRESENTATION('piping component size',(#69),$);
#65=PROPERTY_DEFINITION_REPRESENTATION(#63,#64);
#66=PROPERTY_DEFINITION($,$,#32);
#67=SHAPE_DIMENSION_REPRESENTATION('piping component dimensions',(#70),$);
#68=PROPERTY_DEFINITION_REPRESENTATION(#66,#67);
#69=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('nominal size'));
#70=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(273.050000000),#13)REPRESENTATION_ITEM('outside diameter'));
#71=DOCUMENT($,$,$,#73);
#72=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#71,$,(#64));
#73=DOCUMENT_TYPE('dimensional standard');
#74=DOCUMENT_USAGE_CONSTRAINT(#71,'pipe schedule','STANDARD');
#75=PRODUCT_DEFINITION($,$,$,$);
#76=MATERIAL_PROPERTY($,$,#75);
#77=PRODUCT_DEFINITION_USAGE($,$,$,#32,#75);
#78=DOCUMENT_TYPE('material specification');
#79=DOCUMENT('ASTM A 53',$,$,#78);
#80=DOCUMENT_USAGE_CONSTRAINT(#79,$,'Carbon steel');
#81=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#79,$,(#75,#128,#179));
#82=DIMENSIONAL_LOCATION($,$,#42,#53);
#83=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(633.974596216),#13)REPRESENTATION_ITEM('end to end length'));
#84=SHAPE_DIMENSION_REPRESENTATION('pipe dimensional shape',(#83),#14);
#85=DIMENSIONAL_CHARACTERISTIC_REPRESENTATION(#82,#84);
#86=PRODUCT('',$,$,(#3));
#87=PRODUCT_DEFINITION_FORMATION($,$,#86);
#88=PIPING_COMPONENT_DEFINITION($,$,#87,#4);
#89=PRODUCT_DEFINITION_SHAPE($,$,#88);
#90=PIPING_COMPONENT_DEFINITION($,$,#87,#5);
#91=PRODUCT_DEFINITION_SHAPE($,$,#90);
#92=PRODUCT_DEFINITION_RELATIONSHIP($,'definition usage',$,#88,#90);
#93=PRODUCT_DEFINITION_RELATIONSHIP($,'realization',$,#20,#90);
#94=PLANT_ITEM_CONNECTOR($,'end 1',#89,$);
#95=PLANT_ITEM_CONNECTOR($,'end 1',#91,$);
#96=SHAPE_ASPECT_RELATIONSHIP('usage',$,#94,#95);
#97=REPRESENTATION($,(#98,#102),$);
#98=CARTESIAN_POINT('location',(0.00000000000,366.025403784,0.00000000000));
#99=CARTESIAN_POINT($,(0.00000000000,366.025403784,0.00000000000));
#100=DIRECTION($,(-0.00000000000,-0.101600309323,-0.00000000000));
#101=DIRECTION($,(0.0508001546616,0.00000000000,0.00000000000));
#102=AXIS2_PLACEMENT_3D('connector orientation',#99,#100,#101);
#103=PROPERTY_DEFINITION($,$,#95);
#104=PROPERTY_DEFINITION_REPRESENTATION(#103,#97);
#105=PLANT_ITEM_CONNECTOR($,'end 2',#89,$);
#106=PLANT_ITEM_CONNECTOR($,'end 2',#91,$);
#107=SHAPE_ASPECT_RELATIONSHIP('usage',$,#105,#106);
#108=REPRESENTATION($,(#109,#113),$);
#109=CARTESIAN_POINT('location',(0.00000000000,1000.00000000,0.00000000000));
#110=CARTESIAN_POINT($,(0.00000000000,1000.00000000,0.00000000000));
#111=DIRECTION($,(0.00000000000,0.101600309323,0.00000000000));
#112=DIRECTION($,(0.0508001546616,0.00000000000,0.00000000000));
#113=AXIS2_PLACEMENT_3D('connector orientation',#110,#111,#112);
#114=PROPERTY_DEFINITION($,$,#106);
#115=PROPERTY_DEFINITION_REPRESENTATION(#114,#108);
#116=PROPERTY_DEFINITION($,$,#88);
#117=REPRESENTATION('piping component size',(#122),$);
#118=PROPERTY_DEFINITION_REPRESENTATION(#116,#117);
#119=PROPERTY_DEFINITION($,$,#88);
#120=SHAPE_DIMENSION_REPRESENTATION('piping component dimensions',(#123),$);
#121=PROPERTY_DEFINITION_REPRESENTATION(#119,#120);
#122=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('nominal size'));
#123=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(273.050000000),#13)REPRESENTATION_ITEM('outside diameter'));
#124=DOCUMENT($,$,$,#126);
#125=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#124,$,(#117));
#126=DOCUMENT_TYPE('dimensional standard');
#127=DOCUMENT_USAGE_CONSTRAINT(#124,'pipe schedule','STANDARD');
#128=PRODUCT_DEFINITION($,$,$,$);
#129=MATERIAL_PROPERTY($,$,#128);
#130=PRODUCT_DEFINITION_USAGE($,$,$,#88,#128);
#131=DIMENSIONAL_LOCATION($,$,#95,#106);
#132=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(633.974596216),#13)REPRESENTATION_ITEM('end to end length'));
#133=SHAPE_DIMENSION_REPRESENTATION('pipe dimensional shape',(#132),#14);
#134=DIMENSIONAL_CHARACTERISTIC_REPRESENTATION(#131,#133);
#135=PRODUCT('',$,$,(#3));
#136=PRODUCT_DEFINITION_FORMATION($,$,#135);
#137=PIPING_COMPONENT_DEFINITION($,$,#136,#4);
#138=PRODUCT_DEFINITION_SHAPE($,$,#137);
#139=PIPING_COMPONENT_DEFINITION($,$,#136,#5);
#140=PRODUCT_DEFINITION_SHAPE($,$,#139);
#141=PRODUCT_DEFINITION_RELATIONSHIP($,'definition usage',$,#137,#139);
#142=PIPE_CLASSIFICATION('mitre bend pipe',$);
#143=CLASSIFICATION_ASSIGNMENT(#142,(#137,#139));
#144=PRODUCT_DEFINITION_RELATIONSHIP($,'realization',$,#20,#139);
#145=PLANT_ITEM_CONNECTOR($,'end 1',#138,$);
#146=PLANT_ITEM_CONNECTOR($,'end 1',#140,$);
#147=SHAPE_ASPECT_RELATIONSHIP('usage',$,#145,#146);
#148=REPRESENTATION($,(#149,#153),$);
#149=CARTESIAN_POINT('location',(366.025403784,-4.80740671596E-14,0.00000000000));
#150=CARTESIAN_POINT($,(366.025403784,-4.80740671596E-14,0.00000000000));
#151=DIRECTION($,(1.00000000000,-1.31340794006E-16,0.00000000000));
#152=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#153=AXIS2_PLACEMENT_3D('connector orientation',#150,#151,#152);
#154=PROPERTY_DEFINITION($,$,#146);
#155=PROPERTY_DEFINITION_REPRESENTATION(#154,#148);
#156=PLANT_ITEM_CONNECTOR($,'end 2',#138,$);
#157=PLANT_ITEM_CONNECTOR($,'end 2',#140,$);
#158=SHAPE_ASPECT_RELATIONSHIP('usage',$,#156,#157);
#159=REPRESENTATION($,(#160,#164),$);
#160=CARTESIAN_POINT('location',(0.00000000000,366.025403784,0.00000000000));
#161=CARTESIAN_POINT($,(0.00000000000,366.025403784,0.00000000000));
#162=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#163=DIRECTION($,(1.00000000000,0.00000000000,0.00000000000));
#164=AXIS2_PLACEMENT_3D('connector orientation',#161,#162,#163);
#165=PROPERTY_DEFINITION($,$,#157);
#166=PROPERTY_DEFINITION_REPRESENTATION(#165,#159);
#167=PROPERTY_DEFINITION($,$,#137);
#168=REPRESENTATION('piping component size',(#173),$);
#169=PROPERTY_DEFINITION_REPRESENTATION(#167,#168);
#170=PROPERTY_DEFINITION($,$,#137);
#171=SHAPE_DIMENSION_REPRESENTATION('piping component dimensions',(#174),$);
#172=PROPERTY_DEFINITION_REPRESENTATION(#170,#171);
#173=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(253.999998062),#13)REPRESENTATION_ITEM('nominal size'));
#174=(LENGTH_MEASURE_WITH_UNIT()MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(LENGTH_MEASURE(273.050000000),#13)REPRESENTATION_ITEM('outside diameter'));
#175=DOCUMENT($,$,$,#177);
#176=PLANT_SPATIAL_CONFIGURATION_DOCUMENT_REFERENCE(#175,$,(#168));
#177=DOCUMENT_TYPE('dimensional standard');
#178=DOCUMENT_USAGE_CONSTRAINT(#175,'pipe schedule','STANDARD');
#179=PRODUCT_DEFINITION($,$,$,$);
#180=MATERIAL_PROPERTY($,$,#179);
#181=PRODUCT_DEFINITION_USAGE($,$,$,#137,#179);
#182=PROPERTY_DEFINITION($,$,#139);
#183=REPRESENTATION('pipe characteristics',(#185),$);
#184=PROPERTY_DEFINITION_REPRESENTATION(#182,#183);
#185=(MEASURE_REPRESENTATION_ITEM()MEASURE_WITH_UNIT(COUNT_MEASURE(3.00000000000),$)REPRESENTATION_ITEM('number of segments'));
#186=SHAPE_DEFINITION_REPRESENTATION(#33,#187);
#187=SHAPE_REPRESENTATION($,(#235),$);
#188=REPRESENTATION_MAP(#9,#187);
#189=SHAPE_REPRESENTATION($,(#191),#14);
#190=SHAPE_DEFINITION_REPRESENTATION(#35,#189);
#191=MAPPED_ITEM($,#188,#195);
#192=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
#193=DIRECTION($,(-1.00000000000,0.00000000000,0.00000000000));
#194=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#195=AXIS2_PLACEMENT_3D($,#192,#193,#194);
#196=SHAPE_DEFINITION_REPRESENTATION(#89,#197);
#197=SHAPE_REPRESENTATION($,(#251),$);
#198=REPRESENTATION_MAP(#9,#197);
#199=SHAPE_REPRESENTATION($,(#201),#14);
#200=SHAPE_DEFINITION_REPRESENTATION(#91,#199);
#201=MAPPED_ITEM($,#198,#205);
#202=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
#203=DIRECTION($,(-1.00000000000,0.00000000000,0.00000000000));
#204=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#205=AXIS2_PLACEMENT_3D($,#202,#203,#204);
#206=SHAPE_DEFINITION_REPRESENTATION(#138,#207);
#207=SHAPE_REPRESENTATION($,(#267,#283),$);
#208=REPRESENTATION_MAP(#9,#207);
#209=SHAPE_REPRESENTATION($,(#211),#14);
#210=SHAPE_DEFINITION_REPRESENTATION(#140,#209);
#211=MAPPED_ITEM($,#208,#215);
#212=CARTESIAN_POINT($,(1000.00000000,0.00000000000,0.00000000000));
#213=DIRECTION($,(-1.00000000000,0.00000000000,0.00000000000));
#214=DIRECTION($,(0.00000000000,1.00000000000,0.00000000000));
#215=AXIS2_PLACEMENT_3D($,#212,#213,#214);
#216=PLANT_ITEM_CONNECTION('',$,$,$,$,'',#146,#53);
#217=CONNECTION_FUNCTIONAL_CLASSIFICATION('fluid transference',$);
#218=CLASSIFICATION_ASSIGNMENT(#217,(#216,#219));
#219=PLANT_ITEM_CONNECTION('',$,$,$,$,'',#157,#95);
#220=CARTESIAN_POINT($,(7.85037143115E-31,0.00000000000,0.00000000000));
#221=DIRECTION($,(-7.58296427752E-17,0.00000000000,1.00000000000));
#222=AXIS1_PLACEMENT($,#220,#221);
#223=RIGHT_CIRCULAR_CYLINDER('',#222,670.556359712,136.525000000);
#224=CARTESIAN_POINT($,(0.00000000000,0.00000000000,0.00000000000));
#225=DIRECTION($,(-0.00000000000,0.00000000000,-1.00000000000));
#226=AXIS2_PLACEMENT_3D($,#224,#225,$);
#227=PLANE($,#226);
#228=HALF_SPACE_SOLID($,#227,$);
#229=CARTESIAN_POINT($,(-4.80740671596E-14,0.00000000000,633.974596216));
#230=DIRECTION($,(0.258819045103,0.00000000000,0.965925826289));
#231=AXIS2_PLACEMENT_3D($,#229,#230,$);
#232=PLANE($,#231);
#233=HALF_SPACE_SOLID($,#232,$);
#234=BOOLEAN_RESULT('',.DIFFERENCE.,#223,#228);
#235=BOOLEAN_RESULT('',.DIFFERENCE.,#234,#233);
#236=CARTESIAN_POINT($,(329.443640288,-0.00000000000,1000.00000000));
#237=DIRECTION($,(1.00000000000,0.00000000000,-8.75605293377E-17));
#238=AXIS1_PLACEMENT($,#236,#237);
#239=RIGHT_CIRCULAR_CYLINDER('',#238,670.556359712,136.525000000);
#240=CARTESIAN_POINT($,(366.025403784,-0.00000000000,1000.00000000));
#241=DIRECTION($,(-0.965925826289,0.00000000000,-0.258819045103));
#242=AXIS2_PLACEMENT_3D($,#240,#241,$);
#243=PLANE($,#242);
#244=HALF_SPACE_SOLID($,#243,$);
#245=CARTESIAN_POINT($,(1000.00000000,-0.00000000000,1000.00000000));
#246=DIRECTION($,(1.00000000000,-0.00000000000,0.00000000000));
#247=AXIS2_PLACEMENT_3D($,#245,#246,$);
#248=PLANE($,#247);
#249=HALF_SPACE_SOLID($,#248,$);
#250=BOOLEAN_RESULT('',.DIFFERENCE.,#239,#244);
#251=BOOLEAN_RESULT('',.DIFFERENCE.,#250,#249);
#252=CARTESIAN_POINT($,(-18.2908817483,0.00000000000,602.293859712));
#253=DIRECTION($,(0.500000000000,-0.00000000000,0.866025403784));
#254=AXIS1_PLACEMENT($,#252,#253);
#255=RIGHT_CIRCULAR_CYLINDER('',#254,341.112719424,136.525000000);
#256=CARTESIAN_POINT($,(-4.80740671596E-14,0.00000000000,633.974596216));
#257=DIRECTION($,(-0.258819045103,0.00000000000,-0.965925826289));
#258=AXIS2_PLACEMENT_3D($,#256,#257,$);
#259=PLANE($,#258);
#260=HALF_SPACE_SOLID($,#259,$);
#261=CARTESIAN_POINT($,(133.974596216,-0.00000000000,866.025403784));
#262=DIRECTION($,(0.707106781187,0.00000000000,0.707106781187));
#263=AXIS2_PLACEMENT_3D($,#261,#262,$);
#264=PLANE($,#263);
#265=HALF_SPACE_SOLID($,#264,$);
#266=BOOLEAN_RESULT('',.DIFFERENCE.,#255,#260);
#267=BOOLEAN_RESULT('',.DIFFERENCE.,#266,#265);
#268=CARTESIAN_POINT($,(102.293859712,-0.00000000000,847.734522036));
#269=DIRECTION($,(0.866025403784,-0.00000000000,0.500000000000));
#270=AXIS1_PLACEMENT($,#268,#269);
#271=RIGHT_CIRCULAR_CYLINDER('',#270,341.112719424,136.525000000);
#272=CARTESIAN_POINT($,(133.974596216,-0.00000000000,866.025403784));
#273=DIRECTION($,(-0.707106781187,0.00000000000,-0.707106781187));
#274=AXIS2_PLACEMENT_3D($,#272,#273,$);
#275=PLANE($,#274);
#276=HALF_SPACE_SOLID($,#275,$);
#277=CARTESIAN_POINT($,(366.025403784,-0.00000000000,1000.00000000));
#278=DIRECTION($,(0.965925826289,0.00000000000,0.258819045103));
#279=AXIS2_PLACEMENT_3D($,#277,#278,$);
#280=PLANE($,#279);
#281=HALF_SPACE_SOLID($,#280,$);
#282=BOOLEAN_RESULT('',.DIFFERENCE.,#271,#276);
#283=BOOLEAN_RESULT('',.DIFFERENCE.,#282,#281);
ENDSEC;
END-ISO-10303-21;
+2 -2
View File
@@ -3891,11 +3891,11 @@ ENTITY grooving_turning_operation
WR3: (verify_optional_action_property (SELF, 'allowance')) AND
(verify_length_measure_action_property (SELF, 'allowance'));
-- allowance property required for roughing
-- allowance propery required for roughing
WR4: NOT (SELF.description = 'roughing') OR
(verify_required_action_property (SELF, 'allowance'));
-- allowance property forbidden for cutting in
-- allowance propery forbidden for cutting in
WR5: NOT (SELF.description = 'cutting in') OR
(0 = SIZEOF (get_action_property (SELF, 'allowance')));
END_ENTITY; -- 10303-238: integrated_cnc_schema
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+9 -15
View File
@@ -1,20 +1,14 @@
set(sc_MANS
man/man1/fedex.1
man/man1/exp2cxx.1
)
SET(scl_MANS
man/man1/dataprobe.1
man/man1/fedex.1
man/man1/fedex_plus.1
man/man1/mkProbe.1
)
if(NOT DEFINED MAN_DIR)
set(MAN_DIR share/man)
endif(NOT DEFINED MAN_DIR)
if(NOT WIN32)
install(FILES ${sc_MANS} DESTINATION ${MAN_DIR}/man1)
endif(NOT WIN32)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
IF(NOT WIN32)
INSTALL(FILES ${scl_MANS} DESTINATION ${CMAKE_INSTALL_PREFIX}/${MAN_DIR}/man1)
ENDIF(NOT WIN32)
+50 -116
View File
@@ -1,4 +1,4 @@
# Doxyfile 1.7.6.1
# Doxyfile 1.7.4
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project
@@ -22,23 +22,22 @@
DOXYFILE_ENCODING = UTF-8
# The PROJECT_NAME tag is a single word (or sequence of words) that should
# identify the project. Note that if you do not use Doxywizard you need
# to put quotes around the project name if it contains spaces.
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
# by quotes) that should identify the project.
PROJECT_NAME = SC
PROJECT_NAME = scl
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER = 0.8
PROJECT_NUMBER = 3.2
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer
# a quick idea about the purpose of the project. Keep the description short.
PROJECT_BRIEF = STEPcode
PROJECT_BRIEF = "STEP Class Library"
# With the PROJECT_LOGO tag one can specify an logo or icon that is
# included in the documentation. The maximum height of the logo should not
@@ -52,7 +51,7 @@ PROJECT_LOGO =
# If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used.
OUTPUT_DIRECTORY = /mnt/raid/mark/sc-doxygen
OUTPUT_DIRECTORY = .
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
# 4096 sub-directories (in 2 levels) under the output directory of each output
@@ -205,13 +204,6 @@ TAB_SIZE = 8
ALIASES =
# This tag can be used to specify a number of word-keyword mappings (TCL only).
# A mapping has the form "name=value". For example adding
# "class=itcl::class" will allow you to use the command class in the
# itcl::class meaning.
TCL_SUBST =
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
# sources only. Doxygen will then generate output that is more tailored for C.
# For instance, some of the names that are used will be different. The list
@@ -301,15 +293,6 @@ SUBGROUPING = YES
INLINE_GROUPED_CLASSES = NO
# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and
# unions with only public data fields will be shown inline in the documentation
# of the scope in which they are defined (i.e. file, namespace, or group
# documentation), provided this scope is documented. If set to NO (the default),
# structs, classes, and unions are shown on a separate page (for HTML and Man
# pages) or section (for LaTeX and RTF).
INLINE_SIMPLE_STRUCTS = NO
# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
# is documented as struct, union, or enum with the name of the typedef. So
# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
@@ -332,21 +315,10 @@ TYPEDEF_HIDES_STRUCT = NO
# a logarithmic scale so increasing the size by one will roughly double the
# memory usage. The cache size is given by this formula:
# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
# corresponding to a cache size of 2^16 = 65536 symbols.
# corresponding to a cache size of 2^16 = 65536 symbols
SYMBOL_CACHE_SIZE = 0
# Similar to the SYMBOL_CACHE_SIZE the size of the symbol lookup cache can be
# set using LOOKUP_CACHE_SIZE. This cache is used to resolve symbols given
# their name and scope. Since this can be an expensive process and often the
# same symbol appear multiple times in the code, doxygen keeps a cache of
# pre-resolved symbols. If the cache is too small doxygen will become slower.
# If the cache is too large, memory is wasted. The cache size is given by this
# formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range is 0..9, the default is 0,
# corresponding to a cache size of 2^16 = 65536 symbols.
LOOKUP_CACHE_SIZE = 0
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
@@ -366,7 +338,7 @@ EXTRACT_PRIVATE = NO
# If the EXTRACT_STATIC tag is set to YES all static members of a file
# will be included in the documentation.
EXTRACT_STATIC = YES
EXTRACT_STATIC = NO
# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
# defined locally in source files will be included in the documentation.
@@ -587,16 +559,6 @@ FILE_VERSION_FILTER =
LAYOUT_FILE =
# The CITE_BIB_FILES tag can be used to specify one or more bib files
# containing the references data. This must be a list of .bib files. The
# .bib extension is automatically appended if omitted. Using this command
# requires the bibtex tool to be installed. See also
# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style
# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this
# feature you need bibtex and perl available in the search path.
CITE_BIB_FILES =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
@@ -659,8 +621,7 @@ WARN_LOGFILE =
INPUT = src \
include \
build/src/express \
build/include
build/src/express
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
@@ -716,16 +677,13 @@ FILE_PATTERNS = *.c \
RECURSIVE = YES
# The EXCLUDE tag can be used to specify files and/or directories that should be
# The EXCLUDE tag can be used to specify files and/or directories that should
# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
# Note that relative paths are relative to the directory from which doxygen is
# run.
# subdirectory from a directory tree whose root is specified with the INPUT tag.
EXCLUDE = .git \
cmake/
EXCLUDE =
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
# from the input.
@@ -815,7 +773,7 @@ FILTER_SOURCE_PATTERNS =
# Note: To get rid of all source code in the generated output, make sure also
# VERBATIM_HEADERS is set to NO.
SOURCE_BROWSER = YES
SOURCE_BROWSER = NO
# Setting the INLINE_SOURCES tag to YES will include the body
# of functions and classes directly in the documentation.
@@ -907,13 +865,13 @@ HTML_FILE_EXTENSION = .html
# The HTML_HEADER tag can be used to specify a personal HTML header for
# each generated HTML page. If it is left blank doxygen will generate a
# standard header. Note that when using a custom header you are responsible
# standard header. Note that when using a custom header you are responsible
# for the proper inclusion of any scripts and style sheets that doxygen
# needs, which is dependent on the configuration options used.
# It is advised to generate a default header using "doxygen -w html
# It is adviced to generate a default header using "doxygen -w html
# header.html footer.html stylesheet.css YourConfigFile" and then modify
# that header. Note that the header is subject to change so you typically
# have to redo this when upgrading to a newer version of doxygen or when
# have to redo this when upgrading to a newer version of doxygen or when
# changing the value of configuration settings such as GENERATE_TREEVIEW!
HTML_HEADER =
@@ -929,7 +887,7 @@ HTML_FOOTER =
# fine-tune the look of the HTML output. If the tag is left blank doxygen
# will generate a default style sheet. Note that doxygen will try to copy
# the style sheet file to the HTML output directory, so don't put your own
# style sheet in the HTML output directory as well, or it will be erased!
# stylesheet in the HTML output directory as well, or it will be erased!
HTML_STYLESHEET =
@@ -943,7 +901,7 @@ HTML_STYLESHEET =
HTML_EXTRA_FILES =
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
# Doxygen will adjust the colors in the style sheet and background images
# Doxygen will adjust the colors in the stylesheet and background images
# according to this color. Hue is specified as an angle on a colorwheel,
# see http://en.wikipedia.org/wiki/Hue for more information.
# For instance the value 0 represents red, 60 is yellow, 120 is green,
@@ -1138,26 +1096,12 @@ GENERATE_ECLIPSEHELP = NO
ECLIPSE_DOC_ID = org.doxygen.Project
# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs)
# at top of each HTML page. The value NO (the default) enables the index and
# the value YES disables it. Since the tabs have the same information as the
# navigation tree you can set this option to NO if you already set
# GENERATE_TREEVIEW to YES.
# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
# top of each HTML page. The value NO (the default) enables the index and
# the value YES disables it.
DISABLE_INDEX = NO
# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
# structure should be generated to display hierarchical information.
# If the tag value is set to YES, a side panel will be generated
# containing a tree-like index structure (just like the one that
# is generated for HTML Help). For this to work a browser that supports
# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
# Windows users are probably better off using the HTML help feature.
# Since the tree basically has the same information as the tab index you
# could consider to set DISABLE_INDEX to NO when enabling this option.
GENERATE_TREEVIEW = YES
# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values
# (range [0,1..20]) that doxygen will group on one line in the generated HTML
# documentation. Note that a value of 0 will completely suppress the enum
@@ -1165,6 +1109,16 @@ GENERATE_TREEVIEW = YES
ENUM_VALUES_PER_LINE = 4
# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
# structure should be generated to display hierarchical information.
# If the tag value is set to YES, a side panel will be generated
# containing a tree-like index structure (just like the one that
# is generated for HTML Help). For this to work a browser that supports
# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
# Windows users are probably better off using the HTML help feature.
GENERATE_TREEVIEW = YES
# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
# and Class Hierarchy pages using a tree view instead of an ordered list.
@@ -1217,11 +1171,6 @@ USE_MATHJAX = NO
MATHJAX_RELPATH = http://www.mathjax.org/mathjax
# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension
# names that should be enabled during MathJax rendering.
MATHJAX_EXTENSIONS =
# When the SEARCHENGINE tag is enabled doxygen will generate a search box
# for the HTML output. The underlying search engine uses javascript
# and DHTML and should work on any modern browser. Note that when using
@@ -1230,7 +1179,7 @@ MATHJAX_EXTENSIONS =
# typically be disabled. For large projects the javascript based search engine
# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
SEARCHENGINE = YES
SEARCHENGINE = NO
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
# implemented using a PHP enabled web server instead of at the web client
@@ -1335,12 +1284,6 @@ LATEX_HIDE_INDICES = NO
LATEX_SOURCE_CODE = NO
# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See
# http://en.wikipedia.org/wiki/BibTeX for more info.
LATEX_BIB_STYLE = plain
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
@@ -1372,7 +1315,7 @@ COMPACT_RTF = NO
RTF_HYPERLINKS = NO
# Load style sheet definitions from file. Syntax is similar to doxygen's
# Load stylesheet definitions from file. Syntax is similar to doxygen's
# config file, i.e. a series of assignments. You only have to provide
# replacements, missing definitions are set to their default value.
@@ -1642,30 +1585,32 @@ HAVE_DOT = YES
DOT_NUM_THREADS = 0
# By default doxygen will use the Helvetica font for all dot files that
# doxygen generates. When you want a differently looking font you can specify
# the font name using DOT_FONTNAME. You need to make sure dot is able to find
# the font, which can be done by putting it in a standard location or by setting
# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the
# directory containing the font.
# By default doxygen will write a font called Helvetica to the output
# directory and reference it in all dot files that doxygen generates.
# When you want a differently looking font you can specify the font name
# using DOT_FONTNAME. You need to make sure dot is able to find the font,
# which can be done by putting it in a standard location or by setting the
# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
# containing the font.
DOT_FONTNAME = Roboto
DOT_FONTNAME = FreeSans
# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
# The default size is 10pt.
DOT_FONTSIZE = 10
# By default doxygen will tell dot to use the Helvetica font.
# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to
# set the path where dot can find it.
# By default doxygen will tell dot to use the output directory to look for the
# FreeSans.ttf font (which doxygen will put there itself). If you specify a
# different font using DOT_FONTNAME you can set the path where dot
# can find it using this tag.
DOT_FONTPATH =
# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
# will generate a graph for each documented class showing the direct and
# indirect inheritance relations. Setting this tag to YES will force the
# CLASS_DIAGRAMS tag to NO.
# the CLASS_DIAGRAMS tag to NO.
CLASS_GRAPH = YES
@@ -1736,21 +1681,10 @@ DIRECTORY_GRAPH = YES
# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
# generated by dot. Possible values are svg, png, jpg, or gif.
# If left blank png will be used. If you choose svg you need to set
# HTML_FILE_EXTENSION to xhtml in order to make the SVG files
# visible in IE 9+ (other browsers do not have this requirement).
# If left blank png will be used.
DOT_IMAGE_FORMAT = png
# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
# enable generation of interactive SVG images that allow zooming and panning.
# Note that this requires a modern browser other than Internet Explorer.
# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you
# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files
# visible. Older versions of IE do not have SVG support.
INTERACTIVE_SVG = NO
# The tag DOT_PATH can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found in the path.
@@ -1801,7 +1735,7 @@ DOT_TRANSPARENT = NO
# makes dot run faster, but since only newer versions of dot (>1.8.10)
# support this, this feature is disabled by default.
DOT_MULTI_TARGETS = YES
DOT_MULTI_TARGETS = NO
# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
# generate a legend page explaining the meaning of the various boxes and
+5 -5
View File
@@ -36,7 +36,7 @@
<!-- This is a single string setting. When writing this out to the doxyfile,
it will be quoted and treated as a whole. -->
<string name="OUTPUT_LANGUAGE">English</string>
<!-- A list setting contains multiple elements, separated by whitespace. Each
<!-- A list setting contains multiple elements, seperated by whitespace. Each
individual item will be quoted and treated as a whole for Doxygen. By
default a list replaces the existing setting. If the append attribute is
set to true, then the items will be added to the existing set. -->
@@ -68,7 +68,7 @@
<qtHelp collectionFile="./doc/helpcollection.qhc"
projectFile="./doc/helpcollection.qhcp"
storage="./doc/qch" copyAction="copy">
<title>STEPcode</title>
<title>StepClassLibrary</title>
<startPage>qthelp://com.github.mpictor/doc/index.html</startPage>
<!-- See http://doc.trolltech.com/assistant-custom-help-viewer.html for more
settings in the <assistant> section. -->
@@ -100,7 +100,7 @@
-->
<project>
<!-- The name of the project -->
<name>STEPcode</name>
<name>StepClassLibrary</name>
<!-- The version number of the documentation -->
<version>0.2</version>
<!-- Whether to build version specific documentation for the projects or not.
@@ -132,7 +132,7 @@
<input>./src/clutils</input>
<input>./src/exppp</input>
<input>./src/express</input>
<input>./src/exp2cxx</input>
<input>./src/fedex_plus</input>
<input>./src/test</input>-->
<!-- A list of files/paths to exclude. Add one <exclude> tag per path to
exclude. This will automatically be expanded to exclude input directories
@@ -240,7 +240,7 @@
<project>
<name>Fedex Plus</name>
<version> </version>
<input>./src/exp2cxx</input>
<input>./src/fedex_plus</input>
</project>
<project>
<name>Tests</name>
+10 -10
View File
@@ -47,16 +47,16 @@ $mathjax
<!-- add module list -->
<div id="navrow0" class="tabs">
<ul class="tablist">
<li><a href="../../doc.STEPcode/doxygen-html/index.html"><span>Main</span></a></li>
<li><a href="../../doc.STEPcode.CLDAI/doxygen-html/index.html"><span>CLDAI</span></a></li>
<li><a href="../../doc.STEPcode.CLEditor/doxygen-html/index.html"><span>CLEditor</span></a></li>
<li><a href="../../doc.STEPcode.CLProbe-ui/doxygen-html/index.html"><span>CLProbe-ui</span></a></li>
<li><a href="../../doc.STEPcode.CLStepCore/doxygen-html/index.html"><span>CLStepCore</span></a></li>
<li><a href="../../doc.STEPcode.CLUtils/doxygen-html/index.html"><span>CLUtils</span></a></li>
<li><a href="../../doc.STEPcode.ExPPP/doxygen-html/index.html"><span>ExPPP</span></a></li>
<li><a href="../../doc.STEPcode.Express/doxygen-html/index.html"><span>Express</span></a></li>
<li><a href="../../doc.STEPcode.Fedex-Plus/doxygen-html/index.html"><span>Fedex-Plus</span></a></li>
<li><a href="../../doc.STEPcode.Tests/doxygen-html/index.html"><span>Tests</span></a></li>
<li><a href="../../doc.StepClassLibrary/doxygen-html/index.html"><span>Main</span></a></li>
<li><a href="../../doc.StepClassLibrary.CLDAI/doxygen-html/index.html"><span>CLDAI</span></a></li>
<li><a href="../../doc.StepClassLibrary.CLEditor/doxygen-html/index.html"><span>CLEditor</span></a></li>
<li><a href="../../doc.StepClassLibrary.CLProbe-ui/doxygen-html/index.html"><span>CLProbe-ui</span></a></li>
<li><a href="../../doc.StepClassLibrary.CLStepCore/doxygen-html/index.html"><span>CLStepCore</span></a></li>
<li><a href="../../doc.StepClassLibrary.CLUtils/doxygen-html/index.html"><span>CLUtils</span></a></li>
<li><a href="../../doc.StepClassLibrary.ExPPP/doxygen-html/index.html"><span>ExPPP</span></a></li>
<li><a href="../../doc.StepClassLibrary.Express/doxygen-html/index.html"><span>Express</span></a></li>
<li><a href="../../doc.StepClassLibrary.Fedex-Plus/doxygen-html/index.html"><span>Fedex-Plus</span></a></li>
<li><a href="../../doc.StepClassLibrary.Tests/doxygen-html/index.html"><span>Tests</span></a></li>
</ul>
</div>
<!-- end module list -->
+680
View File
@@ -0,0 +1,680 @@
.\" This manual was prepared by United States Government employees as a
.\" part of their official duties and is, therefore, a work of the U.S.
.\" Government and not subject to copyright.
.\"
.\" $Id: dataprobe.1,v 2.1.0.2 1997/10/27 18:37:10 dar Exp $
.TH DATAPROBE 1 "12 June 1995"
.SH NAME
Data Probe - STEP editing tool
.SH SYNOPSIS
.B dp_{schema_name}
[
.B -saveFile
.I file-name
]
[
.B -saveFreq
.I integer
]
[
.B -workFile
.I file-name
]
[
.B -exchangeFile
.I file-name
]
[
.B -restrict
]
.SH DESCRIPTION
.LP
The Validation Testing System (VTS) Data Probe software is a program
for browsing and editing data corresponding to a conceptual model
described using the language Express. A separate program (fedex_plus)
reads in a schema and generates source code to represent the schema in
C++. This code is linked with the libraries in the STEP Class Library
to create a schema specific editor. The editor is X Windows based and
uses the InterViews Toolkit from Stanford.
.SH OPTIONS
.TP
.B \-s \fIfilename\fP, \fB-saveFile \fIfilename\fP
Designates an alternate backup file. The default file is dpAutoSave.wf.
.TP
.B \-sf \fIseconds\fP, \fB-saveFreq \fIseconds\fP
Specifies the frequency with which a backup file will be saved. The default frequency is 30 seconds.
.TP
.B \-wf \fIfilename\fP, \fB-workFile \fIfilename\fP
Specifies a working file to be loaded into the Data Probe.
.TP
.B \-ef \fIfilename\fP, \fB-exchangeFile \fIfilename\fP
Specifies a STEP exchange file to be loaded into the Data Probe.
.TP
.B \-r, \fB-restrict \fP
Restricts the file chooser menu to files not beginning with a '.'.
.SH USAGE
.LP
The Data Probe supports the editing of data in the format specified in
Part 21 of the ISO 10103. It allows the user to create or modify
instance data, to check for consistency with an Express schema and to
examine the relationships of entities within the schema. These
functions are supported in one or more of the following five types of
Data Probe windows:
.nf
Data Probe Window: supports general Data Probe func-
tionalities, including file management, schema list
browsing, and quitting Data Probe.
Entity Type List window: contains a scrollable list
of schema-specific entities for browsing or creating
instances of entities.
Entity Instance List window: contains a scrollable
list of instances of entities. Supports data view-
ing and modification.
STEP Entity Editor window: occurs for each instance
being edited. Supports several data editing opera-
tions including modify, delete and save.
STEP Entity Descriptor window: contains information
pertaining to an entity type including the list of
attributes and subtypes for the selected entity.
Each of these windows is described in detail below.
.fi
.LP
.I
DATA PROBE WINDOW
.nf
The Data Probe window is one of three windows appearing
initially when the Data Probe is run. It is composed of
the following four sections:
1. title
2. menu bar
3. quick reference
4. message bar
Each of these sections is described in detail below:
.I
Data Probe Window title section:
.fi
.LP
The title section shows the name of the schema for which the Data
Probe was created preceeded by the prefix 'DP-'.
.nf
.I
Data Probe Window menu bar section:
The menu bar consists of two pull-down menus labeled
Quit and File Management.
The Quit pull-down menu allows the user to exit Data
Probe. No warnings will be given before exiting.
The File Management pull-down menu allows the user to
perform operations on the following file types:
Exchange Files Data saved to these files must be in
complete STEP file format and must be
provided for all required attributes
in order to be used by application
programs that will rely on this data.
Working Files These files will not be used by appli-
cation programs and serve the purpose
of storing intermediate data for saving
the editing session.
Backup File This file is written regularly during
a Data Probe session to contain the
current Entity Instance List data. The
backup file is written in Working File
form. The default backup file is
dpAutoSave.wf and is written to the
directory where the command to run Data
Probe was issued unless instructed
otherwise by the user (See 'Backup File'
in table below and OPTIONS above).
The File Management pull-down menu supports file manage-
ment and other options as follows:
Options
Available
.I
with Options Description
Exchange File/ read replaces previous contents of
Working File Entity Instance List data
with the data in the file
selected.
write writes Entity Instance List
data to the file selected and
erases the previous contents
of the file, if any.
append writes Entity Instance List
from data to the file selected.
Backup File choose selects an alternate backup
file to which Entity Instance
List data will be periodic-
ally written.
write writes Entity Instance List
data to current backup file
selected.
Entity verify verifies that the instances
Instance List found in the Entity Instance
List are complete according
to the schema specification.
remove removes all instances in the
Entity Instance List which
are marked for deletion.
clear clears all instances found
in the Entity Instance List
regardless of their current
edit state (see the ENTITY
INSTANCE LIST section).
.I
Data Probe Window quick reference section:
This section shows the key bindings and button codes
available in the Step Entity Editor windows to perform the
following operations:
- close existing window
- open a new window
- get value from list
.I
Data Probe Window message bar section:
This section shows any resulting messages from actions
taken in any of the windows. The Clear button on left
enables the user to clear the current message shown.
.fi
.LP
.I
ENTITY TYPE LIST WINDOW
The Entity Type List is the second of the three windows appearing initially when the Data Probe is run. The Entity Type List displays the list of schema-specific entity types. In addition to the operations outlined in 'Using Lists' below, the Entity Type List allows the user to create an instance as follows:
.nf
.I
Creating an Instance
1. Select an entity type from the type list.
2. Select Create
- use Create button or
- type 'C'.
3. A STEP Entity Editor window appears for editing
the entity selected (See the STEP Entity Editor
Window section below).
.fi
.I
ENTITY INSTANCE LIST WINDOW
The Entity Instance List is the third of three windows initially appearing when the Data Probe is run. When an entity is selected from the Entity Type List or when instances are read in from a file, the instanced entities will appear on the Entity Instance List. In addition to the operations outlined in 'Using Lists' below, the Entity Instance List allows the user to view, modify, and save instances of entities.
.nf
.I
Edit State Markers:
.fi
.LP
The selection of any of the preceeding options is represented by an edit state code. An instance can be marked with an edit state option by typing the key which correlates to that option. The marked option is shown in lower case on the left of the selected instance. When the execute button is pressed, all marked options will be executed, reflected by an upper case letter edit state code which replaces the lower case marker to the left of the intance.
Below is a description of Entity List edit state codes and the keys that are used to select them:
KEY OPERATION EDIT STATE
s save complete (no capital letter) -- All (blank)
attribute values associated with the
instance must be valid and all required
attributes must exist.
i save incomplete -- All attribute values I
associated with the instance must be
valid, however all required attributes
may not exist. This allows attribute
values to be saved even though the entity
is incomplete. It also provides a way
for a user to mark an instance as needing
further attention even if all required
attributes exist.
d delete -- the entities in this edit D
state will be deleted when the contents
of the instance list are written to a
file.
m modify -- open an editor window for M
modifying instances.
v view -- open an editor window for view- V
ing only.
.I
STEP ENTITY EDITOR (SEE) WINDOW
The edit state options described above can also be executed from the STEP Entity Editor Window (SEE). The SEE Window is opened whenever the modify or view option is executed from the Entity Instance List or when an entity is created from the Entity Type List. The following are the operations supported in the SEE window:
.nf
.I
Changing the Edit State of an Entity
save instance to a complete state C-x C-s
save instance to an incomplete state C-x C-i
cancel changes to the entity; reverts C-x C-c
all attribute values to the last
saved (complete or incomplete) values
mark instance for deletion C-x C-d
Each of the above options can also be selected by
clicking the corresponding button in the SEE win-
dow.
.I
Selecting an Attribute
Using mouse:
Point the mouse cursor inside the attribute
editing box desired and click the left mouse
button.
Using key bindings:
select next attribute C-n
select previous attribute C-p
.I
Editing an Attribute
Using mouse:
Point the mouse cursor inside the desired editing
box and click the left mouse button to place the
cursor at the desired postion inside the editing
box.
Using key bindings:
move cursor forward C-f
move cursor backward C-b
move cursor to the end C-e
move cursor to the beginning C-a
move cursor one word forward <esc>-f
move cursor one word backward <esc>-b
Delete and undo:
deleting a portion of the attribute
1. Point the mouse cursor inside the desired attri-
bute editing box, click and hold the left mouse
button.
2. Drag the mouse to the left or right to highlight
desired text.
3. Press <delete> or input a value to replace selec-
ted text.
delete a character in place C-d
delete the previous character <delete> or
C-h
select the remainder of the word
following the cursor to be deleted C-w
select everything following the C-k
cursor to be deleted
select the entire text to be deleted C-u
undo attribute (revert attribute to C-x C-u
the last saved value)
Scrolling:
horizontal grab scroll - use left mouse button
1. Point the mouse inside the attribute list.
2. Press and hold the middle mouse button.
3. Slide the mouse left or right to scroll
the window in the same direction.
horizontal rate scroll - use right mouse button
1. Point the mouse inside the attribute list.
2. Press and hold the right mouse button.
3. Slide the mouse left or right to scroll
the window in the same direction.
The following editing actions are permissable on attributes
that are of type entity only:
edit entity - press the edit button (marked e) or type
C-x C-e
If the attribute contains an entity id, the
identified entity will be put on the screen
in a STEP Entity Editor window.
If the attribute is empty, a new entity of
the type corresponding to the attribute type
will be created and displayed on the screen
in a STEP Entity Editor window. The entity
id corresponding to the newly created entity
will be filled in for the attribute.
select marked entity - press the select mark button
(marked m) or type C-x C-m:
The entity id of the selected entity from the
Entity Instance List will be filed in for the
current atttribute.
.fi
.LP
.I
STEP ENTITY DESCRIPTOR WINDOW (SED)
The SED window enables the user to review information regarding an entity type. It may be opened by selecting the Type Information box in the Entity Type List or SEE window (See the Entity Type List and STEP Entity Editor window sections above). A SED window may also be opened from within a SED window as is described below.
.nf
Format of a SED window:
1. Entity Descriptor Boxes
The body of a SED window is composed of entity descrip-
tor boxes. These boxes are shown in order of inheri-
tance starting with the selected entity type at the bot-
tom of the window up to the root entity type shown at the
top of the window. Each entity descriptor box contains a
title bar, an attribute list and a subtype list described
below.
title bar - contains the name of the entity
in bold print at the left corner and the schema
in which the entity is defined at the right corner.
attribute list - a scrollable list of attributes
defined in the corresponding entity shown on the
left side of the descriptor box.
subtype list - a scrollable list of the subtypes
of the corresponding entity shown on the right side
of the descriptor box.
2. Attr. Type subwindow
The Attr. Type subwindow shown at the bottom of the SED
window displays further information regarding a selected
attrtibute.
Using a SED window:
1. Scrolling the attribute/subtype list
a. Place mouse pointer on up/down arrow.
b. Press right mouse button.
2. Viewing a detailed description of an attribute:
a. Place mouse pointer on desired
attribute.
b. Double click mouse button. A detailed description
of the attribute type will be displayed in the
Attr. Type subwindow located at the bottom of the
SED window.
3. Opening a SED window from the current SED window:
a. Place mouse cursor on the desired entity from
an entity subytpe list.
b. Double click the mouse button. A new SED window
will appear for the entity type selected.
3. Collapsing/Uncollapsing a descriptor box
Collapse - show title bar only
Uncollapse - show attribute and subtype lists
a. Place mouse cursor on collapse button of desired
descriptor box.
b. Click left mouse button. This will cause the
descriptor box to switch from uncollapsed to
collapsed or vice-versa depending on the current
state of the descriptor box.
Exiting a SED window:
1. Place mouse pointer on close button on left
top corner of window
2. Press left mouse button
Warning: Do not use the standard close and quit
options provided for windows. This may
cause you to inadvertantly quit the Data
Probe session. Use the close button pro-
vided.
.fi
.LP
.I
USING LISTS
The following instructions are applicable to both the Entity Instance List and the Entity Type List.
.nf
.I
Selecting an Entry
Using mouse:
Positon the mouse on the entry and click the left
mouse button.
Using keystroke commands:
search formward, selects the entry containing C-s
the substring specified in the search window
reverse search, selects the entry containing C-r
the substring specified in the search window
select next entry C-n
select previous entry C-p
select top entry <
select bottom entry >
deselect selected entry C-h
<delete>
.I
Reviewing Information Regarding an Entity Type
Allows the user to view information regarding attributes
and subtypes and supertypes of an entity type using a
STEP ENTITY DESCRIPTOR (SED) window:
Opening a SED window:
1. Select an entity type from list.
2. Select Type Information by placing the
mouse pointer on the Type Information
box and pressing the left mouse button.
For information on the use of the SED window, see the
STEP Entity Editor window section above.
.I
Scrolling Lists
Using mouse:
1. Position the mouse pointer to the scroll bar and
click.
2. Click (and optionally hold) the up mover or down
mover located above and below the scroll bar
respectively to scroll bar.
vertical grab scroll -- use middle mouse button
1. Point the mouse cursor inside the list.
2. Press and hold the right mouse button.
3. Slide the mouse up or down to move the display
up or down as desired.
vertical rate scroll -- use right mouse button
1. Point the mouse cusor inside the list.
2. Press and hold the right mouse button.
3. Slide the mouse up or down to scroll the list in
the desired direction at a rate increasing as the
mouse is moved away from its original position.
Using key bindings:
scroll list to beginning C-a
scroll list to end C-e
scroll up C-b
C-k
scroll down C-f
C-j
page down C-v
' '
half page down C-d
half page up C-u
.fi
.I
USING BUTTONS TO SELECT OPTIONS
Many of the Data Probe options can be selected by using keystroke commands as described. Some options, however may be selected by using the selection buttons which correspond to those options as follows:
.nf
1. Activate pull-down menu (if applicable):
- Place mouse pointer on menu button
- Press right mouse button and hold
2. Select an option
- Place mouse pointer on selection button correspond-
ing to the desired option
- Press left mouse button to activate option
.fi
.SH SEE ALSO
mkProbe(1)
.LP
ISO 10303-11:1994
.I
\Industrial automation systems and integration - Product data \
representation and exchange - Part 11: Description Methods: The \
EXPRESS Language Reference Manual.
.LP
ISO 10303-21:1994
.I
\Industrial automation systems and integration - Product data \
representation and exchange - Part 21: Implementation methods: \
Clear text encoding of the exchange structure.
.LP
Morris, K.C., Sauderd, D., Ressler, S.,
.I
\Validation Testing System: Reusable Software Component Design,
NISTIR 4937, National Institute of Standards and Technology, October
1992.
.LP
Sauder, D.,
.I
\Data Probe Users Guide,
NISTIR 5141, National Institute of Standards and Technology, March
1993.
.SH NOTE
.LP
The source code for the Data Probe was designed with reusability in
mind. The code uses the STEP Class Library (developed at NIST) and
the InterViews Toolkit (from Stanford). The STEP Class Library is
divided into four libraries: Stepcore & Editor, Utilities, General
User Interface, and Probe. Dependencies between these modules has
been minimized so that the executable program, the Data Probe, can be
easily reconfigured to support different conceptual schemas.
All NISTIR documents may be obtained through the National Technical
Information Service (NTIS), Springfield VA 22161, USA. Postscript
files may be obtained through anonymous ftp from ftp.cme.nist.gov (see
pub/step/nptdocs/readme.txt to determine the appropriate file to
download).
@@ -2,12 +2,12 @@
.\" part of their official duties and is, therefore, a work of the U.S.
.\" Government and not subject to copyright.
.\"
.\" $Id: exp2cxx.1,v 2.1.0.2 1998/02/27 23:54:30 sauderd Exp $
.\" $Id: fedex_plus.1,v 2.1.0.2 1998/02/27 23:54:30 sauderd Exp $
.TH FEDEX_PLUS 1 "19 November 1997"
.SH NAME
exp2cxx - EXPRESS compiler and translator
fedex_plus - EXPRESS compiler and translater
.SH SYNOPSIS
exp2cxx [ options ] [ express-file ]
fedex_plus [ options ] [ express-file ]
.nf
Command Arguments:
@@ -19,36 +19,36 @@ Command Arguments:
.fi
.SH DESCRIPTION
.LP
exp2cxx is based on the NIST EXPRESS compiler fedex. exp2cxx
fedex_plus is based on the NIST EXPRESS compiler fedex. fedex_plus
translates an EXPRESS file into C++ code and a class library. The C++
library includes classes for representing all the types and entities
in the input EXPRESS file, and a dictionary for describing those
classes. The translation depends on base classes provided in the NIST
STEP Class Library.
exp2cxx does not create C++ representations of the rules,
fedex_plus does not create C++ representations of the rules,
procedures, or any EXPRESS constructs other than schemas, types and
entities. It supports multiple schemas contained in a single file and
complex entities. It generates code which can be integrated with
orbix and ObjectStore.
Combined with the NIST STEP Class Library, the translator provides a
"C++ working form" of an EXPRESS schema. exp2cxx was designed for
"C++ working form" of an EXPRESS schema. fedex_plus was designed for
use together with a graphical data editing system (see dataprobe(1)),
but care has been taken to keep exp2cxx separate so that it can be
but care has been taken to keep fedex_plus separate so that it can be
used as a component of other software systems.
The exp2cxx compiler makes two passes through the EXPRESS file. In
the first pass exp2cxx reads the syntax of the EXPRESS file and
detects any errors. In the second pass exp2cxx converts the
The fedex_plus compiler makes two passes through the EXPRESS file. In
the first pass fedex_plus reads the syntax of the EXPRESS file and
detects any errors. In the second pass fedex_plus converts the
EXPRESS code into C++ source code. The C++ source code is generated
in files in the directory in which exp2cxx was run. The files are
in files in the directory in which fedex_plus was run. The files are
named according to the schema names in the input EXPRESS file.
.SH OPTIONS
.TP
.B -s|S
Tells exp2cxx to use only single-inheritance, rather than multiple
Tells fedex_plus to use only single-inheritance, rather than multiple
inheritance.
.TP
.B -c|C
@@ -94,7 +94,7 @@ If no arguments are given in the command line, a list and description
of the options available are sent to stdout.
.SH OUTPUT
exp2cxx sends the following to stdout subject to the options
fedex_plus sends the following to stdout subject to the options
specified when executed:
- a statement indicating that the Express schema is being
+195
View File
@@ -0,0 +1,195 @@
.\" This manual was prepared by United States Government employees as a
.\" part of their official duties and is, therefore, a work of the U.S.
.\" Government and not subject to copyright.
.\ "
.\" $Id: mkProbe.1,v 2.1.0.3 1997/10/23 17:03:36 kcm Exp $
.TH MKPROBE 1 "23 October 1997"
.SH NAME
mkProbe - script file used to generate a Data Probe or Part 21 file
reader executable for an EXPRESS schema.
.SH SYNOPSIS
.B mkProbe
[
.B -ilsSpP
]
[
.B -R
.I pdes-root
]
[
.B -E
.I express-path
]
.I express-file schema-name
.SH DESCRIPTION
.LP
mkProbe enables you to create a C++ library based on an EXPRESS file
and an executable Data Probe or Part 21 file reader application. The
Data Probe allows you to examine, input, and modify a data file
corresponding to an EXPRESS schema. The Data Probe generated is
specific to the express-file given as the first argument in the
mkProbe command. The Part 21 file reader simply reads and writes a
Part 21 file and outputs any errors encountered in the file.
.LP
The schema-name argument designates a location in which to place the
executable. The directory selected (see OPTIONS below) is searched
for the schema name provided. If schema-name does not exist, a
directory will be created using the name provided. schema-name is
also used as a suffix for the name of the executable.
.LP
A new directory is created under the directory from which the script
was run. fedex_plus is called from this directory to generate the C++
classes to represent the schema information (a.k.a. the Schema Class
Library.)
The new directory contains the following:
.nf
.ft B
1) the source code for the C++ classes generated by fedex_plus using
the first argument,
2) the object files generated from the source code above,
3) the library created from the object files above,
4) your new Data Probe executable (or p21read if the -p option was
used.)
i.e. under the directory from which the
script was run you will find the
following executable:
{schema-name}/dp_{schema-name}
(or {schema-name}/p21read_{schema-name})
.fi
.ft R
.SH OPTIONS
.TP
.B -i
Indicates that the new Data Probe should be installed into the PDES
root directory. If -i is not specified the new Data Probe will be
created in the directory from which the mkProbe script is run.
.TP
.B -l
Tells the script to only generate the library for the schema, and
not to create the Data Probe application.
.TP
.B -p
.PD 0
.TP
.B -P
Tells the script to generate the Part 21 file reader for the schema,
rather than the Data Probe application.
.TP
.B -s
.PD 0
.TP
.B -S
Tells fedex_plus to use only single-inheritance, rather than multiple
inheritance.
.PD
.TP
.BI -R " pdes_root"
Set the PDES root directory. This is the directory that mkProbe will
consider the root of the source tree.
The PDES root directory can also be defined by the environment
variable PDES_ROOT. This variable should be set using the appropriate
shell command. For example, C shell users would give the command
.nf
.ft B
setenv PDES_ROOT ~pdes
.fi
.ft R
If the
.B -r
option is not given, and the PDES_ROOT environment variable is not
set, mkProbe looks for the directory /proj/pdevel to use as the root.
.TP
.BI -E " express-path"
Specifies an EXPRESS_PATH environment variable to be used when
fedex_plus is executed in mkProbe. If this option is not set, mkProbe
will use the current EXPRESS_PATH environment variable. For more
information, see the documentation on the
.I NIST EXPRESS Toolkit.
.TP
.I express-file
The Express file used to create the schema specific Data Probe.
.TP
.I schema-name
A schema name which is used for naming a new directory and the Data
Probe executable.
.SH EXAMPLES
.nf
.ft B
Input command line location and name
----------------------------------------------------
mkProbe part41.exp pt41 ./pt41/dp_pt41
mkProbe -p part41.exp pt41 ./pt41/p21read_pt41
mkProbe -i part41.exp pt41 $PDES_ROOT/arch/Probes/pt41/dp_pt41
.ft R
.SH OUTPUT
If errors are detected, the output generated shows the following:
- Errors in input
- Compilation errors
If no errors are encountered, the output generated shows
the following:
- The name of the new Data Probe generated
- Instructions for running Data Probe
.SH SEE ALSO
fedex_plus(1)
.LP
http://scl.nist.gov
.LP
ISO 10303-11:1994
.I
\Industrial Automation Systems and Integration - Product Data \
Representation and Exchange - Part 11: Description Methods: The \
EXPRESS Language Reference Manual.
.LP
Morris, K.C., Sauderd, D., Ressler, S.,
.I
\Validation Testing System: Reusable Software Component Design,
NISTIR 4937, National Institute of Standards and Technology, October
1992.
.LP
Sauder, D.,
.I
\Data Probe Users Guide,
NISTIR 5141, National Institute of Standards and Technology, March
1993.
.SH NOTE
.LP
All NISTIR documents may be obtained through the National Technical
Information Service (NTIS), Springfield VA 22161, USA or through the
web. See http://scl.nist.gov for a listing of related
documentation.
-94
View File
@@ -1,94 +0,0 @@
#
# CMakeLists.txt for AP203 Minimum
#
# This file is released to the public domain. Any part of this file may be
# freely copied in part or in full for any purpose. No acknowledgment is required
# for the use of this file.
#
project(AP203Minimum)
cmake_minimum_required(VERSION 3.12)
# Set STEPCODE_ROOT_DIR to point to the root of the STEPcode source tree.
if(NOT DEFINED STEPCODE_ROOT_DIR)
message(FATAL_ERROR "STEPCODE_ROOT_DIR is not defined! Set via cmake-gui or on command line:\n cmake .. -DSTEPCODE_ROOT_DIR=/path/to/sc")
endif(NOT DEFINED STEPCODE_ROOT_DIR)
# STEPCODE_ROOT_DIR is relative or absolute path?
if(EXISTS "${CMAKE_BINARY_DIR}/${STEPCODE_ROOT_DIR}/src/express/express.c")
set(STEPCODE_ROOT_DIR "${CMAKE_BINARY_DIR}/${STEPCODE_ROOT_DIR}")
message("** STEPCODE_ROOT_DIR is a relative path; converted to absolute path: ${STEPCODE_ROOT_DIR}.")
else()
if(NOT EXISTS "${STEPCODE_ROOT_DIR}/src/express/express.c")
message(FATAL_ERROR "**** Cannot locate STEPCODE_ROOT_DIR - try an absolute path.")
endif(NOT EXISTS "${STEPCODE_ROOT_DIR}/src/express/express.c")
endif(EXISTS "${CMAKE_BINARY_DIR}/${STEPCODE_ROOT_DIR}/src/express/express.c")
# Use STEPcode as library, but build from this build process.
set(SC_IS_SUBBUILD TRUE)
# Build type, DEBUG or RELEASE
if(NOT DEFINED CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug)
endif(NOT DEFINED CMAKE_BUILD_TYPE)
set(SC_BUILD_TYPE ${CMAKE_BUILD_TYPE})
# Path to STEPcode
set(STEPCODE_BUILD_DIR ${CMAKE_BINARY_DIR}/sc CACHE PATH "STEPcode build subdir")
# STEP schema to build and link against.
set(SCHEMA ap203)
set(SC_BUILD_SCHEMAS ${SCHEMA} CACHE INTERNAL "Schema, internal, immutable" FORCE)
# Parse out schema name and library.
set(SCHEMA_PATH "${STEPCODE_ROOT_DIR}/data/${SCHEMA}/*.exp")
file(GLOB SCHEMA_FILE "${SCHEMA_PATH}")
if(NOT EXISTS ${SCHEMA_FILE})
message(FATAL_ERROR "Cannot find the schema; cannot continue. Looked for ${SCHEMA_PATH} from ${CMAKE_CURRENT_LIST_DIR}")
endif(NOT EXISTS ${SCHEMA_FILE})
get_filename_component(SCHEMA_SN ${SCHEMA_FILE} NAME)
string(REGEX REPLACE "\(.*\).[Ee][Xx][Pp]" "sdai_\\1" SCHEMA_LINK_NAME ${SCHEMA_SN})
set(STEPCODE_LIBRARIES stepcore stepeditor stepdai steputils ${SCHEMA_LINK_NAME})
# Add STEPCode project to CMake build.
add_subdirectory(${STEPCODE_ROOT_DIR} "${CMAKE_CURRENT_BINARY_DIR}/sc" EXCLUDE_FROM_ALL)
# Set up STEPcode include directories.
set(STEPCODE_INCLUDE_DIR
${STEPCODE_ROOT_DIR}/src/clstepcore
${STEPCODE_ROOT_DIR}/src/cldai
${STEPCODE_ROOT_DIR}/src/clutils
${STEPCODE_ROOT_DIR}/src/cleditor
${STEPCODE_BUILD_DIR}/include
${STEPCODE_ROOT_DIR}/include
${CMAKE_BINARY_DIR}
${STEPCODE_BUILD_DIR}/schemas/${SCHEMA_LINK_NAME}
)
# Reset sane values for build destination. Otherwise, everything ends up in ${CMAKE_BINARY_DIR}/sc
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
include_directories(
${STEPCODE_INCLUDE_DIR}
)
# Application sources and headers
set(SRCS ap203min.cpp)
set(HDRS )
add_executable(${PROJECT_NAME} ${SRCS} ${HDRS})
target_link_libraries(${PROJECT_NAME} ${STEPCODE_LIBRARIES})
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
@@ -1,77 +0,0 @@
#
# CMakeLists.txt for AP203 Minimum
#
# This file is released to the public domain. Any part of this file may be
# freely copied in part or in full for any purpose. No acknowledgment is required
# for the use of this file.
#
project(AP203Minimum)
cmake_minimum_required(VERSION 3.12)
INCLUDE( ExternalProject )
set(CMAKE_MODULE_PATH ${AP203Minimum_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
INCLUDE( External_STEPCode )
#####
# Variables ideally set by FindSTEPCode.cmake
IF(NOT WIN32)
set( STEPCODE_LIBRARIES
${STEPCODE_INSTALL_DIR}/lib/libstepcore.a
${STEPCODE_INSTALL_DIR}/lib/libstepeditor.a
${STEPCODE_INSTALL_DIR}/lib/libstepdai.a
${STEPCODE_INSTALL_DIR}/lib/libsteputils.a
${STEPCODE_INSTALL_DIR}/lib/libsdai_ap203.a
)
ELSE()
set( STEPCODE_LIBRARIES
${STEPCODE_INSTALL_DIR}/lib/libstepcore.lib
${STEPCODE_INSTALL_DIR}/lib/libstepeditor.lib
${STEPCODE_INSTALL_DIR}/lib/libstepdai.lib
${STEPCODE_INSTALL_DIR}/lib/libsteputils.lib
${STEPCODE_INSTALL_DIR}/lib/libsdai_ap203.lib
${STEPCODE_INSTALL_DIR}/lib/libexpress.lib
${STEPCODE_INSTALL_DIR}/lib/libexppp.lib
shlwapi.lib
)
ENDIF()
MESSAGE( STATUS "STEPCODE_INSTALL_DIR: " ${STEPCODE_INSTALL_DIR} )
set( STEPCODE_INCLUDE_DIR
${STEPCODE_INSTALL_DIR}/include/stepcode
${STEPCODE_INSTALL_DIR}/include/stepcode/clstepcore
${STEPCODE_INSTALL_DIR}/include/stepcode/cldai
${STEPCODE_INSTALL_DIR}/include/stepcode/clutils
${STEPCODE_INSTALL_DIR}/include/stepcode/cleditor
${STEPCODE_INSTALL_DIR}/include/schemas/sdai_ap203
)
# End of variables ideally set by FindSTEPCode.cmake
######
include_directories(
${STEPCODE_INCLUDE_DIR}
)
set(SRCS ../ap203min.cpp)
set(HDRS )
add_executable( ${PROJECT_NAME} ${SRCS} ${HDRS})
add_dependencies( ${PROJECT_NAME} STEPCODE )
target_link_libraries( ${PROJECT_NAME}
${STEPCODE_LIBRARIES}
)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
@@ -1,24 +0,0 @@
ExternalProject_Add( STEPCODE
URL ${CMAKE_CURRENT_SOURCE_DIR}/../../..
CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
-DSC_BUILD_TYPE=Debug
-DSC_BUILD_SCHEMAS=ap203/ap203.exp
-DSC_BUILD_STATIC_LIBS=ON
-DSC_PYTHON_GENERATOR=OFF
-DSC_INSTALL_PREFIX:PATH=<INSTALL_DIR>
)
ExternalProject_Get_Property( STEPCODE SOURCE_DIR )
ExternalProject_Get_Property( STEPCODE BINARY_DIR )
ExternalProject_Get_Property( STEPCODE INSTALL_DIR )
IF( NOT WIN32 )
SET( STEPCODE_INSTALL_DIR ${SOURCE_DIR}/../sc-install )
ELSE()
SET( STEPCODE_INSTALL_DIR ${INSTALL_DIR} )
ENDIF()
SET( STEPCODE_BINARY_DIR ${BINARY_DIR} )
-719
View File
@@ -1,719 +0,0 @@
//*****************************************************************************
// AP203 Minimum
//
// This program is intended to serve as a tutorial example for programmers
// interested in learning about ISO 10303 (STEP), the STEPcode project, and
// the AP203 portion of STEP.
//
// This program creates and connects the minimum set of entities required
// to form a valid AP203 STEP file. Inspiration for this program came from
// Appendix B of 'Recommended Practices for AP 203' released to the public
// domain in 1998 by PDES Inc. The recommended practices document is
// available online at:
//
// http://www.steptools.com/support/stdev_docs/express/ap203/recprac203v8.pdf
//
// The recommended practices document states:
//
// "This document has been developed by the PDES, Inc. Industry
// consortium to aid in accelerating the implementation of the
// STEP standard. It has not been copyrighted to allow for the
// free exchange of the information. PDES, Inc. Requests that
// anyone using this information provide acknowledgment that
// PDES, Inc. was the original author."
//
// In the same spirit, this program is released to the public domain. Any
// part of this program may be freely copied in part or in full for any
// purpose. No acknowledgment is required for the use of this code.
//
// This program was written by Rob McDonald in October 2013. Since that
// time, it has been maintained by the STEPcode project.
//
//****************************************************************************/
// This program uses CMake to build Makefiles or other project files. It
// includes a CMakeLists.txt program that also builds STEPcode as a sub-build.
// To compile, you must tell CMake where your STEPcode source tree is located
// by setting STEPCODE_ROOT_DIR. To compile:
//
// $ pwd
// .../stepcode/example/ap203min
// $ mkdir build
// $ cd build
// $ cmake .. -DSTEPCODE_ROOT_DIR=../../..
// $ make
// $ cd bin
// $ ls
// AP203Minimum
// $./AP203Minimum
// AP203Minimum outfile.stp
#include <STEPfile.h>
#include <sdai.h>
#include <STEPattribute.h>
#include <ExpDict.h>
#include <Registry.h>
#include <errordesc.h>
#include <STEPcomplex.h>
#include <SdaiHeaderSchema.h>
#include "schema.h"
#include <SdaiCONFIG_CONTROL_DESIGN.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
enum LenEnum { MM, CM, M, IN, FT, YD };
enum AngEnum { RAD, DEG };
STEPcomplex * Geometric_Context( Registry * registry, InstMgr * instance_list, const LenEnum & len, const AngEnum & angle, const char * tolstr ) {
int instance_cnt = 0;
STEPattribute * attr;
STEPcomplex * stepcomplex;
SdaiDimensional_exponents * dimensional_exp = new SdaiDimensional_exponents();
dimensional_exp->length_exponent_( 0.0 );
dimensional_exp->mass_exponent_( 0.0 );
dimensional_exp->time_exponent_( 0.0 );
dimensional_exp->electric_current_exponent_( 0.0 );
dimensional_exp->thermodynamic_temperature_exponent_( 0.0 );
dimensional_exp->amount_of_substance_exponent_( 0.0 );
dimensional_exp->luminous_intensity_exponent_( 0.0 );
instance_list->Append( ( SDAI_Application_instance * ) dimensional_exp, completeSE );
instance_cnt++;
STEPcomplex * ua_length;
// First set up metric units if appropriate. Default to mm.
// If imperial units, set up mm to be used as base to define imperial units.
Si_prefix pfx = Si_prefix__milli;
switch( len ) {
case CM:
pfx = Si_prefix__centi;
break;
case M:
pfx = Si_prefix_unset;
break;
}
const char * ua_length_types[4] = { "length_unit", "named_unit", "si_unit", "*" };
ua_length = new STEPcomplex( registry, ( const char ** ) ua_length_types, instance_cnt );
stepcomplex = ua_length->head;
while( stepcomplex ) {
if( !strcmp( stepcomplex->EntityName(), "Si_Unit" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "prefix" ) ) {
attr->Enum( new SdaiSi_prefix_var( pfx ) );
}
if( !strcmp( attr->Name(), "name" ) ) {
attr->Enum( new SdaiSi_unit_name_var( Si_unit_name__metre ) );
}
}
}
stepcomplex = stepcomplex->sc;
}
instance_list->Append( ( SDAI_Application_instance * ) ua_length, completeSE );
instance_cnt++;
// If imperial, create conversion based unit.
if( len >= IN ) {
STEPcomplex * len_mm = ua_length;
char lenname[10];
double lenconv;
switch( len ) {
case IN:
strcat( lenname, "'INCH'\0" );
lenconv = 25.4;
break;
case FT:
strcat( lenname, "'FOOT'\0" );
lenconv = 25.4 * 12.0;
break;
case YD:
strcat( lenname, "'YARD'\0" );
lenconv = 25.4 * 36.0;
break;
}
SdaiUnit * len_unit = new SdaiUnit( ( SdaiNamed_unit * ) len_mm );
SdaiMeasure_value * len_measure_value = new SdaiMeasure_value( lenconv, config_control_design::t_measure_value );
len_measure_value->SetUnderlyingType( config_control_design::t_length_measure );
SdaiLength_measure_with_unit * len_measure_with_unit = new SdaiLength_measure_with_unit();
len_measure_with_unit->value_component_( len_measure_value );
len_measure_with_unit->unit_component_( len_unit );
instance_list->Append( ( SDAI_Application_instance * ) len_measure_with_unit, completeSE );
instance_cnt++;
SdaiDimensional_exponents * dimensional_exp_len = new SdaiDimensional_exponents();
dimensional_exp_len->length_exponent_( 1.0 );
dimensional_exp_len->mass_exponent_( 0.0 );
dimensional_exp_len->time_exponent_( 0.0 );
dimensional_exp_len->electric_current_exponent_( 0.0 );
dimensional_exp_len->thermodynamic_temperature_exponent_( 0.0 );
dimensional_exp_len->amount_of_substance_exponent_( 0.0 );
dimensional_exp_len->luminous_intensity_exponent_( 0.0 );
instance_list->Append( ( SDAI_Application_instance * ) dimensional_exp_len, completeSE );
instance_cnt++;
const char * ua_conv_len_types[4] = { "conversion_based_unit", "named_unit", "length_unit", "*" };
ua_length = new STEPcomplex( registry, ( const char ** ) ua_conv_len_types, instance_cnt );
stepcomplex = ua_length->head;
while( stepcomplex ) {
if( !strcmp( stepcomplex->EntityName(), "Conversion_Based_Unit" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "name" ) ) {
attr->StrToVal( lenname );
}
if( !strcmp( attr->Name(), "conversion_factor" ) ) {
attr->Entity( ( STEPentity * )( len_measure_with_unit ) );
}
}
}
if( !strcmp( stepcomplex->EntityName(), "Named_Unit" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "dimensions" ) ) {
attr->Entity( ( STEPentity * )( dimensional_exp_len ) );
}
}
}
stepcomplex = stepcomplex->sc;
}
instance_list->Append( ( SDAI_Application_instance * ) ua_length, completeSE );
instance_cnt++;
}
SdaiUncertainty_measure_with_unit * uncertainty = ( SdaiUncertainty_measure_with_unit * )registry->ObjCreate( "UNCERTAINTY_MEASURE_WITH_UNIT" );
uncertainty->name_( "'DISTANCE_ACCURACY_VALUE'" );
uncertainty->description_( "'Threshold below which geometry imperfections (such as overlaps) are not considered errors.'" );
SdaiUnit * tol_unit = new SdaiUnit( ( SdaiNamed_unit * ) ua_length );
uncertainty->ResetAttributes();
{
while( ( attr = uncertainty->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "unit_component" ) ) {
attr->Select( tol_unit );
}
if( !strcmp( attr->Name(), "value_component" ) ) {
attr->StrToVal( tolstr );
}
}
}
instance_list->Append( ( SDAI_Application_instance * ) uncertainty, completeSE );
instance_cnt++;
// First set up radians as base angle unit.
const char * ua_plane_angle_types[4] = { "named_unit", "plane_angle_unit", "si_unit", "*" };
STEPcomplex * ua_plane_angle = new STEPcomplex( registry, ( const char ** ) ua_plane_angle_types, instance_cnt );
stepcomplex = ua_plane_angle->head;
while( stepcomplex ) {
if( !strcmp( stepcomplex->EntityName(), "Si_Unit" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "name" ) ) {
attr->Enum( new SdaiSi_unit_name_var( Si_unit_name__radian ) );
}
}
}
stepcomplex = stepcomplex->sc;
}
instance_list->Append( ( SDAI_Application_instance * ) ua_plane_angle, completeSE );
instance_cnt++;
// If degrees, create conversion based unit.
if( angle == DEG ) {
STEPcomplex * ang_rad = ua_plane_angle;
const double angconv = ( 3.14159265358979323846264338327950 / 180.0 );
SdaiUnit * p_ang_unit = new SdaiUnit( ( SdaiNamed_unit * ) ang_rad );
SdaiMeasure_value * p_ang_measure_value = new SdaiMeasure_value( angconv, config_control_design::t_measure_value );
p_ang_measure_value->SetUnderlyingType( config_control_design::t_plane_angle_measure );
SdaiPlane_angle_measure_with_unit * p_ang_measure_with_unit = new SdaiPlane_angle_measure_with_unit();
p_ang_measure_with_unit->value_component_( p_ang_measure_value );
p_ang_measure_with_unit->unit_component_( p_ang_unit );
instance_list->Append( ( SDAI_Application_instance * ) p_ang_measure_with_unit, completeSE );
instance_cnt++;
const char * ua_conv_angle_types[4] = { "conversion_based_unit", "named_unit", "plane_angle_unit", "*" };
ua_plane_angle = new STEPcomplex( registry, ( const char ** ) ua_conv_angle_types, instance_cnt );
stepcomplex = ua_plane_angle->head;
while( stepcomplex ) {
if( !strcmp( stepcomplex->EntityName(), "Conversion_Based_Unit" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "name" ) ) {
attr->StrToVal( "'DEGREES'" );
}
if( !strcmp( attr->Name(), "conversion_factor" ) ) {
attr->Entity( ( STEPentity * )( p_ang_measure_with_unit ) );
}
}
}
if( !strcmp( stepcomplex->EntityName(), "Named_Unit" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "dimensions" ) ) {
attr->Entity( ( STEPentity * )( dimensional_exp ) );
}
}
}
stepcomplex = stepcomplex->sc;
}
instance_list->Append( ( SDAI_Application_instance * ) ua_plane_angle, completeSE );
instance_cnt++;
}
const char * ua_solid_angle_types[4] = { "named_unit", "si_unit", "solid_angle_unit", "*" };
STEPcomplex * ua_solid_angle = new STEPcomplex( registry, ( const char ** ) ua_solid_angle_types, instance_cnt );
stepcomplex = ua_solid_angle->head;
while( stepcomplex ) {
if( !strcmp( stepcomplex->EntityName(), "Si_Unit" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "name" ) ) {
attr->Enum( new SdaiSi_unit_name_var( Si_unit_name__steradian ) );
}
}
}
stepcomplex = stepcomplex->sc;
}
instance_list->Append( ( SDAI_Application_instance * ) ua_solid_angle, completeSE );
instance_cnt++;
// All units set up, stored in: ua_length, ua_plane_angle, ua_solid_angle
const char * entNmArr[5] = { "geometric_representation_context", "global_uncertainty_assigned_context", "global_unit_assigned_context", "representation_context", "*" };
STEPcomplex * complex_entity = new STEPcomplex( registry, ( const char ** ) entNmArr, instance_cnt );
stepcomplex = complex_entity->head;
while( stepcomplex ) {
if( !strcmp( stepcomplex->EntityName(), "Geometric_Representation_Context" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "coordinate_space_dimension" ) ) {
attr->StrToVal( "3" );
}
}
}
if( !strcmp( stepcomplex->EntityName(), "Global_Uncertainty_Assigned_Context" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "uncertainty" ) ) {
EntityAggregate * unc_agg = new EntityAggregate();
unc_agg->AddNode( new EntityNode( ( SDAI_Application_instance * ) uncertainty ) );
attr->Aggregate( unc_agg );
}
}
}
if( !strcmp( stepcomplex->EntityName(), "Global_Unit_Assigned_Context" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
std::string attrval;
if( !strcmp( attr->Name(), "units" ) ) {
EntityAggregate * unit_assigned_agg = new EntityAggregate();
unit_assigned_agg->AddNode( new EntityNode( ( SDAI_Application_instance * ) ua_length ) );
unit_assigned_agg->AddNode( new EntityNode( ( SDAI_Application_instance * ) ua_plane_angle ) );
unit_assigned_agg->AddNode( new EntityNode( ( SDAI_Application_instance * ) ua_solid_angle ) );
attr->Aggregate( unit_assigned_agg );
}
}
}
if( !strcmp( stepcomplex->EntityName(), "Representation_Context" ) ) {
stepcomplex->ResetAttributes();
while( ( attr = stepcomplex->NextAttribute() ) != NULL ) {
if( !strcmp( attr->Name(), "context_identifier" ) ) {
attr->StrToVal( "'STANDARD'" );
}
if( !strcmp( attr->Name(), "context_type" ) ) {
attr->StrToVal( "'3D'" );
}
}
}
stepcomplex = stepcomplex->sc;
}
instance_list->Append( ( SDAI_Application_instance * ) complex_entity, completeSE );
instance_cnt++;
return complex_entity;
}
SdaiCartesian_point * MakePoint( Registry * registry, InstMgr * instance_list, const double & x, const double & y, const double & z ) {
SdaiCartesian_point * pnt = ( SdaiCartesian_point * ) registry->ObjCreate( "CARTESIAN_POINT" );
pnt->name_( "''" );
RealAggregate * coords = pnt->coordinates_();
RealNode * xnode = new RealNode();
xnode->value = x;
coords->AddNode( xnode );
RealNode * ynode = new RealNode();
ynode->value = y;
coords->AddNode( ynode );
RealNode * znode = new RealNode();
znode->value = z;
coords->AddNode( znode );
instance_list->Append( ( SDAI_Application_instance * ) pnt, completeSE );
return pnt;
}
SdaiDirection * MakeDirection( Registry * registry, InstMgr * instance_list, const double & x, const double & y, const double & z ) {
SdaiDirection * dir = ( SdaiDirection * ) registry->ObjCreate( "DIRECTION" );
dir->name_( "''" );
RealAggregate * components = dir->direction_ratios_();
RealNode * xnode = new RealNode();
xnode->value = x;
components->AddNode( xnode );
RealNode * ynode = new RealNode();
ynode->value = y;
components->AddNode( ynode );
RealNode * znode = new RealNode();
znode->value = z;
components->AddNode( znode );
instance_list->Append( ( SDAI_Application_instance * ) dir, completeSE );
return dir;
}
SdaiAxis2_placement_3d * DefaultAxis( Registry * registry, InstMgr * instance_list ) {
SdaiCartesian_point * pnt = MakePoint( registry, instance_list, 0.0, 0.0, 0.0 );
SdaiDirection * axis = MakeDirection( registry, instance_list, 0.0, 0.0, 1.0 );
SdaiDirection * refd = MakeDirection( registry, instance_list, 1.0, 0.0, 0.0 );
SdaiAxis2_placement_3d * placement = ( SdaiAxis2_placement_3d * ) registry->ObjCreate( "AXIS2_PLACEMENT_3D" );
placement->name_( "''" );
placement->location_( pnt );
placement->axis_( axis );
placement->ref_direction_( refd );
instance_list->Append( ( SDAI_Application_instance * ) placement, completeSE );
return placement;
}
SdaiDate_and_time * DateTime( Registry * registry, InstMgr * instance_list ) {
SdaiCalendar_date * caldate = ( SdaiCalendar_date * ) registry->ObjCreate( "CALENDAR_DATE" );
instance_list->Append( ( SDAI_Application_instance * ) caldate, completeSE );
caldate->year_component_( 2000 );
caldate->month_component_( 1 );
caldate->day_component_( 1 );
SdaiCoordinated_universal_time_offset * tzone = ( SdaiCoordinated_universal_time_offset * ) registry->ObjCreate( "COORDINATED_UNIVERSAL_TIME_OFFSET" );
instance_list->Append( ( SDAI_Application_instance * ) tzone, completeSE );
tzone->hour_offset_( 0 );
tzone->minute_offset_( 0 );
tzone->sense_( Ahead_or_behind__behind );
SdaiLocal_time * loctime = ( SdaiLocal_time * ) registry->ObjCreate( "LOCAL_TIME" );
instance_list->Append( ( SDAI_Application_instance * ) loctime, completeSE );
loctime->hour_component_( 12 );
loctime->minute_component_( 0 );
loctime->second_component_( 0 );
loctime->zone_( tzone );
SdaiDate_and_time * date_time = ( SdaiDate_and_time * ) registry->ObjCreate( "DATE_AND_TIME" );
instance_list->Append( ( SDAI_Application_instance * )date_time, completeSE );
date_time->date_component_( caldate );
date_time->time_component_( loctime );
return date_time;
}
SdaiSecurity_classification * Classification( Registry * registry, InstMgr * instance_list, SdaiPerson_and_organization * per_org, SdaiDate_and_time * date_time, SdaiProduct_definition_formation_with_specified_source * prod_def_form ) {
SdaiSecurity_classification_level * level = ( SdaiSecurity_classification_level * ) registry->ObjCreate( "SECURITY_CLASSIFICATION_LEVEL" );
instance_list->Append( ( SDAI_Application_instance * ) level, completeSE );
level->name_( "'unclassified'" );
SdaiSecurity_classification * clas = ( SdaiSecurity_classification * ) registry->ObjCreate( "SECURITY_CLASSIFICATION" );
instance_list->Append( ( SDAI_Application_instance * ) clas, completeSE );
clas->name_( "''" );
clas->purpose_( "''" );
clas->security_level_( level );
SdaiCc_design_security_classification * des_class = ( SdaiCc_design_security_classification * ) registry->ObjCreate( "CC_DESIGN_SECURITY_CLASSIFICATION" );
instance_list->Append( ( SDAI_Application_instance * ) des_class, completeSE );
des_class->assigned_security_classification_( clas );
des_class->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def_form ) );
SdaiPerson_and_organization_role * class_role = ( SdaiPerson_and_organization_role * ) registry->ObjCreate( "PERSON_AND_ORGANIZATION_ROLE" );
instance_list->Append( ( SDAI_Application_instance * ) class_role, completeSE );
class_role->name_( "'classification_officer'" );
SdaiCc_design_person_and_organization_assignment * class_personorg = ( SdaiCc_design_person_and_organization_assignment * ) registry->ObjCreate( "CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT" );
instance_list->Append( ( SDAI_Application_instance * ) class_personorg, completeSE );
class_personorg->assigned_person_and_organization_( per_org );
class_personorg->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) clas ) );
class_personorg->role_( class_role );
SdaiDate_time_role * class_datetime = ( SdaiDate_time_role * ) registry->ObjCreate( "DATE_TIME_ROLE" );
instance_list->Append( ( SDAI_Application_instance * ) class_datetime, completeSE );
class_datetime->name_( "'classification_date'" );
SdaiCc_design_date_and_time_assignment * assign = ( SdaiCc_design_date_and_time_assignment * ) registry->ObjCreate( "CC_DESIGN_DATE_AND_TIME_ASSIGNMENT" );
instance_list->Append( ( SDAI_Application_instance * ) assign, completeSE );
assign->assigned_date_and_time_( date_time );
assign->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) clas ) );
assign->role_( class_datetime );
return clas;
}
int main( void ) {
// The registry contains information about types present in the current schema; SchemaInit is a function in the schema-specific SDAI library
Registry * registry = new Registry( SchemaInit );
// The InstMgr holds instances that have been created or that have been loaded from a file
InstMgr * instance_list = new InstMgr();
// Increment FileId so entities start at #1 instead of #0.
instance_list->NextFileId();
// STEPfile takes care of reading and writing Part 21 files
STEPfile * sfile = new STEPfile( *registry, *instance_list, "", false );
registry->ResetSchemas();
registry->ResetEntities();
// Build file header
InstMgr * header_instances = sfile->HeaderInstances();
SdaiFile_name * fn = ( SdaiFile_name * ) sfile->HeaderDefaultFileName();
header_instances->Append( ( SDAI_Application_instance * ) fn, completeSE );
fn->name_( "'outfile.stp'" );
fn->time_stamp_( "''" );
fn->author_()->AddNode( new StringNode( "''" ) );
fn->organization_()->AddNode( new StringNode( "''" ) );
fn->preprocessor_version_( "''" );
fn->originating_system_( "''" );
fn->authorization_( "''" );
SdaiFile_description * fd = ( SdaiFile_description * ) sfile->HeaderDefaultFileDescription();
header_instances->Append( ( SDAI_Application_instance * ) fd, completeSE );
fd->description_()->AddNode( new StringNode( "''" ) );
fd->implementation_level_( "'1'" );
SdaiFile_schema * fs = ( SdaiFile_schema * ) sfile->HeaderDefaultFileSchema();
header_instances->Append( ( SDAI_Application_instance * ) fs, completeSE );
fs->schema_identifiers_()->AddNode( new StringNode( "'CONFIG_CONTROL_DESIGN'" ) );
// Build file data. The entities have been created and added in order such that no entity
// references a later entity. This is not required, but has been done to give a logical
// flow to the source and the resulting STEP file.
// Stand-in date and time.
SdaiDate_and_time * date_time = DateTime( registry, instance_list );
// Global units and tolerance.
STEPcomplex * context = Geometric_Context( registry, instance_list, MM, DEG, "0.0001" );
// Primary coordinate system.
SdaiAxis2_placement_3d * orig_transform = DefaultAxis( registry, instance_list );
// Basic context through product and shape representation
SdaiApplication_context * app_context = ( SdaiApplication_context * ) registry->ObjCreate( "APPLICATION_CONTEXT" );
instance_list->Append( ( SDAI_Application_instance * ) app_context, completeSE );
app_context->application_( "'configuration controlled 3d designs of mechanical parts and assemblies'" );
SdaiMechanical_context * mech_context = ( SdaiMechanical_context * ) registry->ObjCreate( "MECHANICAL_CONTEXT" );
instance_list->Append( ( SDAI_Application_instance * ) mech_context, completeSE );
mech_context->name_( "''" );
mech_context->discipline_type_( "'mechanical'" );
mech_context->frame_of_reference_( app_context );
SdaiApplication_protocol_definition * app_protocol = ( SdaiApplication_protocol_definition * ) registry->ObjCreate( "APPLICATION_PROTOCOL_DEFINITION" );
instance_list->Append( ( SDAI_Application_instance * ) app_protocol, completeSE );
app_protocol->status_( "'international standard'" );
app_protocol->application_protocol_year_( 1994 );
app_protocol->application_interpreted_model_schema_name_( "'config_control_design'" );
app_protocol->application_( app_context );
SdaiDesign_context * design_context = ( SdaiDesign_context * ) registry->ObjCreate( "DESIGN_CONTEXT" );
instance_list->Append( ( SDAI_Application_instance * ) design_context, completeSE );
design_context->name_( "''" );
design_context->life_cycle_stage_( "'design'" );
design_context->frame_of_reference_( app_context );
SdaiProduct * prod = ( SdaiProduct * ) registry->ObjCreate( "PRODUCT" );
instance_list->Append( ( SDAI_Application_instance * ) prod, completeSE );
prod->id_( "''" );
prod->name_( "'prodname'" );
prod->description_( "''" );
prod->frame_of_reference_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) mech_context ) );
SdaiProduct_related_product_category * prodcat = ( SdaiProduct_related_product_category * ) registry->ObjCreate( "PRODUCT_RELATED_PRODUCT_CATEGORY" );
instance_list->Append( ( SDAI_Application_instance * ) prodcat, completeSE );
prodcat->name_( "'assembly'" );
prodcat->description_( "''" );
prodcat->products_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod ) );
SdaiProduct_definition_formation_with_specified_source * prod_def_form = ( SdaiProduct_definition_formation_with_specified_source * ) registry->ObjCreate( "PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE" );
instance_list->Append( ( SDAI_Application_instance * ) prod_def_form, completeSE );
prod_def_form->id_( "''" );
prod_def_form->description_( "''" );
prod_def_form->of_product_( prod );
prod_def_form->make_or_buy_( Source__made );
SdaiProduct_definition * prod_def = ( SdaiProduct_definition * ) registry->ObjCreate( "PRODUCT_DEFINITION" );
instance_list->Append( ( SDAI_Application_instance * ) prod_def, completeSE );
prod_def->id_( "''" );
prod_def->description_( "''" );
prod_def->frame_of_reference_( design_context );
prod_def->formation_( prod_def_form );
SdaiProduct_definition_shape * pshape = ( SdaiProduct_definition_shape * ) registry->ObjCreate( "PRODUCT_DEFINITION_SHAPE" );
instance_list->Append( ( SDAI_Application_instance * ) pshape, completeSE );
pshape->name_( "''" );
pshape->description_( "'ProductShapeDescription'" );
pshape->definition_( new SdaiCharacterized_definition( new SdaiCharacterized_product_definition( prod_def ) ) );
SdaiShape_representation * shape_rep = ( SdaiShape_representation * ) registry->ObjCreate( "SHAPE_REPRESENTATION" );
instance_list->Append( ( SDAI_Application_instance * ) shape_rep, completeSE );
shape_rep->name_( "''" ); // Document?
shape_rep->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) orig_transform ) );
shape_rep->context_of_items_( ( SdaiRepresentation_context * ) context );
SdaiShape_definition_representation * shape_def_rep = ( SdaiShape_definition_representation * ) registry->ObjCreate( "SHAPE_DEFINITION_REPRESENTATION" );
instance_list->Append( ( SDAI_Application_instance * ) shape_def_rep, completeSE );
shape_def_rep->definition_( pshape );
shape_def_rep->used_representation_( shape_rep );
// Stand-in person and org.
SdaiPerson * person = ( SdaiPerson * ) registry->ObjCreate( "PERSON" );
instance_list->Append( ( SDAI_Application_instance * ) person, completeSE );
person->id_( "''" );
person->last_name_( "'Doe'" );
person->first_name_( "'John'" );
SdaiOrganization * org = ( SdaiOrganization * ) registry->ObjCreate( "ORGANIZATION" );
instance_list->Append( ( SDAI_Application_instance * ) org, completeSE );
org->id_( "''" );
org->name_( "''" );
org->description_( "''" );
SdaiPerson_and_organization * per_org = ( SdaiPerson_and_organization * ) registry->ObjCreate( "PERSON_AND_ORGANIZATION" );
instance_list->Append( ( SDAI_Application_instance * ) per_org, completeSE );
per_org->the_person_( person );
per_org->the_organization_( org );
// Required roles.
SdaiPerson_and_organization_role * creator_role = ( SdaiPerson_and_organization_role * ) registry->ObjCreate( "PERSON_AND_ORGANIZATION_ROLE" );
instance_list->Append( ( SDAI_Application_instance * ) creator_role, completeSE );
creator_role->name_( "'creator'" );
SdaiPerson_and_organization_role * owner_role = ( SdaiPerson_and_organization_role * ) registry->ObjCreate( "PERSON_AND_ORGANIZATION_ROLE" );
instance_list->Append( ( SDAI_Application_instance * ) owner_role, completeSE );
owner_role->name_( "'design_owner'" );
SdaiPerson_and_organization_role * supplier_role = ( SdaiPerson_and_organization_role * ) registry->ObjCreate( "PERSON_AND_ORGANIZATION_ROLE" );
instance_list->Append( ( SDAI_Application_instance * ) supplier_role, completeSE );
supplier_role->name_( "'design_supplier'" );
// Basic approval.
SdaiApproval_status * approval_status = ( SdaiApproval_status * ) registry->ObjCreate( "APPROVAL_STATUS" );
instance_list->Append( ( SDAI_Application_instance * ) approval_status, completeSE );
approval_status->name_( "'approved'" );
SdaiApproval * approval = ( SdaiApproval * ) registry->ObjCreate( "APPROVAL" );
instance_list->Append( ( SDAI_Application_instance * ) approval, completeSE );
approval->status_( approval_status );
approval->level_( "''" );
SdaiApproval_date_time * app_date_time = ( SdaiApproval_date_time * ) registry->ObjCreate( "APPROVAL_DATE_TIME" );
instance_list->Append( ( SDAI_Application_instance * ) app_date_time, completeSE );
app_date_time->date_time_( new SdaiDate_time_select( date_time ) );
app_date_time->dated_approval_( approval );
SdaiApproval_role * app_role = ( SdaiApproval_role * ) registry->ObjCreate( "APPROVAL_ROLE" );
instance_list->Append( ( SDAI_Application_instance * ) app_role, completeSE );
app_role->role_( "'approver'" );
SdaiApproval_person_organization * app_per_org = ( SdaiApproval_person_organization * ) registry->ObjCreate( "APPROVAL_PERSON_ORGANIZATION" );
instance_list->Append( ( SDAI_Application_instance * ) app_per_org, completeSE );
app_per_org->person_organization_( new SdaiPerson_organization_select( per_org ) );
app_per_org->authorized_approval_( approval );
app_per_org->role_( app_role );
// Basic Classification.
SdaiSecurity_classification * clas = Classification( registry, instance_list, per_org, date_time, prod_def_form );
// Basic CC approval.
SdaiCc_design_approval * desapproval = ( SdaiCc_design_approval * ) registry->ObjCreate( "CC_DESIGN_APPROVAL" );
instance_list->Append( ( SDAI_Application_instance * ) desapproval, completeSE );
desapproval->assigned_approval_( approval );
desapproval->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def ) );
desapproval->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def_form ) );
desapproval->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) clas ) );
SdaiCc_design_person_and_organization_assignment * creatorpersonorg = ( SdaiCc_design_person_and_organization_assignment * ) registry->ObjCreate( "CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT" );
instance_list->Append( ( SDAI_Application_instance * ) creatorpersonorg, completeSE );
creatorpersonorg->assigned_person_and_organization_( per_org );
creatorpersonorg->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def ) );
creatorpersonorg->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def_form ) );
creatorpersonorg->role_( creator_role );
SdaiCc_design_person_and_organization_assignment * supplierpersonorg = ( SdaiCc_design_person_and_organization_assignment * ) registry->ObjCreate( "CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT" );
instance_list->Append( ( SDAI_Application_instance * ) supplierpersonorg, completeSE );
supplierpersonorg->assigned_person_and_organization_( per_org );
supplierpersonorg->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def_form ) );
supplierpersonorg->role_( supplier_role );
SdaiDate_time_role * datetimerole = ( SdaiDate_time_role * ) registry->ObjCreate( "DATE_TIME_ROLE" );
instance_list->Append( ( SDAI_Application_instance * ) datetimerole, completeSE );
datetimerole->name_( "'creation_date'" );
SdaiCc_design_date_and_time_assignment * assign = ( SdaiCc_design_date_and_time_assignment * ) registry->ObjCreate( "CC_DESIGN_DATE_AND_TIME_ASSIGNMENT" );
instance_list->Append( ( SDAI_Application_instance * ) assign, completeSE );
assign->assigned_date_and_time_( date_time );
assign->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod_def ) );
assign->role_( datetimerole );
SdaiCc_design_person_and_organization_assignment * ownerpersonorg = ( SdaiCc_design_person_and_organization_assignment * ) registry->ObjCreate( "CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT" );
instance_list->Append( ( SDAI_Application_instance * ) ownerpersonorg, completeSE );
ownerpersonorg->assigned_person_and_organization_( per_org );
ownerpersonorg->items_()->AddNode( new EntityNode( ( SDAI_Application_instance * ) prod ) );
ownerpersonorg->role_( owner_role );
sfile->WriteExchangeFile( "outfile.stp" );
if( sfile->Error().severity() < SEVERITY_USERMSG ) {
sfile->Error().PrintContents( cout );
}
header_instances->DeleteInstances();
instance_list->DeleteInstances();
delete registry;
delete instance_list;
delete sfile;
printf( "Done!\n" );
}

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