From ad8626c6cbde97d3ec00b427fa9a665065a38ef7 Mon Sep 17 00:00:00 2001 From: Maciek Grochowicz Date: Sat, 26 Nov 2016 10:21:28 +0100 Subject: [PATCH] Add .step files handler, create base NURBS class, change tests (#101) * Add .step files handler, create base NURBS class, change tests (#101) * Fix documentation, move extensions list from class to self * Fix tests --- pygem/__init__.py | 15 +- pygem/filehandler.py | 28 +- pygem/gui.py | 18 +- pygem/igeshandler.py | 302 +--- pygem/nurbshandler.py | 334 +++++ pygem/openfhandler.py | 6 +- pygem/stephandler.py | 72 + pygem/stlhandler.py | 7 +- pygem/unvhandler.py | 8 +- pygem/vtkhandler.py | 6 +- tests/test_datasets/test_pipe.step | 679 +++++++++ tests/test_datasets/test_pipe.stp | 679 +++++++++ tests/test_datasets/test_pipe_out_true.step | 1408 +++++++++++++++++++ tests/test_datasets/test_pipe_out_true.stp | 1408 +++++++++++++++++++ tests/test_filehandler.py | 13 +- tests/test_igeshandler.py | 115 +- tests/test_nurbshandler.py | 70 + tests/test_openfhandler.py | 16 +- tests/test_package.py | 8 + tests/test_stephandler.py | 235 ++++ tests/test_stlhandler.py | 28 +- tests/test_unvhandler.py | 18 +- tests/test_vtkhandler.py | 2 +- 23 files changed, 5077 insertions(+), 398 deletions(-) create mode 100644 pygem/nurbshandler.py create mode 100644 pygem/stephandler.py create mode 100644 tests/test_datasets/test_pipe.step create mode 100644 tests/test_datasets/test_pipe.stp create mode 100644 tests/test_datasets/test_pipe_out_true.step create mode 100644 tests/test_datasets/test_pipe_out_true.stp create mode 100644 tests/test_nurbshandler.py create mode 100644 tests/test_stephandler.py diff --git a/pygem/__init__.py b/pygem/__init__.py index 0fd1e88..6b54eab 100644 --- a/pygem/__init__.py +++ b/pygem/__init__.py @@ -1,17 +1,20 @@ __all__ = [ 'affine', 'filehandler', 'freeform', 'radial', 'openfhandler', 'params', - 'stlhandler', 'unvhandler', 'vtkhandler', 'igeshandler', 'utils', 'gui' + 'stlhandler', 'unvhandler', 'vtkhandler', 'nurbshandler', 'stephandler', + 'igeshandler', 'utils', 'gui' ] from . import affine -from . import freeform -from . import radial from . import filehandler +from . import freeform +from . import gui +from . import igeshandler +from . import nurbshandler from . import openfhandler from . import params +from . import radial +from . import stephandler from . import stlhandler from . import unvhandler -from . import vtkhandler -from . import igeshandler from . import utils -from . import gui +from . import vtkhandler diff --git a/pygem/filehandler.py b/pygem/filehandler.py index 80d9fb1..79f0266 100644 --- a/pygem/filehandler.py +++ b/pygem/filehandler.py @@ -10,14 +10,14 @@ class FileHandler(object): :cvar string infile: name of the input file to be processed. :cvar string outfile: name of the output file where to write in. - :cvar string extension: extension of the input/output files. It is specific for each + :cvar list extensions: extensions of the input/output files. It is specific for each subclass. """ def __init__(self): self.infile = None self.outfile = None - self.extension = None + self.extensions = [] def parse(self, *args): """ @@ -25,7 +25,8 @@ def parse(self, *args): Not implemented, it has to be implemented in subclasses. """ - raise NotImplementedError("Subclass must implement abstract method " \ + raise NotImplementedError( + "Subclass must implement abstract method " \ + self.__class__.__name__ + ".parse") def write(self, *args): @@ -34,21 +35,22 @@ def write(self, *args): Not implemented, it has to be implemented in subclasses. """ - raise NotImplementedError("Subclass must implement abstract method " \ - + self.__class__.__name__ + ".write") + raise NotImplementedError( + "Subclass must implement abstract method " \ + + self.__class__.__name__ + ".write") def _check_extension(self, filename): """ - This private method checks if the given `filename` has the proper `extension` set + This private class method checks if the given `filename` has the proper `extension` set in the child class. If not it raises a ValueError. :param string filename: file to check. """ __, file_ext = os.path.splitext(filename) - if not file_ext in self.extension: + if file_ext not in self.extensions: raise ValueError( 'The input file does not have the proper extension. \ - It is {0!s}, instead of {1!s}.'.format(file_ext, self.extension) + It is {0!s}, instead of {1!s}.'.format(file_ext, self.extensions) ) @staticmethod @@ -63,16 +65,14 @@ def _check_filename_type(filename): 'The given filename ({0!s}) must be a string'.format(filename) ) - @staticmethod - def _check_infile_instantiation(infile): + def _check_infile_instantiation(self): """ - This private static method checks if the input file `infile` is instantiated. If not it means - that nobody called the parse method, i.e. `self.infile` is None. If the check fails + This private method checks if `self.infile` is instantiated. If not it means + that nobody called the parse method and `self.infile` is None. If the check fails it raises a RuntimeError. - :param string infile: file to check. """ - if not infile: + if not self.infile: raise RuntimeError( "You can not write a file without having parsed one." ) diff --git a/pygem/gui.py b/pygem/gui.py index 57fedd7..fdeec79 100644 --- a/pygem/gui.py +++ b/pygem/gui.py @@ -73,7 +73,7 @@ def _chose_geometry(self): """ self.filename_geometry = askopenfilename(filetypes=[("IGES File", ('*.iges', '*.igs')), \ ("OpenFOAM File", '*'), ('STL File', '*.stl'), ('UNV File', '*.unv'), \ - ('VTK File', '*.vtk'), ('All', '*')]) + ('VTK File', '*.vtk'), ('STEP File', ('*.step, *.stp')) ('All', '*')]) self.print_geometry_path.set(self.filename_geometry) self.label_geo.configure(fg='green') @@ -97,12 +97,16 @@ def _run_simulation(self): params.read_parameters(filename=self.filename_parameters) file_extension_in = os.path.splitext(self.filename_geometry)[-1] - ext_handlers = {'.stl': pg.stlhandler.StlHandler(), \ - '.iges': pg.igeshandler.IgesHandler(), \ - '.igs': pg.igeshandler.IgesHandler(), \ - '.unv': pg.unvhandler.UnvHandler(), \ - '': pg.openfhandler.OpenFoamHandler(), \ - '.vtk': pg.vtkhandler.VtkHandler()} + ext_handlers = { + '.stl': pg.stlhandler.StlHandler(), + '.iges': pg.igeshandler.IgesHandler(), + '.igs': pg.igeshandler.IgesHandler(), + '.unv': pg.unvhandler.UnvHandler(), + '': pg.openfhandler.OpenFoamHandler(), + '.vtk': pg.vtkhandler.VtkHandler(), + '.stp': pg.stephandler.StepHandler(), + '.step': pg.stephandler.StepHandler(), + } if file_extension_in in ext_handlers: geo_handler = ext_handlers[file_extension_in] diff --git a/pygem/igeshandler.py b/pygem/igeshandler.py index 64870de..2cfc3b2 100644 --- a/pygem/igeshandler.py +++ b/pygem/igeshandler.py @@ -1,42 +1,25 @@ """ Derived module from filehandler.py to handle iges and igs files. """ -import os -import numpy as np -from mpl_toolkits import mplot3d -from matplotlib import pyplot + from OCC.IGESControl import (IGESControl_Reader, IGESControl_Writer) -from OCC.BRep import (BRep_Tool, BRep_Builder) -from OCC.BRepBuilderAPI import ( - BRepBuilderAPI_NurbsConvert, BRepBuilderAPI_MakeWire -) -from OCC.BRepBuilderAPI import ( - BRepBuilderAPI_MakeEdge, BRepBuilderAPI_MakeFace -) -from OCC.GeomConvert import geomconvert_SurfaceToBSplineSurface -import OCC.TopoDS -from OCC.TopAbs import (TopAbs_FACE, TopAbs_EDGE) -from OCC.TopExp import TopExp_Explorer -from OCC.gp import (gp_Pnt, gp_XYZ) -from OCC.Display.SimpleGui import init_display -from OCC.ShapeFix import ShapeFix_ShapeTolerance -from OCC.StlAPI import StlAPI_Writer -from stl import mesh -import pygem.filehandler as fh + +from pygem.nurbshandler import NurbsHandler -class IgesHandler(fh.FileHandler): +class IgesHandler(NurbsHandler): """ Iges file handler class :cvar string infile: name of the input file to be processed. :cvar string outfile: name of the output file where to write in. - :cvar list extension: list of extensions of the input/output files. + :cvar list extensions: list of extensions of the input/output files. It is equal to ['.iges', '.igs']. :cvar list control_point_position: index of the first NURBS control point (or pole) of each face of the iges file. :cvar float tolerance: tolerance for the construction of the faces and wires in the write function. Default value is 1e-6. + :cvar TopoDS_Shape shape: shape meant for modification. .. warning:: @@ -48,279 +31,36 @@ class IgesHandler(fh.FileHandler): def __init__(self): super(IgesHandler, self).__init__() - self.extension = ['.iges', '.igs'] - self._control_point_position = None - self.tolerance = 1e-6 + self.extensions = ['.iges', '.igs'] - def parse(self, filename): + def load_shape_from_file(self, filename): """ - Method to parse the file `filename`. It returns a matrix with all the coordinates. + This class method loads a shape from the file `filename`. :param string filename: name of the input file. + It should have proper extension (.iges or .igs) - :return: mesh_points: it is a `n_points`-by-3 matrix containing the coordinates of - the points of the mesh - :rtype: numpy.ndarray - + :return: shape: loaded shape + :rtype: TopoDS_Shape """ self._check_filename_type(filename) self._check_extension(filename) - - self.infile = filename - - # read in the IGES file reader = IGESControl_Reader() - reader.ReadFile(self.infile) + reader.ReadFile(filename) reader.TransferRoots() shape = reader.Shape() + return shape - # cycle on the faces to get the control points - # init some quantities - n_faces = 0 - control_point_position = [0] - faces_explorer = TopExp_Explorer(shape, TopAbs_FACE) - mesh_points = np.zeros(shape=(0, 3)) - - while faces_explorer.More(): - # performing some conversions to get the right format (BSplineSurface) - iges_face = OCC.TopoDS.topods_Face(faces_explorer.Current()) - iges_nurbs_converter = BRepBuilderAPI_NurbsConvert(iges_face) - iges_nurbs_converter.Perform(iges_face) - nurbs_face = iges_nurbs_converter.Shape() - brep_face = BRep_Tool.Surface(OCC.TopoDS.topods_Face(nurbs_face)) - bspline_face = geomconvert_SurfaceToBSplineSurface(brep_face) - - # openCascade object - occ_face = bspline_face.GetObject() - - # extract the Control Points of each face - n_poles_u = occ_face.NbUPoles() - n_poles_v = occ_face.NbVPoles() - control_polygon_coordinates = np.zeros( - shape=(n_poles_u * n_poles_v, 3) - ) - - # cycle over the poles to get their coordinates - i = 0 - for pole_u_direction in xrange(n_poles_u): - for pole_v_direction in xrange(n_poles_v): - control_point_coordinates = occ_face.Pole( - pole_u_direction + 1, pole_v_direction + 1 - ) - control_polygon_coordinates[i, :] = [control_point_coordinates.X(), \ - control_point_coordinates.Y(), control_point_coordinates.Z()] - i += 1 - - # pushing the control points coordinates to the mesh_points array (used for FFD) - mesh_points = np.append( - mesh_points, control_polygon_coordinates, axis=0 - ) - control_point_position.append( - control_point_position[-1] + n_poles_u * n_poles_v - ) - - n_faces += 1 - faces_explorer.Next() - - self._control_point_position = control_point_position - - return mesh_points - - def write(self, mesh_points, filename, tolerance=None): + def write_shape_to_file(self, shape, filename): """ - Writes a iges file, called filename, copying all the structures from self.filename but - the coordinates. mesh_points is a matrix that contains the new coordinates to - write in the iges file. + This class method saves the `shape` to the file `filename`. - :param numpy.ndarray mesh_points: it is a `n_points`-by-3 matrix containing - the coordinates of the points of the mesh - :param string filename: name of the output file. - :param float tolerance: tolerance for the construction of the faces and wires - in the write function. If not given it uses `self.tolerance`. + :param: TopoDS_Shape shape: loaded shape + :param string filename: name of the input file. + It should have proper extension (.iges or .igs) """ self._check_filename_type(filename) self._check_extension(filename) - self._check_infile_instantiation(self.infile) - - self.outfile = filename - - if tolerance is not None: - self.tolerance = tolerance - - # init the ouput file writer writer = IGESControl_Writer() - - # read in the IGES file - reader = IGESControl_Reader() - reader.ReadFile(self.infile) - reader.TransferRoots() - shape_read = reader.Shape() - - # cycle on the faces to update the control points position - # init some quantities - faces_explorer = TopExp_Explorer(shape_read, TopAbs_FACE) - n_faces = 0 - control_point_position = self._control_point_position - - compound_builder = BRep_Builder() - compound = OCC.TopoDS.TopoDS_Compound() - compound_builder.MakeCompound(compound) - - while faces_explorer.More(): - # similar to the parser method - iges_face = OCC.TopoDS.topods_Face(faces_explorer.Current()) - iges_nurbs_converter = BRepBuilderAPI_NurbsConvert(iges_face) - iges_nurbs_converter.Perform(iges_face) - nurbs_face = iges_nurbs_converter.Shape() - face_aux = OCC.TopoDS.topods_Face(nurbs_face) - brep_face = BRep_Tool.Surface(OCC.TopoDS.topods_Face(nurbs_face)) - bspline_face = geomconvert_SurfaceToBSplineSurface(brep_face) - occ_face = bspline_face.GetObject() - - n_poles_u = occ_face.NbUPoles() - n_poles_v = occ_face.NbVPoles() - - i = 0 - for pole_u_direction in xrange(n_poles_u): - for pole_v_direction in xrange(n_poles_v): - control_point_coordinates = mesh_points[ - i + control_point_position[n_faces], : - ] - point_xyz = gp_XYZ(control_point_coordinates[0], control_point_coordinates[1], \ - control_point_coordinates[2]) - gp_point = gp_Pnt(point_xyz) - occ_face.SetPole( - pole_u_direction + 1, pole_v_direction + 1, gp_point - ) - i += 1 - - # construct the deformed wire for the trimmed surfaces - wire_maker = BRepBuilderAPI_MakeWire() - tol = ShapeFix_ShapeTolerance() - brep = BRepBuilderAPI_MakeFace( - occ_face.GetHandle(), self.tolerance - ).Face() - brep_face = BRep_Tool.Surface(brep) - - # cycle on the edges - edge_explorer = TopExp_Explorer(nurbs_face, TopAbs_EDGE) - while edge_explorer.More(): - edge = OCC.TopoDS.topods_Edge(edge_explorer.Current()) - # edge in the (u,v) coordinates - edge_uv_coordinates = OCC.BRep.BRep_Tool.CurveOnSurface( - edge, face_aux - ) - # evaluating the new edge: same (u,v) coordinates, but different (x,y,x) ones - edge_phis_coordinates_aux = BRepBuilderAPI_MakeEdge( - edge_uv_coordinates[0], brep_face - ) - edge_phis_coordinates = edge_phis_coordinates_aux.Edge() - tol.SetTolerance(edge_phis_coordinates, self.tolerance) - wire_maker.Add(edge_phis_coordinates) - edge_explorer.Next() - - # grouping the edges in a wire - wire = wire_maker.Wire() - - # trimming the surfaces - brep_surf = BRepBuilderAPI_MakeFace(occ_face.GetHandle(), - wire).Shape() - compound_builder.Add(compound, brep_surf) - n_faces += 1 - faces_explorer.Next() - - writer.AddShape(compound) - - writer.Write(self.outfile) - - def plot(self, plot_file=None, save_fig=False): - """ - Method to plot an iges file. If `plot_file` is not given it plots `self.infile`. - - :param string plot_file: the iges filename you want to plot. - :param bool save_fig: a flag to save the figure in png or not. If True the - plot is not shown. - - :return: figure: matlplotlib structure for the figure of the chosen geometry - :rtype: matplotlib.pyplot.figure - """ - if plot_file is None: - plot_file = self.infile - else: - self._check_filename_type(plot_file) - - ## read in the IGES file - reader = IGESControl_Reader() - reader.ReadFile(plot_file) - reader.TransferRoots() - shape = reader.Shape() - - stl_writer = StlAPI_Writer() - # Do not switch SetASCIIMode() from False to True. - stl_writer.SetASCIIMode(False) - stl_writer.Write(shape, 'aux_figure.stl') - - # Create a new plot - figure = pyplot.figure() - axes = mplot3d.Axes3D(figure) - - # Load the STL files and add the vectors to the plot - stl_mesh = mesh.Mesh.from_file('aux_figure.stl') - os.remove('aux_figure.stl') - axes.add_collection3d( - mplot3d.art3d.Poly3DCollection(stl_mesh.vectors / 1000) - ) - - ## Get the limits of the axis and center the geometry - max_dim = np.array([np.max(stl_mesh.vectors[:,:,0])/1000, \ - np.max(stl_mesh.vectors[:,:,1])/1000, \ - np.max(stl_mesh.vectors[:,:,2])/1000]) - min_dim = np.array([np.min(stl_mesh.vectors[:,:,0])/1000, \ - np.min(stl_mesh.vectors[:,:,1])/1000, \ - np.min(stl_mesh.vectors[:,:,2])/1000]) - - max_lenght = np.max(max_dim - min_dim) - axes.set_xlim( - -.6 * max_lenght + (max_dim[0] + min_dim[0]) / 2, - .6 * max_lenght + (max_dim[0] + min_dim[0]) / 2 - ) - axes.set_ylim( - -.6 * max_lenght + (max_dim[1] + min_dim[1]) / 2, - .6 * max_lenght + (max_dim[1] + min_dim[1]) / 2 - ) - axes.set_zlim( - -.6 * max_lenght + (max_dim[2] + min_dim[2]) / 2, - .6 * max_lenght + (max_dim[2] + min_dim[2]) / 2 - ) - - # Show the plot to the screen - if not save_fig: - pyplot.show() - else: - figure.savefig(plot_file.split('.')[0] + '.png') - - return figure - - def show(self, show_file=None): - """ - Method to show an iges file. If `show_file` is not given it plots `self.infile`. - - :param string show_file: the iges filename you want to show. - """ - if show_file is None: - show_file = self.infile - else: - self._check_filename_type(show_file) - - # read in the IGES file - reader = IGESControl_Reader() - reader.ReadFile(show_file) - reader.TransferRoots() - shape = reader.Shape() - - display, start_display, __, __ = init_display() - display.FitAll() - display.DisplayShape(shape, update=True) - - # Show the plot to the screen - start_display() + writer.AddShape(shape) + writer.Write(filename) diff --git a/pygem/nurbshandler.py b/pygem/nurbshandler.py new file mode 100644 index 0000000..1325f7a --- /dev/null +++ b/pygem/nurbshandler.py @@ -0,0 +1,334 @@ +""" +Derived module from filehandler.py to handle iges/igs and step/stp files. +Implements all methods for parsing an object and applying FFD. +File handling operations (reading/writing) must be implemented in derived classes. +""" +import os + +import OCC.TopoDS +import numpy as np +from OCC.BRep import (BRep_Tool, BRep_Builder) +from OCC.BRepBuilderAPI import ( + BRepBuilderAPI_MakeEdge, BRepBuilderAPI_MakeFace +) +from OCC.BRepBuilderAPI import ( + BRepBuilderAPI_NurbsConvert, BRepBuilderAPI_MakeWire +) +from OCC.Display.SimpleGui import init_display +from OCC.GeomConvert import geomconvert_SurfaceToBSplineSurface +from OCC.ShapeFix import ShapeFix_ShapeTolerance +from OCC.StlAPI import StlAPI_Writer +from OCC.TopAbs import (TopAbs_FACE, TopAbs_EDGE) +from OCC.TopExp import TopExp_Explorer +from OCC.gp import (gp_Pnt, gp_XYZ) +from matplotlib import pyplot +from mpl_toolkits import mplot3d +from stl import mesh + +import pygem.filehandler as fh + + +class NurbsHandler(fh.FileHandler): + """ + Nurbs file handler base class + + :cvar string infile: name of the input file to be processed. + :cvar string outfile: name of the output file where to write in. + :cvar list control_point_position: index of the first NURBS control point (or pole) + of each face of the files. + :cvar TopoDS_Shape shape: shape meant for modification. + :cvar float tolerance: tolerance for the construction of the faces and wires + in the write function. Default value is 1e-6. + + .. warning:: + + - For non trivial geometries it could be necessary to increase the tolerance. + Linking edges into a single wire and then trimming the surface with the wire + can be hard for the software, especially when the starting CAD has not been + made for analysis but for design purposes. + """ + + def __init__(self): + super(NurbsHandler, self).__init__() + self._control_point_position = None + self.tolerance = 1e-6 + self.shape = None + + def _check_infile_instantiation(self): + """ + This private method checks if `self.infile` and `self.shape' are instantiated. If not it means + that nobody called the parse method and at least one of them is None` If the check fails + it raises a RuntimeError. + + """ + if not self.shape or not self.infile: + raise RuntimeError( + "You can not write a file without having parsed one." + ) + + def load_shape_from_file(self, filename): + """ + Abstract method to load a specific file as a shape. + + Not implemented, it has to be implemented in subclasses. + """ + raise NotImplementedError( + "Subclass must implement abstract method " +\ + self.__class__.__name__ + ".load_shape_from_file" + ) + + def parse(self, filename): + """ + Method to parse the file `filename`. It returns a matrix with all the coordinates. + + :param string filename: name of the input file. + + :return: mesh_points: it is a `n_points`-by-3 matrix containing the coordinates of + the points of the mesh + :rtype: numpy.ndarray + + """ + self.infile = filename + + self.shape = self.load_shape_from_file(filename) + + # cycle on the faces to get the control points + # init some quantities + n_faces = 0 + control_point_position = [0] + faces_explorer = TopExp_Explorer(self.shape, TopAbs_FACE) + mesh_points = np.zeros(shape=(0, 3)) + + while faces_explorer.More(): + # performing some conversions to get the right format (BSplineSurface) + face = OCC.TopoDS.topods_Face(faces_explorer.Current()) + nurbs_converter = BRepBuilderAPI_NurbsConvert(face) + nurbs_converter.Perform(face) + nurbs_face = nurbs_converter.Shape() + brep_face = BRep_Tool.Surface(OCC.TopoDS.topods_Face(nurbs_face)) + bspline_face = geomconvert_SurfaceToBSplineSurface(brep_face) + + # openCascade object + occ_face = bspline_face.GetObject() + + # extract the Control Points of each face + n_poles_u = occ_face.NbUPoles() + n_poles_v = occ_face.NbVPoles() + control_polygon_coordinates = np.zeros( + shape=(n_poles_u * n_poles_v, 3) + ) + + # cycle over the poles to get their coordinates + i = 0 + for pole_u_direction in xrange(n_poles_u): + for pole_v_direction in xrange(n_poles_v): + control_point_coordinates = occ_face.Pole( + pole_u_direction + 1, pole_v_direction + 1 + ) + control_polygon_coordinates[i, :] = [ + control_point_coordinates.X(), + control_point_coordinates.Y(), + control_point_coordinates.Z() + ] + i += 1 + # pushing the control points coordinates to the mesh_points array (used for FFD) + mesh_points = np.append( + mesh_points, control_polygon_coordinates, axis=0 + ) + control_point_position.append( + control_point_position[-1] + n_poles_u * n_poles_v + ) + + n_faces += 1 + faces_explorer.Next() + self._control_point_position = control_point_position + return mesh_points + + def write(self, mesh_points, filename, tolerance=None): + """ + Writes a output file, called filename, copying all the structures from self.filename but + the coordinates. mesh_points is a matrix that contains the new coordinates to + write in the output file. + + :param numpy.ndarray mesh_points: it is a `n_points`-by-3 matrix containing + the coordinates of the points of the mesh + :param string filename: name of the output file. + :param float tolerance: tolerance for the construction of the faces and wires + in the write function. If not given it uses `self.tolerance`. + """ + self._check_filename_type(filename) + self._check_extension(filename) + self._check_infile_instantiation() + + self.outfile = filename + + if tolerance is not None: + self.tolerance = tolerance + + # cycle on the faces to update the control points position + # init some quantities + faces_explorer = TopExp_Explorer(self.shape, TopAbs_FACE) + n_faces = 0 + control_point_position = self._control_point_position + + compound_builder = BRep_Builder() + compound = OCC.TopoDS.TopoDS_Compound() + compound_builder.MakeCompound(compound) + + while faces_explorer.More(): + # similar to the parser method + face = OCC.TopoDS.topods_Face(faces_explorer.Current()) + nurbs_converter = BRepBuilderAPI_NurbsConvert(face) + nurbs_converter.Perform(face) + nurbs_face = nurbs_converter.Shape() + face_aux = OCC.TopoDS.topods_Face(nurbs_face) + brep_face = BRep_Tool.Surface(OCC.TopoDS.topods_Face(nurbs_face)) + bspline_face = geomconvert_SurfaceToBSplineSurface(brep_face) + occ_face = bspline_face.GetObject() + + n_poles_u = occ_face.NbUPoles() + n_poles_v = occ_face.NbVPoles() + + i = 0 + for pole_u_direction in xrange(n_poles_u): + for pole_v_direction in xrange(n_poles_v): + control_point_coordinates = mesh_points[ + i + control_point_position[n_faces], : + ] + point_xyz = gp_XYZ(*control_point_coordinates) + + gp_point = gp_Pnt(point_xyz) + occ_face.SetPole( + pole_u_direction + 1, pole_v_direction + 1, gp_point + ) + i += 1 + + # construct the deformed wire for the trimmed surfaces + wire_maker = BRepBuilderAPI_MakeWire() + tol = ShapeFix_ShapeTolerance() + brep = BRepBuilderAPI_MakeFace( + occ_face.GetHandle(), self.tolerance + ).Face() + brep_face = BRep_Tool.Surface(brep) + + # cycle on the edges + edge_explorer = TopExp_Explorer(nurbs_face, TopAbs_EDGE) + while edge_explorer.More(): + edge = OCC.TopoDS.topods_Edge(edge_explorer.Current()) + # edge in the (u,v) coordinates + edge_uv_coordinates = BRep_Tool.CurveOnSurface(edge, face_aux) + # evaluating the new edge: same (u,v) coordinates, but different (x,y,x) ones + edge_phis_coordinates_aux = BRepBuilderAPI_MakeEdge( + edge_uv_coordinates[0], brep_face + ) + edge_phis_coordinates = edge_phis_coordinates_aux.Edge() + tol.SetTolerance(edge_phis_coordinates, self.tolerance) + wire_maker.Add(edge_phis_coordinates) + edge_explorer.Next() + + # grouping the edges in a wire + wire = wire_maker.Wire() + + # trimming the surfaces + brep_surf = BRepBuilderAPI_MakeFace( + occ_face.GetHandle(), wire).Shape() + compound_builder.Add(compound, brep_surf) + n_faces += 1 + faces_explorer.Next() + self.write_shape_to_file(compound, self.outfile) + + def write_shape_to_file(self, shape, filename): + """ + Abstract method to write the 'shape' to the `filename`. + + Not implemented, it has to be implemented in subclasses. + """ + raise NotImplementedError( + "Subclass must implement abstract method " +\ + self.__class__.__name__ + ".write_shape_to_file" + ) + + def plot(self, plot_file=None, save_fig=False): + """ + Method to plot a file. If `plot_file` is not given it plots `self.shape`. + + :param string plot_file: the filename you want to plot. + :param bool save_fig: a flag to save the figure in png or not. If True the + plot is not shown. + + :return: figure: matlplotlib structure for the figure of the chosen geometry + :rtype: matplotlib.pyplot.figure + """ + if plot_file is None: + shape = self.shape + plot_file = self.infile + else: + shape = self.load_shape_from_file(plot_file) + + stl_writer = StlAPI_Writer() + # Do not switch SetASCIIMode() from False to True. + stl_writer.SetASCIIMode(False) + stl_writer.Write(shape, 'aux_figure.stl') + + # Create a new plot + figure = pyplot.figure() + axes = mplot3d.Axes3D(figure) + + # Load the STL files and add the vectors to the plot + stl_mesh = mesh.Mesh.from_file('aux_figure.stl') + os.remove('aux_figure.stl') + axes.add_collection3d( + mplot3d.art3d.Poly3DCollection(stl_mesh.vectors / 1000) + ) + + # Get the limits of the axis and center the geometry + max_dim = np.array([ + np.max(stl_mesh.vectors[:, :, 0]) / 1000, + np.max(stl_mesh.vectors[:, :, 1]) / 1000, + np.max(stl_mesh.vectors[:, :, 2]) / 1000 + ]) + min_dim = np.array([ + np.min(stl_mesh.vectors[:, :, 0]) / 1000, + np.min(stl_mesh.vectors[:, :, 1]) / 1000, + np.min(stl_mesh.vectors[:, :, 2]) / 1000 + ]) + + max_lenght = np.max(max_dim - min_dim) + axes.set_xlim( + -.6 * max_lenght + (max_dim[0] + min_dim[0]) / 2, + .6 * max_lenght + (max_dim[0] + min_dim[0]) / 2 + ) + axes.set_ylim( + -.6 * max_lenght + (max_dim[1] + min_dim[1]) / 2, + .6 * max_lenght + (max_dim[1] + min_dim[1]) / 2 + ) + axes.set_zlim( + -.6 * max_lenght + (max_dim[2] + min_dim[2]) / 2, + .6 * max_lenght + (max_dim[2] + min_dim[2]) / 2 + ) + + # Show the plot to the screen + if not save_fig: + pyplot.show() + else: + figure.savefig(plot_file.split('.')[0] + '.png') + + return figure + + def show(self, show_file=None): + """ + Method to show a file. If `show_file` is not given it plots `self.shape`. + + :param string show_file: the filename you want to show. + """ + if show_file is None: + shape = self.shape + else: + shape = self.load_shape_from_file(show_file) + + display, start_display, __, __ = init_display() + display.FitAll() + display.DisplayShape(shape, update=True) + + # Show the plot to the screen + start_display() diff --git a/pygem/openfhandler.py b/pygem/openfhandler.py index 1b9645a..e47987f 100644 --- a/pygem/openfhandler.py +++ b/pygem/openfhandler.py @@ -11,13 +11,13 @@ class OpenFoamHandler(fh.FileHandler): :cvar string infile: name of the input file to be processed. :cvar string outfile: name of the output file where to write in. - :cvar string extension: extension of the input/output files. It is equal to '' since + :cvar list extensions: extensions of the input/output files. It is equal to [''] since openFOAM files do not have extension. """ def __init__(self): super(OpenFoamHandler, self).__init__() - self.extension = '' + self.extensions = [''] def parse(self, filename): """ @@ -70,7 +70,7 @@ def write(self, mesh_points, filename): """ self._check_filename_type(filename) self._check_extension(filename) - self._check_infile_instantiation(self.infile) + self._check_infile_instantiation() self.outfile = filename diff --git a/pygem/stephandler.py b/pygem/stephandler.py new file mode 100644 index 0000000..7b45096 --- /dev/null +++ b/pygem/stephandler.py @@ -0,0 +1,72 @@ +""" +Derived module from nurbshandler.py to handle step and stp files. +""" + +from OCC.Interface import Interface_Static_SetCVal +from OCC.STEPControl import STEPControl_Writer, STEPControl_Reader, STEPControl_AsIs + +from pygem.nurbshandler import NurbsHandler + + +class StepHandler(NurbsHandler): + """ + Step file handler class + + :cvar string infile: name of the input file to be processed. + :cvar string outfile: name of the output file where to write in. + :cvar list extensions: list of extensions of the input/output files. + It is equal to ['.step', '.stp']. + :cvar list control_point_position: index of the first NURBS control point (or pole) + of each face of the iges file. + :cvar float tolerance: tolerance for the construction of the faces and wires + in the write function. Default value is 1e-6. + :cvar TopoDS_Shape shape: shape meant for modification. + + .. warning:: + + - For non trivial geometries it could be necessary to increase the tolerance. + Linking edges into a single wire and then trimming the surface with the wire + can be hard for the software, especially when the starting CAD has not been + made for analysis but for design purposes. + """ + + def __init__(self): + super(StepHandler, self).__init__() + self._control_point_position = None + self.extensions = ['.step', '.stp'] + + def load_shape_from_file(self, filename): + """ + This method loads a shape from the file `filename`. + + :param string filename: name of the input file. + It should have proper extension (.step or .stp) + + :return: shape: loaded shape + :rtype: TopoDS_Shape + """ + self._check_filename_type(filename) + self._check_extension(filename) + reader = STEPControl_Reader() + reader.ReadFile(filename) + reader.TransferRoots() + shape = reader.Shape() + return shape + + def write_shape_to_file(self, shape, filename): + """ + This method saves the `shape` to the file `filename`. + + :param: TopoDS_Shape shape: loaded shape + :param string filename: name of the input file. + It should have proper extension (.step or .stp) + """ + self._check_filename_type(filename) + self._check_extension(filename) + step_writer = STEPControl_Writer() + # Changes write schema to STEP standard AP203 + # It is considered the most secure standard for STEP. + # *According to PythonOCC documentation (http://www.pythonocc.org/) + Interface_Static_SetCVal("write.step.schema", "AP203") + step_writer.Transfer(shape, STEPControl_AsIs) + step_writer.Write(filename) diff --git a/pygem/stlhandler.py b/pygem/stlhandler.py index 45e62d8..89c4f93 100644 --- a/pygem/stlhandler.py +++ b/pygem/stlhandler.py @@ -14,12 +14,13 @@ class StlHandler(fh.FileHandler): :cvar string infile: name of the input file to be processed. :cvar string outfile: name of the output file where to write in. - :cvar string extension: extension of the input/output files. It is equal to '.stl'. + :cvar list extensions: extensions of the input/output files. It is equal to ['.stl']. """ def __init__(self): super(StlHandler, self).__init__() - self.extension = '.stl' + self.extensions = ['.stl'] + def parse(self, filename): """ @@ -61,7 +62,7 @@ def write(self, mesh_points, filename, write_bin=False): """ self._check_filename_type(filename) self._check_extension(filename) - self._check_infile_instantiation(self.infile) + self._check_infile_instantiation() self.outfile = filename diff --git a/pygem/unvhandler.py b/pygem/unvhandler.py index 0f9af98..b7b6efe 100644 --- a/pygem/unvhandler.py +++ b/pygem/unvhandler.py @@ -11,12 +11,12 @@ class UnvHandler(fh.FileHandler): :cvar string infile: name of the input file to be processed. :cvar string outfile: name of the output file where to write in. - :cvar string extension: extension of the input/output files. It is equal to '.unv'. + :cvar list extensions: extensions of the input/output files. It is equal to ['.unv']. """ + def __init__(self): super(UnvHandler, self).__init__() - self.extension = '.unv' - + self.extensions = ['.unv'] def parse(self, filename): """ @@ -70,7 +70,7 @@ def write(self, mesh_points, filename): """ self._check_filename_type(filename) self._check_extension(filename) - self._check_infile_instantiation(self.infile) + self._check_infile_instantiation() self.outfile = filename diff --git a/pygem/vtkhandler.py b/pygem/vtkhandler.py index 0f9304c..bcfb9b3 100644 --- a/pygem/vtkhandler.py +++ b/pygem/vtkhandler.py @@ -14,12 +14,12 @@ class VtkHandler(fh.FileHandler): :cvar string infile: name of the input file to be processed. :cvar string outfile: name of the output file where to write in. - :cvar string extension: extension of the input/output files. It is equal to '.vtk'. + :cvar list extensions: extensions of the input/output files. It is equal to ['.vtk']. """ def __init__(self): super(VtkHandler, self).__init__() - self.extension = '.vtk' + self.extensions = ['.vtk'] def parse(self, filename): """ @@ -71,7 +71,7 @@ def write(self, mesh_points, filename): """ self._check_filename_type(filename) self._check_extension(filename) - self._check_infile_instantiation(self.infile) + self._check_infile_instantiation() self.outfile = filename diff --git a/tests/test_datasets/test_pipe.step b/tests/test_datasets/test_pipe.step new file mode 100644 index 0000000..a4c3033 --- /dev/null +++ b/tests/test_datasets/test_pipe.step @@ -0,0 +1,679 @@ +ISO-10303-21; +HEADER; +/* Generated by software containing ST-Developer + * from STEP Tools, Inc. (www.steptools.com) + */ +/* OPTION: using custom schema-name function */ + +FILE_DESCRIPTION( +/* description */ (''), +/* implementation_level */ '2;1'); + +FILE_NAME( +/* name */ 'TEST_P~2', +/* time_stamp */ '2016-11-03T10:42:47+01:00', +/* author */ (''), +/* organization */ (''), +/* preprocessor_version */ 'ST-DEVELOPER v15', +/* originating_system */ '', +/* authorisation */ ''); + +FILE_SCHEMA (('CONFIG_CONTROL_DESIGN')); +ENDSEC; + +DATA; +#10=SHAPE_REPRESENTATION_RELATIONSHIP('','',#278,#45); +#11=B_SPLINE_CURVE_WITH_KNOTS('',1,(#342,#343),.UNSPECIFIED.,.F.,.F.,(2, +2),(0.,1.),.UNSPECIFIED.); +#12=B_SPLINE_CURVE_WITH_KNOTS('',1,(#344,#345),.UNSPECIFIED.,.F.,.F.,(2, +2),(0.,1.),.UNSPECIFIED.); +#13=B_SPLINE_CURVE_WITH_KNOTS('',1,(#349,#350),.UNSPECIFIED.,.F.,.F.,(2, +2),(4.71238898,6.283185308),.UNSPECIFIED.); +#14=B_SPLINE_CURVE_WITH_KNOTS('',1,(#351,#352),.UNSPECIFIED.,.F.,.F.,(2, +2),(-1.,0.),.UNSPECIFIED.); +#15=B_SPLINE_CURVE_WITH_KNOTS('',1,(#353,#354),.UNSPECIFIED.,.F.,.F.,(2, +2),(-1.,0.),.UNSPECIFIED.); +#16=B_SPLINE_CURVE_WITH_KNOTS('',1,(#358,#359),.UNSPECIFIED.,.F.,.F.,(2, +2),(-6.283185308,-4.71238898),.UNSPECIFIED.); +#17=B_SPLINE_CURVE_WITH_KNOTS('',1,(#370,#371),.UNSPECIFIED.,.F.,.F.,(2, +2),(0.,1.),.UNSPECIFIED.); +#18=B_SPLINE_CURVE_WITH_KNOTS('',1,(#372,#373),.UNSPECIFIED.,.F.,.F.,(2, +2),(0.,1.),.UNSPECIFIED.); +#19=B_SPLINE_CURVE_WITH_KNOTS('',1,(#377,#378),.UNSPECIFIED.,.F.,.F.,(2, +2),(4.71238898,6.283185307),.UNSPECIFIED.); +#20=B_SPLINE_CURVE_WITH_KNOTS('',1,(#379,#380),.UNSPECIFIED.,.F.,.F.,(2, +2),(-1.,0.),.UNSPECIFIED.); +#21=B_SPLINE_CURVE_WITH_KNOTS('',1,(#381,#382),.UNSPECIFIED.,.F.,.F.,(2, +2),(-1.,0.),.UNSPECIFIED.); +#22=B_SPLINE_CURVE_WITH_KNOTS('',1,(#386,#387),.UNSPECIFIED.,.F.,.F.,(2, +2),(-6.283185307,-4.71238898),.UNSPECIFIED.); +#23=B_SPLINE_CURVE_WITH_KNOTS('',1,(#398,#399),.UNSPECIFIED.,.F.,.F.,(2, +2),(0.,1.),.UNSPECIFIED.); +#24=B_SPLINE_CURVE_WITH_KNOTS('',1,(#400,#401),.UNSPECIFIED.,.F.,.F.,(2, +2),(0.,1.),.UNSPECIFIED.); +#25=B_SPLINE_CURVE_WITH_KNOTS('',1,(#405,#406),.UNSPECIFIED.,.F.,.F.,(2, +2),(4.71238898,6.283185307),.UNSPECIFIED.); +#26=B_SPLINE_CURVE_WITH_KNOTS('',1,(#407,#408),.UNSPECIFIED.,.F.,.F.,(2, +2),(-1.,0.),.UNSPECIFIED.); +#27=B_SPLINE_CURVE_WITH_KNOTS('',1,(#409,#410),.UNSPECIFIED.,.F.,.F.,(2, +2),(-1.,0.),.UNSPECIFIED.); +#28=B_SPLINE_CURVE_WITH_KNOTS('',1,(#414,#415),.UNSPECIFIED.,.F.,.F.,(2, +2),(-6.283185307,-4.71238898),.UNSPECIFIED.); +#29=B_SPLINE_CURVE_WITH_KNOTS('',1,(#426,#427),.UNSPECIFIED.,.F.,.F.,(2, +2),(0.,1.),.UNSPECIFIED.); +#30=B_SPLINE_CURVE_WITH_KNOTS('',1,(#428,#429),.UNSPECIFIED.,.F.,.F.,(2, +2),(0.,1.),.UNSPECIFIED.); +#31=B_SPLINE_CURVE_WITH_KNOTS('',1,(#433,#434),.UNSPECIFIED.,.F.,.F.,(2, +2),(4.71238898,6.283185307),.UNSPECIFIED.); +#32=B_SPLINE_CURVE_WITH_KNOTS('',1,(#435,#436),.UNSPECIFIED.,.F.,.F.,(2, +2),(-1.,0.),.UNSPECIFIED.); +#33=B_SPLINE_CURVE_WITH_KNOTS('',1,(#437,#438),.UNSPECIFIED.,.F.,.F.,(2, +2),(-1.,0.),.UNSPECIFIED.); +#34=B_SPLINE_CURVE_WITH_KNOTS('',1,(#442,#443),.UNSPECIFIED.,.F.,.F.,(2, +2),(-6.283185307,-4.71238898),.UNSPECIFIED.); +#35=( +BOUNDED_SURFACE() +B_SPLINE_SURFACE(1,2,((#332,#333,#334),(#335,#336,#337)),.UNSPECIFIED., + .F.,.F.,.F.) +B_SPLINE_SURFACE_WITH_KNOTS((2,2),(3,3),(0.,1.),(4.71238898,6.283185308), + .UNSPECIFIED.) +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_SURFACE(((1.,0.707106780760479,1.),(1.,0.707106780760479, +1.))) +REPRESENTATION_ITEM('') +SURFACE() +); +#36=( +BOUNDED_SURFACE() +B_SPLINE_SURFACE(1,2,((#360,#361,#362),(#363,#364,#365)),.UNSPECIFIED., + .F.,.F.,.F.) +B_SPLINE_SURFACE_WITH_KNOTS((2,2),(3,3),(0.,1.),(4.71238898,6.283185307), + .UNSPECIFIED.) +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_SURFACE(((1.,0.707106781114032,1.),(1.,0.707106781114032, +1.))) +REPRESENTATION_ITEM('') +SURFACE() +); +#37=( +BOUNDED_SURFACE() +B_SPLINE_SURFACE(1,2,((#388,#389,#390),(#391,#392,#393)),.UNSPECIFIED., + .F.,.F.,.F.) +B_SPLINE_SURFACE_WITH_KNOTS((2,2),(3,3),(0.,1.),(4.71238898,6.283185307), + .UNSPECIFIED.) +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_SURFACE(((1.,0.707106781114032,1.),(1.,0.707106781114032, +1.))) +REPRESENTATION_ITEM('') +SURFACE() +); +#38=( +BOUNDED_SURFACE() +B_SPLINE_SURFACE(1,2,((#416,#417,#418),(#419,#420,#421)),.UNSPECIFIED., + .F.,.F.,.F.) +B_SPLINE_SURFACE_WITH_KNOTS((2,2),(3,3),(0.,1.),(4.71238898,6.283185307), + .UNSPECIFIED.) +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_SURFACE(((1.,0.707106781114032,1.),(1.,0.707106781114032, +1.))) +REPRESENTATION_ITEM('') +SURFACE() +); +#39=SHELL_BASED_SURFACE_MODEL('shell_1',(#46)); +#40=SHELL_BASED_SURFACE_MODEL('shell_2',(#47)); +#41=SHELL_BASED_SURFACE_MODEL('shell_3',(#48)); +#42=SHELL_BASED_SURFACE_MODEL('shell_4',(#49)); +#43=SHELL_BASED_SURFACE_MODEL('shell_5',(#50)); +#44=SHELL_BASED_SURFACE_MODEL('shell_6',(#51)); +#45=MANIFOLD_SURFACE_SHAPE_REPRESENTATION('shell_rep_0',(#39,#40,#41,#42, +#43,#44,#280),#277); +#46=OPEN_SHELL('',(#52)); +#47=OPEN_SHELL('',(#53)); +#48=OPEN_SHELL('',(#54)); +#49=OPEN_SHELL('',(#55)); +#50=OPEN_SHELL('',(#56)); +#51=OPEN_SHELL('',(#57)); +#52=ADVANCED_FACE('',(#58),#190,.T.); +#53=ADVANCED_FACE('',(#59),#191,.T.); +#54=ADVANCED_FACE('',(#60),#35,.T.); +#55=ADVANCED_FACE('',(#61),#36,.T.); +#56=ADVANCED_FACE('',(#62),#37,.T.); +#57=ADVANCED_FACE('',(#63),#38,.T.); +#58=FACE_OUTER_BOUND('',#64,.T.); +#59=FACE_OUTER_BOUND('',#65,.T.); +#60=FACE_OUTER_BOUND('',#66,.T.); +#61=FACE_OUTER_BOUND('',#67,.T.); +#62=FACE_OUTER_BOUND('',#68,.T.); +#63=FACE_OUTER_BOUND('',#69,.T.); +#64=EDGE_LOOP('',(#70)); +#65=EDGE_LOOP('',(#71)); +#66=EDGE_LOOP('',(#72,#73,#74,#75)); +#67=EDGE_LOOP('',(#76,#77,#78,#79)); +#68=EDGE_LOOP('',(#80,#81,#82,#83)); +#69=EDGE_LOOP('',(#84,#85,#86,#87)); +#70=ORIENTED_EDGE('',*,*,#142,.T.); +#71=ORIENTED_EDGE('',*,*,#143,.T.); +#72=ORIENTED_EDGE('',*,*,#144,.T.); +#73=ORIENTED_EDGE('',*,*,#145,.T.); +#74=ORIENTED_EDGE('',*,*,#146,.T.); +#75=ORIENTED_EDGE('',*,*,#147,.T.); +#76=ORIENTED_EDGE('',*,*,#148,.T.); +#77=ORIENTED_EDGE('',*,*,#149,.T.); +#78=ORIENTED_EDGE('',*,*,#150,.T.); +#79=ORIENTED_EDGE('',*,*,#151,.T.); +#80=ORIENTED_EDGE('',*,*,#152,.T.); +#81=ORIENTED_EDGE('',*,*,#153,.T.); +#82=ORIENTED_EDGE('',*,*,#154,.T.); +#83=ORIENTED_EDGE('',*,*,#155,.T.); +#84=ORIENTED_EDGE('',*,*,#156,.T.); +#85=ORIENTED_EDGE('',*,*,#157,.T.); +#86=ORIENTED_EDGE('',*,*,#158,.T.); +#87=ORIENTED_EDGE('',*,*,#159,.T.); +#88=PCURVE('',#190,#106); +#89=PCURVE('',#191,#107); +#90=PCURVE('',#35,#108); +#91=PCURVE('',#35,#109); +#92=PCURVE('',#35,#110); +#93=PCURVE('',#35,#111); +#94=PCURVE('',#36,#112); +#95=PCURVE('',#36,#113); +#96=PCURVE('',#36,#114); +#97=PCURVE('',#36,#115); +#98=PCURVE('',#37,#116); +#99=PCURVE('',#37,#117); +#100=PCURVE('',#37,#118); +#101=PCURVE('',#37,#119); +#102=PCURVE('',#38,#120); +#103=PCURVE('',#38,#121); +#104=PCURVE('',#38,#122); +#105=PCURVE('',#38,#123); +#106=DEFINITIONAL_REPRESENTATION('',(#161),#445); +#107=DEFINITIONAL_REPRESENTATION('',(#163),#445); +#108=DEFINITIONAL_REPRESENTATION('',(#12),#445); +#109=DEFINITIONAL_REPRESENTATION('',(#13),#445); +#110=DEFINITIONAL_REPRESENTATION('',(#15),#445); +#111=DEFINITIONAL_REPRESENTATION('',(#16),#445); +#112=DEFINITIONAL_REPRESENTATION('',(#18),#445); +#113=DEFINITIONAL_REPRESENTATION('',(#19),#445); +#114=DEFINITIONAL_REPRESENTATION('',(#21),#445); +#115=DEFINITIONAL_REPRESENTATION('',(#22),#445); +#116=DEFINITIONAL_REPRESENTATION('',(#24),#445); +#117=DEFINITIONAL_REPRESENTATION('',(#25),#445); +#118=DEFINITIONAL_REPRESENTATION('',(#27),#445); +#119=DEFINITIONAL_REPRESENTATION('',(#28),#445); +#120=DEFINITIONAL_REPRESENTATION('',(#30),#445); +#121=DEFINITIONAL_REPRESENTATION('',(#31),#445); +#122=DEFINITIONAL_REPRESENTATION('',(#33),#445); +#123=DEFINITIONAL_REPRESENTATION('',(#34),#445); +#124=SURFACE_CURVE('',#160,(#88),.PCURVE_S1.); +#125=SURFACE_CURVE('',#162,(#89),.PCURVE_S1.); +#126=SURFACE_CURVE('',#11,(#90),.PCURVE_S1.); +#127=SURFACE_CURVE('',#164,(#91),.PCURVE_S1.); +#128=SURFACE_CURVE('',#14,(#92),.PCURVE_S1.); +#129=SURFACE_CURVE('',#165,(#93),.PCURVE_S1.); +#130=SURFACE_CURVE('',#17,(#94),.PCURVE_S1.); +#131=SURFACE_CURVE('',#166,(#95),.PCURVE_S1.); +#132=SURFACE_CURVE('',#20,(#96),.PCURVE_S1.); +#133=SURFACE_CURVE('',#167,(#97),.PCURVE_S1.); +#134=SURFACE_CURVE('',#23,(#98),.PCURVE_S1.); +#135=SURFACE_CURVE('',#168,(#99),.PCURVE_S1.); +#136=SURFACE_CURVE('',#26,(#100),.PCURVE_S1.); +#137=SURFACE_CURVE('',#169,(#101),.PCURVE_S1.); +#138=SURFACE_CURVE('',#29,(#102),.PCURVE_S1.); +#139=SURFACE_CURVE('',#170,(#103),.PCURVE_S1.); +#140=SURFACE_CURVE('',#32,(#104),.PCURVE_S1.); +#141=SURFACE_CURVE('',#171,(#105),.PCURVE_S1.); +#142=EDGE_CURVE('',#172,#172,#124,.T.); +#143=EDGE_CURVE('',#173,#173,#125,.T.); +#144=EDGE_CURVE('',#174,#175,#126,.T.); +#145=EDGE_CURVE('',#175,#176,#127,.T.); +#146=EDGE_CURVE('',#176,#177,#128,.T.); +#147=EDGE_CURVE('',#177,#174,#129,.T.); +#148=EDGE_CURVE('',#178,#179,#130,.T.); +#149=EDGE_CURVE('',#179,#180,#131,.T.); +#150=EDGE_CURVE('',#180,#181,#132,.T.); +#151=EDGE_CURVE('',#181,#178,#133,.T.); +#152=EDGE_CURVE('',#182,#183,#134,.T.); +#153=EDGE_CURVE('',#183,#184,#135,.T.); +#154=EDGE_CURVE('',#184,#185,#136,.T.); +#155=EDGE_CURVE('',#185,#182,#137,.T.); +#156=EDGE_CURVE('',#186,#187,#138,.T.); +#157=EDGE_CURVE('',#187,#188,#139,.T.); +#158=EDGE_CURVE('',#188,#189,#140,.T.); +#159=EDGE_CURVE('',#189,#186,#141,.T.); +#160=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#291,#292,#293,#294,#295,#296,#297,#298,#299), + .UNSPECIFIED.,.T.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,2,2,2,3),(0.,1.5707963267949,3.14159265358979, +4.71238898038469,6.28318530717959),.UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781186548,1.,0.707106781186548,1.,0.707106781186548, +1.,0.707106781186548,1.)) +REPRESENTATION_ITEM('') +); +#161=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#300,#301,#302,#303,#304,#305,#306,#307,#308), + .UNSPECIFIED.,.T.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,2,2,2,3),(0.,1.5707963267949,3.14159265358979, +4.71238898038469,6.28318530717959),.UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781186548,1.,0.707106781186548,1.,0.707106781186548, +1.,0.707106781186548,1.)) +REPRESENTATION_ITEM('') +); +#162=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#314,#315,#316,#317,#318,#319,#320,#321,#322), + .UNSPECIFIED.,.T.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,2,2,2,3),(0.,1.5707963267949,3.14159265358979, +4.71238898038469,6.28318530717959),.UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781186548,1.,0.707106781186548,1.,0.707106781186548, +1.,0.707106781186548,1.)) +REPRESENTATION_ITEM('') +); +#163=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#323,#324,#325,#326,#327,#328,#329,#330,#331), + .UNSPECIFIED.,.T.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,2,2,2,3),(0.,1.5707963267949,3.14159265358979, +4.71238898038469,6.28318530717959),.UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781186548,1.,0.707106781186548,1.,0.707106781186548, +1.,0.707106781186548,1.)) +REPRESENTATION_ITEM('') +); +#164=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#346,#347,#348),.UNSPECIFIED.,.F.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,3),(4.71238898,6.283185308),.UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106780760479,1.)) +REPRESENTATION_ITEM('') +); +#165=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#355,#356,#357),.UNSPECIFIED.,.F.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,3),(-6.283185308,-4.71238898), + .UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106780760479,1.)) +REPRESENTATION_ITEM('') +); +#166=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#374,#375,#376),.UNSPECIFIED.,.F.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,3),(4.71238898,6.283185307),.UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781114032,1.)) +REPRESENTATION_ITEM('') +); +#167=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#383,#384,#385),.UNSPECIFIED.,.F.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,3),(-6.283185307,-4.71238898), + .UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781114032,1.)) +REPRESENTATION_ITEM('') +); +#168=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#402,#403,#404),.UNSPECIFIED.,.F.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,3),(4.71238898,6.283185307),.UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781114032,1.)) +REPRESENTATION_ITEM('') +); +#169=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#411,#412,#413),.UNSPECIFIED.,.F.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,3),(-6.283185307,-4.71238898), + .UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781114032,1.)) +REPRESENTATION_ITEM('') +); +#170=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#430,#431,#432),.UNSPECIFIED.,.F.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,3),(4.71238898,6.283185307),.UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781114032,1.)) +REPRESENTATION_ITEM('') +); +#171=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#439,#440,#441),.UNSPECIFIED.,.F.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,3),(-6.283185307,-4.71238898), + .UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781114032,1.)) +REPRESENTATION_ITEM('') +); +#172=VERTEX_POINT('',#290); +#173=VERTEX_POINT('',#313); +#174=VERTEX_POINT('',#338); +#175=VERTEX_POINT('',#339); +#176=VERTEX_POINT('',#340); +#177=VERTEX_POINT('',#341); +#178=VERTEX_POINT('',#366); +#179=VERTEX_POINT('',#367); +#180=VERTEX_POINT('',#368); +#181=VERTEX_POINT('',#369); +#182=VERTEX_POINT('',#394); +#183=VERTEX_POINT('',#395); +#184=VERTEX_POINT('',#396); +#185=VERTEX_POINT('',#397); +#186=VERTEX_POINT('',#422); +#187=VERTEX_POINT('',#423); +#188=VERTEX_POINT('',#424); +#189=VERTEX_POINT('',#425); +#190=B_SPLINE_SURFACE_WITH_KNOTS('',1,1,((#286,#287),(#288,#289)), + .UNSPECIFIED.,.F.,.F.,.F.,(2,2),(2,2),(-1500.,1500.),(-1500.,1500.), + .UNSPECIFIED.); +#191=B_SPLINE_SURFACE_WITH_KNOTS('',1,1,((#309,#310),(#311,#312)), + .UNSPECIFIED.,.F.,.F.,.F.,(2,2),(2,2),(-1500.,1500.),(-1500.,1500.), + .UNSPECIFIED.); +#192=SHAPE_DEFINITION_REPRESENTATION(#193,#278); +#193=PRODUCT_DEFINITION_SHAPE('Document','',#195); +#194=PRODUCT_DEFINITION_CONTEXT('3D Mechanical Parts',#267,'design'); +#195=PRODUCT_DEFINITION('A','First version',#237,#194); +#196=DATE_TIME_ROLE('classification_date'); +#197=DATE_TIME_ROLE('creation_date'); +#198=APPLIED_DATE_AND_TIME_ASSIGNMENT(#222,#196,(#201)); +#199=APPLIED_DATE_AND_TIME_ASSIGNMENT(#224,#197,(#195)); +#200=SECURITY_CLASSIFICATION_LEVEL('unclassified'); +#201=SECURITY_CLASSIFICATION('A','Security for version',#200); +#202=APPLIED_SECURITY_CLASSIFICATION_ASSIGNMENT(#201,(#237)); +#203=APPROVAL_ROLE('Version approval'); +#204=APPROVAL_ROLE('Version Security approval'); +#205=APPROVAL_ROLE('Definition approval'); +#206=APPROVAL_PERSON_ORGANIZATION(#255,#231,#203); +#207=APPROVAL_PERSON_ORGANIZATION(#256,#232,#204); +#208=APPROVAL_PERSON_ORGANIZATION(#259,#233,#205); +#209=COORDINATED_UNIVERSAL_TIME_OFFSET(5,0,.BEHIND.); +#210=LOCAL_TIME(0,0,0.,#209); +#211=LOCAL_TIME(0,0,0.,#209); +#212=LOCAL_TIME(0,0,0.,#209); +#213=LOCAL_TIME(0,0,0.,#209); +#214=LOCAL_TIME(0,0,0.,#209); +#215=CALENDAR_DATE(1999,1,1); +#216=CALENDAR_DATE(1999,1,1); +#217=CALENDAR_DATE(1999,1,1); +#218=CALENDAR_DATE(1999,1,1); +#219=CALENDAR_DATE(1999,1,1); +#220=DATE_AND_TIME(#215,#210); +#221=DATE_AND_TIME(#216,#211); +#222=DATE_AND_TIME(#217,#212); +#223=DATE_AND_TIME(#218,#213); +#224=DATE_AND_TIME(#219,#214); +#225=APPROVAL_DATE_TIME(#220,#231); +#226=APPROVAL_DATE_TIME(#221,#232); +#227=APPROVAL_DATE_TIME(#223,#233); +#228=APPROVAL_STATUS('not_yet_approved'); +#229=APPROVAL_STATUS('not_yet_approved'); +#230=APPROVAL_STATUS('approved'); +#231=APPROVAL(#228,'Version approval'); +#232=APPROVAL(#229,'Version Security approval'); +#233=APPROVAL(#230,'Definition approval'); +#234=APPLIED_APPROVAL_ASSIGNMENT(#231,(#237)); +#235=APPLIED_APPROVAL_ASSIGNMENT(#232,(#201)); +#236=APPLIED_APPROVAL_ASSIGNMENT(#233,(#195)); +#237=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A', +'First version',#269,.MADE.); +#238=PERSON_AND_ORGANIZATION_ROLE('design_owner'); +#239=PERSON_AND_ORGANIZATION_ROLE('creator'); +#240=PERSON_AND_ORGANIZATION_ROLE('design_supplier'); +#241=PERSON_AND_ORGANIZATION_ROLE('classification_officer'); +#242=PERSON_AND_ORGANIZATION_ROLE('creator'); +#243=ORGANIZATION('STI','lab','lab'); +#244=ORGANIZATION('STI','unknown','unknown'); +#245=ORGANIZATION('STI','unknown','unknown'); +#246=ORGANIZATION('STI','unknown','unknown'); +#247=ORGANIZATION('STI','unknown','unknown'); +#248=ORGANIZATION('STI','unknown','unknown'); +#249=ORGANIZATION('STI','unknown','unknown'); +#250=PERSON('1','Box','vc60',$,$,$); +#251=PERSON('2','last','first',$,$,$); +#252=PERSON('3','President','Mr.',$,$,$); +#253=PERSON_AND_ORGANIZATION(#250,#243); +#254=PERSON_AND_ORGANIZATION(#251,#244); +#255=PERSON_AND_ORGANIZATION(#252,#245); +#256=PERSON_AND_ORGANIZATION(#252,#246); +#257=PERSON_AND_ORGANIZATION(#252,#247); +#258=PERSON_AND_ORGANIZATION(#251,#248); +#259=PERSON_AND_ORGANIZATION(#252,#249); +#260=APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT(#253,#238,(#269)); +#261=APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT(#254,#239,(#237)); +#262=APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT(#254,#240,(#237)); +#263=APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT(#257,#241,(#201)); +#264=APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT(#258,#242,(#195)); +#265=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','detail',(#269)); +#266=APPLICATION_PROTOCOL_DEFINITION('International Standard', +'config_control_design',1994,#267); +#267=APPLICATION_CONTEXT( +'configuration controlled 3d designs of mechanical parts and assemblie +s'); +#268=PRODUCT_CONTEXT('3D Mechanical Parts',#267,'mechanical'); +#269=PRODUCT('Document','Document','Rhino converted to STEP',(#268)); +#270=( +LENGTH_UNIT() +NAMED_UNIT(*) +SI_UNIT(.MILLI.,.METRE.) +); +#271=( +NAMED_UNIT(*) +PLANE_ANGLE_UNIT() +SI_UNIT($,.RADIAN.) +); +#272=DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.); +#273=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.01745329252),#271); +#274=( +CONVERSION_BASED_UNIT('DEGREES',#273) +NAMED_UNIT(#272) +PLANE_ANGLE_UNIT() +); +#275=( +NAMED_UNIT(*) +SI_UNIT($,.STERADIAN.) +SOLID_ANGLE_UNIT() +); +#276=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.001),#270, +'DISTANCE_ACCURACY_VALUE', +'Maximum model space distance between geometric entities at asserted c +onnectivities'); +#277=( +GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#276)) +GLOBAL_UNIT_ASSIGNED_CONTEXT((#275,#274,#270)) +REPRESENTATION_CONTEXT('ID1','3D') +); +#278=SHAPE_REPRESENTATION('Document',(#279,#280),#277); +#279=AXIS2_PLACEMENT_3D('',#285,#281,#282); +#280=AXIS2_PLACEMENT_3D('',#444,#283,#284); +#281=DIRECTION('',(0.,0.,1.)); +#282=DIRECTION('',(1.,0.,0.)); +#283=DIRECTION('',(0.,0.,1.)); +#284=DIRECTION('',(1.,0.,0.)); +#285=CARTESIAN_POINT('',(0.,0.,0.)); +#286=CARTESIAN_POINT('',(-1500.,-1500.,10000.)); +#287=CARTESIAN_POINT('',(-1500.,1500.,10000.)); +#288=CARTESIAN_POINT('',(1500.,-1500.,10000.)); +#289=CARTESIAN_POINT('',(1500.,1500.,10000.)); +#290=CARTESIAN_POINT('',(1000.,0.,10000.)); +#291=CARTESIAN_POINT('',(1000.,0.,10000.)); +#292=CARTESIAN_POINT('',(1000.,1000.,10000.)); +#293=CARTESIAN_POINT('',(6.12323399573677E-14,1000.,10000.)); +#294=CARTESIAN_POINT('',(-1000.,1000.,10000.)); +#295=CARTESIAN_POINT('',(-1000.,1.22464679914735E-13,10000.)); +#296=CARTESIAN_POINT('',(-1000.,-1000.,10000.)); +#297=CARTESIAN_POINT('',(-1.83697019872103E-13,-1000.,10000.)); +#298=CARTESIAN_POINT('',(1000.,-1000.,10000.)); +#299=CARTESIAN_POINT('',(1000.,0.,10000.)); +#300=CARTESIAN_POINT('',(1000.,-1.22464679914735E-13)); +#301=CARTESIAN_POINT('',(1000.,1000.)); +#302=CARTESIAN_POINT('',(6.12323399573677E-14,1000.)); +#303=CARTESIAN_POINT('',(-1000.,1000.)); +#304=CARTESIAN_POINT('',(-1000.,1.22464679914735E-13)); +#305=CARTESIAN_POINT('',(-1000.,-1000.)); +#306=CARTESIAN_POINT('',(-1.83697019872103E-13,-1000.)); +#307=CARTESIAN_POINT('',(1000.,-1000.)); +#308=CARTESIAN_POINT('',(1000.,-1.22464679914735E-13)); +#309=CARTESIAN_POINT('',(-1500.,1500.,0.)); +#310=CARTESIAN_POINT('',(-1500.,-1500.,0.)); +#311=CARTESIAN_POINT('',(1500.,1500.,0.)); +#312=CARTESIAN_POINT('',(1500.,-1500.,0.)); +#313=CARTESIAN_POINT('',(1000.,0.,0.)); +#314=CARTESIAN_POINT('',(1000.,0.,0.)); +#315=CARTESIAN_POINT('',(1000.,-1000.,0.)); +#316=CARTESIAN_POINT('',(6.12323399573677E-14,-1000.,0.)); +#317=CARTESIAN_POINT('',(-1000.,-1000.,0.)); +#318=CARTESIAN_POINT('',(-1000.,-1.22464679914735E-13,0.)); +#319=CARTESIAN_POINT('',(-1000.,1000.,0.)); +#320=CARTESIAN_POINT('',(-1.83697019872103E-13,1000.,0.)); +#321=CARTESIAN_POINT('',(1000.,1000.,0.)); +#322=CARTESIAN_POINT('',(1000.,0.,0.)); +#323=CARTESIAN_POINT('',(1000.,-1.22464679914735E-13)); +#324=CARTESIAN_POINT('',(1000.,1000.)); +#325=CARTESIAN_POINT('',(6.12323399573677E-14,1000.)); +#326=CARTESIAN_POINT('',(-1000.,1000.)); +#327=CARTESIAN_POINT('',(-1000.,1.22464679914735E-13)); +#328=CARTESIAN_POINT('',(-1000.,-1000.)); +#329=CARTESIAN_POINT('',(-1.83697019872103E-13,-1000.)); +#330=CARTESIAN_POINT('',(1000.,-1000.)); +#331=CARTESIAN_POINT('',(1000.,-1.22464679914735E-13)); +#332=CARTESIAN_POINT('',(-3.591724924E-07,-1000.,10000.)); +#333=CARTESIAN_POINT('',(1000.00000084593,-1000.00000035917,10000.)); +#334=CARTESIAN_POINT('',(1000.,8.45931018855702E-07,10000.)); +#335=CARTESIAN_POINT('',(-3.591724924E-07,-1000.,-1.09139364212751E-11)); +#336=CARTESIAN_POINT('',(1000.00000084593,-1000.00000035917,-1.09139364212751E-11)); +#337=CARTESIAN_POINT('',(1000.,8.45931018855702E-07,-1.09139364212751E-11)); +#338=CARTESIAN_POINT('',(-5.51517390997189E-07,-1000.,10000.)); +#339=CARTESIAN_POINT('',(-5.51517390997189E-07,-1000.,-5.45696820790076E-12)); +#340=CARTESIAN_POINT('',(1000.,5.10343646306623E-08,-1.091393642E-11)); +#341=CARTESIAN_POINT('',(1000.,5.10343646306623E-08,10000.)); +#342=CARTESIAN_POINT('',(-3.591724924E-07,-1000.,10000.)); +#343=CARTESIAN_POINT('',(-3.591724924E-07,-1000.,-1.091393642E-11)); +#344=CARTESIAN_POINT('',(0.,4.71238898)); +#345=CARTESIAN_POINT('',(1.,4.71238898)); +#346=CARTESIAN_POINT('',(-7.43862289594378E-07,-1000.,4.19847998800213E-21)); +#347=CARTESIAN_POINT('',(1000.00000046124,-1000.00000074386,-1.09139364289539E-11)); +#348=CARTESIAN_POINT('',(1000.,4.61241221661325E-07,-1.091393642E-11)); +#349=CARTESIAN_POINT('',(1.,4.71238898)); +#350=CARTESIAN_POINT('',(1.,6.283185308)); +#351=CARTESIAN_POINT('',(1000.,-3.591724924E-07,-1.091393642E-11)); +#352=CARTESIAN_POINT('',(1000.,-3.591724924E-07,10000.)); +#353=CARTESIAN_POINT('',(1.,6.283185308)); +#354=CARTESIAN_POINT('',(0.,6.283185308)); +#355=CARTESIAN_POINT('',(1000.,4.61241221661325E-07,10000.)); +#356=CARTESIAN_POINT('',(1000.00000046124,-1000.00000074386,10000.)); +#357=CARTESIAN_POINT('',(-7.43862289594378E-07,-1000.,10000.)); +#358=CARTESIAN_POINT('',(0.,6.283185308)); +#359=CARTESIAN_POINT('',(0.,4.71238898)); +#360=CARTESIAN_POINT('',(-1000.,-4.357241234E-07,10000.)); +#361=CARTESIAN_POINT('',(-999.999999564276,-1000.00000064083,10000.)); +#362=CARTESIAN_POINT('',(6.40827551915331E-07,-1000.,10000.)); +#363=CARTESIAN_POINT('',(-1000.,-4.357241234E-07,-7.27595761418343E-12)); +#364=CARTESIAN_POINT('',(-999.999999564276,-1000.00000064083,-7.27595761418343E-12)); +#365=CARTESIAN_POINT('',(6.40827551915331E-07,-1000.,-7.27595761418343E-12)); +#366=CARTESIAN_POINT('',(-1000.,-2.43379224802811E-07,10000.)); +#367=CARTESIAN_POINT('',(-1000.,-2.43379224802811E-07,-3.63797880560051E-12)); +#368=CARTESIAN_POINT('',(3.45930939060477E-07,-1000.,-7.275957614E-12)); +#369=CARTESIAN_POINT('',(3.45930939060477E-07,-1000.,10000.)); +#370=CARTESIAN_POINT('',(-1000.,-4.357241234E-07,10000.)); +#371=CARTESIAN_POINT('',(-1000.,-4.357241234E-07,-7.275957614E-12)); +#372=CARTESIAN_POINT('',(0.,4.71238898)); +#373=CARTESIAN_POINT('',(1.,4.71238898)); +#374=CARTESIAN_POINT('',(-1000.,-5.10343262056225E-08,2.79898665892455E-21)); +#375=CARTESIAN_POINT('',(-999.999999948966,-1000.00000025614,-7.27595761269334E-12)); +#376=CARTESIAN_POINT('',(2.56137754720954E-07,-1000.,-7.275957614E-12)); +#377=CARTESIAN_POINT('',(1.,4.71238898)); +#378=CARTESIAN_POINT('',(1.,6.283185307)); +#379=CARTESIAN_POINT('',(4.357241234E-07,-1000.,-7.275957614E-12)); +#380=CARTESIAN_POINT('',(4.357241234E-07,-1000.,10000.)); +#381=CARTESIAN_POINT('',(1.,6.283185307)); +#382=CARTESIAN_POINT('',(0.,6.283185307)); +#383=CARTESIAN_POINT('',(2.56137754720954E-07,-1000.,10000.)); +#384=CARTESIAN_POINT('',(-999.999999948966,-1000.00000025614,10000.)); +#385=CARTESIAN_POINT('',(-1000.,-5.10343262056225E-08,10000.)); +#386=CARTESIAN_POINT('',(0.,6.283185307)); +#387=CARTESIAN_POINT('',(0.,4.71238898)); +#388=CARTESIAN_POINT('',(-2.306207333E-07,1000.,10000.)); +#389=CARTESIAN_POINT('',(-1000.00000043572,999.999999769379,10000.)); +#390=CARTESIAN_POINT('',(-1000.,-4.35724161815331E-07,10000.)); +#391=CARTESIAN_POINT('',(-2.306207333E-07,1000.,-5.45696821063757E-12)); +#392=CARTESIAN_POINT('',(-1000.00000043572,999.999999769379,-5.45696821063757E-12)); +#393=CARTESIAN_POINT('',(-1000.,-4.35724161815331E-07,-5.45696821063757E-12)); +#394=CARTESIAN_POINT('',(-3.82758347028112E-08,1000.,10000.)); +#395=CARTESIAN_POINT('',(-3.82758347028112E-08,1000.,-2.72848410445038E-12)); +#396=CARTESIAN_POINT('',(-1000.,-1.40827548960477E-07,-5.456968211E-12)); +#397=CARTESIAN_POINT('',(-1000.,-1.40827548960477E-07,10000.)); +#398=CARTESIAN_POINT('',(-2.306207333E-07,1000.,10000.)); +#399=CARTESIAN_POINT('',(-2.306207333E-07,1000.,-5.456968211E-12)); +#400=CARTESIAN_POINT('',(0.,4.71238898)); +#401=CARTESIAN_POINT('',(1.,4.71238898)); +#402=CARTESIAN_POINT('',(1.54069063894378E-07,1000.,2.09923999438576E-21)); +#403=CARTESIAN_POINT('',(-1000.00000005103,1000.00000015407,-5.45696821002E-12)); +#404=CARTESIAN_POINT('',(-1000.,-5.10343646209536E-08,-5.456968211E-12)); +#405=CARTESIAN_POINT('',(1.,4.71238898)); +#406=CARTESIAN_POINT('',(1.,6.283185307)); +#407=CARTESIAN_POINT('',(-1000.,-2.306207333E-07,-5.456968211E-12)); +#408=CARTESIAN_POINT('',(-1000.,-2.306207333E-07,10000.)); +#409=CARTESIAN_POINT('',(1.,6.283185307)); +#410=CARTESIAN_POINT('',(0.,6.283185307)); +#411=CARTESIAN_POINT('',(-1000.,-5.10343646209536E-08,10000.)); +#412=CARTESIAN_POINT('',(-1000.00000005103,1000.00000015407,10000.)); +#413=CARTESIAN_POINT('',(1.54069063894378E-07,1000.,10000.)); +#414=CARTESIAN_POINT('',(0.,6.283185307)); +#415=CARTESIAN_POINT('',(0.,4.71238898)); +#416=CARTESIAN_POINT('',(1000.,2.5517366E-08,10000.)); +#417=CARTESIAN_POINT('',(999.999999974483,1000.00000023062,10000.)); +#418=CARTESIAN_POINT('',(-2.30620794515331E-07,1000.,10000.)); +#419=CARTESIAN_POINT('',(1000.,2.5517366E-08,0.)); +#420=CARTESIAN_POINT('',(999.999999974483,1000.00000023062,0.)); +#421=CARTESIAN_POINT('',(-2.30620794515331E-07,1000.,0.)); +#422=CARTESIAN_POINT('',(1000.,-1.66827532597189E-07,10000.)); +#423=CARTESIAN_POINT('',(1000.,-1.66827532597189E-07,0.)); +#424=CARTESIAN_POINT('',(6.42758183395232E-08,1000.,0.)); +#425=CARTESIAN_POINT('',(6.42758183395232E-08,1000.,10000.)); +#426=CARTESIAN_POINT('',(1000.,2.5517366E-08,10000.)); +#427=CARTESIAN_POINT('',(1000.,2.5517366E-08,0.)); +#428=CARTESIAN_POINT('',(0.,4.71238898)); +#429=CARTESIAN_POINT('',(1.,4.71238898)); +#430=CARTESIAN_POINT('',(1000.,-3.59172431194378E-07,0.)); +#431=CARTESIAN_POINT('',(1000.00000035917,999.999999845931,0.)); +#432=CARTESIAN_POINT('',(1.54069002679046E-07,1000.,0.)); +#433=CARTESIAN_POINT('',(1.,4.71238898)); +#434=CARTESIAN_POINT('',(1.,6.283185307)); +#435=CARTESIAN_POINT('',(-2.5517366E-08,1000.,0.)); +#436=CARTESIAN_POINT('',(-2.5517366E-08,1000.,10000.)); +#437=CARTESIAN_POINT('',(1.,6.283185307)); +#438=CARTESIAN_POINT('',(0.,6.283185307)); +#439=CARTESIAN_POINT('',(1.54069002679046E-07,1000.,10000.)); +#440=CARTESIAN_POINT('',(1000.00000035917,999.999999845931,10000.)); +#441=CARTESIAN_POINT('',(1000.,-3.59172431194378E-07,10000.)); +#442=CARTESIAN_POINT('',(0.,6.283185307)); +#443=CARTESIAN_POINT('',(0.,4.71238898)); +#444=CARTESIAN_POINT('',(0.,0.,0.)); +#445=( +GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() +REPRESENTATION_CONTEXT('pspace','') +); +ENDSEC; +END-ISO-10303-21; diff --git a/tests/test_datasets/test_pipe.stp b/tests/test_datasets/test_pipe.stp new file mode 100644 index 0000000..3e90678 --- /dev/null +++ b/tests/test_datasets/test_pipe.stp @@ -0,0 +1,679 @@ +ISO-10303-21; +HEADER; +/* Generated by software containing ST-Developer + * from STEP Tools, Inc. (www.steptools.com) + */ +/* OPTION: using custom schema-name function */ + +FILE_DESCRIPTION( +/* description */ (''), +/* implementation_level */ '2;1'); + +FILE_NAME( +/* name */ 'TEST_P~2', +/* time_stamp */ '2016-11-03T10:42:39+01:00', +/* author */ (''), +/* organization */ (''), +/* preprocessor_version */ 'ST-DEVELOPER v15', +/* originating_system */ '', +/* authorisation */ ''); + +FILE_SCHEMA (('CONFIG_CONTROL_DESIGN')); +ENDSEC; + +DATA; +#10=SHAPE_REPRESENTATION_RELATIONSHIP('','',#278,#45); +#11=B_SPLINE_CURVE_WITH_KNOTS('',1,(#342,#343),.UNSPECIFIED.,.F.,.F.,(2, +2),(0.,1.),.UNSPECIFIED.); +#12=B_SPLINE_CURVE_WITH_KNOTS('',1,(#344,#345),.UNSPECIFIED.,.F.,.F.,(2, +2),(0.,1.),.UNSPECIFIED.); +#13=B_SPLINE_CURVE_WITH_KNOTS('',1,(#349,#350),.UNSPECIFIED.,.F.,.F.,(2, +2),(4.71238898,6.283185308),.UNSPECIFIED.); +#14=B_SPLINE_CURVE_WITH_KNOTS('',1,(#351,#352),.UNSPECIFIED.,.F.,.F.,(2, +2),(-1.,0.),.UNSPECIFIED.); +#15=B_SPLINE_CURVE_WITH_KNOTS('',1,(#353,#354),.UNSPECIFIED.,.F.,.F.,(2, +2),(-1.,0.),.UNSPECIFIED.); +#16=B_SPLINE_CURVE_WITH_KNOTS('',1,(#358,#359),.UNSPECIFIED.,.F.,.F.,(2, +2),(-6.283185308,-4.71238898),.UNSPECIFIED.); +#17=B_SPLINE_CURVE_WITH_KNOTS('',1,(#370,#371),.UNSPECIFIED.,.F.,.F.,(2, +2),(0.,1.),.UNSPECIFIED.); +#18=B_SPLINE_CURVE_WITH_KNOTS('',1,(#372,#373),.UNSPECIFIED.,.F.,.F.,(2, +2),(0.,1.),.UNSPECIFIED.); +#19=B_SPLINE_CURVE_WITH_KNOTS('',1,(#377,#378),.UNSPECIFIED.,.F.,.F.,(2, +2),(4.71238898,6.283185307),.UNSPECIFIED.); +#20=B_SPLINE_CURVE_WITH_KNOTS('',1,(#379,#380),.UNSPECIFIED.,.F.,.F.,(2, +2),(-1.,0.),.UNSPECIFIED.); +#21=B_SPLINE_CURVE_WITH_KNOTS('',1,(#381,#382),.UNSPECIFIED.,.F.,.F.,(2, +2),(-1.,0.),.UNSPECIFIED.); +#22=B_SPLINE_CURVE_WITH_KNOTS('',1,(#386,#387),.UNSPECIFIED.,.F.,.F.,(2, +2),(-6.283185307,-4.71238898),.UNSPECIFIED.); +#23=B_SPLINE_CURVE_WITH_KNOTS('',1,(#398,#399),.UNSPECIFIED.,.F.,.F.,(2, +2),(0.,1.),.UNSPECIFIED.); +#24=B_SPLINE_CURVE_WITH_KNOTS('',1,(#400,#401),.UNSPECIFIED.,.F.,.F.,(2, +2),(0.,1.),.UNSPECIFIED.); +#25=B_SPLINE_CURVE_WITH_KNOTS('',1,(#405,#406),.UNSPECIFIED.,.F.,.F.,(2, +2),(4.71238898,6.283185307),.UNSPECIFIED.); +#26=B_SPLINE_CURVE_WITH_KNOTS('',1,(#407,#408),.UNSPECIFIED.,.F.,.F.,(2, +2),(-1.,0.),.UNSPECIFIED.); +#27=B_SPLINE_CURVE_WITH_KNOTS('',1,(#409,#410),.UNSPECIFIED.,.F.,.F.,(2, +2),(-1.,0.),.UNSPECIFIED.); +#28=B_SPLINE_CURVE_WITH_KNOTS('',1,(#414,#415),.UNSPECIFIED.,.F.,.F.,(2, +2),(-6.283185307,-4.71238898),.UNSPECIFIED.); +#29=B_SPLINE_CURVE_WITH_KNOTS('',1,(#426,#427),.UNSPECIFIED.,.F.,.F.,(2, +2),(0.,1.),.UNSPECIFIED.); +#30=B_SPLINE_CURVE_WITH_KNOTS('',1,(#428,#429),.UNSPECIFIED.,.F.,.F.,(2, +2),(0.,1.),.UNSPECIFIED.); +#31=B_SPLINE_CURVE_WITH_KNOTS('',1,(#433,#434),.UNSPECIFIED.,.F.,.F.,(2, +2),(4.71238898,6.283185307),.UNSPECIFIED.); +#32=B_SPLINE_CURVE_WITH_KNOTS('',1,(#435,#436),.UNSPECIFIED.,.F.,.F.,(2, +2),(-1.,0.),.UNSPECIFIED.); +#33=B_SPLINE_CURVE_WITH_KNOTS('',1,(#437,#438),.UNSPECIFIED.,.F.,.F.,(2, +2),(-1.,0.),.UNSPECIFIED.); +#34=B_SPLINE_CURVE_WITH_KNOTS('',1,(#442,#443),.UNSPECIFIED.,.F.,.F.,(2, +2),(-6.283185307,-4.71238898),.UNSPECIFIED.); +#35=( +BOUNDED_SURFACE() +B_SPLINE_SURFACE(1,2,((#332,#333,#334),(#335,#336,#337)),.UNSPECIFIED., + .F.,.F.,.F.) +B_SPLINE_SURFACE_WITH_KNOTS((2,2),(3,3),(0.,1.),(4.71238898,6.283185308), + .UNSPECIFIED.) +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_SURFACE(((1.,0.707106780760479,1.),(1.,0.707106780760479, +1.))) +REPRESENTATION_ITEM('') +SURFACE() +); +#36=( +BOUNDED_SURFACE() +B_SPLINE_SURFACE(1,2,((#360,#361,#362),(#363,#364,#365)),.UNSPECIFIED., + .F.,.F.,.F.) +B_SPLINE_SURFACE_WITH_KNOTS((2,2),(3,3),(0.,1.),(4.71238898,6.283185307), + .UNSPECIFIED.) +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_SURFACE(((1.,0.707106781114032,1.),(1.,0.707106781114032, +1.))) +REPRESENTATION_ITEM('') +SURFACE() +); +#37=( +BOUNDED_SURFACE() +B_SPLINE_SURFACE(1,2,((#388,#389,#390),(#391,#392,#393)),.UNSPECIFIED., + .F.,.F.,.F.) +B_SPLINE_SURFACE_WITH_KNOTS((2,2),(3,3),(0.,1.),(4.71238898,6.283185307), + .UNSPECIFIED.) +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_SURFACE(((1.,0.707106781114032,1.),(1.,0.707106781114032, +1.))) +REPRESENTATION_ITEM('') +SURFACE() +); +#38=( +BOUNDED_SURFACE() +B_SPLINE_SURFACE(1,2,((#416,#417,#418),(#419,#420,#421)),.UNSPECIFIED., + .F.,.F.,.F.) +B_SPLINE_SURFACE_WITH_KNOTS((2,2),(3,3),(0.,1.),(4.71238898,6.283185307), + .UNSPECIFIED.) +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_SURFACE(((1.,0.707106781114032,1.),(1.,0.707106781114032, +1.))) +REPRESENTATION_ITEM('') +SURFACE() +); +#39=SHELL_BASED_SURFACE_MODEL('shell_1',(#46)); +#40=SHELL_BASED_SURFACE_MODEL('shell_2',(#47)); +#41=SHELL_BASED_SURFACE_MODEL('shell_3',(#48)); +#42=SHELL_BASED_SURFACE_MODEL('shell_4',(#49)); +#43=SHELL_BASED_SURFACE_MODEL('shell_5',(#50)); +#44=SHELL_BASED_SURFACE_MODEL('shell_6',(#51)); +#45=MANIFOLD_SURFACE_SHAPE_REPRESENTATION('shell_rep_0',(#39,#40,#41,#42, +#43,#44,#280),#277); +#46=OPEN_SHELL('',(#52)); +#47=OPEN_SHELL('',(#53)); +#48=OPEN_SHELL('',(#54)); +#49=OPEN_SHELL('',(#55)); +#50=OPEN_SHELL('',(#56)); +#51=OPEN_SHELL('',(#57)); +#52=ADVANCED_FACE('',(#58),#190,.T.); +#53=ADVANCED_FACE('',(#59),#191,.T.); +#54=ADVANCED_FACE('',(#60),#35,.T.); +#55=ADVANCED_FACE('',(#61),#36,.T.); +#56=ADVANCED_FACE('',(#62),#37,.T.); +#57=ADVANCED_FACE('',(#63),#38,.T.); +#58=FACE_OUTER_BOUND('',#64,.T.); +#59=FACE_OUTER_BOUND('',#65,.T.); +#60=FACE_OUTER_BOUND('',#66,.T.); +#61=FACE_OUTER_BOUND('',#67,.T.); +#62=FACE_OUTER_BOUND('',#68,.T.); +#63=FACE_OUTER_BOUND('',#69,.T.); +#64=EDGE_LOOP('',(#70)); +#65=EDGE_LOOP('',(#71)); +#66=EDGE_LOOP('',(#72,#73,#74,#75)); +#67=EDGE_LOOP('',(#76,#77,#78,#79)); +#68=EDGE_LOOP('',(#80,#81,#82,#83)); +#69=EDGE_LOOP('',(#84,#85,#86,#87)); +#70=ORIENTED_EDGE('',*,*,#142,.T.); +#71=ORIENTED_EDGE('',*,*,#143,.T.); +#72=ORIENTED_EDGE('',*,*,#144,.T.); +#73=ORIENTED_EDGE('',*,*,#145,.T.); +#74=ORIENTED_EDGE('',*,*,#146,.T.); +#75=ORIENTED_EDGE('',*,*,#147,.T.); +#76=ORIENTED_EDGE('',*,*,#148,.T.); +#77=ORIENTED_EDGE('',*,*,#149,.T.); +#78=ORIENTED_EDGE('',*,*,#150,.T.); +#79=ORIENTED_EDGE('',*,*,#151,.T.); +#80=ORIENTED_EDGE('',*,*,#152,.T.); +#81=ORIENTED_EDGE('',*,*,#153,.T.); +#82=ORIENTED_EDGE('',*,*,#154,.T.); +#83=ORIENTED_EDGE('',*,*,#155,.T.); +#84=ORIENTED_EDGE('',*,*,#156,.T.); +#85=ORIENTED_EDGE('',*,*,#157,.T.); +#86=ORIENTED_EDGE('',*,*,#158,.T.); +#87=ORIENTED_EDGE('',*,*,#159,.T.); +#88=PCURVE('',#190,#106); +#89=PCURVE('',#191,#107); +#90=PCURVE('',#35,#108); +#91=PCURVE('',#35,#109); +#92=PCURVE('',#35,#110); +#93=PCURVE('',#35,#111); +#94=PCURVE('',#36,#112); +#95=PCURVE('',#36,#113); +#96=PCURVE('',#36,#114); +#97=PCURVE('',#36,#115); +#98=PCURVE('',#37,#116); +#99=PCURVE('',#37,#117); +#100=PCURVE('',#37,#118); +#101=PCURVE('',#37,#119); +#102=PCURVE('',#38,#120); +#103=PCURVE('',#38,#121); +#104=PCURVE('',#38,#122); +#105=PCURVE('',#38,#123); +#106=DEFINITIONAL_REPRESENTATION('',(#161),#445); +#107=DEFINITIONAL_REPRESENTATION('',(#163),#445); +#108=DEFINITIONAL_REPRESENTATION('',(#12),#445); +#109=DEFINITIONAL_REPRESENTATION('',(#13),#445); +#110=DEFINITIONAL_REPRESENTATION('',(#15),#445); +#111=DEFINITIONAL_REPRESENTATION('',(#16),#445); +#112=DEFINITIONAL_REPRESENTATION('',(#18),#445); +#113=DEFINITIONAL_REPRESENTATION('',(#19),#445); +#114=DEFINITIONAL_REPRESENTATION('',(#21),#445); +#115=DEFINITIONAL_REPRESENTATION('',(#22),#445); +#116=DEFINITIONAL_REPRESENTATION('',(#24),#445); +#117=DEFINITIONAL_REPRESENTATION('',(#25),#445); +#118=DEFINITIONAL_REPRESENTATION('',(#27),#445); +#119=DEFINITIONAL_REPRESENTATION('',(#28),#445); +#120=DEFINITIONAL_REPRESENTATION('',(#30),#445); +#121=DEFINITIONAL_REPRESENTATION('',(#31),#445); +#122=DEFINITIONAL_REPRESENTATION('',(#33),#445); +#123=DEFINITIONAL_REPRESENTATION('',(#34),#445); +#124=SURFACE_CURVE('',#160,(#88),.PCURVE_S1.); +#125=SURFACE_CURVE('',#162,(#89),.PCURVE_S1.); +#126=SURFACE_CURVE('',#11,(#90),.PCURVE_S1.); +#127=SURFACE_CURVE('',#164,(#91),.PCURVE_S1.); +#128=SURFACE_CURVE('',#14,(#92),.PCURVE_S1.); +#129=SURFACE_CURVE('',#165,(#93),.PCURVE_S1.); +#130=SURFACE_CURVE('',#17,(#94),.PCURVE_S1.); +#131=SURFACE_CURVE('',#166,(#95),.PCURVE_S1.); +#132=SURFACE_CURVE('',#20,(#96),.PCURVE_S1.); +#133=SURFACE_CURVE('',#167,(#97),.PCURVE_S1.); +#134=SURFACE_CURVE('',#23,(#98),.PCURVE_S1.); +#135=SURFACE_CURVE('',#168,(#99),.PCURVE_S1.); +#136=SURFACE_CURVE('',#26,(#100),.PCURVE_S1.); +#137=SURFACE_CURVE('',#169,(#101),.PCURVE_S1.); +#138=SURFACE_CURVE('',#29,(#102),.PCURVE_S1.); +#139=SURFACE_CURVE('',#170,(#103),.PCURVE_S1.); +#140=SURFACE_CURVE('',#32,(#104),.PCURVE_S1.); +#141=SURFACE_CURVE('',#171,(#105),.PCURVE_S1.); +#142=EDGE_CURVE('',#172,#172,#124,.T.); +#143=EDGE_CURVE('',#173,#173,#125,.T.); +#144=EDGE_CURVE('',#174,#175,#126,.T.); +#145=EDGE_CURVE('',#175,#176,#127,.T.); +#146=EDGE_CURVE('',#176,#177,#128,.T.); +#147=EDGE_CURVE('',#177,#174,#129,.T.); +#148=EDGE_CURVE('',#178,#179,#130,.T.); +#149=EDGE_CURVE('',#179,#180,#131,.T.); +#150=EDGE_CURVE('',#180,#181,#132,.T.); +#151=EDGE_CURVE('',#181,#178,#133,.T.); +#152=EDGE_CURVE('',#182,#183,#134,.T.); +#153=EDGE_CURVE('',#183,#184,#135,.T.); +#154=EDGE_CURVE('',#184,#185,#136,.T.); +#155=EDGE_CURVE('',#185,#182,#137,.T.); +#156=EDGE_CURVE('',#186,#187,#138,.T.); +#157=EDGE_CURVE('',#187,#188,#139,.T.); +#158=EDGE_CURVE('',#188,#189,#140,.T.); +#159=EDGE_CURVE('',#189,#186,#141,.T.); +#160=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#291,#292,#293,#294,#295,#296,#297,#298,#299), + .UNSPECIFIED.,.T.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,2,2,2,3),(0.,1.5707963267949,3.14159265358979, +4.71238898038469,6.28318530717959),.UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781186548,1.,0.707106781186548,1.,0.707106781186548, +1.,0.707106781186548,1.)) +REPRESENTATION_ITEM('') +); +#161=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#300,#301,#302,#303,#304,#305,#306,#307,#308), + .UNSPECIFIED.,.T.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,2,2,2,3),(0.,1.5707963267949,3.14159265358979, +4.71238898038469,6.28318530717959),.UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781186548,1.,0.707106781186548,1.,0.707106781186548, +1.,0.707106781186548,1.)) +REPRESENTATION_ITEM('') +); +#162=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#314,#315,#316,#317,#318,#319,#320,#321,#322), + .UNSPECIFIED.,.T.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,2,2,2,3),(0.,1.5707963267949,3.14159265358979, +4.71238898038469,6.28318530717959),.UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781186548,1.,0.707106781186548,1.,0.707106781186548, +1.,0.707106781186548,1.)) +REPRESENTATION_ITEM('') +); +#163=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#323,#324,#325,#326,#327,#328,#329,#330,#331), + .UNSPECIFIED.,.T.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,2,2,2,3),(0.,1.5707963267949,3.14159265358979, +4.71238898038469,6.28318530717959),.UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781186548,1.,0.707106781186548,1.,0.707106781186548, +1.,0.707106781186548,1.)) +REPRESENTATION_ITEM('') +); +#164=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#346,#347,#348),.UNSPECIFIED.,.F.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,3),(4.71238898,6.283185308),.UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106780760479,1.)) +REPRESENTATION_ITEM('') +); +#165=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#355,#356,#357),.UNSPECIFIED.,.F.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,3),(-6.283185308,-4.71238898), + .UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106780760479,1.)) +REPRESENTATION_ITEM('') +); +#166=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#374,#375,#376),.UNSPECIFIED.,.F.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,3),(4.71238898,6.283185307),.UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781114032,1.)) +REPRESENTATION_ITEM('') +); +#167=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#383,#384,#385),.UNSPECIFIED.,.F.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,3),(-6.283185307,-4.71238898), + .UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781114032,1.)) +REPRESENTATION_ITEM('') +); +#168=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#402,#403,#404),.UNSPECIFIED.,.F.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,3),(4.71238898,6.283185307),.UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781114032,1.)) +REPRESENTATION_ITEM('') +); +#169=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#411,#412,#413),.UNSPECIFIED.,.F.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,3),(-6.283185307,-4.71238898), + .UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781114032,1.)) +REPRESENTATION_ITEM('') +); +#170=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#430,#431,#432),.UNSPECIFIED.,.F.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,3),(4.71238898,6.283185307),.UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781114032,1.)) +REPRESENTATION_ITEM('') +); +#171=( +BOUNDED_CURVE() +B_SPLINE_CURVE(2,(#439,#440,#441),.UNSPECIFIED.,.F.,.F.) +B_SPLINE_CURVE_WITH_KNOTS((3,3),(-6.283185307,-4.71238898), + .UNSPECIFIED.) +CURVE() +GEOMETRIC_REPRESENTATION_ITEM() +RATIONAL_B_SPLINE_CURVE((1.,0.707106781114032,1.)) +REPRESENTATION_ITEM('') +); +#172=VERTEX_POINT('',#290); +#173=VERTEX_POINT('',#313); +#174=VERTEX_POINT('',#338); +#175=VERTEX_POINT('',#339); +#176=VERTEX_POINT('',#340); +#177=VERTEX_POINT('',#341); +#178=VERTEX_POINT('',#366); +#179=VERTEX_POINT('',#367); +#180=VERTEX_POINT('',#368); +#181=VERTEX_POINT('',#369); +#182=VERTEX_POINT('',#394); +#183=VERTEX_POINT('',#395); +#184=VERTEX_POINT('',#396); +#185=VERTEX_POINT('',#397); +#186=VERTEX_POINT('',#422); +#187=VERTEX_POINT('',#423); +#188=VERTEX_POINT('',#424); +#189=VERTEX_POINT('',#425); +#190=B_SPLINE_SURFACE_WITH_KNOTS('',1,1,((#286,#287),(#288,#289)), + .UNSPECIFIED.,.F.,.F.,.F.,(2,2),(2,2),(-1500.,1500.),(-1500.,1500.), + .UNSPECIFIED.); +#191=B_SPLINE_SURFACE_WITH_KNOTS('',1,1,((#309,#310),(#311,#312)), + .UNSPECIFIED.,.F.,.F.,.F.,(2,2),(2,2),(-1500.,1500.),(-1500.,1500.), + .UNSPECIFIED.); +#192=SHAPE_DEFINITION_REPRESENTATION(#193,#278); +#193=PRODUCT_DEFINITION_SHAPE('Document','',#195); +#194=PRODUCT_DEFINITION_CONTEXT('3D Mechanical Parts',#267,'design'); +#195=PRODUCT_DEFINITION('A','First version',#237,#194); +#196=DATE_TIME_ROLE('classification_date'); +#197=DATE_TIME_ROLE('creation_date'); +#198=APPLIED_DATE_AND_TIME_ASSIGNMENT(#222,#196,(#201)); +#199=APPLIED_DATE_AND_TIME_ASSIGNMENT(#224,#197,(#195)); +#200=SECURITY_CLASSIFICATION_LEVEL('unclassified'); +#201=SECURITY_CLASSIFICATION('A','Security for version',#200); +#202=APPLIED_SECURITY_CLASSIFICATION_ASSIGNMENT(#201,(#237)); +#203=APPROVAL_ROLE('Version approval'); +#204=APPROVAL_ROLE('Version Security approval'); +#205=APPROVAL_ROLE('Definition approval'); +#206=APPROVAL_PERSON_ORGANIZATION(#255,#231,#203); +#207=APPROVAL_PERSON_ORGANIZATION(#256,#232,#204); +#208=APPROVAL_PERSON_ORGANIZATION(#259,#233,#205); +#209=COORDINATED_UNIVERSAL_TIME_OFFSET(5,0,.BEHIND.); +#210=LOCAL_TIME(0,0,0.,#209); +#211=LOCAL_TIME(0,0,0.,#209); +#212=LOCAL_TIME(0,0,0.,#209); +#213=LOCAL_TIME(0,0,0.,#209); +#214=LOCAL_TIME(0,0,0.,#209); +#215=CALENDAR_DATE(1999,1,1); +#216=CALENDAR_DATE(1999,1,1); +#217=CALENDAR_DATE(1999,1,1); +#218=CALENDAR_DATE(1999,1,1); +#219=CALENDAR_DATE(1999,1,1); +#220=DATE_AND_TIME(#215,#210); +#221=DATE_AND_TIME(#216,#211); +#222=DATE_AND_TIME(#217,#212); +#223=DATE_AND_TIME(#218,#213); +#224=DATE_AND_TIME(#219,#214); +#225=APPROVAL_DATE_TIME(#220,#231); +#226=APPROVAL_DATE_TIME(#221,#232); +#227=APPROVAL_DATE_TIME(#223,#233); +#228=APPROVAL_STATUS('not_yet_approved'); +#229=APPROVAL_STATUS('not_yet_approved'); +#230=APPROVAL_STATUS('approved'); +#231=APPROVAL(#228,'Version approval'); +#232=APPROVAL(#229,'Version Security approval'); +#233=APPROVAL(#230,'Definition approval'); +#234=APPLIED_APPROVAL_ASSIGNMENT(#231,(#237)); +#235=APPLIED_APPROVAL_ASSIGNMENT(#232,(#201)); +#236=APPLIED_APPROVAL_ASSIGNMENT(#233,(#195)); +#237=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('A', +'First version',#269,.MADE.); +#238=PERSON_AND_ORGANIZATION_ROLE('design_owner'); +#239=PERSON_AND_ORGANIZATION_ROLE('creator'); +#240=PERSON_AND_ORGANIZATION_ROLE('design_supplier'); +#241=PERSON_AND_ORGANIZATION_ROLE('classification_officer'); +#242=PERSON_AND_ORGANIZATION_ROLE('creator'); +#243=ORGANIZATION('STI','lab','lab'); +#244=ORGANIZATION('STI','unknown','unknown'); +#245=ORGANIZATION('STI','unknown','unknown'); +#246=ORGANIZATION('STI','unknown','unknown'); +#247=ORGANIZATION('STI','unknown','unknown'); +#248=ORGANIZATION('STI','unknown','unknown'); +#249=ORGANIZATION('STI','unknown','unknown'); +#250=PERSON('1','Box','vc60',$,$,$); +#251=PERSON('2','last','first',$,$,$); +#252=PERSON('3','President','Mr.',$,$,$); +#253=PERSON_AND_ORGANIZATION(#250,#243); +#254=PERSON_AND_ORGANIZATION(#251,#244); +#255=PERSON_AND_ORGANIZATION(#252,#245); +#256=PERSON_AND_ORGANIZATION(#252,#246); +#257=PERSON_AND_ORGANIZATION(#252,#247); +#258=PERSON_AND_ORGANIZATION(#251,#248); +#259=PERSON_AND_ORGANIZATION(#252,#249); +#260=APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT(#253,#238,(#269)); +#261=APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT(#254,#239,(#237)); +#262=APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT(#254,#240,(#237)); +#263=APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT(#257,#241,(#201)); +#264=APPLIED_PERSON_AND_ORGANIZATION_ASSIGNMENT(#258,#242,(#195)); +#265=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','detail',(#269)); +#266=APPLICATION_PROTOCOL_DEFINITION('International Standard', +'config_control_design',1994,#267); +#267=APPLICATION_CONTEXT( +'configuration controlled 3d designs of mechanical parts and assemblie +s'); +#268=PRODUCT_CONTEXT('3D Mechanical Parts',#267,'mechanical'); +#269=PRODUCT('Document','Document','Rhino converted to STEP',(#268)); +#270=( +LENGTH_UNIT() +NAMED_UNIT(*) +SI_UNIT(.MILLI.,.METRE.) +); +#271=( +NAMED_UNIT(*) +PLANE_ANGLE_UNIT() +SI_UNIT($,.RADIAN.) +); +#272=DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.); +#273=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.01745329252),#271); +#274=( +CONVERSION_BASED_UNIT('DEGREES',#273) +NAMED_UNIT(#272) +PLANE_ANGLE_UNIT() +); +#275=( +NAMED_UNIT(*) +SI_UNIT($,.STERADIAN.) +SOLID_ANGLE_UNIT() +); +#276=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.001),#270, +'DISTANCE_ACCURACY_VALUE', +'Maximum model space distance between geometric entities at asserted c +onnectivities'); +#277=( +GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#276)) +GLOBAL_UNIT_ASSIGNED_CONTEXT((#275,#274,#270)) +REPRESENTATION_CONTEXT('ID1','3D') +); +#278=SHAPE_REPRESENTATION('Document',(#279,#280),#277); +#279=AXIS2_PLACEMENT_3D('',#285,#281,#282); +#280=AXIS2_PLACEMENT_3D('',#444,#283,#284); +#281=DIRECTION('',(0.,0.,1.)); +#282=DIRECTION('',(1.,0.,0.)); +#283=DIRECTION('',(0.,0.,1.)); +#284=DIRECTION('',(1.,0.,0.)); +#285=CARTESIAN_POINT('',(0.,0.,0.)); +#286=CARTESIAN_POINT('',(-1500.,-1500.,10000.)); +#287=CARTESIAN_POINT('',(-1500.,1500.,10000.)); +#288=CARTESIAN_POINT('',(1500.,-1500.,10000.)); +#289=CARTESIAN_POINT('',(1500.,1500.,10000.)); +#290=CARTESIAN_POINT('',(1000.,0.,10000.)); +#291=CARTESIAN_POINT('',(1000.,0.,10000.)); +#292=CARTESIAN_POINT('',(1000.,1000.,10000.)); +#293=CARTESIAN_POINT('',(6.12323399573677E-14,1000.,10000.)); +#294=CARTESIAN_POINT('',(-1000.,1000.,10000.)); +#295=CARTESIAN_POINT('',(-1000.,1.22464679914735E-13,10000.)); +#296=CARTESIAN_POINT('',(-1000.,-1000.,10000.)); +#297=CARTESIAN_POINT('',(-1.83697019872103E-13,-1000.,10000.)); +#298=CARTESIAN_POINT('',(1000.,-1000.,10000.)); +#299=CARTESIAN_POINT('',(1000.,0.,10000.)); +#300=CARTESIAN_POINT('',(1000.,-1.22464679914735E-13)); +#301=CARTESIAN_POINT('',(1000.,1000.)); +#302=CARTESIAN_POINT('',(6.12323399573677E-14,1000.)); +#303=CARTESIAN_POINT('',(-1000.,1000.)); +#304=CARTESIAN_POINT('',(-1000.,1.22464679914735E-13)); +#305=CARTESIAN_POINT('',(-1000.,-1000.)); +#306=CARTESIAN_POINT('',(-1.83697019872103E-13,-1000.)); +#307=CARTESIAN_POINT('',(1000.,-1000.)); +#308=CARTESIAN_POINT('',(1000.,-1.22464679914735E-13)); +#309=CARTESIAN_POINT('',(-1500.,1500.,0.)); +#310=CARTESIAN_POINT('',(-1500.,-1500.,0.)); +#311=CARTESIAN_POINT('',(1500.,1500.,0.)); +#312=CARTESIAN_POINT('',(1500.,-1500.,0.)); +#313=CARTESIAN_POINT('',(1000.,0.,0.)); +#314=CARTESIAN_POINT('',(1000.,0.,0.)); +#315=CARTESIAN_POINT('',(1000.,-1000.,0.)); +#316=CARTESIAN_POINT('',(6.12323399573677E-14,-1000.,0.)); +#317=CARTESIAN_POINT('',(-1000.,-1000.,0.)); +#318=CARTESIAN_POINT('',(-1000.,-1.22464679914735E-13,0.)); +#319=CARTESIAN_POINT('',(-1000.,1000.,0.)); +#320=CARTESIAN_POINT('',(-1.83697019872103E-13,1000.,0.)); +#321=CARTESIAN_POINT('',(1000.,1000.,0.)); +#322=CARTESIAN_POINT('',(1000.,0.,0.)); +#323=CARTESIAN_POINT('',(1000.,-1.22464679914735E-13)); +#324=CARTESIAN_POINT('',(1000.,1000.)); +#325=CARTESIAN_POINT('',(6.12323399573677E-14,1000.)); +#326=CARTESIAN_POINT('',(-1000.,1000.)); +#327=CARTESIAN_POINT('',(-1000.,1.22464679914735E-13)); +#328=CARTESIAN_POINT('',(-1000.,-1000.)); +#329=CARTESIAN_POINT('',(-1.83697019872103E-13,-1000.)); +#330=CARTESIAN_POINT('',(1000.,-1000.)); +#331=CARTESIAN_POINT('',(1000.,-1.22464679914735E-13)); +#332=CARTESIAN_POINT('',(-3.591724924E-07,-1000.,10000.)); +#333=CARTESIAN_POINT('',(1000.00000084593,-1000.00000035917,10000.)); +#334=CARTESIAN_POINT('',(1000.,8.45931018855702E-07,10000.)); +#335=CARTESIAN_POINT('',(-3.591724924E-07,-1000.,-1.09139364212751E-11)); +#336=CARTESIAN_POINT('',(1000.00000084593,-1000.00000035917,-1.09139364212751E-11)); +#337=CARTESIAN_POINT('',(1000.,8.45931018855702E-07,-1.09139364212751E-11)); +#338=CARTESIAN_POINT('',(-5.51517390997189E-07,-1000.,10000.)); +#339=CARTESIAN_POINT('',(-5.51517390997189E-07,-1000.,-5.45696820790076E-12)); +#340=CARTESIAN_POINT('',(1000.,5.10343646306623E-08,-1.091393642E-11)); +#341=CARTESIAN_POINT('',(1000.,5.10343646306623E-08,10000.)); +#342=CARTESIAN_POINT('',(-3.591724924E-07,-1000.,10000.)); +#343=CARTESIAN_POINT('',(-3.591724924E-07,-1000.,-1.091393642E-11)); +#344=CARTESIAN_POINT('',(0.,4.71238898)); +#345=CARTESIAN_POINT('',(1.,4.71238898)); +#346=CARTESIAN_POINT('',(-7.43862289594378E-07,-1000.,4.19847998800213E-21)); +#347=CARTESIAN_POINT('',(1000.00000046124,-1000.00000074386,-1.09139364289539E-11)); +#348=CARTESIAN_POINT('',(1000.,4.61241221661325E-07,-1.091393642E-11)); +#349=CARTESIAN_POINT('',(1.,4.71238898)); +#350=CARTESIAN_POINT('',(1.,6.283185308)); +#351=CARTESIAN_POINT('',(1000.,-3.591724924E-07,-1.091393642E-11)); +#352=CARTESIAN_POINT('',(1000.,-3.591724924E-07,10000.)); +#353=CARTESIAN_POINT('',(1.,6.283185308)); +#354=CARTESIAN_POINT('',(0.,6.283185308)); +#355=CARTESIAN_POINT('',(1000.,4.61241221661325E-07,10000.)); +#356=CARTESIAN_POINT('',(1000.00000046124,-1000.00000074386,10000.)); +#357=CARTESIAN_POINT('',(-7.43862289594378E-07,-1000.,10000.)); +#358=CARTESIAN_POINT('',(0.,6.283185308)); +#359=CARTESIAN_POINT('',(0.,4.71238898)); +#360=CARTESIAN_POINT('',(-1000.,-4.357241234E-07,10000.)); +#361=CARTESIAN_POINT('',(-999.999999564276,-1000.00000064083,10000.)); +#362=CARTESIAN_POINT('',(6.40827551915331E-07,-1000.,10000.)); +#363=CARTESIAN_POINT('',(-1000.,-4.357241234E-07,-7.27595761418343E-12)); +#364=CARTESIAN_POINT('',(-999.999999564276,-1000.00000064083,-7.27595761418343E-12)); +#365=CARTESIAN_POINT('',(6.40827551915331E-07,-1000.,-7.27595761418343E-12)); +#366=CARTESIAN_POINT('',(-1000.,-2.43379224802811E-07,10000.)); +#367=CARTESIAN_POINT('',(-1000.,-2.43379224802811E-07,-3.63797880560051E-12)); +#368=CARTESIAN_POINT('',(3.45930939060477E-07,-1000.,-7.275957614E-12)); +#369=CARTESIAN_POINT('',(3.45930939060477E-07,-1000.,10000.)); +#370=CARTESIAN_POINT('',(-1000.,-4.357241234E-07,10000.)); +#371=CARTESIAN_POINT('',(-1000.,-4.357241234E-07,-7.275957614E-12)); +#372=CARTESIAN_POINT('',(0.,4.71238898)); +#373=CARTESIAN_POINT('',(1.,4.71238898)); +#374=CARTESIAN_POINT('',(-1000.,-5.10343262056225E-08,2.79898665892455E-21)); +#375=CARTESIAN_POINT('',(-999.999999948966,-1000.00000025614,-7.27595761269334E-12)); +#376=CARTESIAN_POINT('',(2.56137754720954E-07,-1000.,-7.275957614E-12)); +#377=CARTESIAN_POINT('',(1.,4.71238898)); +#378=CARTESIAN_POINT('',(1.,6.283185307)); +#379=CARTESIAN_POINT('',(4.357241234E-07,-1000.,-7.275957614E-12)); +#380=CARTESIAN_POINT('',(4.357241234E-07,-1000.,10000.)); +#381=CARTESIAN_POINT('',(1.,6.283185307)); +#382=CARTESIAN_POINT('',(0.,6.283185307)); +#383=CARTESIAN_POINT('',(2.56137754720954E-07,-1000.,10000.)); +#384=CARTESIAN_POINT('',(-999.999999948966,-1000.00000025614,10000.)); +#385=CARTESIAN_POINT('',(-1000.,-5.10343262056225E-08,10000.)); +#386=CARTESIAN_POINT('',(0.,6.283185307)); +#387=CARTESIAN_POINT('',(0.,4.71238898)); +#388=CARTESIAN_POINT('',(-2.306207333E-07,1000.,10000.)); +#389=CARTESIAN_POINT('',(-1000.00000043572,999.999999769379,10000.)); +#390=CARTESIAN_POINT('',(-1000.,-4.35724161815331E-07,10000.)); +#391=CARTESIAN_POINT('',(-2.306207333E-07,1000.,-5.45696821063757E-12)); +#392=CARTESIAN_POINT('',(-1000.00000043572,999.999999769379,-5.45696821063757E-12)); +#393=CARTESIAN_POINT('',(-1000.,-4.35724161815331E-07,-5.45696821063757E-12)); +#394=CARTESIAN_POINT('',(-3.82758347028112E-08,1000.,10000.)); +#395=CARTESIAN_POINT('',(-3.82758347028112E-08,1000.,-2.72848410445038E-12)); +#396=CARTESIAN_POINT('',(-1000.,-1.40827548960477E-07,-5.456968211E-12)); +#397=CARTESIAN_POINT('',(-1000.,-1.40827548960477E-07,10000.)); +#398=CARTESIAN_POINT('',(-2.306207333E-07,1000.,10000.)); +#399=CARTESIAN_POINT('',(-2.306207333E-07,1000.,-5.456968211E-12)); +#400=CARTESIAN_POINT('',(0.,4.71238898)); +#401=CARTESIAN_POINT('',(1.,4.71238898)); +#402=CARTESIAN_POINT('',(1.54069063894378E-07,1000.,2.09923999438576E-21)); +#403=CARTESIAN_POINT('',(-1000.00000005103,1000.00000015407,-5.45696821002E-12)); +#404=CARTESIAN_POINT('',(-1000.,-5.10343646209536E-08,-5.456968211E-12)); +#405=CARTESIAN_POINT('',(1.,4.71238898)); +#406=CARTESIAN_POINT('',(1.,6.283185307)); +#407=CARTESIAN_POINT('',(-1000.,-2.306207333E-07,-5.456968211E-12)); +#408=CARTESIAN_POINT('',(-1000.,-2.306207333E-07,10000.)); +#409=CARTESIAN_POINT('',(1.,6.283185307)); +#410=CARTESIAN_POINT('',(0.,6.283185307)); +#411=CARTESIAN_POINT('',(-1000.,-5.10343646209536E-08,10000.)); +#412=CARTESIAN_POINT('',(-1000.00000005103,1000.00000015407,10000.)); +#413=CARTESIAN_POINT('',(1.54069063894378E-07,1000.,10000.)); +#414=CARTESIAN_POINT('',(0.,6.283185307)); +#415=CARTESIAN_POINT('',(0.,4.71238898)); +#416=CARTESIAN_POINT('',(1000.,2.5517366E-08,10000.)); +#417=CARTESIAN_POINT('',(999.999999974483,1000.00000023062,10000.)); +#418=CARTESIAN_POINT('',(-2.30620794515331E-07,1000.,10000.)); +#419=CARTESIAN_POINT('',(1000.,2.5517366E-08,0.)); +#420=CARTESIAN_POINT('',(999.999999974483,1000.00000023062,0.)); +#421=CARTESIAN_POINT('',(-2.30620794515331E-07,1000.,0.)); +#422=CARTESIAN_POINT('',(1000.,-1.66827532597189E-07,10000.)); +#423=CARTESIAN_POINT('',(1000.,-1.66827532597189E-07,0.)); +#424=CARTESIAN_POINT('',(6.42758183395232E-08,1000.,0.)); +#425=CARTESIAN_POINT('',(6.42758183395232E-08,1000.,10000.)); +#426=CARTESIAN_POINT('',(1000.,2.5517366E-08,10000.)); +#427=CARTESIAN_POINT('',(1000.,2.5517366E-08,0.)); +#428=CARTESIAN_POINT('',(0.,4.71238898)); +#429=CARTESIAN_POINT('',(1.,4.71238898)); +#430=CARTESIAN_POINT('',(1000.,-3.59172431194378E-07,0.)); +#431=CARTESIAN_POINT('',(1000.00000035917,999.999999845931,0.)); +#432=CARTESIAN_POINT('',(1.54069002679046E-07,1000.,0.)); +#433=CARTESIAN_POINT('',(1.,4.71238898)); +#434=CARTESIAN_POINT('',(1.,6.283185307)); +#435=CARTESIAN_POINT('',(-2.5517366E-08,1000.,0.)); +#436=CARTESIAN_POINT('',(-2.5517366E-08,1000.,10000.)); +#437=CARTESIAN_POINT('',(1.,6.283185307)); +#438=CARTESIAN_POINT('',(0.,6.283185307)); +#439=CARTESIAN_POINT('',(1.54069002679046E-07,1000.,10000.)); +#440=CARTESIAN_POINT('',(1000.00000035917,999.999999845931,10000.)); +#441=CARTESIAN_POINT('',(1000.,-3.59172431194378E-07,10000.)); +#442=CARTESIAN_POINT('',(0.,6.283185307)); +#443=CARTESIAN_POINT('',(0.,4.71238898)); +#444=CARTESIAN_POINT('',(0.,0.,0.)); +#445=( +GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() +REPRESENTATION_CONTEXT('pspace','') +); +ENDSEC; +END-ISO-10303-21; diff --git a/tests/test_datasets/test_pipe_out_true.step b/tests/test_datasets/test_pipe_out_true.step new file mode 100644 index 0000000..a97de9a --- /dev/null +++ b/tests/test_datasets/test_pipe_out_true.step @@ -0,0 +1,1408 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('Open CASCADE Model'),'2;1'); +FILE_NAME('Open CASCADE Shape Model','2016-11-24T19:51:34',('Author'),( + 'Open CASCADE'),'Open CASCADE STEP processor 6.7','Open CASCADE 6.7' + ,'Unknown'); +FILE_SCHEMA(('AUTOMOTIVE_DESIGN_CC2 { 1 2 10303 214 -1 1 5 4 }')); +ENDSEC; +DATA; +#1 = APPLICATION_PROTOCOL_DEFINITION('international standard', + 'config_control_design',1994,#2); +#2 = APPLICATION_CONTEXT( +'configuration controlled 3D designs of mechanical parts and assemblies' + ); +#3 = SHAPE_DEFINITION_REPRESENTATION(#4,#10); +#4 = PRODUCT_DEFINITION_SHAPE('','',#5); +#5 = PRODUCT_DEFINITION('design','',#6,#9); +#6 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#7, + .NOT_KNOWN.); +#7 = PRODUCT('Open CASCADE STEP translator 6.7 1', + 'Open CASCADE STEP translator 6.7 1','',(#8)); +#8 = MECHANICAL_CONTEXT('',#2,'mechanical'); +#9 = DESIGN_CONTEXT('',#2,'design'); +#10 = SHAPE_REPRESENTATION('',(#11,#15,#19,#23,#27,#31,#35),#39); +#11 = AXIS2_PLACEMENT_3D('',#12,#13,#14); +#12 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.E+000)); +#13 = DIRECTION('',(0.E+000,0.E+000,1.)); +#14 = DIRECTION('',(1.,0.E+000,-0.E+000)); +#15 = AXIS2_PLACEMENT_3D('',#16,#17,#18); +#16 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.E+000)); +#17 = DIRECTION('',(0.E+000,0.E+000,1.)); +#18 = DIRECTION('',(1.,0.E+000,-0.E+000)); +#19 = AXIS2_PLACEMENT_3D('',#20,#21,#22); +#20 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.E+000)); +#21 = DIRECTION('',(0.E+000,0.E+000,1.)); +#22 = DIRECTION('',(1.,0.E+000,-0.E+000)); +#23 = AXIS2_PLACEMENT_3D('',#24,#25,#26); +#24 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.E+000)); +#25 = DIRECTION('',(0.E+000,0.E+000,1.)); +#26 = DIRECTION('',(1.,0.E+000,-0.E+000)); +#27 = AXIS2_PLACEMENT_3D('',#28,#29,#30); +#28 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.E+000)); +#29 = DIRECTION('',(0.E+000,0.E+000,1.)); +#30 = DIRECTION('',(1.,0.E+000,-0.E+000)); +#31 = AXIS2_PLACEMENT_3D('',#32,#33,#34); +#32 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.E+000)); +#33 = DIRECTION('',(0.E+000,0.E+000,1.)); +#34 = DIRECTION('',(1.,0.E+000,-0.E+000)); +#35 = AXIS2_PLACEMENT_3D('',#36,#37,#38); +#36 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.E+000)); +#37 = DIRECTION('',(0.E+000,0.E+000,1.)); +#38 = DIRECTION('',(1.,0.E+000,-0.E+000)); +#39 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#43)) GLOBAL_UNIT_ASSIGNED_CONTEXT( +(#40,#41,#42)) REPRESENTATION_CONTEXT('Context #1', + '3D Context with UNIT and UNCERTAINTY') ); +#40 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); +#41 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); +#42 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); +#43 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-006),#40, + 'distance_accuracy_value','confusion accuracy'); +#44 = PRODUCT_RELATED_PRODUCT_CATEGORY('detail',$,(#7)); +#45 = PRODUCT_CATEGORY_RELATIONSHIP('','',#46,#44); +#46 = PRODUCT_CATEGORY('part',$); +#47 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#51,(#6,#5)); +#48 = PERSON_AND_ORGANIZATION(#49,#50); +#49 = PERSON('IP130.144.071.000,3517248','','',$,$,$); +#50 = ORGANIZATION('IP130.144.071.000','Unspecified',''); +#51 = PERSON_AND_ORGANIZATION_ROLE('creator'); +#52 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#53,(#7)); +#53 = PERSON_AND_ORGANIZATION_ROLE('design_owner'); +#54 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#55,(#6)); +#55 = PERSON_AND_ORGANIZATION_ROLE('design_supplier'); +#56 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#58)); +#57 = PERSON_AND_ORGANIZATION_ROLE('classification_officer'); +#58 = SECURITY_CLASSIFICATION('','',#59); +#59 = SECURITY_CLASSIFICATION_LEVEL('unclassified'); +#60 = CC_DESIGN_SECURITY_CLASSIFICATION(#58,(#6)); +#61 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#66,(#5)); +#62 = DATE_AND_TIME(#63,#64); +#63 = CALENDAR_DATE(2016,24,11); +#64 = LOCAL_TIME(19,51,$,#65); +#65 = COORDINATED_UNIVERSAL_TIME_OFFSET(1,$,.AHEAD.); +#66 = DATE_TIME_ROLE('creation_date'); +#67 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#58)); +#68 = DATE_TIME_ROLE('classification_date'); +#69 = CC_DESIGN_APPROVAL(#70,(#6,#5,#58)); +#70 = APPROVAL(#71,''); +#71 = APPROVAL_STATUS('not_yet_approved'); +#72 = APPROVAL_PERSON_ORGANIZATION(#48,#70,#73); +#73 = APPROVAL_ROLE('approver'); +#74 = APPROVAL_DATE_TIME(#62,#70); +#75 = MANIFOLD_SURFACE_SHAPE_REPRESENTATION('',(#11,#76),#126); +#76 = SHELL_BASED_SURFACE_MODEL('',(#77)); +#77 = OPEN_SHELL('',(#78)); +#78 = ADVANCED_FACE('',(#79),#109,.T.); +#79 = FACE_BOUND('',#80,.T.); +#80 = EDGE_LOOP('',(#81)); +#81 = ORIENTED_EDGE('',*,*,#82,.T.); +#82 = EDGE_CURVE('',#83,#83,#85,.T.); +#83 = VERTEX_POINT('',#84); +#84 = CARTESIAN_POINT('',(1.125183333333E+003,-1.224646799147E-013, + 1.E+004)); +#85 = SURFACE_CURVE('',#86,(#108),.PCURVE_S1.); +#86 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#87,#88,#89,#90,#91,#92,#93,#94, + #95,#96,#97,#98,#99,#100,#101,#102,#103,#104,#105,#106,#107), + .UNSPECIFIED.,.T.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2),( + 0.E+000,0.314159265359,0.628318530718,0.942477796077,1.256637061436, + 1.570796326795,1.884955592154,2.199114857513,2.513274122872, + 2.827433388231,3.14159265359,3.455751918949,3.769911184308, + 4.084070449667,4.398229715026,4.712388980385,5.026548245744, + 5.340707511103,5.654866776462,5.969026041821,6.28318530718), + .PIECEWISE_BEZIER_KNOTS.); +#87 = CARTESIAN_POINT('',(1.125183333333E+003,-1.224646799147E-013, + 1.E+004)); +#88 = CARTESIAN_POINT('',(1.065412225436E+003,293.81193771158,1.E+004)); +#89 = CARTESIAN_POINT('',(919.06672423004,581.10858111491,1.E+004)); +#90 = CARTESIAN_POINT('',(686.34926929388,813.82603605107,1.E+004)); +#91 = CARTESIAN_POINT('',(403.36091704071,955.86324610697,1.E+004)); +#92 = CARTESIAN_POINT('',(125.18333333333,1.E+003,1.E+004)); +#93 = CARTESIAN_POINT('',(-130.8935064746,955.86324610697,1.E+004)); +#94 = CARTESIAN_POINT('',(-342.7590930791,813.82603605107,1.E+004)); +#95 = CARTESIAN_POINT('',(-458.9471610803,581.10858111491,1.E+004)); +#96 = CARTESIAN_POINT('',(-461.4336563795,293.81193771158,1.E+004)); +#97 = CARTESIAN_POINT('',(-374.0833333333,-4.275563696116E-012,1.E+004) + ); +#98 = CARTESIAN_POINT('',(-220.5602464004,-293.8119377115,1.E+004)); +#99 = CARTESIAN_POINT('',(-10.09508723652,-581.1085811149,1.E+004)); +#100 = CARTESIAN_POINT('',(222.62236769963,-813.826036051,1.E+004)); +#101 = CARTESIAN_POINT('',(441.49106199495,-955.8632461069,1.E+004)); +#102 = CARTESIAN_POINT('',(625.91666666666,-1.E+003,1.E+004)); +#103 = CARTESIAN_POINT('',(788.24152743901,-955.8632461069,1.E+004)); +#104 = CARTESIAN_POINT('',(935.98745608567,-813.826036051,1.E+004)); +#105 = CARTESIAN_POINT('',(1.052175524087E+003,-581.1085811149,1.E+004) + ); +#106 = CARTESIAN_POINT('',(1.118781677344E+003,-293.8119377115,1.E+004) + ); +#107 = CARTESIAN_POINT('',(1.125183333333E+003,-1.224646799147E-013, + 1.E+004)); +#108 = PCURVE('',#109,#114); +#109 = B_SPLINE_SURFACE_WITH_KNOTS('',1,1,( + (#110,#111) + ,(#112,#113 + )),.UNSPECIFIED.,.F.,.F.,.F.,(2,2),(2,2),(-1.5E+003,1.5E+003),( + -1.5E+003,1.5E+003),.PIECEWISE_BEZIER_KNOTS.); +#110 = CARTESIAN_POINT('',(2.2,-1.5E+003,1.E+004)); +#111 = CARTESIAN_POINT('',(-1.5E+003,1.5E+003,1.E+004)); +#112 = CARTESIAN_POINT('',(1.5E+003,-1.5E+003,1.E+004)); +#113 = CARTESIAN_POINT('',(1.5E+003,1.5E+003,1.E+004)); +#114 = DEFINITIONAL_REPRESENTATION('',(#115),#125); +#115 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#116,#117,#118,#119,#120,#121 +,#122,#123,#124),.UNSPECIFIED.,.F.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2 + ,2,2,2,1),(-1.570796326795,0.E+000,1.570796326795,3.14159265359, +4.712388980385,6.28318530718,7.853981633974),.UNSPECIFIED.) CURVE() +GEOMETRIC_REPRESENTATION_ITEM() RATIONAL_B_SPLINE_CURVE((1., + 0.707106781187,1.,0.707106781187,1.,0.707106781187,1.,0.707106781187 +,1.)) REPRESENTATION_ITEM('') ); +#116 = CARTESIAN_POINT('',(1.E+003,-1.224646799147E-013)); +#117 = CARTESIAN_POINT('',(1.E+003,1.E+003)); +#118 = CARTESIAN_POINT('',(6.123233995737E-014,1.E+003)); +#119 = CARTESIAN_POINT('',(-1.E+003,1.E+003)); +#120 = CARTESIAN_POINT('',(-1.E+003,1.224646799147E-013)); +#121 = CARTESIAN_POINT('',(-1.E+003,-1.E+003)); +#122 = CARTESIAN_POINT('',(-1.836970198721E-013,-1.E+003)); +#123 = CARTESIAN_POINT('',(1.E+003,-1.E+003)); +#124 = CARTESIAN_POINT('',(1.E+003,-1.224646799147E-013)); +#125 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#126 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#130)) GLOBAL_UNIT_ASSIGNED_CONTEXT +((#127,#128,#129)) REPRESENTATION_CONTEXT('Context #1', + '3D Context with UNIT and UNCERTAINTY') ); +#127 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); +#128 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); +#129 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); +#130 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-006),#127, + 'distance_accuracy_value','confusion accuracy'); +#131 = SHAPE_DEFINITION_REPRESENTATION(#132,#75); +#132 = PRODUCT_DEFINITION_SHAPE('','',#133); +#133 = PRODUCT_DEFINITION('design','',#134,#137); +#134 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#135, + .NOT_KNOWN.); +#135 = PRODUCT('Open CASCADE STEP translator 6.7 1.1', + 'Open CASCADE STEP translator 6.7 1.1','',(#136)); +#136 = MECHANICAL_CONTEXT('',#2,'mechanical'); +#137 = DESIGN_CONTEXT('',#2,'design'); +#138 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#139,#141); +#139 = ( REPRESENTATION_RELATIONSHIP('','',#75,#10) +REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#140) +SHAPE_REPRESENTATION_RELATIONSHIP() ); +#140 = ITEM_DEFINED_TRANSFORMATION('','',#11,#15); +#141 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#142 + ); +#142 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('1','','',#5,#133,$); +#143 = CC_DESIGN_SECURITY_CLASSIFICATION(#144,(#142)); +#144 = SECURITY_CLASSIFICATION('','',#59); +#145 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#144)); +#146 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#144)); +#147 = CC_DESIGN_APPROVAL(#70,(#144)); +#148 = PRODUCT_RELATED_PRODUCT_CATEGORY('detail',$,(#135)); +#149 = PRODUCT_CATEGORY_RELATIONSHIP('','',#150,#148); +#150 = PRODUCT_CATEGORY('part',$); +#151 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#51,(#134,#133) + ); +#152 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#53,(#135)); +#153 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#55,(#134)); +#154 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#155)); +#155 = SECURITY_CLASSIFICATION('','',#59); +#156 = CC_DESIGN_SECURITY_CLASSIFICATION(#155,(#134)); +#157 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#66,(#133)); +#158 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#155)); +#159 = CC_DESIGN_APPROVAL(#70,(#134,#133,#155)); +#160 = MANIFOLD_SURFACE_SHAPE_REPRESENTATION('',(#11,#161),#211); +#161 = SHELL_BASED_SURFACE_MODEL('',(#162)); +#162 = OPEN_SHELL('',(#163)); +#163 = ADVANCED_FACE('',(#164),#194,.T.); +#164 = FACE_BOUND('',#165,.T.); +#165 = EDGE_LOOP('',(#166)); +#166 = ORIENTED_EDGE('',*,*,#167,.T.); +#167 = EDGE_CURVE('',#168,#168,#170,.T.); +#168 = VERTEX_POINT('',#169); +#169 = CARTESIAN_POINT('',(1.E+003,125.35833333333,0.E+000)); +#170 = SURFACE_CURVE('',#171,(#193),.PCURVE_S1.); +#171 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#172,#173,#174,#175,#176,#177, + #178,#179,#180,#181,#182,#183,#184,#185,#186,#187,#188,#189,#190, + #191,#192),.UNSPECIFIED.,.T.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(0.E+000,0.314159265359,0.628318530718,0.942477796077, + 1.256637061436,1.570796326795,1.884955592154,2.199114857513, + 2.513274122872,2.827433388231,3.14159265359,3.455751918949, + 3.769911184308,4.084070449667,4.398229715026,4.712388980385, + 5.026548245744,5.340707511103,5.654866776462,5.969026041821, + 6.28318530718),.PIECEWISE_BEZIER_KNOTS.); +#172 = CARTESIAN_POINT('',(1.E+003,125.35833333333,0.E+000)); +#173 = CARTESIAN_POINT('',(955.86324610697,-130.6657547068,0.E+000)); +#174 = CARTESIAN_POINT('',(813.82603605107,-342.4258924901,0.E+000)); +#175 = CARTESIAN_POINT('',(581.10858111492,-458.4510582728,0.E+000)); +#176 = CARTESIAN_POINT('',(293.81193771159,-460.7424686958,0.E+000)); +#177 = CARTESIAN_POINT('',(2.501110429876E-012,-373.2083333333,0.E+000) + ); +#178 = CARTESIAN_POINT('',(-293.8119377115,-219.5323298118,0.E+000)); +#179 = CARTESIAN_POINT('',(-581.1085811149,-8.971511818797,0.E+000)); +#180 = CARTESIAN_POINT('',(-813.826036051,223.74594311736,0.E+000)); +#181 = CARTESIAN_POINT('',(-955.8632461069,442.51897858355,0.E+000)); +#182 = CARTESIAN_POINT('',(-1.E+003,626.79166666666,0.E+000)); +#183 = CARTESIAN_POINT('',(-955.8632461069,788.93271512269,0.E+000)); +#184 = CARTESIAN_POINT('',(-813.826036051,936.48355889318,0.E+000)); +#185 = CARTESIAN_POINT('',(-581.1085811149,1.052508724676E+003,0.E+000) + ); +#186 = CARTESIAN_POINT('',(-293.8119377115,1.119009429112E+003,0.E+000) + ); +#187 = CARTESIAN_POINT('',(2.215227548872E-012,1.125358333333E+003, + 0.E+000)); +#188 = CARTESIAN_POINT('',(293.81193771159,1.065565369396E+003,0.E+000) + ); +#189 = CARTESIAN_POINT('',(581.10858111492,919.21384541575,0.E+000)); +#190 = CARTESIAN_POINT('',(813.82603605107,686.49639047959,0.E+000)); +#191 = CARTESIAN_POINT('',(955.86324610697,403.51406100063,0.E+000)); +#192 = CARTESIAN_POINT('',(1.E+003,125.35833333333,0.E+000)); +#193 = PCURVE('',#194,#199); +#194 = B_SPLINE_SURFACE_WITH_KNOTS('',1,1,( + (#195,#196) + ,(#197,#198 + )),.UNSPECIFIED.,.F.,.F.,.F.,(2,2),(2,2),(-1.5E+003,1.5E+003),( + -1.5E+003,1.5E+003),.PIECEWISE_BEZIER_KNOTS.); +#195 = CARTESIAN_POINT('',(-1.5E+003,1.5E+003,0.E+000)); +#196 = CARTESIAN_POINT('',(-1.5E+003,4.3,0.E+000)); +#197 = CARTESIAN_POINT('',(1.5E+003,1.5E+003,0.E+000)); +#198 = CARTESIAN_POINT('',(1.5E+003,-1.5E+003,0.E+000)); +#199 = DEFINITIONAL_REPRESENTATION('',(#200),#210); +#200 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#201,#202,#203,#204,#205,#206 +,#207,#208,#209),.UNSPECIFIED.,.F.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2 + ,2,2,2,1),(-1.570796326795,0.E+000,1.570796326795,3.14159265359, +4.712388980385,6.28318530718,7.853981633974),.UNSPECIFIED.) CURVE() +GEOMETRIC_REPRESENTATION_ITEM() RATIONAL_B_SPLINE_CURVE((1., + 0.707106781187,1.,0.707106781187,1.,0.707106781187,1.,0.707106781187 +,1.)) REPRESENTATION_ITEM('') ); +#201 = CARTESIAN_POINT('',(1.E+003,-1.224646799147E-013)); +#202 = CARTESIAN_POINT('',(1.E+003,1.E+003)); +#203 = CARTESIAN_POINT('',(6.123233995737E-014,1.E+003)); +#204 = CARTESIAN_POINT('',(-1.E+003,1.E+003)); +#205 = CARTESIAN_POINT('',(-1.E+003,1.224646799147E-013)); +#206 = CARTESIAN_POINT('',(-1.E+003,-1.E+003)); +#207 = CARTESIAN_POINT('',(-1.836970198721E-013,-1.E+003)); +#208 = CARTESIAN_POINT('',(1.E+003,-1.E+003)); +#209 = CARTESIAN_POINT('',(1.E+003,-1.224646799147E-013)); +#210 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#211 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#215)) GLOBAL_UNIT_ASSIGNED_CONTEXT +((#212,#213,#214)) REPRESENTATION_CONTEXT('Context #1', + '3D Context with UNIT and UNCERTAINTY') ); +#212 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); +#213 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); +#214 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); +#215 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-006),#212, + 'distance_accuracy_value','confusion accuracy'); +#216 = SHAPE_DEFINITION_REPRESENTATION(#217,#160); +#217 = PRODUCT_DEFINITION_SHAPE('','',#218); +#218 = PRODUCT_DEFINITION('design','',#219,#222); +#219 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#220, + .NOT_KNOWN.); +#220 = PRODUCT('Open CASCADE STEP translator 6.7 1.2', + 'Open CASCADE STEP translator 6.7 1.2','',(#221)); +#221 = MECHANICAL_CONTEXT('',#2,'mechanical'); +#222 = DESIGN_CONTEXT('',#2,'design'); +#223 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#224,#226); +#224 = ( REPRESENTATION_RELATIONSHIP('','',#160,#10) +REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#225) +SHAPE_REPRESENTATION_RELATIONSHIP() ); +#225 = ITEM_DEFINED_TRANSFORMATION('','',#11,#19); +#226 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#227 + ); +#227 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('2','','',#5,#218,$); +#228 = CC_DESIGN_SECURITY_CLASSIFICATION(#229,(#227)); +#229 = SECURITY_CLASSIFICATION('','',#59); +#230 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#229)); +#231 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#229)); +#232 = CC_DESIGN_APPROVAL(#70,(#229)); +#233 = PRODUCT_RELATED_PRODUCT_CATEGORY('detail',$,(#220)); +#234 = PRODUCT_CATEGORY_RELATIONSHIP('','',#235,#233); +#235 = PRODUCT_CATEGORY('part',$); +#236 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#51,(#219,#218) + ); +#237 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#53,(#220)); +#238 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#55,(#219)); +#239 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#240)); +#240 = SECURITY_CLASSIFICATION('','',#59); +#241 = CC_DESIGN_SECURITY_CLASSIFICATION(#240,(#219)); +#242 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#66,(#218)); +#243 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#240)); +#244 = CC_DESIGN_APPROVAL(#70,(#219,#218,#240)); +#245 = MANIFOLD_SURFACE_SHAPE_REPRESENTATION('',(#11,#246),#390); +#246 = SHELL_BASED_SURFACE_MODEL('',(#247)); +#247 = OPEN_SHELL('',(#248)); +#248 = ADVANCED_FACE('',(#249),#281,.T.); +#249 = FACE_BOUND('',#250,.T.); +#250 = EDGE_LOOP('',(#251,#293,#326,#359)); +#251 = ORIENTED_EDGE('',*,*,#252,.T.); +#252 = EDGE_CURVE('',#253,#255,#257,.T.); +#253 = VERTEX_POINT('',#254); +#254 = CARTESIAN_POINT('',(-3.591724464513E-007,-1.E+003,1.E+004)); +#255 = VERTEX_POINT('',#256); +#256 = CARTESIAN_POINT('',(-3.591725032948E-007,-1.E+003, + -1.091393642128E-011)); +#257 = SURFACE_CURVE('',#258,(#280),.PCURVE_S1.); +#258 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#259,#260,#261,#262,#263,#264, + #265,#266,#267,#268,#269,#270,#271,#272,#273,#274,#275,#276,#277, + #278,#279),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(0.E+000,5.E-002,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5, + 0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.), + .PIECEWISE_BEZIER_KNOTS.); +#259 = CARTESIAN_POINT('',(-3.591724464513E-007,-1.E+003,1.E+004)); +#260 = CARTESIAN_POINT('',(-3.591724492935E-007,-1.E+003,9.5E+003)); +#261 = CARTESIAN_POINT('',(-3.591724521357E-007,-1.E+003,9.E+003)); +#262 = CARTESIAN_POINT('',(-3.591724549779E-007,-1.E+003,8.5E+003)); +#263 = CARTESIAN_POINT('',(-3.5917245782E-007,-1.E+003,8.E+003)); +#264 = CARTESIAN_POINT('',(-3.591724606622E-007,-1.E+003,7.5E+003)); +#265 = CARTESIAN_POINT('',(-3.591724635044E-007,-1.E+003,7.E+003)); +#266 = CARTESIAN_POINT('',(-3.591724663465E-007,-1.E+003,6.5E+003)); +#267 = CARTESIAN_POINT('',(-3.591724691887E-007,-1.E+003,6.E+003)); +#268 = CARTESIAN_POINT('',(-3.591724720309E-007,-1.E+003,5.5E+003)); +#269 = CARTESIAN_POINT('',(-3.59172474873E-007,-1.E+003,5.E+003)); +#270 = CARTESIAN_POINT('',(-3.591724777152E-007,-1.E+003,4.5E+003)); +#271 = CARTESIAN_POINT('',(-3.591724805574E-007,-1.E+003,4.E+003)); +#272 = CARTESIAN_POINT('',(-3.591724833996E-007,-1.E+003,3.5E+003)); +#273 = CARTESIAN_POINT('',(-3.591724862417E-007,-1.E+003,3.E+003)); +#274 = CARTESIAN_POINT('',(-3.591724890839E-007,-1.E+003,2.5E+003)); +#275 = CARTESIAN_POINT('',(-3.591724919261E-007,-1.E+003,2.E+003)); +#276 = CARTESIAN_POINT('',(-3.591724947682E-007,-1.E+003,1.5E+003)); +#277 = CARTESIAN_POINT('',(-3.591724976104E-007,-1.E+003,999.99999999999 + )); +#278 = CARTESIAN_POINT('',(-3.591725004526E-007,-1.E+003,499.99999999999 + )); +#279 = CARTESIAN_POINT('',(-3.591725032948E-007,-1.E+003, + -1.091393642128E-011)); +#280 = PCURVE('',#281,#288); +#281 = ( BOUNDED_SURFACE() B_SPLINE_SURFACE(1,2,( + (#282,#283,#284) + ,(#285,#286,#287 +)),.UNSPECIFIED.,.F.,.F.,.F.) B_SPLINE_SURFACE_WITH_KNOTS((2,2),(3,3),( + 0.E+000,1.),(4.71238898,6.283185308),.PIECEWISE_BEZIER_KNOTS.) +GEOMETRIC_REPRESENTATION_ITEM() RATIONAL_B_SPLINE_SURFACE(( + (1.,0.70710678076,1.) +,(1.,0.70710678076,1.))) REPRESENTATION_ITEM('') SURFACE() ); +#282 = CARTESIAN_POINT('',(-3.591724924E-007,-1.E+003,1.E+004)); +#283 = CARTESIAN_POINT('',(1.000000000846E+003,-1.000000000359E+003,0.5) + ); +#284 = CARTESIAN_POINT('',(1.E+003,8.459310188557E-007,1.E+004)); +#285 = CARTESIAN_POINT('',(-3.591724924E-007,-1.E+003, + -1.091393642128E-011)); +#286 = CARTESIAN_POINT('',(7.2,-1.000000000359E+003,-1.091393642128E-011 + )); +#287 = CARTESIAN_POINT('',(1.E+003,8.459310188557E-007, + -1.091393642128E-011)); +#288 = DEFINITIONAL_REPRESENTATION('',(#289),#292); +#289 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#290,#291),.UNSPECIFIED.,.F.,.F., + (2,2),(0.E+000,1.),.PIECEWISE_BEZIER_KNOTS.); +#290 = CARTESIAN_POINT('',(0.E+000,4.71238898)); +#291 = CARTESIAN_POINT('',(1.,4.71238898)); +#292 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#293 = ORIENTED_EDGE('',*,*,#294,.T.); +#294 = EDGE_CURVE('',#255,#295,#297,.T.); +#295 = VERTEX_POINT('',#296); +#296 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007, + -1.091393642128E-011)); +#297 = SURFACE_CURVE('',#298,(#320),.PCURVE_S1.); +#298 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#299,#300,#301,#302,#303,#304, + #305,#306,#307,#308,#309,#310,#311,#312,#313,#314,#315,#316,#317, + #318,#319),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(4.71238898,4.7909287964,4.8694686128,4.9480084292, + 5.0265482456,5.105088062,5.1836278784,5.2621676948,5.3407075112, + 5.4192473276,5.497787144,5.5763269604,5.6548667768,5.7334065932, + 5.8119464096,5.890486226,5.9690260424,6.0475658588,6.1261056752, + 6.2046454916,6.283185308),.PIECEWISE_BEZIER_KNOTS.); +#299 = CARTESIAN_POINT('',(-3.591725032948E-007,-1.E+003, + -1.091393642128E-011)); +#300 = CARTESIAN_POINT('',(3.069056776212,-997.4284469285, + -1.122630678916E-011)); +#301 = CARTESIAN_POINT('',(11.523962375897,-989.4434505202, + -1.152135102794E-011)); +#302 = CARTESIAN_POINT('',(25.719154077622,-975.6838835078, + -1.0811963146E-011)); +#303 = CARTESIAN_POINT('',(45.934414968703,-955.8632461526, + -1.103908955193E-011)); +#304 = CARTESIAN_POINT('',(72.356456398797,-929.7883010974, + -1.123886160279E-011)); +#305 = CARTESIAN_POINT('',(105.0625799837,-897.3756500092, + -1.08892353058E-011)); +#306 = CARTESIAN_POINT('',(144.00789791316,-858.6647591909, + -1.101802737447E-011)); +#307 = CARTESIAN_POINT('',(189.01749308533,-813.8260359911, + -1.111190284706E-011)); +#308 = CARTESIAN_POINT('',(239.78461608144,-763.1628409725, + -1.11689999177E-011)); +#309 = CARTESIAN_POINT('',(295.87555642938,-707.1067810144, + -1.118816289203E-011)); +#310 = CARTESIAN_POINT('',(356.74123783905,-646.206219158, + -1.11689999177E-011)); +#311 = CARTESIAN_POINT('',(421.73494816045,-581.1085808027, + -1.111190284706E-011)); +#312 = CARTESIAN_POINT('',(490.13501841998,-512.5376385156, + -1.101802737447E-011)); +#313 = CARTESIAN_POINT('',(561.17080248337,-441.2674272875, + -1.08892353058E-011)); +#314 = CARTESIAN_POINT('',(634.05004820191,-368.0947090208, + -1.123886160279E-011)); +#315 = CARTESIAN_POINT('',(707.98572370148,-293.8119370976, + -1.103908955193E-011)); +#316 = CARTESIAN_POINT('',(782.22055786526,-219.1824793519, + -1.0811963146E-011)); +#317 = CARTESIAN_POINT('',(856.0479242062,-144.9194882788, + -1.152135102794E-011)); +#318 = CARTESIAN_POINT('',(928.82817098351,-71.66933227062, + -1.122630678916E-011)); +#319 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007, + -1.091393642128E-011)); +#320 = PCURVE('',#281,#321); +#321 = DEFINITIONAL_REPRESENTATION('',(#322),#325); +#322 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#323,#324),.UNSPECIFIED.,.F.,.F., + (2,2),(4.71238898,6.283185308),.PIECEWISE_BEZIER_KNOTS.); +#323 = CARTESIAN_POINT('',(1.,4.71238898)); +#324 = CARTESIAN_POINT('',(1.,6.283185308)); +#325 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#326 = ORIENTED_EDGE('',*,*,#327,.T.); +#327 = EDGE_CURVE('',#295,#328,#330,.T.); +#328 = VERTEX_POINT('',#329); +#329 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,1.E+004)); +#330 = SURFACE_CURVE('',#331,(#353),.PCURVE_S1.); +#331 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#332,#333,#334,#335,#336,#337, + #338,#339,#340,#341,#342,#343,#344,#345,#346,#347,#348,#349,#350, + #351,#352),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(-1.,-0.95,-0.9,-0.85,-0.8,-0.75,-0.7,-0.65,-0.6,-0.55,-0.5 + ,-0.45,-0.4,-0.35,-0.3,-0.25,-0.2,-0.15,-1.E-001,-5.E-002,0.E+000), + .UNSPECIFIED.); +#332 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007, + -1.091393642128E-011)); +#333 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,499.99999999999) + ); +#334 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,999.99999999999) + ); +#335 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,1.5E+003)); +#336 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,2.E+003)); +#337 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,2.5E+003)); +#338 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,3.E+003)); +#339 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,3.5E+003)); +#340 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,4.E+003)); +#341 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,4.5E+003)); +#342 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,5.E+003)); +#343 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,5.5E+003)); +#344 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,6.E+003)); +#345 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,6.5E+003)); +#346 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,7.E+003)); +#347 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,7.5E+003)); +#348 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,8.E+003)); +#349 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,8.5E+003)); +#350 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,9.E+003)); +#351 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,9.5E+003)); +#352 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,1.E+004)); +#353 = PCURVE('',#281,#354); +#354 = DEFINITIONAL_REPRESENTATION('',(#355),#358); +#355 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#356,#357),.UNSPECIFIED.,.F.,.F., + (2,2),(-1.,0.E+000),.PIECEWISE_BEZIER_KNOTS.); +#356 = CARTESIAN_POINT('',(1.,6.283185308)); +#357 = CARTESIAN_POINT('',(0.E+000,6.283185308)); +#358 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#359 = ORIENTED_EDGE('',*,*,#360,.T.); +#360 = EDGE_CURVE('',#328,#253,#361,.T.); +#361 = SURFACE_CURVE('',#362,(#384),.PCURVE_S1.); +#362 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#363,#364,#365,#366,#367,#368, + #369,#370,#371,#372,#373,#374,#375,#376,#377,#378,#379,#380,#381, + #382,#383),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(-6.283185308,-6.2046454916,-6.1261056752,-6.0475658588, + -5.9690260424,-5.890486226,-5.8119464096,-5.7334065932,-5.6548667768 + ,-5.5763269604,-5.497787144,-5.4192473276,-5.3407075112, + -5.2621676948,-5.1836278784,-5.105088062,-5.0265482456,-4.9480084292 + ,-4.8694686128,-4.7909287964,-4.71238898),.PIECEWISE_BEZIER_KNOTS.); +#363 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,1.E+004)); +#364 = CARTESIAN_POINT('',(997.42844696343,-71.66933227062, + 9.30905674952E+003)); +#365 = CARTESIAN_POINT('',(989.44345059078,-144.9194882788, + 8.656437787121E+003)); +#366 = CARTESIAN_POINT('',(975.68388361452,-219.1824793519, + 8.051433799173E+003)); +#367 = CARTESIAN_POINT('',(955.86324629568,-293.8119370976, + 7.503373000535E+003)); +#368 = CARTESIAN_POINT('',(929.78830127659,-368.0947090208, + 7.021318836522E+003)); +#369 = CARTESIAN_POINT('',(897.37565022404,-441.2674272875, + 6.613738545409E+003)); +#370 = CARTESIAN_POINT('',(858.66475944039,-512.5376385156, + 6.288161621481E+003)); +#371 = CARTESIAN_POINT('',(813.82603627399,-581.1085808027, + 6.050851297088E+003)); +#372 = CARTESIAN_POINT('',(763.16284128713,-646.206219158, + 5.906514081168E+003)); +#373 = CARTESIAN_POINT('',(707.10678135864,-707.1067810144, + 5.858071484512E+003)); +#374 = CARTESIAN_POINT('',(646.20621952952,-763.1628409725, + 5.906514081168E+003)); +#375 = CARTESIAN_POINT('',(581.10858119886,-813.8260359911, + 6.050851297088E+003)); +#376 = CARTESIAN_POINT('',(512.53763893358,-858.6647591909, + 6.288161621481E+003)); +#377 = CARTESIAN_POINT('',(441.26742772436,-897.3756500092, + 6.613738545409E+003)); +#378 = CARTESIAN_POINT('',(368.09470947347,-929.7883010974, + 7.021318836522E+003)); +#379 = CARTESIAN_POINT('',(293.81193756291,-955.8632461526, + 7.503373000535E+003)); +#380 = CARTESIAN_POINT('',(219.18247982688,-975.6838835078, + 8.051433799173E+003)); +#381 = CARTESIAN_POINT('',(144.91948876047,-989.4434505202, + 8.656437787121E+003)); +#382 = CARTESIAN_POINT('',(71.669332756129,-997.4284469285, + 9.30905674952E+003)); +#383 = CARTESIAN_POINT('',(-3.591724464513E-007,-1.E+003,1.E+004)); +#384 = PCURVE('',#281,#385); +#385 = DEFINITIONAL_REPRESENTATION('',(#386),#389); +#386 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#387,#388),.UNSPECIFIED.,.F.,.F., + (2,2),(-6.283185308,-4.71238898),.PIECEWISE_BEZIER_KNOTS.); +#387 = CARTESIAN_POINT('',(0.E+000,6.283185308)); +#388 = CARTESIAN_POINT('',(0.E+000,4.71238898)); +#389 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#390 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#394)) GLOBAL_UNIT_ASSIGNED_CONTEXT +((#391,#392,#393)) REPRESENTATION_CONTEXT('Context #1', + '3D Context with UNIT and UNCERTAINTY') ); +#391 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); +#392 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); +#393 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); +#394 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-006),#391, + 'distance_accuracy_value','confusion accuracy'); +#395 = SHAPE_DEFINITION_REPRESENTATION(#396,#245); +#396 = PRODUCT_DEFINITION_SHAPE('','',#397); +#397 = PRODUCT_DEFINITION('design','',#398,#401); +#398 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#399, + .NOT_KNOWN.); +#399 = PRODUCT('Open CASCADE STEP translator 6.7 1.3', + 'Open CASCADE STEP translator 6.7 1.3','',(#400)); +#400 = MECHANICAL_CONTEXT('',#2,'mechanical'); +#401 = DESIGN_CONTEXT('',#2,'design'); +#402 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#403,#405); +#403 = ( REPRESENTATION_RELATIONSHIP('','',#245,#10) +REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#404) +SHAPE_REPRESENTATION_RELATIONSHIP() ); +#404 = ITEM_DEFINED_TRANSFORMATION('','',#11,#23); +#405 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#406 + ); +#406 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('3','','',#5,#397,$); +#407 = CC_DESIGN_SECURITY_CLASSIFICATION(#408,(#406)); +#408 = SECURITY_CLASSIFICATION('','',#59); +#409 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#408)); +#410 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#408)); +#411 = CC_DESIGN_APPROVAL(#70,(#408)); +#412 = PRODUCT_RELATED_PRODUCT_CATEGORY('detail',$,(#399)); +#413 = PRODUCT_CATEGORY_RELATIONSHIP('','',#414,#412); +#414 = PRODUCT_CATEGORY('part',$); +#415 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#51,(#398,#397) + ); +#416 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#53,(#399)); +#417 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#55,(#398)); +#418 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#419)); +#419 = SECURITY_CLASSIFICATION('','',#59); +#420 = CC_DESIGN_SECURITY_CLASSIFICATION(#419,(#398)); +#421 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#66,(#397)); +#422 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#419)); +#423 = CC_DESIGN_APPROVAL(#70,(#398,#397,#419)); +#424 = MANIFOLD_SURFACE_SHAPE_REPRESENTATION('',(#11,#425),#569); +#425 = SHELL_BASED_SURFACE_MODEL('',(#426)); +#426 = OPEN_SHELL('',(#427)); +#427 = ADVANCED_FACE('',(#428),#460,.T.); +#428 = FACE_BOUND('',#429,.T.); +#429 = EDGE_LOOP('',(#430,#472,#505,#538)); +#430 = ORIENTED_EDGE('',*,*,#431,.T.); +#431 = EDGE_CURVE('',#432,#434,#436,.T.); +#432 = VERTEX_POINT('',#433); +#433 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,1.E+004)); +#434 = VERTEX_POINT('',#435); +#435 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007, + -7.275957614183E-012)); +#436 = SURFACE_CURVE('',#437,(#459),.PCURVE_S1.); +#437 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#438,#439,#440,#441,#442,#443, + #444,#445,#446,#447,#448,#449,#450,#451,#452,#453,#454,#455,#456, + #457,#458),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(0.E+000,5.E-002,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5, + 0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.), + .PIECEWISE_BEZIER_KNOTS.); +#438 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,1.E+004)); +#439 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,9.5E+003)); +#440 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,9.E+003)); +#441 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,8.5E+003)); +#442 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,8.E+003)); +#443 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,7.5E+003)); +#444 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,7.E+003)); +#445 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,6.5E+003)); +#446 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,6.E+003)); +#447 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,5.5E+003)); +#448 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,5.E+003)); +#449 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,4.5E+003)); +#450 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,4.E+003)); +#451 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,3.5E+003)); +#452 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,3.E+003)); +#453 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,2.5E+003)); +#454 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,2.E+003)); +#455 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,1.5E+003)); +#456 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,999.99999999999 + )); +#457 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,499.99999999999 + )); +#458 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007, + -7.275957614183E-012)); +#459 = PCURVE('',#460,#467); +#460 = ( BOUNDED_SURFACE() B_SPLINE_SURFACE(1,2,( + (#461,#462,#463) + ,(#464,#465,#466 +)),.UNSPECIFIED.,.F.,.F.,.F.) B_SPLINE_SURFACE_WITH_KNOTS((2,2),(3,3),( + 0.E+000,1.),(4.71238898,6.283185307),.PIECEWISE_BEZIER_KNOTS.) +GEOMETRIC_REPRESENTATION_ITEM() RATIONAL_B_SPLINE_SURFACE(( + (1.,0.707106781114,1.) +,(1.,0.707106781114,1.))) REPRESENTATION_ITEM('') SURFACE() ); +#461 = CARTESIAN_POINT('',(-1.E+003,-4.357241234E-007,1.E+004)); +#462 = CARTESIAN_POINT('',(-999.9999995642,-1.000000000641E+003,1.E+004) + ); +#463 = CARTESIAN_POINT('',(6.408275519153E-007,-1.2,1.E+004)); +#464 = CARTESIAN_POINT('',(-1.E+003,-4.357241234E-007, + -7.275957614183E-012)); +#465 = CARTESIAN_POINT('',(-999.9999995642,-1.000000000641E+003, + -7.275957614183E-012)); +#466 = CARTESIAN_POINT('',(6.408275519153E-007,-1.E+003, + -7.275957614183E-012)); +#467 = DEFINITIONAL_REPRESENTATION('',(#468),#471); +#468 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#469,#470),.UNSPECIFIED.,.F.,.F., + (2,2),(0.E+000,1.),.PIECEWISE_BEZIER_KNOTS.); +#469 = CARTESIAN_POINT('',(0.E+000,4.71238898)); +#470 = CARTESIAN_POINT('',(1.,4.71238898)); +#471 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#472 = ORIENTED_EDGE('',*,*,#473,.T.); +#473 = EDGE_CURVE('',#434,#474,#476,.T.); +#474 = VERTEX_POINT('',#475); +#475 = CARTESIAN_POINT('',(6.408276931325E-007,-1000., + -7.275957614183E-012)); +#476 = SURFACE_CURVE('',#477,(#499),.PCURVE_S1.); +#477 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#478,#479,#480,#481,#482,#483, + #484,#485,#486,#487,#488,#489,#490,#491,#492,#493,#494,#495,#496, + #497,#498),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(4.71238898,4.79092879635,4.8694686127,4.94800842905, + 5.0265482454,5.10508806175,5.1836278781,5.26216769445,5.3407075108, + 5.41924732715,5.4977871435,5.57632695985,5.6548667762,5.73340659255, + 5.8119464089,5.89048622525,5.9690260416,6.04756585795,6.1261056743, + 6.20464549065,6.283185307),.PIECEWISE_BEZIER_KNOTS.); +#478 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007, + -7.275957614183E-012)); +#479 = CARTESIAN_POINT('',(-997.4284468742,-71.66933351195, + -6.548678960118E-012)); +#480 = CARTESIAN_POINT('',(-989.4434504163,-144.91948947, + -6.720788099178E-012)); +#481 = CARTESIAN_POINT('',(-975.6838833602,-219.1824804836, + -7.863245923594E-012)); +#482 = CARTESIAN_POINT('',(-955.8632459687,-293.8119381612, + -7.024875168533E-012)); +#483 = CARTESIAN_POINT('',(-929.7883008854,-368.0947100087, + -7.152002837072E-012)); +#484 = CARTESIAN_POINT('',(-897.3756497784,-441.2674281936, + -7.259490202638E-012)); +#485 = CARTESIAN_POINT('',(-858.664758951,-512.5376393354, + -7.345351581619E-012)); +#486 = CARTESIAN_POINT('',(-813.8260357521,-581.1085815335, + -7.407935229908E-012)); +#487 = CARTESIAN_POINT('',(-763.1628407442,-646.2062197992, + -7.445999943608E-012)); +#488 = CARTESIAN_POINT('',(-707.1067808059,-707.1067815671, + -7.458775259806E-012)); +#489 = CARTESIAN_POINT('',(-646.2062189776,-763.1628414399, + -7.445999943608E-012)); +#490 = CARTESIAN_POINT('',(-581.1085806574,-813.8260363777, + -8.466211691323E-012)); +#491 = CARTESIAN_POINT('',(-512.537638411,-858.6647595028, + -8.39468752185E-012)); +#492 = CARTESIAN_POINT('',(-441.2674272275,-897.3756502535, + -7.259490202638E-012)); +#493 = CARTESIAN_POINT('',(-368.0947090078,-929.7883012817, + -8.173717528083E-012)); +#494 = CARTESIAN_POINT('',(-293.8119371321,-955.863246285, + -7.024875168533E-012)); +#495 = CARTESIAN_POINT('',(-219.1824794332,-975.6838835962, + -7.863245923594E-012)); +#496 = CARTESIAN_POINT('',(-144.9194884048,-989.4434505723, + -7.680900684775E-012)); +#497 = CARTESIAN_POINT('',(-71.66933243817,-997.4284469513, + -7.484204525849E-012)); +#498 = CARTESIAN_POINT('',(6.408276931325E-007,-1000., + -7.275957614183E-012)); +#499 = PCURVE('',#460,#500); +#500 = DEFINITIONAL_REPRESENTATION('',(#501),#504); +#501 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#502,#503),.UNSPECIFIED.,.F.,.F., + (2,2),(4.71238898,6.283185307),.PIECEWISE_BEZIER_KNOTS.); +#502 = CARTESIAN_POINT('',(1.,4.71238898)); +#503 = CARTESIAN_POINT('',(1.,6.283185307)); +#504 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#505 = ORIENTED_EDGE('',*,*,#506,.T.); +#506 = EDGE_CURVE('',#474,#507,#509,.T.); +#507 = VERTEX_POINT('',#508); +#508 = CARTESIAN_POINT('',(6.408276931325E-007,-1.2,1.E+004)); +#509 = SURFACE_CURVE('',#510,(#532),.PCURVE_S1.); +#510 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#511,#512,#513,#514,#515,#516, + #517,#518,#519,#520,#521,#522,#523,#524,#525,#526,#527,#528,#529, + #530,#531),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(-1.,-0.95,-0.9,-0.85,-0.8,-0.75,-0.7,-0.65,-0.6,-0.55,-0.5 + ,-0.45,-0.4,-0.35,-0.3,-0.25,-0.2,-0.15,-1.E-001,-5.E-002,0.E+000), + .UNSPECIFIED.); +#511 = CARTESIAN_POINT('',(6.408276931325E-007,-1000., + -7.275957614183E-012)); +#512 = CARTESIAN_POINT('',(6.408276931325E-007,-950.06,499.99999999999) + ); +#513 = CARTESIAN_POINT('',(6.408276931325E-007,-900.12,999.99999999999) + ); +#514 = CARTESIAN_POINT('',(6.408276931325E-007,-850.18,1.5E+003)); +#515 = CARTESIAN_POINT('',(6.408276931325E-007,-800.24,2.E+003)); +#516 = CARTESIAN_POINT('',(6.408276931325E-007,-750.3,2.5E+003)); +#517 = CARTESIAN_POINT('',(6.408276931325E-007,-700.36,3.E+003)); +#518 = CARTESIAN_POINT('',(6.408276931325E-007,-650.42,3.5E+003)); +#519 = CARTESIAN_POINT('',(6.408276931325E-007,-600.48,4.E+003)); +#520 = CARTESIAN_POINT('',(6.408276931325E-007,-550.54,4.5E+003)); +#521 = CARTESIAN_POINT('',(6.408276931325E-007,-500.6,5.E+003)); +#522 = CARTESIAN_POINT('',(6.408276931325E-007,-450.66,5.5E+003)); +#523 = CARTESIAN_POINT('',(6.408276931325E-007,-400.72,6.E+003)); +#524 = CARTESIAN_POINT('',(6.408276931325E-007,-350.78,6.5E+003)); +#525 = CARTESIAN_POINT('',(6.408276931325E-007,-300.84,7.E+003)); +#526 = CARTESIAN_POINT('',(6.408276931325E-007,-250.9,7.5E+003)); +#527 = CARTESIAN_POINT('',(6.408276931325E-007,-200.96,8.E+003)); +#528 = CARTESIAN_POINT('',(6.408276931325E-007,-151.02,8.5E+003)); +#529 = CARTESIAN_POINT('',(6.408276931325E-007,-101.08,9.E+003)); +#530 = CARTESIAN_POINT('',(6.408276931325E-007,-51.14,9.5E+003)); +#531 = CARTESIAN_POINT('',(6.408276931325E-007,-1.2,1.E+004)); +#532 = PCURVE('',#460,#533); +#533 = DEFINITIONAL_REPRESENTATION('',(#534),#537); +#534 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#535,#536),.UNSPECIFIED.,.F.,.F., + (2,2),(-1.,0.E+000),.PIECEWISE_BEZIER_KNOTS.); +#535 = CARTESIAN_POINT('',(1.,6.283185307)); +#536 = CARTESIAN_POINT('',(0.E+000,6.283185307)); +#537 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#538 = ORIENTED_EDGE('',*,*,#539,.T.); +#539 = EDGE_CURVE('',#507,#432,#540,.T.); +#540 = SURFACE_CURVE('',#541,(#563),.PCURVE_S1.); +#541 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#542,#543,#544,#545,#546,#547, + #548,#549,#550,#551,#552,#553,#554,#555,#556,#557,#558,#559,#560, + #561,#562),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(-6.283185307,-6.20464549065,-6.1261056743,-6.04756585795, + -5.9690260416,-5.89048622525,-5.8119464089,-5.73340659255, + -5.6548667762,-5.57632695985,-5.4977871435,-5.41924732715, + -5.3407075108,-5.26216769445,-5.1836278781,-5.10508806175, + -5.0265482454,-4.94800842905,-4.8694686127,-4.79092879635, + -4.71238898),.PIECEWISE_BEZIER_KNOTS.); +#542 = CARTESIAN_POINT('',(6.408276931325E-007,-1.2,1.E+004)); +#543 = CARTESIAN_POINT('',(-71.66933243817,-70.21177681489,1.E+004)); +#544 = CARTESIAN_POINT('',(-144.9194884048,-135.3890361968,1.E+004)); +#545 = CARTESIAN_POINT('',(-219.1824794332,-195.8033446388,1.E+004)); +#546 = CARTESIAN_POINT('',(-293.8119371321,-250.5226096533,1.E+004)); +#547 = CARTESIAN_POINT('',(-368.0947090078,-298.6412971728,1.E+004)); +#548 = CARTESIAN_POINT('',(-441.2674272275,-339.3135570734,1.E+004)); +#549 = CARTESIAN_POINT('',(-512.537638411,-371.7873532213,1.E+004)); +#550 = CARTESIAN_POINT('',(-581.1085806574,-395.4372871783,1.E+004)); +#551 = CARTESIAN_POINT('',(-646.2062189776,-409.7936133593,1.E+004)); +#552 = CARTESIAN_POINT('',(-707.1067808059,-414.5650346038,1.E+004)); +#553 = CARTESIAN_POINT('',(-763.1628407442,-409.6532654643,1.E+004)); +#554 = CARTESIAN_POINT('',(-813.8260357521,-395.1580263338,1.E+004)); +#555 = CARTESIAN_POINT('',(-858.664758951,-371.3720008277,1.E+004)); +#556 = CARTESIAN_POINT('',(-897.3756497784,-338.7662274054,1.E+004)); +#557 = CARTESIAN_POINT('',(-929.7883008854,-297.9672651078,1.E+004)); +#558 = CARTESIAN_POINT('',(-955.8632459687,-249.7281483717,1.E+004)); +#559 = CARTESIAN_POINT('',(-975.6838833602,-194.8955432843,1.E+004)); +#560 = CARTESIAN_POINT('',(-989.4434504163,-134.3756078111,1.E+004)); +#561 = CARTESIAN_POINT('',(-997.4284468742,-69.10086628166,1.E+004)); +#562 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,1.E+004)); +#563 = PCURVE('',#460,#564); +#564 = DEFINITIONAL_REPRESENTATION('',(#565),#568); +#565 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#566,#567),.UNSPECIFIED.,.F.,.F., + (2,2),(-6.283185307,-4.71238898),.PIECEWISE_BEZIER_KNOTS.); +#566 = CARTESIAN_POINT('',(0.E+000,6.283185307)); +#567 = CARTESIAN_POINT('',(0.E+000,4.71238898)); +#568 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#569 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#573)) GLOBAL_UNIT_ASSIGNED_CONTEXT +((#570,#571,#572)) REPRESENTATION_CONTEXT('Context #1', + '3D Context with UNIT and UNCERTAINTY') ); +#570 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); +#571 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); +#572 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); +#573 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-006),#570, + 'distance_accuracy_value','confusion accuracy'); +#574 = SHAPE_DEFINITION_REPRESENTATION(#575,#424); +#575 = PRODUCT_DEFINITION_SHAPE('','',#576); +#576 = PRODUCT_DEFINITION('design','',#577,#580); +#577 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#578, + .NOT_KNOWN.); +#578 = PRODUCT('Open CASCADE STEP translator 6.7 1.4', + 'Open CASCADE STEP translator 6.7 1.4','',(#579)); +#579 = MECHANICAL_CONTEXT('',#2,'mechanical'); +#580 = DESIGN_CONTEXT('',#2,'design'); +#581 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#582,#584); +#582 = ( REPRESENTATION_RELATIONSHIP('','',#424,#10) +REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#583) +SHAPE_REPRESENTATION_RELATIONSHIP() ); +#583 = ITEM_DEFINED_TRANSFORMATION('','',#11,#27); +#584 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#585 + ); +#585 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('4','','',#5,#576,$); +#586 = CC_DESIGN_SECURITY_CLASSIFICATION(#587,(#585)); +#587 = SECURITY_CLASSIFICATION('','',#59); +#588 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#587)); +#589 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#587)); +#590 = CC_DESIGN_APPROVAL(#70,(#587)); +#591 = PRODUCT_RELATED_PRODUCT_CATEGORY('detail',$,(#578)); +#592 = PRODUCT_CATEGORY_RELATIONSHIP('','',#593,#591); +#593 = PRODUCT_CATEGORY('part',$); +#594 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#51,(#577,#576) + ); +#595 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#53,(#578)); +#596 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#55,(#577)); +#597 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#598)); +#598 = SECURITY_CLASSIFICATION('','',#59); +#599 = CC_DESIGN_SECURITY_CLASSIFICATION(#598,(#577)); +#600 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#66,(#576)); +#601 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#598)); +#602 = CC_DESIGN_APPROVAL(#70,(#577,#576,#598)); +#603 = MANIFOLD_SURFACE_SHAPE_REPRESENTATION('',(#11,#604),#748); +#604 = SHELL_BASED_SURFACE_MODEL('',(#605)); +#605 = OPEN_SHELL('',(#606)); +#606 = ADVANCED_FACE('',(#607),#639,.T.); +#607 = FACE_BOUND('',#608,.T.); +#608 = EDGE_LOOP('',(#609,#651,#684,#717)); +#609 = ORIENTED_EDGE('',*,*,#610,.T.); +#610 = EDGE_CURVE('',#611,#613,#615,.T.); +#611 = VERTEX_POINT('',#612); +#612 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,1.E+004)); +#613 = VERTEX_POINT('',#614); +#614 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003, + -5.456968210638E-012)); +#615 = SURFACE_CURVE('',#616,(#638),.PCURVE_S1.); +#616 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#617,#618,#619,#620,#621,#622, + #623,#624,#625,#626,#627,#628,#629,#630,#631,#632,#633,#634,#635, + #636,#637),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(0.E+000,5.E-002,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5, + 0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.), + .PIECEWISE_BEZIER_KNOTS.); +#617 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,1.E+004)); +#618 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,9.5E+003)); +#619 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,9.E+003)); +#620 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,8.5E+003)); +#621 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,8.E+003)); +#622 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,7.5E+003)); +#623 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,7.E+003)); +#624 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,6.5E+003)); +#625 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,6.E+003)); +#626 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,5.5E+003)); +#627 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,5.E+003)); +#628 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,4.5E+003)); +#629 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,4.E+003)); +#630 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,3.5E+003)); +#631 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,3.E+003)); +#632 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,2.5E+003)); +#633 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,2.E+003)); +#634 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,1.5E+003)); +#635 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,999.99999999999) + ); +#636 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,499.99999999999) + ); +#637 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003, + -5.456968210638E-012)); +#638 = PCURVE('',#639,#646); +#639 = ( BOUNDED_SURFACE() B_SPLINE_SURFACE(1,2,( + (#640,#641,#642) + ,(#643,#644,#645 +)),.UNSPECIFIED.,.F.,.F.,.F.) B_SPLINE_SURFACE_WITH_KNOTS((2,2),(3,3),( + 0.E+000,1.),(4.71238898,6.283185307),.PIECEWISE_BEZIER_KNOTS.) +GEOMETRIC_REPRESENTATION_ITEM() RATIONAL_B_SPLINE_SURFACE(( + (1.,0.707106781114,1.) +,(1.,0.707106781114,1.))) REPRESENTATION_ITEM('') SURFACE() ); +#640 = CARTESIAN_POINT('',(-2.306207333E-007,1.E+003,1.E+004)); +#641 = CARTESIAN_POINT('',(-1.000000000436E+003,999.99999976937,1.E+004) + ); +#642 = CARTESIAN_POINT('',(-1.E+003,-4.357241618153E-007,1.E+004)); +#643 = CARTESIAN_POINT('',(-2.306207333E-007,1.E+003, + -5.456968210638E-012)); +#644 = CARTESIAN_POINT('',(-1.000000000436E+003,999.99999976937, + -5.456968210638E-012)); +#645 = CARTESIAN_POINT('',(-1.E+003,-4.357241618153E-007, + -5.456968210638E-012)); +#646 = DEFINITIONAL_REPRESENTATION('',(#647),#650); +#647 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#648,#649),.UNSPECIFIED.,.F.,.F., + (2,2),(0.E+000,1.),.PIECEWISE_BEZIER_KNOTS.); +#648 = CARTESIAN_POINT('',(0.E+000,4.71238898)); +#649 = CARTESIAN_POINT('',(1.,4.71238898)); +#650 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#651 = ORIENTED_EDGE('',*,*,#652,.T.); +#652 = EDGE_CURVE('',#613,#653,#655,.T.); +#653 = VERTEX_POINT('',#654); +#654 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007, + -5.456968210638E-012)); +#655 = SURFACE_CURVE('',#656,(#678),.PCURVE_S1.); +#656 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#657,#658,#659,#660,#661,#662, + #663,#664,#665,#666,#667,#668,#669,#670,#671,#672,#673,#674,#675, + #676,#677),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(4.71238898,4.79092879635,4.8694686127,4.94800842905, + 5.0265482454,5.10508806175,5.1836278781,5.26216769445,5.3407075108, + 5.41924732715,5.4977871435,5.57632695985,5.6548667762,5.73340659255, + 5.8119464089,5.89048622525,5.9690260416,6.04756585795,6.1261056743, + 6.20464549065,6.283185307),.PIECEWISE_BEZIER_KNOTS.); +#657 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003, + -5.456968210638E-012)); +#658 = CARTESIAN_POINT('',(-71.66933330738,997.42844688893, + -4.677627828656E-012)); +#659 = CARTESIAN_POINT('',(-144.9194892671,989.44345044603, + -4.800562927984E-012)); +#660 = CARTESIAN_POINT('',(-219.1824802835,975.68388340525, + -5.897434442696E-012)); +#661 = CARTESIAN_POINT('',(-293.8119379651,955.86324602903, + -5.017767977524E-012)); +#662 = CARTESIAN_POINT('',(-368.094709818,929.78830096099, + -5.108573455052E-012)); +#663 = CARTESIAN_POINT('',(-441.2674280095,897.37564986899, + -5.185350144741E-012)); +#664 = CARTESIAN_POINT('',(-512.5376391592,858.66475905618, + -5.246679701156E-012)); +#665 = CARTESIAN_POINT('',(-581.1085813666,813.82603587133, + -5.291382307077E-012)); +#666 = CARTESIAN_POINT('',(-646.2062196426,763.16284087677, + -5.318571388291E-012)); +#667 = CARTESIAN_POINT('',(-707.1067814221,707.10678095095, + -5.327696614147E-012)); +#668 = CARTESIAN_POINT('',(-763.1628413073,646.20621913415, + -5.318571388291E-012)); +#669 = CARTESIAN_POINT('',(-813.8260362585,581.10858082435, + -6.349658768493E-012)); +#670 = CARTESIAN_POINT('',(-858.6647593977,512.53763858711, + -6.296015641387E-012)); +#671 = CARTESIAN_POINT('',(-897.375650163,441.26742741162, + -5.185350144741E-012)); +#672 = CARTESIAN_POINT('',(-929.7883012062,368.09470919853, + -6.130288146062E-012)); +#673 = CARTESIAN_POINT('',(-955.8632462248,293.81193732822, + -5.017767977524E-012)); +#674 = CARTESIAN_POINT('',(-975.6838835513,219.18247963341, + -5.897434442696E-012)); +#675 = CARTESIAN_POINT('',(-989.4434505426,144.91948860781, + -5.760675513581E-012)); +#676 = CARTESIAN_POINT('',(-997.4284469366,71.669332642749, + -5.613153394387E-012)); +#677 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007, + -5.456968210638E-012)); +#678 = PCURVE('',#639,#679); +#679 = DEFINITIONAL_REPRESENTATION('',(#680),#683); +#680 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#681,#682),.UNSPECIFIED.,.F.,.F., + (2,2),(4.71238898,6.283185307),.PIECEWISE_BEZIER_KNOTS.); +#681 = CARTESIAN_POINT('',(1.,4.71238898)); +#682 = CARTESIAN_POINT('',(1.,6.283185307)); +#683 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#684 = ORIENTED_EDGE('',*,*,#685,.T.); +#685 = EDGE_CURVE('',#653,#686,#688,.T.); +#686 = VERTEX_POINT('',#687); +#687 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,1.E+004)); +#688 = SURFACE_CURVE('',#689,(#711),.PCURVE_S1.); +#689 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#690,#691,#692,#693,#694,#695, + #696,#697,#698,#699,#700,#701,#702,#703,#704,#705,#706,#707,#708, + #709,#710),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(-1.,-0.95,-0.9,-0.85,-0.8,-0.75,-0.7,-0.65,-0.6,-0.55,-0.5 + ,-0.45,-0.4,-0.35,-0.3,-0.25,-0.2,-0.15,-1.E-001,-5.E-002,0.E+000), + .UNSPECIFIED.); +#690 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007, + -5.456968210638E-012)); +#691 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,499.99999999999 + )); +#692 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,999.99999999999 + )); +#693 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,1.5E+003)); +#694 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,2.E+003)); +#695 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,2.5E+003)); +#696 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,3.E+003)); +#697 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,3.5E+003)); +#698 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,4.E+003)); +#699 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,4.5E+003)); +#700 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,5.E+003)); +#701 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,5.5E+003)); +#702 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,6.E+003)); +#703 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,6.5E+003)); +#704 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,7.E+003)); +#705 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,7.5E+003)); +#706 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,8.E+003)); +#707 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,8.5E+003)); +#708 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,9.E+003)); +#709 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,9.5E+003)); +#710 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,1.E+004)); +#711 = PCURVE('',#639,#712); +#712 = DEFINITIONAL_REPRESENTATION('',(#713),#716); +#713 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#714,#715),.UNSPECIFIED.,.F.,.F., + (2,2),(-1.,0.E+000),.PIECEWISE_BEZIER_KNOTS.); +#714 = CARTESIAN_POINT('',(1.,6.283185307)); +#715 = CARTESIAN_POINT('',(0.E+000,6.283185307)); +#716 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#717 = ORIENTED_EDGE('',*,*,#718,.T.); +#718 = EDGE_CURVE('',#686,#611,#719,.T.); +#719 = SURFACE_CURVE('',#720,(#742),.PCURVE_S1.); +#720 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#721,#722,#723,#724,#725,#726, + #727,#728,#729,#730,#731,#732,#733,#734,#735,#736,#737,#738,#739, + #740,#741),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(-6.283185307,-6.20464549065,-6.1261056743,-6.04756585795, + -5.9690260416,-5.89048622525,-5.8119464089,-5.73340659255, + -5.6548667762,-5.57632695985,-5.4977871435,-5.41924732715, + -5.3407075108,-5.26216769445,-5.1836278781,-5.10508806175, + -5.0265482454,-4.94800842905,-4.8694686127,-4.79092879635, + -4.71238898),.PIECEWISE_BEZIER_KNOTS.); +#721 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,1.E+004)); +#722 = CARTESIAN_POINT('',(-997.4284469366,71.669332642749,1.E+004)); +#723 = CARTESIAN_POINT('',(-989.4434505426,144.91948860781,1.E+004)); +#724 = CARTESIAN_POINT('',(-975.6838835513,219.1824796334,1.E+004)); +#725 = CARTESIAN_POINT('',(-955.8632462248,293.81193732822,1.E+004)); +#726 = CARTESIAN_POINT('',(-929.7883012062,368.09470919853,1.E+004)); +#727 = CARTESIAN_POINT('',(-897.375650163,441.26742741162,1.E+004)); +#728 = CARTESIAN_POINT('',(-858.6647593977,512.53763858712,1.E+004)); +#729 = CARTESIAN_POINT('',(-813.8260362585,581.10858082435,1.E+004)); +#730 = CARTESIAN_POINT('',(-763.1628413073,646.20621913415,1.E+004)); +#731 = CARTESIAN_POINT('',(-707.1067814221,707.10678095095,1.E+004)); +#732 = CARTESIAN_POINT('',(-646.2062196426,763.16284087677,1.E+004)); +#733 = CARTESIAN_POINT('',(-581.1085813666,813.82603587133,1.E+004)); +#734 = CARTESIAN_POINT('',(-512.5376391592,858.66475905619,1.E+004)); +#735 = CARTESIAN_POINT('',(-441.2674280095,897.37564986899,1.E+004)); +#736 = CARTESIAN_POINT('',(-368.094709818,929.78830096099,1.E+004)); +#737 = CARTESIAN_POINT('',(-293.8119379651,955.86324602903,1.E+004)); +#738 = CARTESIAN_POINT('',(-219.1824802835,975.68388340525,1.E+004)); +#739 = CARTESIAN_POINT('',(-144.9194892671,989.44345044603,1.E+004)); +#740 = CARTESIAN_POINT('',(-71.66933330738,997.42844688893,1.E+004)); +#741 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,1.E+004)); +#742 = PCURVE('',#639,#743); +#743 = DEFINITIONAL_REPRESENTATION('',(#744),#747); +#744 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#745,#746),.UNSPECIFIED.,.F.,.F., + (2,2),(-6.283185307,-4.71238898),.PIECEWISE_BEZIER_KNOTS.); +#745 = CARTESIAN_POINT('',(0.E+000,6.283185307)); +#746 = CARTESIAN_POINT('',(0.E+000,4.71238898)); +#747 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#748 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#752)) GLOBAL_UNIT_ASSIGNED_CONTEXT +((#749,#750,#751)) REPRESENTATION_CONTEXT('Context #1', + '3D Context with UNIT and UNCERTAINTY') ); +#749 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); +#750 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); +#751 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); +#752 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-006),#749, + 'distance_accuracy_value','confusion accuracy'); +#753 = SHAPE_DEFINITION_REPRESENTATION(#754,#603); +#754 = PRODUCT_DEFINITION_SHAPE('','',#755); +#755 = PRODUCT_DEFINITION('design','',#756,#759); +#756 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#757, + .NOT_KNOWN.); +#757 = PRODUCT('Open CASCADE STEP translator 6.7 1.5', + 'Open CASCADE STEP translator 6.7 1.5','',(#758)); +#758 = MECHANICAL_CONTEXT('',#2,'mechanical'); +#759 = DESIGN_CONTEXT('',#2,'design'); +#760 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#761,#763); +#761 = ( REPRESENTATION_RELATIONSHIP('','',#603,#10) +REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#762) +SHAPE_REPRESENTATION_RELATIONSHIP() ); +#762 = ITEM_DEFINED_TRANSFORMATION('','',#11,#31); +#763 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#764 + ); +#764 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('5','','',#5,#755,$); +#765 = CC_DESIGN_SECURITY_CLASSIFICATION(#766,(#764)); +#766 = SECURITY_CLASSIFICATION('','',#59); +#767 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#766)); +#768 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#766)); +#769 = CC_DESIGN_APPROVAL(#70,(#766)); +#770 = PRODUCT_RELATED_PRODUCT_CATEGORY('detail',$,(#757)); +#771 = PRODUCT_CATEGORY_RELATIONSHIP('','',#772,#770); +#772 = PRODUCT_CATEGORY('part',$); +#773 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#51,(#756,#755) + ); +#774 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#53,(#757)); +#775 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#55,(#756)); +#776 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#777)); +#777 = SECURITY_CLASSIFICATION('','',#59); +#778 = CC_DESIGN_SECURITY_CLASSIFICATION(#777,(#756)); +#779 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#66,(#755)); +#780 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#777)); +#781 = CC_DESIGN_APPROVAL(#70,(#756,#755,#777)); +#782 = MANIFOLD_SURFACE_SHAPE_REPRESENTATION('',(#11,#783),#927); +#783 = SHELL_BASED_SURFACE_MODEL('',(#784)); +#784 = OPEN_SHELL('',(#785)); +#785 = ADVANCED_FACE('',(#786),#818,.T.); +#786 = FACE_BOUND('',#787,.T.); +#787 = EDGE_LOOP('',(#788,#830,#863,#896)); +#788 = ORIENTED_EDGE('',*,*,#789,.T.); +#789 = EDGE_CURVE('',#790,#792,#794,.T.); +#790 = VERTEX_POINT('',#791); +#791 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,1.E+004)); +#792 = VERTEX_POINT('',#793); +#793 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,0.E+000)); +#794 = SURFACE_CURVE('',#795,(#817),.PCURVE_S1.); +#795 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#796,#797,#798,#799,#800,#801, + #802,#803,#804,#805,#806,#807,#808,#809,#810,#811,#812,#813,#814, + #815,#816),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(0.E+000,5.E-002,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5, + 0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.), + .PIECEWISE_BEZIER_KNOTS.); +#796 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,1.E+004)); +#797 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,9.5E+003)); +#798 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,9.E+003)); +#799 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,8.5E+003)); +#800 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,8.E+003)); +#801 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,7.5E+003)); +#802 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,7.E+003)); +#803 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,6.5E+003)); +#804 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,6.E+003)); +#805 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,5.5E+003)); +#806 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,5.E+003)); +#807 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,4.5E+003)); +#808 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,4.E+003)); +#809 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,3.5E+003)); +#810 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,3.E+003)); +#811 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,2.5E+003)); +#812 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,2.E+003)); +#813 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,1.5E+003)); +#814 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,1.E+003)); +#815 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,500.)); +#816 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,0.E+000)); +#817 = PCURVE('',#818,#825); +#818 = ( BOUNDED_SURFACE() B_SPLINE_SURFACE(1,2,( + (#819,#820,#821) + ,(#822,#823,#824 +)),.UNSPECIFIED.,.F.,.F.,.F.) B_SPLINE_SURFACE_WITH_KNOTS((2,2),(3,3),( + 0.E+000,1.),(4.71238898,6.283185307),.PIECEWISE_BEZIER_KNOTS.) +GEOMETRIC_REPRESENTATION_ITEM() RATIONAL_B_SPLINE_SURFACE(( + (1.,0.707106781114,1.) +,(1.,0.707106781114,1.))) REPRESENTATION_ITEM('') SURFACE() ); +#819 = CARTESIAN_POINT('',(1.E+003,2.5517366E-008,1.E+004)); +#820 = CARTESIAN_POINT('',(999.99999997448,1.000000000231E+003,1.E+004) + ); +#821 = CARTESIAN_POINT('',(-2.306207945153E-007,1.E+003,1.E+004)); +#822 = CARTESIAN_POINT('',(1.E+003,2.5517366E-008,0.E+000)); +#823 = CARTESIAN_POINT('',(999.99999997448,1.000000000231E+003,0.E+000) + ); +#824 = CARTESIAN_POINT('',(-2.306207945153E-007,1.E+003,-3.6)); +#825 = DEFINITIONAL_REPRESENTATION('',(#826),#829); +#826 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#827,#828),.UNSPECIFIED.,.F.,.F., + (2,2),(0.E+000,1.),.PIECEWISE_BEZIER_KNOTS.); +#827 = CARTESIAN_POINT('',(0.E+000,4.71238898)); +#828 = CARTESIAN_POINT('',(1.,4.71238898)); +#829 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#830 = ORIENTED_EDGE('',*,*,#831,.T.); +#831 = EDGE_CURVE('',#792,#832,#834,.T.); +#832 = VERTEX_POINT('',#833); +#833 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,-3.599999999999) + ); +#834 = SURFACE_CURVE('',#835,(#857),.PCURVE_S1.); +#835 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#836,#837,#838,#839,#840,#841, + #842,#843,#844,#845,#846,#847,#848,#849,#850,#851,#852,#853,#854, + #855,#856),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(4.71238898,4.79092879635,4.8694686127,4.94800842905, + 5.0265482454,5.10508806175,5.1836278781,5.26216769445,5.3407075108, + 5.41924732715,5.4977871435,5.57632695985,5.6548667762,5.73340659255, + 5.8119464089,5.89048622525,5.9690260416,6.04756585795,6.1261056743, + 6.20464549065,6.283185307),.PIECEWISE_BEZIER_KNOTS.); +#836 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,0.E+000)); +#837 = CARTESIAN_POINT('',(997.42844690363,71.669333102804, + -9.257591138443E-003)); +#838 = CARTESIAN_POINT('',(989.44345047575,144.91948906418, + -3.800357826622E-002)); +#839 = CARTESIAN_POINT('',(975.6838834502,219.18248008343, + -8.753801954033E-002)); +#840 = CARTESIAN_POINT('',(955.86324608929,293.8119377691, + -0.158892314019)); +#841 = CARTESIAN_POINT('',(929.78830103649,368.09470962739, + -0.252762116182)); +#842 = CARTESIAN_POINT('',(897.3756499595,441.26742782553, + -0.369447660029)); +#843 = CARTESIAN_POINT('',(858.66475916131,512.53763898317, + -0.508806866867)); +#844 = CARTESIAN_POINT('',(813.82603599052,581.10858119972, + -0.670226270243)); +#845 = CARTESIAN_POINT('',(763.16284100931,646.20621948615, + -0.852613772133)); +#846 = CARTESIAN_POINT('',(707.10678109598,707.1067812771, + -1.054415587773)); +#847 = CARTESIAN_POINT('',(646.20621929068,763.16284117483, + -1.273657610221)); +#848 = CARTESIAN_POINT('',(581.10858099127,813.82603613936, + -1.508009108047)); +#849 = CARTESIAN_POINT('',(512.53763876323,858.66475929259, + -1.754864500013)); +#850 = CARTESIAN_POINT('',(441.26742759568,897.37565007252, + -2.01143726016)); +#851 = CARTESIAN_POINT('',(368.09470938923,929.78830113077, + -2.274859045646)); +#852 = CARTESIAN_POINT('',(293.81193752427,955.86324616455, + -2.542277024303)); +#853 = CARTESIAN_POINT('',(219.18247983352,975.68388350634, + -2.810943071933)); +#854 = CARTESIAN_POINT('',(144.91948881075,989.44345051287, + -3.078289839558)); +#855 = CARTESIAN_POINT('',(71.669332847325,997.42844692199, + -3.341990400972)); +#856 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,-3.599999999999) + ); +#857 = PCURVE('',#818,#858); +#858 = DEFINITIONAL_REPRESENTATION('',(#859),#862); +#859 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#860,#861),.UNSPECIFIED.,.F.,.F., + (2,2),(4.71238898,6.283185307),.PIECEWISE_BEZIER_KNOTS.); +#860 = CARTESIAN_POINT('',(1.,4.71238898)); +#861 = CARTESIAN_POINT('',(1.,6.283185307)); +#862 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#863 = ORIENTED_EDGE('',*,*,#864,.T.); +#864 = EDGE_CURVE('',#832,#865,#867,.T.); +#865 = VERTEX_POINT('',#866); +#866 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,1.E+004)); +#867 = SURFACE_CURVE('',#868,(#890),.PCURVE_S1.); +#868 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#869,#870,#871,#872,#873,#874, + #875,#876,#877,#878,#879,#880,#881,#882,#883,#884,#885,#886,#887, + #888,#889),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(-1.,-0.95,-0.9,-0.85,-0.8,-0.75,-0.7,-0.65,-0.6,-0.55,-0.5 + ,-0.45,-0.4,-0.35,-0.3,-0.25,-0.2,-0.15,-1.E-001,-5.E-002,0.E+000), + .UNSPECIFIED.); +#869 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,-3.599999999999) + ); +#870 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,496.58)); +#871 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,996.76)); +#872 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,1.49694E+003)); +#873 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,1.99712E+003)); +#874 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,2.4973E+003)); +#875 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,2.99748E+003)); +#876 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,3.49766E+003)); +#877 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,3.99784E+003)); +#878 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,4.49802E+003)); +#879 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,4.9982E+003)); +#880 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,5.49838E+003)); +#881 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,5.99856E+003)); +#882 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,6.49874E+003)); +#883 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,6.99892E+003)); +#884 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,7.4991E+003)); +#885 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,7.99928E+003)); +#886 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,8.49946E+003)); +#887 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,8.99964E+003)); +#888 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,9.49982E+003)); +#889 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,1.E+004)); +#890 = PCURVE('',#818,#891); +#891 = DEFINITIONAL_REPRESENTATION('',(#892),#895); +#892 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#893,#894),.UNSPECIFIED.,.F.,.F., + (2,2),(-1.,0.E+000),.PIECEWISE_BEZIER_KNOTS.); +#893 = CARTESIAN_POINT('',(1.,6.283185307)); +#894 = CARTESIAN_POINT('',(0.E+000,6.283185307)); +#895 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#896 = ORIENTED_EDGE('',*,*,#897,.T.); +#897 = EDGE_CURVE('',#865,#790,#898,.T.); +#898 = SURFACE_CURVE('',#899,(#921),.PCURVE_S1.); +#899 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#900,#901,#902,#903,#904,#905, + #906,#907,#908,#909,#910,#911,#912,#913,#914,#915,#916,#917,#918, + #919,#920),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(-6.283185307,-6.20464549065,-6.1261056743,-6.04756585795, + -5.9690260416,-5.89048622525,-5.8119464089,-5.73340659255, + -5.6548667762,-5.57632695985,-5.4977871435,-5.41924732715, + -5.3407075108,-5.26216769445,-5.1836278781,-5.10508806175, + -5.0265482454,-4.94800842905,-4.8694686127,-4.79092879635, + -4.71238898),.PIECEWISE_BEZIER_KNOTS.); +#900 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,1.E+004)); +#901 = CARTESIAN_POINT('',(71.669332847325,997.42844692199,1.E+004)); +#902 = CARTESIAN_POINT('',(144.91948881075,989.44345051287,1.E+004)); +#903 = CARTESIAN_POINT('',(219.18247983352,975.68388350634,1.E+004)); +#904 = CARTESIAN_POINT('',(293.81193752427,955.86324616455,1.E+004)); +#905 = CARTESIAN_POINT('',(368.09470938923,929.78830113077,1.E+004)); +#906 = CARTESIAN_POINT('',(441.26742759568,897.37565007252,1.E+004)); +#907 = CARTESIAN_POINT('',(512.53763876323,858.66475929259,1.E+004)); +#908 = CARTESIAN_POINT('',(581.10858099127,813.82603613936,1.E+004)); +#909 = CARTESIAN_POINT('',(646.20621929068,763.16284117483,1.E+004)); +#910 = CARTESIAN_POINT('',(707.10678109598,707.1067812771,1.E+004)); +#911 = CARTESIAN_POINT('',(763.16284100931,646.20621948615,1.E+004)); +#912 = CARTESIAN_POINT('',(813.82603599052,581.10858119972,1.E+004)); +#913 = CARTESIAN_POINT('',(858.66475916131,512.53763898317,1.E+004)); +#914 = CARTESIAN_POINT('',(897.3756499595,441.26742782553,1.E+004)); +#915 = CARTESIAN_POINT('',(929.78830103649,368.09470962739,1.E+004)); +#916 = CARTESIAN_POINT('',(955.86324608929,293.8119377691,1.E+004)); +#917 = CARTESIAN_POINT('',(975.6838834502,219.18248008343,1.E+004)); +#918 = CARTESIAN_POINT('',(989.44345047575,144.91948906418,1.E+004)); +#919 = CARTESIAN_POINT('',(997.42844690363,71.669333102804,1.E+004)); +#920 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,1.E+004)); +#921 = PCURVE('',#818,#922); +#922 = DEFINITIONAL_REPRESENTATION('',(#923),#926); +#923 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#924,#925),.UNSPECIFIED.,.F.,.F., + (2,2),(-6.283185307,-4.71238898),.PIECEWISE_BEZIER_KNOTS.); +#924 = CARTESIAN_POINT('',(0.E+000,6.283185307)); +#925 = CARTESIAN_POINT('',(0.E+000,4.71238898)); +#926 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#927 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#931)) GLOBAL_UNIT_ASSIGNED_CONTEXT +((#928,#929,#930)) REPRESENTATION_CONTEXT('Context #1', + '3D Context with UNIT and UNCERTAINTY') ); +#928 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); +#929 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); +#930 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); +#931 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-006),#928, + 'distance_accuracy_value','confusion accuracy'); +#932 = SHAPE_DEFINITION_REPRESENTATION(#933,#782); +#933 = PRODUCT_DEFINITION_SHAPE('','',#934); +#934 = PRODUCT_DEFINITION('design','',#935,#938); +#935 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#936, + .NOT_KNOWN.); +#936 = PRODUCT('Open CASCADE STEP translator 6.7 1.6', + 'Open CASCADE STEP translator 6.7 1.6','',(#937)); +#937 = MECHANICAL_CONTEXT('',#2,'mechanical'); +#938 = DESIGN_CONTEXT('',#2,'design'); +#939 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#940,#942); +#940 = ( REPRESENTATION_RELATIONSHIP('','',#782,#10) +REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#941) +SHAPE_REPRESENTATION_RELATIONSHIP() ); +#941 = ITEM_DEFINED_TRANSFORMATION('','',#11,#35); +#942 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#943 + ); +#943 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('6','','',#5,#934,$); +#944 = CC_DESIGN_SECURITY_CLASSIFICATION(#945,(#943)); +#945 = SECURITY_CLASSIFICATION('','',#59); +#946 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#945)); +#947 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#945)); +#948 = CC_DESIGN_APPROVAL(#70,(#945)); +#949 = PRODUCT_RELATED_PRODUCT_CATEGORY('detail',$,(#936)); +#950 = PRODUCT_CATEGORY_RELATIONSHIP('','',#951,#949); +#951 = PRODUCT_CATEGORY('part',$); +#952 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#51,(#935,#934) + ); +#953 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#53,(#936)); +#954 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#55,(#935)); +#955 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#956)); +#956 = SECURITY_CLASSIFICATION('','',#59); +#957 = CC_DESIGN_SECURITY_CLASSIFICATION(#956,(#935)); +#958 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#66,(#934)); +#959 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#956)); +#960 = CC_DESIGN_APPROVAL(#70,(#935,#934,#956)); +ENDSEC; +END-ISO-10303-21; diff --git a/tests/test_datasets/test_pipe_out_true.stp b/tests/test_datasets/test_pipe_out_true.stp new file mode 100644 index 0000000..045dfcc --- /dev/null +++ b/tests/test_datasets/test_pipe_out_true.stp @@ -0,0 +1,1408 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('Open CASCADE Model'),'2;1'); +FILE_NAME('Open CASCADE Shape Model','2016-11-24T19:55:03',('Author'),( + 'Open CASCADE'),'Open CASCADE STEP processor 6.7','Open CASCADE 6.7' + ,'Unknown'); +FILE_SCHEMA(('CONFIG_CONTROL_DESIGN')); +ENDSEC; +DATA; +#1 = APPLICATION_PROTOCOL_DEFINITION('international standard', + 'config_control_design',1994,#2); +#2 = APPLICATION_CONTEXT( +'configuration controlled 3D designs of mechanical parts and assemblies' + ); +#3 = SHAPE_DEFINITION_REPRESENTATION(#4,#10); +#4 = PRODUCT_DEFINITION_SHAPE('','',#5); +#5 = PRODUCT_DEFINITION('design','',#6,#9); +#6 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#7, + .NOT_KNOWN.); +#7 = PRODUCT('Open CASCADE STEP translator 6.7 2', + 'Open CASCADE STEP translator 6.7 2','',(#8)); +#8 = MECHANICAL_CONTEXT('',#2,'mechanical'); +#9 = DESIGN_CONTEXT('',#2,'design'); +#10 = SHAPE_REPRESENTATION('',(#11,#15,#19,#23,#27,#31,#35),#39); +#11 = AXIS2_PLACEMENT_3D('',#12,#13,#14); +#12 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.E+000)); +#13 = DIRECTION('',(0.E+000,0.E+000,1.)); +#14 = DIRECTION('',(1.,0.E+000,-0.E+000)); +#15 = AXIS2_PLACEMENT_3D('',#16,#17,#18); +#16 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.E+000)); +#17 = DIRECTION('',(0.E+000,0.E+000,1.)); +#18 = DIRECTION('',(1.,0.E+000,-0.E+000)); +#19 = AXIS2_PLACEMENT_3D('',#20,#21,#22); +#20 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.E+000)); +#21 = DIRECTION('',(0.E+000,0.E+000,1.)); +#22 = DIRECTION('',(1.,0.E+000,-0.E+000)); +#23 = AXIS2_PLACEMENT_3D('',#24,#25,#26); +#24 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.E+000)); +#25 = DIRECTION('',(0.E+000,0.E+000,1.)); +#26 = DIRECTION('',(1.,0.E+000,-0.E+000)); +#27 = AXIS2_PLACEMENT_3D('',#28,#29,#30); +#28 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.E+000)); +#29 = DIRECTION('',(0.E+000,0.E+000,1.)); +#30 = DIRECTION('',(1.,0.E+000,-0.E+000)); +#31 = AXIS2_PLACEMENT_3D('',#32,#33,#34); +#32 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.E+000)); +#33 = DIRECTION('',(0.E+000,0.E+000,1.)); +#34 = DIRECTION('',(1.,0.E+000,-0.E+000)); +#35 = AXIS2_PLACEMENT_3D('',#36,#37,#38); +#36 = CARTESIAN_POINT('',(0.E+000,0.E+000,0.E+000)); +#37 = DIRECTION('',(0.E+000,0.E+000,1.)); +#38 = DIRECTION('',(1.,0.E+000,-0.E+000)); +#39 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#43)) GLOBAL_UNIT_ASSIGNED_CONTEXT( +(#40,#41,#42)) REPRESENTATION_CONTEXT('Context #1', + '3D Context with UNIT and UNCERTAINTY') ); +#40 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); +#41 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); +#42 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); +#43 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-006),#40, + 'distance_accuracy_value','confusion accuracy'); +#44 = PRODUCT_RELATED_PRODUCT_CATEGORY('detail',$,(#7)); +#45 = PRODUCT_CATEGORY_RELATIONSHIP('','',#46,#44); +#46 = PRODUCT_CATEGORY('part',$); +#47 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#51,(#6,#5)); +#48 = PERSON_AND_ORGANIZATION(#49,#50); +#49 = PERSON('IP130.144.071.000,4589408','','',$,$,$); +#50 = ORGANIZATION('IP130.144.071.000','Unspecified',''); +#51 = PERSON_AND_ORGANIZATION_ROLE('creator'); +#52 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#53,(#7)); +#53 = PERSON_AND_ORGANIZATION_ROLE('design_owner'); +#54 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#55,(#6)); +#55 = PERSON_AND_ORGANIZATION_ROLE('design_supplier'); +#56 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#58)); +#57 = PERSON_AND_ORGANIZATION_ROLE('classification_officer'); +#58 = SECURITY_CLASSIFICATION('','',#59); +#59 = SECURITY_CLASSIFICATION_LEVEL('unclassified'); +#60 = CC_DESIGN_SECURITY_CLASSIFICATION(#58,(#6)); +#61 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#66,(#5)); +#62 = DATE_AND_TIME(#63,#64); +#63 = CALENDAR_DATE(2016,24,11); +#64 = LOCAL_TIME(19,55,$,#65); +#65 = COORDINATED_UNIVERSAL_TIME_OFFSET(1,$,.AHEAD.); +#66 = DATE_TIME_ROLE('creation_date'); +#67 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#58)); +#68 = DATE_TIME_ROLE('classification_date'); +#69 = CC_DESIGN_APPROVAL(#70,(#6,#5,#58)); +#70 = APPROVAL(#71,''); +#71 = APPROVAL_STATUS('not_yet_approved'); +#72 = APPROVAL_PERSON_ORGANIZATION(#48,#70,#73); +#73 = APPROVAL_ROLE('approver'); +#74 = APPROVAL_DATE_TIME(#62,#70); +#75 = MANIFOLD_SURFACE_SHAPE_REPRESENTATION('',(#11,#76),#126); +#76 = SHELL_BASED_SURFACE_MODEL('',(#77)); +#77 = OPEN_SHELL('',(#78)); +#78 = ADVANCED_FACE('',(#79),#109,.T.); +#79 = FACE_BOUND('',#80,.T.); +#80 = EDGE_LOOP('',(#81)); +#81 = ORIENTED_EDGE('',*,*,#82,.T.); +#82 = EDGE_CURVE('',#83,#83,#85,.T.); +#83 = VERTEX_POINT('',#84); +#84 = CARTESIAN_POINT('',(1.125183333333E+003,-1.224646799147E-013, + 1.E+004)); +#85 = SURFACE_CURVE('',#86,(#108),.PCURVE_S1.); +#86 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#87,#88,#89,#90,#91,#92,#93,#94, + #95,#96,#97,#98,#99,#100,#101,#102,#103,#104,#105,#106,#107), + .UNSPECIFIED.,.T.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2),( + 0.E+000,0.314159265359,0.628318530718,0.942477796077,1.256637061436, + 1.570796326795,1.884955592154,2.199114857513,2.513274122872, + 2.827433388231,3.14159265359,3.455751918949,3.769911184308, + 4.084070449667,4.398229715026,4.712388980385,5.026548245744, + 5.340707511103,5.654866776462,5.969026041821,6.28318530718), + .PIECEWISE_BEZIER_KNOTS.); +#87 = CARTESIAN_POINT('',(1.125183333333E+003,-1.224646799147E-013, + 1.E+004)); +#88 = CARTESIAN_POINT('',(1.065412225436E+003,293.81193771158,1.E+004)); +#89 = CARTESIAN_POINT('',(919.06672423004,581.10858111491,1.E+004)); +#90 = CARTESIAN_POINT('',(686.34926929388,813.82603605107,1.E+004)); +#91 = CARTESIAN_POINT('',(403.36091704071,955.86324610697,1.E+004)); +#92 = CARTESIAN_POINT('',(125.18333333333,1.E+003,1.E+004)); +#93 = CARTESIAN_POINT('',(-130.8935064746,955.86324610697,1.E+004)); +#94 = CARTESIAN_POINT('',(-342.7590930791,813.82603605107,1.E+004)); +#95 = CARTESIAN_POINT('',(-458.9471610803,581.10858111491,1.E+004)); +#96 = CARTESIAN_POINT('',(-461.4336563795,293.81193771158,1.E+004)); +#97 = CARTESIAN_POINT('',(-374.0833333333,-4.275563696116E-012,1.E+004) + ); +#98 = CARTESIAN_POINT('',(-220.5602464004,-293.8119377115,1.E+004)); +#99 = CARTESIAN_POINT('',(-10.09508723652,-581.1085811149,1.E+004)); +#100 = CARTESIAN_POINT('',(222.62236769963,-813.826036051,1.E+004)); +#101 = CARTESIAN_POINT('',(441.49106199495,-955.8632461069,1.E+004)); +#102 = CARTESIAN_POINT('',(625.91666666666,-1.E+003,1.E+004)); +#103 = CARTESIAN_POINT('',(788.24152743901,-955.8632461069,1.E+004)); +#104 = CARTESIAN_POINT('',(935.98745608567,-813.826036051,1.E+004)); +#105 = CARTESIAN_POINT('',(1.052175524087E+003,-581.1085811149,1.E+004) + ); +#106 = CARTESIAN_POINT('',(1.118781677344E+003,-293.8119377115,1.E+004) + ); +#107 = CARTESIAN_POINT('',(1.125183333333E+003,-1.224646799147E-013, + 1.E+004)); +#108 = PCURVE('',#109,#114); +#109 = B_SPLINE_SURFACE_WITH_KNOTS('',1,1,( + (#110,#111) + ,(#112,#113 + )),.UNSPECIFIED.,.F.,.F.,.F.,(2,2),(2,2),(-1.5E+003,1.5E+003),( + -1.5E+003,1.5E+003),.PIECEWISE_BEZIER_KNOTS.); +#110 = CARTESIAN_POINT('',(2.2,-1.5E+003,1.E+004)); +#111 = CARTESIAN_POINT('',(-1.5E+003,1.5E+003,1.E+004)); +#112 = CARTESIAN_POINT('',(1.5E+003,-1.5E+003,1.E+004)); +#113 = CARTESIAN_POINT('',(1.5E+003,1.5E+003,1.E+004)); +#114 = DEFINITIONAL_REPRESENTATION('',(#115),#125); +#115 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#116,#117,#118,#119,#120,#121 +,#122,#123,#124),.UNSPECIFIED.,.F.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2 + ,2,2,2,1),(-1.570796326795,0.E+000,1.570796326795,3.14159265359, +4.712388980385,6.28318530718,7.853981633974),.UNSPECIFIED.) CURVE() +GEOMETRIC_REPRESENTATION_ITEM() RATIONAL_B_SPLINE_CURVE((1., + 0.707106781187,1.,0.707106781187,1.,0.707106781187,1.,0.707106781187 +,1.)) REPRESENTATION_ITEM('') ); +#116 = CARTESIAN_POINT('',(1.E+003,-1.224646799147E-013)); +#117 = CARTESIAN_POINT('',(1.E+003,1.E+003)); +#118 = CARTESIAN_POINT('',(6.123233995737E-014,1.E+003)); +#119 = CARTESIAN_POINT('',(-1.E+003,1.E+003)); +#120 = CARTESIAN_POINT('',(-1.E+003,1.224646799147E-013)); +#121 = CARTESIAN_POINT('',(-1.E+003,-1.E+003)); +#122 = CARTESIAN_POINT('',(-1.836970198721E-013,-1.E+003)); +#123 = CARTESIAN_POINT('',(1.E+003,-1.E+003)); +#124 = CARTESIAN_POINT('',(1.E+003,-1.224646799147E-013)); +#125 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#126 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#130)) GLOBAL_UNIT_ASSIGNED_CONTEXT +((#127,#128,#129)) REPRESENTATION_CONTEXT('Context #1', + '3D Context with UNIT and UNCERTAINTY') ); +#127 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); +#128 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); +#129 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); +#130 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-006),#127, + 'distance_accuracy_value','confusion accuracy'); +#131 = SHAPE_DEFINITION_REPRESENTATION(#132,#75); +#132 = PRODUCT_DEFINITION_SHAPE('','',#133); +#133 = PRODUCT_DEFINITION('design','',#134,#137); +#134 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#135, + .NOT_KNOWN.); +#135 = PRODUCT('Open CASCADE STEP translator 6.7 2.1', + 'Open CASCADE STEP translator 6.7 2.1','',(#136)); +#136 = MECHANICAL_CONTEXT('',#2,'mechanical'); +#137 = DESIGN_CONTEXT('',#2,'design'); +#138 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#139,#141); +#139 = ( REPRESENTATION_RELATIONSHIP('','',#75,#10) +REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#140) +SHAPE_REPRESENTATION_RELATIONSHIP() ); +#140 = ITEM_DEFINED_TRANSFORMATION('','',#11,#15); +#141 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#142 + ); +#142 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('7','','',#5,#133,$); +#143 = CC_DESIGN_SECURITY_CLASSIFICATION(#144,(#142)); +#144 = SECURITY_CLASSIFICATION('','',#59); +#145 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#144)); +#146 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#144)); +#147 = CC_DESIGN_APPROVAL(#70,(#144)); +#148 = PRODUCT_RELATED_PRODUCT_CATEGORY('detail',$,(#135)); +#149 = PRODUCT_CATEGORY_RELATIONSHIP('','',#150,#148); +#150 = PRODUCT_CATEGORY('part',$); +#151 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#51,(#134,#133) + ); +#152 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#53,(#135)); +#153 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#55,(#134)); +#154 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#155)); +#155 = SECURITY_CLASSIFICATION('','',#59); +#156 = CC_DESIGN_SECURITY_CLASSIFICATION(#155,(#134)); +#157 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#66,(#133)); +#158 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#155)); +#159 = CC_DESIGN_APPROVAL(#70,(#134,#133,#155)); +#160 = MANIFOLD_SURFACE_SHAPE_REPRESENTATION('',(#11,#161),#211); +#161 = SHELL_BASED_SURFACE_MODEL('',(#162)); +#162 = OPEN_SHELL('',(#163)); +#163 = ADVANCED_FACE('',(#164),#194,.T.); +#164 = FACE_BOUND('',#165,.T.); +#165 = EDGE_LOOP('',(#166)); +#166 = ORIENTED_EDGE('',*,*,#167,.T.); +#167 = EDGE_CURVE('',#168,#168,#170,.T.); +#168 = VERTEX_POINT('',#169); +#169 = CARTESIAN_POINT('',(1.E+003,125.35833333333,0.E+000)); +#170 = SURFACE_CURVE('',#171,(#193),.PCURVE_S1.); +#171 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#172,#173,#174,#175,#176,#177, + #178,#179,#180,#181,#182,#183,#184,#185,#186,#187,#188,#189,#190, + #191,#192),.UNSPECIFIED.,.T.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(0.E+000,0.314159265359,0.628318530718,0.942477796077, + 1.256637061436,1.570796326795,1.884955592154,2.199114857513, + 2.513274122872,2.827433388231,3.14159265359,3.455751918949, + 3.769911184308,4.084070449667,4.398229715026,4.712388980385, + 5.026548245744,5.340707511103,5.654866776462,5.969026041821, + 6.28318530718),.PIECEWISE_BEZIER_KNOTS.); +#172 = CARTESIAN_POINT('',(1.E+003,125.35833333333,0.E+000)); +#173 = CARTESIAN_POINT('',(955.86324610697,-130.6657547068,0.E+000)); +#174 = CARTESIAN_POINT('',(813.82603605107,-342.4258924901,0.E+000)); +#175 = CARTESIAN_POINT('',(581.10858111492,-458.4510582728,0.E+000)); +#176 = CARTESIAN_POINT('',(293.81193771159,-460.7424686958,0.E+000)); +#177 = CARTESIAN_POINT('',(2.501110429876E-012,-373.2083333333,0.E+000) + ); +#178 = CARTESIAN_POINT('',(-293.8119377115,-219.5323298118,0.E+000)); +#179 = CARTESIAN_POINT('',(-581.1085811149,-8.971511818797,0.E+000)); +#180 = CARTESIAN_POINT('',(-813.826036051,223.74594311736,0.E+000)); +#181 = CARTESIAN_POINT('',(-955.8632461069,442.51897858355,0.E+000)); +#182 = CARTESIAN_POINT('',(-1.E+003,626.79166666666,0.E+000)); +#183 = CARTESIAN_POINT('',(-955.8632461069,788.93271512269,0.E+000)); +#184 = CARTESIAN_POINT('',(-813.826036051,936.48355889318,0.E+000)); +#185 = CARTESIAN_POINT('',(-581.1085811149,1.052508724676E+003,0.E+000) + ); +#186 = CARTESIAN_POINT('',(-293.8119377115,1.119009429112E+003,0.E+000) + ); +#187 = CARTESIAN_POINT('',(2.215227548872E-012,1.125358333333E+003, + 0.E+000)); +#188 = CARTESIAN_POINT('',(293.81193771159,1.065565369396E+003,0.E+000) + ); +#189 = CARTESIAN_POINT('',(581.10858111492,919.21384541575,0.E+000)); +#190 = CARTESIAN_POINT('',(813.82603605107,686.49639047959,0.E+000)); +#191 = CARTESIAN_POINT('',(955.86324610697,403.51406100063,0.E+000)); +#192 = CARTESIAN_POINT('',(1.E+003,125.35833333333,0.E+000)); +#193 = PCURVE('',#194,#199); +#194 = B_SPLINE_SURFACE_WITH_KNOTS('',1,1,( + (#195,#196) + ,(#197,#198 + )),.UNSPECIFIED.,.F.,.F.,.F.,(2,2),(2,2),(-1.5E+003,1.5E+003),( + -1.5E+003,1.5E+003),.PIECEWISE_BEZIER_KNOTS.); +#195 = CARTESIAN_POINT('',(-1.5E+003,1.5E+003,0.E+000)); +#196 = CARTESIAN_POINT('',(-1.5E+003,4.3,0.E+000)); +#197 = CARTESIAN_POINT('',(1.5E+003,1.5E+003,0.E+000)); +#198 = CARTESIAN_POINT('',(1.5E+003,-1.5E+003,0.E+000)); +#199 = DEFINITIONAL_REPRESENTATION('',(#200),#210); +#200 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#201,#202,#203,#204,#205,#206 +,#207,#208,#209),.UNSPECIFIED.,.F.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2 + ,2,2,2,1),(-1.570796326795,0.E+000,1.570796326795,3.14159265359, +4.712388980385,6.28318530718,7.853981633974),.UNSPECIFIED.) CURVE() +GEOMETRIC_REPRESENTATION_ITEM() RATIONAL_B_SPLINE_CURVE((1., + 0.707106781187,1.,0.707106781187,1.,0.707106781187,1.,0.707106781187 +,1.)) REPRESENTATION_ITEM('') ); +#201 = CARTESIAN_POINT('',(1.E+003,-1.224646799147E-013)); +#202 = CARTESIAN_POINT('',(1.E+003,1.E+003)); +#203 = CARTESIAN_POINT('',(6.123233995737E-014,1.E+003)); +#204 = CARTESIAN_POINT('',(-1.E+003,1.E+003)); +#205 = CARTESIAN_POINT('',(-1.E+003,1.224646799147E-013)); +#206 = CARTESIAN_POINT('',(-1.E+003,-1.E+003)); +#207 = CARTESIAN_POINT('',(-1.836970198721E-013,-1.E+003)); +#208 = CARTESIAN_POINT('',(1.E+003,-1.E+003)); +#209 = CARTESIAN_POINT('',(1.E+003,-1.224646799147E-013)); +#210 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#211 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#215)) GLOBAL_UNIT_ASSIGNED_CONTEXT +((#212,#213,#214)) REPRESENTATION_CONTEXT('Context #1', + '3D Context with UNIT and UNCERTAINTY') ); +#212 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); +#213 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); +#214 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); +#215 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-006),#212, + 'distance_accuracy_value','confusion accuracy'); +#216 = SHAPE_DEFINITION_REPRESENTATION(#217,#160); +#217 = PRODUCT_DEFINITION_SHAPE('','',#218); +#218 = PRODUCT_DEFINITION('design','',#219,#222); +#219 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#220, + .NOT_KNOWN.); +#220 = PRODUCT('Open CASCADE STEP translator 6.7 2.2', + 'Open CASCADE STEP translator 6.7 2.2','',(#221)); +#221 = MECHANICAL_CONTEXT('',#2,'mechanical'); +#222 = DESIGN_CONTEXT('',#2,'design'); +#223 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#224,#226); +#224 = ( REPRESENTATION_RELATIONSHIP('','',#160,#10) +REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#225) +SHAPE_REPRESENTATION_RELATIONSHIP() ); +#225 = ITEM_DEFINED_TRANSFORMATION('','',#11,#19); +#226 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#227 + ); +#227 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('8','','',#5,#218,$); +#228 = CC_DESIGN_SECURITY_CLASSIFICATION(#229,(#227)); +#229 = SECURITY_CLASSIFICATION('','',#59); +#230 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#229)); +#231 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#229)); +#232 = CC_DESIGN_APPROVAL(#70,(#229)); +#233 = PRODUCT_RELATED_PRODUCT_CATEGORY('detail',$,(#220)); +#234 = PRODUCT_CATEGORY_RELATIONSHIP('','',#235,#233); +#235 = PRODUCT_CATEGORY('part',$); +#236 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#51,(#219,#218) + ); +#237 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#53,(#220)); +#238 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#55,(#219)); +#239 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#240)); +#240 = SECURITY_CLASSIFICATION('','',#59); +#241 = CC_DESIGN_SECURITY_CLASSIFICATION(#240,(#219)); +#242 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#66,(#218)); +#243 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#240)); +#244 = CC_DESIGN_APPROVAL(#70,(#219,#218,#240)); +#245 = MANIFOLD_SURFACE_SHAPE_REPRESENTATION('',(#11,#246),#390); +#246 = SHELL_BASED_SURFACE_MODEL('',(#247)); +#247 = OPEN_SHELL('',(#248)); +#248 = ADVANCED_FACE('',(#249),#281,.T.); +#249 = FACE_BOUND('',#250,.T.); +#250 = EDGE_LOOP('',(#251,#293,#326,#359)); +#251 = ORIENTED_EDGE('',*,*,#252,.T.); +#252 = EDGE_CURVE('',#253,#255,#257,.T.); +#253 = VERTEX_POINT('',#254); +#254 = CARTESIAN_POINT('',(-3.591724464513E-007,-1.E+003,1.E+004)); +#255 = VERTEX_POINT('',#256); +#256 = CARTESIAN_POINT('',(-3.591725032948E-007,-1.E+003, + -1.091393642128E-011)); +#257 = SURFACE_CURVE('',#258,(#280),.PCURVE_S1.); +#258 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#259,#260,#261,#262,#263,#264, + #265,#266,#267,#268,#269,#270,#271,#272,#273,#274,#275,#276,#277, + #278,#279),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(0.E+000,5.E-002,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5, + 0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.), + .PIECEWISE_BEZIER_KNOTS.); +#259 = CARTESIAN_POINT('',(-3.591724464513E-007,-1.E+003,1.E+004)); +#260 = CARTESIAN_POINT('',(-3.591724492935E-007,-1.E+003,9.5E+003)); +#261 = CARTESIAN_POINT('',(-3.591724521357E-007,-1.E+003,9.E+003)); +#262 = CARTESIAN_POINT('',(-3.591724549779E-007,-1.E+003,8.5E+003)); +#263 = CARTESIAN_POINT('',(-3.5917245782E-007,-1.E+003,8.E+003)); +#264 = CARTESIAN_POINT('',(-3.591724606622E-007,-1.E+003,7.5E+003)); +#265 = CARTESIAN_POINT('',(-3.591724635044E-007,-1.E+003,7.E+003)); +#266 = CARTESIAN_POINT('',(-3.591724663465E-007,-1.E+003,6.5E+003)); +#267 = CARTESIAN_POINT('',(-3.591724691887E-007,-1.E+003,6.E+003)); +#268 = CARTESIAN_POINT('',(-3.591724720309E-007,-1.E+003,5.5E+003)); +#269 = CARTESIAN_POINT('',(-3.59172474873E-007,-1.E+003,5.E+003)); +#270 = CARTESIAN_POINT('',(-3.591724777152E-007,-1.E+003,4.5E+003)); +#271 = CARTESIAN_POINT('',(-3.591724805574E-007,-1.E+003,4.E+003)); +#272 = CARTESIAN_POINT('',(-3.591724833996E-007,-1.E+003,3.5E+003)); +#273 = CARTESIAN_POINT('',(-3.591724862417E-007,-1.E+003,3.E+003)); +#274 = CARTESIAN_POINT('',(-3.591724890839E-007,-1.E+003,2.5E+003)); +#275 = CARTESIAN_POINT('',(-3.591724919261E-007,-1.E+003,2.E+003)); +#276 = CARTESIAN_POINT('',(-3.591724947682E-007,-1.E+003,1.5E+003)); +#277 = CARTESIAN_POINT('',(-3.591724976104E-007,-1.E+003,999.99999999999 + )); +#278 = CARTESIAN_POINT('',(-3.591725004526E-007,-1.E+003,499.99999999999 + )); +#279 = CARTESIAN_POINT('',(-3.591725032948E-007,-1.E+003, + -1.091393642128E-011)); +#280 = PCURVE('',#281,#288); +#281 = ( BOUNDED_SURFACE() B_SPLINE_SURFACE(1,2,( + (#282,#283,#284) + ,(#285,#286,#287 +)),.UNSPECIFIED.,.F.,.F.,.F.) B_SPLINE_SURFACE_WITH_KNOTS((2,2),(3,3),( + 0.E+000,1.),(4.71238898,6.283185308),.PIECEWISE_BEZIER_KNOTS.) +GEOMETRIC_REPRESENTATION_ITEM() RATIONAL_B_SPLINE_SURFACE(( + (1.,0.70710678076,1.) +,(1.,0.70710678076,1.))) REPRESENTATION_ITEM('') SURFACE() ); +#282 = CARTESIAN_POINT('',(-3.591724924E-007,-1.E+003,1.E+004)); +#283 = CARTESIAN_POINT('',(1.000000000846E+003,-1.000000000359E+003,0.5) + ); +#284 = CARTESIAN_POINT('',(1.E+003,8.459310188557E-007,1.E+004)); +#285 = CARTESIAN_POINT('',(-3.591724924E-007,-1.E+003, + -1.091393642128E-011)); +#286 = CARTESIAN_POINT('',(7.2,-1.000000000359E+003,-1.091393642128E-011 + )); +#287 = CARTESIAN_POINT('',(1.E+003,8.459310188557E-007, + -1.091393642128E-011)); +#288 = DEFINITIONAL_REPRESENTATION('',(#289),#292); +#289 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#290,#291),.UNSPECIFIED.,.F.,.F., + (2,2),(0.E+000,1.),.PIECEWISE_BEZIER_KNOTS.); +#290 = CARTESIAN_POINT('',(0.E+000,4.71238898)); +#291 = CARTESIAN_POINT('',(1.,4.71238898)); +#292 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#293 = ORIENTED_EDGE('',*,*,#294,.T.); +#294 = EDGE_CURVE('',#255,#295,#297,.T.); +#295 = VERTEX_POINT('',#296); +#296 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007, + -1.091393642128E-011)); +#297 = SURFACE_CURVE('',#298,(#320),.PCURVE_S1.); +#298 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#299,#300,#301,#302,#303,#304, + #305,#306,#307,#308,#309,#310,#311,#312,#313,#314,#315,#316,#317, + #318,#319),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(4.71238898,4.7909287964,4.8694686128,4.9480084292, + 5.0265482456,5.105088062,5.1836278784,5.2621676948,5.3407075112, + 5.4192473276,5.497787144,5.5763269604,5.6548667768,5.7334065932, + 5.8119464096,5.890486226,5.9690260424,6.0475658588,6.1261056752, + 6.2046454916,6.283185308),.PIECEWISE_BEZIER_KNOTS.); +#299 = CARTESIAN_POINT('',(-3.591725032948E-007,-1.E+003, + -1.091393642128E-011)); +#300 = CARTESIAN_POINT('',(3.069056776212,-997.4284469285, + -1.122630678916E-011)); +#301 = CARTESIAN_POINT('',(11.523962375897,-989.4434505202, + -1.152135102794E-011)); +#302 = CARTESIAN_POINT('',(25.719154077622,-975.6838835078, + -1.0811963146E-011)); +#303 = CARTESIAN_POINT('',(45.934414968703,-955.8632461526, + -1.103908955193E-011)); +#304 = CARTESIAN_POINT('',(72.356456398797,-929.7883010974, + -1.123886160279E-011)); +#305 = CARTESIAN_POINT('',(105.0625799837,-897.3756500092, + -1.08892353058E-011)); +#306 = CARTESIAN_POINT('',(144.00789791316,-858.6647591909, + -1.101802737447E-011)); +#307 = CARTESIAN_POINT('',(189.01749308533,-813.8260359911, + -1.111190284706E-011)); +#308 = CARTESIAN_POINT('',(239.78461608144,-763.1628409725, + -1.11689999177E-011)); +#309 = CARTESIAN_POINT('',(295.87555642938,-707.1067810144, + -1.118816289203E-011)); +#310 = CARTESIAN_POINT('',(356.74123783905,-646.206219158, + -1.11689999177E-011)); +#311 = CARTESIAN_POINT('',(421.73494816045,-581.1085808027, + -1.111190284706E-011)); +#312 = CARTESIAN_POINT('',(490.13501841998,-512.5376385156, + -1.101802737447E-011)); +#313 = CARTESIAN_POINT('',(561.17080248337,-441.2674272875, + -1.08892353058E-011)); +#314 = CARTESIAN_POINT('',(634.05004820191,-368.0947090208, + -1.123886160279E-011)); +#315 = CARTESIAN_POINT('',(707.98572370148,-293.8119370976, + -1.103908955193E-011)); +#316 = CARTESIAN_POINT('',(782.22055786526,-219.1824793519, + -1.0811963146E-011)); +#317 = CARTESIAN_POINT('',(856.0479242062,-144.9194882788, + -1.152135102794E-011)); +#318 = CARTESIAN_POINT('',(928.82817098351,-71.66933227062, + -1.122630678916E-011)); +#319 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007, + -1.091393642128E-011)); +#320 = PCURVE('',#281,#321); +#321 = DEFINITIONAL_REPRESENTATION('',(#322),#325); +#322 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#323,#324),.UNSPECIFIED.,.F.,.F., + (2,2),(4.71238898,6.283185308),.PIECEWISE_BEZIER_KNOTS.); +#323 = CARTESIAN_POINT('',(1.,4.71238898)); +#324 = CARTESIAN_POINT('',(1.,6.283185308)); +#325 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#326 = ORIENTED_EDGE('',*,*,#327,.T.); +#327 = EDGE_CURVE('',#295,#328,#330,.T.); +#328 = VERTEX_POINT('',#329); +#329 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,1.E+004)); +#330 = SURFACE_CURVE('',#331,(#353),.PCURVE_S1.); +#331 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#332,#333,#334,#335,#336,#337, + #338,#339,#340,#341,#342,#343,#344,#345,#346,#347,#348,#349,#350, + #351,#352),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(-1.,-0.95,-0.9,-0.85,-0.8,-0.75,-0.7,-0.65,-0.6,-0.55,-0.5 + ,-0.45,-0.4,-0.35,-0.3,-0.25,-0.2,-0.15,-1.E-001,-5.E-002,0.E+000), + .UNSPECIFIED.); +#332 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007, + -1.091393642128E-011)); +#333 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,499.99999999999) + ); +#334 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,999.99999999999) + ); +#335 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,1.5E+003)); +#336 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,2.E+003)); +#337 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,2.5E+003)); +#338 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,3.E+003)); +#339 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,3.5E+003)); +#340 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,4.E+003)); +#341 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,4.5E+003)); +#342 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,5.E+003)); +#343 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,5.5E+003)); +#344 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,6.E+003)); +#345 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,6.5E+003)); +#346 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,7.E+003)); +#347 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,7.5E+003)); +#348 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,8.E+003)); +#349 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,8.5E+003)); +#350 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,9.E+003)); +#351 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,9.5E+003)); +#352 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,1.E+004)); +#353 = PCURVE('',#281,#354); +#354 = DEFINITIONAL_REPRESENTATION('',(#355),#358); +#355 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#356,#357),.UNSPECIFIED.,.F.,.F., + (2,2),(-1.,0.E+000),.PIECEWISE_BEZIER_KNOTS.); +#356 = CARTESIAN_POINT('',(1.,6.283185308)); +#357 = CARTESIAN_POINT('',(0.E+000,6.283185308)); +#358 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#359 = ORIENTED_EDGE('',*,*,#360,.T.); +#360 = EDGE_CURVE('',#328,#253,#361,.T.); +#361 = SURFACE_CURVE('',#362,(#384),.PCURVE_S1.); +#362 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#363,#364,#365,#366,#367,#368, + #369,#370,#371,#372,#373,#374,#375,#376,#377,#378,#379,#380,#381, + #382,#383),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(-6.283185308,-6.2046454916,-6.1261056752,-6.0475658588, + -5.9690260424,-5.890486226,-5.8119464096,-5.7334065932,-5.6548667768 + ,-5.5763269604,-5.497787144,-5.4192473276,-5.3407075112, + -5.2621676948,-5.1836278784,-5.105088062,-5.0265482456,-4.9480084292 + ,-4.8694686128,-4.7909287964,-4.71238898),.PIECEWISE_BEZIER_KNOTS.); +#363 = CARTESIAN_POINT('',(1.E+003,8.459310265607E-007,1.E+004)); +#364 = CARTESIAN_POINT('',(997.42844696343,-71.66933227062, + 9.30905674952E+003)); +#365 = CARTESIAN_POINT('',(989.44345059078,-144.9194882788, + 8.656437787121E+003)); +#366 = CARTESIAN_POINT('',(975.68388361452,-219.1824793519, + 8.051433799173E+003)); +#367 = CARTESIAN_POINT('',(955.86324629568,-293.8119370976, + 7.503373000535E+003)); +#368 = CARTESIAN_POINT('',(929.78830127659,-368.0947090208, + 7.021318836522E+003)); +#369 = CARTESIAN_POINT('',(897.37565022404,-441.2674272875, + 6.613738545409E+003)); +#370 = CARTESIAN_POINT('',(858.66475944039,-512.5376385156, + 6.288161621481E+003)); +#371 = CARTESIAN_POINT('',(813.82603627399,-581.1085808027, + 6.050851297088E+003)); +#372 = CARTESIAN_POINT('',(763.16284128713,-646.206219158, + 5.906514081168E+003)); +#373 = CARTESIAN_POINT('',(707.10678135864,-707.1067810144, + 5.858071484512E+003)); +#374 = CARTESIAN_POINT('',(646.20621952952,-763.1628409725, + 5.906514081168E+003)); +#375 = CARTESIAN_POINT('',(581.10858119886,-813.8260359911, + 6.050851297088E+003)); +#376 = CARTESIAN_POINT('',(512.53763893358,-858.6647591909, + 6.288161621481E+003)); +#377 = CARTESIAN_POINT('',(441.26742772436,-897.3756500092, + 6.613738545409E+003)); +#378 = CARTESIAN_POINT('',(368.09470947347,-929.7883010974, + 7.021318836522E+003)); +#379 = CARTESIAN_POINT('',(293.81193756291,-955.8632461526, + 7.503373000535E+003)); +#380 = CARTESIAN_POINT('',(219.18247982688,-975.6838835078, + 8.051433799173E+003)); +#381 = CARTESIAN_POINT('',(144.91948876047,-989.4434505202, + 8.656437787121E+003)); +#382 = CARTESIAN_POINT('',(71.669332756129,-997.4284469285, + 9.30905674952E+003)); +#383 = CARTESIAN_POINT('',(-3.591724464513E-007,-1.E+003,1.E+004)); +#384 = PCURVE('',#281,#385); +#385 = DEFINITIONAL_REPRESENTATION('',(#386),#389); +#386 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#387,#388),.UNSPECIFIED.,.F.,.F., + (2,2),(-6.283185308,-4.71238898),.PIECEWISE_BEZIER_KNOTS.); +#387 = CARTESIAN_POINT('',(0.E+000,6.283185308)); +#388 = CARTESIAN_POINT('',(0.E+000,4.71238898)); +#389 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#390 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#394)) GLOBAL_UNIT_ASSIGNED_CONTEXT +((#391,#392,#393)) REPRESENTATION_CONTEXT('Context #1', + '3D Context with UNIT and UNCERTAINTY') ); +#391 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); +#392 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); +#393 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); +#394 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-006),#391, + 'distance_accuracy_value','confusion accuracy'); +#395 = SHAPE_DEFINITION_REPRESENTATION(#396,#245); +#396 = PRODUCT_DEFINITION_SHAPE('','',#397); +#397 = PRODUCT_DEFINITION('design','',#398,#401); +#398 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#399, + .NOT_KNOWN.); +#399 = PRODUCT('Open CASCADE STEP translator 6.7 2.3', + 'Open CASCADE STEP translator 6.7 2.3','',(#400)); +#400 = MECHANICAL_CONTEXT('',#2,'mechanical'); +#401 = DESIGN_CONTEXT('',#2,'design'); +#402 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#403,#405); +#403 = ( REPRESENTATION_RELATIONSHIP('','',#245,#10) +REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#404) +SHAPE_REPRESENTATION_RELATIONSHIP() ); +#404 = ITEM_DEFINED_TRANSFORMATION('','',#11,#23); +#405 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#406 + ); +#406 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('9','','',#5,#397,$); +#407 = CC_DESIGN_SECURITY_CLASSIFICATION(#408,(#406)); +#408 = SECURITY_CLASSIFICATION('','',#59); +#409 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#408)); +#410 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#408)); +#411 = CC_DESIGN_APPROVAL(#70,(#408)); +#412 = PRODUCT_RELATED_PRODUCT_CATEGORY('detail',$,(#399)); +#413 = PRODUCT_CATEGORY_RELATIONSHIP('','',#414,#412); +#414 = PRODUCT_CATEGORY('part',$); +#415 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#51,(#398,#397) + ); +#416 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#53,(#399)); +#417 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#55,(#398)); +#418 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#419)); +#419 = SECURITY_CLASSIFICATION('','',#59); +#420 = CC_DESIGN_SECURITY_CLASSIFICATION(#419,(#398)); +#421 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#66,(#397)); +#422 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#419)); +#423 = CC_DESIGN_APPROVAL(#70,(#398,#397,#419)); +#424 = MANIFOLD_SURFACE_SHAPE_REPRESENTATION('',(#11,#425),#569); +#425 = SHELL_BASED_SURFACE_MODEL('',(#426)); +#426 = OPEN_SHELL('',(#427)); +#427 = ADVANCED_FACE('',(#428),#460,.T.); +#428 = FACE_BOUND('',#429,.T.); +#429 = EDGE_LOOP('',(#430,#472,#505,#538)); +#430 = ORIENTED_EDGE('',*,*,#431,.T.); +#431 = EDGE_CURVE('',#432,#434,#436,.T.); +#432 = VERTEX_POINT('',#433); +#433 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,1.E+004)); +#434 = VERTEX_POINT('',#435); +#435 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007, + -7.275957614183E-012)); +#436 = SURFACE_CURVE('',#437,(#459),.PCURVE_S1.); +#437 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#438,#439,#440,#441,#442,#443, + #444,#445,#446,#447,#448,#449,#450,#451,#452,#453,#454,#455,#456, + #457,#458),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(0.E+000,5.E-002,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5, + 0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.), + .PIECEWISE_BEZIER_KNOTS.); +#438 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,1.E+004)); +#439 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,9.5E+003)); +#440 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,9.E+003)); +#441 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,8.5E+003)); +#442 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,8.E+003)); +#443 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,7.5E+003)); +#444 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,7.E+003)); +#445 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,6.5E+003)); +#446 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,6.E+003)); +#447 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,5.5E+003)); +#448 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,5.E+003)); +#449 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,4.5E+003)); +#450 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,4.E+003)); +#451 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,3.5E+003)); +#452 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,3.E+003)); +#453 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,2.5E+003)); +#454 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,2.E+003)); +#455 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,1.5E+003)); +#456 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,999.99999999999 + )); +#457 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,499.99999999999 + )); +#458 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007, + -7.275957614183E-012)); +#459 = PCURVE('',#460,#467); +#460 = ( BOUNDED_SURFACE() B_SPLINE_SURFACE(1,2,( + (#461,#462,#463) + ,(#464,#465,#466 +)),.UNSPECIFIED.,.F.,.F.,.F.) B_SPLINE_SURFACE_WITH_KNOTS((2,2),(3,3),( + 0.E+000,1.),(4.71238898,6.283185307),.PIECEWISE_BEZIER_KNOTS.) +GEOMETRIC_REPRESENTATION_ITEM() RATIONAL_B_SPLINE_SURFACE(( + (1.,0.707106781114,1.) +,(1.,0.707106781114,1.))) REPRESENTATION_ITEM('') SURFACE() ); +#461 = CARTESIAN_POINT('',(-1.E+003,-4.357241234E-007,1.E+004)); +#462 = CARTESIAN_POINT('',(-999.9999995642,-1.000000000641E+003,1.E+004) + ); +#463 = CARTESIAN_POINT('',(6.408275519153E-007,-1.2,1.E+004)); +#464 = CARTESIAN_POINT('',(-1.E+003,-4.357241234E-007, + -7.275957614183E-012)); +#465 = CARTESIAN_POINT('',(-999.9999995642,-1.000000000641E+003, + -7.275957614183E-012)); +#466 = CARTESIAN_POINT('',(6.408275519153E-007,-1.E+003, + -7.275957614183E-012)); +#467 = DEFINITIONAL_REPRESENTATION('',(#468),#471); +#468 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#469,#470),.UNSPECIFIED.,.F.,.F., + (2,2),(0.E+000,1.),.PIECEWISE_BEZIER_KNOTS.); +#469 = CARTESIAN_POINT('',(0.E+000,4.71238898)); +#470 = CARTESIAN_POINT('',(1.,4.71238898)); +#471 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#472 = ORIENTED_EDGE('',*,*,#473,.T.); +#473 = EDGE_CURVE('',#434,#474,#476,.T.); +#474 = VERTEX_POINT('',#475); +#475 = CARTESIAN_POINT('',(6.408276931325E-007,-1000., + -7.275957614183E-012)); +#476 = SURFACE_CURVE('',#477,(#499),.PCURVE_S1.); +#477 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#478,#479,#480,#481,#482,#483, + #484,#485,#486,#487,#488,#489,#490,#491,#492,#493,#494,#495,#496, + #497,#498),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(4.71238898,4.79092879635,4.8694686127,4.94800842905, + 5.0265482454,5.10508806175,5.1836278781,5.26216769445,5.3407075108, + 5.41924732715,5.4977871435,5.57632695985,5.6548667762,5.73340659255, + 5.8119464089,5.89048622525,5.9690260416,6.04756585795,6.1261056743, + 6.20464549065,6.283185307),.PIECEWISE_BEZIER_KNOTS.); +#478 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007, + -7.275957614183E-012)); +#479 = CARTESIAN_POINT('',(-997.4284468742,-71.66933351195, + -6.548678960118E-012)); +#480 = CARTESIAN_POINT('',(-989.4434504163,-144.91948947, + -6.720788099178E-012)); +#481 = CARTESIAN_POINT('',(-975.6838833602,-219.1824804836, + -7.863245923594E-012)); +#482 = CARTESIAN_POINT('',(-955.8632459687,-293.8119381612, + -7.024875168533E-012)); +#483 = CARTESIAN_POINT('',(-929.7883008854,-368.0947100087, + -7.152002837072E-012)); +#484 = CARTESIAN_POINT('',(-897.3756497784,-441.2674281936, + -7.259490202638E-012)); +#485 = CARTESIAN_POINT('',(-858.664758951,-512.5376393354, + -7.345351581619E-012)); +#486 = CARTESIAN_POINT('',(-813.8260357521,-581.1085815335, + -7.407935229908E-012)); +#487 = CARTESIAN_POINT('',(-763.1628407442,-646.2062197992, + -7.445999943608E-012)); +#488 = CARTESIAN_POINT('',(-707.1067808059,-707.1067815671, + -7.458775259806E-012)); +#489 = CARTESIAN_POINT('',(-646.2062189776,-763.1628414399, + -7.445999943608E-012)); +#490 = CARTESIAN_POINT('',(-581.1085806574,-813.8260363777, + -8.466211691323E-012)); +#491 = CARTESIAN_POINT('',(-512.537638411,-858.6647595028, + -8.39468752185E-012)); +#492 = CARTESIAN_POINT('',(-441.2674272275,-897.3756502535, + -7.259490202638E-012)); +#493 = CARTESIAN_POINT('',(-368.0947090078,-929.7883012817, + -8.173717528083E-012)); +#494 = CARTESIAN_POINT('',(-293.8119371321,-955.863246285, + -7.024875168533E-012)); +#495 = CARTESIAN_POINT('',(-219.1824794332,-975.6838835962, + -7.863245923594E-012)); +#496 = CARTESIAN_POINT('',(-144.9194884048,-989.4434505723, + -7.680900684775E-012)); +#497 = CARTESIAN_POINT('',(-71.66933243817,-997.4284469513, + -7.484204525849E-012)); +#498 = CARTESIAN_POINT('',(6.408276931325E-007,-1000., + -7.275957614183E-012)); +#499 = PCURVE('',#460,#500); +#500 = DEFINITIONAL_REPRESENTATION('',(#501),#504); +#501 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#502,#503),.UNSPECIFIED.,.F.,.F., + (2,2),(4.71238898,6.283185307),.PIECEWISE_BEZIER_KNOTS.); +#502 = CARTESIAN_POINT('',(1.,4.71238898)); +#503 = CARTESIAN_POINT('',(1.,6.283185307)); +#504 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#505 = ORIENTED_EDGE('',*,*,#506,.T.); +#506 = EDGE_CURVE('',#474,#507,#509,.T.); +#507 = VERTEX_POINT('',#508); +#508 = CARTESIAN_POINT('',(6.408276931325E-007,-1.2,1.E+004)); +#509 = SURFACE_CURVE('',#510,(#532),.PCURVE_S1.); +#510 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#511,#512,#513,#514,#515,#516, + #517,#518,#519,#520,#521,#522,#523,#524,#525,#526,#527,#528,#529, + #530,#531),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(-1.,-0.95,-0.9,-0.85,-0.8,-0.75,-0.7,-0.65,-0.6,-0.55,-0.5 + ,-0.45,-0.4,-0.35,-0.3,-0.25,-0.2,-0.15,-1.E-001,-5.E-002,0.E+000), + .UNSPECIFIED.); +#511 = CARTESIAN_POINT('',(6.408276931325E-007,-1000., + -7.275957614183E-012)); +#512 = CARTESIAN_POINT('',(6.408276931325E-007,-950.06,499.99999999999) + ); +#513 = CARTESIAN_POINT('',(6.408276931325E-007,-900.12,999.99999999999) + ); +#514 = CARTESIAN_POINT('',(6.408276931325E-007,-850.18,1.5E+003)); +#515 = CARTESIAN_POINT('',(6.408276931325E-007,-800.24,2.E+003)); +#516 = CARTESIAN_POINT('',(6.408276931325E-007,-750.3,2.5E+003)); +#517 = CARTESIAN_POINT('',(6.408276931325E-007,-700.36,3.E+003)); +#518 = CARTESIAN_POINT('',(6.408276931325E-007,-650.42,3.5E+003)); +#519 = CARTESIAN_POINT('',(6.408276931325E-007,-600.48,4.E+003)); +#520 = CARTESIAN_POINT('',(6.408276931325E-007,-550.54,4.5E+003)); +#521 = CARTESIAN_POINT('',(6.408276931325E-007,-500.6,5.E+003)); +#522 = CARTESIAN_POINT('',(6.408276931325E-007,-450.66,5.5E+003)); +#523 = CARTESIAN_POINT('',(6.408276931325E-007,-400.72,6.E+003)); +#524 = CARTESIAN_POINT('',(6.408276931325E-007,-350.78,6.5E+003)); +#525 = CARTESIAN_POINT('',(6.408276931325E-007,-300.84,7.E+003)); +#526 = CARTESIAN_POINT('',(6.408276931325E-007,-250.9,7.5E+003)); +#527 = CARTESIAN_POINT('',(6.408276931325E-007,-200.96,8.E+003)); +#528 = CARTESIAN_POINT('',(6.408276931325E-007,-151.02,8.5E+003)); +#529 = CARTESIAN_POINT('',(6.408276931325E-007,-101.08,9.E+003)); +#530 = CARTESIAN_POINT('',(6.408276931325E-007,-51.14,9.5E+003)); +#531 = CARTESIAN_POINT('',(6.408276931325E-007,-1.2,1.E+004)); +#532 = PCURVE('',#460,#533); +#533 = DEFINITIONAL_REPRESENTATION('',(#534),#537); +#534 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#535,#536),.UNSPECIFIED.,.F.,.F., + (2,2),(-1.,0.E+000),.PIECEWISE_BEZIER_KNOTS.); +#535 = CARTESIAN_POINT('',(1.,6.283185307)); +#536 = CARTESIAN_POINT('',(0.E+000,6.283185307)); +#537 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#538 = ORIENTED_EDGE('',*,*,#539,.T.); +#539 = EDGE_CURVE('',#507,#432,#540,.T.); +#540 = SURFACE_CURVE('',#541,(#563),.PCURVE_S1.); +#541 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#542,#543,#544,#545,#546,#547, + #548,#549,#550,#551,#552,#553,#554,#555,#556,#557,#558,#559,#560, + #561,#562),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(-6.283185307,-6.20464549065,-6.1261056743,-6.04756585795, + -5.9690260416,-5.89048622525,-5.8119464089,-5.73340659255, + -5.6548667762,-5.57632695985,-5.4977871435,-5.41924732715, + -5.3407075108,-5.26216769445,-5.1836278781,-5.10508806175, + -5.0265482454,-4.94800842905,-4.8694686127,-4.79092879635, + -4.71238898),.PIECEWISE_BEZIER_KNOTS.); +#542 = CARTESIAN_POINT('',(6.408276931325E-007,-1.2,1.E+004)); +#543 = CARTESIAN_POINT('',(-71.66933243817,-70.21177681489,1.E+004)); +#544 = CARTESIAN_POINT('',(-144.9194884048,-135.3890361968,1.E+004)); +#545 = CARTESIAN_POINT('',(-219.1824794332,-195.8033446388,1.E+004)); +#546 = CARTESIAN_POINT('',(-293.8119371321,-250.5226096533,1.E+004)); +#547 = CARTESIAN_POINT('',(-368.0947090078,-298.6412971728,1.E+004)); +#548 = CARTESIAN_POINT('',(-441.2674272275,-339.3135570734,1.E+004)); +#549 = CARTESIAN_POINT('',(-512.537638411,-371.7873532213,1.E+004)); +#550 = CARTESIAN_POINT('',(-581.1085806574,-395.4372871783,1.E+004)); +#551 = CARTESIAN_POINT('',(-646.2062189776,-409.7936133593,1.E+004)); +#552 = CARTESIAN_POINT('',(-707.1067808059,-414.5650346038,1.E+004)); +#553 = CARTESIAN_POINT('',(-763.1628407442,-409.6532654643,1.E+004)); +#554 = CARTESIAN_POINT('',(-813.8260357521,-395.1580263338,1.E+004)); +#555 = CARTESIAN_POINT('',(-858.664758951,-371.3720008277,1.E+004)); +#556 = CARTESIAN_POINT('',(-897.3756497784,-338.7662274054,1.E+004)); +#557 = CARTESIAN_POINT('',(-929.7883008854,-297.9672651078,1.E+004)); +#558 = CARTESIAN_POINT('',(-955.8632459687,-249.7281483717,1.E+004)); +#559 = CARTESIAN_POINT('',(-975.6838833602,-194.8955432843,1.E+004)); +#560 = CARTESIAN_POINT('',(-989.4434504163,-134.3756078111,1.E+004)); +#561 = CARTESIAN_POINT('',(-997.4284468742,-69.10086628166,1.E+004)); +#562 = CARTESIAN_POINT('',(-1.E+003,-4.357241323305E-007,1.E+004)); +#563 = PCURVE('',#460,#564); +#564 = DEFINITIONAL_REPRESENTATION('',(#565),#568); +#565 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#566,#567),.UNSPECIFIED.,.F.,.F., + (2,2),(-6.283185307,-4.71238898),.PIECEWISE_BEZIER_KNOTS.); +#566 = CARTESIAN_POINT('',(0.E+000,6.283185307)); +#567 = CARTESIAN_POINT('',(0.E+000,4.71238898)); +#568 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#569 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#573)) GLOBAL_UNIT_ASSIGNED_CONTEXT +((#570,#571,#572)) REPRESENTATION_CONTEXT('Context #1', + '3D Context with UNIT and UNCERTAINTY') ); +#570 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); +#571 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); +#572 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); +#573 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-006),#570, + 'distance_accuracy_value','confusion accuracy'); +#574 = SHAPE_DEFINITION_REPRESENTATION(#575,#424); +#575 = PRODUCT_DEFINITION_SHAPE('','',#576); +#576 = PRODUCT_DEFINITION('design','',#577,#580); +#577 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#578, + .NOT_KNOWN.); +#578 = PRODUCT('Open CASCADE STEP translator 6.7 2.4', + 'Open CASCADE STEP translator 6.7 2.4','',(#579)); +#579 = MECHANICAL_CONTEXT('',#2,'mechanical'); +#580 = DESIGN_CONTEXT('',#2,'design'); +#581 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#582,#584); +#582 = ( REPRESENTATION_RELATIONSHIP('','',#424,#10) +REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#583) +SHAPE_REPRESENTATION_RELATIONSHIP() ); +#583 = ITEM_DEFINED_TRANSFORMATION('','',#11,#27); +#584 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#585 + ); +#585 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('10','','',#5,#576,$); +#586 = CC_DESIGN_SECURITY_CLASSIFICATION(#587,(#585)); +#587 = SECURITY_CLASSIFICATION('','',#59); +#588 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#587)); +#589 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#587)); +#590 = CC_DESIGN_APPROVAL(#70,(#587)); +#591 = PRODUCT_RELATED_PRODUCT_CATEGORY('detail',$,(#578)); +#592 = PRODUCT_CATEGORY_RELATIONSHIP('','',#593,#591); +#593 = PRODUCT_CATEGORY('part',$); +#594 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#51,(#577,#576) + ); +#595 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#53,(#578)); +#596 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#55,(#577)); +#597 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#598)); +#598 = SECURITY_CLASSIFICATION('','',#59); +#599 = CC_DESIGN_SECURITY_CLASSIFICATION(#598,(#577)); +#600 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#66,(#576)); +#601 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#598)); +#602 = CC_DESIGN_APPROVAL(#70,(#577,#576,#598)); +#603 = MANIFOLD_SURFACE_SHAPE_REPRESENTATION('',(#11,#604),#748); +#604 = SHELL_BASED_SURFACE_MODEL('',(#605)); +#605 = OPEN_SHELL('',(#606)); +#606 = ADVANCED_FACE('',(#607),#639,.T.); +#607 = FACE_BOUND('',#608,.T.); +#608 = EDGE_LOOP('',(#609,#651,#684,#717)); +#609 = ORIENTED_EDGE('',*,*,#610,.T.); +#610 = EDGE_CURVE('',#611,#613,#615,.T.); +#611 = VERTEX_POINT('',#612); +#612 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,1.E+004)); +#613 = VERTEX_POINT('',#614); +#614 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003, + -5.456968210638E-012)); +#615 = SURFACE_CURVE('',#616,(#638),.PCURVE_S1.); +#616 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#617,#618,#619,#620,#621,#622, + #623,#624,#625,#626,#627,#628,#629,#630,#631,#632,#633,#634,#635, + #636,#637),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(0.E+000,5.E-002,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5, + 0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.), + .PIECEWISE_BEZIER_KNOTS.); +#617 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,1.E+004)); +#618 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,9.5E+003)); +#619 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,9.E+003)); +#620 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,8.5E+003)); +#621 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,8.E+003)); +#622 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,7.5E+003)); +#623 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,7.E+003)); +#624 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,6.5E+003)); +#625 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,6.E+003)); +#626 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,5.5E+003)); +#627 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,5.E+003)); +#628 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,4.5E+003)); +#629 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,4.E+003)); +#630 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,3.5E+003)); +#631 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,3.E+003)); +#632 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,2.5E+003)); +#633 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,2.E+003)); +#634 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,1.5E+003)); +#635 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,999.99999999999) + ); +#636 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,499.99999999999) + ); +#637 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003, + -5.456968210638E-012)); +#638 = PCURVE('',#639,#646); +#639 = ( BOUNDED_SURFACE() B_SPLINE_SURFACE(1,2,( + (#640,#641,#642) + ,(#643,#644,#645 +)),.UNSPECIFIED.,.F.,.F.,.F.) B_SPLINE_SURFACE_WITH_KNOTS((2,2),(3,3),( + 0.E+000,1.),(4.71238898,6.283185307),.PIECEWISE_BEZIER_KNOTS.) +GEOMETRIC_REPRESENTATION_ITEM() RATIONAL_B_SPLINE_SURFACE(( + (1.,0.707106781114,1.) +,(1.,0.707106781114,1.))) REPRESENTATION_ITEM('') SURFACE() ); +#640 = CARTESIAN_POINT('',(-2.306207333E-007,1.E+003,1.E+004)); +#641 = CARTESIAN_POINT('',(-1.000000000436E+003,999.99999976937,1.E+004) + ); +#642 = CARTESIAN_POINT('',(-1.E+003,-4.357241618153E-007,1.E+004)); +#643 = CARTESIAN_POINT('',(-2.306207333E-007,1.E+003, + -5.456968210638E-012)); +#644 = CARTESIAN_POINT('',(-1.000000000436E+003,999.99999976937, + -5.456968210638E-012)); +#645 = CARTESIAN_POINT('',(-1.E+003,-4.357241618153E-007, + -5.456968210638E-012)); +#646 = DEFINITIONAL_REPRESENTATION('',(#647),#650); +#647 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#648,#649),.UNSPECIFIED.,.F.,.F., + (2,2),(0.E+000,1.),.PIECEWISE_BEZIER_KNOTS.); +#648 = CARTESIAN_POINT('',(0.E+000,4.71238898)); +#649 = CARTESIAN_POINT('',(1.,4.71238898)); +#650 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#651 = ORIENTED_EDGE('',*,*,#652,.T.); +#652 = EDGE_CURVE('',#613,#653,#655,.T.); +#653 = VERTEX_POINT('',#654); +#654 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007, + -5.456968210638E-012)); +#655 = SURFACE_CURVE('',#656,(#678),.PCURVE_S1.); +#656 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#657,#658,#659,#660,#661,#662, + #663,#664,#665,#666,#667,#668,#669,#670,#671,#672,#673,#674,#675, + #676,#677),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(4.71238898,4.79092879635,4.8694686127,4.94800842905, + 5.0265482454,5.10508806175,5.1836278781,5.26216769445,5.3407075108, + 5.41924732715,5.4977871435,5.57632695985,5.6548667762,5.73340659255, + 5.8119464089,5.89048622525,5.9690260416,6.04756585795,6.1261056743, + 6.20464549065,6.283185307),.PIECEWISE_BEZIER_KNOTS.); +#657 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003, + -5.456968210638E-012)); +#658 = CARTESIAN_POINT('',(-71.66933330738,997.42844688893, + -4.677627828656E-012)); +#659 = CARTESIAN_POINT('',(-144.9194892671,989.44345044603, + -4.800562927984E-012)); +#660 = CARTESIAN_POINT('',(-219.1824802835,975.68388340525, + -5.897434442696E-012)); +#661 = CARTESIAN_POINT('',(-293.8119379651,955.86324602903, + -5.017767977524E-012)); +#662 = CARTESIAN_POINT('',(-368.094709818,929.78830096099, + -5.108573455052E-012)); +#663 = CARTESIAN_POINT('',(-441.2674280095,897.37564986899, + -5.185350144741E-012)); +#664 = CARTESIAN_POINT('',(-512.5376391592,858.66475905618, + -5.246679701156E-012)); +#665 = CARTESIAN_POINT('',(-581.1085813666,813.82603587133, + -5.291382307077E-012)); +#666 = CARTESIAN_POINT('',(-646.2062196426,763.16284087677, + -5.318571388291E-012)); +#667 = CARTESIAN_POINT('',(-707.1067814221,707.10678095095, + -5.327696614147E-012)); +#668 = CARTESIAN_POINT('',(-763.1628413073,646.20621913415, + -5.318571388291E-012)); +#669 = CARTESIAN_POINT('',(-813.8260362585,581.10858082435, + -6.349658768493E-012)); +#670 = CARTESIAN_POINT('',(-858.6647593977,512.53763858711, + -6.296015641387E-012)); +#671 = CARTESIAN_POINT('',(-897.375650163,441.26742741162, + -5.185350144741E-012)); +#672 = CARTESIAN_POINT('',(-929.7883012062,368.09470919853, + -6.130288146062E-012)); +#673 = CARTESIAN_POINT('',(-955.8632462248,293.81193732822, + -5.017767977524E-012)); +#674 = CARTESIAN_POINT('',(-975.6838835513,219.18247963341, + -5.897434442696E-012)); +#675 = CARTESIAN_POINT('',(-989.4434505426,144.91948860781, + -5.760675513581E-012)); +#676 = CARTESIAN_POINT('',(-997.4284469366,71.669332642749, + -5.613153394387E-012)); +#677 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007, + -5.456968210638E-012)); +#678 = PCURVE('',#639,#679); +#679 = DEFINITIONAL_REPRESENTATION('',(#680),#683); +#680 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#681,#682),.UNSPECIFIED.,.F.,.F., + (2,2),(4.71238898,6.283185307),.PIECEWISE_BEZIER_KNOTS.); +#681 = CARTESIAN_POINT('',(1.,4.71238898)); +#682 = CARTESIAN_POINT('',(1.,6.283185307)); +#683 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#684 = ORIENTED_EDGE('',*,*,#685,.T.); +#685 = EDGE_CURVE('',#653,#686,#688,.T.); +#686 = VERTEX_POINT('',#687); +#687 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,1.E+004)); +#688 = SURFACE_CURVE('',#689,(#711),.PCURVE_S1.); +#689 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#690,#691,#692,#693,#694,#695, + #696,#697,#698,#699,#700,#701,#702,#703,#704,#705,#706,#707,#708, + #709,#710),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(-1.,-0.95,-0.9,-0.85,-0.8,-0.75,-0.7,-0.65,-0.6,-0.55,-0.5 + ,-0.45,-0.4,-0.35,-0.3,-0.25,-0.2,-0.15,-1.E-001,-5.E-002,0.E+000), + .UNSPECIFIED.); +#690 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007, + -5.456968210638E-012)); +#691 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,499.99999999999 + )); +#692 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,999.99999999999 + )); +#693 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,1.5E+003)); +#694 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,2.E+003)); +#695 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,2.5E+003)); +#696 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,3.E+003)); +#697 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,3.5E+003)); +#698 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,4.E+003)); +#699 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,4.5E+003)); +#700 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,5.E+003)); +#701 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,5.5E+003)); +#702 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,6.E+003)); +#703 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,6.5E+003)); +#704 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,7.E+003)); +#705 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,7.5E+003)); +#706 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,8.E+003)); +#707 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,8.5E+003)); +#708 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,9.E+003)); +#709 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,9.5E+003)); +#710 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,1.E+004)); +#711 = PCURVE('',#639,#712); +#712 = DEFINITIONAL_REPRESENTATION('',(#713),#716); +#713 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#714,#715),.UNSPECIFIED.,.F.,.F., + (2,2),(-1.,0.E+000),.PIECEWISE_BEZIER_KNOTS.); +#714 = CARTESIAN_POINT('',(1.,6.283185307)); +#715 = CARTESIAN_POINT('',(0.E+000,6.283185307)); +#716 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#717 = ORIENTED_EDGE('',*,*,#718,.T.); +#718 = EDGE_CURVE('',#686,#611,#719,.T.); +#719 = SURFACE_CURVE('',#720,(#742),.PCURVE_S1.); +#720 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#721,#722,#723,#724,#725,#726, + #727,#728,#729,#730,#731,#732,#733,#734,#735,#736,#737,#738,#739, + #740,#741),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(-6.283185307,-6.20464549065,-6.1261056743,-6.04756585795, + -5.9690260416,-5.89048622525,-5.8119464089,-5.73340659255, + -5.6548667762,-5.57632695985,-5.4977871435,-5.41924732715, + -5.3407075108,-5.26216769445,-5.1836278781,-5.10508806175, + -5.0265482454,-4.94800842905,-4.8694686127,-4.79092879635, + -4.71238898),.PIECEWISE_BEZIER_KNOTS.); +#721 = CARTESIAN_POINT('',(-1.E+003,-4.357243597042E-007,1.E+004)); +#722 = CARTESIAN_POINT('',(-997.4284469366,71.669332642749,1.E+004)); +#723 = CARTESIAN_POINT('',(-989.4434505426,144.91948860781,1.E+004)); +#724 = CARTESIAN_POINT('',(-975.6838835513,219.1824796334,1.E+004)); +#725 = CARTESIAN_POINT('',(-955.8632462248,293.81193732822,1.E+004)); +#726 = CARTESIAN_POINT('',(-929.7883012062,368.09470919853,1.E+004)); +#727 = CARTESIAN_POINT('',(-897.375650163,441.26742741162,1.E+004)); +#728 = CARTESIAN_POINT('',(-858.6647593977,512.53763858712,1.E+004)); +#729 = CARTESIAN_POINT('',(-813.8260362585,581.10858082435,1.E+004)); +#730 = CARTESIAN_POINT('',(-763.1628413073,646.20621913415,1.E+004)); +#731 = CARTESIAN_POINT('',(-707.1067814221,707.10678095095,1.E+004)); +#732 = CARTESIAN_POINT('',(-646.2062196426,763.16284087677,1.E+004)); +#733 = CARTESIAN_POINT('',(-581.1085813666,813.82603587133,1.E+004)); +#734 = CARTESIAN_POINT('',(-512.5376391592,858.66475905619,1.E+004)); +#735 = CARTESIAN_POINT('',(-441.2674280095,897.37564986899,1.E+004)); +#736 = CARTESIAN_POINT('',(-368.094709818,929.78830096099,1.E+004)); +#737 = CARTESIAN_POINT('',(-293.8119379651,955.86324602903,1.E+004)); +#738 = CARTESIAN_POINT('',(-219.1824802835,975.68388340525,1.E+004)); +#739 = CARTESIAN_POINT('',(-144.9194892671,989.44345044603,1.E+004)); +#740 = CARTESIAN_POINT('',(-71.66933330738,997.42844688893,1.E+004)); +#741 = CARTESIAN_POINT('',(-2.306207989022E-007,1.E+003,1.E+004)); +#742 = PCURVE('',#639,#743); +#743 = DEFINITIONAL_REPRESENTATION('',(#744),#747); +#744 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#745,#746),.UNSPECIFIED.,.F.,.F., + (2,2),(-6.283185307,-4.71238898),.PIECEWISE_BEZIER_KNOTS.); +#745 = CARTESIAN_POINT('',(0.E+000,6.283185307)); +#746 = CARTESIAN_POINT('',(0.E+000,4.71238898)); +#747 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#748 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#752)) GLOBAL_UNIT_ASSIGNED_CONTEXT +((#749,#750,#751)) REPRESENTATION_CONTEXT('Context #1', + '3D Context with UNIT and UNCERTAINTY') ); +#749 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); +#750 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); +#751 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); +#752 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-006),#749, + 'distance_accuracy_value','confusion accuracy'); +#753 = SHAPE_DEFINITION_REPRESENTATION(#754,#603); +#754 = PRODUCT_DEFINITION_SHAPE('','',#755); +#755 = PRODUCT_DEFINITION('design','',#756,#759); +#756 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#757, + .NOT_KNOWN.); +#757 = PRODUCT('Open CASCADE STEP translator 6.7 2.5', + 'Open CASCADE STEP translator 6.7 2.5','',(#758)); +#758 = MECHANICAL_CONTEXT('',#2,'mechanical'); +#759 = DESIGN_CONTEXT('',#2,'design'); +#760 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#761,#763); +#761 = ( REPRESENTATION_RELATIONSHIP('','',#603,#10) +REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#762) +SHAPE_REPRESENTATION_RELATIONSHIP() ); +#762 = ITEM_DEFINED_TRANSFORMATION('','',#11,#31); +#763 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#764 + ); +#764 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('11','','',#5,#755,$); +#765 = CC_DESIGN_SECURITY_CLASSIFICATION(#766,(#764)); +#766 = SECURITY_CLASSIFICATION('','',#59); +#767 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#766)); +#768 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#766)); +#769 = CC_DESIGN_APPROVAL(#70,(#766)); +#770 = PRODUCT_RELATED_PRODUCT_CATEGORY('detail',$,(#757)); +#771 = PRODUCT_CATEGORY_RELATIONSHIP('','',#772,#770); +#772 = PRODUCT_CATEGORY('part',$); +#773 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#51,(#756,#755) + ); +#774 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#53,(#757)); +#775 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#55,(#756)); +#776 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#777)); +#777 = SECURITY_CLASSIFICATION('','',#59); +#778 = CC_DESIGN_SECURITY_CLASSIFICATION(#777,(#756)); +#779 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#66,(#755)); +#780 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#777)); +#781 = CC_DESIGN_APPROVAL(#70,(#756,#755,#777)); +#782 = MANIFOLD_SURFACE_SHAPE_REPRESENTATION('',(#11,#783),#927); +#783 = SHELL_BASED_SURFACE_MODEL('',(#784)); +#784 = OPEN_SHELL('',(#785)); +#785 = ADVANCED_FACE('',(#786),#818,.T.); +#786 = FACE_BOUND('',#787,.T.); +#787 = EDGE_LOOP('',(#788,#830,#863,#896)); +#788 = ORIENTED_EDGE('',*,*,#789,.T.); +#789 = EDGE_CURVE('',#790,#792,#794,.T.); +#790 = VERTEX_POINT('',#791); +#791 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,1.E+004)); +#792 = VERTEX_POINT('',#793); +#793 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,0.E+000)); +#794 = SURFACE_CURVE('',#795,(#817),.PCURVE_S1.); +#795 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#796,#797,#798,#799,#800,#801, + #802,#803,#804,#805,#806,#807,#808,#809,#810,#811,#812,#813,#814, + #815,#816),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(0.E+000,5.E-002,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5, + 0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.), + .PIECEWISE_BEZIER_KNOTS.); +#796 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,1.E+004)); +#797 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,9.5E+003)); +#798 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,9.E+003)); +#799 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,8.5E+003)); +#800 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,8.E+003)); +#801 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,7.5E+003)); +#802 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,7.E+003)); +#803 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,6.5E+003)); +#804 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,6.E+003)); +#805 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,5.5E+003)); +#806 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,5.E+003)); +#807 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,4.5E+003)); +#808 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,4.E+003)); +#809 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,3.5E+003)); +#810 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,3.E+003)); +#811 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,2.5E+003)); +#812 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,2.E+003)); +#813 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,1.5E+003)); +#814 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,1.E+003)); +#815 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,500.)); +#816 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,0.E+000)); +#817 = PCURVE('',#818,#825); +#818 = ( BOUNDED_SURFACE() B_SPLINE_SURFACE(1,2,( + (#819,#820,#821) + ,(#822,#823,#824 +)),.UNSPECIFIED.,.F.,.F.,.F.) B_SPLINE_SURFACE_WITH_KNOTS((2,2),(3,3),( + 0.E+000,1.),(4.71238898,6.283185307),.PIECEWISE_BEZIER_KNOTS.) +GEOMETRIC_REPRESENTATION_ITEM() RATIONAL_B_SPLINE_SURFACE(( + (1.,0.707106781114,1.) +,(1.,0.707106781114,1.))) REPRESENTATION_ITEM('') SURFACE() ); +#819 = CARTESIAN_POINT('',(1.E+003,2.5517366E-008,1.E+004)); +#820 = CARTESIAN_POINT('',(999.99999997448,1.000000000231E+003,1.E+004) + ); +#821 = CARTESIAN_POINT('',(-2.306207945153E-007,1.E+003,1.E+004)); +#822 = CARTESIAN_POINT('',(1.E+003,2.5517366E-008,0.E+000)); +#823 = CARTESIAN_POINT('',(999.99999997448,1.000000000231E+003,0.E+000) + ); +#824 = CARTESIAN_POINT('',(-2.306207945153E-007,1.E+003,-3.6)); +#825 = DEFINITIONAL_REPRESENTATION('',(#826),#829); +#826 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#827,#828),.UNSPECIFIED.,.F.,.F., + (2,2),(0.E+000,1.),.PIECEWISE_BEZIER_KNOTS.); +#827 = CARTESIAN_POINT('',(0.E+000,4.71238898)); +#828 = CARTESIAN_POINT('',(1.,4.71238898)); +#829 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#830 = ORIENTED_EDGE('',*,*,#831,.T.); +#831 = EDGE_CURVE('',#792,#832,#834,.T.); +#832 = VERTEX_POINT('',#833); +#833 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,-3.599999999999) + ); +#834 = SURFACE_CURVE('',#835,(#857),.PCURVE_S1.); +#835 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#836,#837,#838,#839,#840,#841, + #842,#843,#844,#845,#846,#847,#848,#849,#850,#851,#852,#853,#854, + #855,#856),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(4.71238898,4.79092879635,4.8694686127,4.94800842905, + 5.0265482454,5.10508806175,5.1836278781,5.26216769445,5.3407075108, + 5.41924732715,5.4977871435,5.57632695985,5.6548667762,5.73340659255, + 5.8119464089,5.89048622525,5.9690260416,6.04756585795,6.1261056743, + 6.20464549065,6.283185307),.PIECEWISE_BEZIER_KNOTS.); +#836 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,0.E+000)); +#837 = CARTESIAN_POINT('',(997.42844690363,71.669333102804, + -9.257591138443E-003)); +#838 = CARTESIAN_POINT('',(989.44345047575,144.91948906418, + -3.800357826622E-002)); +#839 = CARTESIAN_POINT('',(975.6838834502,219.18248008343, + -8.753801954033E-002)); +#840 = CARTESIAN_POINT('',(955.86324608929,293.8119377691, + -0.158892314019)); +#841 = CARTESIAN_POINT('',(929.78830103649,368.09470962739, + -0.252762116182)); +#842 = CARTESIAN_POINT('',(897.3756499595,441.26742782553, + -0.369447660029)); +#843 = CARTESIAN_POINT('',(858.66475916131,512.53763898317, + -0.508806866867)); +#844 = CARTESIAN_POINT('',(813.82603599052,581.10858119972, + -0.670226270243)); +#845 = CARTESIAN_POINT('',(763.16284100931,646.20621948615, + -0.852613772133)); +#846 = CARTESIAN_POINT('',(707.10678109598,707.1067812771, + -1.054415587773)); +#847 = CARTESIAN_POINT('',(646.20621929068,763.16284117483, + -1.273657610221)); +#848 = CARTESIAN_POINT('',(581.10858099127,813.82603613936, + -1.508009108047)); +#849 = CARTESIAN_POINT('',(512.53763876323,858.66475929259, + -1.754864500013)); +#850 = CARTESIAN_POINT('',(441.26742759568,897.37565007252, + -2.01143726016)); +#851 = CARTESIAN_POINT('',(368.09470938923,929.78830113077, + -2.274859045646)); +#852 = CARTESIAN_POINT('',(293.81193752427,955.86324616455, + -2.542277024303)); +#853 = CARTESIAN_POINT('',(219.18247983352,975.68388350634, + -2.810943071933)); +#854 = CARTESIAN_POINT('',(144.91948881075,989.44345051287, + -3.078289839558)); +#855 = CARTESIAN_POINT('',(71.669332847325,997.42844692199, + -3.341990400972)); +#856 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,-3.599999999999) + ); +#857 = PCURVE('',#818,#858); +#858 = DEFINITIONAL_REPRESENTATION('',(#859),#862); +#859 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#860,#861),.UNSPECIFIED.,.F.,.F., + (2,2),(4.71238898,6.283185307),.PIECEWISE_BEZIER_KNOTS.); +#860 = CARTESIAN_POINT('',(1.,4.71238898)); +#861 = CARTESIAN_POINT('',(1.,6.283185307)); +#862 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#863 = ORIENTED_EDGE('',*,*,#864,.T.); +#864 = EDGE_CURVE('',#832,#865,#867,.T.); +#865 = VERTEX_POINT('',#866); +#866 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,1.E+004)); +#867 = SURFACE_CURVE('',#868,(#890),.PCURVE_S1.); +#868 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#869,#870,#871,#872,#873,#874, + #875,#876,#877,#878,#879,#880,#881,#882,#883,#884,#885,#886,#887, + #888,#889),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(-1.,-0.95,-0.9,-0.85,-0.8,-0.75,-0.7,-0.65,-0.6,-0.55,-0.5 + ,-0.45,-0.4,-0.35,-0.3,-0.25,-0.2,-0.15,-1.E-001,-5.E-002,0.E+000), + .UNSPECIFIED.); +#869 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,-3.599999999999) + ); +#870 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,496.58)); +#871 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,996.76)); +#872 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,1.49694E+003)); +#873 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,1.99712E+003)); +#874 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,2.4973E+003)); +#875 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,2.99748E+003)); +#876 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,3.49766E+003)); +#877 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,3.99784E+003)); +#878 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,4.49802E+003)); +#879 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,4.9982E+003)); +#880 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,5.49838E+003)); +#881 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,5.99856E+003)); +#882 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,6.49874E+003)); +#883 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,6.99892E+003)); +#884 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,7.4991E+003)); +#885 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,7.99928E+003)); +#886 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,8.49946E+003)); +#887 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,8.99964E+003)); +#888 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,9.49982E+003)); +#889 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,1.E+004)); +#890 = PCURVE('',#818,#891); +#891 = DEFINITIONAL_REPRESENTATION('',(#892),#895); +#892 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#893,#894),.UNSPECIFIED.,.F.,.F., + (2,2),(-1.,0.E+000),.PIECEWISE_BEZIER_KNOTS.); +#893 = CARTESIAN_POINT('',(1.,6.283185307)); +#894 = CARTESIAN_POINT('',(0.E+000,6.283185307)); +#895 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#896 = ORIENTED_EDGE('',*,*,#897,.T.); +#897 = EDGE_CURVE('',#865,#790,#898,.T.); +#898 = SURFACE_CURVE('',#899,(#921),.PCURVE_S1.); +#899 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#900,#901,#902,#903,#904,#905, + #906,#907,#908,#909,#910,#911,#912,#913,#914,#915,#916,#917,#918, + #919,#920),.UNSPECIFIED.,.F.,.F.,(2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, + 1,1,1,2),(-6.283185307,-6.20464549065,-6.1261056743,-6.04756585795, + -5.9690260416,-5.89048622525,-5.8119464089,-5.73340659255, + -5.6548667762,-5.57632695985,-5.4977871435,-5.41924732715, + -5.3407075108,-5.26216769445,-5.1836278781,-5.10508806175, + -5.0265482454,-4.94800842905,-4.8694686127,-4.79092879635, + -4.71238898),.PIECEWISE_BEZIER_KNOTS.); +#900 = CARTESIAN_POINT('',(-2.306209125891E-007,1.E+003,1.E+004)); +#901 = CARTESIAN_POINT('',(71.669332847325,997.42844692199,1.E+004)); +#902 = CARTESIAN_POINT('',(144.91948881075,989.44345051287,1.E+004)); +#903 = CARTESIAN_POINT('',(219.18247983352,975.68388350634,1.E+004)); +#904 = CARTESIAN_POINT('',(293.81193752427,955.86324616455,1.E+004)); +#905 = CARTESIAN_POINT('',(368.09470938923,929.78830113077,1.E+004)); +#906 = CARTESIAN_POINT('',(441.26742759568,897.37565007252,1.E+004)); +#907 = CARTESIAN_POINT('',(512.53763876323,858.66475929259,1.E+004)); +#908 = CARTESIAN_POINT('',(581.10858099127,813.82603613936,1.E+004)); +#909 = CARTESIAN_POINT('',(646.20621929068,763.16284117483,1.E+004)); +#910 = CARTESIAN_POINT('',(707.10678109598,707.1067812771,1.E+004)); +#911 = CARTESIAN_POINT('',(763.16284100931,646.20621948615,1.E+004)); +#912 = CARTESIAN_POINT('',(813.82603599052,581.10858119972,1.E+004)); +#913 = CARTESIAN_POINT('',(858.66475916131,512.53763898317,1.E+004)); +#914 = CARTESIAN_POINT('',(897.3756499595,441.26742782553,1.E+004)); +#915 = CARTESIAN_POINT('',(929.78830103649,368.09470962739,1.E+004)); +#916 = CARTESIAN_POINT('',(955.86324608929,293.8119377691,1.E+004)); +#917 = CARTESIAN_POINT('',(975.6838834502,219.18248008343,1.E+004)); +#918 = CARTESIAN_POINT('',(989.44345047575,144.91948906418,1.E+004)); +#919 = CARTESIAN_POINT('',(997.42844690363,71.669333102804,1.E+004)); +#920 = CARTESIAN_POINT('',(1.E+003,2.551735178713E-008,1.E+004)); +#921 = PCURVE('',#818,#922); +#922 = DEFINITIONAL_REPRESENTATION('',(#923),#926); +#923 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#924,#925),.UNSPECIFIED.,.F.,.F., + (2,2),(-6.283185307,-4.71238898),.PIECEWISE_BEZIER_KNOTS.); +#924 = CARTESIAN_POINT('',(0.E+000,6.283185307)); +#925 = CARTESIAN_POINT('',(0.E+000,4.71238898)); +#926 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' + ) ); +#927 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#931)) GLOBAL_UNIT_ASSIGNED_CONTEXT +((#928,#929,#930)) REPRESENTATION_CONTEXT('Context #1', + '3D Context with UNIT and UNCERTAINTY') ); +#928 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); +#929 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); +#930 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); +#931 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-006),#928, + 'distance_accuracy_value','confusion accuracy'); +#932 = SHAPE_DEFINITION_REPRESENTATION(#933,#782); +#933 = PRODUCT_DEFINITION_SHAPE('','',#934); +#934 = PRODUCT_DEFINITION('design','',#935,#938); +#935 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#936, + .NOT_KNOWN.); +#936 = PRODUCT('Open CASCADE STEP translator 6.7 2.6', + 'Open CASCADE STEP translator 6.7 2.6','',(#937)); +#937 = MECHANICAL_CONTEXT('',#2,'mechanical'); +#938 = DESIGN_CONTEXT('',#2,'design'); +#939 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#940,#942); +#940 = ( REPRESENTATION_RELATIONSHIP('','',#782,#10) +REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#941) +SHAPE_REPRESENTATION_RELATIONSHIP() ); +#941 = ITEM_DEFINED_TRANSFORMATION('','',#11,#35); +#942 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#943 + ); +#943 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('12','','',#5,#934,$); +#944 = CC_DESIGN_SECURITY_CLASSIFICATION(#945,(#943)); +#945 = SECURITY_CLASSIFICATION('','',#59); +#946 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#945)); +#947 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#945)); +#948 = CC_DESIGN_APPROVAL(#70,(#945)); +#949 = PRODUCT_RELATED_PRODUCT_CATEGORY('detail',$,(#936)); +#950 = PRODUCT_CATEGORY_RELATIONSHIP('','',#951,#949); +#951 = PRODUCT_CATEGORY('part',$); +#952 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#51,(#935,#934) + ); +#953 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#53,(#936)); +#954 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#55,(#935)); +#955 = CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#48,#57,(#956)); +#956 = SECURITY_CLASSIFICATION('','',#59); +#957 = CC_DESIGN_SECURITY_CLASSIFICATION(#956,(#935)); +#958 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#66,(#934)); +#959 = CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#62,#68,(#956)); +#960 = CC_DESIGN_APPROVAL(#70,(#935,#934,#956)); +ENDSEC; +END-ISO-10303-21; diff --git a/tests/test_filehandler.py b/tests/test_filehandler.py index 401da68..ca23cd0 100644 --- a/tests/test_filehandler.py +++ b/tests/test_filehandler.py @@ -1,23 +1,22 @@ from unittest import TestCase -import unittest -import pygem.filehandler as fh + import numpy as np -import filecmp -import os + +import pygem.filehandler as fh class TestFilehandler(TestCase): def test_base_class_infile(self): file_handler = fh.FileHandler() - assert file_handler.infile == None + self.assertIsNone(file_handler.infile) def test_base_class_outfile(self): file_handler = fh.FileHandler() - assert file_handler.outfile == None + self.assertIsNone(file_handler.outfile) def test_base_class_extension(self): file_handler = fh.FileHandler() - assert file_handler.extension == None + self.assertListEqual(file_handler.extensions, []) def test_base_class_parse(self): file_handler = fh.FileHandler() diff --git a/tests/test_igeshandler.py b/tests/test_igeshandler.py index 0c65984..8fef84d 100644 --- a/tests/test_igeshandler.py +++ b/tests/test_igeshandler.py @@ -1,34 +1,20 @@ +import os from unittest import TestCase -import unittest -import pygem.igeshandler as ih + import numpy as np -import filecmp -import os +from OCC.TopoDS import TopoDS_Shape +from OCC.BRepPrimAPI import BRepPrimAPI_MakeBox + +import pygem.igeshandler as ih class TestIgesHandler(TestCase): def test_iges_instantiation(self): iges_handler = ih.IgesHandler() - def test_iges_default_infile_member(self): - iges_handler = ih.IgesHandler() - assert iges_handler.infile == None - - def test_iges_default_control_point_position_member(self): - iges_handler = ih.IgesHandler() - assert iges_handler._control_point_position == None - - def test_iges_default_outfile_member(self): - iges_handler = ih.IgesHandler() - assert iges_handler.outfile == None - - def test_iges_default_tolerance(self): - iges_handler = ih.IgesHandler() - assert iges_handler.tolerance == 1e-6 - def test_iges_default_extension_member(self): iges_handler = ih.IgesHandler() - assert iges_handler.extension == ['.iges', '.igs'] + self.assertListEqual(iges_handler.extensions, ['.iges', '.igs']) def test_iges_parse_failing_filename_type(self): iges_handler = ih.IgesHandler() @@ -45,24 +31,25 @@ def test_iges_parse_failing_check_extension(self): def test_iges_parse_infile(self): iges_handler = ih.IgesHandler() mesh_points = iges_handler.parse('tests/test_datasets/test_pipe.iges') - assert iges_handler.infile == 'tests/test_datasets/test_pipe.iges' + self.assertEqual(iges_handler.infile, 'tests/test_datasets/test_pipe.iges') def test_iges_parse_control_point_position_member(self): iges_handler = ih.IgesHandler() mesh_points = iges_handler.parse('tests/test_datasets/test_pipe.iges') - assert iges_handler._control_point_position == [ - 0, 6, 12, 18, 24, 28, 32 - ] + self.assertListEqual( + iges_handler._control_point_position, + [0, 6, 12, 18, 24, 28, 32] + ) def test_iges_parse_shape(self): iges_handler = ih.IgesHandler() mesh_points = iges_handler.parse('tests/test_datasets/test_pipe.iges') - assert mesh_points.shape == (32, 3) + self.assertTupleEqual(mesh_points.shape, (32, 3)) def test_iges_parse_shape_igs(self): iges_handler = ih.IgesHandler() mesh_points = iges_handler.parse('tests/test_datasets/test_pipe.igs') - assert mesh_points.shape == (32, 3) + self.assertTupleEqual(mesh_points.shape, (32, 3)) def test_iges_parse_coords_1(self): iges_handler = ih.IgesHandler() @@ -121,24 +108,24 @@ def test_iges_write_outfile(self): mesh_points = iges_handler.parse('tests/test_datasets/test_pipe.iges') outfilename = 'tests/test_datasets/test_pipe_out.iges' iges_handler.write(mesh_points, outfilename) - assert iges_handler.outfile == outfilename - os.remove(outfilename) + self.assertEqual(iges_handler.outfile, outfilename) + self.addCleanup(os.remove, outfilename) def test_iges_write_outfile_tolerance(self): iges_handler = ih.IgesHandler() mesh_points = iges_handler.parse('tests/test_datasets/test_pipe.iges') outfilename = 'tests/test_datasets/test_pipe_out.iges' iges_handler.write(mesh_points, outfilename, 1e-3) - assert iges_handler.tolerance == 1e-3 - os.remove(outfilename) + self.assertEqual(iges_handler.tolerance, 1e-3) + self.addCleanup(os.remove, outfilename) def test_iges_write_modified_tolerance(self): iges_handler = ih.IgesHandler() mesh_points = iges_handler.parse('tests/test_datasets/test_pipe.iges') outfilename = 'tests/test_datasets/test_pipe_out.iges' iges_handler.write(mesh_points, outfilename, 1e-3) - assert iges_handler.outfile == outfilename - os.remove(outfilename) + self.assertEqual(iges_handler.outfile, outfilename) + self.addCleanup(os.remove, outfilename) def test_iges_write_comparison_iges(self): iges_handler = ih.IgesHandler() @@ -158,7 +145,7 @@ def test_iges_write_comparison_iges(self): mesh_points = iges_handler.parse(outfilename) mesh_points_expected = iges_handler.parse(outfilename_expected) np.testing.assert_array_almost_equal(mesh_points, mesh_points_expected) - os.remove(outfilename) + self.addCleanup(os.remove, outfilename) def test_iges_write_comparison_igs(self): iges_handler = ih.IgesHandler() @@ -178,21 +165,73 @@ def test_iges_write_comparison_igs(self): mesh_points = iges_handler.parse(outfilename) mesh_points_expected = iges_handler.parse(outfilename_expected) np.testing.assert_array_almost_equal(mesh_points, mesh_points_expected) - os.remove(outfilename) + self.addCleanup(os.remove, outfilename) def test_iges_plot_save_fig(self): iges_handler = ih.IgesHandler() mesh_points = iges_handler.parse('tests/test_datasets/test_pipe.iges') iges_handler.plot(save_fig=True) self.assertTrue(os.path.isfile('tests/test_datasets/test_pipe.png')) - os.remove('tests/test_datasets/test_pipe.png') + self.addCleanup(os.remove, 'tests/test_datasets/test_pipe.png') def test_iges_plot_failing_outfile_type(self): iges_handler = ih.IgesHandler() with self.assertRaises(TypeError): iges_handler.plot(plot_file=3) - def test_iges_show_failing_outfile_type(self): + def test_iges_ihow_failing_outfile_type(self): iges_handler = ih.IgesHandler() with self.assertRaises(TypeError): - iges_handler.show(show_file=1.1) + iges_handler.show(ihow_file=1.1) + + def test_iges_load_shape_from_file_raises_wrong_type(self): + iges_handler = ih.IgesHandler() + with self.assertRaises(TypeError): + iges_handler.load_shape_from_file(None) + + def test_iges_load_shape_from_file_raises_wrong_extension(self): + iges_handler = ih.IgesHandler() + with self.assertRaises(ValueError): + iges_handler.load_shape_from_file( + 'tests/test_datasets/test_pipe.stp' + ) + + def test_iges_load_shape_correct_iges(self): + iges_handler = ih.IgesHandler() + shape = iges_handler.load_shape_from_file( + 'tests/test_datasets/test_pipe.iges' + ) + self.assertEqual(type(shape), TopoDS_Shape) + + def test_iges_load_shape_correct_igs(self): + iges_handler = ih.IgesHandler() + shape = iges_handler.load_shape_from_file( + 'tests/test_datasets/test_pipe.igs' + ) + self.assertEqual(type(shape), TopoDS_Shape) + + def test_iges_write_shape_to_file_raises_wrong_type(self): + iges_handler = ih.IgesHandler() + with self.assertRaises(TypeError): + iges_handler.write_shape_to_file(None, None) + + def test_iges_write_shape_to_file_raises_wrong_extension(self): + iges_handler = ih.IgesHandler() + with self.assertRaises(ValueError): + iges_handler.load_shape_from_file('tests/test_datasets/x.stp') + + def test_iges_write_shape_to_file_iges(self): + ihp = BRepPrimAPI_MakeBox(1., 1., 1.).Shape() + path = 'tests/test_datasets/x.iges' + iges_handler = ih.IgesHandler() + iges_handler.write_shape_to_file(ihp, path) + self.assertTrue(os.path.exists(path)) + self.addCleanup(os.remove, path) + + def test_iges_write_shape_to_file_igs(self): + ihp = BRepPrimAPI_MakeBox(1., 1., 1.).Shape() + path = 'tests/test_datasets/x.igs' + iges_handler = ih.IgesHandler() + iges_handler.write_shape_to_file(ihp, path) + self.assertTrue(os.path.exists(path)) + self.addCleanup(os.remove, path) diff --git a/tests/test_nurbshandler.py b/tests/test_nurbshandler.py new file mode 100644 index 0000000..5332edc --- /dev/null +++ b/tests/test_nurbshandler.py @@ -0,0 +1,70 @@ +from unittest import TestCase +import unittest +from pygem.nurbshandler import NurbsHandler + + +class TestNurbsHandler(TestCase): + def test_nurbs_instantiation(self): + nurbs_handler = NurbsHandler() + + def test_nurbs_default_infile_member(self): + nurbs_handler = NurbsHandler() + self.assertIsNone(nurbs_handler.infile) + + def test_nurbs_default_shape_member(self): + nurbs_handler = NurbsHandler() + self.assertIsNone(nurbs_handler.shape) + + def test_nurbs_default_control_point_position_member(self): + nurbs_handler = NurbsHandler() + self.assertIsNone(nurbs_handler._control_point_position) + + def test_nurbs_default_outfile_member(self): + nurbs_handler = NurbsHandler() + self.assertIsNone(nurbs_handler.outfile) + + def test_nurbs_default_tolerance(self): + nurbs_handler = NurbsHandler() + self.assertAlmostEqual(nurbs_handler.tolerance, 1e-6) + + def test_nurbs_default_extension_member(self): + nurbs_handler = NurbsHandler() + self.assertListEqual(nurbs_handler.extensions, []) + + def test_nurbs_load_shape_from_file_raises(self): + nurbs_handler = NurbsHandler() + with self.assertRaises(NotImplementedError): + nurbs_handler.load_shape_from_file(None) + + def test_nurbs_write_shape_to_file_raises(self): + nurbs_handler = NurbsHandler() + with self.assertRaises(NotImplementedError): + nurbs_handler.write_shape_to_file(None, None) + + def test_nurbs_check_infile_instantiation_no_shape(self): + nurbs_handler = NurbsHandler() + nurbs_handler.infile = "something" + with self.assertRaises(RuntimeError): + nurbs_handler._check_infile_instantiation() + + def test_nurbs_check_infile_instantiation_no_infile(self): + nurbs_handler = NurbsHandler() + nurbs_handler.shape = True + with self.assertRaises(RuntimeError): + nurbs_handler._check_infile_instantiation() + + def test_nurbs_check_infile_instantiation_shape_infile_wrong(self): + nurbs_handler = NurbsHandler() + with self.assertRaises(RuntimeError): + nurbs_handler._check_infile_instantiation() + + def test_nurbs_check_infile_instantiation_correct(self): + nurbs_handler = NurbsHandler() + nurbs_handler.shape = True + nurbs_handler.infile = "something" + try: + nurbs_handler._check_infile_instantiation() + except RuntimeError: + self.fail( + "Handler was instantiated correctly, yet an error was raised." + ) diff --git a/tests/test_openfhandler.py b/tests/test_openfhandler.py index e1111f7..b0a9dd6 100644 --- a/tests/test_openfhandler.py +++ b/tests/test_openfhandler.py @@ -12,15 +12,15 @@ def test_open_foam_instantiation(self): def test_open_foam_default_infile_member(self): open_foam_handler = ofh.OpenFoamHandler() - assert open_foam_handler.infile == None + self.assertIsNone(open_foam_handler.infile) def test_open_foam_default_outfile_member(self): open_foam_handler = ofh.OpenFoamHandler() - assert open_foam_handler.outfile == None + self.assertIsNone(open_foam_handler.outfile) def test_open_foam_default_extension_member(self): open_foam_handler = ofh.OpenFoamHandler() - assert open_foam_handler.extension == '' + self.assertListEqual(open_foam_handler.extensions, ['']) def test_open_foam_parse_failing_filename_type(self): open_foam_handler = ofh.OpenFoamHandler() @@ -39,14 +39,14 @@ def test_open_foam_parse_infile(self): mesh_points = open_foam_handler.parse( 'tests/test_datasets/test_openFOAM' ) - assert open_foam_handler.infile == 'tests/test_datasets/test_openFOAM' + self.assertEqual(open_foam_handler.infile, 'tests/test_datasets/test_openFOAM') def test_open_foam_parse_shape(self): open_foam_handler = ofh.OpenFoamHandler() mesh_points = open_foam_handler.parse( 'tests/test_datasets/test_openFOAM' ) - assert mesh_points.shape == (21812, 3) + self.assertTupleEqual(mesh_points.shape, (21812, 3)) def test_open_foam_parse_coords_1(self): open_foam_handler = ofh.OpenFoamHandler() @@ -116,8 +116,8 @@ def test_open_foam_write_outfile(self): ) outfilename = 'tests/test_datasets/test_openFOAM_out' open_foam_handler.write(mesh_points, outfilename) - assert open_foam_handler.outfile == outfilename - os.remove(outfilename) + self.assertEqual(open_foam_handler.outfile, outfilename) + self.addCleanup(os.remove, outfilename) def test_open_foam_write_comparison(self): open_foam_handler = ofh.OpenFoamHandler() @@ -139,4 +139,4 @@ def test_open_foam_write_comparison(self): open_foam_handler.write(mesh_points, outfilename) self.assertTrue(filecmp.cmp(outfilename, outfilename_expected)) - os.remove(outfilename) + self.addCleanup(os.remove, outfilename) diff --git a/tests/test_package.py b/tests/test_package.py index 0f7137e..57b2ca4 100644 --- a/tests/test_package.py +++ b/tests/test_package.py @@ -42,6 +42,14 @@ def test_import_pg_9(self): import pygem as pg guih = pg.gui.Gui() + def test_import_pg_10(self): + import pygem as pg + nurh = pg.nurbshandler.NurbsHandler() + + def test_import_pg_11(self): + import pygem as pg + stph = pg.stephandler.StepHandler() + def test_modules_name(self): # it checks that __all__ includes all the .py files in pygem folder import pygem diff --git a/tests/test_stephandler.py b/tests/test_stephandler.py new file mode 100644 index 0000000..269c9cd --- /dev/null +++ b/tests/test_stephandler.py @@ -0,0 +1,235 @@ +import os +from unittest import TestCase + +import numpy as np +from OCC.TopoDS import TopoDS_Shape +from OCC.BRepPrimAPI import BRepPrimAPI_MakeBox + +import pygem.stephandler as sh + + +class TestStepHandler(TestCase): + def test_step_instantiation(self): + step_handler = sh.StepHandler() + + def test_step_default_extension_member(self): + step_handler = sh.StepHandler() + self.assertListEqual(step_handler.extensions, ['.step', '.stp']) + + def test_step_parse_failing_filename_type(self): + step_handler = sh.StepHandler() + with self.assertRaises(TypeError): + mesh_points = step_handler.parse(5.2) + + def test_step_parse_failing_check_extension(self): + step_handler = sh.StepHandler() + with self.assertRaises(ValueError): + mesh_points = step_handler.parse( + 'tests/test_datasets/test_pipe.vtk' + ) + + def test_step_parse_infile(self): + step_handler = sh.StepHandler() + mesh_points = step_handler.parse('tests/test_datasets/test_pipe.step') + self.assertEqual(step_handler.infile, 'tests/test_datasets/test_pipe.step') + + def test_step_parse_control_point_position_member(self): + step_handler = sh.StepHandler() + mesh_points = step_handler.parse('tests/test_datasets/test_pipe.step') + self.assertListEqual( + step_handler._control_point_position, + [0, 4, 8, 14, 20, 26, 32] + ) + + def test_step_parse_shape(self): + step_handler = sh.StepHandler() + mesh_points = step_handler.parse('tests/test_datasets/test_pipe.step') + self.assertTupleEqual(mesh_points.shape, (32, 3)) + + def test_step_parse_shape_stp(self): + step_handler = sh.StepHandler() + mesh_points = step_handler.parse('tests/test_datasets/test_pipe.stp') + self.assertTupleEqual(mesh_points.shape, (32, 3)) + + def test_step_parse_coords_1(self): + step_handler = sh.StepHandler() + mesh_points = step_handler.parse('tests/test_datasets/test_pipe.step') + np.testing.assert_almost_equal(mesh_points[6][0], 1500.0) + + def test_step_parse_coords_2(self): + step_handler = sh.StepHandler() + mesh_points = step_handler.parse('tests/test_datasets/test_pipe.step') + np.testing.assert_almost_equal(mesh_points[8][1], -1000.0) + + def test_step_parse_coords_3(self): + step_handler = sh.StepHandler() + mesh_points = step_handler.parse('tests/test_datasets/test_pipe.step') + np.testing.assert_almost_equal(mesh_points[30][2], 0.0) + + def test_step_parse_coords_4(self): + step_handler = sh.StepHandler() + mesh_points = step_handler.parse('tests/test_datasets/test_pipe.step') + np.testing.assert_almost_equal(mesh_points[0][0], -1500.0) + + def test_step_parse_coords_5(self): + step_handler = sh.StepHandler() + mesh_points = step_handler.parse('tests/test_datasets/test_pipe.step') + np.testing.assert_almost_equal(mesh_points[-1][2], 0.0) + + def test_step_parse_coords_5_stp(self): + step_handler = sh.StepHandler() + mesh_points = step_handler.parse('tests/test_datasets/test_pipe.stp') + np.testing.assert_almost_equal(mesh_points[-1][2], 0.0) + + def test_step_write_failing_filename_type(self): + step_handler = sh.StepHandler() + mesh_points = step_handler.parse('tests/test_datasets/test_pipe.step') + with self.assertRaises(TypeError): + step_handler.write(mesh_points, -2) + + def test_step_write_failing_check_extension(self): + step_handler = sh.StepHandler() + mesh_points = step_handler.parse('tests/test_datasets/test_pipe.step') + with self.assertRaises(ValueError): + step_handler.write( + mesh_points, 'tests/test_datasets/test_square.stl' + ) + + def test_step_write_failing_infile_instantiation(self): + step_handler = sh.StepHandler() + mesh_points = np.zeros((20, 3)) + with self.assertRaises(RuntimeError): + step_handler.write( + mesh_points, 'tests/test_datasets/test_pipe_out.step' + ) + + def test_step_write_outfile(self): + step_handler = sh.StepHandler() + mesh_points = step_handler.parse('tests/test_datasets/test_pipe.step') + outfilename = 'tests/test_datasets/test_pipe_out.step' + step_handler.write(mesh_points, outfilename) + self.assertEqual(step_handler.outfile, outfilename) + self.addCleanup(os.remove, outfilename) + + def test_step_write_outfile_tolerance(self): + step_handler = sh.StepHandler() + mesh_points = step_handler.parse('tests/test_datasets/test_pipe.step') + outfilename = 'tests/test_datasets/test_pipe_out.step' + step_handler.write(mesh_points, outfilename, 1e-3) + self.assertEqual(step_handler.tolerance, 1e-3) + self.addCleanup(os.remove, outfilename) + + def test_step_write_modified_tolerance(self): + step_handler = sh.StepHandler() + mesh_points = step_handler.parse('tests/test_datasets/test_pipe.step') + outfilename = 'tests/test_datasets/test_pipe_out.step' + step_handler.write(mesh_points, outfilename, 1e-3) + self.assertEqual(step_handler.outfile, outfilename) + self.addCleanup(os.remove, outfilename) + + def test_step_write_comparison_step(self): + step_handler = sh.StepHandler() + mesh_points = step_handler.parse('tests/test_datasets/test_pipe.step') + mesh_points[0][0] = 2.2 + mesh_points[5][1] = 4.3 + mesh_points[9][2] = 0.5 + mesh_points[12][0] = 7.2 + mesh_points[16][1] = -1.2 + mesh_points[31][2] = -3.6 + + outfilename = 'tests/test_datasets/test_pipe_out.step' + outfilename_expected = 'tests/test_datasets/test_pipe_out_true.step' + + step_handler.write(mesh_points, outfilename) + + mesh_points = step_handler.parse(outfilename) + mesh_points_expected = step_handler.parse(outfilename_expected) + np.testing.assert_array_almost_equal(mesh_points, mesh_points_expected) + self.addCleanup(os.remove, outfilename) + + def test_step_write_comparison_stp(self): + step_handler = sh.StepHandler() + mesh_points = step_handler.parse('tests/test_datasets/test_pipe.stp') + mesh_points[0][0] = 2.2 + mesh_points[5][1] = 4.3 + mesh_points[9][2] = 0.5 + mesh_points[12][0] = 7.2 + mesh_points[16][1] = -1.2 + mesh_points[31][2] = -3.6 + + outfilename = 'tests/test_datasets/test_pipe_out.stp' + outfilename_expected = 'tests/test_datasets/test_pipe_out_true.stp' + + step_handler.write(mesh_points, outfilename) + + mesh_points = step_handler.parse(outfilename) + mesh_points_expected = step_handler.parse(outfilename_expected) + np.testing.assert_array_almost_equal(mesh_points, mesh_points_expected) + self.addCleanup(os.remove, outfilename) + + def test_step_plot_save_fig(self): + step_handler = sh.StepHandler() + mesh_points = step_handler.parse('tests/test_datasets/test_pipe.step') + step_handler.plot(save_fig=True) + self.assertTrue(os.path.isfile('tests/test_datasets/test_pipe.png')) + self.addCleanup(os.remove, 'tests/test_datasets/test_pipe.png') + + def test_step_plot_failing_outfile_type(self): + step_handler = sh.StepHandler() + with self.assertRaises(TypeError): + step_handler.plot(plot_file=3) + + def test_step_show_failing_outfile_type(self): + step_handler = sh.StepHandler() + with self.assertRaises(TypeError): + step_handler.show(show_file=1.1) + + def test_step_load_shape_from_file_raises_wrong_type(self): + step_handler = sh.StepHandler() + with self.assertRaises(TypeError): + step_handler.load_shape_from_file(None) + + def test_step_load_shape_from_file_raises_wrong_extension(self): + step_handler = sh.StepHandler() + with self.assertRaises(ValueError): + step_handler.load_shape_from_file('tests/test_datasets/test_pipe.igs') + + def test_step_load_shape_correct_step(self): + step_handler = sh.StepHandler() + shape = step_handler.load_shape_from_file( + 'tests/test_datasets/test_pipe.step' + ) + self.assertEqual(type(shape), TopoDS_Shape) + + def test_step_load_shape_correct_stp(self): + step_handler = sh.StepHandler() + shape = step_handler.load_shape_from_file( + 'tests/test_datasets/test_pipe.stp' + ) + self.assertEqual(type(shape), TopoDS_Shape) + + def test_step_write_shape_to_file_raises_wrong_type(self): + step_handler = sh.StepHandler() + with self.assertRaises(TypeError): + step_handler.write_shape_to_file(None, None) + + def test_step_write_shape_to_file_raises_wrong_extension(self): + step_handler = sh.StepHandler() + with self.assertRaises(ValueError): + step_handler.load_shape_from_file('tests/test_datasets/x.igs') + + def test_step_write_shape_to_file_step(self): + shp = BRepPrimAPI_MakeBox(1., 1., 1.).Shape() + path = 'tests/test_datasets/x.step' + step_handler = sh.StepHandler() + step_handler.write_shape_to_file(shp, path) + self.assertTrue(os.path.exists(path)) + self.addCleanup(os.remove, path) + + def test_step_write_shape_to_file_stp(self): + shp = BRepPrimAPI_MakeBox(1., 1., 1.).Shape() + path = 'tests/test_datasets/x.stp' + step_handler = sh.StepHandler() + step_handler.write_shape_to_file(shp, path) + self.assertTrue(os.path.exists(path)) + self.addCleanup(os.remove, path) diff --git a/tests/test_stlhandler.py b/tests/test_stlhandler.py index b50373e..a83de11 100644 --- a/tests/test_stlhandler.py +++ b/tests/test_stlhandler.py @@ -12,15 +12,15 @@ def test_stl_instantiation(self): def test_stl_default_infile_member(self): stl_handler = sh.StlHandler() - assert stl_handler.infile == None + self.assertIsNone(stl_handler.infile) def test_stl_default_outfile_member(self): stl_handler = sh.StlHandler() - assert stl_handler.outfile == None + self.assertIsNone(stl_handler.outfile) def test_stl_default_extension_member(self): stl_handler = sh.StlHandler() - assert stl_handler.extension == '.stl' + self.assertListEqual(stl_handler.extensions, ['.stl']) def test_stl_parse_failing_filename_type(self): stl_handler = sh.StlHandler() @@ -37,12 +37,12 @@ def test_stl_parse_failing_check_extension(self): def test_stl_parse_infile(self): stl_handler = sh.StlHandler() mesh_points = stl_handler.parse('tests/test_datasets/test_sphere.stl') - assert stl_handler.infile == 'tests/test_datasets/test_sphere.stl' + self.assertEqual(stl_handler.infile, 'tests/test_datasets/test_sphere.stl') def test_stl_parse_shape(self): stl_handler = sh.StlHandler() mesh_points = stl_handler.parse('tests/test_datasets/test_sphere.stl') - assert mesh_points.shape == (7200, 3) + self.assertTupleEqual(mesh_points.shape, (7200, 3)) def test_stl_parse_coords_1(self): stl_handler = sh.StlHandler() @@ -103,8 +103,8 @@ def test_stl_write_outfile(self): mesh_points = stl_handler.parse('tests/test_datasets/test_sphere.stl') outfilename = 'tests/test_datasets/test_sphere_out.stl' stl_handler.write(mesh_points, outfilename) - assert stl_handler.outfile == outfilename - os.remove(outfilename) + self.assertEqual(stl_handler.outfile, outfilename) + self.addCleanup(os.remove, outfilename) def test_stl_write_comparison(self): stl_handler = sh.StlHandler() @@ -124,7 +124,7 @@ def test_stl_write_comparison(self): stl_handler.write(mesh_points, outfilename) self.assertTrue(filecmp.cmp(outfilename, outfilename_expected)) - os.remove(outfilename) + self.addCleanup(os.remove, outfilename) def test_stl_write_binary_from_binary(self): stl_handler = sh.StlHandler() @@ -144,7 +144,7 @@ def test_stl_write_binary_from_binary(self): outfilename = 'tests/test_datasets/test_sphere_out.stl' stl_handler.write(mesh_points, outfilename, write_bin=True) - os.remove(outfilename) + self.addCleanup(os.remove, outfilename) def test_stl_write_binary_from_ascii(self): stl_handler = sh.StlHandler() @@ -162,7 +162,7 @@ def test_stl_write_binary_from_ascii(self): outfilename = 'tests/test_datasets/test_sphere_out.stl' stl_handler.write(mesh_points, outfilename, write_bin=True) - os.remove(outfilename) + self.addCleanup(os.remove, outfilename) def test_stl_write_ascii_from_binary(self): stl_handler = sh.StlHandler() @@ -184,14 +184,14 @@ def test_stl_write_ascii_from_binary(self): stl_handler.write(mesh_points, outfilename, write_bin=False) self.assertTrue(filecmp.cmp(outfilename, outfilename_expected)) - os.remove(outfilename) + self.addCleanup(os.remove, outfilename) def test_stl_plot_save_fig(self): stl_handler = sh.StlHandler() mesh_points = stl_handler.parse('tests/test_datasets/test_sphere.stl') stl_handler.plot(save_fig=True) self.assertTrue(os.path.isfile('tests/test_datasets/test_sphere.png')) - os.remove('tests/test_datasets/test_sphere.png') + self.addCleanup(os.remove, 'tests/test_datasets/test_sphere.png') def test_stl_plot_save_fig_bin(self): stl_handler = sh.StlHandler() @@ -202,7 +202,7 @@ def test_stl_plot_save_fig_bin(self): self.assertTrue( os.path.isfile('tests/test_datasets/test_sphere_bin.png') ) - os.remove('tests/test_datasets/test_sphere_bin.png') + self.addCleanup(os.remove, 'tests/test_datasets/test_sphere_bin.png') def test_stl_plot_save_fig_plot_file(self): stl_handler = sh.StlHandler() @@ -210,7 +210,7 @@ def test_stl_plot_save_fig_plot_file(self): plot_file='tests/test_datasets/test_sphere.stl', save_fig=True ) self.assertTrue(os.path.isfile('tests/test_datasets/test_sphere.png')) - os.remove('tests/test_datasets/test_sphere.png') + self.addCleanup(os.remove, 'tests/test_datasets/test_sphere.png') def test_stl_plot_failing_outfile_type(self): stl_handler = sh.StlHandler() diff --git a/tests/test_unvhandler.py b/tests/test_unvhandler.py index b5b3026..47b7cd0 100644 --- a/tests/test_unvhandler.py +++ b/tests/test_unvhandler.py @@ -12,15 +12,15 @@ def test_unv_instantiation(self): def test_unv_default_infile_member(self): unv_handler = uh.UnvHandler() - assert unv_handler.infile == None + self.assertIsNone(unv_handler.infile) def test_unv_default_outfile_member(self): unv_handler = uh.UnvHandler() - assert unv_handler.outfile == None + self.assertIsNone(unv_handler.outfile) def test_unv_default_extension_member(self): unv_handler = uh.UnvHandler() - assert unv_handler.extension == '.unv' + self.assertListEqual(unv_handler.extensions, ['.unv']) def test_unv_parse_failing_filename_type(self): unv_handler = uh.UnvHandler() @@ -37,12 +37,12 @@ def test_unv_parse_failing_check_extension(self): def test_unv_parse_infile(self): unv_handler = uh.UnvHandler() mesh_points = unv_handler.parse('tests/test_datasets/test_square.unv') - assert unv_handler.infile == 'tests/test_datasets/test_square.unv' + self.assertEqual(unv_handler.infile, 'tests/test_datasets/test_square.unv') def test_unv_parse_shape(self): unv_handler = uh.UnvHandler() mesh_points = unv_handler.parse('tests/test_datasets/test_square.unv') - assert mesh_points.shape == (256, 3) + self.assertTupleEqual(mesh_points.shape, (256, 3)) def test_unv_parse_coords_1(self): unv_handler = uh.UnvHandler() @@ -96,8 +96,8 @@ def test_unv_write_outfile(self): mesh_points = unv_handler.parse('tests/test_datasets/test_square.unv') outfilename = 'tests/test_datasets/test_square_out.unv' unv_handler.write(mesh_points, outfilename) - assert unv_handler.outfile == outfilename - os.remove(outfilename) + self.assertEqual(unv_handler.outfile, outfilename) + self.addCleanup(os.remove, outfilename) def test_unv_write_comparison_1(self): unv_handler = uh.UnvHandler() @@ -108,7 +108,7 @@ def test_unv_write_comparison_1(self): unv_handler.write(mesh_points, outfilename) self.assertTrue(filecmp.cmp(outfilename, outfilename_expected)) - os.remove(outfilename) + self.addCleanup(os.remove, outfilename) def test_unv_write_comparison_2(self): unv_handler = uh.UnvHandler() @@ -126,4 +126,4 @@ def test_unv_write_comparison_2(self): unv_handler.write(mesh_points, outfilename) self.assertTrue(filecmp.cmp(outfilename, outfilename_expected)) - os.remove(outfilename) + self.addCleanup(os.remove, outfilename) diff --git a/tests/test_vtkhandler.py b/tests/test_vtkhandler.py index 1072aa5..a1418e1 100644 --- a/tests/test_vtkhandler.py +++ b/tests/test_vtkhandler.py @@ -20,7 +20,7 @@ def test_vtk_default_outfile_member(self): def test_vtk_default_extension_member(self): vtk_handler = vh.VtkHandler() - assert vtk_handler.extension == '.vtk' + self.assertListEqual(vtk_handler.extensions, ['.vtk']) def test_vtk_parse_failing_filename_type(self): vtk_handler = vh.VtkHandler()