Add Matlab directory

This commit is contained in:
Thomas Dehaeze 2024-03-21 18:47:00 +01:00
parent c23c3464fb
commit 6b33b6f5be
23 changed files with 31171 additions and 28 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,633 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION (( 'STEP AP214' ),
'1' );
FILE_NAME ('12121147_defeature.STEP',
'2021-04-09T09:02:02',
( '' ),
( '' ),
'SwSTEP 2.0',
'SolidWorks 2020',
'' );
FILE_SCHEMA (( 'AUTOMOTIVE_DESIGN' ));
ENDSEC;
DATA;
#1 = FILL_AREA_STYLE_COLOUR ( '', #273 ) ;
#2 = EDGE_CURVE ( 'Defeatured_0_1+Defeatured_0_14+Defeatured_0_2+Defeatured_0_9', #348, #46, #403, .T. ) ;
#3 = ORIENTED_EDGE ( 'NONE', *, *, #68, .T. ) ;
#4 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #120 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #231, #12, #260 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#5 = CONICAL_SURFACE ( 'NONE', #448, 41.49999999999998579, 0.5235987755982962621 ) ;
#6 = DIRECTION ( 'NONE', ( 0.7071067811865500152, 0.7071067811865451302, 1.219556528746065842E-32 ) ) ;
#7 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#8 = EDGE_LOOP ( 'NONE', ( #100 ) ) ;
#9 = EDGE_CURVE ( 'NONE', #119, #119, #80, .T. ) ;
#10 = CIRCLE ( 'NONE', #415, 42.50000000000000000 ) ;
#11 = SURFACE_STYLE_USAGE ( .BOTH. , #258 ) ;
#12 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#13 = APPLICATION_CONTEXT ( 'automotive_design' ) ;
#14 = DIRECTION ( 'NONE', ( -0.000000000000000000, -0.000000000000000000, -1.000000000000000000 ) ) ;
#15 = CLOSED_SHELL ( 'NONE', ( #555, #105, #407, #457, #249, #380, #353, #87, #276, #144, #544, #414, #431, #373, #263, #487, #518, #325, #420, #208, #49 ) ) ;
#16 = CIRCLE ( 'NONE', #335, 41.99999999999997158 ) ;
#17 = CARTESIAN_POINT ( 'NONE', ( -9.499999999999953815, -64.00000000000000000, 30.00000000000000000 ) ) ;
#18 = ORIENTED_EDGE ( 'NONE', *, *, #561, .F. ) ;
#19 = PRODUCT_DEFINITION ( 'UNKNOWN', '', #152, #428 ) ;
#20 = FILL_AREA_STYLE_COLOUR ( '', #255 ) ;
#21 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -48.50000000000000000, 41.99999999999996447 ) ) ;
#22 = FACE_OUTER_BOUND ( 'NONE', #294, .T. ) ;
#23 = EDGE_CURVE ( 'Defeatured_0_1+Defeatured_0_2+Defeatured_0_13+Defeatured_0_14', #232, #348, #148, .T. ) ;
#24 = VERTEX_POINT ( 'NONE', #220 ) ;
#25 = VERTEX_POINT ( 'NONE', #72 ) ;
#26 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #467, 'distance_accuracy_value', 'NONE');
#27 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#28 = FACE_OUTER_BOUND ( 'NONE', #91, .T. ) ;
#29 = DIRECTION ( 'NONE', ( -0.000000000000000000, -0.000000000000000000, -1.000000000000000000 ) ) ;
#30 = PLANE ( 'NONE', #408 ) ;
#31 = DIRECTION ( 'NONE', ( -2.238352872228138170E-16, 1.000000000000000000, 0.000000000000000000 ) ) ;
#32 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #591, 'distance_accuracy_value', 'NONE');
#33 = PRESENTATION_LAYER_ASSIGNMENT ( '', '', ( #182 ) ) ;
#34 = DIRECTION ( 'NONE', ( -0.7071067811865500152, 0.7071067811865451302, -3.743164888243732416E-16 ) ) ;
#35 = EDGE_CURVE ( 'Defeatured_0_9+Defeatured_0_14+Defeatured_0_1+Defeatured_0_7', #46, #567, #488, .T. ) ;
#36 = ORIENTED_EDGE ( 'NONE', *, *, #2, .T. ) ;
#37 = CARTESIAN_POINT ( 'NONE', ( 9.999999999999994671, -52.50000000000000711, 4.999999999999992895 ) ) ;
#38 = CIRCLE ( 'NONE', #170, 1.249999999999994227 ) ;
#39 = EDGE_LOOP ( 'NONE', ( #289 ) ) ;
#40 = VERTEX_POINT ( 'NONE', #235 ) ;
#41 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#42 = EDGE_LOOP ( 'NONE', ( #361 ) ) ;
#43 = CYLINDRICAL_SURFACE ( 'NONE', #501, 1.249999999999990674 ) ;
#44 = VERTEX_POINT ( 'NONE', #189 ) ;
#45 = EDGE_LOOP ( 'NONE', ( #186 ) ) ;
#46 = VERTEX_POINT ( 'NONE', #106 ) ;
#47 = PLANE ( 'NONE', #64 ) ;
#48 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#49 = ADVANCED_FACE ( 'Defeatured_0_20', ( #566, #140 ), #43, .F. ) ;
#50 = ORIENTED_EDGE ( 'NONE', *, *, #9, .T. ) ;
#51 = ORIENTED_EDGE ( 'NONE', *, *, #161, .T. ) ;
#52 = VECTOR ( 'NONE', #552, 1000.000000000000000 ) ;
#53 = FACE_BOUND ( 'NONE', #97, .T. ) ;
#54 = VERTEX_POINT ( 'NONE', #185 ) ;
#55 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#56 = ORIENTED_EDGE ( 'NONE', *, *, #586, .F. ) ;
#57 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, -0.000000000000000000 ) ) ;
#58 = AXIS2_PLACEMENT_3D ( 'NONE', #209, #548, #449 ) ;
#59 = DIRECTION ( 'NONE', ( 0.000000000000000000, 5.293634551153075583E-16, 1.000000000000000000 ) ) ;
#60 = SURFACE_STYLE_FILL_AREA ( #370 ) ;
#61 = PLANE ( 'NONE', #423 ) ;
#62 = VECTOR ( 'NONE', #429, 1000.000000000000000 ) ;
#63 = LINE ( 'NONE', #543, #118 ) ;
#64 = AXIS2_PLACEMENT_3D ( 'NONE', #309, #500, #297 ) ;
#65 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( .MILLI., .METRE. ) );
#66 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #32 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #591, #7, #204 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#67 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#68 = EDGE_CURVE ( 'NONE', #223, #223, #421, .T. ) ;
#69 = EDGE_LOOP ( 'NONE', ( #305, #489, #410, #149, #578, #288 ) ) ;
#70 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#71 = AXIS2_PLACEMENT_3D ( 'NONE', #447, #59, #248 ) ;
#72 = CARTESIAN_POINT ( 'NONE', ( 9.999999999999996447, -52.50000000000000711, 3.750000000000005773 ) ) ;
#73 = EDGE_CURVE ( 'NONE', #602, #602, #16, .T. ) ;
#74 = SURFACE_STYLE_USAGE ( .BOTH. , #214 ) ;
#75 = SURFACE_SIDE_STYLE ('',( #513 ) ) ;
#76 = AXIS2_PLACEMENT_3D ( 'NONE', #381, #597, #476 ) ;
#77 = CARTESIAN_POINT ( 'NONE', ( -4.999999999999999112, -54.90000000000001279, 29.99999999999999289 ) ) ;
#78 = AXIS2_PLACEMENT_3D ( 'NONE', #387, #125, #169 ) ;
#79 = PRESENTATION_STYLE_ASSIGNMENT (( #11 ) ) ;
#80 = CIRCLE ( 'NONE', #112, 2.099999999999990763 ) ;
#81 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.224646799147353454E-16, 1.000000000000000000 ) ) ;
#82 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, -1.224646799147353454E-16 ) ) ;
#83 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.224646799147353700E-16, 1.000000000000000000 ) ) ;
#84 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ;
#85 = CARTESIAN_POINT ( 'NONE', ( 10.00000000000000888, -63.49999999999995737, 6.123233995737249213E-17 ) ) ;
#86 = LINE ( 'NONE', #143, #300 ) ;
#87 = ADVANCED_FACE ( 'Defeatured_0_7', ( #134, #222, #177 ), #30, .T. ) ;
#88 = ORIENTED_EDGE ( 'NONE', *, *, #600, .F. ) ;
#89 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, -1.224646799147353700E-16 ) ) ;
#90 = ORIENTED_EDGE ( 'NONE', *, *, #525, .T. ) ;
#91 = EDGE_LOOP ( 'NONE', ( #510 ) ) ;
#92 = ORIENTED_EDGE ( 'NONE', *, *, #166, .F. ) ;
#93 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.724713383033345524E-32, -1.000000000000000000 ) ) ;
#94 = EDGE_LOOP ( 'NONE', ( #290, #212, #570, #433 ) ) ;
#95 = DIRECTION ( 'NONE', ( 1.000000000000000000, -0.000000000000000000, -0.000000000000000000 ) ) ;
#96 = EDGE_CURVE ( 'Defeatured_0_2+Defeatured_0_13+Defeatured_0_1+Defeatured_0_8', #232, #40, #86, .T. ) ;
#97 = EDGE_LOOP ( 'NONE', ( #307 ) ) ;
#98 = FACE_OUTER_BOUND ( 'NONE', #160, .T. ) ;
#99 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.000000000000000000, 1.000000000000000000 ) ) ;
#100 = ORIENTED_EDGE ( 'NONE', *, *, #586, .T. ) ;
#101 = PRODUCT_DEFINITION_SHAPE ( 'NONE', 'NONE', #19 ) ;
#102 = ORIENTED_EDGE ( 'NONE', *, *, #197, .T. ) ;
#103 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ;
#104 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION ( '', ( #535 ), #349 ) ;
#105 = ADVANCED_FACE ( 'Defeatured_0_1', ( #233 ), #397, .F. ) ;
#106 = CARTESIAN_POINT ( 'NONE', ( 9.499999999999953815, -64.00000000000000000, 29.99999999999999289 ) ) ;
#107 = DIRECTION ( 'NONE', ( -0.000000000000000000, 1.000000000000000000, 1.224646799147356905E-16 ) ) ;
#108 = PLANE ( 'NONE', #461 ) ;
#109 = FACE_OUTER_BOUND ( 'NONE', #187, .T. ) ;
#110 = PRESENTATION_LAYER_ASSIGNMENT ( '', '', ( #126 ) ) ;
#111 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#112 = AXIS2_PLACEMENT_3D ( 'NONE', #153, #356, #103 ) ;
#113 = AXIS2_PLACEMENT_3D ( 'NONE', #517, #82, #278 ) ;
#114 = FACE_OUTER_BOUND ( 'NONE', #404, .T. ) ;
#115 = PLANE ( 'NONE', #473 ) ;
#116 = CIRCLE ( 'NONE', #269, 2.099999999999990763 ) ;
#117 = EDGE_CURVE ( 'Defeatured_0_1+Defeatured_0_13+Defeatured_0_9+Defeatured_0_2', #54, #232, #137, .T. ) ;
#118 = VECTOR ( 'NONE', #320, 1000.000000000000000 ) ;
#119 = VERTEX_POINT ( 'NONE', #378 ) ;
#120 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #231, 'distance_accuracy_value', 'NONE');
#121 = FILL_AREA_STYLE_COLOUR ( '', #234 ) ;
#122 = CARTESIAN_POINT ( 'NONE', ( -9.999999999999994671, -48.50000000000000000, 0.000000000000000000 ) ) ;
#123 = STYLED_ITEM ( 'NONE', ( #219 ), #325 ) ;
#124 = FACE_OUTER_BOUND ( 'NONE', #45, .T. ) ;
#125 = DIRECTION ( 'NONE', ( -0.000000000000000000, 1.000000000000000000, 1.224646799147353454E-16 ) ) ;
#126 = STYLED_ITEM ( 'NONE', ( #236 ), #487 ) ;
#127 = CARTESIAN_POINT ( 'NONE', ( -9.999999999999991118, -64.00000000000000000, 0.000000000000000000 ) ) ;
#128 = VECTOR ( 'NONE', #31, 1000.000000000000000 ) ;
#129 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #218 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #503, #111, #547 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#130 = FACE_OUTER_BOUND ( 'NONE', #8, .T. ) ;
#131 = CARTESIAN_POINT ( 'NONE', ( -9.999999999999994671, -48.50000000000000000, 42.50000000000000000 ) ) ;
#132 = CARTESIAN_POINT ( 'NONE', ( 10.00000000000000888, -48.50000000000000000, 29.99999999999999289 ) ) ;
#133 = FACE_OUTER_BOUND ( 'NONE', #443, .T. ) ;
#134 = FACE_BOUND ( 'NONE', #594, .T. ) ;
#135 = PRESENTATION_LAYER_ASSIGNMENT ( '', '', ( #123 ) ) ;
#136 = EDGE_CURVE ( 'Defeatured_0_8+Defeatured_0_13+Defeatured_0_2+Defeatured_0_9', #40, #492, #521, .T. ) ;
#137 = LINE ( 'NONE', #342, #528 ) ;
#138 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 1.724713383033345524E-32 ) ) ;
#139 = CIRCLE ( 'NONE', #78, 29.25000000000000000 ) ;
#140 = FACE_OUTER_BOUND ( 'NONE', #393, .T. ) ;
#141 = CYLINDRICAL_SURFACE ( 'NONE', #58, 2.099999999999989875 ) ;
#142 = EDGE_LOOP ( 'NONE', ( #56 ) ) ;
#143 = CARTESIAN_POINT ( 'NONE', ( -9.499999999999962697, -63.99999999999998579, 0.000000000000000000 ) ) ;
#144 = ADVANCED_FACE ( 'Defeatured_0_9', ( #291, #432, #562 ), #554, .F. ) ;
#145 = ORIENTED_EDGE ( 'NONE', *, *, #225, .F. ) ;
#146 = VECTOR ( 'NONE', #533, 1000.000000000000114 ) ;
#147 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 1.753492544403665092E-15, -28.75000000000000355 ) ) ;
#148 = LINE ( 'NONE', #304, #384 ) ;
#149 = ORIENTED_EDGE ( 'NONE', *, *, #341, .T. ) ;
#150 = CARTESIAN_POINT ( 'NONE', ( -42.50000000000000000, -48.50000000000000000, -8.205133554287267548E-15 ) ) ;
#151 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION ( '', ( #343 ), #549 ) ;
#152 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE ( 'ANY', '', #479, .NOT_KNOWN. ) ;
#153 = CARTESIAN_POINT ( 'NONE', ( 5.000000000000000888, -57.00000000000000000, 29.99999999999999289 ) ) ;
#154 = EDGE_CURVE ( 'NONE', #275, #275, #422, .T. ) ;
#155 = PRODUCT_RELATED_PRODUCT_CATEGORY ( 'part', '', ( #479 ) ) ;
#156 = FACE_BOUND ( 'NONE', #39, .T. ) ;
#157 = DIRECTION ( 'NONE', ( 0.7071067811865451302, -0.7071067811865500152, -8.659560562354967371E-17 ) ) ;
#158 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ;
#159 = CARTESIAN_POINT ( 'NONE', ( -4.999999999999999112, -57.00000000000000000, 0.000000000000000000 ) ) ;
#160 = EDGE_LOOP ( 'NONE', ( #183 ) ) ;
#161 = EDGE_CURVE ( 'Defeatured_0_8+Defeatured_0_6+Defeatured_0_9+Defeatured_0_2', #444, #610, #230, .T. ) ;
#162 = SURFACE_STYLE_FILL_AREA ( #369 ) ;
#163 = SURFACE_STYLE_FILL_AREA ( #430 ) ;
#164 = FACE_OUTER_BOUND ( 'NONE', #580, .T. ) ;
#165 = FILL_AREA_STYLE ('',( #20 ) ) ;
#166 = EDGE_CURVE ( 'Defeatured_0_6+Defeatured_0_9+Defeatured_0_8+Defeatured_0_7', #444, #616, #606, .T. ) ;
#167 = CARTESIAN_POINT ( 'NONE', ( 10.00000000000000888, -63.49999999999995737, 29.99999999999999289 ) ) ;
#168 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#169 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.186135710069611665E-16, 1.000000000000000000 ) ) ;
#170 = AXIS2_PLACEMENT_3D ( 'NONE', #475, #485, #41 ) ;
#171 = CARTESIAN_POINT ( 'NONE', ( -9.999999999999994671, -48.50000000000000000, 29.99999999999999289 ) ) ;
#172 = DIRECTION ( 'NONE', ( -0.000000000000000000, -1.000000000000000000, -1.724713383033345524E-32 ) ) ;
#173 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #65, 'distance_accuracy_value', 'NONE');
#174 = FACE_OUTER_BOUND ( 'NONE', #352, .T. ) ;
#175 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#176 = VERTEX_POINT ( 'NONE', #324 ) ;
#177 = FACE_OUTER_BOUND ( 'NONE', #391, .T. ) ;
#178 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION ( '', ( #123 ), #302 ) ;
#179 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -64.00000000000000000, -42.50000000000000711 ) ) ;
#180 = ORIENTED_EDGE ( 'NONE', *, *, #595, .F. ) ;
#181 = EDGE_CURVE ( 'NONE', #556, #556, #38, .T. ) ;
#182 = STYLED_ITEM ( 'NONE', ( #505 ), #518 ) ;
#183 = ORIENTED_EDGE ( 'NONE', *, *, #154, .F. ) ;
#184 = AXIS2_PLACEMENT_3D ( 'NONE', #202, #158, #321 ) ;
#185 = CARTESIAN_POINT ( 'NONE', ( -9.499999999999950262, -64.00000000000000000, 29.99999999999999289 ) ) ;
#186 = ORIENTED_EDGE ( 'NONE', *, *, #445, .T. ) ;
#187 = EDGE_LOOP ( 'NONE', ( #613, #259, #413, #541 ) ) ;
#188 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#189 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -9.000000000000007105, 29.25000000000000000 ) ) ;
#190 = FILL_AREA_STYLE ('',( #1 ) ) ;
#191 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, -1.224646799147353454E-16 ) ) ;
#192 = ORIENTED_EDGE ( 'NONE', *, *, #73, .F. ) ;
#193 = VECTOR ( 'NONE', #253, 1000.000000000000114 ) ;
#194 = ORIENTED_EDGE ( 'NONE', *, *, #577, .T. ) ;
#195 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ;
#196 = CARTESIAN_POINT ( 'NONE', ( 2.900000000000013678, -57.00000000000000000, -1.298125607096192018E-15 ) ) ;
#197 = EDGE_CURVE ( 'NONE', #514, #514, #116, .T. ) ;
#198 = VERTEX_POINT ( 'NONE', #612 ) ;
#199 = FACE_BOUND ( 'NONE', #480, .T. ) ;
#200 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( .MILLI., .METRE. ) );
#201 = ORIENTED_EDGE ( 'NONE', *, *, #9, .F. ) ;
#202 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#203 = COLOUR_RGB ( '',0.7529411764705882248, 1.000000000000000000, 0.7529411764705882248 ) ;
#204 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#205 = CARTESIAN_POINT ( 'NONE', ( 10.00000000000000888, -63.49999999999995737, 42.50000000000000000 ) ) ;
#206 = ORIENTED_EDGE ( 'NONE', *, *, #166, .T. ) ;
#207 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#208 = ADVANCED_FACE ( 'Defeatured_0_19', ( #280 ), #568, .T. ) ;
#209 = CARTESIAN_POINT ( 'NONE', ( 5.000000000000000888, -57.00000000000000000, 0.000000000000000000 ) ) ;
#210 = VECTOR ( 'NONE', #95, 1000.000000000000000 ) ;
#211 = FILL_AREA_STYLE_COLOUR ( '', #534 ) ;
#212 = ORIENTED_EDGE ( 'NONE', *, *, #2, .F. ) ;
#213 = EDGE_CURVE ( 'NONE', #24, #24, #452, .T. ) ;
#214 = SURFACE_SIDE_STYLE ('',( #163 ) ) ;
#215 = AXIS2_PLACEMENT_3D ( 'NONE', #272, #516, #81 ) ;
#216 = CARTESIAN_POINT ( 'NONE', ( -9.999999999999987566, -24.91504716985848944, 29.99999999999999289 ) ) ;
#217 = VERTEX_POINT ( 'NONE', #224 ) ;
#218 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #503, 'distance_accuracy_value', 'NONE');
#219 = PRESENTATION_STYLE_ASSIGNMENT (( #274 ) ) ;
#220 = CARTESIAN_POINT ( 'NONE', ( 9.999999999999996447, -61.50000000000000711, 3.750000000000005773 ) ) ;
#221 = AXIS2_PLACEMENT_3D ( 'NONE', #538, #107, #311 ) ;
#222 = FACE_BOUND ( 'NONE', #254, .T. ) ;
#223 = VERTEX_POINT ( 'NONE', #425 ) ;
#224 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -10.73205080756890872, -42.50000000000000000 ) ) ;
#225 = EDGE_CURVE ( 'NONE', #519, #519, #10, .T. ) ;
#226 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.223202451009287022E-16, -1.000000000000000000 ) ) ;
#227 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION ( '', ( #436 ), #129 ) ;
#228 = LINE ( 'NONE', #216, #295 ) ;
#229 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.224510688924805095E-16, -1.000000000000000000 ) ) ;
#230 = LINE ( 'NONE', #131, #401 ) ;
#231 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( .MILLI., .METRE. ) );
#232 = VERTEX_POINT ( 'NONE', #271 ) ;
#233 = FACE_OUTER_BOUND ( 'NONE', #247, .T. ) ;
#234 = COLOUR_RGB ( '',0.7529411764705882248, 0.7529411764705882248, 0.7529411764705882248 ) ;
#235 = CARTESIAN_POINT ( 'NONE', ( -9.999999999999991118, -63.49999999999997158, 0.000000000000000000 ) ) ;
#236 = PRESENTATION_STYLE_ASSIGNMENT (( #355 ) ) ;
#237 = VERTEX_POINT ( 'NONE', #327 ) ;
#238 = CARTESIAN_POINT ( 'NONE', ( -4.999999999999999112, -57.00000000000000000, 29.99999999999999289 ) ) ;
#239 = ORIENTED_EDGE ( 'NONE', *, *, #608, .F. ) ;
#240 = ORIENTED_EDGE ( 'NONE', *, *, #561, .T. ) ;
#241 = ORIENTED_EDGE ( 'NONE', *, *, #73, .T. ) ;
#242 = FACE_OUTER_BOUND ( 'NONE', #296, .T. ) ;
#243 = EDGE_LOOP ( 'NONE', ( #615 ) ) ;
#244 = FACE_BOUND ( 'NONE', #142, .T. ) ;
#245 = ORIENTED_EDGE ( 'NONE', *, *, #213, .T. ) ;
#246 = PLANE ( 'NONE', #558 ) ;
#247 = EDGE_LOOP ( 'NONE', ( #292, #395, #611, #36 ) ) ;
#248 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, 5.293634551153075583E-16 ) ) ;
#249 = ADVANCED_FACE ( 'Defeatured_0_4', ( #133, #22 ), #338, .T. ) ;
#250 = ORIENTED_EDGE ( 'NONE', *, *, #445, .F. ) ;
#251 = CARTESIAN_POINT ( 'NONE', ( 2.499999999999996003, -52.50000000000000711, 4.999999999999992895 ) ) ;
#252 = PLANE ( 'NONE', #71 ) ;
#253 = DIRECTION ( 'NONE', ( 0.7071067811865500152, -0.7071067811865451302, -1.219556528746065705E-32 ) ) ;
#254 = EDGE_LOOP ( 'NONE', ( #298 ) ) ;
#255 = COLOUR_RGB ( '',0.7921568627450980005, 0.8196078431372548767, 0.9333333333333333481 ) ;
#256 = CARTESIAN_POINT ( 'NONE', ( 9.999999999999994671, -63.49999999999997158, 0.000000000000000000 ) ) ;
#257 = DIRECTION ( 'NONE', ( -0.000000000000000000, 1.000000000000000000, 1.224646799147353454E-16 ) ) ;
#258 = SURFACE_SIDE_STYLE ('',( #60 ) ) ;
#259 = ORIENTED_EDGE ( 'NONE', *, *, #136, .F. ) ;
#260 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#261 = AXIS2_PLACEMENT_3D ( 'NONE', #251, #57, #188 ) ;
#262 = FACE_OUTER_BOUND ( 'NONE', #574, .T. ) ;
#263 = ADVANCED_FACE ( 'Defeatured_0_14', ( #279 ), #115, .T. ) ;
#264 = CARTESIAN_POINT ( 'NONE', ( -9.999999999999987566, -63.49999999999997158, 29.99999999999999289 ) ) ;
#265 = CARTESIAN_POINT ( 'NONE', ( 9.999999999999996447, -61.50000000000000711, 4.999999999999992895 ) ) ;
#266 = PRODUCT_CONTEXT ( 'NONE', #463, 'mechanical' ) ;
#267 = PLANE ( 'NONE', #261 ) ;
#268 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #592 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #200, #207, #55 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#269 = AXIS2_PLACEMENT_3D ( 'NONE', #238, #93, #84 ) ;
#270 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#271 = CARTESIAN_POINT ( 'NONE', ( -9.499999999999946709, -64.00000000000000000, 0.000000000000000000 ) ) ;
#272 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.155557966632341512E-30 ) ) ;
#273 = COLOUR_RGB ( '',0.7529411764705882248, 0.7529411764705882248, 0.7529411764705882248 ) ;
#274 = SURFACE_STYLE_USAGE ( .BOTH. , #75 ) ;
#275 = VERTEX_POINT ( 'NONE', #385 ) ;
#276 = ADVANCED_FACE ( 'Defeatured_0_8', ( #596 ), #108, .T. ) ;
#277 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.254016970585643992E-16, -1.000000000000000000 ) ) ;
#278 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.224646799147353454E-16, -1.000000000000000000 ) ) ;
#279 = FACE_OUTER_BOUND ( 'NONE', #94, .T. ) ;
#280 = FACE_OUTER_BOUND ( 'NONE', #243, .T. ) ;
#281 = LINE ( 'NONE', #462, #515 ) ;
#282 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, -1.224646799147353454E-16 ) ) ;
#283 = DIRECTION ( 'NONE', ( -2.238352872228138170E-16, 1.000000000000000000, 0.000000000000000000 ) ) ;
#284 = CIRCLE ( 'NONE', #563, 42.50000000000000000 ) ;
#285 = ORIENTED_EDGE ( 'NONE', *, *, #161, .F. ) ;
#286 = DIRECTION ( 'NONE', ( 1.000000000000000000, -0.000000000000000000, 0.000000000000000000 ) ) ;
#287 = AXIS2_PLACEMENT_3D ( 'NONE', #426, #603, #175 ) ;
#288 = ORIENTED_EDGE ( 'NONE', *, *, #330, .T. ) ;
#289 = ORIENTED_EDGE ( 'NONE', *, *, #402, .F. ) ;
#290 = ORIENTED_EDGE ( 'NONE', *, *, #35, .F. ) ;
#291 = FACE_BOUND ( 'NONE', #340, .T. ) ;
#292 = ORIENTED_EDGE ( 'NONE', *, *, #509, .F. ) ;
#293 = CARTESIAN_POINT ( 'NONE', ( -42.50000000000000000, -48.50000000000000000, -8.205133554287267548E-15 ) ) ;
#294 = EDGE_LOOP ( 'NONE', ( #497 ) ) ;
#295 = VECTOR ( 'NONE', #172, 1000.000000000000000 ) ;
#296 = EDGE_LOOP ( 'NONE', ( #354 ) ) ;
#297 = DIRECTION ( 'NONE', ( 2.741191680336474419E-32, -1.224646799147353454E-16, 1.000000000000000000 ) ) ;
#298 = ORIENTED_EDGE ( 'NONE', *, *, #504, .F. ) ;
#299 = EDGE_CURVE ( 'Defeatured_0_7+Defeatured_0_9+Defeatured_0_6+Defeatured_0_14', #616, #567, #455, .T. ) ;
#300 = VECTOR ( 'NONE', #34, 1000.000000000000114 ) ;
#301 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.767367003144976531E-15, 9.391179323003267930E-31 ) ) ;
#302 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #466 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #499, #472, #536 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#303 = FACE_OUTER_BOUND ( 'NONE', #523, .T. ) ;
#304 = CARTESIAN_POINT ( 'NONE', ( -42.50000000000000000, -64.00000000000000000, 0.000000000000000000 ) ) ;
#305 = ORIENTED_EDGE ( 'NONE', *, *, #23, .F. ) ;
#306 = LINE ( 'NONE', #150, #210 ) ;
#307 = ORIENTED_EDGE ( 'NONE', *, *, #465, .F. ) ;
#308 = FACE_OUTER_BOUND ( 'NONE', #69, .T. ) ;
#309 = CARTESIAN_POINT ( 'NONE', ( -9.499999999999950262, -64.00000000000000000, -42.50000000000000711 ) ) ;
#310 = AXIS2_PLACEMENT_3D ( 'NONE', #411, #379, #27 ) ;
#311 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.632680918566406793E-16, 1.000000000000000000 ) ) ;
#312 = SURFACE_STYLE_USAGE ( .BOTH. , #417 ) ;
#313 = DIRECTION ( 'NONE', ( -1.000000000000000000, -2.238352872228138170E-16, 0.000000000000000000 ) ) ;
#314 = ORIENTED_EDGE ( 'NONE', *, *, #154, .T. ) ;
#315 = AXIS2_PLACEMENT_3D ( 'NONE', #524, #89, #226 ) ;
#316 = PRESENTATION_LAYER_ASSIGNMENT ( '', '', ( #535 ) ) ;
#317 = FACE_OUTER_BOUND ( 'NONE', #42, .T. ) ;
#318 = DIRECTION ( 'NONE', ( 2.741191680336474419E-32, -1.224646799147353454E-16, 1.000000000000000000 ) ) ;
#319 = ORIENTED_EDGE ( 'NONE', *, *, #477, .F. ) ;
#320 = DIRECTION ( 'NONE', ( 1.000000000000000000, -0.000000000000000000, -0.000000000000000000 ) ) ;
#321 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#322 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#323 = VECTOR ( 'NONE', #537, 1000.000000000000000 ) ;
#324 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -8.999999999999996447, -41.49999999999998579 ) ) ;
#325 = ADVANCED_FACE ( 'Defeatured_0_17', ( #124 ), #267, .T. ) ;
#326 = CONICAL_SURFACE ( 'NONE', #483, 28.75000000000000355, 0.7853981633974657095 ) ;
#327 = CARTESIAN_POINT ( 'NONE', ( 10.00000000000000888, -63.49999999999995737, 0.000000000000000000 ) ) ;
#328 = DIRECTION ( 'NONE', ( 2.238352872228138170E-16, -1.000000000000000000, 0.000000000000000000 ) ) ;
#329 = DIRECTION ( 'NONE', ( -2.741191680336474419E-32, 1.224646799147353454E-16, -1.000000000000000000 ) ) ;
#330 = EDGE_CURVE ( 'Defeatured_0_2+Defeatured_0_14+Defeatured_0_7+Defeatured_0_1', #237, #348, #575, .T. ) ;
#331 = PRESENTATION_LAYER_ASSIGNMENT ( '', '', ( #436 ) ) ;
#332 = PLANE ( 'NONE', #113 ) ;
#333 = DIRECTION ( 'NONE', ( -0.000000000000000000, 1.000000000000000000, 1.224646799147353454E-16 ) ) ;
#334 = DIRECTION ( 'NONE', ( 1.000000000000000000, 2.238352872228138170E-16, 0.000000000000000000 ) ) ;
#335 = AXIS2_PLACEMENT_3D ( 'NONE', #484, #481, #478 ) ;
#336 = CARTESIAN_POINT ( 'NONE', ( 2.499999999999996003, -61.50000000000000711, 3.749999999999999112 ) ) ;
#337 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -10.73205080756891405, -1.314297166977602893E-15 ) ) ;
#338 = CYLINDRICAL_SURFACE ( 'NONE', #529, 29.25000000000000000 ) ;
#339 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.224646799147353454E-16, 1.000000000000000000 ) ) ;
#340 = EDGE_LOOP ( 'NONE', ( #102 ) ) ;
#341 = EDGE_CURVE ( 'Defeatured_0_2+Defeatured_0_6+Defeatured_0_8+Defeatured_0_7', #610, #198, #306, .T. ) ;
#342 = CARTESIAN_POINT ( 'NONE', ( -9.499999999999950262, -64.00000000000000000, -7.703719777548943412E-31 ) ) ;
#343 = STYLED_ITEM ( 'NONE', ( #79 ), #441 ) ;
#344 = ORIENTED_EDGE ( 'NONE', *, *, #437, .T. ) ;
#345 = ORIENTED_EDGE ( 'NONE', *, *, #465, .T. ) ;
#346 = CARTESIAN_POINT ( 'NONE', ( 9.999999999999994671, -61.50000000000000711, 4.999999999999992895 ) ) ;
#347 = AXIS2_PLACEMENT_3D ( 'NONE', #179, #386, #339 ) ;
#348 = VERTEX_POINT ( 'NONE', #351 ) ;
#349 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #173 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #65, #560, #322 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#350 = EDGE_LOOP ( 'NONE', ( #201 ) ) ;
#351 = CARTESIAN_POINT ( 'NONE', ( 9.499999999999953815, -64.00000000000000000, 0.000000000000000000 ) ) ;
#352 = EDGE_LOOP ( 'NONE', ( #614 ) ) ;
#353 = ADVANCED_FACE ( 'Defeatured_0_6', ( #303, #531 ), #246, .F. ) ;
#354 = ORIENTED_EDGE ( 'NONE', *, *, #402, .T. ) ;
#355 = SURFACE_STYLE_USAGE ( .BOTH. , #522 ) ;
#356 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.724713383033345524E-32, -1.000000000000000000 ) ) ;
#357 = SURFACE_STYLE_FILL_AREA ( #190 ) ;
#358 = CARTESIAN_POINT ( 'NONE', ( 10.00000000000000533, -48.50000000000000000, 42.50000000000000000 ) ) ;
#359 = EDGE_LOOP ( 'NONE', ( #88 ) ) ;
#360 = COLOUR_RGB ( '',0.7529411764705882248, 0.7529411764705882248, 0.7529411764705882248 ) ;
#361 = ORIENTED_EDGE ( 'NONE', *, *, #197, .F. ) ;
#362 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -9.000000000000001776, -1.102182119232616925E-15 ) ) ;
#363 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -9.000000000000001776, -1.102182119232616925E-15 ) ) ;
#364 = FILL_AREA_STYLE_COLOUR ( '', #203 ) ;
#365 = PRESENTATION_STYLE_ASSIGNMENT (( #546 ) ) ;
#366 = CARTESIAN_POINT ( 'NONE', ( 9.999999999999996447, -52.50000000000000711, 4.999999999999992895 ) ) ;
#367 = CIRCLE ( 'NONE', #76, 28.75000000000000355 ) ;
#368 = AXIS2_PLACEMENT_3D ( 'NONE', #474, #29, #557 ) ;
#369 = FILL_AREA_STYLE ('',( #211 ) ) ;
#370 = FILL_AREA_STYLE ('',( #364 ) ) ;
#371 = EDGE_LOOP ( 'NONE', ( #145 ) ) ;
#372 = ADVANCED_BREP_SHAPE_REPRESENTATION ( '12121147_defeature', ( #441, #184 ), #4 ) ;
#373 = ADVANCED_FACE ( 'Defeatured_0_13', ( #109 ), #47, .T. ) ;
#374 = DIRECTION ( 'NONE', ( 1.000000000000000000, -0.000000000000000000, -0.000000000000000000 ) ) ;
#375 = SURFACE_SIDE_STYLE ('',( #416 ) ) ;
#376 = LINE ( 'NONE', #127, #128 ) ;
#377 = CARTESIAN_POINT ( 'NONE', ( 10.00000000000000888, -24.91504716985848944, 29.99999999999999289 ) ) ;
#378 = CARTESIAN_POINT ( 'NONE', ( 5.000000000000000888, -54.90000000000001279, 29.99999999999999289 ) ) ;
#379 = DIRECTION ( 'NONE', ( 1.000000000000000000, -0.000000000000000000, -0.000000000000000000 ) ) ;
#380 = ADVANCED_FACE ( 'Defeatured_0_5', ( #242, #442 ), #61, .F. ) ;
#381 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -1.767367003144976926E-15, 9.391179323003267930E-31 ) ) ;
#382 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#383 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.155557966632341512E-30 ) ) ;
#384 = VECTOR ( 'NONE', #496, 1000.000000000000000 ) ;
#385 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -0.4999999999999779066, -29.25000000000000000 ) ) ;
#386 = DIRECTION ( 'NONE', ( -0.000000000000000000, 1.000000000000000000, 1.224646799147353454E-16 ) ) ;
#387 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -9.000000000000003553, -1.102182119232617319E-15 ) ) ;
#388 = AXIS2_PLACEMENT_3D ( 'NONE', #362, #257, #582 ) ;
#389 = FACE_OUTER_BOUND ( 'NONE', #350, .T. ) ;
#390 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#391 = EDGE_LOOP ( 'NONE', ( #464, #194, #180, #530 ) ) ;
#392 = DIRECTION ( 'NONE', ( -2.741191680336474419E-32, 1.224646799147353454E-16, -1.000000000000000000 ) ) ;
#393 = EDGE_LOOP ( 'NONE', ( #245 ) ) ;
#394 = CIRCLE ( 'NONE', #434, 1.249999999999987121 ) ;
#395 = ORIENTED_EDGE ( 'NONE', *, *, #117, .T. ) ;
#396 = EDGE_LOOP ( 'NONE', ( #450 ) ) ;
#397 = PLANE ( 'NONE', #347 ) ;
#398 = EDGE_LOOP ( 'NONE', ( #240, #90, #418, #569, #490, #92 ) ) ;
#399 = CARTESIAN_POINT ( 'NONE', ( -4.999999999999999112, -57.00000000000000000, -1.298125607096192018E-15 ) ) ;
#400 = VERTEX_POINT ( 'NONE', #147 ) ;
#401 = VECTOR ( 'NONE', #390, 1000.000000000000000 ) ;
#402 = EDGE_CURVE ( 'NONE', #176, #176, #571, .T. ) ;
#403 = LINE ( 'NONE', #405, #323 ) ;
#404 = EDGE_LOOP ( 'NONE', ( #3 ) ) ;
#405 = CARTESIAN_POINT ( 'NONE', ( 9.499999999999953815, -64.00000000000001421, 29.99999999999999289 ) ) ;
#406 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.224646799147353700E-16, -1.000000000000000000 ) ) ;
#407 = ADVANCED_FACE ( 'Defeatured_0_2', ( #494, #53, #308 ), #252, .F. ) ;
#408 = AXIS2_PLACEMENT_3D ( 'NONE', #609, #334, #283 ) ;
#409 = AXIS2_PLACEMENT_3D ( 'NONE', #601, #520, #138 ) ;
#410 = ORIENTED_EDGE ( 'NONE', *, *, #608, .T. ) ;
#411 = CARTESIAN_POINT ( 'NONE', ( 2.499999999999996003, -52.50000000000000711, 4.999999999999992895 ) ) ;
#412 = SHAPE_DEFINITION_REPRESENTATION ( #101, #372 ) ;
#413 = ORIENTED_EDGE ( 'NONE', *, *, #96, .F. ) ;
#414 = ADVANCED_FACE ( 'Defeatured_0_11', ( #199, #585 ), #502, .T. ) ;
#415 = AXIS2_PLACEMENT_3D ( 'NONE', #511, #588, #593 ) ;
#416 = SURFACE_STYLE_FILL_AREA ( #165 ) ;
#417 = SURFACE_SIDE_STYLE ('',( #162 ) ) ;
#418 = ORIENTED_EDGE ( 'NONE', *, *, #509, .T. ) ;
#419 = PRESENTATION_LAYER_ASSIGNMENT ( '', '', ( #343 ) ) ;
#420 = ADVANCED_FACE ( 'Defeatured_0_18', ( #262, #590 ), #482, .F. ) ;
#421 = CIRCLE ( 'NONE', #440, 2.099999999999987210 ) ;
#422 = CIRCLE ( 'NONE', #315, 29.25000000000000000 ) ;
#423 = AXIS2_PLACEMENT_3D ( 'NONE', #453, #191, #470 ) ;
#424 = CARTESIAN_POINT ( 'NONE', ( -9.999999999999991118, -63.49999999999997158, 29.99999999999999289 ) ) ;
#425 = CARTESIAN_POINT ( 'NONE', ( -7.099999999999986322, -57.00000000000000000, -1.298125607096192018E-15 ) ) ;
#426 = CARTESIAN_POINT ( 'NONE', ( 2.499999999999996003, -61.50000000000000711, 4.999999999999992895 ) ) ;
#427 = AXIS2_PLACEMENT_3D ( 'NONE', #159, #14, #67 ) ;
#428 = PRODUCT_DEFINITION_CONTEXT ( 'detailed design', #13, 'design' ) ;
#429 = DIRECTION ( 'NONE', ( 2.741191680336474419E-32, -1.224646799147353454E-16, 1.000000000000000000 ) ) ;
#430 = FILL_AREA_STYLE ('',( #121 ) ) ;
#431 = ADVANCED_FACE ( 'Defeatured_0_12', ( #98, #244 ), #326, .T. ) ;
#432 = FACE_BOUND ( 'NONE', #486, .T. ) ;
#433 = ORIENTED_EDGE ( 'NONE', *, *, #577, .F. ) ;
#434 = AXIS2_PLACEMENT_3D ( 'NONE', #366, #587, #589 ) ;
#435 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#436 = STYLED_ITEM ( 'NONE', ( #365 ), #372 ) ;
#437 = EDGE_CURVE ( 'Defeatured_0_6+Defeatured_0_7+Defeatured_0_9+Defeatured_0_2', #616, #198, #579, .T. ) ;
#438 = EDGE_LOOP ( 'NONE', ( #493 ) ) ;
#439 = ORIENTED_EDGE ( 'NONE', *, *, #341, .F. ) ;
#440 = AXIS2_PLACEMENT_3D ( 'NONE', #399, #491, #48 ) ;
#441 = MANIFOLD_SOLID_BREP ( 'Defeatured_0_0', #15 ) ;
#442 = FACE_BOUND ( 'NONE', #359, .T. ) ;
#443 = EDGE_LOOP ( 'NONE', ( #314 ) ) ;
#444 = VERTEX_POINT ( 'NONE', #171 ) ;
#445 = EDGE_CURVE ( 'NONE', #508, #508, #565, .T. ) ;
#446 = CARTESIAN_POINT ( 'NONE', ( 10.00000000000000888, -63.49999999999995737, 29.99999999999999289 ) ) ;
#447 = CARTESIAN_POINT ( 'NONE', ( -42.50000000000000000, -64.00000000000000000, 0.000000000000000000 ) ) ;
#448 = AXIS2_PLACEMENT_3D ( 'NONE', #363, #539, #277 ) ;
#449 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#450 = ORIENTED_EDGE ( 'NONE', *, *, #68, .F. ) ;
#451 = EDGE_LOOP ( 'NONE', ( #345 ) ) ;
#452 = CIRCLE ( 'NONE', #607, 1.249999999999987121 ) ;
#453 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -8.999999999999998224, -29.25000000000000000 ) ) ;
#454 = APPLICATION_PROTOCOL_DEFINITION ( 'draft international standard', 'automotive_design', 1998, #463 ) ;
#455 = LINE ( 'NONE', #377, #52 ) ;
#456 = ORIENTED_EDGE ( 'NONE', *, *, #181, .F. ) ;
#457 = ADVANCED_FACE ( 'Defeatured_0_3', ( #130 ), #332, .F. ) ;
#458 = FILL_AREA_STYLE ('',( #598 ) ) ;
#459 = VECTOR ( 'NONE', #6, 1000.000000000000114 ) ;
#460 = LINE ( 'NONE', #17, #193 ) ;
#461 = AXIS2_PLACEMENT_3D ( 'NONE', #540, #313, #328 ) ;
#462 = CARTESIAN_POINT ( 'NONE', ( 10.00000000000000888, -64.00000000000000000, 0.000000000000000000 ) ) ;
#463 = APPLICATION_CONTEXT ( 'automotive_design' ) ;
#464 = ORIENTED_EDGE ( 'NONE', *, *, #299, .T. ) ;
#465 = EDGE_CURVE ( 'NONE', #545, #545, #469, .T. ) ;
#466 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #499, 'distance_accuracy_value', 'NONE');
#467 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( .MILLI., .METRE. ) );
#468 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION ( '', ( #126 ), #66 ) ;
#469 = CIRCLE ( 'NONE', #368, 2.099999999999987210 ) ;
#470 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.224646799147353454E-16, -1.000000000000000000 ) ) ;
#471 = CYLINDRICAL_SURFACE ( 'NONE', #215, 42.50000000000000000 ) ;
#472 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#473 = AXIS2_PLACEMENT_3D ( 'NONE', #205, #157, #318 ) ;
#474 = CARTESIAN_POINT ( 'NONE', ( 5.000000000000000888, -57.00000000000000000, -1.298125607096192018E-15 ) ) ;
#475 = CARTESIAN_POINT ( 'NONE', ( 2.499999999999996003, -61.50000000000000711, 4.999999999999992895 ) ) ;
#476 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.224646799147353454E-16, -1.000000000000000000 ) ) ;
#477 = EDGE_CURVE ( 'NONE', #217, #217, #284, .T. ) ;
#478 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ;
#479 = PRODUCT ( '12121147_defeature', '12121147_defeature', '', ( #266 ) ) ;
#480 = EDGE_LOOP ( 'NONE', ( #192 ) ) ;
#481 = DIRECTION ( 'NONE', ( -0.000000000000000000, -1.000000000000000000, -0.000000000000000000 ) ) ;
#482 = CYLINDRICAL_SURFACE ( 'NONE', #512, 1.249999999999990674 ) ;
#483 = AXIS2_PLACEMENT_3D ( 'NONE', #301, #495, #406 ) ;
#484 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -48.50000000000000000, -5.939536975864664152E-15 ) ) ;
#485 = DIRECTION ( 'NONE', ( 1.000000000000000000, -0.000000000000000000, -0.000000000000000000 ) ) ;
#486 = EDGE_LOOP ( 'NONE', ( #50 ) ) ;
#487 = ADVANCED_FACE ( 'Defeatured_0_15', ( #605, #389 ), #141, .F. ) ;
#488 = LINE ( 'NONE', #446, #459 ) ;
#489 = ORIENTED_EDGE ( 'NONE', *, *, #96, .T. ) ;
#490 = ORIENTED_EDGE ( 'NONE', *, *, #299, .F. ) ;
#491 = DIRECTION ( 'NONE', ( -0.000000000000000000, -0.000000000000000000, -1.000000000000000000 ) ) ;
#492 = VERTEX_POINT ( 'NONE', #264 ) ;
#493 = ORIENTED_EDGE ( 'NONE', *, *, #504, .T. ) ;
#494 = FACE_BOUND ( 'NONE', #396, .T. ) ;
#495 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, -1.224646799147353700E-16 ) ) ;
#496 = DIRECTION ( 'NONE', ( 1.000000000000000000, -0.000000000000000000, -0.000000000000000000 ) ) ;
#497 = ORIENTED_EDGE ( 'NONE', *, *, #600, .T. ) ;
#498 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION ( '', ( #182 ), #268 ) ;
#499 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( .MILLI., .METRE. ) );
#500 = DIRECTION ( 'NONE', ( -0.7071067811865451302, -0.7071067811865500152, -8.659560562354962440E-17 ) ) ;
#501 = AXIS2_PLACEMENT_3D ( 'NONE', #346, #527, #435 ) ;
#502 = CONICAL_SURFACE ( 'NONE', #221, 42.50000000000000000, 0.7853981633974482790 ) ;
#503 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( .MILLI., .METRE. ) );
#504 = EDGE_CURVE ( 'NONE', #25, #25, #394, .T. ) ;
#505 = PRESENTATION_STYLE_ASSIGNMENT (( #312 ) ) ;
#506 = APPLICATION_PROTOCOL_DEFINITION ( 'draft international standard', 'automotive_design', 1998, #13 ) ;
#507 = PRESENTATION_STYLE_ASSIGNMENT (( #74 ) ) ;
#508 = VERTEX_POINT ( 'NONE', #576 ) ;
#509 = EDGE_CURVE ( 'Defeatured_0_9+Defeatured_0_1+Defeatured_0_13+Defeatured_0_14', #54, #46, #63, .T. ) ;
#510 = ORIENTED_EDGE ( 'NONE', *, *, #225, .T. ) ;
#511 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -47.99999999999996447, -5.878304635907291845E-15 ) ) ;
#512 = AXIS2_PLACEMENT_3D ( 'NONE', #37, #550, #532 ) ;
#513 = SURFACE_STYLE_FILL_AREA ( #458 ) ;
#514 = VERTEX_POINT ( 'NONE', #77 ) ;
#515 = VECTOR ( 'NONE', #553, 1000.000000000000000 ) ;
#516 = DIRECTION ( 'NONE', ( -0.000000000000000000, 1.000000000000000000, 1.224646799147353454E-16 ) ) ;
#517 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 1.814724884361032863E-15, -29.25000000000000000 ) ) ;
#518 = ADVANCED_FACE ( 'Defeatured_0_16', ( #114, #317 ), #583, .F. ) ;
#519 = VERTEX_POINT ( 'NONE', #604 ) ;
#520 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.724713383033345524E-32, -1.000000000000000000 ) ) ;
#521 = LINE ( 'NONE', #424, #62 ) ;
#522 = SURFACE_SIDE_STYLE ('',( #357 ) ) ;
#523 = EDGE_LOOP ( 'NONE', ( #241 ) ) ;
#524 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -0.4999999999999814593, -6.123233995736424607E-17 ) ) ;
#525 = EDGE_CURVE ( 'Defeatured_0_9+Defeatured_0_13+Defeatured_0_8+Defeatured_0_1', #492, #54, #460, .T. ) ;
#526 = ORIENTED_EDGE ( 'NONE', *, *, #136, .T. ) ;
#527 = DIRECTION ( 'NONE', ( 1.000000000000000000, -0.000000000000000000, -0.000000000000000000 ) ) ;
#528 = VECTOR ( 'NONE', #392, 1000.000000000000000 ) ;
#529 = AXIS2_PLACEMENT_3D ( 'NONE', #383, #333, #83 ) ;
#530 = ORIENTED_EDGE ( 'NONE', *, *, #437, .F. ) ;
#531 = FACE_BOUND ( 'NONE', #564, .T. ) ;
#532 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#533 = DIRECTION ( 'NONE', ( -0.7071067811865500152, -0.7071067811865451302, 3.743164888243732909E-16 ) ) ;
#534 = COLOUR_RGB ( '',0.7529411764705882248, 0.7529411764705882248, 0.7529411764705882248 ) ;
#535 = STYLED_ITEM ( 'NONE', ( #507 ), #420 ) ;
#536 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#537 = DIRECTION ( 'NONE', ( 2.741191680336474419E-32, -1.224646799147353454E-16, 1.000000000000000000 ) ) ;
#538 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -47.99999999999996447, -5.878304635907291845E-15 ) ) ;
#539 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, -1.224646799147353454E-16 ) ) ;
#540 = CARTESIAN_POINT ( 'NONE', ( -9.999999999999991118, -64.00000000000000000, 42.50000000000000000 ) ) ;
#541 = ORIENTED_EDGE ( 'NONE', *, *, #117, .F. ) ;
#542 = VECTOR ( 'NONE', #329, 1000.000000000000000 ) ;
#543 = CARTESIAN_POINT ( 'NONE', ( 10.00000000000000888, -64.00000000000000000, 29.99999999999999289 ) ) ;
#544 = ADVANCED_FACE ( 'Defeatured_0_10', ( #164, #156 ), #5, .T. ) ;
#545 = VERTEX_POINT ( 'NONE', #196 ) ;
#546 = SURFACE_STYLE_USAGE ( .BOTH. , #375 ) ;
#547 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#548 = DIRECTION ( 'NONE', ( -0.000000000000000000, -0.000000000000000000, -1.000000000000000000 ) ) ;
#549 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #26 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #467, #382, #168 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#550 = DIRECTION ( 'NONE', ( 1.000000000000000000, -0.000000000000000000, -0.000000000000000000 ) ) ;
#551 = VECTOR ( 'NONE', #286, 1000.000000000000000 ) ;
#552 = DIRECTION ( 'NONE', ( -0.000000000000000000, -1.000000000000000000, -1.724713383033345524E-32 ) ) ;
#553 = DIRECTION ( 'NONE', ( 2.238352872228138170E-16, -1.000000000000000000, -0.000000000000000000 ) ) ;
#554 = PLANE ( 'NONE', #409 ) ;
#555 = ADVANCED_FACE ( 'Defeatured_0_0', ( #28, #174 ), #471, .T. ) ;
#556 = VERTEX_POINT ( 'NONE', #336 ) ;
#557 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#558 = AXIS2_PLACEMENT_3D ( 'NONE', #293, #195, #99 ) ;
#559 = CARTESIAN_POINT ( 'NONE', ( 10.00000000000000888, -48.50000000000000000, 29.99999999999999289 ) ) ;
#560 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#561 = EDGE_CURVE ( 'Defeatured_0_9+Defeatured_0_8+Defeatured_0_6+Defeatured_0_13', #444, #492, #228, .T. ) ;
#562 = FACE_OUTER_BOUND ( 'NONE', #398, .T. ) ;
#563 = AXIS2_PLACEMENT_3D ( 'NONE', #337, #282, #229 ) ;
#564 = EDGE_LOOP ( 'NONE', ( #206, #344, #439, #285 ) ) ;
#565 = CIRCLE ( 'NONE', #310, 1.249999999999994227 ) ;
#566 = FACE_OUTER_BOUND ( 'NONE', #581, .T. ) ;
#567 = VERTEX_POINT ( 'NONE', #167 ) ;
#568 = PLANE ( 'NONE', #287 ) ;
#569 = ORIENTED_EDGE ( 'NONE', *, *, #35, .T. ) ;
#570 = ORIENTED_EDGE ( 'NONE', *, *, #330, .F. ) ;
#571 = CIRCLE ( 'NONE', #388, 41.49999999999998579 ) ;
#572 = ORIENTED_EDGE ( 'NONE', *, *, #213, .F. ) ;
#573 = EDGE_LOOP ( 'NONE', ( #239, #526, #18, #51 ) ) ;
#574 = EDGE_LOOP ( 'NONE', ( #250 ) ) ;
#575 = LINE ( 'NONE', #256, #146 ) ;
#576 = CARTESIAN_POINT ( 'NONE', ( 2.499999999999996003, -52.50000000000000711, 3.749999999999999112 ) ) ;
#577 = EDGE_CURVE ( 'Defeatured_0_7+Defeatured_0_14+Defeatured_0_9+Defeatured_0_2', #567, #237, #599, .T. ) ;
#578 = ORIENTED_EDGE ( 'NONE', *, *, #595, .T. ) ;
#579 = LINE ( 'NONE', #358, #584 ) ;
#580 = EDGE_LOOP ( 'NONE', ( #319 ) ) ;
#581 = EDGE_LOOP ( 'NONE', ( #456 ) ) ;
#582 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.254016970585643992E-16, -1.000000000000000000 ) ) ;
#583 = CYLINDRICAL_SURFACE ( 'NONE', #427, 2.099999999999989875 ) ;
#584 = VECTOR ( 'NONE', #270, 1000.000000000000000 ) ;
#585 = FACE_OUTER_BOUND ( 'NONE', #371, .T. ) ;
#586 = EDGE_CURVE ( 'NONE', #400, #400, #367, .T. ) ;
#587 = DIRECTION ( 'NONE', ( 1.000000000000000000, -0.000000000000000000, -0.000000000000000000 ) ) ;
#588 = DIRECTION ( 'NONE', ( -0.000000000000000000, 1.000000000000000000, 1.224646799147356905E-16 ) ) ;
#589 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#590 = FACE_OUTER_BOUND ( 'NONE', #438, .T. ) ;
#591 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( .MILLI., .METRE. ) );
#592 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #200, 'distance_accuracy_value', 'NONE');
#593 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.632680918566406793E-16, 1.000000000000000000 ) ) ;
#594 = EDGE_LOOP ( 'NONE', ( #572 ) ) ;
#595 = EDGE_CURVE ( 'Defeatured_0_2+Defeatured_0_7+Defeatured_0_6+Defeatured_0_14', #198, #237, #281, .T. ) ;
#596 = FACE_OUTER_BOUND ( 'NONE', #573, .T. ) ;
#597 = DIRECTION ( 'NONE', ( -0.000000000000000000, 1.000000000000000000, 1.224646799147353454E-16 ) ) ;
#598 = FILL_AREA_STYLE_COLOUR ( '', #360 ) ;
#599 = LINE ( 'NONE', #85, #542 ) ;
#600 = EDGE_CURVE ( 'NONE', #44, #44, #139, .T. ) ;
#601 = CARTESIAN_POINT ( 'NONE', ( 10.00000000000000888, -24.91504716985848944, 29.99999999999999289 ) ) ;
#602 = VERTEX_POINT ( 'NONE', #21 ) ;
#603 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, -0.000000000000000000 ) ) ;
#604 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, -47.99999999999997158, 42.49999999999999289 ) ) ;
#605 = FACE_OUTER_BOUND ( 'NONE', #451, .T. ) ;
#606 = LINE ( 'NONE', #559, #551 ) ;
#607 = AXIS2_PLACEMENT_3D ( 'NONE', #265, #374, #70 ) ;
#608 = EDGE_CURVE ( 'Defeatured_0_2+Defeatured_0_8+Defeatured_0_13+Defeatured_0_6', #40, #610, #376, .T. ) ;
#609 = CARTESIAN_POINT ( 'NONE', ( 10.00000000000000888, -64.00000000000000000, 42.50000000000000000 ) ) ;
#610 = VERTEX_POINT ( 'NONE', #122 ) ;
#611 = ORIENTED_EDGE ( 'NONE', *, *, #23, .T. ) ;
#612 = CARTESIAN_POINT ( 'NONE', ( 10.00000000000000533, -48.50000000000000000, 0.000000000000000000 ) ) ;
#613 = ORIENTED_EDGE ( 'NONE', *, *, #525, .F. ) ;
#614 = ORIENTED_EDGE ( 'NONE', *, *, #477, .T. ) ;
#615 = ORIENTED_EDGE ( 'NONE', *, *, #181, .T. ) ;
#616 = VERTEX_POINT ( 'NONE', #132 ) ;
ENDSEC;
END-ISO-10303-21;

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

2927
matlab/STEPS/apa300ml.STEP Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

BIN
matlab/STEPS/encoder.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

1113
matlab/STEPS/nut.STEP Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,620 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION (( 'STEP AP214' ),
'1' );
FILE_NAME ('12600011.STEP',
'2021-03-15T09:41:30',
( '' ),
( '' ),
'SwSTEP 2.0',
'SolidWorks 2020',
'' );
FILE_SCHEMA (( 'AUTOMOTIVE_DESIGN' ));
ENDSEC;
DATA;
#1 = LINE ( 'NONE', #350, #323 ) ;
#2 = ORIENTED_EDGE ( 'NONE', *, *, #485, .T. ) ;
#3 = DIRECTION ( 'NONE', ( -9.269115636346818649E-30, 6.509055438931217236E-31, 1.000000000000000000 ) ) ;
#4 = ORIENTED_EDGE ( 'NONE', *, *, #303, .F. ) ;
#5 = ADVANCED_FACE ( 'NONE', ( #466 ), #562, .F. ) ;
#6 = AXIS2_PLACEMENT_3D ( 'NONE', #228, #368, #508 ) ;
#7 = CARTESIAN_POINT ( 'NONE', ( 1.077816083822056736, -1.769689103339530334, 2.694693798644613114 ) ) ;
#8 = CARTESIAN_POINT ( 'NONE', ( 21.00000000000000000, 0.000000000000000000, 10.00000000000005862 ) ) ;
#9 = CARTESIAN_POINT ( 'NONE', ( 1.052229678524115863, -1.453158874364316455, -7.516856271292184033 ) ) ;
#10 = CYLINDRICAL_SURFACE ( 'NONE', #81, 2.900000000000021672 ) ;
#11 = CARTESIAN_POINT ( 'NONE', ( 1.170477829490439214, -2.606803394963241871, 6.284772516384410146 ) ) ;
#12 = ORIENTED_EDGE ( 'NONE', *, *, #441, .T. ) ;
#13 = CARTESIAN_POINT ( 'NONE', ( 1.021113008599030980, -0.9352134876267782504, 2.248444778896524276 ) ) ;
#14 = DIRECTION ( 'NONE', ( 5.744102241837526037E-15, 1.000000000000000000, 6.513388781306040347E-31 ) ) ;
#15 = VECTOR ( 'NONE', #398, 1000.000000000000000 ) ;
#16 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION ( '', ( #332 ), #287 ) ;
#17 = CYLINDRICAL_SURFACE ( 'NONE', #543, 2.900000000000021672 ) ;
#18 = VERTEX_POINT ( 'NONE', #505 ) ;
#19 = PRODUCT_DEFINITION_CONTEXT ( 'detailed design', #473, 'design' ) ;
#20 = CARTESIAN_POINT ( 'NONE', ( 1.158841438556198256, -2.517865683606066884, -3.548699494987622050 ) ) ;
#21 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000000888, -6.244997998398397421, -10.00000000000004086 ) ) ;
#22 = CARTESIAN_POINT ( 'NONE', ( 1.091678846172272843, 1.917492000104028760, 7.183784324575197111 ) ) ;
#23 = CARTESIAN_POINT ( 'NONE', ( 1.734723475976807094E-15, -7.000000000000002665, 10.00000000000007994 ) ) ;
#24 = CARTESIAN_POINT ( 'NONE', ( 1.119308165191563065, -2.185424989608173885, -3.084388393378517446 ) ) ;
#25 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000003109, -6.899693021425057655E-23, -7.900000000000030553 ) ) ;
#26 = CARTESIAN_POINT ( 'NONE', ( 1.002758859889578469, -0.3814165023305560176, -2.118849338432667206 ) ) ;
#27 = EDGE_CURVE ( 'NONE', #218, #281, #275, .T. ) ;
#28 = CARTESIAN_POINT ( 'NONE', ( 1.021134131335211359, 0.9358593976546415449, -2.248583671222113445 ) ) ;
#29 = VERTEX_POINT ( 'NONE', #153 ) ;
#30 = EDGE_CURVE ( 'NONE', #264, #533, #456, .T. ) ;
#31 = CARTESIAN_POINT ( 'NONE', ( 1.052408622698138840, 1.455468634805069383, 2.484595146263922416 ) ) ;
#32 = CARTESIAN_POINT ( 'NONE', ( 1.002758800380384230, 0.3805069094076541925, -2.118855975366778388 ) ) ;
#33 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3,
( #383, #517, #32, #392, #28, #344, #484, #475, #156, #519, #571, #207, #163, #431, #428, #573, #166, #386, #78, #524, #124, #576, #116, #170, #209, #380, #68, #300, #347, #253, #527, #472, #334, #125 ),
.UNSPECIFIED., .F., .F.,
( 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 ),
( 0.000000000000000000, 0.0005674180595977349308, 0.001134836119195469862, 0.001702254178793204901, 0.002269672238390939723, 0.002837090297988674546, 0.003404508357586409802, 0.003971926417184144624, 0.004539344476781879446, 0.005106762536379614269, 0.005674180595977349091, 0.006241598655575083913, 0.006809016715172819603, 0.007376434774770554426, 0.007943852834368289248, 0.008511270893966024070, 0.009078688953563758893 ),
.UNSPECIFIED. ) ;
#34 = VECTOR ( 'NONE', #409, 1000.000000000000000 ) ;
#35 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000004441, -1.313167051637360128E-24, 10.00000000000005862 ) ) ;
#36 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 5.000000000000029310 ) ) ;
#37 = LINE ( 'NONE', #255, #88 ) ;
#38 = ORIENTED_EDGE ( 'NONE', *, *, #120, .F. ) ;
#39 = DIRECTION ( 'NONE', ( 9.269115636346818649E-30, -6.509055438931217236E-31, -1.000000000000000000 ) ) ;
#40 = ORIENTED_EDGE ( 'NONE', *, *, #110, .T. ) ;
#41 = EDGE_CURVE ( 'NONE', #502, #281, #74, .T. ) ;
#42 = AXIS2_PLACEMENT_3D ( 'NONE', #437, #304, #542 ) ;
#43 = LINE ( 'NONE', #578, #343 ) ;
#44 = VERTEX_POINT ( 'NONE', #417 ) ;
#45 = PLANE ( 'NONE', #285 ) ;
#46 = EDGE_CURVE ( 'NONE', #272, #320, #64, .T. ) ;
#47 = LINE ( 'NONE', #212, #15 ) ;
#48 = ADVANCED_BREP_SHAPE_REPRESENTATION ( '12600011', ( #560, #267 ), #122 ) ;
#49 = ORIENTED_EDGE ( 'NONE', *, *, #165, .T. ) ;
#50 = PRESENTATION_STYLE_ASSIGNMENT (( #577 ) ) ;
#51 = CARTESIAN_POINT ( 'NONE', ( 1.197901747916504167, -2.806831562450986084, 4.246721107270420958 ) ) ;
#52 = DIRECTION ( 'NONE', ( 9.269115636346818649E-30, -6.509055438931217236E-31, -1.000000000000000000 ) ) ;
#53 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#54 = VECTOR ( 'NONE', #136, 1000.000000000000000 ) ;
#55 = CARTESIAN_POINT ( 'NONE', ( 1.013280555943153249, -0.7524488686545939276, -7.807189273538552854 ) ) ;
#56 = AXIS2_PLACEMENT_3D ( 'NONE', #226, #549, #144 ) ;
#57 = DIRECTION ( 'NONE', ( -9.269115636346818649E-30, 6.509055438931217236E-31, 1.000000000000000000 ) ) ;
#58 = CARTESIAN_POINT ( 'NONE', ( 1.002758859889575360, -0.3814165023305576274, 7.881150661567392746 ) ) ;
#59 = EDGE_LOOP ( 'NONE', ( #73, #107, #498, #173 ) ) ;
#60 = ADVANCED_FACE ( 'NONE', ( #193 ), #10, .F. ) ;
#61 = PLANE ( 'NONE', #276 ) ;
#62 = DIRECTION ( 'NONE', ( 9.269115636346818649E-30, -6.509055438931217236E-31, -1.000000000000000000 ) ) ;
#63 = CARTESIAN_POINT ( 'NONE', ( 1.021299653282159214, -0.9391604766338205179, 7.750205293625658243 ) ) ;
#64 = LINE ( 'NONE', #231, #184 ) ;
#65 = AXIS2_PLACEMENT_3D ( 'NONE', #352, #227, #504 ) ;
#66 = APPLICATION_PROTOCOL_DEFINITION ( 'draft international standard', 'automotive_design', 1998, #473 ) ;
#67 = CARTESIAN_POINT ( 'NONE', ( 1.119347325064026677, 2.185889046635321797, 3.084685764629168325 ) ) ;
#68 = CARTESIAN_POINT ( 'NONE', ( 1.077796069496007814, 1.769344865796419031, -7.305443400081748528 ) ) ;
#69 = CARTESIAN_POINT ( 'NONE', ( -2.688043534540597391E-29, 1.887626077290066985E-30, 7.900000000000050981 ) ) ;
#70 = PLANE ( 'NONE', #381 ) ;
#71 = CARTESIAN_POINT ( 'NONE', ( 1.119216967465737733, 2.184603567630821530, 6.916558582203523819 ) ) ;
#72 = DIRECTION ( 'NONE', ( 9.269115636346818649E-30, -6.509055438931217236E-31, -1.000000000000000000 ) ) ;
#73 = ORIENTED_EDGE ( 'NONE', *, *, #27, .F. ) ;
#74 = CIRCLE ( 'NONE', #436, 2.900000000000021672 ) ;
#75 = CARTESIAN_POINT ( 'NONE', ( 1.091483246822571251, 1.915573646220072535, 2.814338280904031819 ) ) ;
#76 = DIRECTION ( 'NONE', ( 9.269115636346818649E-30, -6.509055438931217236E-31, -1.000000000000000000 ) ) ;
#77 = CARTESIAN_POINT ( 'NONE', ( 1.211377228074608237, 2.900070481132997813, 4.811655556963787106 ) ) ;
#78 = CARTESIAN_POINT ( 'NONE', ( 1.208577462364847088, 2.881145210771570042, -5.380788641654073778 ) ) ;
#79 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 7.000000000000117240, 10.00000000000007994 ) ) ;
#80 = LINE ( 'NONE', #532, #489 ) ;
#81 = AXIS2_PLACEMENT_3D ( 'NONE', #375, #240, #557 ) ;
#82 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000006217, -6.244997998398404526, -10.00000000000004086 ) ) ;
#83 = ORIENTED_EDGE ( 'NONE', *, *, #485, .F. ) ;
#84 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000002665, -6.244997998398397421, 10.00000000000007816 ) ) ;
#85 = EDGE_LOOP ( 'NONE', ( #351, #38, #196, #412 ) ) ;
#86 = CYLINDRICAL_SURFACE ( 'NONE', #446, 2.900000000000021672 ) ;
#87 = EDGE_LOOP ( 'NONE', ( #407, #365, #305, #453 ) ) ;
#88 = VECTOR ( 'NONE', #215, 1000.000000000000000 ) ;
#89 = PLANE ( 'NONE', #176 ) ;
#90 = ORIENTED_EDGE ( 'NONE', *, *, #355, .F. ) ;
#91 = EDGE_CURVE ( 'NONE', #320, #186, #422, .T. ) ;
#92 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000003109, -0.1893503389913020196, -7.900000000000034106 ) ) ;
#93 = VERTEX_POINT ( 'NONE', #189 ) ;
#94 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 7.000000000000117240, 10.00000000000007994 ) ) ;
#95 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3,
( #316, #92, #271, #55, #230, #410, #9, #164, #518, #162, #424, #471, #246, #333, #249, #567, #154, #430, #329, #523, #199, #516, #20, #293, #24, #572, #159, #286, #299, #115, #197, #26, #203, #336 ),
.UNSPECIFIED., .F., .F.,
( 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 ),
( 0.009078688953563758893, 0.009645968560652860499, 0.01021324816774196037, 0.01078052777483106198, 0.01134780738192016358, 0.01191508698900926345, 0.01248236659609836506, 0.01304964620318746493, 0.01361692581027656654, 0.01418420541736566468, 0.01475148502445476628, 0.01531876463154386615, 0.01588604423863296602, 0.01645332384572206763, 0.01702060345281116924, 0.01758788305990027084, 0.01815516266698936898 ),
.UNSPECIFIED. ) ;
#96 = CARTESIAN_POINT ( 'NONE', ( 1.091489434568259975, -1.915536973412236277, 2.814492817154451210 ) ) ;
#97 = ORIENTED_EDGE ( 'NONE', *, *, #145, .F. ) ;
#98 = DIRECTION ( 'NONE', ( -5.744102241837528403E-15, -1.000000000000000000, -6.513388781306040347E-31 ) ) ;
#99 = AXIS2_PLACEMENT_3D ( 'NONE', #564, #76, #245 ) ;
#100 = CARTESIAN_POINT ( 'NONE', ( 1.211348083037459444, -2.899871605082789294, 4.806393686871440529 ) ) ;
#101 = DIRECTION ( 'NONE', ( 9.269115636346818649E-30, -6.509055438931217236E-31, -1.000000000000000000 ) ) ;
#102 = SURFACE_STYLE_USAGE ( .BOTH. , #513 ) ;
#103 = DIRECTION ( 'NONE', ( 1.000000000000000000, 1.224646798490764308E-16, -9.466330862652143066E-30 ) ) ;
#104 = EDGE_CURVE ( 'NONE', #512, #264, #138, .T. ) ;
#105 = EDGE_LOOP ( 'NONE', ( #149, #233 ) ) ;
#106 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000003997, -0.1893503389913032131, 2.100000000000029399 ) ) ;
#107 = ORIENTED_EDGE ( 'NONE', *, *, #161, .F. ) ;
#108 = PRESENTATION_STYLE_ASSIGNMENT (( #102 ) ) ;
#109 = EDGE_CURVE ( 'NONE', #218, #512, #551, .T. ) ;
#110 = EDGE_CURVE ( 'NONE', #415, #307, #388, .T. ) ;
#111 = CARTESIAN_POINT ( 'NONE', ( 1.190122042626443832, 2.752113149500015510, 4.066167496474161425 ) ) ;
#112 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000002665, -6.244997998398397421, 10.00000000000007816 ) ) ;
#113 = CARTESIAN_POINT ( 'NONE', ( 1.189989376409346322, 2.751146621874757781, 5.936406362935758629 ) ) ;
#114 = DIRECTION ( 'NONE', ( 1.000000000000000000, 6.565802712909607925E-26, 0.000000000000000000 ) ) ;
#115 = CARTESIAN_POINT ( 'NONE', ( 1.021299653282159658, -0.9391604766338250698, -2.249794706374403486 ) ) ;
#116 = CARTESIAN_POINT ( 'NONE', ( 1.158586339820907085, 2.515845045974717031, -6.454706600528678173 ) ) ;
#117 = ORIENTED_EDGE ( 'NONE', *, *, #341, .T. ) ;
#118 = CARTESIAN_POINT ( 'NONE', ( 1.197921579145535320, 2.806972390867914502, 4.247069915549982255 ) ) ;
#119 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000000888, 7.000000000000117240, 10.00000000000007816 ) ) ;
#120 = EDGE_CURVE ( 'NONE', #272, #175, #435, .T. ) ;
#121 = AXIS2_PLACEMENT_3D ( 'NONE', #36, #181, #177 ) ;
#122 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #257 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #363, #506, #459 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#123 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000004441, 0.1918819484234069173, 7.900000000000076739 ) ) ;
#124 = CARTESIAN_POINT ( 'NONE', ( 1.190122042626445165, 2.752113149500017286, -5.933832503525896307 ) ) ;
#125 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000003109, -6.899693021425057655E-23, -7.900000000000030553 ) ) ;
#126 = ORIENTED_EDGE ( 'NONE', *, *, #30, .T. ) ;
#127 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 5.000000000000029310 ) ) ;
#128 = ORIENTED_EDGE ( 'NONE', *, *, #109, .T. ) ;
#129 = AXIS2_PLACEMENT_3D ( 'NONE', #127, #268, #3 ) ;
#130 = DIRECTION ( 'NONE', ( -1.000000000000000000, -6.565802712909606777E-26, 9.466330862652141665E-30 ) ) ;
#131 = ORIENTED_EDGE ( 'NONE', *, *, #27, .T. ) ;
#132 = FACE_OUTER_BOUND ( 'NONE', #59, .T. ) ;
#133 = ORIENTED_EDGE ( 'NONE', *, *, #220, .T. ) ;
#134 = EDGE_CURVE ( 'NONE', #320, #548, #480, .T. ) ;
#135 = FACE_OUTER_BOUND ( 'NONE', #292, .T. ) ;
#136 = DIRECTION ( 'NONE', ( 9.269115636346818649E-30, -6.509055438931217236E-31, -1.000000000000000000 ) ) ;
#137 = ORIENTED_EDGE ( 'NONE', *, *, #461, .T. ) ;
#138 = CIRCLE ( 'NONE', #6, 19.99999999999999289 ) ;
#139 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION ( '', ( #239 ), #470 ) ;
#140 = DIRECTION ( 'NONE', ( -9.269115636346818649E-30, 6.509055438931217236E-31, 1.000000000000000000 ) ) ;
#141 = ORIENTED_EDGE ( 'NONE', *, *, #270, .T. ) ;
#142 = CARTESIAN_POINT ( 'NONE', ( 1.078094169556660376, -1.772839131899029086, 7.302921832109006139 ) ) ;
#143 = DIRECTION ( 'NONE', ( -1.000000000000000000, -6.565802712909606777E-26, 0.000000000000000000 ) ) ;
#144 = DIRECTION ( 'NONE', ( -9.269115636346818649E-30, 6.509055438931217236E-31, 1.000000000000000000 ) ) ;
#145 = EDGE_CURVE ( 'NONE', #18, #93, #337, .T. ) ;
#146 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000004885, -0.1918351283818670872, 7.900000000000078515 ) ) ;
#147 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000004441, -1.313160542581921172E-24, 10.00000000000005862 ) ) ;
#148 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000004441, -1.313160542581921172E-24, 10.00000000000005862 ) ) ;
#149 = ORIENTED_EDGE ( 'NONE', *, *, #41, .F. ) ;
#150 = CARTESIAN_POINT ( 'NONE', ( 1.170237444980486874, -2.604983627007379621, 3.711504077527632894 ) ) ;
#151 = ORIENTED_EDGE ( 'NONE', *, *, #270, .F. ) ;
#152 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000003997, 0.1893965525852976117, 2.100000000000028955 ) ) ;
#153 = CARTESIAN_POINT ( 'NONE', ( 1.734723475976807094E-15, -7.000000000000002665, -10.00000000000003908 ) ) ;
#154 = CARTESIAN_POINT ( 'NONE', ( 1.211348083037458556, -2.899871605082789294, -5.193606313128618091 ) ) ;
#155 = CIRCLE ( 'NONE', #219, 19.99999999999999289 ) ;
#156 = CARTESIAN_POINT ( 'NONE', ( 1.091678846172272621, 1.917492000104030536, -2.816215675424861953 ) ) ;
#157 = ORIENTED_EDGE ( 'NONE', *, *, #348, .F. ) ;
#158 = PRODUCT_CONTEXT ( 'NONE', #378, 'mechanical' ) ;
#159 = CARTESIAN_POINT ( 'NONE', ( 1.078094169556659487, -1.772839131899032639, -2.697078167891055589 ) ) ;
#160 = LINE ( 'NONE', #477, #247 ) ;
#161 = EDGE_CURVE ( 'NONE', #581, #218, #33, .T. ) ;
#162 = CARTESIAN_POINT ( 'NONE', ( 1.119040394117710946, -2.183007095657998331, -6.918385665888346026 ) ) ;
#163 = CARTESIAN_POINT ( 'NONE', ( 1.170434743757138518, 2.606467032255219696, -3.714700726925435958 ) ) ;
#164 = CARTESIAN_POINT ( 'NONE', ( 1.077816083822058069, -1.769689103339531222, -7.305306201355445062 ) ) ;
#165 = EDGE_CURVE ( 'NONE', #548, #415, #155, .T. ) ;
#166 = CARTESIAN_POINT ( 'NONE', ( 1.211356511054556773, 2.899929115085451592, -4.809491332897139593 ) ) ;
#167 = CLOSED_SHELL ( 'NONE', ( #478, #60, #525, #449, #205, #561, #5, #469, #528, #241, #373, #420, #327 ) ) ;
#168 = CYLINDRICAL_SURFACE ( 'NONE', #468, 19.99999999999999645 ) ;
#169 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #289, 'distance_accuracy_value', 'NONE');
#170 = CARTESIAN_POINT ( 'NONE', ( 1.133103134302108961, 2.305988130372859324, -6.768634029853752843 ) ) ;
#171 = DIRECTION ( 'NONE', ( 1.000000000000000000, -4.336808689285477401E-16, -9.466330862652141665E-30 ) ) ;
#172 = FACE_OUTER_BOUND ( 'NONE', #451, .T. ) ;
#173 = ORIENTED_EDGE ( 'NONE', *, *, #41, .T. ) ;
#174 = CYLINDRICAL_SURFACE ( 'NONE', #65, 2.900000000000021672 ) ;
#175 = VERTEX_POINT ( 'NONE', #521 ) ;
#176 = AXIS2_PLACEMENT_3D ( 'NONE', #450, #360, #487 ) ;
#177 = DIRECTION ( 'NONE', ( -9.269115636346818649E-30, 6.509055438931217236E-31, 1.000000000000000000 ) ) ;
#178 = ORIENTED_EDGE ( 'NONE', *, *, #195, .F. ) ;
#179 = DIRECTION ( 'NONE', ( -1.000000000000000000, -6.565802712909606777E-26, 9.466330862652141665E-30 ) ) ;
#180 = ORIENTED_EDGE ( 'NONE', *, *, #534, .T. ) ;
#181 = DIRECTION ( 'NONE', ( -1.000000000000000000, -6.565802712909606777E-26, 9.466330862652141665E-30 ) ) ;
#182 = VERTEX_POINT ( 'NONE', #425 ) ;
#183 = SURFACE_STYLE_FILL_AREA ( #546 ) ;
#184 = VECTOR ( 'NONE', #14, 1000.000000000000000 ) ;
#185 = CARTESIAN_POINT ( 'NONE', ( 1.119040394117709392, -2.183007095657995666, 3.081614334111711706 ) ) ;
#186 = VERTEX_POINT ( 'NONE', #21 ) ;
#187 = PLANE ( 'NONE', #315 ) ;
#188 = CARTESIAN_POINT ( 'NONE', ( 1.158841438556197589, -2.517865683606068217, 6.451300505012435238 ) ) ;
#189 = CARTESIAN_POINT ( 'NONE', ( 1.734723475976807094E-15, -7.000000000000002665, 10.00000000000007994 ) ) ;
#190 = CARTESIAN_POINT ( 'NONE', ( 1.198052156150385184, -2.807889211821545494, 5.749355937907877134 ) ) ;
#191 = CARTESIAN_POINT ( 'NONE', ( 2.688043534538266191E-29, 3.551475717527332707E-16, -7.900000000000050981 ) ) ;
#192 = CARTESIAN_POINT ( 'NONE', ( 1.208620515402092588, -2.881436852169650731, 5.378282717686452941 ) ) ;
#193 = FACE_OUTER_BOUND ( 'NONE', #338, .T. ) ;
#194 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -5.000000000000029310 ) ) ;
#195 = EDGE_CURVE ( 'NONE', #93, #29, #198, .T. ) ;
#196 = ORIENTED_EDGE ( 'NONE', *, *, #220, .F. ) ;
#197 = CARTESIAN_POINT ( 'NONE', ( 1.013419683820314887, -0.7561342664326187180, -2.193798180097097816 ) ) ;
#198 = LINE ( 'NONE', #340, #296 ) ;
#199 = CARTESIAN_POINT ( 'NONE', ( 1.190119196357803277, -2.752089387394692555, -4.066153994152150730 ) ) ;
#200 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #454, 'distance_accuracy_value', 'NONE');
#201 = DIRECTION ( 'NONE', ( -1.000000000000000000, -4.336808690598624138E-16, 9.466330862652141665E-30 ) ) ;
#202 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE ( 'ANY', '', #479, .NOT_KNOWN. ) ;
#203 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000004663, -0.1918351283818638398, -2.100000000000022293 ) ) ;
#204 = DIRECTION ( 'NONE', ( -4.336808690598624138E-16, 1.000000000000000000, 6.508092473959028873E-31 ) ) ;
#205 = ADVANCED_FACE ( 'NONE', ( #568 ), #70, .F. ) ;
#206 = CARTESIAN_POINT ( 'NONE', ( 1.208577462364844868, 2.881145210771569154, 4.619211358345981289 ) ) ;
#207 = CARTESIAN_POINT ( 'NONE', ( 1.158669802208732946, 2.516548655156687797, -3.546268235561122140 ) ) ;
#208 = CARTESIAN_POINT ( 'NONE', ( 1.021083600930263513, 0.9347700137074637095, 2.248219630233052602 ) ) ;
#209 = CARTESIAN_POINT ( 'NONE', ( 1.119347325064026011, 2.185889046635326682, -6.915314235370883189 ) ) ;
#210 = ORIENTED_EDGE ( 'NONE', *, *, #213, .T. ) ;
#211 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000004441, 0.000000000000000000, -2.100000000000022293 ) ) ;
#212 = CARTESIAN_POINT ( 'NONE', ( -2.688043534540597391E-29, 1.887626077290066985E-30, 7.900000000000050981 ) ) ;
#213 = EDGE_CURVE ( 'NONE', #548, #447, #160, .T. ) ;
#214 = ORIENTED_EDGE ( 'NONE', *, *, #104, .F. ) ;
#215 = DIRECTION ( 'NONE', ( 1.224646798490764308E-16, -1.000000000000000000, -6.508092473959024494E-31 ) ) ;
#216 = ORIENTED_EDGE ( 'NONE', *, *, #303, .T. ) ;
#217 = CARTESIAN_POINT ( 'NONE', ( 1.999999999999997335, 6.244997998398504890, -10.00000000000004086 ) ) ;
#218 = VERTEX_POINT ( 'NONE', #25 ) ;
#219 = AXIS2_PLACEMENT_3D ( 'NONE', #243, #294, #114 ) ;
#220 = EDGE_CURVE ( 'NONE', #93, #272, #302, .T. ) ;
#221 = DIRECTION ( 'NONE', ( 1.000000000000000000, 4.336808690598624138E-16, -9.466330862652141665E-30 ) ) ;
#222 = ORIENTED_EDGE ( 'NONE', *, *, #574, .T. ) ;
#223 = FILL_AREA_STYLE ('',( #266 ) ) ;
#224 = DIRECTION ( 'NONE', ( 1.000000000000000000, 4.336808690598624138E-16, -9.466330862652141665E-30 ) ) ;
#225 = ORIENTED_EDGE ( 'NONE', *, *, #369, .F. ) ;
#226 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -5.000000000000029310 ) ) ;
#227 = DIRECTION ( 'NONE', ( -1.000000000000000000, -6.565802712909606777E-26, 9.466330862652141665E-30 ) ) ;
#228 = CARTESIAN_POINT ( 'NONE', ( 21.00000000000000000, 0.000000000000000000, -10.00000000000005862 ) ) ;
#229 = VECTOR ( 'NONE', #445, 1000.000000000000000 ) ;
#230 = CARTESIAN_POINT ( 'NONE', ( 1.021113008599028538, -0.9352134876267794716, -7.751555221103533455 ) ) ;
#231 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000006217, -6.244997998398404526, 10.00000000000007816 ) ) ;
#232 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000004219, -6.899771907515579756E-23, 2.100000000000029843 ) ) ;
#233 = ORIENTED_EDGE ( 'NONE', *, *, #574, .F. ) ;
#234 = EDGE_CURVE ( 'NONE', #581, #502, #80, .T. ) ;
#235 = CARTESIAN_POINT ( 'NONE', ( 1.052421527495167153, -1.455817154695808968, 7.515353646008888333 ) ) ;
#236 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -5.000000000000029310 ) ) ;
#237 = AXIS2_PLACEMENT_3D ( 'NONE', #8, #62, #143 ) ;
#238 = DIRECTION ( 'NONE', ( -3.446461345128720556E-15, -1.000000000000000000, -6.505203579042415614E-31 ) ) ;
#239 = STYLED_ITEM ( 'NONE', ( #50 ), #560 ) ;
#240 = DIRECTION ( 'NONE', ( -1.000000000000000000, -6.565802712909606777E-26, 9.466330862652141665E-30 ) ) ;
#241 = ADVANCED_FACE ( 'NONE', ( #260 ), #404, .T. ) ;
#242 = CARTESIAN_POINT ( 'NONE', ( 1.077717860131252703, 1.768517344931941349, 7.306130988908137169 ) ) ;
#243 = CARTESIAN_POINT ( 'NONE', ( 21.00000000000000000, 0.000000000000000000, 10.00000000000005862 ) ) ;
#244 = CARTESIAN_POINT ( 'NONE', ( -2.688043534540597391E-29, 1.887626077290066985E-30, -2.100000000000008082 ) ) ;
#245 = DIRECTION ( 'NONE', ( 1.000000000000000000, 6.565802712909607925E-26, 0.000000000000000000 ) ) ;
#246 = CARTESIAN_POINT ( 'NONE', ( 1.170237444980486208, -2.604983627007380509, -6.288495922472426614 ) ) ;
#247 = VECTOR ( 'NONE', #72, 1000.000000000000000 ) ;
#248 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000002665, -7.000000000000002665, 10.00000000000007816 ) ) ;
#249 = CARTESIAN_POINT ( 'NONE', ( 1.197901747916505277, -2.806831562450985640, -5.753278892729639438 ) ) ;
#250 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 7.000000000000117240, 10.00000000000007994 ) ) ;
#251 = CARTESIAN_POINT ( 'NONE', ( 1.158586339820905087, 2.515845045974715255, 3.545293399471377338 ) ) ;
#252 = EDGE_CURVE ( 'NONE', #415, #264, #1, .T. ) ;
#253 = CARTESIAN_POINT ( 'NONE', ( 1.021083600930265511, 0.9347700137074648197, -7.751780369767005574 ) ) ;
#254 = FILL_AREA_STYLE_COLOUR ( '', #499 ) ;
#255 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 7.000000000000117240, -10.00000000000003908 ) ) ;
#256 = VECTOR ( 'NONE', #52, 1000.000000000000000 ) ;
#257 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #363, 'distance_accuracy_value', 'NONE');
#258 = CARTESIAN_POINT ( 'NONE', ( 1.734723475976807094E-15, -7.000000000000002665, 10.00000000000007994 ) ) ;
#259 = EDGE_LOOP ( 'NONE', ( #312, #4 ) ) ;
#260 = FACE_OUTER_BOUND ( 'NONE', #301, .T. ) ;
#261 = EDGE_CURVE ( 'NONE', #447, #495, #47, .T. ) ;
#262 = ORIENTED_EDGE ( 'NONE', *, *, #165, .F. ) ;
#263 = LINE ( 'NONE', #393, #229 ) ;
#264 = VERTEX_POINT ( 'NONE', #217 ) ;
#265 = PRODUCT_DEFINITION ( 'UNKNOWN', '', #202, #19 ) ;
#266 = FILL_AREA_STYLE_COLOUR ( '', #555 ) ;
#267 = AXIS2_PLACEMENT_3D ( 'NONE', #558, #467, #426 ) ;
#268 = DIRECTION ( 'NONE', ( -1.000000000000000000, -6.565802712909606777E-26, 9.466330862652141665E-30 ) ) ;
#269 = ORIENTED_EDGE ( 'NONE', *, *, #120, .T. ) ;
#270 = EDGE_CURVE ( 'NONE', #186, #512, #531, .T. ) ;
#271 = CARTESIAN_POINT ( 'NONE', ( 1.002688659126039328, -0.3777202291820365154, -7.881634665580658172 ) ) ;
#272 = VERTEX_POINT ( 'NONE', #492 ) ;
#273 = DIRECTION ( 'NONE', ( -1.000000000000000000, 4.336808689285477401E-16, 9.466330862652141665E-30 ) ) ;
#274 = LINE ( 'NONE', #148, #575 ) ;
#275 = LINE ( 'NONE', #191, #331 ) ;
#276 = AXIS2_PLACEMENT_3D ( 'NONE', #326, #103, #552 ) ;
#277 = CIRCLE ( 'NONE', #56, 2.900000000000021672 ) ;
#278 = CARTESIAN_POINT ( 'NONE', ( 1.040742947304724053, -1.287846205588440318, 7.605207037590122177 ) ) ;
#279 = ORIENTED_EDGE ( 'NONE', *, *, #46, .T. ) ;
#280 = FACE_OUTER_BOUND ( 'NONE', #335, .T. ) ;
#281 = VERTEX_POINT ( 'NONE', #490 ) ;
#282 = PLANE ( 'NONE', #362 ) ;
#283 = VERTEX_POINT ( 'NONE', #311 ) ;
#284 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#285 = AXIS2_PLACEMENT_3D ( 'NONE', #79, #486, #171 ) ;
#286 = CARTESIAN_POINT ( 'NONE', ( 1.052421527495168929, -1.455817154695814519, -2.484646353991172507 ) ) ;
#287 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #169 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #289, #284, #413 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#288 = ORIENTED_EDGE ( 'NONE', *, *, #134, .F. ) ;
#289 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( .MILLI., .METRE. ) );
#290 = CARTESIAN_POINT ( 'NONE', ( 1.040598932633155282, 1.285769999470953273, 2.393683501486850496 ) ) ;
#291 = DIRECTION ( 'NONE', ( 9.269115636346818649E-30, -6.509055438931217236E-31, -1.000000000000000000 ) ) ;
#292 = EDGE_LOOP ( 'NONE', ( #444, #225, #354, #117 ) ) ;
#293 = CARTESIAN_POINT ( 'NONE', ( 1.133284157695424454, -2.307557648718657095, -3.233336915433438818 ) ) ;
#294 = DIRECTION ( 'NONE', ( 9.269115636346818649E-30, -6.509055438931217236E-31, -1.000000000000000000 ) ) ;
#295 = CARTESIAN_POINT ( 'NONE', ( 1.208625607444980377, 2.881478330222419171, 5.378858722586736363 ) ) ;
#296 = VECTOR ( 'NONE', #291, 1000.000000000000000 ) ;
#297 = DIRECTION ( 'NONE', ( 3.446461345128720556E-15, 1.000000000000000000, 6.505203579042415614E-31 ) ) ;
#298 = EDGE_CURVE ( 'NONE', #495, #283, #457, .T. ) ;
#299 = CARTESIAN_POINT ( 'NONE', ( 1.040742947304723387, -1.287846205588442094, -2.394792962409938220 ) ) ;
#300 = CARTESIAN_POINT ( 'NONE', ( 1.052408622698137064, 1.455468634805070938, -7.515404853736134427 ) ) ;
#301 = EDGE_LOOP ( 'NONE', ( #583, #133, #279, #361, #49, #40, #180 ) ) ;
#302 = LINE ( 'NONE', #258, #429 ) ;
#303 = EDGE_CURVE ( 'NONE', #283, #495, #372, .T. ) ;
#304 = DIRECTION ( 'NONE', ( 9.269115636346818649E-30, -6.509055438931217236E-31, -1.000000000000000000 ) ) ;
#305 = ORIENTED_EDGE ( 'NONE', *, *, #261, .T. ) ;
#306 = DIRECTION ( 'NONE', ( 1.000000000000000000, 6.565802712909606777E-26, -9.466330862652141665E-30 ) ) ;
#307 = VERTEX_POINT ( 'NONE', #356 ) ;
#308 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -5.000000000000029310 ) ) ;
#309 = ORIENTED_EDGE ( 'NONE', *, *, #355, .T. ) ;
#310 = FACE_OUTER_BOUND ( 'NONE', #536, .T. ) ;
#311 = CARTESIAN_POINT ( 'NONE', ( -2.745235950171453180E-29, 3.551475717928236256E-16, 2.100000000000029843 ) ) ;
#312 = ORIENTED_EDGE ( 'NONE', *, *, #298, .F. ) ;
#313 = EDGE_CURVE ( 'NONE', #182, #283, #582, .T. ) ;
#314 = VECTOR ( 'NONE', #273, 1000.000000000000000 ) ;
#315 = AXIS2_PLACEMENT_3D ( 'NONE', #500, #366, #98 ) ;
#316 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000003109, -6.899693021425057655E-23, -7.900000000000030553 ) ) ;
#317 = ORIENTED_EDGE ( 'NONE', *, *, #91, .F. ) ;
#318 = FACE_OUTER_BOUND ( 'NONE', #442, .T. ) ;
#319 = CARTESIAN_POINT ( 'NONE', ( 1.013419683820312445, -0.7561342664326269336, 7.806201819902960359 ) ) ;
#320 = VERTEX_POINT ( 'NONE', #84 ) ;
#321 = CARTESIAN_POINT ( 'NONE', ( 1.189957639517908783, -2.750935179413650733, 4.062707581451313388 ) ) ;
#322 = DIRECTION ( 'NONE', ( -1.000000000000000000, -6.565802712909606777E-26, 9.466330862652141665E-30 ) ) ;
#323 = VECTOR ( 'NONE', #39, 1000.000000000000000 ) ;
#324 = FACE_OUTER_BOUND ( 'NONE', #377, .T. ) ;
#325 = ORIENTED_EDGE ( 'NONE', *, *, #441, .F. ) ;
#326 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 7.000000000000117240, 10.00000000000007994 ) ) ;
#327 = ADVANCED_FACE ( 'NONE', ( #132 ), #86, .F. ) ;
#328 = DIRECTION ( 'NONE', ( 3.446461345128720556E-15, 1.000000000000000000, 6.505203579042415614E-31 ) ) ;
#329 = CARTESIAN_POINT ( 'NONE', ( 1.208620515402089257, -2.881436852169650731, -4.621717282313606567 ) ) ;
#330 = CARTESIAN_POINT ( 'NONE', ( 1.999999999999999112, 7.000000000000117240, -10.00000000000004086 ) ) ;
#331 = VECTOR ( 'NONE', #371, 1000.000000000000000 ) ;
#332 = STYLED_ITEM ( 'NONE', ( #108 ), #48 ) ;
#333 = CARTESIAN_POINT ( 'NONE', ( 1.189957639517910559, -2.750935179413651177, -5.937292418548744344 ) ) ;
#334 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000002887, 0.1893965525852976117, -7.900000000000030553 ) ) ;
#335 = EDGE_LOOP ( 'NONE', ( #83, #131, #222, #510 ) ) ;
#336 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000004441, 0.000000000000000000, -2.100000000000022293 ) ) ;
#337 = LINE ( 'NONE', #250, #522 ) ;
#338 = EDGE_LOOP ( 'NONE', ( #325, #579, #216, #515 ) ) ;
#339 = CARTESIAN_POINT ( 'NONE', ( 1.132930861937686995, 2.304553105269334878, 6.770702731037360422 ) ) ;
#340 = CARTESIAN_POINT ( 'NONE', ( 1.734723475976807094E-15, -7.000000000000002665, 10.00000000000007994 ) ) ;
#341 = EDGE_CURVE ( 'NONE', #307, #533, #263, .T. ) ;
#342 = CARTESIAN_POINT ( 'NONE', ( 1.040675464592997423, 1.286964762756710456, 7.605733356632443432 ) ) ;
#343 = VECTOR ( 'NONE', #221, 1000.000000000000000 ) ;
#344 = CARTESIAN_POINT ( 'NONE', ( 1.040675464592996979, 1.286964762756710901, -2.394266643367616965 ) ) ;
#345 = PRESENTATION_LAYER_ASSIGNMENT ( '', '', ( #239 ) ) ;
#346 = CARTESIAN_POINT ( 'NONE', ( 21.00000000000000000, 0.000000000000000000, 10.00000000000005862 ) ) ;
#347 = CARTESIAN_POINT ( 'NONE', ( 1.040598932633158391, 1.285769999470955938, -7.606316498513207236 ) ) ;
#348 = EDGE_CURVE ( 'NONE', #29, #175, #43, .T. ) ;
#349 = DIRECTION ( 'NONE', ( 9.269115636346818649E-30, -6.509055438931217236E-31, -1.000000000000000000 ) ) ;
#350 = CARTESIAN_POINT ( 'NONE', ( 1.999999999999997335, 6.244997998398504890, 10.00000000000007816 ) ) ;
#351 = ORIENTED_EDGE ( 'NONE', *, *, #348, .T. ) ;
#352 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 5.000000000000029310 ) ) ;
#353 = VECTOR ( 'NONE', #297, 1000.000000000000000 ) ;
#354 = ORIENTED_EDGE ( 'NONE', *, *, #534, .F. ) ;
#355 = EDGE_CURVE ( 'NONE', #175, #186, #401, .T. ) ;
#356 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000000888, 7.000000000000117240, 10.00000000000007816 ) ) ;
#357 = EDGE_LOOP ( 'NONE', ( #389, #178, #97, #400 ) ) ;
#358 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 7.000000000000117240, 10.00000000000007994 ) ) ;
#359 = ORIENTED_EDGE ( 'NONE', *, *, #91, .T. ) ;
#360 = DIRECTION ( 'NONE', ( 9.466330862652141665E-30, 6.509055438931218112E-31, 1.000000000000000000 ) ) ;
#361 = ORIENTED_EDGE ( 'NONE', *, *, #134, .T. ) ;
#362 = AXIS2_PLACEMENT_3D ( 'NONE', #509, #455, #238 ) ;
#363 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( .MILLI., .METRE. ) );
#364 = CARTESIAN_POINT ( 'NONE', ( 1.211385526473538921, -2.900127106664407872, 5.189740600924040770 ) ) ;
#365 = ORIENTED_EDGE ( 'NONE', *, *, #488, .F. ) ;
#366 = DIRECTION ( 'NONE', ( -1.000000000000000000, 5.744102241837528403E-15, 9.466330862652141665E-30 ) ) ;
#367 = CARTESIAN_POINT ( 'NONE', ( 1.002688659126040660, -0.3777202291820386804, 2.118365334419400448 ) ) ;
#368 = DIRECTION ( 'NONE', ( 9.269115636346818649E-30, -6.509055438931217236E-31, -1.000000000000000000 ) ) ;
#369 = EDGE_CURVE ( 'NONE', #18, #44, #538, .T. ) ;
#370 = FACE_OUTER_BOUND ( 'NONE', #357, .T. ) ;
#371 = DIRECTION ( 'NONE', ( -1.000000000000000000, -6.565802712909606777E-26, 9.466330862652141665E-30 ) ) ;
#372 = CIRCLE ( 'NONE', #121, 2.900000000000021672 ) ;
#373 = ADVANCED_FACE ( 'NONE', ( #172 ), #89, .F. ) ;
#374 = CARTESIAN_POINT ( 'NONE', ( 1.119308165191564175, -2.185424989608174773, 6.915611606621540730 ) ) ;
#375 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 5.000000000000029310 ) ) ;
#376 = DIRECTION ( 'NONE', ( -1.000000000000000000, -6.565802712909606777E-26, 9.466330862652141665E-30 ) ) ;
#377 = EDGE_LOOP ( 'NONE', ( #126, #438, #462, #553 ) ) ;
#378 = APPLICATION_CONTEXT ( 'automotive_design' ) ;
#379 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000005329, 0.000000000000000000, 7.900000000000078515 ) ) ;
#380 = CARTESIAN_POINT ( 'NONE', ( 1.091483246822568587, 1.915573646220076531, -7.185661719096025912 ) ) ;
#381 = AXIS2_PLACEMENT_3D ( 'NONE', #23, #204, #201 ) ;
#382 = CARTESIAN_POINT ( 'NONE', ( 1.170448483663789174, 2.606583613593464577, 3.714740571853973883 ) ) ;
#383 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000004441, 0.000000000000000000, -2.100000000000022293 ) ) ;
#384 = CARTESIAN_POINT ( 'NONE', ( 1.013263098148782015, 0.7515245305709852275, 7.807309615759736587 ) ) ;
#385 = PRODUCT_DEFINITION_SHAPE ( 'NONE', 'NONE', #265 ) ;
#386 = CARTESIAN_POINT ( 'NONE', ( 1.211377228074604240, 2.900070481132997813, -5.188344443036267073 ) ) ;
#387 = CARTESIAN_POINT ( 'NONE', ( 1.077796069496008258, 1.769344865796415922, 2.694556599918310091 ) ) ;
#388 = LINE ( 'NONE', #119, #353 ) ;
#389 = ORIENTED_EDGE ( 'NONE', *, *, #395, .T. ) ;
#390 = APPLICATION_PROTOCOL_DEFINITION ( 'draft international standard', 'automotive_design', 1998, #378 ) ;
#391 = VECTOR ( 'NONE', #328, 1000.000000000000000 ) ;
#392 = CARTESIAN_POINT ( 'NONE', ( 1.013263098148781793, 0.7515245305709828960, -2.192690384240322476 ) ) ;
#393 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000000888, 7.000000000000117240, 10.00000000000007816 ) ) ;
#394 = ORIENTED_EDGE ( 'NONE', *, *, #252, .F. ) ;
#395 = EDGE_CURVE ( 'NONE', #44, #29, #37, .T. ) ;
#396 = CARTESIAN_POINT ( 'NONE', ( 1.999999999999997335, 6.244997998398504890, 10.00000000000007816 ) ) ;
#397 = EDGE_LOOP ( 'NONE', ( #540, #288, #359, #141, #464, #2, #530, #12 ) ) ;
#398 = DIRECTION ( 'NONE', ( -1.000000000000000000, -6.565802712909606777E-26, 9.466330862652141665E-30 ) ) ;
#399 = VECTOR ( 'NONE', #179, 1000.000000000000000 ) ;
#400 = ORIENTED_EDGE ( 'NONE', *, *, #369, .T. ) ;
#401 = LINE ( 'NONE', #82, #419 ) ;
#402 = ORIENTED_EDGE ( 'NONE', *, *, #104, .T. ) ;
#403 = DIRECTION ( 'NONE', ( -1.000000000000000000, -6.565802712909606777E-26, 0.000000000000000000 ) ) ;
#404 = PLANE ( 'NONE', #566 ) ;
#405 = ORIENTED_EDGE ( 'NONE', *, *, #395, .F. ) ;
#406 = CARTESIAN_POINT ( 'NONE', ( 1.052229678524116974, -1.453158874364317121, 2.483143728707876363 ) ) ;
#407 = ORIENTED_EDGE ( 'NONE', *, *, #313, .F. ) ;
#408 = VECTOR ( 'NONE', #101, 1000.000000000000000 ) ;
#409 = DIRECTION ( 'NONE', ( -1.000000000000000000, 4.336808689285477401E-16, 9.466330862652141665E-30 ) ) ;
#410 = CARTESIAN_POINT ( 'NONE', ( 1.040509369047627031, -1.284244305237273176, -7.606990020442498945 ) ) ;
#411 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3,
( #379, #123, #483, #384, #432, #342, #563, #242, #22, #71, #339, #570, #476, #113, #481, #295, #520, #77, #206, #118, #111, #382, #251, #434, #67, #75, #387, #31, #290, #208, #559, #474, #152, #514 ),
.UNSPECIFIED., .F., .F.,
( 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 ),
( 2.011608682683055599E-20, 0.0005674180595977413276, 0.001134836119195482872, 0.001702254178793224416, 0.002269672238390966178, 0.002837090297988707505, 0.003404508357586448833, 0.003971926417184190594, 0.004539344476781931488, 0.005106762536379673249, 0.005674180595977414143, 0.006241598655575155905, 0.006809016715172896798, 0.007376434774770638560, 0.007943852834368379454, 0.008511270893966121215, 0.009078688953563861241 ),
.UNSPECIFIED. ) ;
#412 = ORIENTED_EDGE ( 'NONE', *, *, #195, .T. ) ;
#413 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#414 = CARTESIAN_POINT ( 'NONE', ( 1.158578488896881975, -2.515793758690810566, 3.545152909254105200 ) ) ;
#415 = VERTEX_POINT ( 'NONE', #396 ) ;
#416 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000005329, 0.000000000000000000, 7.900000000000078515 ) ) ;
#417 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 7.000000000000117240, -10.00000000000003908 ) ) ;
#418 = SHAPE_DEFINITION_REPRESENTATION ( #385, #48 ) ;
#419 = VECTOR ( 'NONE', #497, 1000.000000000000000 ) ;
#420 = ADVANCED_FACE ( 'NONE', ( #580 ), #174, .F. ) ;
#421 = FACE_BOUND ( 'NONE', #105, .T. ) ;
#422 = LINE ( 'NONE', #112, #256 ) ;
#423 = SURFACE_STYLE_FILL_AREA ( #223 ) ;
#424 = CARTESIAN_POINT ( 'NONE', ( 1.133037558959462565, -2.305434706040918158, -6.769397951253941947 ) ) ;
#425 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000004219, -6.899771907515579756E-23, 2.100000000000029843 ) ) ;
#426 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#427 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000004441, -1.313167051637360128E-24, -10.00000000000005862 ) ) ;
#428 = CARTESIAN_POINT ( 'NONE', ( 1.197916439904868291, 2.806938615793707736, -4.246642909114494380 ) ) ;
#429 = VECTOR ( 'NONE', #224, 1000.000000000000000 ) ;
#430 = CARTESIAN_POINT ( 'NONE', ( 1.211385526473540475, -2.900127106664406984, -4.810259399076017850 ) ) ;
#431 = CARTESIAN_POINT ( 'NONE', ( 1.189989376409344768, 2.751146621874756448, -4.063593637064299990 ) ) ;
#432 = CARTESIAN_POINT ( 'NONE', ( 1.021134131335210693, 0.9358593976546381032, 7.751416328777946951 ) ) ;
#433 = DIRECTION ( 'NONE', ( 1.224646798490764308E-16, -1.000000000000000000, -6.508092473959024494E-31 ) ) ;
#434 = CARTESIAN_POINT ( 'NONE', ( 1.133103134302109405, 2.305988130372857547, 3.231365970146301780 ) ) ;
#435 = LINE ( 'NONE', #248, #554 ) ;
#436 = AXIS2_PLACEMENT_3D ( 'NONE', #236, #322, #57 ) ;
#437 = CARTESIAN_POINT ( 'NONE', ( 21.00000000000000000, 0.000000000000000000, -10.00000000000005862 ) ) ;
#438 = ORIENTED_EDGE ( 'NONE', *, *, #341, .F. ) ;
#439 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3,
( #232, #106, #367, #452, #13, #550, #406, #7, #96, #185, #460, #414, #150, #321, #51, #465, #100, #364, #192, #190, #507, #11, #188, #511, #374, #547, #142, #235, #278, #63, #319, #58, #146, #556 ),
.UNSPECIFIED., .F., .F.,
( 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 ),
( 0.009078688953563861241, 0.009645968560652968052, 0.01021324816774207660, 0.01078052777483118341, 0.01134780738192029195, 0.01191508698900939876, 0.01248236659609850557, 0.01304964620318761412, 0.01361692581027671919, 0.01418420541736582600, 0.01475148502445493282, 0.01531876463154403963, 0.01588604423863314644, 0.01645332384572225498, 0.01702060345281136006, 0.01758788305990047207, 0.01815516266698957715 ),
.UNSPECIFIED. ) ;
#440 = DIRECTION ( 'NONE', ( -9.269115636346818649E-30, 6.509055438931217236E-31, 1.000000000000000000 ) ) ;
#441 = EDGE_CURVE ( 'NONE', #182, #447, #439, .T. ) ;
#442 = EDGE_LOOP ( 'NONE', ( #262, #210, #493, #137, #565, #128, #402, #394 ) ) ;
#443 = DIRECTION ( 'NONE', ( 9.466330862652141665E-30, 6.509055438931218112E-31, 1.000000000000000000 ) ) ;
#444 = ORIENTED_EDGE ( 'NONE', *, *, #545, .T. ) ;
#445 = DIRECTION ( 'NONE', ( 9.269115636346818649E-30, -6.509055438931217236E-31, -1.000000000000000000 ) ) ;
#446 = AXIS2_PLACEMENT_3D ( 'NONE', #308, #494, #440 ) ;
#447 = VERTEX_POINT ( 'NONE', #416 ) ;
#448 = LINE ( 'NONE', #94, #314 ) ;
#449 = ADVANCED_FACE ( 'NONE', ( #421, #463, #370 ), #61, .F. ) ;
#450 = CARTESIAN_POINT ( 'NONE', ( 21.00000000000000000, 0.000000000000000000, -10.00000000000005862 ) ) ;
#451 = EDGE_LOOP ( 'NONE', ( #405, #569, #491, #214, #151, #90, #157 ) ) ;
#452 = CARTESIAN_POINT ( 'NONE', ( 1.013280555943153916, -0.7524488686545980354, 2.192810726461508430 ) ) ;
#453 = ORIENTED_EDGE ( 'NONE', *, *, #298, .T. ) ;
#454 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( .MILLI., .METRE. ) );
#455 = DIRECTION ( 'NONE', ( -1.000000000000000000, 3.446461345128720556E-15, 9.466330862652141665E-30 ) ) ;
#456 = LINE ( 'NONE', #330, #391 ) ;
#457 = CIRCLE ( 'NONE', #129, 2.900000000000021672 ) ;
#458 = PRESENTATION_LAYER_ASSIGNMENT ( '', '', ( #332 ) ) ;
#459 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#460 = CARTESIAN_POINT ( 'NONE', ( 1.133037558959465674, -2.305434706040918158, 3.230602048746117561 ) ) ;
#461 = EDGE_CURVE ( 'NONE', #182, #581, #274, .T. ) ;
#462 = ORIENTED_EDGE ( 'NONE', *, *, #110, .F. ) ;
#463 = FACE_BOUND ( 'NONE', #259, .T. ) ;
#464 = ORIENTED_EDGE ( 'NONE', *, *, #109, .F. ) ;
#465 = CARTESIAN_POINT ( 'NONE', ( 1.208537156232738274, -2.880867423002855698, 4.617461895644574099 ) ) ;
#466 = FACE_OUTER_BOUND ( 'NONE', #397, .T. ) ;
#467 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ;
#468 = AXIS2_PLACEMENT_3D ( 'NONE', #346, #349, #403 ) ;
#469 = ADVANCED_FACE ( 'NONE', ( #324 ), #282, .F. ) ;
#470 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #200 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #454, #537, #53 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#471 = CARTESIAN_POINT ( 'NONE', ( 1.158578488896881975, -2.515793758690810566, -6.454847090745953864 ) ) ;
#472 = CARTESIAN_POINT ( 'NONE', ( 1.002777986724787462, 0.3817967870284947329, -7.881013912248518771 ) ) ;
#473 = APPLICATION_CONTEXT ( 'automotive_design' ) ;
#474 = CARTESIAN_POINT ( 'NONE', ( 1.002777986724788795, 0.3817967870284926790, 2.118986087751539849 ) ) ;
#475 = CARTESIAN_POINT ( 'NONE', ( 1.077717860131251815, 1.768517344931938906, -2.693869011091920562 ) ) ;
#476 = CARTESIAN_POINT ( 'NONE', ( 1.170434743757137630, 2.606467032255219696, 6.285299273074622661 ) ) ;
#477 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000004441, -1.313160542581921172E-24, 10.00000000000005862 ) ) ;
#478 = ADVANCED_FACE ( 'NONE', ( #280 ), #17, .F. ) ;
#479 = PRODUCT ( '12600011', '12600011', '', ( #158 ) ) ;
#480 = CIRCLE ( 'NONE', #99, 19.99999999999999289 ) ;
#481 = CARTESIAN_POINT ( 'NONE', ( 1.197916439904865404, 2.806938615793708180, 5.753357090885563352 ) ) ;
#482 = DIRECTION ( 'NONE', ( 9.269115636346818649E-30, -6.509055438931217236E-31, -1.000000000000000000 ) ) ;
#483 = CARTESIAN_POINT ( 'NONE', ( 1.002758800380383120, 0.3805069094076524716, 7.881144024633281120 ) ) ;
#484 = CARTESIAN_POINT ( 'NONE', ( 1.052256556417503708, 1.453447889974005092, -2.483378660096562385 ) ) ;
#485 = EDGE_CURVE ( 'NONE', #218, #581, #95, .T. ) ;
#486 = DIRECTION ( 'NONE', ( -4.336808689285477401E-16, -1.000000000000000000, -6.513388781306084137E-31 ) ) ;
#487 = DIRECTION ( 'NONE', ( 1.000000000000000000, 6.565802712909606777E-26, -9.466330862652141665E-30 ) ) ;
#488 = EDGE_CURVE ( 'NONE', #447, #182, #411, .T. ) ;
#489 = VECTOR ( 'NONE', #130, 1000.000000000000000 ) ;
#490 = CARTESIAN_POINT ( 'NONE', ( -2.745235950171453180E-29, 3.551475717928236256E-16, -7.900000000000028777 ) ) ;
#491 = ORIENTED_EDGE ( 'NONE', *, *, #30, .F. ) ;
#492 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000002665, -7.000000000000002665, 10.00000000000007816 ) ) ;
#493 = ORIENTED_EDGE ( 'NONE', *, *, #488, .T. ) ;
#494 = DIRECTION ( 'NONE', ( -1.000000000000000000, -6.565802712909606777E-26, 9.466330862652141665E-30 ) ) ;
#495 = VERTEX_POINT ( 'NONE', #69 ) ;
#496 = SURFACE_SIDE_STYLE ('',( #183 ) ) ;
#497 = DIRECTION ( 'NONE', ( 5.744102241837526037E-15, 1.000000000000000000, 6.513388781306040347E-31 ) ) ;
#498 = ORIENTED_EDGE ( 'NONE', *, *, #234, .T. ) ;
#499 = COLOUR_RGB ( '',0.7921568627450980005, 0.8196078431372548767, 0.9333333333333333481 ) ;
#500 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000006217, -6.244997998398404526, 10.00000000000007816 ) ) ;
#501 = DIRECTION ( 'NONE', ( 9.269115636346818649E-30, -6.509055438931217236E-31, -1.000000000000000000 ) ) ;
#502 = VERTEX_POINT ( 'NONE', #244 ) ;
#503 = CARTESIAN_POINT ( 'NONE', ( 1.999999999999999112, 7.000000000000117240, -10.00000000000004086 ) ) ;
#504 = DIRECTION ( 'NONE', ( -9.269115636346818649E-30, 6.509055438931217236E-31, 1.000000000000000000 ) ) ;
#505 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 7.000000000000117240, 10.00000000000007994 ) ) ;
#506 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#507 = CARTESIAN_POINT ( 'NONE', ( 1.190119196357802833, -2.752089387394693887, 5.933846005847905225 ) ) ;
#508 = DIRECTION ( 'NONE', ( 1.000000000000000000, 6.565802712909607925E-26, 0.000000000000000000 ) ) ;
#509 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000000888, 7.000000000000117240, 10.00000000000007816 ) ) ;
#510 = ORIENTED_EDGE ( 'NONE', *, *, #234, .F. ) ;
#511 = CARTESIAN_POINT ( 'NONE', ( 1.133284157695420680, -2.307557648718655763, 6.766663084566620689 ) ) ;
#512 = VERTEX_POINT ( 'NONE', #427 ) ;
#513 = SURFACE_SIDE_STYLE ('',( #423 ) ) ;
#514 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000004219, -6.899771907515579756E-23, 2.100000000000029843 ) ) ;
#515 = ORIENTED_EDGE ( 'NONE', *, *, #261, .F. ) ;
#516 = CARTESIAN_POINT ( 'NONE', ( 1.170477829490441879, -2.606803394963240095, -3.715227483615648474 ) ) ;
#517 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000004441, 0.1918819484234041139, -2.100000000000022293 ) ) ;
#518 = CARTESIAN_POINT ( 'NONE', ( 1.091489434568259531, -1.915536973412237609, -7.185507182845607410 ) ) ;
#519 = CARTESIAN_POINT ( 'NONE', ( 1.119216967465734847, 2.184603567630820642, -3.083441417796536577 ) ) ;
#520 = CARTESIAN_POINT ( 'NONE', ( 1.211356511054558327, 2.899929115085452480, 5.190508667102918139 ) ) ;
#521 = CARTESIAN_POINT ( 'NONE', ( 2.000000000000000888, -7.000000000000002665, -10.00000000000004086 ) ) ;
#522 = VECTOR ( 'NONE', #433, 1000.000000000000000 ) ;
#523 = CARTESIAN_POINT ( 'NONE', ( 1.198052156150384295, -2.807889211821545494, -4.250644062092180597 ) ) ;
#524 = CARTESIAN_POINT ( 'NONE', ( 1.197921579145534654, 2.806972390867914502, -5.752930084450074588 ) ) ;
#525 = ADVANCED_FACE ( 'NONE', ( #318 ), #168, .F. ) ;
#526 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 7.000000000000117240, -10.00000000000003908 ) ) ;
#527 = CARTESIAN_POINT ( 'NONE', ( 1.013349974533516606, 0.7539746642458204917, -7.806694168382120047 ) ) ;
#528 = ADVANCED_FACE ( 'NONE', ( #135 ), #45, .F. ) ;
#529 = CARTESIAN_POINT ( 'NONE', ( 21.00000000000000000, 0.000000000000000000, 10.00000000000005862 ) ) ;
#530 = ORIENTED_EDGE ( 'NONE', *, *, #461, .F. ) ;
#531 = CIRCLE ( 'NONE', #42, 19.99999999999999289 ) ;
#532 = CARTESIAN_POINT ( 'NONE', ( -2.688043534540597391E-29, 1.887626077290066985E-30, -2.100000000000008082 ) ) ;
#533 = VERTEX_POINT ( 'NONE', #503 ) ;
#534 = EDGE_CURVE ( 'NONE', #307, #18, #448, .T. ) ;
#535 = CARTESIAN_POINT ( 'NONE', ( 2.688043534538266191E-29, 3.551475717527332707E-16, 2.100000000000008082 ) ) ;
#536 = EDGE_LOOP ( 'NONE', ( #309, #317, #544, #269 ) ) ;
#537 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#538 = LINE ( 'NONE', #358, #54 ) ;
#539 = PRODUCT_RELATED_PRODUCT_CATEGORY ( 'part', '', ( #479 ) ) ;
#540 = ORIENTED_EDGE ( 'NONE', *, *, #213, .F. ) ;
#541 = LINE ( 'NONE', #526, #34 ) ;
#542 = DIRECTION ( 'NONE', ( 1.000000000000000000, 6.565802712909607925E-26, 0.000000000000000000 ) ) ;
#543 = AXIS2_PLACEMENT_3D ( 'NONE', #194, #376, #140 ) ;
#544 = ORIENTED_EDGE ( 'NONE', *, *, #46, .F. ) ;
#545 = EDGE_CURVE ( 'NONE', #533, #44, #541, .T. ) ;
#546 = FILL_AREA_STYLE ('',( #254 ) ) ;
#547 = CARTESIAN_POINT ( 'NONE', ( 1.091785109623155448, -1.918585440995612679, 7.182814723751592467 ) ) ;
#548 = VERTEX_POINT ( 'NONE', #35 ) ;
#549 = DIRECTION ( 'NONE', ( -1.000000000000000000, -6.565802712909606777E-26, 9.466330862652141665E-30 ) ) ;
#550 = CARTESIAN_POINT ( 'NONE', ( 1.040509369047628363, -1.284244305237272066, 2.393009979557559230 ) ) ;
#551 = LINE ( 'NONE', #147, #408 ) ;
#552 = DIRECTION ( 'NONE', ( -1.224646798490764308E-16, 1.000000000000000000, 6.508092473959025369E-31 ) ) ;
#553 = ORIENTED_EDGE ( 'NONE', *, *, #252, .T. ) ;
#554 = VECTOR ( 'NONE', #482, 1000.000000000000000 ) ;
#555 = COLOUR_RGB ( '',0.7921568627450980005, 0.8196078431372548767, 0.9333333333333333481 ) ;
#556 = CARTESIAN_POINT ( 'NONE', ( 1.000000000000005329, 0.000000000000000000, 7.900000000000078515 ) ) ;
#557 = DIRECTION ( 'NONE', ( -9.269115636346818649E-30, 6.509055438931217236E-31, 1.000000000000000000 ) ) ;
#558 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#559 = CARTESIAN_POINT ( 'NONE', ( 1.013349974533517273, 0.7539746642458188264, 2.193305831617939461 ) ) ;
#560 = MANIFOLD_SOLID_BREP ( 'Dégagement M51', #167 ) ;
#561 = ADVANCED_FACE ( 'NONE', ( #310 ), #187, .F. ) ;
#562 = CYLINDRICAL_SURFACE ( 'NONE', #237, 19.99999999999999645 ) ;
#563 = CARTESIAN_POINT ( 'NONE', ( 1.052256556417502820, 1.453447889974005536, 7.516621339903498011 ) ) ;
#564 = CARTESIAN_POINT ( 'NONE', ( 21.00000000000000000, 0.000000000000000000, 10.00000000000005862 ) ) ;
#565 = ORIENTED_EDGE ( 'NONE', *, *, #161, .T. ) ;
#566 = AXIS2_PLACEMENT_3D ( 'NONE', #529, #443, #306 ) ;
#567 = CARTESIAN_POINT ( 'NONE', ( 1.208537156232742715, -2.880867423002856587, -5.382538104355484521 ) ) ;
#568 = FACE_OUTER_BOUND ( 'NONE', #85, .T. ) ;
#569 = ORIENTED_EDGE ( 'NONE', *, *, #545, .F. ) ;
#570 = CARTESIAN_POINT ( 'NONE', ( 1.158669802208733390, 2.516548655156691794, 6.453731764438930263 ) ) ;
#571 = CARTESIAN_POINT ( 'NONE', ( 1.132930861937689215, 2.304553105269332214, -3.229297268962695089 ) ) ;
#572 = CARTESIAN_POINT ( 'NONE', ( 1.091785109623155670, -1.918585440995613123, -2.817185276248467041 ) ) ;
#573 = CARTESIAN_POINT ( 'NONE', ( 1.208625607444980377, 2.881478330222419171, -4.621141277413321369 ) ) ;
#574 = EDGE_CURVE ( 'NONE', #281, #502, #277, .T. ) ;
#575 = VECTOR ( 'NONE', #501, 1000.000000000000000 ) ;
#576 = CARTESIAN_POINT ( 'NONE', ( 1.170448483663788730, 2.606583613593465465, -6.285259428146082072 ) ) ;
#577 = SURFACE_STYLE_USAGE ( .BOTH. , #496 ) ;
#578 = CARTESIAN_POINT ( 'NONE', ( 1.734723475976807094E-15, -7.000000000000002665, -10.00000000000003908 ) ) ;
#579 = ORIENTED_EDGE ( 'NONE', *, *, #313, .T. ) ;
#580 = FACE_OUTER_BOUND ( 'NONE', #87, .T. ) ;
#581 = VERTEX_POINT ( 'NONE', #211 ) ;
#582 = LINE ( 'NONE', #535, #399 ) ;
#583 = ORIENTED_EDGE ( 'NONE', *, *, #145, .T. ) ;
ENDSEC;
END-ISO-10303-21;

219
matlab/STEPS/ruler.STEP Normal file
View File

@ -0,0 +1,219 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION (( 'STEP AP214' ),
'1' );
FILE_NAME ('ruler.STEP',
'2021-03-15T16:49:40',
( '' ),
( '' ),
'SwSTEP 2.0',
'SolidWorks 2020',
'' );
FILE_SCHEMA (( 'AUTOMOTIVE_DESIGN' ));
ENDSEC;
DATA;
#1 = APPLICATION_CONTEXT ( 'automotive_design' ) ;
#2 = LINE ( 'NONE', #82, #97 ) ;
#3 = PRESENTATION_LAYER_ASSIGNMENT ( '', '', ( #9 ) ) ;
#4 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( .MILLI., .METRE. ) );
#5 = PRODUCT_DEFINITION_CONTEXT ( 'detailed design', #141, 'design' ) ;
#6 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION ( '', ( #178 ), #180 ) ;
#7 = EDGE_CURVE ( 'NONE', #93, #60, #37, .T. ) ;
#8 = APPLICATION_PROTOCOL_DEFINITION ( 'draft international standard', 'automotive_design', 1998, #1 ) ;
#9 = STYLED_ITEM ( 'NONE', ( #138 ), #149 ) ;
#10 = DIRECTION ( 'NONE', ( 1.156482317317871478E-16, 0.000000000000000000, 1.000000000000000000 ) ) ;
#11 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ;
#12 = EDGE_LOOP ( 'NONE', ( #15, #199, #67, #50 ) ) ;
#13 = APPLICATION_PROTOCOL_DEFINITION ( 'draft international standard', 'automotive_design', 1998, #141 ) ;
#14 = VECTOR ( 'NONE', #163, 1000.000000000000000 ) ;
#15 = ORIENTED_EDGE ( 'NONE', *, *, #165, .T. ) ;
#16 = SURFACE_SIDE_STYLE ('',( #90 ) ) ;
#17 = EDGE_LOOP ( 'NONE', ( #78, #45, #174, #47 ) ) ;
#18 = CARTESIAN_POINT ( 'NONE', ( -3.000000000000001776, 0.1499999999999999944, -15.00000000000000000 ) ) ;
#19 = VERTEX_POINT ( 'NONE', #58 ) ;
#20 = FACE_OUTER_BOUND ( 'NONE', #198, .T. ) ;
#21 = AXIS2_PLACEMENT_3D ( 'NONE', #200, #119, #31 ) ;
#22 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, -0.000000000000000000 ) ) ;
#23 = CARTESIAN_POINT ( 'NONE', ( 2.999999999999998224, 0.1499999999999999944, -15.00000000000000000 ) ) ;
#24 = VECTOR ( 'NONE', #42, 1000.000000000000000 ) ;
#25 = VECTOR ( 'NONE', #201, 1000.000000000000000 ) ;
#26 = PLANE ( 'NONE', #100 ) ;
#27 = EDGE_CURVE ( 'NONE', #137, #93, #120, .T. ) ;
#28 = CARTESIAN_POINT ( 'NONE', ( 2.999999999999998224, 0.1499999999999999944, -15.00000000000000000 ) ) ;
#29 = FACE_OUTER_BOUND ( 'NONE', #195, .T. ) ;
#30 = ORIENTED_EDGE ( 'NONE', *, *, #84, .T. ) ;
#31 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.000000000000000000, 1.000000000000000000 ) ) ;
#32 = ORIENTED_EDGE ( 'NONE', *, *, #70, .F. ) ;
#33 = SHAPE_DEFINITION_REPRESENTATION ( #88, #142 ) ;
#34 = LINE ( 'NONE', #176, #187 ) ;
#35 = ORIENTED_EDGE ( 'NONE', *, *, #7, .F. ) ;
#36 = DIRECTION ( 'NONE', ( -0.000000000000000000, -1.000000000000000000, -0.000000000000000000 ) ) ;
#37 = LINE ( 'NONE', #57, #167 ) ;
#38 = PRODUCT_RELATED_PRODUCT_CATEGORY ( 'part', '', ( #40 ) ) ;
#39 = CARTESIAN_POINT ( 'NONE', ( -2.999999999999998224, 0.1499999999999999944, 15.00000000000000000 ) ) ;
#40 = PRODUCT ( 'ruler', 'ruler', '', ( #77 ) ) ;
#41 = PLANE ( 'NONE', #48 ) ;
#42 = DIRECTION ( 'NONE', ( 1.156482317317871478E-16, 0.000000000000000000, 1.000000000000000000 ) ) ;
#43 = FILL_AREA_STYLE_COLOUR ( '', #66 ) ;
#44 = CARTESIAN_POINT ( 'NONE', ( -3.000000000000001776, 0.1499999999999999944, -15.00000000000000000 ) ) ;
#45 = ORIENTED_EDGE ( 'NONE', *, *, #99, .F. ) ;
#46 = DIRECTION ( 'NONE', ( 1.156482317317871478E-16, 0.000000000000000000, 1.000000000000000000 ) ) ;
#47 = ORIENTED_EDGE ( 'NONE', *, *, #194, .T. ) ;
#48 = AXIS2_PLACEMENT_3D ( 'NONE', #56, #114, #22 ) ;
#49 = ADVANCED_FACE ( 'NONE', ( #181 ), #170, .F. ) ;
#50 = ORIENTED_EDGE ( 'NONE', *, *, #99, .T. ) ;
#51 = SURFACE_STYLE_USAGE ( .BOTH. , #80 ) ;
#52 = LINE ( 'NONE', #39, #14 ) ;
#53 = DIRECTION ( 'NONE', ( -0.000000000000000000, -1.000000000000000000, -0.000000000000000000 ) ) ;
#54 = CARTESIAN_POINT ( 'NONE', ( 3.000000000000001776, 0.1499999999999999944, 15.00000000000000000 ) ) ;
#55 = ADVANCED_FACE ( 'NONE', ( #179 ), #26, .F. ) ;
#56 = CARTESIAN_POINT ( 'NONE', ( -3.000000000000001776, 0.1499999999999999944, -15.00000000000000000 ) ) ;
#57 = CARTESIAN_POINT ( 'NONE', ( -3.000000000000001776, 0.000000000000000000, -15.00000000000000000 ) ) ;
#58 = CARTESIAN_POINT ( 'NONE', ( -2.999999999999998224, 0.1499999999999999944, 15.00000000000000000 ) ) ;
#59 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, -1.156482317317871478E-16 ) ) ;
#60 = VERTEX_POINT ( 'NONE', #132 ) ;
#61 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#62 = ADVANCED_FACE ( 'NONE', ( #29 ), #152, .F. ) ;
#63 = PLANE ( 'NONE', #156 ) ;
#64 = ORIENTED_EDGE ( 'NONE', *, *, #27, .F. ) ;
#65 = CARTESIAN_POINT ( 'NONE', ( 3.000000000000001776, 0.000000000000000000, 15.00000000000000000 ) ) ;
#66 = COLOUR_RGB ( '',0.7921568627450980005, 0.8196078431372548767, 0.9333333333333333481 ) ;
#67 = ORIENTED_EDGE ( 'NONE', *, *, #76, .F. ) ;
#68 = CARTESIAN_POINT ( 'NONE', ( -2.999999999999998224, 0.1499999999999999944, 15.00000000000000000 ) ) ;
#69 = COLOUR_RGB ( '',0.7921568627450980005, 0.8196078431372548767, 0.9333333333333333481 ) ;
#70 = EDGE_CURVE ( 'NONE', #19, #91, #110, .T. ) ;
#71 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( .MILLI., .METRE. ) );
#72 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.000000000000000000, 1.000000000000000000 ) ) ;
#73 = ORIENTED_EDGE ( 'NONE', *, *, #76, .T. ) ;
#74 = AXIS2_PLACEMENT_3D ( 'NONE', #131, #146, #144 ) ;
#75 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#76 = EDGE_CURVE ( 'NONE', #105, #19, #34, .T. ) ;
#77 = PRODUCT_CONTEXT ( 'NONE', #1, 'mechanical' ) ;
#78 = ORIENTED_EDGE ( 'NONE', *, *, #7, .T. ) ;
#79 = ORIENTED_EDGE ( 'NONE', *, *, #151, .F. ) ;
#80 = SURFACE_SIDE_STYLE ('',( #168 ) ) ;
#81 = DIRECTION ( 'NONE', ( -1.000000000000000000, -0.000000000000000000, -0.000000000000000000 ) ) ;
#82 = CARTESIAN_POINT ( 'NONE', ( 2.999999999999998224, 0.1499999999999999944, -15.00000000000000000 ) ) ;
#83 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #71, 'distance_accuracy_value', 'NONE');
#84 = EDGE_CURVE ( 'NONE', #19, #117, #52, .T. ) ;
#85 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#86 = LINE ( 'NONE', #23, #129 ) ;
#87 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 1.156482317317871478E-16 ) ) ;
#88 = PRODUCT_DEFINITION_SHAPE ( 'NONE', 'NONE', #143 ) ;
#89 = VERTEX_POINT ( 'NONE', #136 ) ;
#90 = SURFACE_STYLE_FILL_AREA ( #158 ) ;
#91 = VERTEX_POINT ( 'NONE', #160 ) ;
#92 = DIRECTION ( 'NONE', ( -1.156482317317871478E-16, 0.000000000000000000, -1.000000000000000000 ) ) ;
#93 = VERTEX_POINT ( 'NONE', #197 ) ;
#94 = DIRECTION ( 'NONE', ( -1.000000000000000000, -0.000000000000000000, -0.000000000000000000 ) ) ;
#95 = EDGE_CURVE ( 'NONE', #89, #105, #184, .T. ) ;
#96 = PLANE ( 'NONE', #21 ) ;
#97 = VECTOR ( 'NONE', #148, 1000.000000000000000 ) ;
#98 = CARTESIAN_POINT ( 'NONE', ( -3.000000000000001776, 0.000000000000000000, -15.00000000000000000 ) ) ;
#99 = EDGE_CURVE ( 'NONE', #105, #60, #109, .T. ) ;
#100 = AXIS2_PLACEMENT_3D ( 'NONE', #28, #87, #10 ) ;
#101 = VECTOR ( 'NONE', #36, 1000.000000000000000 ) ;
#102 = FILL_AREA_STYLE ('',( #43 ) ) ;
#103 = VECTOR ( 'NONE', #53, 1000.000000000000000 ) ;
#104 = LINE ( 'NONE', #98, #24 ) ;
#105 = VERTEX_POINT ( 'NONE', #18 ) ;
#106 = EDGE_LOOP ( 'NONE', ( #123, #155, #139, #134 ) ) ;
#107 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION ( '', ( #9 ), #186 ) ;
#108 = ORIENTED_EDGE ( 'NONE', *, *, #172, .F. ) ;
#109 = LINE ( 'NONE', #173, #101 ) ;
#110 = LINE ( 'NONE', #68, #126 ) ;
#111 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE ( 'ANY', '', #40, .NOT_KNOWN. ) ;
#112 = CLOSED_SHELL ( 'NONE', ( #55, #177, #130, #62, #113, #49 ) ) ;
#113 = ADVANCED_FACE ( 'NONE', ( #20 ), #96, .T. ) ;
#114 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ;
#115 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #4, 'distance_accuracy_value', 'NONE');
#116 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#117 = VERTEX_POINT ( 'NONE', #125 ) ;
#118 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ;
#119 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 0.000000000000000000 ) ) ;
#120 = LINE ( 'NONE', #161, #25 ) ;
#121 = CARTESIAN_POINT ( 'NONE', ( -3.000000000000001776, 0.1499999999999999944, -15.00000000000000000 ) ) ;
#122 = ORIENTED_EDGE ( 'NONE', *, *, #151, .T. ) ;
#123 = ORIENTED_EDGE ( 'NONE', *, *, #27, .T. ) ;
#124 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #83 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #71, #166, #116 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#125 = CARTESIAN_POINT ( 'NONE', ( -2.999999999999998224, 0.000000000000000000, 15.00000000000000000 ) ) ;
#126 = VECTOR ( 'NONE', #75, 1000.000000000000000 ) ;
#127 = CARTESIAN_POINT ( 'NONE', ( -2.999999999999998224, 0.000000000000000000, 15.00000000000000000 ) ) ;
#128 = LINE ( 'NONE', #54, #103 ) ;
#129 = VECTOR ( 'NONE', #147, 1000.000000000000000 ) ;
#130 = ADVANCED_FACE ( 'NONE', ( #154 ), #63, .F. ) ;
#131 = CARTESIAN_POINT ( 'NONE', ( -2.999999999999998224, 0.1499999999999999944, 15.00000000000000000 ) ) ;
#132 = CARTESIAN_POINT ( 'NONE', ( -3.000000000000001776, 0.000000000000000000, -15.00000000000000000 ) ) ;
#133 = AXIS2_PLACEMENT_3D ( 'NONE', #157, #118, #175 ) ;
#134 = ORIENTED_EDGE ( 'NONE', *, *, #172, .T. ) ;
#135 = AXIS2_PLACEMENT_3D ( 'NONE', #169, #11, #72 ) ;
#136 = CARTESIAN_POINT ( 'NONE', ( 2.999999999999998224, 0.1499999999999999944, -15.00000000000000000 ) ) ;
#137 = VERTEX_POINT ( 'NONE', #65 ) ;
#138 = PRESENTATION_STYLE_ASSIGNMENT (( #183 ) ) ;
#139 = ORIENTED_EDGE ( 'NONE', *, *, #188, .F. ) ;
#140 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( .MILLI., .METRE. ) );
#141 = APPLICATION_CONTEXT ( 'automotive_design' ) ;
#142 = ADVANCED_BREP_SHAPE_REPRESENTATION ( 'ruler', ( #149, #133 ), #124 ) ;
#143 = PRODUCT_DEFINITION ( 'UNKNOWN', '', #111, #5 ) ;
#144 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, -0.000000000000000000 ) ) ;
#145 = ORIENTED_EDGE ( 'NONE', *, *, #165, .F. ) ;
#146 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#147 = DIRECTION ( 'NONE', ( -1.156482317317871478E-16, -0.000000000000000000, -1.000000000000000000 ) ) ;
#148 = DIRECTION ( 'NONE', ( -0.000000000000000000, -1.000000000000000000, -0.000000000000000000 ) ) ;
#149 = MANIFOLD_SOLID_BREP ( 'Boss-Extrude1', #112 ) ;
#150 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#151 = EDGE_CURVE ( 'NONE', #117, #137, #164, .T. ) ;
#152 = PLANE ( 'NONE', #74 ) ;
#153 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#154 = FACE_OUTER_BOUND ( 'NONE', #12, .T. ) ;
#155 = ORIENTED_EDGE ( 'NONE', *, *, #194, .F. ) ;
#156 = AXIS2_PLACEMENT_3D ( 'NONE', #44, #59, #92 ) ;
#157 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#158 = FILL_AREA_STYLE ('',( #171 ) ) ;
#159 = ORIENTED_EDGE ( 'NONE', *, *, #188, .T. ) ;
#160 = CARTESIAN_POINT ( 'NONE', ( 3.000000000000001776, 0.1499999999999999944, 15.00000000000000000 ) ) ;
#161 = CARTESIAN_POINT ( 'NONE', ( 2.999999999999998224, 0.000000000000000000, -15.00000000000000000 ) ) ;
#162 = PRESENTATION_STYLE_ASSIGNMENT (( #51 ) ) ;
#163 = DIRECTION ( 'NONE', ( -0.000000000000000000, -1.000000000000000000, -0.000000000000000000 ) ) ;
#164 = LINE ( 'NONE', #127, #193 ) ;
#165 = EDGE_CURVE ( 'NONE', #60, #117, #104, .T. ) ;
#166 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#167 = VECTOR ( 'NONE', #94, 1000.000000000000000 ) ;
#168 = SURFACE_STYLE_FILL_AREA ( #102 ) ;
#169 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#170 = PLANE ( 'NONE', #135 ) ;
#171 = FILL_AREA_STYLE_COLOUR ( '', #69 ) ;
#172 = EDGE_CURVE ( 'NONE', #91, #137, #128, .T. ) ;
#173 = CARTESIAN_POINT ( 'NONE', ( -3.000000000000001776, 0.1499999999999999944, -15.00000000000000000 ) ) ;
#174 = ORIENTED_EDGE ( 'NONE', *, *, #95, .F. ) ;
#175 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#176 = CARTESIAN_POINT ( 'NONE', ( -3.000000000000001776, 0.1499999999999999944, -15.00000000000000000 ) ) ;
#177 = ADVANCED_FACE ( 'NONE', ( #192 ), #41, .F. ) ;
#178 = STYLED_ITEM ( 'NONE', ( #162 ), #142 ) ;
#179 = FACE_OUTER_BOUND ( 'NONE', #106, .T. ) ;
#180 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #190 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #140, #153, #61 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#181 = FACE_OUTER_BOUND ( 'NONE', #185, .T. ) ;
#182 = ORIENTED_EDGE ( 'NONE', *, *, #70, .T. ) ;
#183 = SURFACE_STYLE_USAGE ( .BOTH. , #16 ) ;
#184 = LINE ( 'NONE', #121, #191 ) ;
#185 = EDGE_LOOP ( 'NONE', ( #64, #79, #145, #35 ) ) ;
#186 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #115 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #4, #85, #150 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#187 = VECTOR ( 'NONE', #46, 1000.000000000000000 ) ;
#188 = EDGE_CURVE ( 'NONE', #91, #89, #86, .T. ) ;
#189 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#190 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #140, 'distance_accuracy_value', 'NONE');
#191 = VECTOR ( 'NONE', #81, 1000.000000000000000 ) ;
#192 = FACE_OUTER_BOUND ( 'NONE', #17, .T. ) ;
#193 = VECTOR ( 'NONE', #189, 1000.000000000000000 ) ;
#194 = EDGE_CURVE ( 'NONE', #89, #93, #2, .T. ) ;
#195 = EDGE_LOOP ( 'NONE', ( #122, #108, #32, #30 ) ) ;
#196 = ORIENTED_EDGE ( 'NONE', *, *, #95, .T. ) ;
#197 = CARTESIAN_POINT ( 'NONE', ( 2.999999999999998224, 0.000000000000000000, -15.00000000000000000 ) ) ;
#198 = EDGE_LOOP ( 'NONE', ( #159, #196, #73, #182 ) ) ;
#199 = ORIENTED_EDGE ( 'NONE', *, *, #84, .F. ) ;
#200 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.1499999999999999944, 0.000000000000000000 ) ) ;
#201 = DIRECTION ( 'NONE', ( -1.156482317317871478E-16, -0.000000000000000000, -1.000000000000000000 ) ) ;
#202 = PRESENTATION_LAYER_ASSIGNMENT ( '', '', ( #178 ) ) ;
ENDSEC;
END-ISO-10303-21;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,824 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION (( 'STEP AP214' ),
'1' );
FILE_NAME ('12600014.STEP',
'2021-03-15T09:39:58',
( '' ),
( '' ),
'SwSTEP 2.0',
'SolidWorks 2020',
'' );
FILE_SCHEMA (( 'AUTOMOTIVE_DESIGN' ));
ENDSEC;
DATA;
#1 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, -1.770125995894701079E-17 ) ) ;
#2 = DIRECTION ( 'NONE', ( -0.7071067811865475727, -0.7071067811865475727, 0.000000000000000000 ) ) ;
#3 = ORIENTED_EDGE ( 'NONE', *, *, #692, .F. ) ;
#4 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#5 = LINE ( 'NONE', #431, #131 ) ;
#6 = ORIENTED_EDGE ( 'NONE', *, *, #38, .F. ) ;
#7 = ADVANCED_FACE ( 'NONE', ( #764 ), #212, .F. ) ;
#8 = FACE_OUTER_BOUND ( 'NONE', #364, .T. ) ;
#9 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, 0.000000000000000000 ) ) ;
#10 = VECTOR ( 'NONE', #779, 1000.000000000000000 ) ;
#11 = AXIS2_PLACEMENT_3D ( 'NONE', #491, #4, #507 ) ;
#12 = EDGE_CURVE ( 'NONE', #794, #33, #479, .T. ) ;
#13 = ORIENTED_EDGE ( 'NONE', *, *, #340, .F. ) ;
#14 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #78 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #230, #573, #605 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#15 = FACE_BOUND ( 'NONE', #226, .T. ) ;
#16 = CARTESIAN_POINT ( 'NONE', ( -3.499999999999998668, 49.00000000000000000, -1.000000000000002665 ) ) ;
#17 = VERTEX_POINT ( 'NONE', #349 ) ;
#18 = VERTEX_POINT ( 'NONE', #43 ) ;
#19 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999995559, 19.00000000000000000, -4.500000000000000888 ) ) ;
#20 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999997335, 0.5000000000000004441, -4.000000000000001776 ) ) ;
#21 = EDGE_LOOP ( 'NONE', ( #748, #490 ) ) ;
#22 = LINE ( 'NONE', #781, #590 ) ;
#23 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #551, 'distance_accuracy_value', 'NONE');
#24 = CARTESIAN_POINT ( 'NONE', ( 3.000000000000001776, 12.99999999999999822, -4.000000000000001776 ) ) ;
#25 = ORIENTED_EDGE ( 'NONE', *, *, #178, .T. ) ;
#26 = VECTOR ( 'NONE', #248, 1000.000000000000000 ) ;
#27 = VECTOR ( 'NONE', #157, 1000.000000000000000 ) ;
#28 = LINE ( 'NONE', #762, #757 ) ;
#29 = ADVANCED_FACE ( 'NONE', ( #51 ), #296, .F. ) ;
#30 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#31 = ORIENTED_EDGE ( 'NONE', *, *, #351, .T. ) ;
#32 = PLANE ( 'NONE', #602 ) ;
#33 = VERTEX_POINT ( 'NONE', #796 ) ;
#34 = ORIENTED_EDGE ( 'NONE', *, *, #700, .F. ) ;
#35 = APPLICATION_CONTEXT ( 'automotive_design' ) ;
#36 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#37 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 0.5000000000000004441, 0.000000000000000000 ) ) ;
#38 = EDGE_CURVE ( 'NONE', #396, #581, #358, .T. ) ;
#39 = VERTEX_POINT ( 'NONE', #475 ) ;
#40 = VECTOR ( 'NONE', #228, 1000.000000000000000 ) ;
#41 = CIRCLE ( 'NONE', #390, 1.699999999999998845 ) ;
#42 = CARTESIAN_POINT ( 'NONE', ( 1.700000000000001954, 13.00000000000000178, -2.000000000000001776 ) ) ;
#43 = CARTESIAN_POINT ( 'NONE', ( 3.000000000000001332, 12.99999999999999822, -2.000000000000001776 ) ) ;
#44 = EDGE_LOOP ( 'NONE', ( #75, #412 ) ) ;
#45 = FACE_OUTER_BOUND ( 'NONE', #593, .T. ) ;
#46 = EDGE_CURVE ( 'NONE', #388, #581, #242, .T. ) ;
#47 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#48 = VERTEX_POINT ( 'NONE', #719 ) ;
#49 = EDGE_CURVE ( 'NONE', #672, #632, #603, .T. ) ;
#50 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#51 = FACE_OUTER_BOUND ( 'NONE', #165, .T. ) ;
#52 = VERTEX_POINT ( 'NONE', #362 ) ;
#53 = APPLICATION_PROTOCOL_DEFINITION ( 'draft international standard', 'automotive_design', 1998, #35 ) ;
#54 = VECTOR ( 'NONE', #563, 1000.000000000000114 ) ;
#55 = AXIS2_PLACEMENT_3D ( 'NONE', #799, #381, #505 ) ;
#56 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#57 = ADVANCED_FACE ( 'NONE', ( #666 ), #553, .F. ) ;
#58 = LINE ( 'NONE', #611, #511 ) ;
#59 = ORIENTED_EDGE ( 'NONE', *, *, #692, .T. ) ;
#60 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#61 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, -1.275531967630005153E-17 ) ) ;
#62 = ORIENTED_EDGE ( 'NONE', *, *, #620, .T. ) ;
#63 = CARTESIAN_POINT ( 'NONE', ( -2.000000000000001776, 49.00000000000000000, -4.000000000000001776 ) ) ;
#64 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999999112, 48.50000000000000000, -4.499999999999999112 ) ) ;
#65 = VERTEX_POINT ( 'NONE', #675 ) ;
#66 = EDGE_CURVE ( 'NONE', #249, #687, #58, .T. ) ;
#67 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ;
#68 = AXIS2_PLACEMENT_3D ( 'NONE', #724, #170, #299 ) ;
#69 = VECTOR ( 'NONE', #1, 1000.000000000000000 ) ;
#70 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#71 = ORIENTED_EDGE ( 'NONE', *, *, #730, .F. ) ;
#72 = ADVANCED_FACE ( 'NONE', ( #291 ), #540, .F. ) ;
#73 = DIRECTION ( 'NONE', ( 0.000000000000000000, -7.653191805780032459E-17, 1.000000000000000000 ) ) ;
#74 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#75 = ORIENTED_EDGE ( 'NONE', *, *, #575, .T. ) ;
#76 = DIRECTION ( 'NONE', ( 0.000000000000000000, -7.653191805780032459E-17, 1.000000000000000000 ) ) ;
#77 = EDGE_CURVE ( 'NONE', #617, #84, #548, .T. ) ;
#78 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #230, 'distance_accuracy_value', 'NONE');
#79 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#80 = ORIENTED_EDGE ( 'NONE', *, *, #150, .T. ) ;
#81 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 7.653191805780032459E-17 ) ) ;
#82 = AXIS2_PLACEMENT_3D ( 'NONE', #449, #2, #680 ) ;
#83 = VECTOR ( 'NONE', #259, 1000.000000000000000 ) ;
#84 = VERTEX_POINT ( 'NONE', #793 ) ;
#85 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #23 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #551, #428, #187 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#86 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#87 = FACE_OUTER_BOUND ( 'NONE', #550, .T. ) ;
#88 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#89 = EDGE_CURVE ( 'NONE', #517, #18, #458, .T. ) ;
#90 = PLANE ( 'NONE', #403 ) ;
#91 = ORIENTED_EDGE ( 'NONE', *, *, #171, .F. ) ;
#92 = ADVANCED_FACE ( 'NONE', ( #233 ), #733, .T. ) ;
#93 = LINE ( 'NONE', #19, #338 ) ;
#94 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#95 = EDGE_LOOP ( 'NONE', ( #655, #706 ) ) ;
#96 = AXIS2_PLACEMENT_3D ( 'NONE', #354, #716, #181 ) ;
#97 =( GEOMETRIC_REPRESENTATION_CONTEXT ( 3 ) GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT ( ( #294 ) ) GLOBAL_UNIT_ASSIGNED_CONTEXT ( ( #206, #524, #520 ) ) REPRESENTATION_CONTEXT ( 'NONE', 'WORKASPACE' ) );
#98 = LINE ( 'NONE', #265, #549 ) ;
#99 = ORIENTED_EDGE ( 'NONE', *, *, #12, .F. ) ;
#100 = CARTESIAN_POINT ( 'NONE', ( 4.336808689942017736E-15, 4.000000000000000000, -4.000000000000001776 ) ) ;
#101 = EDGE_CURVE ( 'NONE', #33, #388, #164, .T. ) ;
#102 = CARTESIAN_POINT ( 'NONE', ( 4.000000000000000888, 48.50000000000000711, 0.000000000000000000 ) ) ;
#103 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#104 = LINE ( 'NONE', #536, #10 ) ;
#105 = ORIENTED_EDGE ( 'NONE', *, *, #509, .F. ) ;
#106 = VECTOR ( 'NONE', #375, 1000.000000000000114 ) ;
#107 = AXIS2_PLACEMENT_3D ( 'NONE', #123, #361, #562 ) ;
#108 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, -5.782411586589357392E-17 ) ) ;
#109 = CARTESIAN_POINT ( 'NONE', ( 1.734723475976807094E-15, 12.99999999999999822, -2.000000000000001776 ) ) ;
#110 = ORIENTED_EDGE ( 'NONE', *, *, #410, .F. ) ;
#111 = FILL_AREA_STYLE ('',( #306 ) ) ;
#112 = CARTESIAN_POINT ( 'NONE', ( 1.700000000000003064, 4.000000000000000000, 0.000000000000000000 ) ) ;
#113 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 1.219727444046192488E-16 ) ) ;
#114 = ORIENTED_EDGE ( 'NONE', *, *, #12, .T. ) ;
#115 = EDGE_CURVE ( 'NONE', #258, #565, #407, .T. ) ;
#116 = FACE_OUTER_BOUND ( 'NONE', #528, .T. ) ;
#117 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, 1.275531967630005153E-17 ) ) ;
#118 = EDGE_LOOP ( 'NONE', ( #698, #476, #266, #530, #532, #635 ) ) ;
#119 = VECTOR ( 'NONE', #79, 1000.000000000000000 ) ;
#120 = LINE ( 'NONE', #194, #83 ) ;
#121 = FACE_OUTER_BOUND ( 'NONE', #118, .T. ) ;
#122 = ORIENTED_EDGE ( 'NONE', *, *, #410, .T. ) ;
#123 = CARTESIAN_POINT ( 'NONE', ( 1.734723475976807094E-15, 12.99999999999999822, -4.000000000000001776 ) ) ;
#124 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 0.5000000000000004441, -4.000000000000001776 ) ) ;
#125 = EDGE_CURVE ( 'NONE', #134, #52, #598, .T. ) ;
#126 = ORIENTED_EDGE ( 'NONE', *, *, #340, .T. ) ;
#127 = SURFACE_SIDE_STYLE ('',( #310 ) ) ;
#128 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#129 = VERTEX_POINT ( 'NONE', #659 ) ;
#130 = CARTESIAN_POINT ( 'NONE', ( 3.500000000000006217, 49.00000000000000000, -4.000000000000001776 ) ) ;
#131 = VECTOR ( 'NONE', #203, 1000.000000000000000 ) ;
#132 = VECTOR ( 'NONE', #798, 1000.000000000000000 ) ;
#133 = CARTESIAN_POINT ( 'NONE', ( 1.734723475976807094E-15, 12.99999999999999822, -4.000000000000001776 ) ) ;
#134 = VERTEX_POINT ( 'NONE', #286 ) ;
#135 = EDGE_CURVE ( 'NONE', #760, #134, #104, .T. ) ;
#136 = CARTESIAN_POINT ( 'NONE', ( 1.734723475976807094E-15, 12.99999999999999822, 0.000000000000000000 ) ) ;
#137 = FACE_OUTER_BOUND ( 'NONE', #576, .T. ) ;
#138 = ORIENTED_EDGE ( 'NONE', *, *, #421, .T. ) ;
#139 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#140 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#141 = ORIENTED_EDGE ( 'NONE', *, *, #652, .F. ) ;
#142 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, 0.000000000000000000 ) ) ;
#143 = LINE ( 'NONE', #387, #264 ) ;
#144 = AXIS2_PLACEMENT_3D ( 'NONE', #805, #754, #128 ) ;
#145 = VECTOR ( 'NONE', #625, 1000.000000000000000 ) ;
#146 = ORIENTED_EDGE ( 'NONE', *, *, #429, .T. ) ;
#147 = ORIENTED_EDGE ( 'NONE', *, *, #372, .F. ) ;
#148 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#149 = FACE_BOUND ( 'NONE', #584, .T. ) ;
#150 = EDGE_CURVE ( 'NONE', #565, #48, #568, .T. ) ;
#151 = VERTEX_POINT ( 'NONE', #508 ) ;
#152 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999999112, 48.50000000000000000, -4.000000000000001776 ) ) ;
#153 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#154 = ORIENTED_EDGE ( 'NONE', *, *, #723, .F. ) ;
#155 = EDGE_CURVE ( 'NONE', #711, #392, #483, .T. ) ;
#156 = EDGE_CURVE ( 'NONE', #541, #760, #308, .T. ) ;
#157 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#158 = CLOSED_SHELL ( 'NONE', ( #464, #333, #546, #162, #360, #57, #745, #270, #561, #377, #7, #92, #500, #751, #29, #231, #489, #713, #788, #197, #72, #480, #633, #318, #473 ) ) ;
#159 = ORIENTED_EDGE ( 'NONE', *, *, #293, .T. ) ;
#160 = AXIS2_PLACEMENT_3D ( 'NONE', #677, #447, #370 ) ;
#161 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION ( '', ( #366 ), #85 ) ;
#162 = ADVANCED_FACE ( 'NONE', ( #623 ), #496, .F. ) ;
#163 = PLANE ( 'NONE', #433 ) ;
#164 = LINE ( 'NONE', #657, #337 ) ;
#165 = EDGE_LOOP ( 'NONE', ( #596, #355, #193, #138 ) ) ;
#166 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#167 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.530808498934177642E-17, 1.000000000000000000 ) ) ;
#168 = ORIENTED_EDGE ( 'NONE', *, *, #652, .T. ) ;
#169 = CARTESIAN_POINT ( 'NONE', ( -2.000000000000001776, 19.00000000000000000, -4.000000000000000000 ) ) ;
#170 = DIRECTION ( 'NONE', ( -0.7071067811865475727, 0.7071067811865475727, 1.082445070294356901E-17 ) ) ;
#171 = EDGE_CURVE ( 'NONE', #339, #17, #502, .T. ) ;
#172 = ORIENTED_EDGE ( 'NONE', *, *, #293, .F. ) ;
#173 = SURFACE_SIDE_STYLE ('',( #560 ) ) ;
#174 = AXIS2_PLACEMENT_3D ( 'NONE', #771, #399, #649 ) ;
#175 = CIRCLE ( 'NONE', #202, 2.999999999999999556 ) ;
#176 = DIRECTION ( 'NONE', ( -0.7071067811865475727, -0.7071067811865475727, -1.082445070294356901E-17 ) ) ;
#177 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#178 = EDGE_CURVE ( 'NONE', #695, #396, #5, .T. ) ;
#179 = VERTEX_POINT ( 'NONE', #316 ) ;
#180 = PLANE ( 'NONE', #512 ) ;
#181 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ;
#182 = EDGE_LOOP ( 'NONE', ( #25, #797, #702, #503 ) ) ;
#183 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#184 = CARTESIAN_POINT ( 'NONE', ( -3.499999999999996891, 0.000000000000000000, 0.000000000000000000 ) ) ;
#185 = FACE_BOUND ( 'NONE', #44, .T. ) ;
#186 = ORIENTED_EDGE ( 'NONE', *, *, #125, .T. ) ;
#187 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#188 = CIRCLE ( 'NONE', #755, 1.699999999999998845 ) ;
#189 = AXIS2_PLACEMENT_3D ( 'NONE', #589, #452, #696 ) ;
#190 = EDGE_CURVE ( 'NONE', #52, #249, #627, .T. ) ;
#191 = CARTESIAN_POINT ( 'NONE', ( -3.499999999999998668, 49.00000000000000000, -4.499999999999999112 ) ) ;
#192 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 17.00000000000000000, -1.000000000000005995 ) ) ;
#193 = ORIENTED_EDGE ( 'NONE', *, *, #591, .T. ) ;
#194 = CARTESIAN_POINT ( 'NONE', ( 3.500000000000006217, 49.00000000000000000, -4.000000000000001776 ) ) ;
#195 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#196 = ORIENTED_EDGE ( 'NONE', *, *, #178, .F. ) ;
#197 = ADVANCED_FACE ( 'NONE', ( #311 ), #492, .F. ) ;
#198 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#199 = CARTESIAN_POINT ( 'NONE', ( -1.699999999999997513, 12.99999999999999822, -4.000000000000001776 ) ) ;
#200 = EDGE_LOOP ( 'NONE', ( #352, #785 ) ) ;
#201 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999997335, 0.5000000000000004441, 0.000000000000000000 ) ) ;
#202 = AXIS2_PLACEMENT_3D ( 'NONE', #347, #531, #774 ) ;
#203 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ;
#204 = ORIENTED_EDGE ( 'NONE', *, *, #526, .F. ) ;
#205 = EDGE_CURVE ( 'NONE', #672, #258, #257, .T. ) ;
#206 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( .MILLI., .METRE. ) );
#207 = CARTESIAN_POINT ( 'NONE', ( 4.336808689942017736E-15, 4.000000000000000000, -4.000000000000001776 ) ) ;
#208 = ORIENTED_EDGE ( 'NONE', *, *, #643, .F. ) ;
#209 = EDGE_CURVE ( 'NONE', #18, #517, #790, .T. ) ;
#210 = CARTESIAN_POINT ( 'NONE', ( -2.000000000000001776, 19.00000000000000000, -4.500000000000000888 ) ) ;
#211 = PLANE ( 'NONE', #470 ) ;
#212 = PLANE ( 'NONE', #663 ) ;
#213 = VERTEX_POINT ( 'NONE', #750 ) ;
#214 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#215 = EDGE_CURVE ( 'NONE', #760, #396, #260, .T. ) ;
#216 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#217 = ORIENTED_EDGE ( 'NONE', *, *, #673, .T. ) ;
#218 = LINE ( 'NONE', #152, #326 ) ;
#219 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999995559, 17.00000000000000000, 0.000000000000000000 ) ) ;
#220 = ORIENTED_EDGE ( 'NONE', *, *, #357, .F. ) ;
#221 = LINE ( 'NONE', #710, #27 ) ;
#222 = ORIENTED_EDGE ( 'NONE', *, *, #101, .F. ) ;
#223 = EDGE_CURVE ( 'NONE', #179, #432, #254, .T. ) ;
#224 = FACE_OUTER_BOUND ( 'NONE', #273, .T. ) ;
#225 = AXIS2_PLACEMENT_3D ( 'NONE', #133, #74, #320 ) ;
#226 = EDGE_LOOP ( 'NONE', ( #13, #587 ) ) ;
#227 = CARTESIAN_POINT ( 'NONE', ( 4.000000000000000888, 48.50000000000000711, -1.000000000000002665 ) ) ;
#228 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.530808498934177642E-17, -1.000000000000000000 ) ) ;
#229 = ORIENTED_EDGE ( 'NONE', *, *, #735, .T. ) ;
#230 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( .MILLI., .METRE. ) );
#231 = ADVANCED_FACE ( 'NONE', ( #137 ), #631, .F. ) ;
#232 = CARTESIAN_POINT ( 'NONE', ( 1.734723475976807094E-15, 12.99999999999999822, -4.000000000000001776 ) ) ;
#233 = FACE_OUTER_BOUND ( 'NONE', #734, .T. ) ;
#234 = ORIENTED_EDGE ( 'NONE', *, *, #556, .T. ) ;
#235 = FACE_BOUND ( 'NONE', #661, .T. ) ;
#236 = EDGE_CURVE ( 'NONE', #517, #151, #571, .T. ) ;
#237 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999995559, 17.00000000000000000, 0.000000000000000000 ) ) ;
#238 = ORIENTED_EDGE ( 'NONE', *, *, #509, .T. ) ;
#239 = AXIS2_PLACEMENT_3D ( 'NONE', #330, #342, #216 ) ;
#240 = AXIS2_PLACEMENT_3D ( 'NONE', #582, #142, #636 ) ;
#241 = CARTESIAN_POINT ( 'NONE', ( 3.000000000000004441, 4.000000000000000000, -4.000000000000001776 ) ) ;
#242 = LINE ( 'NONE', #543, #678 ) ;
#243 = ORIENTED_EDGE ( 'NONE', *, *, #758, .T. ) ;
#244 = LINE ( 'NONE', #630, #614 ) ;
#245 = CARTESIAN_POINT ( 'NONE', ( 4.000000000000000888, 48.50000000000000711, -4.000000000000001776 ) ) ;
#246 = ORIENTED_EDGE ( 'NONE', *, *, #77, .F. ) ;
#247 = CARTESIAN_POINT ( 'NONE', ( -1.699999999999994404, 4.000000000000000000, 0.000000000000000000 ) ) ;
#248 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ;
#249 = VERTEX_POINT ( 'NONE', #741 ) ;
#250 = VECTOR ( 'NONE', #411, 1000.000000000000000 ) ;
#251 = VECTOR ( 'NONE', #60, 1000.000000000000000 ) ;
#252 = FACE_OUTER_BOUND ( 'NONE', #569, .T. ) ;
#253 = AXIS2_PLACEMENT_3D ( 'NONE', #183, #662, #494 ) ;
#254 = LINE ( 'NONE', #199, #348 ) ;
#255 = ORIENTED_EDGE ( 'NONE', *, *, #629, .T. ) ;
#256 = CARTESIAN_POINT ( 'NONE', ( 4.336808689942017736E-15, 4.000000000000000000, 0.000000000000000000 ) ) ;
#257 = LINE ( 'NONE', #694, #263 ) ;
#258 = VERTEX_POINT ( 'NONE', #245 ) ;
#259 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#260 = LINE ( 'NONE', #689, #547 ) ;
#261 = EDGE_CURVE ( 'NONE', #541, #695, #322, .T. ) ;
#262 = ORIENTED_EDGE ( 'NONE', *, *, #585, .F. ) ;
#263 = VECTOR ( 'NONE', #371, 1000.000000000000114 ) ;
#264 = VECTOR ( 'NONE', #583, 1000.000000000000000 ) ;
#265 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999999112, 49.00000000000000000, -1.000000000000002665 ) ) ;
#266 = ORIENTED_EDGE ( 'NONE', *, *, #135, .F. ) ;
#267 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#268 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#269 = EDGE_LOOP ( 'NONE', ( #328, #382, #255, #717 ) ) ;
#270 = ADVANCED_FACE ( 'NONE', ( #737, #185, #121 ), #683, .F. ) ;
#271 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#272 = LINE ( 'NONE', #16, #415 ) ;
#273 = EDGE_LOOP ( 'NONE', ( #400, #335, #440, #114 ) ) ;
#274 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ;
#275 = VERTEX_POINT ( 'NONE', #558 ) ;
#276 = FACE_OUTER_BOUND ( 'NONE', #518, .T. ) ;
#277 = EDGE_CURVE ( 'NONE', #39, #432, #588, .T. ) ;
#278 = ORIENTED_EDGE ( 'NONE', *, *, #313, .T. ) ;
#279 = CARTESIAN_POINT ( 'NONE', ( -3.499999999999996891, 0.000000000000000000, -4.000000000000001776 ) ) ;
#280 = EDGE_CURVE ( 'NONE', #687, #134, #513, .T. ) ;
#281 = ORIENTED_EDGE ( 'NONE', *, *, #383, .F. ) ;
#282 = ORIENTED_EDGE ( 'NONE', *, *, #77, .T. ) ;
#283 = PRODUCT_DEFINITION_SHAPE ( 'NONE', 'NONE', #595 ) ;
#284 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.530808498934177642E-17, 1.000000000000000000 ) ) ;
#285 = VECTOR ( 'NONE', #30, 1000.000000000000000 ) ;
#286 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 0.5000000000000004441, 0.000000000000000000 ) ) ;
#287 = AXIS2_PLACEMENT_3D ( 'NONE', #786, #50, #103 ) ;
#288 = ORIENTED_EDGE ( 'NONE', *, *, #171, .T. ) ;
#289 = PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE ( 'ANY', '', #626, .NOT_KNOWN. ) ;
#290 = CARTESIAN_POINT ( 'NONE', ( 4.000000000000000888, 49.00000000000000000, -1.000000000000002665 ) ) ;
#291 = FACE_OUTER_BOUND ( 'NONE', #647, .T. ) ;
#292 = ORIENTED_EDGE ( 'NONE', *, *, #439, .T. ) ;
#293 = EDGE_CURVE ( 'NONE', #514, #668, #391, .T. ) ;
#294 = UNCERTAINTY_MEASURE_WITH_UNIT (LENGTH_MEASURE( 1.000000000000000082E-05 ), #206, 'distance_accuracy_value', 'NONE');
#295 = CYLINDRICAL_SURFACE ( 'NONE', #287, 3.000000000000000000 ) ;
#296 = CYLINDRICAL_SURFACE ( 'NONE', #577, 3.000000000000000000 ) ;
#297 = ORIENTED_EDGE ( 'NONE', *, *, #758, .F. ) ;
#298 = LINE ( 'NONE', #169, #740 ) ;
#299 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.530808498934177642E-17, -1.000000000000000000 ) ) ;
#300 = ORIENTED_EDGE ( 'NONE', *, *, #115, .T. ) ;
#301 = CIRCLE ( 'NONE', #533, 1.699999999999999512 ) ;
#302 = VECTOR ( 'NONE', #715, 1000.000000000000000 ) ;
#303 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#304 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#305 = VERTEX_POINT ( 'NONE', #463 ) ;
#306 = FILL_AREA_STYLE_COLOUR ( '', #728 ) ;
#307 = DIRECTION ( 'NONE', ( 0.7071067811865474617, -0.7071067811865474617, 9.019373039313964068E-18 ) ) ;
#308 = LINE ( 'NONE', #192, #26 ) ;
#309 = ORIENTED_EDGE ( 'NONE', *, *, #101, .T. ) ;
#310 = SURFACE_STYLE_FILL_AREA ( #495 ) ;
#311 = FACE_OUTER_BOUND ( 'NONE', #690, .T. ) ;
#312 = ORIENTED_EDGE ( 'NONE', *, *, #89, .F. ) ;
#313 = EDGE_CURVE ( 'NONE', #17, #305, #272, .T. ) ;
#314 = PRESENTATION_LAYER_ASSIGNMENT ( '', '', ( #578 ) ) ;
#315 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#316 = CARTESIAN_POINT ( 'NONE', ( -1.699999999999997069, 12.99999999999999822, 0.000000000000000000 ) ) ;
#317 = ORIENTED_EDGE ( 'NONE', *, *, #49, .T. ) ;
#318 = ADVANCED_FACE ( 'NONE', ( #763 ), #642, .F. ) ;
#319 = CARTESIAN_POINT ( 'NONE', ( 1.700000000000003952, 4.000000000000000000, -2.000000000000001776 ) ) ;
#320 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#321 = ORIENTED_EDGE ( 'NONE', *, *, #313, .F. ) ;
#322 = LINE ( 'NONE', #435, #803 ) ;
#323 = VERTEX_POINT ( 'NONE', #461 ) ;
#324 = VECTOR ( 'NONE', #646, 1000.000000000000114 ) ;
#325 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#326 = VECTOR ( 'NONE', #139, 1000.000000000000000 ) ;
#327 = CARTESIAN_POINT ( 'NONE', ( 1.734723475976807094E-15, 12.99999999999999822, -2.000000000000001776 ) ) ;
#328 = ORIENTED_EDGE ( 'NONE', *, *, #209, .F. ) ;
#329 = CARTESIAN_POINT ( 'NONE', ( 4.336808689942017736E-15, 4.000000000000000000, 0.000000000000000000 ) ) ;
#330 = CARTESIAN_POINT ( 'NONE', ( 1.734723475976807094E-15, 12.99999999999999822, -4.000000000000001776 ) ) ;
#331 = ORIENTED_EDGE ( 'NONE', *, *, #782, .T. ) ;
#332 = PLANE ( 'NONE', #240 ) ;
#333 = ADVANCED_FACE ( 'NONE', ( #87 ), #456, .F. ) ;
#334 = LINE ( 'NONE', #24, #285 ) ;
#335 = ORIENTED_EDGE ( 'NONE', *, *, #66, .T. ) ;
#336 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, 1.770125995894701079E-17 ) ) ;
#337 = VECTOR ( 'NONE', #426, 1000.000000000000114 ) ;
#338 = VECTOR ( 'NONE', #325, 1000.000000000000000 ) ;
#339 = VERTEX_POINT ( 'NONE', #654 ) ;
#340 = EDGE_CURVE ( 'NONE', #806, #628, #301, .T. ) ;
#341 = PRODUCT_DEFINITION_CONTEXT ( 'detailed design', #35, 'design' ) ;
#342 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#343 = ORIENTED_EDGE ( 'NONE', *, *, #236, .T. ) ;
#344 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 0.000000000000000000, -4.000000000000001776 ) ) ;
#345 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ;
#346 = ORIENTED_EDGE ( 'NONE', *, *, #150, .F. ) ;
#347 = CARTESIAN_POINT ( 'NONE', ( 4.336808689942017736E-15, 4.000000000000000000, -2.000000000000001776 ) ) ;
#348 = VECTOR ( 'NONE', #442, 1000.000000000000000 ) ;
#349 = CARTESIAN_POINT ( 'NONE', ( -3.499999999999998668, 49.00000000000000000, -4.499999999999999112 ) ) ;
#350 = VECTOR ( 'NONE', #478, 1000.000000000000114 ) ;
#351 = EDGE_CURVE ( 'NONE', #628, #806, #497, .T. ) ;
#352 = ORIENTED_EDGE ( 'NONE', *, *, #357, .T. ) ;
#353 = CARTESIAN_POINT ( 'NONE', ( -2.000000000000001776, 49.00000000000000000, -4.499999999999999112 ) ) ;
#354 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999997335, 0.000000000000000000, 0.000000000000000000 ) ) ;
#355 = ORIENTED_EDGE ( 'NONE', *, *, #556, .F. ) ;
#356 = CARTESIAN_POINT ( 'NONE', ( -2.999999999999997780, 12.99999999999999822, -2.000000000000001776 ) ) ;
#357 = EDGE_CURVE ( 'NONE', #179, #323, #188, .T. ) ;
#358 = LINE ( 'NONE', #237, #468 ) ;
#359 = EDGE_LOOP ( 'NONE', ( #147, #312, #343, #436 ) ) ;
#360 = ADVANCED_FACE ( 'NONE', ( #149, #527, #697 ), #90, .F. ) ;
#361 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#362 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 0.5000000000000004441, -4.000000000000001776 ) ) ;
#363 = VECTOR ( 'NONE', #177, 1000.000000000000000 ) ;
#364 = EDGE_LOOP ( 'NONE', ( #234, #424 ) ) ;
#365 = AXIS2_PLACEMENT_3D ( 'NONE', #744, #56, #303 ) ;
#366 = STYLED_ITEM ( 'NONE', ( #555 ), #747 ) ;
#367 = LINE ( 'NONE', #184, #485 ) ;
#368 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 17.00000000000000000, 0.000000000000000000 ) ) ;
#369 = EDGE_LOOP ( 'NONE', ( #321, #91, #154, #638 ) ) ;
#370 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#371 = DIRECTION ( 'NONE', ( 0.7071067811865474617, -0.7071067811865474617, 1.251668095251733953E-17 ) ) ;
#372 = EDGE_CURVE ( 'NONE', #18, #129, #334, .T. ) ;
#373 = ORIENTED_EDGE ( 'NONE', *, *, #125, .F. ) ;
#374 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999997335, 0.000000000000000000, -4.000000000000001776 ) ) ;
#375 = DIRECTION ( 'NONE', ( -0.7071067811865474617, -0.7071067811865474617, 1.251668095251733953E-17 ) ) ;
#376 = ORIENTED_EDGE ( 'NONE', *, *, #667, .F. ) ;
#377 = ADVANCED_FACE ( 'NONE', ( #276 ), #211, .F. ) ;
#378 = AXIS2_PLACEMENT_3D ( 'NONE', #671, #615, #113 ) ;
#379 = AXIS2_PLACEMENT_3D ( 'NONE', #344, #597, #284 ) ;
#380 = CARTESIAN_POINT ( 'NONE', ( 3.499999999999999112, 1.040834085586084257E-14, 0.000000000000000000 ) ) ;
#381 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#382 = ORIENTED_EDGE ( 'NONE', *, *, #372, .T. ) ;
#383 = EDGE_CURVE ( 'NONE', #323, #39, #143, .T. ) ;
#384 = CARTESIAN_POINT ( 'NONE', ( -2.999999999999998224, 12.99999999999999822, -4.000000000000001776 ) ) ;
#385 = ORIENTED_EDGE ( 'NONE', *, *, #155, .F. ) ;
#386 = LINE ( 'NONE', #455, #691 ) ;
#387 = CARTESIAN_POINT ( 'NONE', ( 1.700000000000001066, 12.99999999999999822, -4.000000000000001776 ) ) ;
#388 = VERTEX_POINT ( 'NONE', #20 ) ;
#389 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 17.00000000000000000, 0.000000000000000000 ) ) ;
#390 = AXIS2_PLACEMENT_3D ( 'NONE', #256, #613, #739 ) ;
#391 = LINE ( 'NONE', #521, #651 ) ;
#392 = VERTEX_POINT ( 'NONE', #586 ) ;
#393 = ORIENTED_EDGE ( 'NONE', *, *, #526, .T. ) ;
#394 = SURFACE_STYLE_USAGE ( .BOTH. , #127 ) ;
#395 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#396 = VERTEX_POINT ( 'NONE', #219 ) ;
#397 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, -1.770125995894701079E-17 ) ) ;
#398 = APPLICATION_CONTEXT ( 'automotive_design' ) ;
#399 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#400 = ORIENTED_EDGE ( 'NONE', *, *, #620, .F. ) ;
#401 = EDGE_CURVE ( 'NONE', #687, #794, #221, .T. ) ;
#402 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.000000000000000000, -1.000000000000000000 ) ) ;
#403 = AXIS2_PLACEMENT_3D ( 'NONE', #592, #516, #336 ) ;
#404 = AXIS2_PLACEMENT_3D ( 'NONE', #538, #579, #267 ) ;
#405 = ORIENTED_EDGE ( 'NONE', *, *, #609, .F. ) ;
#406 = PLANE ( 'NONE', #379 ) ;
#407 = LINE ( 'NONE', #102, #564 ) ;
#408 = ORIENTED_EDGE ( 'NONE', *, *, #280, .F. ) ;
#409 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#410 = EDGE_CURVE ( 'NONE', #275, #695, #98, .T. ) ;
#411 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.530808498934177642E-17, -1.000000000000000000 ) ) ;
#412 = ORIENTED_EDGE ( 'NONE', *, *, #807, .T. ) ;
#413 = SURFACE_STYLE_USAGE ( .BOTH. , #173 ) ;
#414 = FACE_OUTER_BOUND ( 'NONE', #775, .T. ) ;
#415 = VECTOR ( 'NONE', #274, 1000.000000000000000 ) ;
#416 = DIRECTION ( 'NONE', ( 0.000000000000000000, -7.653191805780032459E-17, 1.000000000000000000 ) ) ;
#417 = AXIS2_PLACEMENT_3D ( 'NONE', #100, #670, #542 ) ;
#418 = ORIENTED_EDGE ( 'NONE', *, *, #782, .F. ) ;
#419 = PRESENTATION_LAYER_ASSIGNMENT ( '', '', ( #366 ) ) ;
#420 = PRODUCT_CONTEXT ( 'NONE', #398, 'mechanical' ) ;
#421 = EDGE_CURVE ( 'NONE', #554, #65, #727, .T. ) ;
#422 = CYLINDRICAL_SURFACE ( 'NONE', #417, 1.699999999999999289 ) ;
#423 = CARTESIAN_POINT ( 'NONE', ( -3.499999999999996891, 0.000000000000000000, -4.000000000000001776 ) ) ;
#424 = ORIENTED_EDGE ( 'NONE', *, *, #155, .T. ) ;
#425 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 17.00000000000000000, -1.000000000000005995 ) ) ;
#426 = DIRECTION ( 'NONE', ( -0.7071067811865474617, 0.7071067811865474617, -1.251668095251733953E-17 ) ) ;
#427 = ORIENTED_EDGE ( 'NONE', *, *, #772, .F. ) ;
#428 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#429 = EDGE_CURVE ( 'NONE', #565, #541, #469, .T. ) ;
#430 = LINE ( 'NONE', #693, #446 ) ;
#431 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999995559, 17.00000000000000000, -1.000000000000005995 ) ) ;
#432 = VERTEX_POINT ( 'NONE', #656 ) ;
#433 = AXIS2_PLACEMENT_3D ( 'NONE', #279, #176, #594 ) ;
#434 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999995559, 19.00000000000000000, -4.500000000000000888 ) ) ;
#435 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 17.00000000000000000, -1.000000000000005995 ) ) ;
#436 = ORIENTED_EDGE ( 'NONE', *, *, #660, .T. ) ;
#437 = CARTESIAN_POINT ( 'NONE', ( 1.734723475976807094E-15, 12.99999999999999822, -4.000000000000001776 ) ) ;
#438 = CARTESIAN_POINT ( 'NONE', ( 4.000000000000000888, 48.50000000000000711, -1.000000000000002665 ) ) ;
#439 = EDGE_CURVE ( 'NONE', #305, #275, #474, .T. ) ;
#440 = ORIENTED_EDGE ( 'NONE', *, *, #401, .T. ) ;
#441 = CARTESIAN_POINT ( 'NONE', ( -2.000000000000001776, 19.00000000000000000, -4.500000000000000888 ) ) ;
#442 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#443 = ORIENTED_EDGE ( 'NONE', *, *, #667, .T. ) ;
#444 = EDGE_CURVE ( 'NONE', #711, #65, #718, .T. ) ;
#445 = AXIS2_PLACEMENT_3D ( 'NONE', #109, #488, #784 ) ;
#446 = VECTOR ( 'NONE', #504, 1000.000000000000000 ) ;
#447 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#448 = AXIS2_PLACEMENT_3D ( 'NONE', #329, #704, #148 ) ;
#449 = CARTESIAN_POINT ( 'NONE', ( 4.000000000000000888, 48.50000000000000711, 0.000000000000000000 ) ) ;
#450 = ORIENTED_EDGE ( 'NONE', *, *, #46, .F. ) ;
#451 = PRODUCT_RELATED_PRODUCT_CATEGORY ( 'part', '', ( #626 ) ) ;
#452 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ;
#453 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#454 = EDGE_LOOP ( 'NONE', ( #418, #105, #752, #559, #297, #720, #62, #309, #462 ) ) ;
#455 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 0.000000000000000000, -4.000000000000001776 ) ) ;
#456 = CYLINDRICAL_SURFACE ( 'NONE', #239, 1.699999999999999289 ) ;
#457 = ORIENTED_EDGE ( 'NONE', *, *, #761, .F. ) ;
#458 = CIRCLE ( 'NONE', #445, 2.999999999999999556 ) ;
#459 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#460 = CIRCLE ( 'NONE', #107, 3.000000000000000000 ) ;
#461 = CARTESIAN_POINT ( 'NONE', ( 1.700000000000000622, 12.99999999999999822, 0.000000000000000000 ) ) ;
#462 = ORIENTED_EDGE ( 'NONE', *, *, #585, .T. ) ;
#463 = CARTESIAN_POINT ( 'NONE', ( -3.499999999999998668, 49.00000000000000000, -1.000000000000002665 ) ) ;
#464 = ADVANCED_FACE ( 'NONE', ( #601 ), #539, .F. ) ;
#465 = ORIENTED_EDGE ( 'NONE', *, *, #700, .T. ) ;
#466 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999995559, 19.00000000000000000, -4.500000000000000888 ) ) ;
#467 = ORIENTED_EDGE ( 'NONE', *, *, #723, .T. ) ;
#468 = VECTOR ( 'NONE', #117, 1000.000000000000000 ) ;
#469 = LINE ( 'NONE', #290, #768 ) ;
#470 = AXIS2_PLACEMENT_3D ( 'NONE', #529, #9, #402 ) ;
#471 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999995559, 19.00000000000000000, -4.500000000000000888 ) ) ;
#472 = EDGE_LOOP ( 'NONE', ( #486, #292, #122, #522, #738, #80 ) ) ;
#473 = ADVANCED_FACE ( 'NONE', ( #414 ), #180, .T. ) ;
#474 = LINE ( 'NONE', #545, #350 ) ;
#475 = CARTESIAN_POINT ( 'NONE', ( 1.700000000000001510, 12.99999999999999822, -2.000000000000001776 ) ) ;
#476 = ORIENTED_EDGE ( 'NONE', *, *, #280, .T. ) ;
#477 = FACE_OUTER_BOUND ( 'NONE', #182, .T. ) ;
#478 = DIRECTION ( 'NONE', ( -0.7071067811865474617, -0.7071067811865474617, -8.624775468843979835E-17 ) ) ;
#479 = LINE ( 'NONE', #423, #40 ) ;
#480 = ADVANCED_FACE ( 'NONE', ( #116 ), #163, .T. ) ;
#481 = ORIENTED_EDGE ( 'NONE', *, *, #115, .F. ) ;
#482 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#483 = CIRCLE ( 'NONE', #523, 2.999999999999999556 ) ;
#484 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.530808498934177642E-17, 1.000000000000000000 ) ) ;
#485 = VECTOR ( 'NONE', #307, 1000.000000000000114 ) ;
#486 = ORIENTED_EDGE ( 'NONE', *, *, #519, .T. ) ;
#487 = LINE ( 'NONE', #610, #616 ) ;
#488 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#489 = ADVANCED_FACE ( 'NONE', ( #235, #722 ), #32, .F. ) ;
#490 = ORIENTED_EDGE ( 'NONE', *, *, #629, .F. ) ;
#491 = CARTESIAN_POINT ( 'NONE', ( 1.734723475976807094E-15, 12.99999999999999822, -4.000000000000001776 ) ) ;
#492 = PLANE ( 'NONE', #82 ) ;
#493 = ORIENTED_EDGE ( 'NONE', *, *, #190, .F. ) ;
#494 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#495 = FILL_AREA_STYLE ('',( #736 ) ) ;
#496 = CYLINDRICAL_SURFACE ( 'NONE', #144, 1.699999999999999289 ) ;
#497 = CIRCLE ( 'NONE', #174, 1.699999999999999512 ) ;
#498 = VERTEX_POINT ( 'NONE', #112 ) ;
#499 = CIRCLE ( 'NONE', #160, 3.000000000000000000 ) ;
#500 = ADVANCED_FACE ( 'NONE', ( #658 ), #422, .F. ) ;
#501 = LINE ( 'NONE', #374, #69 ) ;
#502 = LINE ( 'NONE', #64, #54 ) ;
#503 = ORIENTED_EDGE ( 'NONE', *, *, #261, .T. ) ;
#504 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#505 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#506 = EDGE_LOOP ( 'NONE', ( #243, #300, #146, #800, #572, #186 ) ) ;
#507 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#508 = CARTESIAN_POINT ( 'NONE', ( -2.999999999999998224, 12.99999999999999822, -4.000000000000001776 ) ) ;
#509 = EDGE_CURVE ( 'NONE', #632, #213, #298, .T. ) ;
#510 = ORIENTED_EDGE ( 'NONE', *, *, #807, .F. ) ;
#511 = VECTOR ( 'NONE', #167, 1000.000000000000000 ) ;
#512 = AXIS2_PLACEMENT_3D ( 'NONE', #726, #606, #664 ) ;
#513 = LINE ( 'NONE', #708, #324 ) ;
#514 = VERTEX_POINT ( 'NONE', #353 ) ;
#515 = PLANE ( 'NONE', #189 ) ;
#516 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.770125995894701079E-17, 1.000000000000000000 ) ) ;
#517 = VERTEX_POINT ( 'NONE', #356 ) ;
#518 = EDGE_LOOP ( 'NONE', ( #317, #34, #405, #278, #780, #217 ) ) ;
#519 = EDGE_CURVE ( 'NONE', #48, #305, #487, .T. ) ;
#520 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#521 = CARTESIAN_POINT ( 'NONE', ( -2.000000000000001776, 19.00000000000000000, -4.500000000000000888 ) ) ;
#522 = ORIENTED_EDGE ( 'NONE', *, *, #261, .F. ) ;
#523 = AXIS2_PLACEMENT_3D ( 'NONE', #746, #195, #70 ) ;
#524 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#525 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION ( '', ( #578 ), #97 ) ;
#526 = EDGE_CURVE ( 'NONE', #617, #339, #732, .T. ) ;
#527 = FACE_BOUND ( 'NONE', #21, .T. ) ;
#528 = EDGE_LOOP ( 'NONE', ( #208, #450, #222, #99 ) ) ;
#529 = CARTESIAN_POINT ( 'NONE', ( 4.000000000000000888, 49.00000000000000000, -4.000000000000001776 ) ) ;
#530 = ORIENTED_EDGE ( 'NONE', *, *, #215, .T. ) ;
#531 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#532 = ORIENTED_EDGE ( 'NONE', *, *, #38, .T. ) ;
#533 = AXIS2_PLACEMENT_3D ( 'NONE', #765, #268, #140 ) ;
#534 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ;
#535 = AXIS2_PLACEMENT_3D ( 'NONE', #207, #453, #637 ) ;
#536 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 17.00000000000000000, 0.000000000000000000 ) ) ;
#537 = ORIENTED_EDGE ( 'NONE', *, *, #730, .T. ) ;
#538 = CARTESIAN_POINT ( 'NONE', ( -3.499999999999998668, 49.00000000000000000, -4.000000000000001776 ) ) ;
#539 = CYLINDRICAL_SURFACE ( 'NONE', #804, 3.000000000000000000 ) ;
#540 = PLANE ( 'NONE', #68 ) ;
#541 = VERTEX_POINT ( 'NONE', #425 ) ;
#542 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#543 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999997335, 0.5000000000000004441, 0.000000000000000000 ) ) ;
#544 = ORIENTED_EDGE ( 'NONE', *, *, #735, .F. ) ;
#545 = CARTESIAN_POINT ( 'NONE', ( -3.499999999999998668, 49.00000000000000000, -1.000000000000002665 ) ) ;
#546 = ADVANCED_FACE ( 'NONE', ( #45 ), #295, .F. ) ;
#547 = VECTOR ( 'NONE', #634, 1000.000000000000000 ) ;
#548 = LINE ( 'NONE', #471, #639 ) ;
#549 = VECTOR ( 'NONE', #759, 1000.000000000000000 ) ;
#550 = EDGE_LOOP ( 'NONE', ( #427, #743, #676, #612 ) ) ;
#551 =( LENGTH_UNIT ( ) NAMED_UNIT ( * ) SI_UNIT ( .MILLI., .METRE. ) );
#552 = LINE ( 'NONE', #618, #132 ) ;
#553 = PLANE ( 'NONE', #378 ) ;
#554 = VERTEX_POINT ( 'NONE', #674 ) ;
#555 = PRESENTATION_STYLE_ASSIGNMENT (( #413 ) ) ;
#556 = EDGE_CURVE ( 'NONE', #392, #711, #175, .T. ) ;
#557 = LINE ( 'NONE', #688, #251 ) ;
#558 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999999112, 48.50000000000000000, -1.000000000000002665 ) ) ;
#559 = ORIENTED_EDGE ( 'NONE', *, *, #205, .T. ) ;
#560 = SURFACE_STYLE_FILL_AREA ( #111 ) ;
#561 = ADVANCED_FACE ( 'NONE', ( #224 ), #406, .F. ) ;
#562 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#563 = DIRECTION ( 'NONE', ( 0.7071067811865474617, 0.7071067811865474617, 0.000000000000000000 ) ) ;
#564 = VECTOR ( 'NONE', #345, 1000.000000000000000 ) ;
#565 = VERTEX_POINT ( 'NONE', #227 ) ;
#566 = AXIS2_PLACEMENT_3D ( 'NONE', #437, #315, #682 ) ;
#567 = CYLINDRICAL_SURFACE ( 'NONE', #11, 3.000000000000000000 ) ;
#568 = LINE ( 'NONE', #438, #600 ) ;
#569 = EDGE_LOOP ( 'NONE', ( #238, #71, #172, #465 ) ) ;
#570 = CARTESIAN_POINT ( 'NONE', ( 3.000000000000003997, 4.000000000000000000, -2.000000000000001776 ) ) ;
#571 = LINE ( 'NONE', #384, #119 ) ;
#572 = ORIENTED_EDGE ( 'NONE', *, *, #135, .T. ) ;
#573 =( NAMED_UNIT ( * ) PLANE_ANGLE_UNIT ( ) SI_UNIT ( $, .RADIAN. ) );
#574 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#575 = EDGE_CURVE ( 'NONE', #681, #498, #41, .T. ) ;
#576 = EDGE_LOOP ( 'NONE', ( #281, #220, #725, #443 ) ) ;
#577 = AXIS2_PLACEMENT_3D ( 'NONE', #607, #304, #47 ) ;
#578 = STYLED_ITEM ( 'NONE', ( #641 ), #721 ) ;
#579 = DIRECTION ( 'NONE', ( -0.7071067811865475727, 0.7071067811865475727, 0.000000000000000000 ) ) ;
#580 = DIRECTION ( 'NONE', ( 0.000000000000000000, -7.653191805780032459E-17, 1.000000000000000000 ) ) ;
#581 = VERTEX_POINT ( 'NONE', #201 ) ;
#582 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 17.00000000000000000, -1.000000000000005995 ) ) ;
#583 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#584 = EDGE_LOOP ( 'NONE', ( #621, #141 ) ) ;
#585 = EDGE_CURVE ( 'NONE', #388, #84, #501, .T. ) ;
#586 = CARTESIAN_POINT ( 'NONE', ( -2.999999999999995115, 4.000000000000000000, -2.000000000000001776 ) ) ;
#587 = ORIENTED_EDGE ( 'NONE', *, *, #351, .F. ) ;
#588 = CIRCLE ( 'NONE', #767, 1.699999999999999512 ) ;
#589 = CARTESIAN_POINT ( 'NONE', ( 1.700000000000001510, 4.000000000000000000, -2.000000000000001776 ) ) ;
#590 = VECTOR ( 'NONE', #86, 1000.000000000000000 ) ;
#591 = EDGE_CURVE ( 'NONE', #392, #554, #430, .T. ) ;
#592 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 0.000000000000000000, -4.000000000000001776 ) ) ;
#593 = EDGE_LOOP ( 'NONE', ( #385, #773, #168, #650 ) ) ;
#594 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.530808498934177642E-17, 1.000000000000000000 ) ) ;
#595 = PRODUCT_DEFINITION ( 'UNKNOWN', '', #289, #341 ) ;
#596 = ORIENTED_EDGE ( 'NONE', *, *, #444, .F. ) ;
#597 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 1.530808498934177642E-17 ) ) ;
#598 = LINE ( 'NONE', #37, #250 ) ;
#599 = ORIENTED_EDGE ( 'NONE', *, *, #205, .F. ) ;
#600 = VECTOR ( 'NONE', #686, 1000.000000000000114 ) ;
#601 = FACE_OUTER_BOUND ( 'NONE', #269, .T. ) ;
#602 = AXIS2_PLACEMENT_3D ( 'NONE', #42, #534, #409 ) ;
#603 = LINE ( 'NONE', #729, #363 ) ;
#604 = EDGE_LOOP ( 'NONE', ( #544, #789, #59, #126 ) ) ;
#605 =( NAMED_UNIT ( * ) SI_UNIT ( $, .STERADIAN. ) SOLID_ANGLE_UNIT ( ) );
#606 = DIRECTION ( 'NONE', ( 0.000000000000000000, 5.880418562633243510E-17, -1.000000000000000000 ) ) ;
#607 = CARTESIAN_POINT ( 'NONE', ( 4.336808689942017736E-15, 4.000000000000000000, -4.000000000000001776 ) ) ;
#608 = ORIENTED_EDGE ( 'NONE', *, *, #46, .T. ) ;
#609 = EDGE_CURVE ( 'NONE', #17, #514, #802, .T. ) ;
#610 = CARTESIAN_POINT ( 'NONE', ( 4.000000000000000888, 49.00000000000000000, -1.000000000000002665 ) ) ;
#611 = CARTESIAN_POINT ( 'NONE', ( 3.499999999999999112, 1.040834085586084257E-14, -4.000000000000001776 ) ) ;
#612 = ORIENTED_EDGE ( 'NONE', *, *, #223, .F. ) ;
#613 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#614 = VECTOR ( 'NONE', #73, 1000.000000000000000 ) ;
#615 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.219727444046192488E-16, -1.000000000000000000 ) ) ;
#616 = VECTOR ( 'NONE', #36, 1000.000000000000000 ) ;
#617 = VERTEX_POINT ( 'NONE', #434 ) ;
#618 = CARTESIAN_POINT ( 'NONE', ( -1.699999999999994849, 4.000000000000000000, -4.000000000000001776 ) ) ;
#619 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.275531967630005153E-17, -1.000000000000000000 ) ) ;
#620 = EDGE_CURVE ( 'NONE', #249, #33, #557, .T. ) ;
#621 = ORIENTED_EDGE ( 'NONE', *, *, #421, .F. ) ;
#622 = CARTESIAN_POINT ( 'NONE', ( -2.000000000000001776, 19.00000000000000000, -4.500000000000000888 ) ) ;
#623 = FACE_OUTER_BOUND ( 'NONE', #766, .T. ) ;
#624 = ORIENTED_EDGE ( 'NONE', *, *, #761, .T. ) ;
#625 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#626 = PRODUCT ( '12600014', '12600014', '', ( #420 ) ) ;
#627 = LINE ( 'NONE', #124, #106 ) ;
#628 = VERTEX_POINT ( 'NONE', #319 ) ;
#629 = EDGE_CURVE ( 'NONE', #129, #151, #703, .T. ) ;
#630 = CARTESIAN_POINT ( 'NONE', ( -2.000000000000001776, 49.00000000000000000, -4.499999999999999112 ) ) ;
#631 = CYLINDRICAL_SURFACE ( 'NONE', #225, 1.699999999999999289 ) ;
#632 = VERTEX_POINT ( 'NONE', #63 ) ;
#633 = ADVANCED_FACE ( 'NONE', ( #252 ), #749, .F. ) ;
#634 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#635 = ORIENTED_EDGE ( 'NONE', *, *, #643, .T. ) ;
#636 = DIRECTION ( 'NONE', ( 0.000000000000000000, -0.000000000000000000, -1.000000000000000000 ) ) ;
#637 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#638 = ORIENTED_EDGE ( 'NONE', *, *, #439, .F. ) ;
#639 = VECTOR ( 'NONE', #416, 1000.000000000000000 ) ;
#640 = CIRCLE ( 'NONE', #653, 1.699999999999998845 ) ;
#641 = PRESENTATION_STYLE_ASSIGNMENT (( #394 ) ) ;
#642 = PLANE ( 'NONE', #776 ) ;
#643 = EDGE_CURVE ( 'NONE', #581, #794, #367, .T. ) ;
#644 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 0.000000000000000000, 0.000000000000000000 ) ) ;
#645 = PLANE ( 'NONE', #404 ) ;
#646 = DIRECTION ( 'NONE', ( 0.7071067811865474617, 0.7071067811865474617, -9.019373039313964068E-18 ) ) ;
#647 = EDGE_LOOP ( 'NONE', ( #408, #731, #493, #373 ) ) ;
#648 = CARTESIAN_POINT ( 'NONE', ( -1.699999999999995071, 4.000000000000000000, -2.000000000000001776 ) ) ;
#649 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#650 = ORIENTED_EDGE ( 'NONE', *, *, #591, .F. ) ;
#651 = VECTOR ( 'NONE', #705, 1000.000000000000000 ) ;
#652 = EDGE_CURVE ( 'NONE', #65, #554, #499, .T. ) ;
#653 = AXIS2_PLACEMENT_3D ( 'NONE', #136, #214, #271 ) ;
#654 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999999112, 48.50000000000000000, -4.499999999999999112 ) ) ;
#655 = ORIENTED_EDGE ( 'NONE', *, *, #89, .T. ) ;
#656 = CARTESIAN_POINT ( 'NONE', ( -1.699999999999997735, 12.99999999999999822, -2.000000000000001776 ) ) ;
#657 = CARTESIAN_POINT ( 'NONE', ( -3.499999999999996891, 0.000000000000000000, -4.000000000000001776 ) ) ;
#658 = FACE_OUTER_BOUND ( 'NONE', #604, .T. ) ;
#659 = CARTESIAN_POINT ( 'NONE', ( 3.000000000000001776, 12.99999999999999822, -4.000000000000001776 ) ) ;
#660 = EDGE_CURVE ( 'NONE', #151, #129, #460, .T. ) ;
#661 = EDGE_LOOP ( 'NONE', ( #376, #684 ) ) ;
#662 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ;
#663 = AXIS2_PLACEMENT_3D ( 'NONE', #644, #88, #787 ) ;
#664 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 5.880418562633243510E-17 ) ) ;
#665 = COLOUR_RGB ( '',0.7921568627450980005, 0.8196078431372548767, 0.9333333333333333481 ) ;
#666 = FACE_OUTER_BOUND ( 'NONE', #472, .T. ) ;
#667 = EDGE_CURVE ( 'NONE', #432, #39, #792, .T. ) ;
#668 = VERTEX_POINT ( 'NONE', #441 ) ;
#669 = SHAPE_DEFINITION_REPRESENTATION ( #283, #747 ) ;
#670 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#671 = CARTESIAN_POINT ( 'NONE', ( 4.000000000000000888, 49.00000000000000000, -1.000000000000002665 ) ) ;
#672 = VERTEX_POINT ( 'NONE', #130 ) ;
#673 = EDGE_CURVE ( 'NONE', #48, #672, #120, .T. ) ;
#674 = CARTESIAN_POINT ( 'NONE', ( -2.999999999999995559, 4.000000000000000000, -4.000000000000001776 ) ) ;
#675 = CARTESIAN_POINT ( 'NONE', ( 3.000000000000004441, 4.000000000000000000, -4.000000000000001776 ) ) ;
#676 = ORIENTED_EDGE ( 'NONE', *, *, #277, .T. ) ;
#677 = CARTESIAN_POINT ( 'NONE', ( 4.336808689942017736E-15, 4.000000000000000000, -4.000000000000001776 ) ) ;
#678 = VECTOR ( 'NONE', #484, 1000.000000000000000 ) ;
#679 = AXIS2_PLACEMENT_3D ( 'NONE', #622, #198, #67 ) ;
#680 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ;
#681 = VERTEX_POINT ( 'NONE', #247 ) ;
#682 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#683 = PLANE ( 'NONE', #712 ) ;
#684 = ORIENTED_EDGE ( 'NONE', *, *, #277, .F. ) ;
#685 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999995559, 17.00000000000000000, -1.000000000000005995 ) ) ;
#686 = DIRECTION ( 'NONE', ( -0.7071067811865474617, 0.7071067811865474617, 8.624775468843979835E-17 ) ) ;
#687 = VERTEX_POINT ( 'NONE', #380 ) ;
#688 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 0.000000000000000000, -4.000000000000001776 ) ) ;
#689 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 17.00000000000000000, 0.000000000000000000 ) ) ;
#690 = EDGE_LOOP ( 'NONE', ( #599, #770, #346, #481 ) ) ;
#691 = VECTOR ( 'NONE', #397, 1000.000000000000000 ) ;
#692 = EDGE_CURVE ( 'NONE', #681, #806, #552, .T. ) ;
#693 = CARTESIAN_POINT ( 'NONE', ( -2.999999999999995559, 4.000000000000000000, -4.000000000000001776 ) ) ;
#694 = CARTESIAN_POINT ( 'NONE', ( 4.000000000000000888, 48.50000000000000711, -4.000000000000001776 ) ) ;
#695 = VERTEX_POINT ( 'NONE', #685 ) ;
#696 = DIRECTION ( 'NONE', ( 1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#697 = FACE_OUTER_BOUND ( 'NONE', #454, .T. ) ;
#698 = ORIENTED_EDGE ( 'NONE', *, *, #401, .F. ) ;
#699 = CARTESIAN_POINT ( 'NONE', ( -3.499999999999996891, 0.000000000000000000, 0.000000000000000000 ) ) ;
#700 = EDGE_CURVE ( 'NONE', #514, #632, #244, .T. ) ;
#701 = CARTESIAN_POINT ( 'NONE', ( 1.734723475976807094E-15, 12.99999999999999822, 0.000000000000000000 ) ) ;
#702 = ORIENTED_EDGE ( 'NONE', *, *, #156, .F. ) ;
#703 = CIRCLE ( 'NONE', #566, 3.000000000000000000 ) ;
#704 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#705 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, -5.782411586589357392E-17 ) ) ;
#706 = ORIENTED_EDGE ( 'NONE', *, *, #209, .T. ) ;
#707 = FACE_OUTER_BOUND ( 'NONE', #369, .T. ) ;
#708 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 0.5000000000000004441, 0.000000000000000000 ) ) ;
#709 = ORIENTED_EDGE ( 'NONE', *, *, #609, .T. ) ;
#710 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 0.000000000000000000, 0.000000000000000000 ) ) ;
#711 = VERTEX_POINT ( 'NONE', #570 ) ;
#712 = AXIS2_PLACEMENT_3D ( 'NONE', #368, #619, #61 ) ;
#713 = ADVANCED_FACE ( 'NONE', ( #795 ), #567, .F. ) ;
#714 = VECTOR ( 'NONE', #482, 1000.000000000000000 ) ;
#715 = DIRECTION ( 'NONE', ( 0.000000000000000000, 1.000000000000000000, 5.880418562633244743E-17 ) ) ;
#716 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#717 = ORIENTED_EDGE ( 'NONE', *, *, #236, .F. ) ;
#718 = LINE ( 'NONE', #241, #714 ) ;
#719 = CARTESIAN_POINT ( 'NONE', ( 3.500000000000006217, 49.00000000000000000, -1.000000000000002665 ) ) ;
#720 = ORIENTED_EDGE ( 'NONE', *, *, #190, .T. ) ;
#721 = MANIFOLD_SOLID_BREP ( 'Boss.-Extru.2', #158 ) ;
#722 = FACE_OUTER_BOUND ( 'NONE', #95, .T. ) ;
#723 = EDGE_CURVE ( 'NONE', #275, #339, #218, .T. ) ;
#724 = CARTESIAN_POINT ( 'NONE', ( 3.999999999999998224, 0.5000000000000004441, 0.000000000000000000 ) ) ;
#725 = ORIENTED_EDGE ( 'NONE', *, *, #223, .T. ) ;
#726 = CARTESIAN_POINT ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, -4.500000000000000888 ) ) ;
#727 = CIRCLE ( 'NONE', #535, 3.000000000000000000 ) ;
#728 = COLOUR_RGB ( '',0.7921568627450980005, 0.8196078431372548767, 0.9333333333333333481 ) ;
#729 = CARTESIAN_POINT ( 'NONE', ( 4.000000000000000888, 49.00000000000000000, -4.000000000000001776 ) ) ;
#730 = EDGE_CURVE ( 'NONE', #668, #213, #753, .T. ) ;
#731 = ORIENTED_EDGE ( 'NONE', *, *, #66, .F. ) ;
#732 = LINE ( 'NONE', #778, #302 ) ;
#733 = PLANE ( 'NONE', #96 ) ;
#734 = EDGE_LOOP ( 'NONE', ( #110, #467, #204, #282, #262, #608, #6, #196 ) ) ;
#735 = EDGE_CURVE ( 'NONE', #498, #628, #22, .T. ) ;
#736 = FILL_AREA_STYLE_COLOUR ( '', #665 ) ;
#737 = FACE_BOUND ( 'NONE', #200, .T. ) ;
#738 = ORIENTED_EDGE ( 'NONE', *, *, #429, .F. ) ;
#739 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#740 = VECTOR ( 'NONE', #108, 1000.000000000000000 ) ;
#741 = CARTESIAN_POINT ( 'NONE', ( 3.499999999999999112, 1.040834085586084257E-14, -4.000000000000001776 ) ) ;
#742 = CIRCLE ( 'NONE', #448, 1.699999999999998845 ) ;
#743 = ORIENTED_EDGE ( 'NONE', *, *, #383, .T. ) ;
#744 = CARTESIAN_POINT ( 'NONE', ( 1.734723475976807094E-15, 12.99999999999999822, -2.000000000000001776 ) ) ;
#745 = ADVANCED_FACE ( 'NONE', ( #477 ), #332, .F. ) ;
#746 = CARTESIAN_POINT ( 'NONE', ( 4.336808689942017736E-15, 4.000000000000000000, -2.000000000000001776 ) ) ;
#747 = ADVANCED_BREP_SHAPE_REPRESENTATION ( '12600014', ( #721, #253 ), #14 ) ;
#748 = ORIENTED_EDGE ( 'NONE', *, *, #660, .F. ) ;
#749 = PLANE ( 'NONE', #679 ) ;
#750 = CARTESIAN_POINT ( 'NONE', ( -2.000000000000001776, 19.00000000000000000, -4.000000000000000000 ) ) ;
#751 = ADVANCED_FACE ( 'NONE', ( #15, #8 ), #515, .F. ) ;
#752 = ORIENTED_EDGE ( 'NONE', *, *, #49, .F. ) ;
#753 = LINE ( 'NONE', #210, #777 ) ;
#754 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#755 = AXIS2_PLACEMENT_3D ( 'NONE', #701, #395, #94 ) ;
#756 = EDGE_LOOP ( 'NONE', ( #331, #246, #457, #537 ) ) ;
#757 = VECTOR ( 'NONE', #459, 1000.000000000000000 ) ;
#758 = EDGE_CURVE ( 'NONE', #52, #258, #386, .T. ) ;
#759 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, -1.219727444046192488E-16 ) ) ;
#760 = VERTEX_POINT ( 'NONE', #389 ) ;
#761 = EDGE_CURVE ( 'NONE', #668, #617, #93, .T. ) ;
#762 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999995559, 19.00000000000000000, -4.000000000000000000 ) ) ;
#763 = FACE_OUTER_BOUND ( 'NONE', #756, .T. ) ;
#764 = FACE_OUTER_BOUND ( 'NONE', #506, .T. ) ;
#765 = CARTESIAN_POINT ( 'NONE', ( 4.336808689942017736E-15, 4.000000000000000000, -2.000000000000001776 ) ) ;
#766 = EDGE_LOOP ( 'NONE', ( #510, #229, #31, #3 ) ) ;
#767 = AXIS2_PLACEMENT_3D ( 'NONE', #327, #153, #769 ) ;
#768 = VECTOR ( 'NONE', #783, 1000.000000000000000 ) ;
#769 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#770 = ORIENTED_EDGE ( 'NONE', *, *, #673, .F. ) ;
#771 = CARTESIAN_POINT ( 'NONE', ( 4.336808689942017736E-15, 4.000000000000000000, -2.000000000000001776 ) ) ;
#772 = EDGE_CURVE ( 'NONE', #323, #179, #640, .T. ) ;
#773 = ORIENTED_EDGE ( 'NONE', *, *, #444, .T. ) ;
#774 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#775 = EDGE_LOOP ( 'NONE', ( #393, #288, #709, #159, #624 ) ) ;
#776 = AXIS2_PLACEMENT_3D ( 'NONE', #466, #81, #580 ) ;
#777 = VECTOR ( 'NONE', #76, 1000.000000000000000 ) ;
#778 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999995559, 19.00000000000000000, -4.500000000000000888 ) ) ;
#779 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, 1.275531967630005153E-17 ) ) ;
#780 = ORIENTED_EDGE ( 'NONE', *, *, #519, .F. ) ;
#781 = CARTESIAN_POINT ( 'NONE', ( 1.700000000000003508, 4.000000000000000000, -4.000000000000001776 ) ) ;
#782 = EDGE_CURVE ( 'NONE', #213, #84, #28, .T. ) ;
#783 = DIRECTION ( 'NONE', ( 0.000000000000000000, -1.000000000000000000, -1.219727444046192488E-16 ) ) ;
#784 = DIRECTION ( 'NONE', ( -1.000000000000000000, 0.000000000000000000, 0.000000000000000000 ) ) ;
#785 = ORIENTED_EDGE ( 'NONE', *, *, #772, .T. ) ;
#786 = CARTESIAN_POINT ( 'NONE', ( 4.336808689942017736E-15, 4.000000000000000000, -4.000000000000001776 ) ) ;
#787 = DIRECTION ( 'NONE', ( 0.000000000000000000, 0.000000000000000000, 1.000000000000000000 ) ) ;
#788 = ADVANCED_FACE ( 'NONE', ( #707 ), #645, .T. ) ;
#789 = ORIENTED_EDGE ( 'NONE', *, *, #575, .F. ) ;
#790 = CIRCLE ( 'NONE', #55, 2.999999999999999556 ) ;
#791 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#792 = CIRCLE ( 'NONE', #365, 1.699999999999999512 ) ;
#793 = CARTESIAN_POINT ( 'NONE', ( -3.999999999999995559, 19.00000000000000000, -4.000000000000001776 ) ) ;
#794 = VERTEX_POINT ( 'NONE', #699 ) ;
#795 = FACE_OUTER_BOUND ( 'NONE', #359, .T. ) ;
#796 = CARTESIAN_POINT ( 'NONE', ( -3.499999999999996891, 0.000000000000000000, -4.000000000000001776 ) ) ;
#797 = ORIENTED_EDGE ( 'NONE', *, *, #215, .F. ) ;
#798 = DIRECTION ( 'NONE', ( -0.000000000000000000, 0.000000000000000000, -1.000000000000000000 ) ) ;
#799 = CARTESIAN_POINT ( 'NONE', ( 1.734723475976807094E-15, 12.99999999999999822, -2.000000000000001776 ) ) ;
#800 = ORIENTED_EDGE ( 'NONE', *, *, #156, .T. ) ;
#801 = APPLICATION_PROTOCOL_DEFINITION ( 'draft international standard', 'automotive_design', 1998, #398 ) ;
#802 = LINE ( 'NONE', #191, #145 ) ;
#803 = VECTOR ( 'NONE', #574, 1000.000000000000000 ) ;
#804 = AXIS2_PLACEMENT_3D ( 'NONE', #232, #791, #166 ) ;
#805 = CARTESIAN_POINT ( 'NONE', ( 4.336808689942017736E-15, 4.000000000000000000, -4.000000000000001776 ) ) ;
#806 = VERTEX_POINT ( 'NONE', #648 ) ;
#807 = EDGE_CURVE ( 'NONE', #498, #681, #742, .T. ) ;
ENDSEC;
END-ISO-10303-21;

File diff suppressed because it is too large Load Diff

105
matlab/src/initializeAPA.m Normal file
View File

@ -0,0 +1,105 @@
function [actuator] = initializeAPA(args)
% initializeAPA -
%
% Syntax: [actuator] = initializeAPA(args)
%
% Inputs:
% - args -
%
% Outputs:
% - actuator -
arguments
args.type char {mustBeMember(args.type,{'2dof', 'flexible frame', 'flexible'})} = '2dof'
% Actuator and Sensor constants
args.Ga (1,1) double {mustBeNumeric} = 0
args.Gs (1,1) double {mustBeNumeric} = 0
% For 2DoF
args.k (6,1) double {mustBeNumeric, mustBePositive} = ones(6,1)*0.38e6
args.ke (6,1) double {mustBeNumeric, mustBePositive} = ones(6,1)*1.75e6
args.ka (6,1) double {mustBeNumeric, mustBePositive} = ones(6,1)*3e7
args.c (6,1) double {mustBeNumeric, mustBePositive} = ones(6,1)*3e1
args.ce (6,1) double {mustBeNumeric, mustBePositive} = ones(6,1)*2e1
args.ca (6,1) double {mustBeNumeric, mustBePositive} = ones(6,1)*2e1
args.Leq (6,1) double {mustBeNumeric} = ones(6,1)*0.056
% Force Flexible APA
args.xi (1,1) double {mustBeNumeric, mustBePositive} = 0.01
args.d_align (3,1) double {mustBeNumeric} = zeros(3,1) % [m]
args.d_align_bot (3,1) double {mustBeNumeric} = zeros(3,1) % [m]
args.d_align_top (3,1) double {mustBeNumeric} = zeros(3,1) % [m]
% For Flexible Frame
args.ks (1,1) double {mustBeNumeric, mustBePositive} = 235e6
args.cs (1,1) double {mustBeNumeric, mustBePositive} = 1e1
end
actuator = struct();
switch args.type
case '2dof'
actuator.type = 1;
case 'flexible frame'
actuator.type = 2;
case 'flexible'
actuator.type = 3;
end
if args.Ga == 0
switch args.type
case '2dof'
actuator.Ga = -30.0;
case 'flexible frame'
actuator.Ga = 1; % TODO
case 'flexible'
actuator.Ga = 23.4;
end
else
actuator.Ga = args.Ga; % Actuator gain [N/V]
end
if args.Gs == 0
switch args.type
case '2dof'
actuator.Gs = 0.098;
case 'flexible frame'
actuator.Gs = 1; % TODO
case 'flexible'
actuator.Gs = -4674824;
end
else
actuator.Gs = args.Gs; % Sensor gain [V/m]
end
actuator.k = args.k; % [N/m]
actuator.ke = args.ke; % [N/m]
actuator.ka = args.ka; % [N/m]
actuator.c = args.c; % [N/(m/s)]
actuator.ce = args.ce; % [N/(m/s)]
actuator.ca = args.ca; % [N/(m/s)]
actuator.Leq = args.Leq; % [m]
switch args.type
case 'flexible frame'
actuator.K = readmatrix('APA300ML_b_mat_K.CSV'); % Stiffness Matrix
actuator.M = readmatrix('APA300ML_b_mat_M.CSV'); % Mass Matrix
actuator.P = extractNodes('APA300ML_b_out_nodes_3D.txt'); % Node coordinates [m]
case 'flexible'
actuator.K = readmatrix('full_APA300ML_K.CSV'); % Stiffness Matrix
actuator.M = readmatrix('full_APA300ML_M.CSV'); % Mass Matrix
actuator.P = extractNodes('full_APA300ML_out_nodes_3D.txt'); % Node coordiantes [m]
actuator.d_align = args.d_align;
actuator.d_align_bot = args.d_align_bot;
actuator.d_align_top = args.d_align_top;
end
actuator.xi = args.xi; % Damping ratio
actuator.ks = args.ks; % Stiffness of one stack [N/m]
actuator.cs = args.cs; % Damping of one stack [N/m]

866
matlab/src/vectfit3.m Normal file
View File

@ -0,0 +1,866 @@
function [SER,poles,rmserr,fit,opts]=vectfit3(f,s,poles,weight,opts);
%
%function [SER,poles,rmserr,fit,opts]=vectfit3(f,s,poles,weight,opts)
%function [SER,poles,rmserr,fit]=vectfit3(f,s,poles,weight,opts)
%function [SER,poles,rmserr,fit]=vectfit3(f,s,poles,weight)
%
% ===========================================================
% = Fast Relaxed Vector Fitting =
% = Version 1.0 =
% = Last revised: 08.08.2008 =
% = Written by: Bjorn Gustavsen =
% = SINTEF Energy Research, N-7465 Trondheim, NORWAY =
% = bjorn.gustavsen@sintef.no =
% = http://www.energy.sintef.no/Produkt/VECTFIT/index.asp =
% = Note: RESTRICTED to NON-COMMERCIAL use =
% ===========================================================
%
% PURPOSE : Approximate f(s) with a state-space model
%
% f(s)=C*(s*I-A)^(-1)*B +D +s*E
%
% where f(s) is a singe element or a vector of elements.
% When f(s) is a vector, all elements become fitted with a common
% pole set.
%
% INPUT :
%
% f(s) : function (vector) to be fitted.
% dimension : (Nc,Ns)
% Nc : number of elements in vector
% Ns : number of frequency samples
%
% s : vector of frequency points [rad/sec]
% dimension : (1,Ns)
%
% poles : vector of initial poles [rad/sec]
% dimension : (1,N)
%
% weight: the rows in the system matrix are weighted using this array. Can be used
% for achieving higher accuracy at desired frequency samples.
% If no weighting is desired, use unitary weights: weight=ones(1,Ns).
%
% Two dimensions are allowed:
% dimension : (1,Ns) --> Common weighting for all vector elements.
% dimension : (Nc,Ns)--> Individual weighting for vector elements.
%
% opts.relax==1 --> Use relaxed nontriviality constraint
% opts.relax==0 --> Use nontriviality constraint of "standard" vector fitting
%
% opts.stable=0 --> unstable poles are kept unchanged
% opts.stable=1 --> unstable poles are made stable by 'flipping' them
% into the left half-plane
%
%
% opts.asymp=1 --> Fitting with D=0, E=0
% opts.asymp=2 --> Fitting with D~=0, E=0
% opts.asymp=3 --> Fitting with D~=0, E~=0
%
% opts.spy1=1 --> Plotting, after pole identification (A)
% figure(3): magnitude functions
% cyan trace : (sigma*f)fit
% red trace : (sigma)fit
% green trace : f*(sigma)fit - (sigma*f)fit
%
% opts.spy2=1 --> Plotting, after residue identification (C,D,E)
% figure(1): magnitude functions
% figure(2): phase angles
%
% opts.logx=1 --> Plotting using logarithmic absissa axis
%
% opts.logy=1 --> Plotting using logarithmic ordinate axis
%
% opts.errplot=1 --> Include deviation in magnitude plot
%
% opts.phaseplot=1 -->Show plot also for phase angle
%
%
% opts.skip_pole=1 --> The pole identification part is skipped, i.e (C,D,E)
% are identified using the initial poles (A) as final poles.
%
% opts.skip_res =1 --> The residue identification part is skipped, i.e. only the
% poles (A) are identified while C,D,E are returned as zero.
%
%
% opts.cmplx_ss =1 -->The returned state-space model has real and complex conjugate
% parameters. Output variable A is diagonal (and sparse).
% =0 -->The returned state-space model has real parameters only.
% Output variable A is square with 2x2 blocks (and sparse).
%
% OUTPUT :
%
% fit(s) = C*(s*I-(A)^(-1)*B +D +s.*E
%
% SER.A(N,N) : A-matrix (sparse). If cmplx_ss==1: Diagonal and complex.
% Otherwise, square and real with 2x2 blocks.
%
% SER.B(N,1) : B-matrix. If cmplx_ss=1: Column of 1's.
% If cmplx_ss=0: contains 0's, 1's and 2's)
% SER.C(Nc,N) : C-matrix. If cmplx_ss=1: complex
% If cmplx_ss=0: real-only
% SERD.D(Nc,1) : constant term (real). Is non-zero if asymp=2 or 3.
% SERE.E(Nc,1) : proportional term (real). Is non-zero if asymp=3.
%
% poles(1,N) : new poles
%
% rmserr(1) : root-mean-square error of approximation for f(s).
% (0 is returned if skip_res==1)
% fit(Nc,Ns): Rational approximation at samples. (0 is returned if
% skip_res==1).
%
%
% APPROACH:
% The identification is done using the pole relocating method known as Vector Fitting [1],
% with relaxed non-triviality constraint for faster convergence and smaller fitting errors [2],
% and utilization of matrix structure for fast solution of the pole identifion step [3].
%
%********************************************************************************
% NOTE: The use of this program is limited to NON-COMMERCIAL usage only.
% If the program code (or a modified version) is used in a scientific work,
% then reference should be made to the following:
%
% [1] B. Gustavsen and A. Semlyen, "Rational approximation of frequency
% domain responses by Vector Fitting", IEEE Trans. Power Delivery,
% vol. 14, no. 3, pp. 1052-1061, July 1999.
%
% [2] B. Gustavsen, "Improving the pole relocating properties of vector
% fitting", IEEE Trans. Power Delivery, vol. 21, no. 3, pp. 1587-1592,
% July 2006.
%
% [3] D. Deschrijver, M. Mrozowski, T. Dhaene, and D. De Zutter,
% "Macromodeling of Multiport Systems Using a Fast Implementation of
% the Vector Fitting Method", IEEE Microwave and Wireless Components
% Letters, vol. 18, no. 6, pp. 383-385, June 2008.
%********************************************************************************
% This example script is part of the vector fitting package (VFIT3.zip)
% Last revised: 08.08.2008.
% Created by: Bjorn Gustavsen.
%
%
def.relax=1; %Use vector fitting with relaxed non-triviality constraint
def.stable=1; %Enforce stable poles
def.asymp=2; %Include only D in fitting (not E)
def.skip_pole=0; %Do NOT skip pole identification
def.skip_res=0; %Do NOT skip identification of residues (C,D,E)
def.cmplx_ss=1; %Create complex state space model
def.spy1=0; %No plotting for first stage of vector fitting
def.spy2=1; %Create magnitude plot for fitting of f(s)
def.logx=1; %Use logarithmic abscissa axis
def.logy=1; %Use logarithmic ordinate axis
def.errplot=1; %Include deviation in magnitude plot
def.phaseplot=0; %exclude plot of phase angle (in addition to magnitiude)
def.legend=1; %Do include legends in plots
if nargin<5
opts=def;
else
%Merge default values into opts
A=fieldnames(def);
for m=1:length(A)
if ~isfield(opts,A(m))
dum=char(A(m)); dum2=getfield(def,dum); opts=setfield(opts,dum,dum2);
end
end
end
%Tolerances used by relaxed version of vector fitting
TOLlow=1e-18; TOLhigh=1e18;
[a,b]=size(poles);
if s(1)==0 && a==1
if poles(1)==0 && poles(2)~=0
poles(1)=-1;
elseif poles(2)==0 && poles(1)~=0
poles(2)=-1;
elseif poles(1)==0 && poles(2)==0
poles(1)=-1+i*10; poles(2)=-1-i*10;
end
end
if (opts.relax~=0) && (opts.relax)~=1
disp([' ERROR in vectfit3.m: ==> Illegal value for opts.relax: ' num2str(opts.asymp)]),return
end
if (opts.asymp~=1) && (opts.asymp)~=2 && (opts.asymp)~=3
disp([' ERROR in vectfit3.m: ==> Illegal value for opts.asymp: ' num2str(opts.asymp)]),return
end
if (opts.stable~=0) && (opts.stable~=1)
disp([' ERROR in vectfit3.m: ==> Illegal value for opts.stable: ' num2str(opts.stable)]),return
end
if (opts.skip_pole~=0) && (opts.skip_pole)~=1
disp([' ERROR in vectfit3.m: ==> Illegal value for opts.skip_pole: ' num2str(opts.skip_pole)]),return
end
if (opts.skip_res~=0) && (opts.skip_res)~=1
disp([' ERROR in vectfit3.m: ==> Illegal value for opts.skip_res: ' num2str(opts.skip_res)]),return
end
if (opts.cmplx_ss~=0) && (opts.cmplx_ss)~=1
disp([' ERROR in vectfit3.m: ==> Illegal value for opts.cmplx_ss: ' num2str(opts.cmplx_ss)]),return
end
rmserr=[];%SERC=[];
[a,b]=size(s);
if a<b, s=s.'; end
% Some sanity checks on dimension of input arrays:
if length(s)~=length(f(1,:))
disp('Error in vectfit3.m!!! ==> Second dimension of f does not match length of s.');
return;
end
if length(s)~=length(weight(1,:))
disp('Error in vectfit3.m!!! ==> Second dimension of weight does not match length of s.');
return;
end
if length(weight(:,1))~=1
if length(weight(:,1))~=length(f(:,1))
disp('Error in vectfit3.m!!! ==> First dimension of weight is neither 1 nor matches first dimension of f.');
return;
end
end
%set(0,'DefaultLineLineWidth',0.5) ; set(0,'DefaultLineMarkerSize',4) ;
%clear b; clear C;
LAMBD=diag(poles);
Ns=length(s); N=length(LAMBD); Nc=length(f(:,1));
B=ones(N,1); %I=diag(ones(1,N));
SERA=poles;SERC=zeros(Nc,N);SERD=zeros(Nc,1);SERE=zeros(Nc,1);
roetter=poles;
fit=zeros(Nc,Ns);
weight=weight.';
if length(weight(1,:))==1
common_weight=1;
elseif length(weight(1,:))==Nc
common_weight=0;
else
disp('ERROR in vectfit3.m: Invalid size of array weight')
return
end
if opts.asymp==1
offs=0;
elseif opts.asymp==2
offs=1;
else
offs=2;
end
%=========================================================================
%=========================================================================
% POLE IDENTIFICATION:
%=========================================================================
%=========================================================================
if opts.skip_pole~=1
Escale=zeros(1,Nc+1);
%=======================================================
% Finding out which starting poles are complex :
%=======================================================
cindex=zeros(1,N);
for m=1:N
if imag(LAMBD(m,m))~=0
if m==1
cindex(m)=1;
else
if cindex(m-1)==0 || cindex(m-1)==2
cindex(m)=1; cindex(m+1)=2;
else
cindex(m)=2;
end
end
end
end
%=======================================================
% Building system - matrix :
%=======================================================
%I3=diag(ones(1,Nc));I3(:,Nc)=[];
Dk=zeros(Ns,N);
for m=1:N
if cindex(m)==0 %real pole
Dk(:,m)=1./(s-LAMBD(m,m));
elseif cindex(m)==1 %complex pole, 1st part
Dk(:,m) =1./(s-LAMBD(m,m)) + 1./(s-LAMBD(m,m)');
Dk(:,m+1)=i./(s-LAMBD(m,m)) - i./(s-LAMBD(m,m)');
end
end
if opts.asymp==1 || opts.asymp==2
Dk(:,N+1)=1;
elseif opts.asymp==3
Dk(:,N+1)=1;
Dk(:,N+2)=s;
end
%Scaling for last row of LS-problem (pole identification)
scale=0;
for m=1:Nc
if length(weight(1,:))==1
scale=scale+(norm(weight(:,1).*f(m,:).'))^2;
else
scale=scale+(norm(weight(:,m).*f(m,:).'))^2;
end
end
scale=sqrt(scale)/Ns;
if opts.relax==1
%Escale=zeros(1,Nc*(N+offs)+N+1);
%scale=norm(f);%/Ns; %Scaling for sigma in LS problem
AA=zeros(Nc*(N+1),N+1);
bb=zeros(Nc*(N+1),1);
Escale=zeros(1,length(AA(1,:)));
for n=1:Nc
A=zeros(Ns,(N+offs) +N+1); %b=zeros(Ns*Nc+1,1);
if common_weight==1
weig=weight;
else
weig=weight(:,n);
end
for m=1:N+offs %left block
A(1:Ns,m)=weig.*Dk(1:Ns,m);
end
inda=N+offs;
for m=1:N+1 %right block
A(1:Ns,inda+m)=-weig.*Dk(1:Ns,m).*f(n,1:Ns).';
end
A=[real(A);imag(A)];
%Integral criterion for sigma:
offset=(N+offs);
if n==Nc
for mm=1:N+1
A(2*Ns+1,offset+mm)=real(scale*sum(Dk(:,mm)));
end
end
[Q,R]=qr(A,0);
ind1=N+offs+1;
ind2=N+offs+N+1;
R22=R(ind1:ind2,ind1:ind2);
AA((n-1)*(N+1)+1:n*(N+1),:)=R22;
if n==Nc
bb((n-1)*(N+1)+1:n*(N+1),1)=Q(end,N+offs+1:end)'*Ns*scale;
end
end %for n=1:Nc
for col=1:length(AA(1,:))
Escale(col)=1/norm(AA(:,col));
AA(:,col)=Escale(col).*AA(:,col);
end
x=AA\bb;
%size(x),size(Escale)
x=x.*Escale.';
end %if opts.relax==0
%Situation: No relaxation, or produced D of sigma extremely small and large. Solve again, without relaxation
if opts.relax==0 | abs(x(end))<TOLlow | abs(x(end))>TOLhigh
AA=zeros(Nc*(N),N);
bb=zeros(Nc*(N),1);
if opts.relax==0
Dnew=1;
else
if x(end)==0
Dnew=1;
elseif abs(x(end))<TOLlow
Dnew=sign(x(end))*TOLlow
elseif abs(x(end))>TOLhigh
Dnew=sign(x(end))*TOLhigh
end
end
for n=1:Nc
A=zeros(Ns,(N+offs) +N); %b=zeros(Ns*Nc+1,1);
Escale=zeros(1,N);
if common_weight==1
weig=weight;
else
weig=weight(:,n);
end
for m=1:N+offs %left block
A(1:Ns,m)=weig.*Dk(1:Ns,m);
end
inda=N+offs;
for m=1:N %right block
A(1:Ns,inda+m)=-weig.*Dk(1:Ns,m).*f(n,1:Ns).';
end
b=Dnew*weig.*f(n,1:Ns).';
A=[real(A);imag(A)];
b=[real(b);imag(b)];
offset=(N+offs);
[Q,R]=qr(A,0);
ind1=N+offs+1;
ind2=N+offs+N;
R22=R(ind1:ind2,ind1:ind2);
AA((n-1)*N+1:n*N,:)=R22;
bb((n-1)*N+1:n*N,1)=Q(:,ind1:ind2).'*b;
end %for n=1:Nc
for col=1:length(AA(1,:))
Escale(col)=1./norm(AA(:,col));
AA(:,col)=Escale(col).*AA(:,col);
end
%if opts.use_normal==1
% x=AA.'*AA\(AA.'*bb);
%else
x=AA\bb;
%end
x=x.*Escale.';
x=[x;Dnew];
end %if opts.relax==0 | abs(x(end))<TOLlow | abs(x(end))>TOLhigh
%************************************
C=x(1:end-1);
D=x(end); %NEW!!
%We now change back to make C complex :
% **************
for m=1:N
if cindex(m)==1
for n=1:1%Nc+1
r1=C(m); r2=C(m+1);
C(m)=r1+i*r2; C(m+1)=r1-i*r2;
end
end
end
% **************
if opts.spy1==1
Dk=zeros(Ns,N);
for m=1:N
Dk(:,m)=1./(s-LAMBD(m,m));
end
RES3(:,1)=D+Dk*C; % (sigma)rat
freq=s./(2*pi*i);
if opts.logx==1
if opts.logy==1
figure(3),
h1=loglog(freq,abs(RES3'),'b'); xlim([freq(1) freq(Ns)]); %sigma*f
else %logy=0
figure(3),
h1=semilogx(freq,abs(RES3'),'b'); xlim([freq(1) freq(Ns)]);
end
else %logx=0
if opts.logy==1
figure(3),
h1=semilogy(freq,abs(RES3'),'b'); xlim([freq(1) freq(Ns)]);
else %logy=0
figure(3),
h1=plot(s./(2*pi*i),abs(RES3'),'b'); xlim([freq(1) freq(Ns)]);
end
end
figure(3),xlabel('Frequency [Hz]'); ylabel('Magnitude');
%figure(3), title('Sigma')
if opts.legend==1
legend([h1(1)],'sigma');
end
drawnow;
end
%=============================================================================
% We now calculate the zeros for sigma :
%=============================================================================
%oldLAMBD=LAMBD;oldB=B;oldC=C;
m=0;
for n=1:N
m=m+1;
if m<N
if( abs(LAMBD(m,m))>abs(real(LAMBD(m,m))) ) %complex number?
LAMBD(m+1,m)=-imag(LAMBD(m,m)); LAMBD(m,m+1)=imag(LAMBD(m,m));
LAMBD(m,m)=real(LAMBD(m,m));LAMBD(m+1,m+1)=LAMBD(m,m);
B(m,1)=2; B(m+1,1)=0;
koko=C(m); C(m)=real(koko); C(m+1)=imag(koko);
m=m+1;
end
end
end
ZER=LAMBD-B*C.'/D;
roetter=eig(ZER).';
unstables=real(roetter)>0;
if opts.stable==1
roetter(unstables)=roetter(unstables)-2*real(roetter(unstables)); %Forcing unstable poles to be stable...
end
roetter=sort(roetter); N=length(roetter);
%=============================================
%Sorterer polene s.a. de reelle kommer først:
for n=1:N
for m=n+1:N
if imag(roetter(m))==0 && imag(roetter(n))~=0
trans=roetter(n); roetter(n)=roetter(m); roetter(m)=trans;
end
end
end
N1=0;
for m=1:N
if imag(roetter(m))==0, N1=m; end
end
if N1<N, roetter(N1+1:N)=sort(roetter(N1+1:N)); end % N1: n.o. real poles
%N2=N-N1; % N2: n.o. imag.poles
roetter=roetter-2*i*imag(roetter); %10.11.97 !!!
SERA=roetter.';
end %if skip_pole~=1
%=========================================================================
%=========================================================================
% RESIDUE IDENTIFICATION:
%=========================================================================
%=========================================================================
if opts.skip_res~=1
%=============================================================================
% We now calculate SER for f, using the modified zeros of sigma as new poles :
%========================================================================================
%clear LAMBD A A1 xA1 xxA1 A2 xA2 xxA2 b xb xxb C RES1 RES2;
LAMBD=roetter;
%B=ones(N,1);
% Finding out which poles are complex :
cindex=zeros(1,N);
for m=1:N
if imag(LAMBD(m))~=0
if m==1
cindex(m)=1;
else
if cindex(m-1)==0 || cindex(m-1)==2
cindex(m)=1; cindex(m+1)=2;
else
cindex(m)=2;
end
end
end
end
%===============================================================================
% We now calculate the SER for f (new fitting), using the above calculated
% zeros as known poles :
%===============================================================================
if opts.asymp==1
A=zeros(2*Ns,N); BB=zeros(2*Ns,Nc);
elseif opts.asymp==2
A=zeros(2*Ns,N+1); BB=zeros(2*Ns,Nc);
else
A=zeros(2*Ns,N+2); BB=zeros(2*Ns,Nc);
end
%I3=diag(ones(1,Nc));I3(:,Nc)=[];
Dk=zeros(Ns,N);
for m=1:N
if cindex(m)==0 %real pole
Dk(:,m)=1./(s-LAMBD(m));
elseif cindex(m)==1 %complex pole, 1st part
Dk(:,m) =1./(s-LAMBD(m)) + 1./(s-LAMBD(m)');
Dk(:,m+1)=i./(s-LAMBD(m)) - i./(s-LAMBD(m)');
end
end
if common_weight==1
%I3=diag(ones(1,Nc));I3(:,Nc)=[];
Dk=zeros(Ns,N);
for m=1:N
if cindex(m)==0 %real pole
Dk(:,m)=weight./(s-LAMBD(m));
elseif cindex(m)==1 %complex pole, 1st part
Dk(:,m) =weight./(s-LAMBD(m)) + weight./(s-LAMBD(m)');
Dk(:,m+1)=i.*weight./(s-LAMBD(m)) - i.*weight./(s-LAMBD(m)');
end
end
if opts.asymp==1
A(1:Ns,1:N)=Dk;
elseif opts.asymp==2
A(1:Ns,1:N)=Dk; A(1:Ns,N+1)=weight;
else
A(1:Ns,1:N)=Dk; A(1:Ns,N+1)=weight; A(1:Ns,N+2)=weight.*s;
end
for m=1:Nc
BB(1:Ns,m)=weight.*f(m,:).';
end
A(Ns+1:2*Ns,:)=imag(A(1:Ns,:));
A(1:Ns,:)=real(A(1:Ns,:));
BB(Ns+1:2*Ns,:)=imag(BB(1:Ns,:));
BB(1:Ns,:)=real(BB(1:Ns,:));
if opts.asymp==2
A(1:Ns,N+1)=A(1:Ns,N+1);
elseif opts.asymp==3
A(1:Ns,N+1)=A(1:Ns,N+1);
A(Ns+1:2*Ns,N+2)=A(Ns+1:2*Ns,N+2);
end
%clear Escale;
Escale=zeros(1,length(A(1,:)));
for col=1:length(A(1,:));
Escale(col)=norm(A(:,col),2);
A(:,col)=A(:,col)./Escale(col);
end
X=A\BB;
for n=1:Nc
X(:,n)=X(:,n)./Escale.';
end
%clear A;
X=X.';
C=X(:,1:N);
if opts.asymp==2
SERD=X(:,N+1);
elseif opts.asymp==3
SERE=X(:,N+2);
SERD=X(:,N+1);
end
else %if common_weight==1
SERD=zeros(Nc,1);
SERE=zeros(Nc,1);
C=zeros(Nc,N);
for n=1:Nc
if opts.asymp==1
A(1:Ns,1:N)=Dk;
elseif opts.asymp==2
A(1:Ns,1:N)=Dk; A(1:Ns,N+1)=1;
else
A(1:Ns,1:N)=Dk; A(1:Ns,N+1)=1; A(1:Ns,N+2)=s;
end
for m=1:length(A(1,:))
A(1:Ns,m)=weight(:,n).*A(1:Ns,m);
end
BB=weight(:,n).*f(n,:).';
A(Ns+1:2*Ns,:)=imag(A(1:Ns,:));
A(1:Ns,:)=real(A(1:Ns,:));
BB(Ns+1:2*Ns)=imag(BB(1:Ns));
BB(1:Ns)=real(BB(1:Ns));
if opts.asymp==2
A(1:Ns,N+1)=A(1:Ns,N+1);
elseif opts.asymp==3
A(1:Ns,N+1)=A(1:Ns,N+1);
A(Ns+1:2*Ns,N+2)=A(Ns+1:2*Ns,N+2);
end
%clear Escale;
Escale=zeros(1,length(A(1,:)));
for col=1:length(A(1,:));
Escale(col)=norm(A(:,col),2);
A(:,col)=A(:,col)./Escale(col);
end
x=A\BB;
x=x./Escale.';
%clear A;
C(n,1:N)=x(1:N).';
if opts.asymp==2
SERD(n)=x(N+1);
elseif opts.asymp==3
SERE(n)=x(N+2);
SERD(n)=x(N+1);
end
end %for n=1:Nc
end %if common_weight==1
%=========================================================================
%We now change back to make C complex.
for m=1:N
if cindex(m)==1
for n=1:Nc
r1=C(n,m); r2=C(n,m+1);
C(n,m)=r1+i*r2; C(n,m+1)=r1-i*r2;
end
end
end
% **************
B=ones(N,1);
%====================================================
SERA = LAMBD;
SERB = B;
SERC = C;
Dk=zeros(Ns,N);
for m=1:N
Dk(:,m)=1./(s-SERA(m));
end
for n=1:Nc
fit(n,:)=(Dk*SERC(n,:).').';
if opts.asymp==2
fit(n,:)=fit(n,:)+SERD(n);
elseif opts.asymp==3
fit(n,:)=fit(n,:)+SERD(n)+s.'.*SERE(n);
end
end
fit=fit.'; f=f.';
diff=fit-f; rmserr=sqrt(sum(sum(abs(diff.^2))))/sqrt(Nc*Ns);
if opts.spy2==1
freq=s./(2*pi*i);
if opts.logx==1
if opts.logy==1
figure(1),
h1=loglog(freq,abs(f),'b'); xlim([freq(1) freq(Ns)]);hold on
h2=loglog(freq,abs(fit),'r--'); hold off
if opts.errplot== 1
hold on,h3=loglog(freq,abs(f-fit),'g');hold off;
end
else %logy=0
figure(1),
h1=semilogx(freq,abs(f),'b'); xlim([freq(1) freq(Ns)]);hold on
h2=semilogx(freq,abs(fit),'r--'); hold off
if opts.errplot== 1
hold on,h3=semilogx(freq,abs(f-fit),'g');hold off;
end
end
if opts.phaseplot==1
figure(2),
h4=semilogx(freq,180*unwrap(angle(f))/pi,'b'); xlim([freq(1) freq(Ns)]);hold on
h5=semilogx(freq,180*unwrap(angle(fit))/pi,'r--');hold off
end
else %logx=0
if opts.logy==1
figure(1),
h1=semilogy(freq,abs(f),'b'); xlim([freq(1) freq(Ns)]);hold on
h2=semilogy(freq,abs(fit),'r--'); hold off
if opts.errplot== 1
hold on,h3=semilogy(freq,abs(f-fit),'g');hold off;
end
else %logy=0
figure(1),
h1=plot(freq,abs(f),'b'); xlim([freq(1) freq(Ns)]);hold on
h2=plot(freq,abs(fit),'r--'); hold off
if opts.errplot== 1
hold on,h3=plot(freq,abs(f-fit),'g');hold off;
end
end
if opts.phaseplot==1
figure(2),
h4=plot(freq,180*unwrap(angle(f))/pi,'b'); xlim([freq(1) freq(Ns)]);hold on
h5=plot(freq,180*unwrap(angle(fit))/pi,'r--');hold off
end
end %logy=0
figure(1),
xlabel('Frequency [Hz]'); ylabel('Magnitude');
%title('Approximation of f');
if opts.legend==1
if opts.errplot==1
legend([h1(1) h2(1) h3(1)],'Data','FRVF','Deviation');
else
legend([h1(1) h2(1)],'Data','FRVF');
end
end
if opts.phaseplot==1
figure(2),
xlabel('Frequency [Hz]'); ylabel('Phase angle [deg]');
%title('Approximation of f');
if opts.legend==1
legend([h4(1) h5(1)],'Data','FRVF');
end
end
drawnow;
end
fit=fit.';
end %if skip_res~=1
A=SERA;
poles=A;
if opts.skip_res~=1
B=SERB; C=SERC; D=SERD; E=SERE;
else
B=ones(N,1); C=zeros(Nc,N); D=zeros(Nc,Nc); E=zeros(Nc,Nc); rmserr=0;
end;
%========================================
% Convert into real state-space model
%========================================
if opts.cmplx_ss~=1
A=diag(sparse(A));
cindex=zeros(1,N);
for m=1:N
if imag(A(m,m))~=0
if m==1
cindex(m)=1;
else
if cindex(m-1)==0 || cindex(m-1)==2
cindex(m)=1; cindex(m+1)=2;
else
cindex(m)=2;
end
end
end
end
n=0;
for m=1:N
n=n+1;
if cindex(m)==1
a=A(n,n); a1=real(a); a2=imag(a);
c=C(:,n); c1=real(c); c2=imag(c);
b=B(n,:); b1=2*real(b); b2=-2*imag(b);
Ablock=[a1 a2;-a2 a1];
A(n:n+1,n:n+1)=Ablock;
C(:,n)=c1;
C(:,n+1)=c2;
B(n,:)=b1;
B(n+1,:)=b2;
end
end
else
A=sparse(diag(A)); % A is complex, make it diagonal
end %if cmplx_ss~=1
SER.A=A; SER.B=B; SER.C=C; SER.D=D; SER.E=E;

View File

@ -0,0 +1,287 @@
%% Clear Workspace and Close figures
clear; close all; clc;
%% Intialize Laplace variable
s = zpk('s');
%% Path for functions, data and scripts
addpath('./src/'); % Path for scripts
addpath('./mat/'); % Path for data
%% Colors for the figures
colors = colororder;
% Geometrical Measurements
% <<sec:test_apa_geometrical_measurements>>
% To measure the flatness of the two mechanical interfaces of the APA300ML, a small measurement bench is installed on top of a metrology granite with very good flatness.
% As shown in Figure ref:fig:test_apa_flatness_setup, the APA is fixed to a clamp while a measuring probe[fn:3] is used to measure the height of 4 points on each of the APA300ML interfaces.
% From the X-Y-Z coordinates of the measured 8 points, the flatness is estimated by best fitting[fn:4] a plane through all the points.
% #+name: fig:test_apa_flatness_setup
% #+attr_latex: :width 0.4\linewidth
% #+caption: Measurement setup for flatness estimation of the two mechanical interfaces
% [[file:figs/test_apa_flatness_setup.png]]
%% Measured height for all the APA at the 8 locations
apa1 = 1e-6*[0, -0.5 , 3.5 , 3.5 , 42 , 45.5, 52.5 , 46];
apa2 = 1e-6*[0, -2.5 , -3 , 0 , -1.5 , 1 , -2 , -4];
apa3 = 1e-6*[0, -1.5 , 15 , 17.5 , 6.5 , 6.5 , 21 , 23];
apa4 = 1e-6*[0, 6.5 , 14.5 , 9 , 16 , 22 , 29.5 , 21];
apa5 = 1e-6*[0, -12.5, 16.5 , 28.5 , -43 , -52 , -22.5, -13.5];
apa6 = 1e-6*[0, -8 , -2 , 5 , -57.5, -62 , -55.5, -52.5];
apa7 = 1e-6*[0, 9 , -18.5, -30 , 31 , 46.5, 16.5 , 7.5];
apa = {apa1, apa2, apa3, apa4, apa5, apa6, apa7};
%% X-Y positions of the measurements points
W = 20e-3; % Width [m]
L = 61e-3; % Length [m]
d = 1e-3; % Distance from border [m]
l = 15.5e-3; % [m]
pos = [[-L/2 + d, W/2 - d];
[-L/2 + l - d, W/2 - d];
[-L/2 + l - d, -W/2 + d];
[-L/2 + d, -W/2 + d];
[L/2 - l + d, W/2 - d];
[L/2 - d, W/2 - d];
[L/2 - d, -W/2 + d];
[L/2 - l + d, -W/2 + d]]';
%% Using fminsearch to find the best fitting plane
apa_d = zeros(1, 7); % Measured flatness of the APA
for i = 1:7
fun = @(x)max(abs(([pos; apa{i}]-[0;0;x(1)])'*([x(2:3);1]/norm([x(2:3);1]))));
x0 = [0;0;0];
[x, min_d] = fminsearch(fun,x0);
apa_d(i) = min_d;
end
% Stroke Measurement
% <<sec:test_apa_stroke_measurements>>
% The goal is here to verify that the stroke of the APA300ML is as specified in the datasheet.
% To do so, one side of the APA is fixed to the granite, and a displacement probe[fn:2] is located on the other side as shown in Figure ref:fig:test_apa_stroke_bench.
% Then, the voltage across the two actuator stacks is varied from $-20\,V$ to $150\,V$ using a DAC and a voltage amplifier.
% Note that the voltage is here slowly varied as the displacement probe has a very low measurement bandwidth (see Figure ref:fig:test_apa_stroke_bench, left).
% #+name: fig:test_apa_stroke_bench
% #+caption: Bench to measured the APA stroke
% #+attr_latex: :width 0.9\linewidth
% [[file:figs/test_apa_stroke_bench.jpg]]
% The measured APA displacement is shown as a function of the applied voltage in Figure ref:fig:test_apa_stroke_result, right.
% Typical hysteresis curves for piezoelectric stack actuators can be observed.
% The measured stroke is approximately $250\,\mu m$ when using only two of the three stacks, which is enough for the current application.
% This is even above what is specified as the nominal stroke in the data-sheet ($304\,\mu m$, therefore $\approx 200\,\mu m$ if only two stacks are used).
% It is clear from Figure ref:fig:test_apa_stroke_result that "APA 3" has an issue compared to the other units.
% This confirms the abnormal electrical measurements made in Section ref:sec:test_apa_electrical_measurements.
% This unit was send sent back to Cedrat and a new one was shipped back.
% From now on, only the six APA that behave as expected will be used.
%% Load the measured strokes
load('meas_apa_stroke.mat', 'apa300ml_2s')
%% Results of the measured APA stroke
figure;
tiledlayout(1, 2, 'TileSpacing', 'Compact', 'Padding', 'None');
% Generated voltage across the two piezoelectric stack actuators to estimate the stroke of the APA300ML
ax1 = nexttile();
plot(apa300ml_2s{1}.t - apa300ml_2s{1}.t(1), 20*apa300ml_2s{1}.V, 'k-')
xlabel('Time [s]'); ylabel('Voltage [V]')
ylim([-20, 160])
% Measured displacement as a function of the applied voltage
ax2 = nexttile();
hold on;
for i = 1:7
plot(20*apa300ml_2s{i}.V, 1e6*apa300ml_2s{i}.d, 'DisplayName', sprintf('APA %i', i))
end
hold off;
xlabel('Voltage [V]'); ylabel('Displacement [$\mu m$]')
legend('location', 'southwest', 'FontSize', 8)
xlim([-20, 150]); ylim([-250, 0]);
% X-Bending Mode
% The vibrometer is setup to measure the X-bending motion is shown in Figure ref:fig:test_apa_meas_setup_X_bending.
% The APA is excited with an instrumented hammer having a solid metallic tip.
% The impact point is on the back-side of the APA aligned with the top measurement point.
% #+name: fig:test_apa_meas_setup_X_bending
% #+caption: X-Bending measurement setup
% #+attr_latex: :width 0.7\linewidth
% [[file:figs/test_apa_meas_setup_X_bending.jpg]]
% The data is loaded.
%% Load Data
bending_X = load('apa300ml_bending_X_top.mat');
% The configuration (Sampling time and windows) for =tfestimate= is done:
%% Spectral Analysis setup
Ts = bending_X.Track1_X_Resolution; % Sampling Time [s]
Nfft = floor(1/Ts);
win = hanning(Nfft);
Noverlap = floor(Nfft/2);
% The transfer function from the input force to the output "rotation" (difference between the two measured distances).
%% Compute the transfer function from applied force to measured rotation
[G_bending_X, f] = tfestimate(bending_X.Track1, bending_X.Track2, win, Noverlap, Nfft, 1/Ts);
% The result is shown in Figure ref:fig:test_apa_meas_freq_bending_x.
% The can clearly observe a nice peak at 280Hz, and then peaks at the odd "harmonics" (third "harmonic" at 840Hz, and fifth "harmonic" at 1400Hz).
%% Plot the transfer function
figure;
hold on;
plot(f, abs(G_bending_X), 'k-');
hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Amplitude');
xlim([50, 2e3]); ylim([1e-5, 2e-1]);
text(280, 5.5e-2,{'280Hz'},'VerticalAlignment','bottom','HorizontalAlignment','center')
text(840, 2.0e-3,{'840Hz'},'VerticalAlignment','bottom','HorizontalAlignment','center')
text(1400, 7.0e-3,{'1400Hz'},'VerticalAlignment','bottom','HorizontalAlignment','center')
% Y-Bending Mode
% The setup to measure the Y-bending is shown in Figure ref:fig:test_apa_meas_setup_Y_bending.
% The impact point of the instrumented hammer is located on the back surface of the top interface (on the back of the 2 measurements points).
% #+name: fig:test_apa_meas_setup_Y_bending
% #+caption: Y-Bending measurement setup
% #+attr_latex: :width 0.7\linewidth
% [[file:figs/test_apa_meas_setup_Y_bending.jpg]]
% The data is loaded, and the transfer function from the force to the measured rotation is computed.
%% Load Data
bending_Y = load('apa300ml_bending_Y_top.mat');
%% Compute the transfer function
[G_bending_Y, ~] = tfestimate(bending_Y.Track1, bending_Y.Track2, win, Noverlap, Nfft, 1/Ts);
% The results are shown in Figure ref:fig:test_apa_meas_freq_bending_y.
% The main resonance is at 412Hz, and we also see the third "harmonic" at 1220Hz.
%% Plot the transfer function
figure;
hold on;
plot(f, abs(G_bending_Y), 'k-');
hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Amplitude');
xlim([50, 2e3]); ylim([1e-5, 3e-2])
text(412, 1.5e-2,{'412Hz'},'VerticalAlignment','bottom','HorizontalAlignment','center')
text(1218, 1.5e-2,{'1220Hz'},'VerticalAlignment','bottom','HorizontalAlignment','center')
% Z-Torsion Mode
% Finally, we measure the Z-torsion resonance as shown in Figure ref:fig:test_apa_meas_setup_torsion_bis.
% The excitation is shown on the other side of the APA, on the side to excite the torsion motion.
% #+name: fig:test_apa_meas_setup_torsion_bis
% #+caption: Z-Torsion measurement setup
% #+attr_latex: :width 0.7\linewidth
% [[file:figs/test_apa_meas_setup_torsion_bis.jpg]]
% The data is loaded, and the transfer function computed.
%% Load Data
torsion = load('apa300ml_torsion_left.mat');
%% Compute transfer function
[G_torsion, ~] = tfestimate(torsion.Track1, torsion.Track2, win, Noverlap, Nfft, 1/Ts);
% The results are shown in Figure ref:fig:test_apa_meas_freq_torsion_z.
% We observe a first peak at 267Hz, which corresponds to the X-bending mode that was measured at 280Hz.
% And then a second peak at 415Hz, which corresponds to the X-bending mode that was measured at 412Hz.
% A third mode at 800Hz could correspond to this torsion mode.
%% Plot the transfer function
figure;
hold on;
plot(f, abs(G_torsion), 'k-');
hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Amplitude');
xlim([50, 2e3]); ylim([1e-5, 2e-2])
text(415, 4.3e-3,{'415Hz'},'VerticalAlignment','bottom','HorizontalAlignment','center')
text(267, 8e-4,{'267Hz'}, 'VerticalAlignment', 'bottom','HorizontalAlignment','center')
text(800, 6e-4,{'800Hz'}, 'VerticalAlignment', 'bottom','HorizontalAlignment','center')
% #+name: fig:test_apa_meas_freq_torsion_z
% #+caption: Obtained FRF for the Z-torsion
% #+RESULTS:
% [[file:figs/test_apa_meas_freq_torsion_z.png]]
% In order to verify that, the APA is excited on the top part such that the torsion mode should not be excited.
%% Load data
torsion = load('apa300ml_torsion_top.mat');
%% Compute transfer function
[G_torsion_top, ~] = tfestimate(torsion.Track1, torsion.Track2, win, Noverlap, Nfft, 1/Ts);
% The two FRF are compared in Figure ref:fig:test_apa_meas_freq_torsion_z_comp.
% It is clear that the first two modes does not correspond to the torsional mode.
% Maybe the resonance at 800Hz, or even higher resonances. It is difficult to conclude here.
%% Plot the two transfer functions
figure;
hold on;
plot(f, abs(G_torsion), 'k-', 'DisplayName', 'Left excitation');
plot(f, abs(G_torsion_top), '-', 'DisplayName', 'Top excitation');
hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Amplitude');
xlim([50, 2e3]); ylim([1e-5, 2e-2])
text(415, 4.3e-3,{'415Hz'},'VerticalAlignment','bottom','HorizontalAlignment','center')
text(267, 8e-4,{'267Hz'}, 'VerticalAlignment', 'bottom','HorizontalAlignment','center')
text(800, 2e-3,{'800Hz'}, 'VerticalAlignment', 'bottom','HorizontalAlignment','center')
legend('location', 'northwest');
% Compare
% The three measurements are shown in Figure ref:fig:test_apa_meas_freq_compare.
figure;
hold on;
plot(f, abs(G_torsion), 'DisplayName', 'Torsion');
plot(f, abs(G_bending_X), 'DisplayName', 'Bending - X');
plot(f, abs(G_bending_Y), 'DisplayName', 'Bending - Y');
hold off;
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
xlabel('Frequency [Hz]'); ylabel('Amplitude');
xlim([50, 2e3]); ylim([1e-5, 1e-1]);
legend('location', 'southeast');

View File

@ -0,0 +1,575 @@
%% Clear Workspace and Close figures
clear; close all; clc;
%% Intialize Laplace variable
s = zpk('s');
%% Path for functions, data and scripts
addpath('./src/'); % Path for scripts
addpath('./mat/'); % Path for data
%% Colors for the figures
colors = colororder;
% Hysteresis
% <<ssec:test_apa_hysteresis>>
% As the payload is vertically guided without friction, the hysteresis of the APA can be estimated from the motion of the payload.
% A quasi static sinusoidal excitation $V_a$ with an offset of $65\,V$ (halfway between $-20\,V$ and $150\,V$), and an amplitude varying from $4\,V$ up to $80\,V$.
% For each excitation amplitude, the vertical displacement $d_e$ of the mass is measured and displayed as a function of the applied voltage..
%% Load measured data - hysteresis
apa_hyst = load('frf_data_1_hysteresis.mat', 't', 'u', 'de');
% Initial time set to zero
apa_hyst.t = apa_hyst.t - apa_hyst.t(1);
ampls = [0.1, 0.2, 0.4, 1, 2, 4]; % Excitation voltage amplitudes
% The measured displacements as a function of the output voltages are shown in Figure ref:fig:test_apa_meas_hysteresis.
% It is interesting to see that the hysteresis is increasing with the excitation amplitude.
%% Measured displacement as a function of the output voltage
figure;
hold on;
for i = [6,5,4,2]
i_lim = apa_hyst.t > i*5-1 & apa_hyst.t < i*5;
plot(20*apa_hyst.u(i_lim), 1e6*detrend(apa_hyst.de(i_lim), 0), ...
'DisplayName', sprintf('$V_a = 65 + %.0f \\sin (\\omega t) \\ [V]$', 20*ampls(i)))
end
hold off;
xlabel('Stack Voltage $V_a$ [V]'); ylabel('Displacement $d_e$ [$\mu$m]');
legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1);
xlim([-20, 150]);
ylim([-120, 120]);
% Axial stiffness
% <<ssec:test_apa_stiffness>>
% In order to estimate the stiffness of the APA, a weight with known mass $m_a = 6.4\,\text{kg}$ is added on top of the suspended granite and the deflection $d_e$ is measured using the encoder.
% The APA stiffness can then be estimated from equation eqref:eq:test_apa_stiffness.
% \begin{equation} \label{eq:test_apa_stiffness}
% k_{\text{apa}} = \frac{m_a g}{\Delta d_e}
% \end{equation}
%% Load data for stiffness measurement
apa_nums = [1 2 4 5 6 8];
apa_mass = {};
for i = 1:length(apa_nums)
apa_mass(i) = {load(sprintf('frf_data_%i_add_mass_closed_circuit.mat', apa_nums(i)), 't', 'de')};
% The initial displacement is set to zero
apa_mass{i}.de = apa_mass{i}.de - mean(apa_mass{i}.de(apa_mass{i}.t<11));
end
added_mass = 6.4; % Added mass [kg]
% The measured displacement $d_e$ as a function of time is shown in Figure ref:fig:test_apa_meas_stiffness_time.
% It can be seen that there are some drifts in the measured displacement (probably due to piezoelectric creep) and the that displacement does not come back to the initial position after the mass is removed (probably due to piezoelectric hysteresis).
% These two effects induce some uncertainties in the measured stiffness.
%% Plot the deflection at a function of time
figure;
hold on;
plot(apa_mass{2}.t(1:100:end)-apa_mass{2}.t(1), 1e6*apa_mass{2}.de(1:100:end), 'k-');
plot([0,20], [-0.4, -0.4], 'k--', 'LineWidth', 0.5)
plot([0,20], [-4.5, -4.5], 'k--', 'LineWidth', 0.5)
plot([0,20], [-37.4, -37.4], 'k--', 'LineWidth', 0.5)
% first stroke for stiffness measurements
anArrow = annotation('doublearrow', 'LineWidth', 0.5);
anArrow.Parent = gca;
anArrow.Position = [2, -0.4, 0, -37];
text(2.5, -20, sprintf('$d_1$'), 'horizontalalignment', 'left');
% second stroke for stiffness measurements
anArrow = annotation('doublearrow', 'LineWidth', 0.5);
anArrow.Parent = gca;
anArrow.Position = [18, -37.4, 0, 32.9];
text(18.5, -20, sprintf('$d_2$'), 'horizontalalignment', 'left');
% annotation('textarrow',[],y,'String',' Growth ','FontSize',13,'Linewidth',2)
hold off;
xlabel('Time [s]'); ylabel('Displacement $d_e$ [$\mu$m]');
% #+name: tab:test_apa_measured_stiffnesses
% #+caption: Measured stiffnesses (in $N/\mu m$)
% #+attr_latex: :environment tabularx :width 0.2\linewidth :align ccc
% #+attr_latex: :center t :booktabs t :float t
% #+RESULTS:
% | APA | $k_1$ | $k_2$ |
% |-----+-------+-------|
% | 1 | 1.68 | 1.9 |
% | 2 | 1.69 | 1.9 |
% | 4 | 1.7 | 1.91 |
% | 5 | 1.7 | 1.93 |
% | 6 | 1.7 | 1.92 |
% | 8 | 1.73 | 1.98 |
% The stiffness can also be computed using equation eqref:eq:test_apa_res_freq by knowing the main vertical resonance frequency $\omega_z \approx 94\,\text{Hz}$ (estimated by the dynamical measurements shown in section ref:ssec:test_apa_meas_frf_disp) and the suspended mass $m_{\text{sus}} = 5.7\,\text{kg}$.
% \begin{equation} \label{eq:test_apa_res_freq}
% \omega_z = \sqrt{\frac{k}{m_{\text{sus}}}}
% \end{equation}
% The obtain stiffness is $k \approx 2\,N/\mu m$ which is close to the values found in the documentation and by the "static deflection" method.
% However, changes in the electrical impedance connected to the piezoelectric stacks impacts the mechanical compliance (or stiffness) of the piezoelectric stack [[cite:&reza06_piezoel_trans_vibrat_contr_dampin chap. 2]].
% To estimate this effect, the stiffness of the APA if measured using the "static deflection" method in two cases:
% - $k_{\text{os}}$: piezoelectric stacks left unconnected (or connect to the high impedance ADC)
% - $k_{\text{sc}}$: piezoelectric stacks short circuited (or connected to the voltage amplifier with small output impedance)
% The open-circuit stiffness is estimated at $k_{\text{oc}} \approx 2.3\,N/\mu m$ and the closed-circuit stiffness $k_{\text{sc}} \approx 1.7\,N/\mu m$.
%% Load Data
add_mass_oc = load('frf_data_1_add_mass_open_circuit.mat', 't', 'de');
add_mass_cc = load('frf_data_1_add_mass_closed_circuit.mat', 't', 'de');
%% Zero displacement at initial time
add_mass_oc.de = add_mass_oc.de - mean(add_mass_oc.de(add_mass_oc.t<11));
add_mass_cc.de = add_mass_cc.de - mean(add_mass_cc.de(add_mass_cc.t<11));
%% Estimation of the stiffness in Open Circuit and Closed-Circuit
apa_k_oc = 9.8 * added_mass / (mean(add_mass_oc.de(add_mass_oc.t > 12 & add_mass_oc.t < 12.5)) - mean(add_mass_oc.de(add_mass_oc.t > 20 & add_mass_oc.t < 20.5)));
apa_k_sc = 9.8 * added_mass / (mean(add_mass_cc.de(add_mass_cc.t > 12 & add_mass_cc.t < 12.5)) - mean(add_mass_cc.de(add_mass_cc.t > 20 & add_mass_cc.t < 20.5)));
%% Estimated coupling factor
sqrt(1 - apa_k_sc/apa_k_oc)
% Dynamics
% <<ssec:test_apa_meas_dynamics>>
% In this section, the dynamics of the system from the excitation voltage $u$ to encoder measured displacement $d_e$ and to the force sensor voltage $V_s$ is identified.
%% Identification using sweep sine (low frequency)
load('frf_data_sweep.mat');
load('frf_data_noise_hf.mat');
%% Sampling Frequency
Ts = 1e-4; % Sampling Time [s]
Fs = 1/Ts; % Sampling Frequency [Hz]
%% "Hanning" windows used for the spectral analysis:
Nfft = floor(2/Ts);
win = hanning(Nfft);
Noverlap = floor(Nfft/2);
%% Separation of frequencies: low freqs using sweep sine, and high freq using noise
% Only used to have the frequency vector "f"
[~, f] = tfestimate(apa_sweep{1}.u, apa_sweep{1}.de, win, Noverlap, Nfft, 1/Ts);
i_lf = f <= 350;
i_hf = f > 350;
%% FRF estimation of the transfer function from u to de
enc_frf = zeros(length(f), length(apa_nums));
for i = 1:length(apa_nums)
[frf_lf, ~] = tfestimate(apa_sweep{i}.u, apa_sweep{i}.de, win, Noverlap, Nfft, 1/Ts);
[frf_hf, ~] = tfestimate(apa_noise_hf{i}.u, apa_noise_hf{i}.de, win, Noverlap, Nfft, 1/Ts);
enc_frf(:, i) = [frf_lf(i_lf); frf_hf(i_hf)];
end
%% FRF estimation of the transfer function from u to Vs
iff_frf = zeros(length(f), length(apa_nums));
for i = 1:length(apa_nums)
[frf_lf, ~] = tfestimate(apa_sweep{i}.u, apa_sweep{i}.Vs, win, Noverlap, Nfft, 1/Ts);
[frf_hf, ~] = tfestimate(apa_noise_hf{i}.u, apa_noise_hf{i}.Vs, win, Noverlap, Nfft, 1/Ts);
iff_frf(:, i) = [frf_lf(i_lf); frf_hf(i_hf)];
end
%% Save the identified dynamics for further analysis
save('mat/meas_apa_frf.mat', 'f', 'Ts', 'enc_frf', 'iff_frf', 'apa_nums');
% The obtained transfer functions for the 6 APA between the excitation voltage $u$ and the encoder displacement $d_e$ are shown in Figure ref:fig:test_apa_frf_encoder.
% The obtained transfer functions are close to a mass-spring-damper system.
% The following can be observed:
% - A "stiffness line" indicating a static gain equal to $\approx -17\,\mu m/V$.
% The minus sign comes from the fact that an increase in voltage stretches the piezoelectric stack that then reduces the height of the APA
% - A lightly damped resonance at $95\,\text{Hz}$
% - A "mass line" up to $\approx 800\,\text{Hz}$, above which some resonances appear
%% Plot the FRF from u to de
figure;
tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
ax1 = nexttile([2,1]);
hold on;
for i = 1:length(apa_nums)
plot(f, abs(enc_frf(:, i)), ...
'DisplayName', sprintf('APA %i', apa_nums(i)));
end
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude $d_e/u$ [m/V]'); set(gca, 'XTickLabel',[]);
hold off;
legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 2);
ylim([1e-8, 1e-3]);
ax2 = nexttile;
hold on;
for i = 1:length(apa_nums)
plot(f, 180/pi*angle(enc_frf(:, i)));
end
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
hold off;
yticks(-360:90:360);
linkaxes([ax1,ax2],'x');
xlim([10, 2e3]);
% #+name: fig:test_apa_frf_encoder
% #+caption: Estimated Frequency Response Function from generated voltage $u$ to the encoder displacement $d_e$ for the 6 APA300ML
% #+RESULTS:
% [[file:figs/test_apa_frf_encoder.png]]
% The dynamics from $u$ to the measured voltage across the sensor stack $V_s$ is also identified and shown in Figure ref:fig:test_apa_frf_force.
% A lightly damped resonance is observed at $95\,\text{Hz}$ and a lightly damped anti-resonance at $41\,\text{Hz}$.
% No additional resonances is present up to at least $2\,\text{kHz}$ indicating at Integral Force Feedback can be applied without stability issues from high frequency flexible modes.
% As illustrated by the Root Locus, the poles of the closed-loop system converges to the zeros of the open-loop plant.
% Suppose that a controller with a very high gain is implemented such that the voltage $V_s$ across the sensor stack is zero.
% In that case, because of the very high controller gain, no stress and strain is present on the sensor stack (and on the actuator stacks are well, as they are both in series).
% Such closed-loop system would therefore virtually corresponds to a system for which the piezoelectric stacks have been removed and just the mechanical shell is kept.
% From this analysis, the axial stiffness of the shell can be estimated to be $k_{\text{shell}} = 5.7 \cdot (2\pi \cdot 41)^2 = 0.38\,N/\mu m$.
% # TODO - Compare with FEM result
% Such reasoning can lead to very interesting insight into the system just from an open-loop identification.
%% Plot the FRF from u to Vs
figure;
tiledlayout(2, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
ax1 = nexttile;
hold on;
for i = 1:length(apa_nums)
plot(f, abs(iff_frf(:, i)), ...
'DisplayName', sprintf('APA %i', apa_nums(i)));
end
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude $V_s/u$ [V/V]'); set(gca, 'XTickLabel',[]);
hold off;
ylim([1e-2, 1e2]);
legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 2);
ax2 = nexttile;
hold on;
for i = 1:length(apa_nums)
plot(f, 180/pi*angle(iff_frf(:, i)));
end
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
hold off;
yticks(-360:90:360); ylim([-180, 180]);
linkaxes([ax1,ax2],'x');
xlim([10, 2e3]);
% Effect of the resistor on the IFF Plant
% <<ssec:test_apa_resistance_sensor_stack>>
% A resistor $R \approx 80.6\,k\Omega$ is added in parallel with the sensor stack which has the effect to form a high pass filter with the capacitance of the stack.
% As explain before, this is done for two reasons:
% 1. Limit the voltage offset due to the input bias current of the ADC
% 2. Limit the low frequency gain
% The (low frequency) transfer function from $u$ to $V_s$ with and without this resistor have been measured and are compared in Figure ref:fig:test_apa_effect_resistance.
% It is confirmed that the added resistor as the effect of adding an high pass filter with a cut-off frequency of $\approx 0.35\,\text{Hz}$.
%% Load the data
wi_k = load('frf_data_1_sweep_lf_with_R.mat', 't', 'Vs', 'Va'); % With the resistor
wo_k = load('frf_data_1_sweep_lf.mat', 't', 'Vs', 'Va'); % Without the resistor
%% Large Hanning window for good low frequency estimate
Nfft = floor(50/Ts);
win = hanning(Nfft);
Noverlap = floor(Nfft/2);
%% Compute the transfer functions from Va to Vs
[frf_wo_k, f] = tfestimate(wo_k.Va, wo_k.Vs, win, Noverlap, Nfft, 1/Ts);
[frf_wi_k, ~] = tfestimate(wi_k.Va, wi_k.Vs, win, Noverlap, Nfft, 1/Ts);
%% Model for the high pass filter
C = 5.1e-6; % Sensor Stack capacitance [F]
R = 80.6e3; % Parallel Resistor [Ohm]
f0 = 1/(2*pi*R*C); % Crossover frequency of RC HPF [Hz]
G_hpf = 0.6*(s/2*pi*f0)/(1 + s/2*pi*f0);
%% Compare the HPF model and the measured FRF
figure;
tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
ax1 = nexttile([2,1]);
hold on;
plot(f, abs(frf_wo_k), 'DisplayName', 'Without $R$');
plot(f, abs(frf_wi_k), 'DisplayName', 'With $R$');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude $V_s/u$ [V/V]'); set(gca, 'XTickLabel',[]);
hold off;
ylim([1e-1, 1e0]);
legend('location', 'southeast')
ax2 = nexttile;
hold on;
plot(f, 180/pi*angle(frf_wo_k));
plot(f, 180/pi*angle(frf_wi_k));
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
hold off;
yticks(-360:45:360); ylim([-45, 90]);
linkaxes([ax1,ax2],'x');
xlim([0.2, 8]);
% Integral Force Feedback
% <<ssec:test_apa_iff_locus>>
% This test bench can also be used to estimate the damping added by the implementation of an Integral Force Feedback strategy.
%% Load identification Data
data = load("2023-03-17_11-28_iff_plant.mat");
%% Spectral Analysis setup
Ts = 1e-4; % Sampling Time [s]
Nfft = floor(5/Ts);
win = hanning(Nfft);
Noverlap = floor(Nfft/2);
%% Compute the transfer function from applied force to measured rotation
[G_iff, f] = tfestimate(data.id_plant, data.Vs, win, Noverlap, Nfft, 1/Ts);
% First, the transfer function eqref:eq:test_apa_iff_manual_fit is manually tuned to match the identified dynamics from generated voltage $u$ to the measured sensor stack voltage $V_s$ in Section ref:ssec:test_apa_meas_dynamics.
% The obtained parameter values are $\omega_{\textsc{hpf}} = 0.4\, \text{Hz}$, $\omega_{z} = 42.7\, \text{Hz}$, $\xi_{z} = 0.4\,\%$, $\omega_{p} = 95.2\, \text{Hz}$, $\xi_{p} = 2\,\%$ and $g_0 = 0.64$.
% \begin{equation} \label{eq:test_apa_iff_manual_fit}
% G_{\textsc{iff},m}(s) = g_0 \cdot \frac{1 + 2 \xi_z \frac{s}{\omega_z} + \frac{s^2}{\omega_z^2}}{1 + 2 \xi_p \frac{s}{\omega_p} + \frac{s^2}{\omega_p^2}} \cdot \frac{s}{\omega_{\textsc{hpf}} + s}
% \end{equation}
% The comparison between the identified plant and the manually tuned transfer function is done in Figure ref:fig:test_apa_iff_plant_comp_manual_fit.
%% Basic manually tuned model
w0z = 2*pi*42.7; % Zero frequency
xiz = 0.004; % Zero damping
w0p = 2*pi*95.2; % Pole frequency
xip = 0.02; % Pole damping
G_iff_model = exp(-2*s*Ts)*0.64*(1 + 2*xiz/w0z*s + s^2/w0z^2)/(1 + 2*xip/w0p*s + s^2/w0p^2)*(s/(s+2*pi*0.4));
%% Identified IFF plant and manually tuned model of the plant
figure;
tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
ax1 = nexttile([2,1]);
hold on;
plot(f, abs(G_iff), 'color', colors(2,:), 'DisplayName', 'Identified plant')
plot(f, abs(squeeze(freqresp(G_iff_model, f, 'Hz'))), 'k--', 'DisplayName', 'Manual fit')
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude $V_s/u$ [V/V]'); set(gca, 'XTickLabel',[]);
legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1);
ax2 = nexttile;
hold on;
plot(f, 180/pi*angle(G_iff), 'color', colors(2,:));
plot(f, 180/pi*angle(squeeze(freqresp(G_iff_model, f, 'Hz'))), 'k--')
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
hold off;
yticks(-360:45:360);
ylim([-90, 180])
linkaxes([ax1,ax2],'x');
xlim([0.2, 1e3]);
% #+name: fig:test_apa_iff_plant_comp_manual_fit
% #+caption: Identified IFF plant and manually tuned model of the plant (a time delay of $200\,\mu s$ is added to the model of the plant to better match the identified phase)
% #+RESULTS:
% [[file:figs/test_apa_iff_plant_comp_manual_fit.png]]
% The implemented Integral Force Feedback Controller transfer function is shown in equation eqref:eq:test_apa_Kiff_formula.
% It contains an high pass filter (cut-off frequency of $2\,\text{Hz}$) to limit the low frequency gain, a low pass filter to add integral action above $20\,\text{Hz}$, a second low pass filter to add robustness to high frequency resonances and a tunable gain $g$.
% \begin{equation} \label{eq:test_apa_Kiff_formula}
% K_{\textsc{iff}}(s) = -10 \cdot g \cdot \frac{s}{s + 2\pi \cdot 2} \cdot \frac{1}{1 + 2\pi \cdot 20} \cdot \frac{1}{s + 2\pi\cdot 2000}
% \end{equation}
%% Integral Force Feedback Controller
K_iff = -10*(1/(s + 2*pi*20)) * ... % LPF: provides integral action above 20Hz
(s/(s + 2*pi*2)) * ... % HPF: limit low frequency gain
(1/(1 + s/2/pi/2e3)); % LPF: more robust to high frequency resonances
% To estimate how the dynamics of the APA changes when the Integral Force Feedback controller is implemented, the test bench shown in Figure ref:fig:test_apa_iff_schematic is used.
% The transfer function from the "damped" plant input $u\prime$ to the encoder displacement $d_e$ is identified for several IFF controller gains $g$.
% #+name: fig:test_apa_iff_schematic
% #+caption: Figure caption
% [[file:figs/test_apa_iff_schematic.png]]
%% Load Data
data = load("2023-03-17_14-10_damped_plants_new.mat");
%% Spectral Analysis setup
Ts = 1e-4; % Sampling Time [s]
Nfft = floor(1/Ts);
win = hanning(Nfft);
Noverlap = floor(Nfft/2);
%% Get the frequency vector
[~, f] = tfestimate(data.data(1).id_plant(1:end), data.data(1).dL(1:end), win, Noverlap, Nfft, 1/Ts);
%% Gains used for analysis are between 1 and 50
i_kept = [5:10]
%% Identify the damped plant from u' to de for different IFF gains
G_dL_frf = {zeros(1,length(i_kept))};
for i = 1:length(i_kept)
[G_dL, ~] = tfestimate(data.data(i_kept(i)).id_plant(1:end), data.data(i_kept(i)).dL(1:end), win, Noverlap, Nfft, 1/Ts);
G_dL_frf(i) = {G_dL};
end
% The identified dynamics are then fitted by second order transfer functions.
% The comparison between the identified damped dynamics and the fitted second order transfer functions is done in Figure ref:fig:test_apa_identified_damped_plants for different gains $g$.
% It is clear that large amount of damping is added when the gain is increased and that the frequency of the pole is shifted to lower frequencies.
%% Fit the data with 2nd order transfer function using vectfit3
opts = struct();
opts.stable = 1; % Enforce stable poles
opts.asymp = 1; % Force D matrix to be null
opts.relax = 1; % Use vector fitting with relaxed non-triviality constraint
opts.skip_pole = 0; % Do NOT skip pole identification
opts.skip_res = 0; % Do NOT skip identification of residues (C,D,E)
opts.cmplx_ss = 0; % Create real state space model with block diagonal A
opts.spy1 = 0; % No plotting for first stage of vector fitting
opts.spy2 = 0; % Create magnitude plot for fitting of f(s)
Niter = 100; % Number of iteration.
N = 2; % Order of approximation
poles = [-25 - 1i*60, -25 + 1i*60]; % First get for the pole location
G_dL_id = {zeros(1,length(i_kept))};
% Identification just between two frequencies
f_keep = (f>20 & f<200);
for i = 1:length(i_kept)
%% Estimate resonance frequency and damping
for iter = 1:Niter
[G_est, poles, ~, frf_est] = vectfit3(G_dL_frf{i}(f_keep).', 1i*2*pi*f(f_keep)', poles, ones(size(f(f_keep)))', opts);
end
G_dL_id(i) = {ss(G_est.A, G_est.B, G_est.C, G_est.D)};
end
%% Identified dynamics from u' to de for different IFF gains
figure;
tiledlayout(1, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
ax1 = nexttile();
hold on;
for i = 1:length(i_kept)
plot(f, abs(G_dL_frf{i}), 'color', [colors(i,:), 1], 'DisplayName', sprintf('g = %.0f', data.gains(i_kept(i))))
plot(f, abs(squeeze(freqresp(G_dL_id{i}, f, 'Hz'))), '--', 'color', [colors(i,:), 1], 'HandleVisibility', 'off')
end
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
xlabel('Frequency [Hz]'); ylabel('Amplitude $d_L/V_a$ [m/V]');
xlim([10, 1e3]);
legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1);
% #+name: fig:test_apa_identified_damped_plants
% #+caption: Identified dynamics (solid lines) and fitted transfer functions (dashed lines) from $u\prime$ to $d_e$ for different IFF gains
% #+RESULTS:
% [[file:figs/test_apa_identified_damped_plants.png]]
% The evolution of the pole in the complex plane as a function of the controller gain $g$ (i.e. the "root locus") is computed:
% - using the IFF plant model eqref:eq:test_apa_iff_manual_fit and the implemented controller eqref:eq:test_apa_Kiff_formula
% - from the fitted transfer functions of the damped plants experimentally identified for several controller gains
% The two obtained root loci are compared in Figure ref:fig:test_apa_iff_root_locus and are in good agreement considering that the damped plants were only fitted using a second order transfer function.
%% Root Locus of the APA300ML with Integral Force Feedback
% Comparison between the computed root locus from the plant model and the root locus estimated from the damped plant pole identification
figure;
gains = logspace(-1, 3, 1000);
figure;
hold on;
G_iff_poles = pole(G_iff_model);
i = imag(G_iff_poles) > 100; % Only keep relevant poles
plot(real(G_iff_poles(i)), imag(G_iff_poles(i)), 'kx', ...
'DisplayName', '$g = 0$');
G_iff_zeros = tzero(G_iff_model);
i = imag(G_iff_zeros) > 100; % Only keep relevant zeros
plot(real(G_iff_zeros(i)), imag(G_iff_zeros(i)), 'ko', ...
'HandleVisibility', 'off');
for g = gains
clpoles = pole(feedback(G_iff_model, g*K_iff, 1));
i = imag(clpoles) > 100; % Only keep relevant poles
plot(real(clpoles(i)), imag(clpoles(i)), 'k.', ...
'HandleVisibility', 'off');
end
for i = 1:length(i_kept)
plot(real(pole(G_dL_id{i})), imag(pole(G_dL_id{i})), 'x', 'color', [colors(i,:), 1], 'DisplayName', sprintf('g = %1.f', data.gains(i_kept(i))));
end
ylim([0, 700]);
xlim([-600,100]);
xlabel('Real Part')
ylabel('Imaginary Part')
axis square
legend('location', 'northwest');

View File

@ -0,0 +1,566 @@
%% Clear Workspace and Close figures
clear; close all; clc;
%% Intialize Laplace variable
s = zpk('s');
%% Path for functions, data and scripts
addpath('./src/'); % Path for scripts
addpath('./mat/'); % Path for data
addpath('./STEPS/'); % Path for Simscape Model
%% Open Simscape Model
mdl = 'test_apa_simscape'; % Name of the Simulink File
open(mdl); % Open Simscape Model
%% Colors for the figures
colors = colororder;
% First Identification
% <<sec:simscape_bench_apa_first_id>>
% The APA is first initialized with default parameters:
%% Initialize the structure with default values
n_hexapod = struct();
n_hexapod.actuator = initializeAPA(...
'type', '2dof', ...
'Ga', 1, ... % Actuator constant [N/V]
'Gs', 1); % Sensor constant [V/m]
% The transfer function from excitation voltage $V_a$ (before the amplification of $20$ due to the PD200 amplifier) to:
% 1. the sensor stack voltage $V_s$
% 2. the measured displacement by the encoder $d_e$
%% Input/Output definition
clear io; io_i = 1;
io(io_i) = linio([mdl, '/Va'], 1, 'openinput'); io_i = io_i + 1; % DAC Voltage
io(io_i) = linio([mdl, '/Vs'], 1, 'openoutput'); io_i = io_i + 1; % Sensor Voltage
io(io_i) = linio([mdl, '/de'], 1, 'openoutput'); io_i = io_i + 1; % Encoder
%% Linearization options
opts = linearizeOptions;
opts.SampleTime = 0;
%% Run the linearization
Ga = linearize(mdl, io, 0.0, opts);
Ga.InputName = {'Va'};
Ga.OutputName = {'Vs', 'de', 'da'};
% The obtain dynamics are shown in Figure ref:fig:apa_model_bench_bode_vs and ref:fig:apa_model_bench_bode_dl_z.
% It can be seen that:
% - the shape of these bode plots are very similar to the one measured in Section ref:sec:dynamical_meas_apa expect from a change in gain and exact location of poles and zeros
% - there is a sign error for the transfer function from $V_a$ to $V_s$.
% This will be corrected by taking a negative "sensor gain".
% - the low frequency zero of the transfer function from $V_a$ to $V_s$ is minimum phase as expected.
% The measured FRF are showing non-minimum phase zero, but it is most likely due to measurements artifacts.
%% Bode plot of the transfer function from u to taum
freqs = logspace(1, 3, 1000);
figure;
tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
ax1 = nexttile([2,1]);
hold on;
plot(freqs, abs(squeeze(freqresp(Ga('Vs', 'Va'), freqs, 'Hz'))), 'k-')
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude $V_s/V_a$ [V/V]'); set(gca, 'XTickLabel',[]);
hold off;
ax2 = nexttile;
hold on;
plot(freqs, 180/pi*angle(squeeze(freqresp(Ga('Vs', 'Va'), freqs, 'Hz'))), 'k-')
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
hold off;
yticks(-360:45:360);
ylim([-180, 0])
linkaxes([ax1,ax2],'x');
xlim([freqs(1), freqs(end)]);
% #+name: fig:apa_model_bench_bode_vs
% #+caption: Bode plot of the transfer function from $V_a$ to $V_s$
% #+RESULTS:
% [[file:figs/apa_model_bench_bode_vs.png]]
%% Bode plot of the transfer function from Va to de and da
freqs = logspace(1, 3, 1000);
figure;
tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
ax1 = nexttile([2,1]);
hold on;
plot(freqs, abs(squeeze(freqresp(Ga('de', 'Va'), freqs, 'Hz'))), 'DisplayName', 'Encoder')
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude $d/V_a$ [m/V]'); set(gca, 'XTickLabel',[]);
hold off;
legend('location', 'southwest');
ax2 = nexttile;
hold on;
plot(freqs, 180/pi*angle(squeeze(freqresp(Ga('de', 'Va'), freqs, 'Hz'))))
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
hold off;
yticks(-360:45:360);
ylim([-180, 0])
linkaxes([ax1,ax2],'x');
% Identification Data
% Let's load the measured FRF from the DAC voltage to the measured encoder and to the sensor stack voltage.
%% Load Data
load('meas_apa_frf.mat', 'f', 'Ts', 'enc_frf', 'iff_frf', 'apa_nums');
% 2DoF APA
% Let's initialize the APA as a 2DoF model with unity sensor and actuator gains.
%% Initialize a 2DoF APA with Ga=Gs=1
n_hexapod.actuator = initializeAPA(...
'type', '2dof', ...
'ga', 1, ...
'gs', 1);
% Identification without actuator or sensor constants
% The transfer function from $V_a$ to $V_s$, $d_e$ and $d_a$ is identified.
%% Input/Output definition
clear io; io_i = 1;
io(io_i) = linio([mdl, '/Va'], 1, 'openinput'); io_i = io_i + 1; % Actuator Voltage
io(io_i) = linio([mdl, '/Vs'], 1, 'openoutput'); io_i = io_i + 1; % Sensor Voltage
io(io_i) = linio([mdl, '/de'], 1, 'openoutput'); io_i = io_i + 1; % Encoder
io(io_i) = linio([mdl, '/da'], 1, 'openoutput'); io_i = io_i + 1; % Attocube
%% Identification
Gs = linearize(mdl, io, 0.0, options);
Gs.InputName = {'Va'};
Gs.OutputName = {'Vs', 'de', 'da'};
% Actuator Constant
% Then, the actuator constant can be computed as shown in Eq. eqref:eq:actuator_constant_formula by dividing the measured DC gain of the transfer function from $V_a$ to $d_e$ by the estimated DC gain of the transfer function from $V_a$ (in truth the actuator force called $F_a$) to $d_e$ using the Simscape model.
%% Estimated Actuator Constant
ga = -mean(abs(enc_frf(f>10 & f<20)))./dcgain(Gs('de', 'Va')); % [N/V]
% Sensor Constant
% Similarly, the sensor constant can be estimated using Eq. eqref:eq:sensor_constant_formula.
%% Estimated Sensor Constant
gs = -mean(abs(iff_frf(f>400 & f<500)))./(ga*abs(squeeze(freqresp(Gs('Vs', 'Va'), 1e3, 'Hz')))); % [V/m]
% Comparison
% Let's now initialize the APA with identified sensor and actuator constant:
%% Set the identified constants
n_hexapod.actuator = initializeAPA(...
'type', '2dof', ...
'ga', ga, ... % Actuator gain [N/V]
'gs', gs); % Sensor gain [V/m]
% And identify the dynamics with included constants.
%% Identify again the dynamics with correct Ga,Gs
Gs = linearize(mdl, io, 0.0, options);
Gs = Gs*exp(-Ts*s);
Gs.InputName = {'Va'};
Gs.OutputName = {'Vs', 'de', 'da'};
% The transfer functions from $V_a$ to $d_e$ are compared in Figure ref:fig:apa_act_constant_comp and the one from $V_a$ to $V_s$ are compared in Figure ref:fig:apa_sens_constant_comp.
%% Bode plot of the transfer function from u to de
freqs = logspace(1,4,1000);
figure;
tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
ax1 = nexttile([2,1]);
hold on;
for i = 1:length(apa_nums)
plot(f, abs(enc_frf(:, i)), 'color', [0,0,0,0.2]);
end
set(gca,'ColorOrderIndex',1);
plot(freqs, abs(squeeze(freqresp(Gs('de', 'Va'), freqs, 'Hz'))))
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude $d\mathcal{L}_m/u$ [m/V]'); set(gca, 'XTickLabel',[]);
hold off;
ylim([1e-8, 1e-3]);
ax2 = nexttile;
hold on;
for i = 1:length(apa_nums)
plot(f, 180/pi*angle(enc_frf(:,1)), 'color', [0,0,0,0.2]);
end
set(gca,'ColorOrderIndex',1);
plot(freqs, 180/pi*angle(squeeze(freqresp(Gs('de', 'Va'), freqs, 'Hz'))))
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
hold off;
yticks(-360:90:360); ylim([-180, 180]);
linkaxes([ax1,ax2],'x');
xlim([10, 2e3]);
% #+name: fig:apa_act_constant_comp
% #+caption: Comparison of the experimental data and Simscape model ($V_a$ to $d_e$)
% #+RESULTS:
% [[file:figs/apa_act_constant_comp.png]]
%% Bode plot of the transfer function from Va to Vs (both Simscape and measured FRF)
freqs = logspace(1,4,1000);
figure;
tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
ax1 = nexttile([2,1]);
hold on;
for i = 1:length(apa_nums)
plot(f, abs(iff_frf(:, i)), 'color', [0,0,0,0.2]);
end
set(gca,'ColorOrderIndex',1);
plot(freqs, abs(squeeze(freqresp(Gs('Vs', 'Va'), freqs, 'Hz'))))
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude $\tau_m/u$ [V/V]'); set(gca, 'XTickLabel',[]);
hold off;
ylim([1e-2, 1e2]);
ax2 = nexttile;
hold on;
for i = 1:length(apa_nums)
plot(f, 180/pi*angle(iff_frf(:,1)), 'color', [0,0,0,0.2]);
end
set(gca,'ColorOrderIndex',1);
plot(freqs, 180/pi*angle(squeeze(freqresp(Gs('Vs', 'Va'), freqs, 'Hz'))))
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
hold off;
yticks(-360:90:360); ylim([-180, 180]);
linkaxes([ax1,ax2],'x');
xlim([10, 2e3]);
% #+name: fig:apa_sens_constant_comp
% #+caption: Comparison of the experimental data and Simscape model ($V_a$ to $V_s$)
% #+RESULTS:
% [[file:figs/apa_sens_constant_comp.png]]
%% Compare the FRF and identified dynamics from Va to Vs and da
colors = colororder;
figure;
tiledlayout(3, 2, 'TileSpacing', 'Compact', 'Padding', 'None');
ax1 = nexttile([2,1]);
hold on;
plot(f, abs(enc_frf(:, 1)), 'color', [0,0,0,0.2], ...
'DisplayName', 'FRF');
for i = 2:length(apa_nums)
plot(f, abs(enc_frf(:, i)), 'color', [0,0,0, 0.2], ...
'HandleVisibility', 'off');
end
set(gca,'ColorOrderIndex',1);
plot(freqs, abs(squeeze(freqresp(Gs('da', 'Va'), freqs, 'Hz'))), '--', ...
'DisplayName', 'Model')
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude $d_a/V_a$ [m/V]'); set(gca, 'XTickLabel',[]);
hold off;
ylim([1e-8, 1e-3]);
legend('location', 'southwest');
ax1b = nexttile([2,1]);
hold on;
plot(f, abs(iff_frf(:, i)), 'color', [0,0,0,0.2], ...
'DisplayName', 'FRF');
for i = 1:length(apa_nums)
plot(f, abs(iff_frf(:, i)), 'color', [0,0,0,0.2], ...
'HandleVisibility', 'off');
end
set(gca,'ColorOrderIndex',1);
plot(freqs, abs(squeeze(freqresp(Gs('Vs', 'Va'), freqs, 'Hz'))), '--', ...
'DisplayName', 'Model')
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude $V_s/V_a$ [V/V]'); set(gca, 'XTickLabel',[]);
hold off;
ylim([1e-2, 1e2]);
legend('location', 'southeast');
ax2 = nexttile;
hold on;
for i = 1:length(apa_nums)
plot(f, 180/pi*angle(enc_frf(:, i)), 'color', [0,0,0, 0.2]);
end
set(gca,'ColorOrderIndex',1);
plot(freqs, 180/pi*angle(squeeze(freqresp(Gs('da', 'Va'), freqs, 'Hz'))), '--')
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
hold off;
yticks(-360:90:360); ylim([-180, 180]);
ax2b = nexttile;
hold on;
for i = 1:length(apa_nums)
plot(f, 180/pi*angle(iff_frf(:, i)), 'color', [0,0,0, 0.2]);
end
set(gca,'ColorOrderIndex',1);
plot(freqs, 180/pi*angle(squeeze(freqresp(Gs('Vs', 'Va'), freqs, 'Hz'))), '--')
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
hold off;
yticks(-360:90:360); ylim([-180, 180]);
linkaxes([ax1,ax2,ax1b,ax2b],'x');
xlim([10, 2e3]);
% Flexible APA
% The Simscape APA model is initialized as a flexible one with unity "constants".
%% Initialize the APA as a flexible body
n_hexapod.actuator = initializeAPA(...
'type', 'flexible', ...
'ga', 1, ...
'gs', 1);
% Identification without actuator or sensor constants
% The dynamics from $V_a$ to $V_s$, $d_e$ and $d_a$ is identified.
%% Identify the dynamics
Gs = linearize(mdl, io, 0.0, options);
Gs.InputName = {'Va'};
Gs.OutputName = {'Vs', 'de', 'da'};
% Actuator Constant
% Then, the actuator constant can be computed as shown in Eq. eqref:eq:actuator_constant_formula:
%% Actuator Constant
ga = -mean(abs(enc_frf(f>10 & f<20)))./dcgain(Gs('de', 'Va')); % [N/V]
% Sensor Constant
%% Sensor Constant
gs = -mean(abs(iff_frf(f>400 & f<500)))./(ga*abs(squeeze(freqresp(Gs('Vs', 'Va'), 1e3, 'Hz')))); % [V/m]
% Comparison
% Let's now initialize the flexible APA with identified sensor and actuator constant:
%% Set the identified constants
n_hexapod.actuator = initializeAPA(...
'type', 'flexible', ...
'ga', ga, ... % Actuator gain [N/V]
'gs', gs); % Sensor gain [V/m]
% And identify the dynamics with included constants.
%% Identify with updated constants
Gs = linearize(mdl, io, 0.0, options);
Gs = Gs*exp(-Ts*s);
Gs.InputName = {'Va'};
Gs.OutputName = {'Vs', 'de', 'da'};
% The obtained dynamics is compared with the measured one in Figures ref:fig:apa_act_constant_comp_flex and ref:fig:apa_sens_constant_comp_flex.
%% Bode plot of the transfer function from V_a to d_e (both Simscape and measured FRF)
figure;
tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
ax1 = nexttile([2,1]);
hold on;
for i = 1:length(apa_nums)
plot(f, abs(enc_frf(:, i)), 'color', [0,0,0,0.2]);
end
set(gca,'ColorOrderIndex',1);
plot(freqs, abs(squeeze(freqresp(Gs('de', 'Va'), freqs, 'Hz'))))
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude $d\mathcal{L}_m/u$ [m/V]'); set(gca, 'XTickLabel',[]);
hold off;
ylim([1e-9, 1e-3]);
ax2 = nexttile;
hold on;
for i = 1:length(apa_nums)
plot(f, 180/pi*angle(enc_frf(:,1)), 'color', [0,0,0,0.2]);
end
set(gca,'ColorOrderIndex',1);
plot(freqs, 180/pi*angle(squeeze(freqresp(Gs('de', 'Va'), freqs, 'Hz'))))
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
hold off;
yticks(-360:90:360); ylim([-180, 180]);
linkaxes([ax1,ax2],'x');
xlim([10, 2e3]);
% #+name: fig:apa_act_constant_comp_flex
% #+caption: Comparison of the experimental data and Simscape model ($u$ to $d\mathcal{L}_m$)
% #+RESULTS:
% [[file:figs/apa_act_constant_comp_flex.png]]
%% Bode plot of the transfer function from Va to Vs (both Simscape and measured FRF)
figure;
tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
ax1 = nexttile([2,1]);
hold on;
for i = 1:length(apa_nums)
plot(f, abs(iff_frf(:, i)), 'color', [0,0,0,0.2]);
end
set(gca,'ColorOrderIndex',1);
plot(freqs, abs(squeeze(freqresp(Gs('Vs', 'Va'), freqs, 'Hz'))))
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude $\tau_m/u$ [V/V]'); set(gca, 'XTickLabel',[]);
hold off;
ylim([1e-2, 1e2]);
ax2 = nexttile;
hold on;
for i = 1:length(apa_nums)
plot(f, 180/pi*angle(iff_frf(:,1)), 'color', [0,0,0,0.2]);
end
set(gca,'ColorOrderIndex',1);
plot(freqs, 180/pi*angle(squeeze(freqresp(Gs('Vs', 'Va'), freqs, 'Hz'))))
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
hold off;
yticks(-360:90:360); ylim([-180, 180]);
linkaxes([ax1,ax2],'x');
xlim([10, 2e3]);
% Optimize 2-DoF model to fit the experimental Data
% <<sec:simscape_bench_apa_tune_2dof_model>>
% The parameters of the 2DoF model presented in Section ref:sec:apa_2dof_model are now optimize such that the model best matches the measured FRF.
% After optimization, the following parameters are used:
%% Optimized parameters
n_hexapod.actuator = initializeAPA('type', '2dof', ...
'Ga', -32.2, ...
'Gs', 0.088, ...
'k', ones(6,1)*0.38e6, ...
'ke', ones(6,1)*1.75e6, ...
'ka', ones(6,1)*3e7, ...
'c', ones(6,1)*1.3e2, ...
'ce', ones(6,1)*1e1, ...
'ca', ones(6,1)*1e1 ...
);
%% Input/Output definition
clear io; io_i = 1;
io(io_i) = linio([mdl, '/Va'], 1, 'openinput'); io_i = io_i + 1; % Actuator Voltage
io(io_i) = linio([mdl, '/Vs'], 1, 'openoutput'); io_i = io_i + 1; % Sensor Voltage
io(io_i) = linio([mdl, '/de'], 1, 'openoutput'); io_i = io_i + 1; % Encoder
%% Identification with optimized parameters
Gs = exp(-s*Ts)*linearize(mdl, io, 0.0, options);
Gs.InputName = {'Va'};
Gs.OutputName = {'Vs', 'de'};
% The dynamics is identified using the Simscape model and compared with the measured FRF in Figure ref:fig:comp_apa_plant_after_opt.
%% Comparison of the experimental data and Simscape Model
freqs = 5*logspace(0, 3, 1000);
figure;
tiledlayout(3, 2, 'TileSpacing', 'Compact', 'Padding', 'None');
ax1 = nexttile([2,1]);
hold on;
for i = 1:length(apa_nums)
plot(f, abs(enc_frf(:, i)), 'color', [0,0,0,0.2]);
end
set(gca,'ColorOrderIndex',1);
plot(freqs, abs(squeeze(freqresp(Gs('de', 'Va'), freqs, 'Hz'))))
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude $d_e/V_a$ [m/V]'); set(gca, 'XTickLabel',[]);
hold off;
ylim([1e-8, 1e-3]);
ax1b = nexttile([2,1]);
hold on;
for i = 1:length(apa_nums)
plot(f, abs(iff_frf(:, i)), 'color', [0,0,0,0.2]);
end
set(gca,'ColorOrderIndex',1);
plot(freqs, abs(squeeze(freqresp(Gs('Vs', 'Va'), freqs, 'Hz'))))
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude $V_s/V_a$ [V/V]'); set(gca, 'XTickLabel',[]);
hold off;
ylim([1e-2, 1e2]);
ax2 = nexttile;
hold on;
for i = 1:length(apa_nums)
plot(f, 180/pi*angle(enc_frf(:, i)), 'color', [0,0,0,0.2]);
end
set(gca,'ColorOrderIndex',1);
plot(freqs, 180/pi*angle(squeeze(freqresp(Gs('de', 'Va'), freqs, 'Hz'))))
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
hold off;
yticks(-360:90:360); ylim([-180, 180]);
ax2b = nexttile;
hold on;
for i = 1:length(apa_nums)
plot(f, 180/pi*angle(iff_frf(:, i)), 'color', [0,0,0,0.2]);
end
set(gca,'ColorOrderIndex',1);
plot(freqs, 180/pi*angle(squeeze(freqresp(Gs('Vs', 'Va'), freqs, 'Hz'))))
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
hold off;
yticks(-360:90:360); ylim([-180, 180]);
linkaxes([ax1,ax2,ax1b,ax2b],'x');
xlim([10, 2e3]);

Binary file not shown.

View File

@ -621,9 +621,9 @@ It is however quite interesting that there is a factor $\approx \sqrt{2}$ betwee
** Conclusion :ignore: ** Conclusion :ignore:
* Dynamical measurements - APA * Dynamical measurements
:PROPERTIES: :PROPERTIES:
:header-args:matlab+: :tangle matlab/2_test_apa_dynamics.m :header-args:matlab+: :tangle matlab/test_apa_2_dynamics.m
:END: :END:
<<sec:test_apa_dynamics>> <<sec:test_apa_dynamics>>
@ -1218,7 +1218,7 @@ for i = 1:length(i_kept)
end end
#+end_src #+end_src
The identified dynamics are then fitted by second order transfer functions using the "Vector Fitting" toolbox [[cite:&gustavsen99_ration_approx_frequen_domain_respon]]. The identified dynamics are then fitted by second order transfer functions.
The comparison between the identified damped dynamics and the fitted second order transfer functions is done in Figure ref:fig:test_apa_identified_damped_plants for different gains $g$. The comparison between the identified damped dynamics and the fitted second order transfer functions is done in Figure ref:fig:test_apa_identified_damped_plants for different gains $g$.
It is clear that large amount of damping is added when the gain is increased and that the frequency of the pole is shifted to lower frequencies. It is clear that large amount of damping is added when the gain is increased and that the frequency of the pole is shifted to lower frequencies.
@ -1338,9 +1338,9 @@ So far, all the measured FRF are showing the dynamical behavior that was expecte
#+end_important #+end_important
* TODO Test Bench APA300ML - Simscape Model * Simscape Model
:PROPERTIES: :PROPERTIES:
:header-args:matlab+: :tangle matlab/3_test_apa_simscape.m :header-args:matlab+: :tangle matlab/test_apa_3_simscape.m
:END: :END:
<<sec:test_apa_simscape>> <<sec:test_apa_simscape>>
** Introduction :ignore: ** Introduction :ignore:
@ -1366,35 +1366,24 @@ After the transfer functions are extracted from the model (Section ref:sec:simsc
<<matlab-init>> <<matlab-init>>
#+end_src #+end_src
#+begin_src matlab :tangle no #+begin_src matlab :tangle no :noweb yes
%% Add useful folders to the path <<m-init-path>>
addpath('matlab/');
addpath('matlab/STEPS/');
addpath('matlab/mat/');
addpath('matlab/src/');
#+end_src #+end_src
#+begin_src matlab :eval no #+begin_src matlab :eval no :noweb yes
%% Add useful folders to the path <<m-init-path-tangle>>
addpath('STEPS/');
addpath('mat/');
addpath('src/');
#+end_src #+end_src
#+begin_src matlab #+begin_src matlab :tangle no :noweb yes
%% Frequency vector used for many plots <<m-init-path-simscape>>
freqs = 2*logspace(0, 3, 1000);
#+end_src #+end_src
#+begin_src matlab #+begin_src matlab :eval no :noweb yes
%% Open Simscape Model <<m-init-path-simscape-tangle>>
options = linearizeOptions; #+end_src
options.SampleTime = 0;
% Name of the Simulink File #+begin_src matlab :noweb yes
mdl = 'test_apa300ml'; <<m-init-other>>
open(mdl)
#+end_src #+end_src
** First Identification ** First Identification
@ -1421,8 +1410,12 @@ io(io_i) = linio([mdl, '/Va'], 1, 'openinput'); io_i = io_i + 1; % DAC Voltage
io(io_i) = linio([mdl, '/Vs'], 1, 'openoutput'); io_i = io_i + 1; % Sensor Voltage io(io_i) = linio([mdl, '/Vs'], 1, 'openoutput'); io_i = io_i + 1; % Sensor Voltage
io(io_i) = linio([mdl, '/de'], 1, 'openoutput'); io_i = io_i + 1; % Encoder io(io_i) = linio([mdl, '/de'], 1, 'openoutput'); io_i = io_i + 1; % Encoder
%% Linearization options
opts = linearizeOptions;
opts.SampleTime = 0;
%% Run the linearization %% Run the linearization
Ga = linearize(mdl, io, 0.0, options); Ga = linearize(mdl, io, 0.0, opts);
Ga.InputName = {'Va'}; Ga.InputName = {'Va'};
Ga.OutputName = {'Vs', 'de', 'da'}; Ga.OutputName = {'Vs', 'de', 'da'};
#+end_src #+end_src
@ -3029,6 +3022,25 @@ addpath('./src/'); % Path for scripts
addpath('./mat/'); % Path for data addpath('./mat/'); % Path for data
#+END_SRC #+END_SRC
** Initialize Simscape
#+NAME: m-init-path-simscape
#+BEGIN_SRC matlab
addpath('./matlab/STEPS/'); % Path for Simscape Model
%% Open Simscape Model
mdl = 'test_apa_simscape'; % Name of the Simulink File
open(mdl); % Open Simscape Model
#+END_SRC
#+NAME: m-init-path-simscape-tangle
#+BEGIN_SRC matlab
addpath('./STEPS/'); % Path for Simscape Model
%% Open Simscape Model
mdl = 'test_apa_simscape'; % Name of the Simulink File
open(mdl); % Open Simscape Model
#+END_SRC
** Initialize other elements ** Initialize other elements
#+NAME: m-init-other #+NAME: m-init-other
#+BEGIN_SRC matlab #+BEGIN_SRC matlab