From d6df48b7db7cec520703fd387c8f4e39d3edb8c2 Mon Sep 17 00:00:00 2001 From: Luca Heltai Date: Sun, 13 Dec 2015 17:51:26 +0100 Subject: [PATCH] Fixed read IGES and STEP. --- doc/news/changes.h | 9 + source/opencascade/utilities.cc | 22 +- .../arclength_boundary_from_iges_01.cc | 51 ++++ .../arclength_boundary_from_iges_01.output | 39 +++ .../arclength_boundary_from_step_01.cc | 58 ++++ .../arclength_boundary_from_step_01.output | 39 +++ tests/opencascade/iges_files/line_03.iges | 12 + tests/opencascade/step_describe_02.output | 2 +- tests/opencascade/step_files/line_03.step | 52 ++++ tests/opencascade/step_write.cc | 2 +- tests/opencascade/step_write.output | 272 +++++++++--------- 11 files changed, 401 insertions(+), 157 deletions(-) create mode 100644 tests/opencascade/arclength_boundary_from_iges_01.cc create mode 100644 tests/opencascade/arclength_boundary_from_iges_01.output create mode 100644 tests/opencascade/arclength_boundary_from_step_01.cc create mode 100644 tests/opencascade/arclength_boundary_from_step_01.output create mode 100644 tests/opencascade/iges_files/line_03.iges create mode 100644 tests/opencascade/step_files/line_03.step diff --git a/doc/news/changes.h b/doc/news/changes.h index d002d4e727..ceeaa7988f 100644 --- a/doc/news/changes.h +++ b/doc/news/changes.h @@ -183,6 +183,15 @@ inconvenience this causes.

General

    +
  1. New: OpenCASCADE::read_IGES() and OpenCASCADE::read_STEP() have + been unified in behaviour, and now they allow to extract *all* elements of + the IGES and STEP files instead of only the faces. This allows the + use of iges files describing edges only to be used as input for some of + the OpenCASCADE Manifold wrappers. +
    + (Luca Heltai, 2015/12/13) +
  2. +
  3. New: There is now a function Utilities::to_string that works like int_to_string, but is more safe for long integers, negative integers, and also handles floating point numbers. The implementation of int_to_string diff --git a/source/opencascade/utilities.cc b/source/opencascade/utilities.cc index 37d4fdfde5..c170b97a3d 100644 --- a/source/opencascade/utilities.cc +++ b/source/opencascade/utilities.cc @@ -191,13 +191,11 @@ namespace OpenCASCADE IFSelect_PrintCount mode = IFSelect_ItemsByEntity; reader.PrintCheckLoad (failsonly, mode); - Handle(TColStd_HSequenceOfTransient) myList = reader.GiveList("iges-faces"); - //selects all IGES faces in the - //file and puts them into a list - //called MyList, - Standard_Integer nTransFaces = reader.TransferList(myList); + Standard_Integer nRoots = reader.TransferRoots(); + //selects all IGES entities (including non visible ones) in the + //file and puts them into a list called MyList, - AssertThrow(nTransFaces > 0, + AssertThrow(nRoots > 0, ExcMessage("Read nothing from file.")); // Handle IGES Scale here. @@ -236,16 +234,14 @@ namespace OpenCASCADE IFSelect_PrintCount mode = IFSelect_ItemsByEntity; reader.PrintCheckLoad (failsonly, mode); - Handle(TColStd_HSequenceOfTransient) myList = reader.GiveList("step-faces"); - //selects all IGES faces in the - //file and puts them into a list - //called MyList, - Standard_Integer nTransFaces = reader.TransferList(myList); + Standard_Integer nRoots = reader.TransferRoots(); + //selects all IGES entities (including non visible ones) in the + //file and puts them into a list called MyList, - AssertThrow(nTransFaces > 0, + AssertThrow(nRoots > 0, ExcMessage("Read nothing from file.")); - // Handle IGES Scale here. + // Handle STEP Scale here. gp_Pnt Origin; gp_Trsf scale; scale.SetScale (Origin, scale_factor); diff --git a/tests/opencascade/arclength_boundary_from_iges_01.cc b/tests/opencascade/arclength_boundary_from_iges_01.cc new file mode 100644 index 0000000000..a9b7f53902 --- /dev/null +++ b/tests/opencascade/arclength_boundary_from_iges_01.cc @@ -0,0 +1,51 @@ +//----------------------------------------------------------- +// +// Copyright (C) 2014 - 2015 by the deal.II authors +// +// This file is subject to LGPL and may not be distributed +// without copyright and license information. Please refer +// to the file deal.II/doc/license.html for the text and +// further information on this license. +// +//----------------------------------------------------------- + +#include "../tests.h" +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +// Create a Triangulation, interpolate its boundary points to a smooth +// BSpline, and use that as an arlength Boundary Descriptor. + +using namespace OpenCASCADE; + +int main () +{ + std::ofstream logfile("output"); + + TopoDS_Shape new_edge = read_IGES(SOURCE_DIR"/iges_files/line_03.iges", 1.0); + + ArclengthProjectionLineManifold<1,3> manifold(new_edge); + + Triangulation<1,3> tria; + GridGenerator::hyper_cube(tria); + + tria.begin_active()->set_all_manifold_ids(1); + tria.set_manifold(1, manifold); + + tria.refine_global(4); + GridOut gridout; + gridout.write_msh(tria, logfile); + + return 0; +} + diff --git a/tests/opencascade/arclength_boundary_from_iges_01.output b/tests/opencascade/arclength_boundary_from_iges_01.output new file mode 100644 index 0000000000..94fa0fec06 --- /dev/null +++ b/tests/opencascade/arclength_boundary_from_iges_01.output @@ -0,0 +1,39 @@ +$NOD +17 +1 0 0 0 +2 1 0 0 +3 0.5 1.125 0 +4 -0.213053 0.770812 0 +5 1.21305 0.770812 0 +6 -0.209733 0.361552 0 +7 0.090632 1.04613 0 +8 0.909368 1.04613 0 +9 1.20973 0.361552 0 +10 -0.118931 0.172725 0 +11 -0.251438 0.566341 0 +12 -0.0875601 0.936891 0 +13 0.291313 1.106 0 +14 0.708687 1.106 0 +15 1.08756 0.936891 0 +16 1.25144 0.566341 0 +17 1.11893 0.172725 0 +$ENDNOD +$ELM +16 +1 1 0 0 2 1 10 +2 1 0 0 2 10 6 +3 1 0 0 2 6 11 +4 1 0 0 2 11 4 +5 1 0 0 2 4 12 +6 1 0 0 2 12 7 +7 1 0 0 2 7 13 +8 1 0 0 2 13 3 +9 1 0 0 2 3 14 +10 1 0 0 2 14 8 +11 1 0 0 2 8 15 +12 1 0 0 2 15 5 +13 1 0 0 2 5 16 +14 1 0 0 2 16 9 +15 1 0 0 2 9 17 +16 1 0 0 2 17 2 +$ENDELM diff --git a/tests/opencascade/arclength_boundary_from_step_01.cc b/tests/opencascade/arclength_boundary_from_step_01.cc new file mode 100644 index 0000000000..04aefcc029 --- /dev/null +++ b/tests/opencascade/arclength_boundary_from_step_01.cc @@ -0,0 +1,58 @@ +//----------------------------------------------------------- +// +// Copyright (C) 2014 - 2015 by the deal.II authors +// +// This file is subject to LGPL and may not be distributed +// without copyright and license information. Please refer +// to the file deal.II/doc/license.html for the text and +// further information on this license. +// +//----------------------------------------------------------- + +#include "../tests.h" +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include + +// Create a Triangulation, interpolate its boundary points to a smooth +// BSpline, and use that as an arlength Boundary Descriptor. + +using namespace OpenCASCADE; + +int main () +{ + std::ofstream logfile("output"); + + TopoDS_Shape new_edge = read_STEP(SOURCE_DIR"/step_files/line_03.step", 1.0); + + std::vector faces; + std::vector edges; + std::vector vertices; + + extract_geometrical_shapes(new_edge, faces, edges, vertices); + AssertDimension(edges.size(), 1); + + ArclengthProjectionLineManifold<1,3> manifold(edges[0]); + + Triangulation<1,3> tria; + GridGenerator::hyper_cube(tria); + + tria.begin_active()->set_all_manifold_ids(1); + tria.set_manifold(1, manifold); + + tria.refine_global(4); + GridOut gridout; + gridout.write_msh(tria, logfile); + + return 0; +} + diff --git a/tests/opencascade/arclength_boundary_from_step_01.output b/tests/opencascade/arclength_boundary_from_step_01.output new file mode 100644 index 0000000000..94fa0fec06 --- /dev/null +++ b/tests/opencascade/arclength_boundary_from_step_01.output @@ -0,0 +1,39 @@ +$NOD +17 +1 0 0 0 +2 1 0 0 +3 0.5 1.125 0 +4 -0.213053 0.770812 0 +5 1.21305 0.770812 0 +6 -0.209733 0.361552 0 +7 0.090632 1.04613 0 +8 0.909368 1.04613 0 +9 1.20973 0.361552 0 +10 -0.118931 0.172725 0 +11 -0.251438 0.566341 0 +12 -0.0875601 0.936891 0 +13 0.291313 1.106 0 +14 0.708687 1.106 0 +15 1.08756 0.936891 0 +16 1.25144 0.566341 0 +17 1.11893 0.172725 0 +$ENDNOD +$ELM +16 +1 1 0 0 2 1 10 +2 1 0 0 2 10 6 +3 1 0 0 2 6 11 +4 1 0 0 2 11 4 +5 1 0 0 2 4 12 +6 1 0 0 2 12 7 +7 1 0 0 2 7 13 +8 1 0 0 2 13 3 +9 1 0 0 2 3 14 +10 1 0 0 2 14 8 +11 1 0 0 2 8 15 +12 1 0 0 2 15 5 +13 1 0 0 2 5 16 +14 1 0 0 2 16 9 +15 1 0 0 2 9 17 +16 1 0 0 2 17 2 +$ENDELM diff --git a/tests/opencascade/iges_files/line_03.iges b/tests/opencascade/iges_files/line_03.iges new file mode 100644 index 0000000000..9433c32f21 --- /dev/null +++ b/tests/opencascade/iges_files/line_03.iges @@ -0,0 +1,12 @@ + S0000001 +,,31HOpen CASCADE IGES processor 6.7,13HFilename.iges, G0000001 +16HOpen CASCADE 6.7,31HOpen CASCADE IGES processor 6.7,32,308,15,308,15,G0000002 +,1.,2,2HMM,1,0.01,15H20151213.130947,1E-07,1.309333,6Hheltai,,11,0, G0000003 +15H20151213.130947,; G0000004 + 126 1 0 0 0 0 0 000000000D0000001 + 126 0 0 4 0 0D0000002 +126,5,3,1,0,1,0,0.,0.,0.,0.,1.,2.,3.,3.,3.,3.,1.,1.,1.,1.,1.,1., 0000001P0000001 +0.,0.,0.,-0.388888889,0.5,0.,-0.166666667,1.166666667,0., 0000001P0000002 +1.166666667,1.166666667,0.,1.388888889,0.5,-0.,1.,0.,0.,0.,3., 0000001P0000003 +-0.,-0.,1.; 0000001P0000004 +S 1G 4D 2P 4 T0000001 diff --git a/tests/opencascade/step_describe_02.output b/tests/opencascade/step_describe_02.output index b760f0d215..77ef3d2b53 100644 --- a/tests/opencascade/step_describe_02.output +++ b/tests/opencascade/step_describe_02.output @@ -1,2 +1,2 @@ -DEAL::Shape contains 1 compounds, 0 compound solids, 0 solids, 0 shells, 3 wires. +DEAL::Shape contains 1 compounds, 0 compound solids, 0 solids, 3 shells, 3 wires. diff --git a/tests/opencascade/step_files/line_03.step b/tests/opencascade/step_files/line_03.step new file mode 100644 index 0000000000..909c928aae --- /dev/null +++ b/tests/opencascade/step_files/line_03.step @@ -0,0 +1,52 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('Open CASCADE Model'),'2;1'); +FILE_NAME('Open CASCADE Shape Model','2015-12-13T13:42:38',('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('committee draft', + 'automotive_design',1997,#2); +#2 = APPLICATION_CONTEXT( + 'core data for automotive mechanical design processes'); +#3 = SHAPE_DEFINITION_REPRESENTATION(#4,#10); +#4 = PRODUCT_DEFINITION_SHAPE('','',#5); +#5 = PRODUCT_DEFINITION('design','',#6,#9); +#6 = PRODUCT_DEFINITION_FORMATION('','',#7); +#7 = PRODUCT('Open CASCADE STEP translator 6.7 1', + 'Open CASCADE STEP translator 6.7 1','',(#8)); +#8 = MECHANICAL_CONTEXT('',#2,'mechanical'); +#9 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design'); +#10 = GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION('',(#11,#15), + #26); +#11 = AXIS2_PLACEMENT_3D('',#12,#13,#14); +#12 = CARTESIAN_POINT('',(0.,0.,0.)); +#13 = DIRECTION('',(0.,0.,1.)); +#14 = DIRECTION('',(1.,0.,-0.)); +#15 = GEOMETRIC_CURVE_SET('',(#16)); +#16 = TRIMMED_CURVE('',#17,(#24,PARAMETER_VALUE(0.)),(#25, + PARAMETER_VALUE(3.)),.T.,.PARAMETER.); +#17 = B_SPLINE_CURVE_WITH_KNOTS('',3,(#18,#19,#20,#21,#22,#23), + .UNSPECIFIED.,.F.,.F.,(4,1,1,4),(0.,1.,2.,3.),.QUASI_UNIFORM_KNOTS.); +#18 = CARTESIAN_POINT('',(0.,0.,0.)); +#19 = CARTESIAN_POINT('',(-0.388888888889,0.5,0.)); +#20 = CARTESIAN_POINT('',(-0.166666666667,1.166666666667,0.)); +#21 = CARTESIAN_POINT('',(1.166666666667,1.166666666667,0.)); +#22 = CARTESIAN_POINT('',(1.388888888889,0.5,-0.)); +#23 = CARTESIAN_POINT('',(1.,0.,0.)); +#24 = CARTESIAN_POINT('',(0.,0.,0.)); +#25 = CARTESIAN_POINT('',(1.,0.,0.)); +#26 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#30)) GLOBAL_UNIT_ASSIGNED_CONTEXT( +(#27,#28,#29)) REPRESENTATION_CONTEXT('Context #1', + '3D Context with UNIT and UNCERTAINTY') ); +#27 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); +#28 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); +#29 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); +#30 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#27, + 'distance_accuracy_value','confusion accuracy'); +#31 = PRODUCT_TYPE('part',$,(#7)); +ENDSEC; +END-ISO-10303-21; diff --git a/tests/opencascade/step_write.cc b/tests/opencascade/step_write.cc index b8fb7ee8f1..d08fa0b50d 100644 --- a/tests/opencascade/step_write.cc +++ b/tests/opencascade/step_write.cc @@ -25,7 +25,7 @@ using namespace OpenCASCADE; int main () { - TopoDS_Shape sh = read_STEP(SOURCE_DIR "/step_files/wigley.step"); + TopoDS_Shape sh = read_STEP(SOURCE_DIR "/step_files/wigley.step", 1.0); write_STEP(sh, "tmp.step"); std::ifstream in("tmp.step"); std::ofstream out("output"); diff --git a/tests/opencascade/step_write.output b/tests/opencascade/step_write.output index 4139e07184..7642cae68f 100644 --- a/tests/opencascade/step_write.output +++ b/tests/opencascade/step_write.output @@ -14,7 +14,7 @@ DATA; #6 = PRODUCT_DEFINITION_FORMATION('','',#7); #8 = MECHANICAL_CONTEXT('',#2,'mechanical'); #9 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design'); -#10 = MANIFOLD_SURFACE_SHAPE_REPRESENTATION('',(#11,#15),#143); +#10 = MANIFOLD_SURFACE_SHAPE_REPRESENTATION('',(#11,#15),#147); #11 = AXIS2_PLACEMENT_3D('',#12,#13,#14); #12 = CARTESIAN_POINT('',(0.,0.,0.)); #13 = DIRECTION('',(0.,0.,1.)); @@ -23,28 +23,28 @@ DATA; #16 = OPEN_SHELL('',(#17)); #17 = ADVANCED_FACE('',(#18),#40,.T.); #18 = FACE_BOUND('',#19,.T.); -#19 = EDGE_LOOP('',(#20,#90,#106,#129)); +#19 = EDGE_LOOP('',(#20,#91,#108,#132)); #20 = ORIENTED_EDGE('',*,*,#21,.F.); #21 = EDGE_CURVE('',#22,#24,#26,.T.); #22 = VERTEX_POINT('',#23); -#23 = CARTESIAN_POINT('',(-1.25E-03,0.,1.5625E-04)); +#23 = CARTESIAN_POINT('',(-1.25E+03,0.,156.25)); #24 = VERTEX_POINT('',#25); -#25 = CARTESIAN_POINT('',(-1.25E-03,6.938893904E-21,-1.5625E-04)); +#25 = CARTESIAN_POINT('',(-1.25E+03,6.938893904E-15,-156.25)); #26 = SURFACE_CURVE('',#27,(#39),.PCURVE_S1.); #27 = B_SPLINE_CURVE_WITH_KNOTS('',4,(#28,#29,#30,#31,#32,#33,#34,#35, #36,#37,#38),.UNSPECIFIED.,.F.,.F.,(5,3,3,5),(0.,0.434398431, 0.67839972,1.),.UNSPECIFIED.); -#28 = CARTESIAN_POINT('',(-1.25E-03,0.,1.5625E-04)); -#29 = CARTESIAN_POINT('',(-1.25E-03,0.,1.171875E-04)); -#30 = CARTESIAN_POINT('',(-1.25E-03,0.,7.8125E-05)); -#31 = CARTESIAN_POINT('',(-1.25E-03,0.,3.90625E-05)); -#32 = CARTESIAN_POINT('',(-1.25E-03,0.,-2.194137841E-05)); -#33 = CARTESIAN_POINT('',(-1.25E-03,0.,-4.186850308E-05)); -#34 = CARTESIAN_POINT('',(-1.25E-03,0.,-6.051483061E-05)); -#35 = CARTESIAN_POINT('',(-1.25E-03,0.,-1.01335678E-04)); -#36 = CARTESIAN_POINT('',(-1.25E-03,0.,-1.21016618E-04)); -#37 = CARTESIAN_POINT('',(-1.25E-03,0.,-1.39275692E-04)); -#38 = CARTESIAN_POINT('',(-1.25E-03,0.,-1.5625E-04)); +#28 = CARTESIAN_POINT('',(-1.25E+03,0.,156.25)); +#29 = CARTESIAN_POINT('',(-1.25E+03,0.,117.1875)); +#30 = CARTESIAN_POINT('',(-1.25E+03,0.,78.125)); +#31 = CARTESIAN_POINT('',(-1.25E+03,0.,39.0625)); +#32 = CARTESIAN_POINT('',(-1.25E+03,0.,-21.94137841)); +#33 = CARTESIAN_POINT('',(-1.25E+03,0.,-41.86850308)); +#34 = CARTESIAN_POINT('',(-1.25E+03,0.,-60.51483061)); +#35 = CARTESIAN_POINT('',(-1.25E+03,0.,-101.335678)); +#36 = CARTESIAN_POINT('',(-1.25E+03,0.,-121.016618)); +#37 = CARTESIAN_POINT('',(-1.25E+03,0.,-139.275692)); +#38 = CARTESIAN_POINT('',(-1.25E+03,0.,-156.25)); #39 = PCURVE('',#40,#85); #40 = B_SPLINE_SURFACE_WITH_KNOTS('',3,4,( (#41,#42,#43,#44,#45,#46,#47,#48,#49,#50,#51) @@ -53,145 +53,133 @@ DATA; ,(#74,#75,#76,#77,#78,#79,#80,#81,#82,#83,#84 )),.UNSPECIFIED.,.F.,.F.,.F.,(4,4),(5,3,3,5),(0.,1.),(0.,0.434398431, 0.67839972,1.),.UNSPECIFIED.); -#41 = CARTESIAN_POINT('',(-1.25E-03,0.,1.5625E-04)); -#42 = CARTESIAN_POINT('',(-1.25E-03,0.,1.171875E-04)); -#43 = CARTESIAN_POINT('',(-1.25E-03,0.,7.8125E-05)); -#44 = CARTESIAN_POINT('',(-1.25E-03,0.,3.90625E-05)); -#45 = CARTESIAN_POINT('',(-1.25E-03,0.,-2.194137841E-05)); -#46 = CARTESIAN_POINT('',(-1.25E-03,0.,-4.186850308E-05)); -#47 = CARTESIAN_POINT('',(-1.25E-03,0.,-6.051483061E-05)); -#48 = CARTESIAN_POINT('',(-1.25E-03,0.,-1.01335678E-04)); -#49 = CARTESIAN_POINT('',(-1.25E-03,0.,-1.21016618E-04)); -#50 = CARTESIAN_POINT('',(-1.25E-03,0.,-1.39275692E-04)); -#51 = CARTESIAN_POINT('',(-1.25E-03,0.,-1.5625E-04)); -#52 = CARTESIAN_POINT('',(-4.27535926E-04,1.66356581E-04,1.5625E-04)); -#53 = CARTESIAN_POINT('',(-4.27535926E-04,1.66356581E-04,1.171875E-04)); -#54 = CARTESIAN_POINT('',(-4.27535926E-04,1.66356581E-04,7.8125E-05)); -#55 = CARTESIAN_POINT('',(-4.27535926E-04,1.66356581E-04,3.90625E-05)); -#56 = CARTESIAN_POINT('',(-4.27537148E-04,1.66340839E-04, - -2.194137841E-05)); -#57 = CARTESIAN_POINT('',(-4.26411306E-04,1.57707663E-04, - -4.186850308E-05)); -#58 = CARTESIAN_POINT('',(-4.24671145E-04,1.4360916E-04,-6.051483061E-05 - )); -#59 = CARTESIAN_POINT('',(-4.20417595E-04,1.00130616E-04,-1.01335678E-04 - )); -#60 = CARTESIAN_POINT('',(-4.18058171E-04,6.969502649E-05, - -1.21016618E-04)); -#61 = CARTESIAN_POINT('',(-4.16669646E-04,3.62728606E-05,-1.39275692E-04 - )); -#62 = CARTESIAN_POINT('',(-4.16666667E-04,0.,-1.5625E-04)); -#63 = CARTESIAN_POINT('',(4.27535926E-04,1.66356581E-04,1.5625E-04)); -#64 = CARTESIAN_POINT('',(4.27535926E-04,1.66356581E-04,1.171875E-04)); -#65 = CARTESIAN_POINT('',(4.27535926E-04,1.66356581E-04,7.8125E-05)); -#66 = CARTESIAN_POINT('',(4.27535926E-04,1.66356581E-04,3.90625E-05)); -#67 = CARTESIAN_POINT('',(4.27537148E-04,1.66340839E-04,-2.194137841E-05 - )); -#68 = CARTESIAN_POINT('',(4.26411306E-04,1.57707663E-04,-4.186850308E-05 - )); -#69 = CARTESIAN_POINT('',(4.24671145E-04,1.4360916E-04,-6.051483061E-05) - ); -#70 = CARTESIAN_POINT('',(4.20417595E-04,1.00130616E-04,-1.01335678E-04) - ); -#71 = CARTESIAN_POINT('',(4.18058171E-04,6.969502649E-05,-1.21016618E-04 - )); -#72 = CARTESIAN_POINT('',(4.16669646E-04,3.62728606E-05,-1.39275692E-04) - ); -#73 = CARTESIAN_POINT('',(4.16666667E-04,0.,-1.5625E-04)); -#74 = CARTESIAN_POINT('',(1.25E-03,-3.885780586E-19,1.5625E-04)); -#75 = CARTESIAN_POINT('',(1.25E-03,-3.885780586E-19,1.171875E-04)); -#76 = CARTESIAN_POINT('',(1.25E-03,-3.885780586E-19,7.8125E-05)); -#77 = CARTESIAN_POINT('',(1.25E-03,-3.885780586E-19,3.90625E-05)); -#78 = CARTESIAN_POINT('',(1.25E-03,-3.885524483E-19,-2.194137841E-05)); -#79 = CARTESIAN_POINT('',(1.25E-03,-3.683109958E-19,-4.186850308E-05)); -#80 = CARTESIAN_POINT('',(1.25E-03,-3.352606389E-19,-6.051483061E-05)); -#81 = CARTESIAN_POINT('',(1.25E-03,-2.335884101E-19,-1.01335678E-04)); -#82 = CARTESIAN_POINT('',(1.25E-03,-1.624730779E-19,-1.21016618E-04)); -#83 = CARTESIAN_POINT('',(1.25E-03,-8.457292169E-20,-1.39275692E-04)); -#84 = CARTESIAN_POINT('',(1.25E-03,0.,-1.5625E-04)); -#85 = DEFINITIONAL_REPRESENTATION('',(#86),#89); -#86 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#87,#88),.UNSPECIFIED.,.F.,.F.,(2, - 2),(0.,1.),.PIECEWISE_BEZIER_KNOTS.); +#41 = CARTESIAN_POINT('',(-1.25E+03,0.,156.25)); +#42 = CARTESIAN_POINT('',(-1.25E+03,0.,117.1875)); +#43 = CARTESIAN_POINT('',(-1.25E+03,0.,78.125)); +#44 = CARTESIAN_POINT('',(-1.25E+03,0.,39.0625)); +#45 = CARTESIAN_POINT('',(-1.25E+03,0.,-21.94137841)); +#46 = CARTESIAN_POINT('',(-1.25E+03,0.,-41.86850308)); +#47 = CARTESIAN_POINT('',(-1.25E+03,0.,-60.51483061)); +#48 = CARTESIAN_POINT('',(-1.25E+03,0.,-101.335678)); +#49 = CARTESIAN_POINT('',(-1.25E+03,0.,-121.016618)); +#50 = CARTESIAN_POINT('',(-1.25E+03,0.,-139.275692)); +#51 = CARTESIAN_POINT('',(-1.25E+03,0.,-156.25)); +#52 = CARTESIAN_POINT('',(-427.535926,166.356581,156.25)); +#53 = CARTESIAN_POINT('',(-427.535926,166.356581,117.1875)); +#54 = CARTESIAN_POINT('',(-427.535926,166.356581,78.125)); +#55 = CARTESIAN_POINT('',(-427.535926,166.356581,39.0625)); +#56 = CARTESIAN_POINT('',(-427.537148,166.340839,-21.94137841)); +#57 = CARTESIAN_POINT('',(-426.411306,157.707663,-41.86850308)); +#58 = CARTESIAN_POINT('',(-424.671145,143.60916,-60.51483061)); +#59 = CARTESIAN_POINT('',(-420.417595,100.130616,-101.335678)); +#60 = CARTESIAN_POINT('',(-418.058171,69.69502649,-121.016618)); +#61 = CARTESIAN_POINT('',(-416.669646,36.2728606,-139.275692)); +#62 = CARTESIAN_POINT('',(-416.666667,0.,-156.25)); +#63 = CARTESIAN_POINT('',(427.535926,166.356581,156.25)); +#64 = CARTESIAN_POINT('',(427.535926,166.356581,117.1875)); +#65 = CARTESIAN_POINT('',(427.535926,166.356581,78.125)); +#66 = CARTESIAN_POINT('',(427.535926,166.356581,39.0625)); +#67 = CARTESIAN_POINT('',(427.537148,166.340839,-21.94137841)); +#68 = CARTESIAN_POINT('',(426.411306,157.707663,-41.86850308)); +#69 = CARTESIAN_POINT('',(424.671145,143.60916,-60.51483061)); +#70 = CARTESIAN_POINT('',(420.417595,100.130616,-101.335678)); +#71 = CARTESIAN_POINT('',(418.058171,69.69502649,-121.016618)); +#72 = CARTESIAN_POINT('',(416.669646,36.2728606,-139.275692)); +#73 = CARTESIAN_POINT('',(416.666667,0.,-156.25)); +#74 = CARTESIAN_POINT('',(1.25E+03,-3.885780586E-13,156.25)); +#75 = CARTESIAN_POINT('',(1.25E+03,-3.885780586E-13,117.1875)); +#76 = CARTESIAN_POINT('',(1.25E+03,-3.885780586E-13,78.125)); +#77 = CARTESIAN_POINT('',(1.25E+03,-3.885780586E-13,39.0625)); +#78 = CARTESIAN_POINT('',(1.25E+03,-3.885524483E-13,-21.94137841)); +#79 = CARTESIAN_POINT('',(1.25E+03,-3.683109958E-13,-41.86850308)); +#80 = CARTESIAN_POINT('',(1.25E+03,-3.352606389E-13,-60.51483061)); +#81 = CARTESIAN_POINT('',(1.25E+03,-2.335884101E-13,-101.335678)); +#82 = CARTESIAN_POINT('',(1.25E+03,-1.624730779E-13,-121.016618)); +#83 = CARTESIAN_POINT('',(1.25E+03,-8.457292169E-14,-139.275692)); +#84 = CARTESIAN_POINT('',(1.25E+03,0.,-156.25)); +#85 = DEFINITIONAL_REPRESENTATION('',(#86),#90); +#86 = LINE('',#87,#88); #87 = CARTESIAN_POINT('',(0.,0.)); -#88 = CARTESIAN_POINT('',(0.,1.)); -#89 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +#88 = VECTOR('',#89,1.); +#89 = DIRECTION('',(-0.,1.)); +#90 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' ) ); -#90 = ORIENTED_EDGE('',*,*,#91,.T.); -#91 = EDGE_CURVE('',#22,#92,#94,.T.); -#92 = VERTEX_POINT('',#93); -#93 = CARTESIAN_POINT('',(1.25E-03,-3.885780586E-19,1.5625E-04)); -#94 = SURFACE_CURVE('',#95,(#100),.PCURVE_S1.); -#95 = B_SPLINE_CURVE_WITH_KNOTS('',3,(#96,#97,#98,#99),.UNSPECIFIED.,.F. - ,.F.,(4,4),(0.,1.),.PIECEWISE_BEZIER_KNOTS.); -#96 = CARTESIAN_POINT('',(-1.25E-03,0.,1.5625E-04)); -#97 = CARTESIAN_POINT('',(-4.27535926E-04,1.66356581E-04,1.5625E-04)); -#98 = CARTESIAN_POINT('',(4.27535926E-04,1.66356581E-04,1.5625E-04)); -#99 = CARTESIAN_POINT('',(1.25E-03,-3.885780586E-19,1.5625E-04)); -#100 = PCURVE('',#40,#101); -#101 = DEFINITIONAL_REPRESENTATION('',(#102),#105); -#102 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#103,#104),.UNSPECIFIED.,.F.,.F., - (2,2),(0.,1.),.PIECEWISE_BEZIER_KNOTS.); -#103 = CARTESIAN_POINT('',(0.,0.)); -#104 = CARTESIAN_POINT('',(1.,0.)); -#105 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +#91 = ORIENTED_EDGE('',*,*,#92,.T.); +#92 = EDGE_CURVE('',#22,#93,#95,.T.); +#93 = VERTEX_POINT('',#94); +#94 = CARTESIAN_POINT('',(1.25E+03,-3.885780586E-13,156.25)); +#95 = SURFACE_CURVE('',#96,(#101),.PCURVE_S1.); +#96 = B_SPLINE_CURVE_WITH_KNOTS('',3,(#97,#98,#99,#100),.UNSPECIFIED., + .F.,.F.,(4,4),(0.,1.),.PIECEWISE_BEZIER_KNOTS.); +#97 = CARTESIAN_POINT('',(-1.25E+03,0.,156.25)); +#98 = CARTESIAN_POINT('',(-427.535926,166.356581,156.25)); +#99 = CARTESIAN_POINT('',(427.535926,166.356581,156.25)); +#100 = CARTESIAN_POINT('',(1.25E+03,-3.885780586E-13,156.25)); +#101 = PCURVE('',#40,#102); +#102 = DEFINITIONAL_REPRESENTATION('',(#103),#107); +#103 = LINE('',#104,#105); +#104 = CARTESIAN_POINT('',(0.,0.)); +#105 = VECTOR('',#106,1.); +#106 = DIRECTION('',(1.,0.)); +#107 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' ) ); -#106 = ORIENTED_EDGE('',*,*,#107,.T.); -#107 = EDGE_CURVE('',#92,#108,#110,.T.); -#108 = VERTEX_POINT('',#109); -#109 = CARTESIAN_POINT('',(1.25E-03,6.938893904E-21,-1.5625E-04)); -#110 = SURFACE_CURVE('',#111,(#123),.PCURVE_S1.); -#111 = B_SPLINE_CURVE_WITH_KNOTS('',4,(#112,#113,#114,#115,#116,#117, - #118,#119,#120,#121,#122),.UNSPECIFIED.,.F.,.F.,(5,3,3,5),(0., +#108 = ORIENTED_EDGE('',*,*,#109,.T.); +#109 = EDGE_CURVE('',#93,#110,#112,.T.); +#110 = VERTEX_POINT('',#111); +#111 = CARTESIAN_POINT('',(1.25E+03,6.938893904E-15,-156.25)); +#112 = SURFACE_CURVE('',#113,(#125),.PCURVE_S1.); +#113 = B_SPLINE_CURVE_WITH_KNOTS('',4,(#114,#115,#116,#117,#118,#119, + #120,#121,#122,#123,#124),.UNSPECIFIED.,.F.,.F.,(5,3,3,5),(0., 0.434398431,0.67839972,1.),.UNSPECIFIED.); -#112 = CARTESIAN_POINT('',(1.25E-03,-3.885780586E-19,1.5625E-04)); -#113 = CARTESIAN_POINT('',(1.25E-03,-3.885780586E-19,1.171875E-04)); -#114 = CARTESIAN_POINT('',(1.25E-03,-3.885780586E-19,7.8125E-05)); -#115 = CARTESIAN_POINT('',(1.25E-03,-3.885780586E-19,3.90625E-05)); -#116 = CARTESIAN_POINT('',(1.25E-03,-3.885524483E-19,-2.194137841E-05)); -#117 = CARTESIAN_POINT('',(1.25E-03,-3.683109958E-19,-4.186850308E-05)); -#118 = CARTESIAN_POINT('',(1.25E-03,-3.352606389E-19,-6.051483061E-05)); -#119 = CARTESIAN_POINT('',(1.25E-03,-2.335884101E-19,-1.01335678E-04)); -#120 = CARTESIAN_POINT('',(1.25E-03,-1.624730779E-19,-1.21016618E-04)); -#121 = CARTESIAN_POINT('',(1.25E-03,-8.457292169E-20,-1.39275692E-04)); -#122 = CARTESIAN_POINT('',(1.25E-03,0.,-1.5625E-04)); -#123 = PCURVE('',#40,#124); -#124 = DEFINITIONAL_REPRESENTATION('',(#125),#128); -#125 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#126,#127),.UNSPECIFIED.,.F.,.F., - (2,2),(0.,1.),.PIECEWISE_BEZIER_KNOTS.); -#126 = CARTESIAN_POINT('',(1.,0.)); -#127 = CARTESIAN_POINT('',(1.,1.)); -#128 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +#114 = CARTESIAN_POINT('',(1.25E+03,-3.885780586E-13,156.25)); +#115 = CARTESIAN_POINT('',(1.25E+03,-3.885780586E-13,117.1875)); +#116 = CARTESIAN_POINT('',(1.25E+03,-3.885780586E-13,78.125)); +#117 = CARTESIAN_POINT('',(1.25E+03,-3.885780586E-13,39.0625)); +#118 = CARTESIAN_POINT('',(1.25E+03,-3.885524483E-13,-21.94137841)); +#119 = CARTESIAN_POINT('',(1.25E+03,-3.683109958E-13,-41.86850308)); +#120 = CARTESIAN_POINT('',(1.25E+03,-3.352606389E-13,-60.51483061)); +#121 = CARTESIAN_POINT('',(1.25E+03,-2.335884101E-13,-101.335678)); +#122 = CARTESIAN_POINT('',(1.25E+03,-1.624730779E-13,-121.016618)); +#123 = CARTESIAN_POINT('',(1.25E+03,-8.457292169E-14,-139.275692)); +#124 = CARTESIAN_POINT('',(1.25E+03,0.,-156.25)); +#125 = PCURVE('',#40,#126); +#126 = DEFINITIONAL_REPRESENTATION('',(#127),#131); +#127 = LINE('',#128,#129); +#128 = CARTESIAN_POINT('',(1.,0.)); +#129 = VECTOR('',#130,1.); +#130 = DIRECTION('',(0.,1.)); +#131 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' ) ); -#129 = ORIENTED_EDGE('',*,*,#130,.F.); -#130 = EDGE_CURVE('',#24,#108,#131,.T.); -#131 = SURFACE_CURVE('',#132,(#137),.PCURVE_S1.); -#132 = B_SPLINE_CURVE_WITH_KNOTS('',3,(#133,#134,#135,#136), +#132 = ORIENTED_EDGE('',*,*,#133,.F.); +#133 = EDGE_CURVE('',#24,#110,#134,.T.); +#134 = SURFACE_CURVE('',#135,(#140),.PCURVE_S1.); +#135 = B_SPLINE_CURVE_WITH_KNOTS('',3,(#136,#137,#138,#139), .UNSPECIFIED.,.F.,.F.,(4,4),(0.,1.),.PIECEWISE_BEZIER_KNOTS.); -#133 = CARTESIAN_POINT('',(-1.25E-03,0.,-1.5625E-04)); -#134 = CARTESIAN_POINT('',(-4.16666667E-04,0.,-1.5625E-04)); -#135 = CARTESIAN_POINT('',(4.16666667E-04,0.,-1.5625E-04)); -#136 = CARTESIAN_POINT('',(1.25E-03,0.,-1.5625E-04)); -#137 = PCURVE('',#40,#138); -#138 = DEFINITIONAL_REPRESENTATION('',(#139),#142); -#139 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#140,#141),.UNSPECIFIED.,.F.,.F., - (2,2),(0.,1.),.PIECEWISE_BEZIER_KNOTS.); -#140 = CARTESIAN_POINT('',(0.,1.)); -#141 = CARTESIAN_POINT('',(1.,1.)); -#142 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) +#136 = CARTESIAN_POINT('',(-1.25E+03,0.,-156.25)); +#137 = CARTESIAN_POINT('',(-416.666667,0.,-156.25)); +#138 = CARTESIAN_POINT('',(416.666667,0.,-156.25)); +#139 = CARTESIAN_POINT('',(1.25E+03,0.,-156.25)); +#140 = PCURVE('',#40,#141); +#141 = DEFINITIONAL_REPRESENTATION('',(#142),#146); +#142 = LINE('',#143,#144); +#143 = CARTESIAN_POINT('',(0.,1.)); +#144 = VECTOR('',#145,1.); +#145 = DIRECTION('',(1.,-0.)); +#146 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' ) ); -#143 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) -GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#147)) GLOBAL_UNIT_ASSIGNED_CONTEXT -((#144,#145,#146)) REPRESENTATION_CONTEXT('Context #1', +#147 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#151)) GLOBAL_UNIT_ASSIGNED_CONTEXT +((#148,#149,#150)) REPRESENTATION_CONTEXT('Context #1', '3D Context with UNIT and UNCERTAINTY') ); -#144 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); -#145 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); -#146 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); -#147 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#144, +#148 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); +#149 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); +#150 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() ); +#151 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#148, 'distance_accuracy_value','confusion accuracy'); -#148 = PRODUCT_TYPE('part',$,(#7)); +#152 = PRODUCT_TYPE('part',$,(#7)); ENDSEC; END-ISO-10303-21; -- 2.39.5