diff --git a/CMakeLists.txt b/CMakeLists.txt
index c4917b45f..e464aa66b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -62,7 +62,7 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANGXX)
include(cMake/ConfigureChecks.cmake)
configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
add_definitions(-DHAVE_CONFIG_H)
- set(CMAKE_CXX_FLAGS "-Wall -Wno-deprecated -Wno-write-strings ${CMAKE_CXX_FLAGS}")
+ set(CMAKE_CXX_FLAGS "-Wall -Wno-deprecated -Wno-write-strings -std=c++11 ${CMAKE_CXX_FLAGS}")
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
# get linker errors as soon as possible and not at runtime e.g. for modules
if(UNIX)
diff --git a/FCMasterMerge.kdev4 b/FCMasterMerge.kdev4
new file mode 100644
index 000000000..1aa8760a5
--- /dev/null
+++ b/FCMasterMerge.kdev4
@@ -0,0 +1,3 @@
+[Project]
+Manager=KDevCMakeManager
+Name=FCMasterMerge
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine.jt b/data/tests/Jt/Engine/2_Cylinder_Engine.jt
new file mode 100644
index 000000000..e127bf970
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Cam_shaft_123_457_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Cam_shaft_123_457_0_Parts.jt
new file mode 100644
index 000000000..62e28de8c
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Cam_shaft_123_457_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Case_r_123_200_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Case_r_123_200_0_Parts.jt
new file mode 100644
index 000000000..939b2b8ed
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Case_r_123_200_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Cylinder_1_123_100_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Cylinder_1_123_100_0_Parts.jt
new file mode 100644
index 000000000..ec0e43589
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Cylinder_1_123_100_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Cylinder_2_123_101_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Cylinder_2_123_101_0_Parts.jt
new file mode 100644
index 000000000..b6e26e7a3
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Cylinder_2_123_101_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Head_1_123_150_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Head_1_123_150_0_Parts.jt
new file mode 100644
index 000000000..2eedfeac3
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Head_1_123_150_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Head_2_123_151_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Head_2_123_151_0_Parts.jt
new file mode 100644
index 000000000..e49232025
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Head_2_123_151_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Head_Nut_123_005_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Head_Nut_123_005_0_Parts.jt
new file mode 100644
index 000000000..7e4bff687
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Head_Nut_123_005_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Head_Stud_123_006_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Head_Stud_123_006_0_Parts.jt
new file mode 100644
index 000000000..2ce29b3bd
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Head_Stud_123_006_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Lifter_123_923_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Lifter_123_923_0_Parts.jt
new file mode 100644
index 000000000..dc21b8023
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Lifter_123_923_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Piston_123_844_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Piston_123_844_0_Parts.jt
new file mode 100644
index 000000000..f48296c86
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Piston_123_844_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Piston_pin_123_845_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Piston_pin_123_845_0_Parts.jt
new file mode 100644
index 000000000..d1a794b0c
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Piston_pin_123_845_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Rocker_Arm_123_600_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Rocker_Arm_123_600_0_Parts.jt
new file mode 100644
index 000000000..119ab63e6
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Rocker_Arm_123_600_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Rocker_Arm_Shaft_123_601_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Rocker_Arm_Shaft_123_601_0_Parts.jt
new file mode 100644
index 000000000..4380afdd8
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Rocker_Arm_Shaft_123_601_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Rocker_Arm_copy_123_602_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Rocker_Arm_copy_123_602_0_Parts.jt
new file mode 100644
index 000000000..fe3fdceaf
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Rocker_Arm_copy_123_602_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Rocker_Bolt_123_603_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Rocker_Bolt_123_603_0_Parts.jt
new file mode 100644
index 000000000..14b1608c3
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Rocker_Bolt_123_603_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Rocker_Mount_123_604_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Rocker_Mount_123_604_0_Parts.jt
new file mode 100644
index 000000000..49e3ca8a6
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Rocker_Mount_123_604_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Rocker_Mount_Cap_123_608_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Rocker_Mount_Cap_123_608_0_Parts.jt
new file mode 100644
index 000000000..fe5d96def
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Rocker_Mount_Cap_123_608_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Spark_Plug__0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Spark_Plug__0_Parts.jt
new file mode 100644
index 000000000..5a54db99a
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Spark_Plug__0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Spring_Link__0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Spring_Link__0_Parts.jt
new file mode 100644
index 000000000..3eef013db
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Spring_Link__0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Valve_123_700_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Valve_123_700_0_Parts.jt
new file mode 100644
index 000000000..ae47415de
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Valve_123_700_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Valve_Cover_123_701_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Valve_Cover_123_701_0_Parts.jt
new file mode 100644
index 000000000..e86d506fe
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Valve_Cover_123_701_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Valve_Cover_copy__0_Main.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Valve_Cover_copy__0_Main.jt
new file mode 100644
index 000000000..2bb2805cd
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Valve_Cover_copy__0_Main.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Valve_Spring_123_702_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Valve_Spring_123_702_0_Parts.jt
new file mode 100644
index 000000000..1b7d8d5e5
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Valve_Spring_123_702_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/Valve_Spring_Cap_123_704_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/Valve_Spring_Cap_123_704_0_Parts.jt
new file mode 100644
index 000000000..12373feca
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/Valve_Spring_Cap_123_704_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/cam_gear_123_456_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/cam_gear_123_456_0_Parts.jt
new file mode 100644
index 000000000..bf095af22
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/cam_gear_123_456_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/crank_123_782_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/crank_123_782_0_Parts.jt
new file mode 100644
index 000000000..b1487fe6d
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/crank_123_782_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/crank_gear_123_783_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/crank_gear_123_783_0_Parts.jt
new file mode 100644
index 000000000..04f28aad3
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/crank_gear_123_783_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/cylinder_bolt_pattern__0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/cylinder_bolt_pattern__0_Parts.jt
new file mode 100644
index 000000000..cb70c2440
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/cylinder_bolt_pattern__0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine/rod_123_699_0_Parts.jt b/data/tests/Jt/Engine/2_Cylinder_Engine/rod_123_699_0_Parts.jt
new file mode 100644
index 000000000..5cc5791a6
Binary files /dev/null and b/data/tests/Jt/Engine/2_Cylinder_Engine/rod_123_699_0_Parts.jt differ
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine1_Internals.plmxml b/data/tests/Jt/Engine/2_Cylinder_Engine1_Internals.plmxml
new file mode 100644
index 000000000..0f231b863
--- /dev/null
+++ b/data/tests/Jt/Engine/2_Cylinder_Engine1_Internals.plmxml
@@ -0,0 +1,403 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+0.9861037135124207 -0.1661308258771896 -1.166810754732375e-015 0 0.1661308258771896 0.9861037135124207 -1.062013085640994e-015 0 1.327029577804367e-015 8.534118465009541e-016 1 0 0.07101806253194809 0.02219301462173462 0.02199999988079071 1
+
+
+-1 1.10096191110321e-032 -7.293991291219912e-017 0 1.10096191110321e-032 -1 -3.018818806569426e-016 0 -7.293991291219912e-017 -3.018818806569426e-016 1 0 -0.1368601024150848 0.06445372104644775 0.003820367390289903 1
+
+
+-1 -1.334063881586189e-008 7.982825511732017e-010 0 1.10096191110321e-032 -1 -3.018818806569426e-016 0 -7.293991291219912e-017 -3.018818806569426e-016 1 0 -0.294677197933197 0.07397986948490143 0.01617963239550591 1
+
+
+0.9995650053024292 0.02949320152401924 -7.979323313200837e-010 0 -0.0294931884855032 0.9995650053024292 2.354164085893729e-011 0 -3.085015966644567e-015 2.168479519145078e-015 1 0 -0.0453154630959034 -0.02461725845932961 -0.02632036805152893 1
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0.1368601024150848 -0.06445372104644775 -0.03617963194847107 1
+
+
+-1 -1.334063881586189e-008 7.041613514502387e-009 0 -1.003604666278664e-019 -1 1.355268465125744e-016 0 -1.736007260287489e-016 1.355268465125744e-016 1 0 -0.294677197933197 0.07397986948490143 0.0161796361207962 1
+
+
+0.9995650053024292 0.02949320152401924 -7.038550631222051e-009 0 -0.0294931884855032 0.9995650053024292 2.076799010541919e-010 0 1.57434811062825e-016 -2.681045890006053e-016 1 0 -0.0453154630959034 -0.02461725845932961 -0.02632036432623863 1
+
+
+0.7071067690849304 -0.7071067690849304 4.055928498874345e-013 0 0.7071067690849304 0.7071067690849304 6.101357784178425e-016 0 -2.872288724139332e-013 2.863660101149607e-013 1 0 0.04717867448925972 -0.0528213270008564 -0.08894477039575577 1
+
+
+1.214013511940948e-008 -7.440697502580917e-010 1 0 -0.9059386253356934 0.4234090149402618 3.675416633368289e-013 0 -0.4234090149402618 -0.9059386253356934 1.728632428171784e-013 0 -0.03029589354991913 -0.05256131291389465 0.02505522221326828 1
+
+
+-0.4234090149402618 -0.9059386253356934 1.726649286873036e-013 0 -0.9059386253356934 0.4234090149402618 3.675724817835818e-013 0 -1.214013511940948e-008 7.440699723026967e-010 -1 0 -0.09059386700391769 -0.02437981590628624 -0.04005522653460503 1
+
+
+-0.5 -0.8660253882408142 -2.979083167524747e-016 0 0.8660253882408142 -0.5 -7.816530680941419e-016 0 5.279772353637604e-016 -6.488226847947026e-016 1 0 0.01809818297624588 -0.06969784200191498 -0.1055598109960556 1
+
+
+-0.9390942454338074 0.3436597287654877 1.284025318025572e-016 0 -0.3436597883701325 -0.9390941858291626 -6.660528172495127e-016 0 2.47777798279003e-008 -2.063888393522007e-009 1 0 -0.05131101608276367 -0.05052240565419197 0.1075598075985909 1
+
+
+-0.9390942454338074 0.3436597287654877 3.809448359261655e-016 0 -0.3436597883701325 -0.9390941858291626 -2.583991531420675e-015 0 2.47777798279003e-008 -2.063890391923451e-009 1 0 -0.05131101980805397 -0.05052240565419197 -0.01844018884003162 1
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+1.665474158585312e-008 1.004267005555448e-006 -1 0 -1 -1.666503557373744e-008 -1.665475757306467e-008 0 -1.6665051560949e-008 1 1.004267005555448e-006 0 -0.04826182126998901 -0.05911042168736458 0.03459598124027252 1
+
+
+1 9.977915303889529e-014 -9.877358024823479e-007 0 -9.946720638254192e-007 -3.500436562831055e-008 -0.9999999403953552 0 -2.75101122437782e-014 1 -2.288952989822068e-013 0 0.02452629990875721 0.2137382179498673 0.2830735743045807 1
+
+
+0.9999974370002747 -7.939097296238984e-011 -0.002271066652610898 0 9.118318147522016e-016 1 3.807415215490448e-015 0 0.002271073637530208 3.500404588407946e-008 0.9999973773956299 0 -0.0001340909366263077 -0.01299998629838228 0.0001236627285834402 1
+
+
+-0.9999850392341614 -0.004973083734512329 -0.002270016819238663 0 0.004973071627318859 -0.9999875426292419 1.127185623772675e-005 0 -0.002270089229568839 -4.575558421038295e-008 0.9999972581863403 0 0.0487947128713131 0.7686771750450134 -0.02040251158177853 1
+
+
+1 -7.424300063618716e-011 1.35305974757749e-010 0 1.276140897124513e-015 0.9999998807907105 4.341043060584901e-016 0 -4.433523059788058e-008 -2.848764957263938e-008 0.9999998211860657 0 -1.748614808505522e-009 -9.381160293031599e-010 -7.228971310446752e-010 1
+
+
+0.9999973773956299 1.651584646822357e-008 0.002270044526085258 0 -1.669391558323241e-008 0.9999998807907105 1.723048725921217e-008 0 -0.002270088996738195 -4.57557440824985e-008 0.9999972581863403 0 0.04950515553355217 0.3443533480167389 0.07959935814142227 1
+
+
+0.9999973773956299 1.651585179729409e-008 0.002270044526085258 0 1.669392091230293e-008 -0.9999998807907105 -1.723048725921217e-008 0 0.002270088996738195 4.57557440824985e-008 -0.9999972581863403 0 0.04947110638022423 0.2571229636669159 0.09459931403398514 1
+
+
+0.9984452724456787 1.914222380605679e-008 -0.05574143305420876 0 -0.05574139580130577 4.472066095217997e-008 -0.9984451532363892 0 -1.669391203051873e-008 1 1.723049436463953e-008 0 0.01820174790918827 0.326738178730011 0.2976770401000977 1
+
+
+0.9984543323516846 1.913488922866691e-008 -0.05557771772146225 0 -0.05557768046855927 4.472379444564467e-008 -0.998454213142395 0 -1.669391025416189e-008 0.9999998807907105 1.723049436463953e-008 0 0.06816709786653519 0.326738178730011 0.2977887094020844 1
+
+
+1 -7.424300063618716e-011 1.35305974757749e-010 0 1.276140897124513e-015 0.9999998807907105 4.341043060584901e-016 0 -4.433523059788058e-008 -2.848764957263938e-008 0.9999998211860657 0 -4.064914627122107e-009 -1.459414988858043e-008 -0.09999953210353851 1
+
+
+0.9999974370002747 1.662746029751361e-008 0.002270044526085258 0 -1.669391735958925e-008 1.00000011920929 1.723049081192585e-008 0 -0.002270061522722244 -2.438619972622291e-008 0.9999974966049194 0 0.04973216727375984 0.3443534076213837 0.07959914952516556 1
+
+
+0.9999974370002747 1.662746562658413e-008 0.002270044526085258 0 1.669392268865977e-008 -1.00000011920929 -1.723049081192585e-008 0 0.002270061522722244 2.438619972622291e-008 -0.9999974966049194 0 0.0496981143951416 0.2571230232715607 0.09459911286830902 1
+
+
+0.9986630082130432 1.791910797521723e-008 -0.05169311910867691 0 -0.05169309675693512 2.345346850063379e-008 -0.998663067817688 0 -1.669391025416189e-008 1.00000011920929 1.72305067991374e-008 0 0.01757495850324631 0.3267382085323334 0.2976291477680206 1
+
+
+0.9986716508865356 1.791518755567267e-008 -0.05152621492743492 0 -0.05152619630098343 2.345645455648082e-008 -0.9986717104911804 0 -1.669391025416189e-008 1.00000011920929 1.723049791735321e-008 0 0.06753963232040405 0.3267382085323334 0.2977406084537506 1
+
+
+-0.9999873042106628 -0.004487393889576197 -0.00227002170868218 0 0.004487383179366589 -0.9999898076057434 1.016931855701841e-005 0 -0.002270088996738195 -4.575493051106605e-008 0.9999972581863403 0 -0.02998023852705956 0.7686992287635803 -0.02058133110404015 1
+
+
+-0.821344792842865 -0.3829995691776276 0.4227339625358582 0 -0.3831273019313812 -0.1786547750234604 -0.9062537550926209 0 0.4226182997226715 -0.9063078165054321 -4.468796817036491e-007 0 -0.2707940638065338 0.1454340070486069 0.1220441088080406 1
+
+
+0.4546822905540466 0.654166042804718 0.6044259667396545 0 -0.8696395754814148 0.4726209938526154 0.1426760256290436 0 -0.1923305839300156 -0.5905050039291382 0.7837809920310974 0 0.09187051653862 0.08063256740570068 0.1662608832120895 1
+
+
+0.7850326299667358 0.06081443279981613 -0.6164620518684387 0 -0.1356190741062164 0.9878997206687927 -0.07524674385786057 0 0.6044265031814575 0.1426751911640167 0.7837809920310974 0 -0.001248535001650453 -0.2500619888305664 -0.09022713452577591 1
+
+
+0.7850326299667358 0.06081448495388031 -0.6164620518684387 0 -0.3924773633480072 -0.7211050391197205 -0.5709372162818909 0 -0.4792551398277283 0.6901518106460571 -0.5422225594520569 0 0.0455969013273716 0.2435131669044495 0.06938881427049637 1
+
+
+1 -3.002940829333056e-008 3.437022044749938e-008 0 -4.150651022882812e-008 1.000000238418579 4.017514854126603e-008 0 3.73510147255729e-008 2.773385787691041e-008 1 0 -1.489124112907803e-008 -4.276215381793236e-009 1.08718030134014e-008 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1410751193761826 0.09142301231622696 -0.3314632773399353 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.05227819457650185 0.07644443958997726 -0.1796288043260574 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1347948610782623 0.09093648940324783 -0.3265315294265747 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.05855846777558327 0.07595790922641754 -0.1746970862150192 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1285146176815033 0.0904499888420105 -0.3215998709201813 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.0648387148976326 0.07547140121459961 -0.1697653979063034 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1222343519330025 0.08996346592903137 -0.3166681826114655 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.07111898809671402 0.07498487830162048 -0.1648336797952652 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1159540787339211 0.08947695046663284 -0.3117364346981049 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.07739924639463425 0.07449836283922195 -0.1599020063877106 1
+
+
+-0.4546823501586914 0.6541661024093628 -0.6044260263442993 0 0.8696396350860596 0.4726210236549377 -0.1426760405302048 0 0.192330613732338 -0.5905051231384277 -0.7837811708450317 0 0.01489819493144751 0.08582951128482819 -0.04803464561700821 1
+
+
+1 2.298901691233368e-008 -2.432995493961698e-008 0 -3.89851670945518e-008 0.9999998807907105 -1.280528216796029e-008 0 -3.000558379540053e-008 -2.485903749516183e-008 0.9999998807907105 0 -1.494453005790319e-009 -7.655864275868396e-010 -5.496130661697407e-009 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.1413719058036804 0.08810769766569138 -0.3271084725856781 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.05524870008230209 0.07287602126598358 -0.1727083474397659 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.1366616934537888 0.08774281293153763 -0.3234097063541412 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.05995889753103256 0.07251112163066864 -0.1690095812082291 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.1319515109062195 0.08737793564796448 -0.3197109401226044 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.06466909497976303 0.07214623689651489 -0.165310800075531 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.127241313457489 0.08701304346323013 -0.3160121440887451 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.0693792924284935 0.07178134471178055 -0.1616120338439941 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.1225311160087585 0.08664815127849579 -0.3123133778572083 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.07408948242664337 0.0714164674282074 -0.1579132527112961 1
+
+
+0.7850325107574463 0.06081444025039673 -0.6164620518684387 0 -0.135619044303894 0.9878994226455689 -0.07524680346250534 0 0.6044264435768127 0.1426751613616943 0.7837807536125183 0 -0.005746716633439064 -0.250409871339798 -0.08668788522481918 1
+
+
+0.7850325703620911 0.06081447005271912 -0.6164620518684387 0 -0.3681581914424896 -0.7545340657234192 -0.543265700340271 0 -0.498180091381073 0.6534368991851807 -0.5699445009231567 0 0.03418708592653275 0.2526659965515137 0.06506367027759552 1
+
+
+0.9026297330856323 0.4304179251194 -9.149687798526429e-007 0 -0.4304179251194 0.9026297330856323 4.554329109396349e-007 0 1.028840756589489e-006 1.773579327846164e-008 0.9999999403953552 0 0.2777610719203949 0.5800805687904358 -0.005389846861362457 1
+
+
+0.9026297926902771 -0.4304177463054657 -9.298340728491894e-007 0 0.4304177463054657 0.9026297926902771 -4.242589284331189e-007 0 1.028840756589489e-006 1.773579505481848e-008 0.9999999403953552 0 0.3539793193340302 0.3309040069580078 -0.005389927886426449 1
+
+
+-0.8213930130004883 0.3830220103263855 0.4226199984550476 0 -0.3830239772796631 0.1786065548658371 -0.9063069224357605 0 -0.4226182103157044 -0.9063078165054321 4.008188341231289e-007 0 -0.141640841960907 0.3886727094650269 0.1220077648758888 1
+
+
+-0.9861037135124207 0.1661308258771896 1.702963710921711e-016 0 -0.1661308258771896 -0.9861037135124207 -3.509013978502231e-016 0 1.096343463342109e-016 -3.743166442952229e-016 1 0 -0.07101806253194809 -0.02219301089644432 -0.01999999769032002 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine2_Externals.plmxml b/data/tests/Jt/Engine/2_Cylinder_Engine2_Externals.plmxml
new file mode 100644
index 000000000..7567afe10
--- /dev/null
+++ b/data/tests/Jt/Engine/2_Cylinder_Engine2_Externals.plmxml
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+1.421973649939901e-012 0.002356703858822584 -0.9999971985816956 0 -6.033720745257654e-010 -0.9999971985816956 -0.002356703858822584 0 -1 6.033737398603023e-010 -3.700562300775484e-019 0 -0.2949999868869782 0.1321395188570023 -0.003983345814049244 1
+
+
+2.757793993168889e-013 4.575816179956671e-013 1 0 4.575816179956671e-013 -1 4.575816179956671e-013 0 1 4.575816179956671e-013 -2.757793993168889e-013 0 0.1000000014901161 -0.1338488310575485 0.05437212437391281 1
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+1 -5.031413063960599e-009 -1.553538520049358e-009 0 1.553538409027055e-009 -1.993428355717697e-008 1 0 -5.031413063960599e-009 -1 -1.993428355717697e-008 0 0.1269356608390808 -5.273894387869405e-008 -0.0365588441491127 1
+
+
+-1 -1.490642098644912e-008 -1.665472915135524e-008 0 1.665472915135524e-008 -1.764261092773722e-008 -1 0 1.490642098644912e-008 -1 1.764261092773722e-008 0 -0.1269356608390808 3.299700068737366e-009 0.0365588404238224 1
+
+
+2.459232373297482e-009 0.7071067690849304 -0.7071067690849304 0 -4.656259378066352e-009 -0.7071067690849304 -0.7071067690849304 0 -1 5.031412619871389e-009 1.55353274688963e-009 0 0.06499999761581421 0.1287170201539993 -0.003270523622632027 1
+
+
+-1.553133399667672e-009 5.031413063960599e-009 -1 0 5.031413063960599e-009 1 5.031413063960599e-009 0 1 -5.031413063960599e-009 -1.553133399667672e-009 0 0.2239999920129776 0.03048792481422424 0.02500873245298863 1
+
+
+1.665474158585312e-008 1.004267005555448e-006 -1 0 -1 -1.666503557373744e-008 -1.665475757306467e-008 0 -1.6665051560949e-008 1 1.004267005555448e-006 0 -0.04826182126998901 -0.05911042168736458 0.03459598124027252 1
+
+
+1 9.947598300641403e-014 -1.004267005555448e-006 0 1.011203266898519e-006 3.500436918102423e-008 0.9999999403953552 0 2.75101122437782e-014 -1 2.288952989822068e-013 0 0.04958733543753624 0.1757381856441498 0.08959835022687912 1
+
+
+0.9999898672103882 1.657488901685156e-008 -0.004498782102018595 0 -0.004498789552599192 -1.781053349247941e-008 -0.9999898076057434 0 -1.665473980949628e-008 1 1.726835030524399e-008 0 -0.02312494441866875 0.2477381676435471 0.2203545719385147 1
+
+
+1 -6.184104131534696e-005 -1.004268028736988e-006 0 1.011203266898519e-006 1.773524793691195e-008 0.9999999403953552 0 -6.184104131534696e-005 -1 -1.720678532990405e-008 0 0.05108793079853058 0.325738400220871 0.091098353266716 1
+
+
+0.9999933242797852 1.67195413069976e-008 0.003653878346085548 0 0.003653871593996882 -1.767486601522705e-008 -0.9999932646751404 0 -1.665473980949628e-008 1 1.726829879089564e-008 0 0.08119497448205948 0.2477381974458695 0.2201460748910904 1
+
+
+-1.552728390308289e-009 5.031413063960599e-009 -1 0 5.031413063960599e-009 1 5.031413063960599e-009 0 1 -5.031413063960599e-009 -1.552728390308289e-009 0 0.2239999920129776 0.03198792785406113 0.02350873313844204 1
+
+
+1.421973649939901e-012 0.002356703858822584 -0.9999971985816956 0 -6.033720745257654e-010 -0.9999971985816956 -0.002356703858822584 0 -1 6.033737398603023e-010 -3.700562300775484e-019 0 -0.2949999868869782 0.02160527743399143 -0.1053286716341972 1
+
+
+-5.582201367815287e-013 -0.0009254564647562802 -0.9999995827674866 0 -6.028238463962055e-010 -0.9999995827674866 0.0009254564647562802 0 -1 6.028241239519616e-010 3.326781192647572e-016 0 -0.2949999868869782 0.02149887755513191 0.0004925570683553815 1
+
+
+1.421973649939901e-012 0.002356703858822584 -0.9999971985816956 0 -6.033720745257654e-010 -0.9999971985816956 -0.002356703858822584 0 -1 6.033737398603023e-010 -3.700562300775484e-019 0 -0.2949999868869782 0.1238077878952026 -0.100101500749588 1
+
+
+2.757793993168889e-013 4.575816179956671e-013 1 0 4.575816179956671e-013 -1 4.575816179956671e-013 0 1 4.575816179956671e-013 -2.757793993168889e-013 0 0.1000000014901161 -0.1338488310575485 0.03437212482094765 1
+
+
+4.052314039881821e-013 1.110223024625157e-015 1 0 1.110223024625157e-015 1 -1.110223024625157e-015 0 -1 1.110223024625157e-015 4.052314039881821e-013 0 -0.1000000014901161 -0.06615117192268372 0.01437209825962782 1
+
+
+4.052314039881821e-013 1.110223024625157e-015 1 0 1.110223024625157e-015 1 -1.110223024625157e-015 0 -1 1.110223024625157e-015 4.052314039881821e-013 0 -0.1000000014901161 -0.06615117937326431 -0.005627896636724472 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine3.plmxml b/data/tests/Jt/Engine/2_Cylinder_Engine3.plmxml
new file mode 100644
index 000000000..baaba2887
--- /dev/null
+++ b/data/tests/Jt/Engine/2_Cylinder_Engine3.plmxml
@@ -0,0 +1,511 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+1.421973649939901e-012 0.002356703858822584 -0.9999971985816956 0 -6.033720745257654e-010 -0.9999971985816956 -0.002356703858822584 0 -1 6.033737398603023e-010 -3.700562300775484e-019 0 -0.2949999868869782 0.1321395188570023 -0.003983345814049244 1
+
+
+2.757793993168889e-013 4.575816179956671e-013 1 0 4.575816179956671e-013 -1 4.575816179956671e-013 0 1 4.575816179956671e-013 -2.757793993168889e-013 0 0.1000000014901161 -0.1338488310575485 0.05437212437391281 1
+
+
+0.9861037135124207 -0.1661308258771896 -1.166810754732375e-015 0 0.1661308258771896 0.9861037135124207 -1.062013085640994e-015 0 1.327029577804367e-015 8.534118465009541e-016 1 0 0.07101806253194809 0.02219301462173462 0.02199999988079071 1
+
+
+-1 1.10096191110321e-032 -7.293991291219912e-017 0 1.10096191110321e-032 -1 -3.018818806569426e-016 0 -7.293991291219912e-017 -3.018818806569426e-016 1 0 -0.1368601024150848 0.06445372104644775 0.003820367390289903 1
+
+
+-1 -1.334063881586189e-008 7.982825511732017e-010 0 1.10096191110321e-032 -1 -3.018818806569426e-016 0 -7.293991291219912e-017 -3.018818806569426e-016 1 0 -0.294677197933197 0.07397986948490143 0.01617963239550591 1
+
+
+0.9995650053024292 0.02949320152401924 -7.979323313200837e-010 0 -0.0294931884855032 0.9995650053024292 2.354164085893729e-011 0 -3.085015966644567e-015 2.168479519145078e-015 1 0 -0.0453154630959034 -0.02461725845932961 -0.02632036805152893 1
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0.1368601024150848 -0.06445372104644775 -0.03617963194847107 1
+
+
+-1 -1.334063881586189e-008 7.041613514502387e-009 0 -1.003604666278664e-019 -1 1.355268465125744e-016 0 -1.736007260287489e-016 1.355268465125744e-016 1 0 -0.294677197933197 0.07397986948490143 0.0161796361207962 1
+
+
+0.9995650053024292 0.02949320152401924 -7.038550631222051e-009 0 -0.0294931884855032 0.9995650053024292 2.076799010541919e-010 0 1.57434811062825e-016 -2.681045890006053e-016 1 0 -0.0453154630959034 -0.02461725845932961 -0.02632036432623863 1
+
+
+0.7071067690849304 -0.7071067690849304 4.055928498874345e-013 0 0.7071067690849304 0.7071067690849304 6.101357784178425e-016 0 -2.872288724139332e-013 2.863660101149607e-013 1 0 0.04717867448925972 -0.0528213270008564 -0.08894477039575577 1
+
+
+1.214013511940948e-008 -7.440697502580917e-010 1 0 -0.9059386253356934 0.4234090149402618 3.675416633368289e-013 0 -0.4234090149402618 -0.9059386253356934 1.728632428171784e-013 0 -0.03029589354991913 -0.05256131291389465 0.02505522221326828 1
+
+
+-0.4234090149402618 -0.9059386253356934 1.726649286873036e-013 0 -0.9059386253356934 0.4234090149402618 3.675724817835818e-013 0 -1.214013511940948e-008 7.440699723026967e-010 -1 0 -0.09059386700391769 -0.02437981590628624 -0.04005522653460503 1
+
+
+-0.5 -0.8660253882408142 -2.979083167524747e-016 0 0.8660253882408142 -0.5 -7.816530680941419e-016 0 5.279772353637604e-016 -6.488226847947026e-016 1 0 0.01809818297624588 -0.06969784200191498 -0.1055598109960556 1
+
+
+-0.9390942454338074 0.3436597287654877 1.284025318025572e-016 0 -0.3436597883701325 -0.9390941858291626 -6.660528172495127e-016 0 2.47777798279003e-008 -2.063888393522007e-009 1 0 -0.05131101608276367 -0.05052240565419197 0.1075598075985909 1
+
+
+-0.9390942454338074 0.3436597287654877 3.809448359261655e-016 0 -0.3436597883701325 -0.9390941858291626 -2.583991531420675e-015 0 2.47777798279003e-008 -2.063890391923451e-009 1 0 -0.05131101980805397 -0.05052240565419197 -0.01844018884003162 1
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+1 -5.031413063960599e-009 -1.553538520049358e-009 0 1.553538409027055e-009 -1.993428355717697e-008 1 0 -5.031413063960599e-009 -1 -1.993428355717697e-008 0 0.1269356608390808 -5.273894387869405e-008 -0.0365588441491127 1
+
+
+-1 -1.490642098644912e-008 -1.665472915135524e-008 0 1.665472915135524e-008 -1.764261092773722e-008 -1 0 1.490642098644912e-008 -1 1.764261092773722e-008 0 -0.1269356608390808 3.299700068737366e-009 0.0365588404238224 1
+
+
+2.459232373297482e-009 0.7071067690849304 -0.7071067690849304 0 -4.656259378066352e-009 -0.7071067690849304 -0.7071067690849304 0 -1 5.031412619871389e-009 1.55353274688963e-009 0 0.06499999761581421 0.1287170201539993 -0.003270523622632027 1
+
+
+-1.553133399667672e-009 5.031413063960599e-009 -1 0 5.031413063960599e-009 1 5.031413063960599e-009 0 1 -5.031413063960599e-009 -1.553133399667672e-009 0 0.2239999920129776 0.03048792481422424 0.02500873245298863 1
+
+
+1.665474158585312e-008 1.004267005555448e-006 -1 0 -1 -1.666503557373744e-008 -1.665475757306467e-008 0 -1.6665051560949e-008 1 1.004267005555448e-006 0 -0.04826182126998901 -0.05911042168736458 0.03459598124027252 1
+
+
+1 9.947598300641403e-014 -1.004267005555448e-006 0 1.011203266898519e-006 3.500436918102423e-008 0.9999999403953552 0 2.75101122437782e-014 -1 2.288952989822068e-013 0 0.04958733543753624 0.1757381856441498 0.08959835022687912 1
+
+
+1 9.977915303889529e-014 -9.877358024823479e-007 0 -9.946720638254192e-007 -3.500436562831055e-008 -0.9999999403953552 0 -2.75101122437782e-014 1 -2.288952989822068e-013 0 0.02452629990875721 0.2137382179498673 0.2830735743045807 1
+
+
+0.9999898672103882 1.657488901685156e-008 -0.004498782102018595 0 -0.004498789552599192 -1.781053349247941e-008 -0.9999898076057434 0 -1.665473980949628e-008 1 1.726835030524399e-008 0 -0.02312494441866875 0.2477381676435471 0.2203545719385147 1
+
+
+0.9999974370002747 -7.939097296238984e-011 -0.002271066652610898 0 9.118318147522016e-016 1 3.807415215490448e-015 0 0.002271073637530208 3.500404588407946e-008 0.9999973773956299 0 -0.0001340909366263077 -0.01299998629838228 0.0001236627285834402 1
+
+
+-0.9999850392341614 -0.004973083734512329 -0.002270016819238663 0 0.004973071627318859 -0.9999875426292419 1.127185623772675e-005 0 -0.002270089229568839 -4.575558421038295e-008 0.9999972581863403 0 0.0487947128713131 0.7686771750450134 -0.02040251158177853 1
+
+
+1 -7.424300063618716e-011 1.35305974757749e-010 0 1.276140897124513e-015 0.9999998807907105 4.341043060584901e-016 0 -4.433523059788058e-008 -2.848764957263938e-008 0.9999998211860657 0 -1.748614808505522e-009 -9.381160293031599e-010 -7.228971310446752e-010 1
+
+
+0.9999973773956299 1.651584646822357e-008 0.002270044526085258 0 -1.669391558323241e-008 0.9999998807907105 1.723048725921217e-008 0 -0.002270088996738195 -4.57557440824985e-008 0.9999972581863403 0 0.04950515553355217 0.3443533480167389 0.07959935814142227 1
+
+
+0.9999973773956299 1.651585179729409e-008 0.002270044526085258 0 1.669392091230293e-008 -0.9999998807907105 -1.723048725921217e-008 0 0.002270088996738195 4.57557440824985e-008 -0.9999972581863403 0 0.04947110638022423 0.2571229636669159 0.09459931403398514 1
+
+
+0.9984452724456787 1.914222380605679e-008 -0.05574143305420876 0 -0.05574139580130577 4.472066095217997e-008 -0.9984451532363892 0 -1.669391203051873e-008 1 1.723049436463953e-008 0 0.01820174790918827 0.326738178730011 0.2976770401000977 1
+
+
+0.9984543323516846 1.913488922866691e-008 -0.05557771772146225 0 -0.05557768046855927 4.472379444564467e-008 -0.998454213142395 0 -1.669391025416189e-008 0.9999998807907105 1.723049436463953e-008 0 0.06816709786653519 0.326738178730011 0.2977887094020844 1
+
+
+1 -7.424300063618716e-011 1.35305974757749e-010 0 1.276140897124513e-015 0.9999998807907105 4.341043060584901e-016 0 -4.433523059788058e-008 -2.848764957263938e-008 0.9999998211860657 0 -4.064914627122107e-009 -1.459414988858043e-008 -0.09999953210353851 1
+
+
+0.9999974370002747 1.662746029751361e-008 0.002270044526085258 0 -1.669391735958925e-008 1.00000011920929 1.723049081192585e-008 0 -0.002270061522722244 -2.438619972622291e-008 0.9999974966049194 0 0.04973216727375984 0.3443534076213837 0.07959914952516556 1
+
+
+0.9999974370002747 1.662746562658413e-008 0.002270044526085258 0 1.669392268865977e-008 -1.00000011920929 -1.723049081192585e-008 0 0.002270061522722244 2.438619972622291e-008 -0.9999974966049194 0 0.0496981143951416 0.2571230232715607 0.09459911286830902 1
+
+
+0.9986630082130432 1.791910797521723e-008 -0.05169311910867691 0 -0.05169309675693512 2.345346850063379e-008 -0.998663067817688 0 -1.669391025416189e-008 1.00000011920929 1.72305067991374e-008 0 0.01757495850324631 0.3267382085323334 0.2976291477680206 1
+
+
+0.9986716508865356 1.791518755567267e-008 -0.05152621492743492 0 -0.05152619630098343 2.345645455648082e-008 -0.9986717104911804 0 -1.669391025416189e-008 1.00000011920929 1.723049791735321e-008 0 0.06753963232040405 0.3267382085323334 0.2977406084537506 1
+
+
+-0.9999873042106628 -0.004487393889576197 -0.00227002170868218 0 0.004487383179366589 -0.9999898076057434 1.016931855701841e-005 0 -0.002270088996738195 -4.575493051106605e-008 0.9999972581863403 0 -0.02998023852705956 0.7686992287635803 -0.02058133110404015 1
+
+
+-0.821344792842865 -0.3829995691776276 0.4227339625358582 0 -0.3831273019313812 -0.1786547750234604 -0.9062537550926209 0 0.4226182997226715 -0.9063078165054321 -4.468796817036491e-007 0 -0.2707940638065338 0.1454340070486069 0.1220441088080406 1
+
+
+0.4546822905540466 0.654166042804718 0.6044259667396545 0 -0.8696395754814148 0.4726209938526154 0.1426760256290436 0 -0.1923305839300156 -0.5905050039291382 0.7837809920310974 0 0.09187051653862 0.08063256740570068 0.1662608832120895 1
+
+
+0.7850326299667358 0.06081443279981613 -0.6164620518684387 0 -0.1356190741062164 0.9878997206687927 -0.07524674385786057 0 0.6044265031814575 0.1426751911640167 0.7837809920310974 0 -0.001248535001650453 -0.2500619888305664 -0.09022713452577591 1
+
+
+0.7850326299667358 0.06081448495388031 -0.6164620518684387 0 -0.3924773633480072 -0.7211050391197205 -0.5709372162818909 0 -0.4792551398277283 0.6901518106460571 -0.5422225594520569 0 0.0455969013273716 0.2435131669044495 0.06938881427049637 1
+
+
+1 -3.002940829333056e-008 3.437022044749938e-008 0 -4.150651022882812e-008 1.000000238418579 4.017514854126603e-008 0 3.73510147255729e-008 2.773385787691041e-008 1 0 -1.489124112907803e-008 -4.276215381793236e-009 1.08718030134014e-008 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1410751193761826 0.09142301231622696 -0.3314632773399353 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.05227819457650185 0.07644443958997726 -0.1796288043260574 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1347948610782623 0.09093648940324783 -0.3265315294265747 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.05855846777558327 0.07595790922641754 -0.1746970862150192 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1285146176815033 0.0904499888420105 -0.3215998709201813 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.0648387148976326 0.07547140121459961 -0.1697653979063034 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1222343519330025 0.08996346592903137 -0.3166681826114655 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.07111898809671402 0.07498487830162048 -0.1648336797952652 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1159540787339211 0.08947695046663284 -0.3117364346981049 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.07739924639463425 0.07449836283922195 -0.1599020063877106 1
+
+
+-0.4546823501586914 0.6541661024093628 -0.6044260263442993 0 0.8696396350860596 0.4726210236549377 -0.1426760405302048 0 0.192330613732338 -0.5905051231384277 -0.7837811708450317 0 0.01489819493144751 0.08582951128482819 -0.04803464561700821 1
+
+
+1 2.298901691233368e-008 -2.432995493961698e-008 0 -3.89851670945518e-008 0.9999998807907105 -1.280528216796029e-008 0 -3.000558379540053e-008 -2.485903749516183e-008 0.9999998807907105 0 -1.494453005790319e-009 -7.655864275868396e-010 -5.496130661697407e-009 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.1413719058036804 0.08810769766569138 -0.3271084725856781 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.05524870008230209 0.07287602126598358 -0.1727083474397659 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.1366616934537888 0.08774281293153763 -0.3234097063541412 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.05995889753103256 0.07251112163066864 -0.1690095812082291 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.1319515109062195 0.08737793564796448 -0.3197109401226044 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.06466909497976303 0.07214623689651489 -0.165310800075531 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.127241313457489 0.08701304346323013 -0.3160121440887451 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.0693792924284935 0.07178134471178055 -0.1616120338439941 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.1225311160087585 0.08664815127849579 -0.3123133778572083 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.07408948242664337 0.0714164674282074 -0.1579132527112961 1
+
+
+0.7850325107574463 0.06081444025039673 -0.6164620518684387 0 -0.135619044303894 0.9878994226455689 -0.07524680346250534 0 0.6044264435768127 0.1426751613616943 0.7837807536125183 0 -0.005746716633439064 -0.250409871339798 -0.08668788522481918 1
+
+
+0.7850325703620911 0.06081447005271912 -0.6164620518684387 0 -0.3681581914424896 -0.7545340657234192 -0.543265700340271 0 -0.498180091381073 0.6534368991851807 -0.5699445009231567 0 0.03418708592653275 0.2526659965515137 0.06506367027759552 1
+
+
+0.9026297330856323 0.4304179251194 -9.149687798526429e-007 0 -0.4304179251194 0.9026297330856323 4.554329109396349e-007 0 1.028840756589489e-006 1.773579327846164e-008 0.9999999403953552 0 0.2777610719203949 0.5800805687904358 -0.005389846861362457 1
+
+
+0.9026297926902771 -0.4304177463054657 -9.298340728491894e-007 0 0.4304177463054657 0.9026297926902771 -4.242589284331189e-007 0 1.028840756589489e-006 1.773579505481848e-008 0.9999999403953552 0 0.3539793193340302 0.3309040069580078 -0.005389927886426449 1
+
+
+1 -6.184104131534696e-005 -1.004268028736988e-006 0 1.011203266898519e-006 1.773524793691195e-008 0.9999999403953552 0 -6.184104131534696e-005 -1 -1.720678532990405e-008 0 0.05108792707324028 0.3257383704185486 0.09109834581613541 1
+
+
+0.9999933242797852 1.67195413069976e-008 0.003653878346085548 0 0.003653871593996882 -1.767486601522705e-008 -0.9999932646751404 0 -1.665473980949628e-008 1 1.726829879089564e-008 0 0.08119496703147888 0.2477381825447083 0.2201460599899292 1
+
+
+-0.8213930130004883 0.3830220103263855 0.4226199984550476 0 -0.3830239772796631 0.1786065548658371 -0.9063069224357605 0 -0.4226182103157044 -0.9063078165054321 4.008188341231289e-007 0 -0.141640841960907 0.3886727094650269 0.1220077648758888 1
+
+
+-1.552728390308289e-009 5.031413063960599e-009 -1 0 5.031413063960599e-009 1 5.031413063960599e-009 0 1 -5.031413063960599e-009 -1.552728390308289e-009 0 0.2239999771118164 0.03198792412877083 0.02350873127579689 1
+
+
+1.421973649939901e-012 0.002356703858822584 -0.9999971985816956 0 -6.033720745257654e-010 -0.9999971985816956 -0.002356703858822584 0 -1 6.033737398603023e-010 -3.700562300775484e-019 0 -0.2949999570846558 0.02160527557134628 -0.1053286641836166 1
+
+
+-5.582201367815287e-013 -0.0009254564647562802 -0.9999995827674866 0 -6.028238463962055e-010 -0.9999995827674866 0.0009254564647562802 0 -1 6.028241239519616e-010 3.326781192647572e-016 0 -0.2949999570846558 0.02149887569248676 0.0004925570683553815 1
+
+
+1.421973649939901e-012 0.002356703858822584 -0.9999971985816956 0 -6.033720745257654e-010 -0.9999971985816956 -0.002356703858822584 0 -1 6.033737398603023e-010 -3.700562300775484e-019 0 -0.2949999570846558 0.123807780444622 -0.1001014932990074 1
+
+
+2.757793993168889e-013 4.575816179956671e-013 1 0 4.575816179956671e-013 -1 4.575816179956671e-013 0 1 4.575816179956671e-013 -2.757793993168889e-013 0 0.09999999403953552 -0.1338488161563873 0.03437212482094765 1
+
+
+4.052314039881821e-013 1.110223024625157e-015 1 0 1.110223024625157e-015 1 -1.110223024625157e-015 0 -1 1.110223024625157e-015 4.052314039881821e-013 0 -0.09999999403953552 -0.06615116447210312 0.01437209732830524 1
+
+
+4.052314039881821e-013 1.110223024625157e-015 1 0 1.110223024625157e-015 1 -1.110223024625157e-015 0 -1 1.110223024625157e-015 4.052314039881821e-013 0 -0.09999999403953552 -0.06615117192268372 -0.005627896171063185 1
+
+
+-0.9861037135124207 0.1661308258771896 1.702963710921711e-016 0 -0.1661308258771896 -0.9861037135124207 -3.509013978502231e-016 0 1.096343463342109e-016 -3.743166442952229e-016 1 0 -0.07101806253194809 -0.02219301089644432 -0.01999999769032002 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+-1 -1.334063881586189e-008 -7.982826621955041e-010 0 1.10096191110321e-032 -1 -3.018818806569426e-016 0 -7.293991291219912e-017 -3.018818806569426e-016 1 0 -0.1368601024150848 0.06445372104644775 0.003820367390289903 1
+
+
+
+-1 -3.025554562441357e-008 -3.172106577409295e-009 0 1.10096191110321e-032 -1.00000011920929 -3.018819071267222e-016 0 -7.293991291219912e-017 -3.018819071267222e-016 1.00000011920929 0 -0.2946771681308746 0.07397986948490143 0.01617963425815105 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+
+
+
+
+
+1 -5.030475147549396e-009 -8.559119635265233e-008 0 1.553537853915543e-009 -1.993428355717697e-008 1 0 -5.03141173169297e-009 -1 -1.993428355717697e-008 0 0.4018276929855347 0.004671174101531506 -0.01877834275364876 1
+
+
+
+
+
+
+
+
+
+
+
+-1.553142503496474e-009 5.031413952139019e-009 -1 0 5.031442373848449e-009 1 5.031413063960599e-009 0 1 -7.856474439904559e-007 -1.082494804904854e-007 0 0.5421041250228882 0.03720489889383316 0.04404613375663757 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+-1.552729944620523e-009 5.031413063960599e-009 -1 0 5.0314401534024e-009 1 5.031413063960599e-009 0 1 -3.418919334308157e-007 -1.096145751944277e-007 0 0.6029092669487 0.04294551536440849 0.04271972924470902 1
+
+
+
+
+
\ No newline at end of file
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine3.xml b/data/tests/Jt/Engine/2_Cylinder_Engine3.xml
new file mode 100644
index 000000000..baaba2887
--- /dev/null
+++ b/data/tests/Jt/Engine/2_Cylinder_Engine3.xml
@@ -0,0 +1,511 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+1.421973649939901e-012 0.002356703858822584 -0.9999971985816956 0 -6.033720745257654e-010 -0.9999971985816956 -0.002356703858822584 0 -1 6.033737398603023e-010 -3.700562300775484e-019 0 -0.2949999868869782 0.1321395188570023 -0.003983345814049244 1
+
+
+2.757793993168889e-013 4.575816179956671e-013 1 0 4.575816179956671e-013 -1 4.575816179956671e-013 0 1 4.575816179956671e-013 -2.757793993168889e-013 0 0.1000000014901161 -0.1338488310575485 0.05437212437391281 1
+
+
+0.9861037135124207 -0.1661308258771896 -1.166810754732375e-015 0 0.1661308258771896 0.9861037135124207 -1.062013085640994e-015 0 1.327029577804367e-015 8.534118465009541e-016 1 0 0.07101806253194809 0.02219301462173462 0.02199999988079071 1
+
+
+-1 1.10096191110321e-032 -7.293991291219912e-017 0 1.10096191110321e-032 -1 -3.018818806569426e-016 0 -7.293991291219912e-017 -3.018818806569426e-016 1 0 -0.1368601024150848 0.06445372104644775 0.003820367390289903 1
+
+
+-1 -1.334063881586189e-008 7.982825511732017e-010 0 1.10096191110321e-032 -1 -3.018818806569426e-016 0 -7.293991291219912e-017 -3.018818806569426e-016 1 0 -0.294677197933197 0.07397986948490143 0.01617963239550591 1
+
+
+0.9995650053024292 0.02949320152401924 -7.979323313200837e-010 0 -0.0294931884855032 0.9995650053024292 2.354164085893729e-011 0 -3.085015966644567e-015 2.168479519145078e-015 1 0 -0.0453154630959034 -0.02461725845932961 -0.02632036805152893 1
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0.1368601024150848 -0.06445372104644775 -0.03617963194847107 1
+
+
+-1 -1.334063881586189e-008 7.041613514502387e-009 0 -1.003604666278664e-019 -1 1.355268465125744e-016 0 -1.736007260287489e-016 1.355268465125744e-016 1 0 -0.294677197933197 0.07397986948490143 0.0161796361207962 1
+
+
+0.9995650053024292 0.02949320152401924 -7.038550631222051e-009 0 -0.0294931884855032 0.9995650053024292 2.076799010541919e-010 0 1.57434811062825e-016 -2.681045890006053e-016 1 0 -0.0453154630959034 -0.02461725845932961 -0.02632036432623863 1
+
+
+0.7071067690849304 -0.7071067690849304 4.055928498874345e-013 0 0.7071067690849304 0.7071067690849304 6.101357784178425e-016 0 -2.872288724139332e-013 2.863660101149607e-013 1 0 0.04717867448925972 -0.0528213270008564 -0.08894477039575577 1
+
+
+1.214013511940948e-008 -7.440697502580917e-010 1 0 -0.9059386253356934 0.4234090149402618 3.675416633368289e-013 0 -0.4234090149402618 -0.9059386253356934 1.728632428171784e-013 0 -0.03029589354991913 -0.05256131291389465 0.02505522221326828 1
+
+
+-0.4234090149402618 -0.9059386253356934 1.726649286873036e-013 0 -0.9059386253356934 0.4234090149402618 3.675724817835818e-013 0 -1.214013511940948e-008 7.440699723026967e-010 -1 0 -0.09059386700391769 -0.02437981590628624 -0.04005522653460503 1
+
+
+-0.5 -0.8660253882408142 -2.979083167524747e-016 0 0.8660253882408142 -0.5 -7.816530680941419e-016 0 5.279772353637604e-016 -6.488226847947026e-016 1 0 0.01809818297624588 -0.06969784200191498 -0.1055598109960556 1
+
+
+-0.9390942454338074 0.3436597287654877 1.284025318025572e-016 0 -0.3436597883701325 -0.9390941858291626 -6.660528172495127e-016 0 2.47777798279003e-008 -2.063888393522007e-009 1 0 -0.05131101608276367 -0.05052240565419197 0.1075598075985909 1
+
+
+-0.9390942454338074 0.3436597287654877 3.809448359261655e-016 0 -0.3436597883701325 -0.9390941858291626 -2.583991531420675e-015 0 2.47777798279003e-008 -2.063890391923451e-009 1 0 -0.05131101980805397 -0.05052240565419197 -0.01844018884003162 1
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+1 -5.031413063960599e-009 -1.553538520049358e-009 0 1.553538409027055e-009 -1.993428355717697e-008 1 0 -5.031413063960599e-009 -1 -1.993428355717697e-008 0 0.1269356608390808 -5.273894387869405e-008 -0.0365588441491127 1
+
+
+-1 -1.490642098644912e-008 -1.665472915135524e-008 0 1.665472915135524e-008 -1.764261092773722e-008 -1 0 1.490642098644912e-008 -1 1.764261092773722e-008 0 -0.1269356608390808 3.299700068737366e-009 0.0365588404238224 1
+
+
+2.459232373297482e-009 0.7071067690849304 -0.7071067690849304 0 -4.656259378066352e-009 -0.7071067690849304 -0.7071067690849304 0 -1 5.031412619871389e-009 1.55353274688963e-009 0 0.06499999761581421 0.1287170201539993 -0.003270523622632027 1
+
+
+-1.553133399667672e-009 5.031413063960599e-009 -1 0 5.031413063960599e-009 1 5.031413063960599e-009 0 1 -5.031413063960599e-009 -1.553133399667672e-009 0 0.2239999920129776 0.03048792481422424 0.02500873245298863 1
+
+
+1.665474158585312e-008 1.004267005555448e-006 -1 0 -1 -1.666503557373744e-008 -1.665475757306467e-008 0 -1.6665051560949e-008 1 1.004267005555448e-006 0 -0.04826182126998901 -0.05911042168736458 0.03459598124027252 1
+
+
+1 9.947598300641403e-014 -1.004267005555448e-006 0 1.011203266898519e-006 3.500436918102423e-008 0.9999999403953552 0 2.75101122437782e-014 -1 2.288952989822068e-013 0 0.04958733543753624 0.1757381856441498 0.08959835022687912 1
+
+
+1 9.977915303889529e-014 -9.877358024823479e-007 0 -9.946720638254192e-007 -3.500436562831055e-008 -0.9999999403953552 0 -2.75101122437782e-014 1 -2.288952989822068e-013 0 0.02452629990875721 0.2137382179498673 0.2830735743045807 1
+
+
+0.9999898672103882 1.657488901685156e-008 -0.004498782102018595 0 -0.004498789552599192 -1.781053349247941e-008 -0.9999898076057434 0 -1.665473980949628e-008 1 1.726835030524399e-008 0 -0.02312494441866875 0.2477381676435471 0.2203545719385147 1
+
+
+0.9999974370002747 -7.939097296238984e-011 -0.002271066652610898 0 9.118318147522016e-016 1 3.807415215490448e-015 0 0.002271073637530208 3.500404588407946e-008 0.9999973773956299 0 -0.0001340909366263077 -0.01299998629838228 0.0001236627285834402 1
+
+
+-0.9999850392341614 -0.004973083734512329 -0.002270016819238663 0 0.004973071627318859 -0.9999875426292419 1.127185623772675e-005 0 -0.002270089229568839 -4.575558421038295e-008 0.9999972581863403 0 0.0487947128713131 0.7686771750450134 -0.02040251158177853 1
+
+
+1 -7.424300063618716e-011 1.35305974757749e-010 0 1.276140897124513e-015 0.9999998807907105 4.341043060584901e-016 0 -4.433523059788058e-008 -2.848764957263938e-008 0.9999998211860657 0 -1.748614808505522e-009 -9.381160293031599e-010 -7.228971310446752e-010 1
+
+
+0.9999973773956299 1.651584646822357e-008 0.002270044526085258 0 -1.669391558323241e-008 0.9999998807907105 1.723048725921217e-008 0 -0.002270088996738195 -4.57557440824985e-008 0.9999972581863403 0 0.04950515553355217 0.3443533480167389 0.07959935814142227 1
+
+
+0.9999973773956299 1.651585179729409e-008 0.002270044526085258 0 1.669392091230293e-008 -0.9999998807907105 -1.723048725921217e-008 0 0.002270088996738195 4.57557440824985e-008 -0.9999972581863403 0 0.04947110638022423 0.2571229636669159 0.09459931403398514 1
+
+
+0.9984452724456787 1.914222380605679e-008 -0.05574143305420876 0 -0.05574139580130577 4.472066095217997e-008 -0.9984451532363892 0 -1.669391203051873e-008 1 1.723049436463953e-008 0 0.01820174790918827 0.326738178730011 0.2976770401000977 1
+
+
+0.9984543323516846 1.913488922866691e-008 -0.05557771772146225 0 -0.05557768046855927 4.472379444564467e-008 -0.998454213142395 0 -1.669391025416189e-008 0.9999998807907105 1.723049436463953e-008 0 0.06816709786653519 0.326738178730011 0.2977887094020844 1
+
+
+1 -7.424300063618716e-011 1.35305974757749e-010 0 1.276140897124513e-015 0.9999998807907105 4.341043060584901e-016 0 -4.433523059788058e-008 -2.848764957263938e-008 0.9999998211860657 0 -4.064914627122107e-009 -1.459414988858043e-008 -0.09999953210353851 1
+
+
+0.9999974370002747 1.662746029751361e-008 0.002270044526085258 0 -1.669391735958925e-008 1.00000011920929 1.723049081192585e-008 0 -0.002270061522722244 -2.438619972622291e-008 0.9999974966049194 0 0.04973216727375984 0.3443534076213837 0.07959914952516556 1
+
+
+0.9999974370002747 1.662746562658413e-008 0.002270044526085258 0 1.669392268865977e-008 -1.00000011920929 -1.723049081192585e-008 0 0.002270061522722244 2.438619972622291e-008 -0.9999974966049194 0 0.0496981143951416 0.2571230232715607 0.09459911286830902 1
+
+
+0.9986630082130432 1.791910797521723e-008 -0.05169311910867691 0 -0.05169309675693512 2.345346850063379e-008 -0.998663067817688 0 -1.669391025416189e-008 1.00000011920929 1.72305067991374e-008 0 0.01757495850324631 0.3267382085323334 0.2976291477680206 1
+
+
+0.9986716508865356 1.791518755567267e-008 -0.05152621492743492 0 -0.05152619630098343 2.345645455648082e-008 -0.9986717104911804 0 -1.669391025416189e-008 1.00000011920929 1.723049791735321e-008 0 0.06753963232040405 0.3267382085323334 0.2977406084537506 1
+
+
+-0.9999873042106628 -0.004487393889576197 -0.00227002170868218 0 0.004487383179366589 -0.9999898076057434 1.016931855701841e-005 0 -0.002270088996738195 -4.575493051106605e-008 0.9999972581863403 0 -0.02998023852705956 0.7686992287635803 -0.02058133110404015 1
+
+
+-0.821344792842865 -0.3829995691776276 0.4227339625358582 0 -0.3831273019313812 -0.1786547750234604 -0.9062537550926209 0 0.4226182997226715 -0.9063078165054321 -4.468796817036491e-007 0 -0.2707940638065338 0.1454340070486069 0.1220441088080406 1
+
+
+0.4546822905540466 0.654166042804718 0.6044259667396545 0 -0.8696395754814148 0.4726209938526154 0.1426760256290436 0 -0.1923305839300156 -0.5905050039291382 0.7837809920310974 0 0.09187051653862 0.08063256740570068 0.1662608832120895 1
+
+
+0.7850326299667358 0.06081443279981613 -0.6164620518684387 0 -0.1356190741062164 0.9878997206687927 -0.07524674385786057 0 0.6044265031814575 0.1426751911640167 0.7837809920310974 0 -0.001248535001650453 -0.2500619888305664 -0.09022713452577591 1
+
+
+0.7850326299667358 0.06081448495388031 -0.6164620518684387 0 -0.3924773633480072 -0.7211050391197205 -0.5709372162818909 0 -0.4792551398277283 0.6901518106460571 -0.5422225594520569 0 0.0455969013273716 0.2435131669044495 0.06938881427049637 1
+
+
+1 -3.002940829333056e-008 3.437022044749938e-008 0 -4.150651022882812e-008 1.000000238418579 4.017514854126603e-008 0 3.73510147255729e-008 2.773385787691041e-008 1 0 -1.489124112907803e-008 -4.276215381793236e-009 1.08718030134014e-008 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1410751193761826 0.09142301231622696 -0.3314632773399353 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.05227819457650185 0.07644443958997726 -0.1796288043260574 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1347948610782623 0.09093648940324783 -0.3265315294265747 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.05855846777558327 0.07595790922641754 -0.1746970862150192 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1285146176815033 0.0904499888420105 -0.3215998709201813 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.0648387148976326 0.07547140121459961 -0.1697653979063034 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1222343519330025 0.08996346592903137 -0.3166681826114655 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.07111898809671402 0.07498487830162048 -0.1648336797952652 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1159540787339211 0.08947695046663284 -0.3117364346981049 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.07739924639463425 0.07449836283922195 -0.1599020063877106 1
+
+
+-0.4546823501586914 0.6541661024093628 -0.6044260263442993 0 0.8696396350860596 0.4726210236549377 -0.1426760405302048 0 0.192330613732338 -0.5905051231384277 -0.7837811708450317 0 0.01489819493144751 0.08582951128482819 -0.04803464561700821 1
+
+
+1 2.298901691233368e-008 -2.432995493961698e-008 0 -3.89851670945518e-008 0.9999998807907105 -1.280528216796029e-008 0 -3.000558379540053e-008 -2.485903749516183e-008 0.9999998807907105 0 -1.494453005790319e-009 -7.655864275868396e-010 -5.496130661697407e-009 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.1413719058036804 0.08810769766569138 -0.3271084725856781 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.05524870008230209 0.07287602126598358 -0.1727083474397659 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.1366616934537888 0.08774281293153763 -0.3234097063541412 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.05995889753103256 0.07251112163066864 -0.1690095812082291 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.1319515109062195 0.08737793564796448 -0.3197109401226044 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.06466909497976303 0.07214623689651489 -0.165310800075531 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.127241313457489 0.08701304346323013 -0.3160121440887451 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.0693792924284935 0.07178134471178055 -0.1616120338439941 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.1225311160087585 0.08664815127849579 -0.3123133778572083 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.07408948242664337 0.0714164674282074 -0.1579132527112961 1
+
+
+0.7850325107574463 0.06081444025039673 -0.6164620518684387 0 -0.135619044303894 0.9878994226455689 -0.07524680346250534 0 0.6044264435768127 0.1426751613616943 0.7837807536125183 0 -0.005746716633439064 -0.250409871339798 -0.08668788522481918 1
+
+
+0.7850325703620911 0.06081447005271912 -0.6164620518684387 0 -0.3681581914424896 -0.7545340657234192 -0.543265700340271 0 -0.498180091381073 0.6534368991851807 -0.5699445009231567 0 0.03418708592653275 0.2526659965515137 0.06506367027759552 1
+
+
+0.9026297330856323 0.4304179251194 -9.149687798526429e-007 0 -0.4304179251194 0.9026297330856323 4.554329109396349e-007 0 1.028840756589489e-006 1.773579327846164e-008 0.9999999403953552 0 0.2777610719203949 0.5800805687904358 -0.005389846861362457 1
+
+
+0.9026297926902771 -0.4304177463054657 -9.298340728491894e-007 0 0.4304177463054657 0.9026297926902771 -4.242589284331189e-007 0 1.028840756589489e-006 1.773579505481848e-008 0.9999999403953552 0 0.3539793193340302 0.3309040069580078 -0.005389927886426449 1
+
+
+1 -6.184104131534696e-005 -1.004268028736988e-006 0 1.011203266898519e-006 1.773524793691195e-008 0.9999999403953552 0 -6.184104131534696e-005 -1 -1.720678532990405e-008 0 0.05108792707324028 0.3257383704185486 0.09109834581613541 1
+
+
+0.9999933242797852 1.67195413069976e-008 0.003653878346085548 0 0.003653871593996882 -1.767486601522705e-008 -0.9999932646751404 0 -1.665473980949628e-008 1 1.726829879089564e-008 0 0.08119496703147888 0.2477381825447083 0.2201460599899292 1
+
+
+-0.8213930130004883 0.3830220103263855 0.4226199984550476 0 -0.3830239772796631 0.1786065548658371 -0.9063069224357605 0 -0.4226182103157044 -0.9063078165054321 4.008188341231289e-007 0 -0.141640841960907 0.3886727094650269 0.1220077648758888 1
+
+
+-1.552728390308289e-009 5.031413063960599e-009 -1 0 5.031413063960599e-009 1 5.031413063960599e-009 0 1 -5.031413063960599e-009 -1.552728390308289e-009 0 0.2239999771118164 0.03198792412877083 0.02350873127579689 1
+
+
+1.421973649939901e-012 0.002356703858822584 -0.9999971985816956 0 -6.033720745257654e-010 -0.9999971985816956 -0.002356703858822584 0 -1 6.033737398603023e-010 -3.700562300775484e-019 0 -0.2949999570846558 0.02160527557134628 -0.1053286641836166 1
+
+
+-5.582201367815287e-013 -0.0009254564647562802 -0.9999995827674866 0 -6.028238463962055e-010 -0.9999995827674866 0.0009254564647562802 0 -1 6.028241239519616e-010 3.326781192647572e-016 0 -0.2949999570846558 0.02149887569248676 0.0004925570683553815 1
+
+
+1.421973649939901e-012 0.002356703858822584 -0.9999971985816956 0 -6.033720745257654e-010 -0.9999971985816956 -0.002356703858822584 0 -1 6.033737398603023e-010 -3.700562300775484e-019 0 -0.2949999570846558 0.123807780444622 -0.1001014932990074 1
+
+
+2.757793993168889e-013 4.575816179956671e-013 1 0 4.575816179956671e-013 -1 4.575816179956671e-013 0 1 4.575816179956671e-013 -2.757793993168889e-013 0 0.09999999403953552 -0.1338488161563873 0.03437212482094765 1
+
+
+4.052314039881821e-013 1.110223024625157e-015 1 0 1.110223024625157e-015 1 -1.110223024625157e-015 0 -1 1.110223024625157e-015 4.052314039881821e-013 0 -0.09999999403953552 -0.06615116447210312 0.01437209732830524 1
+
+
+4.052314039881821e-013 1.110223024625157e-015 1 0 1.110223024625157e-015 1 -1.110223024625157e-015 0 -1 1.110223024625157e-015 4.052314039881821e-013 0 -0.09999999403953552 -0.06615117192268372 -0.005627896171063185 1
+
+
+-0.9861037135124207 0.1661308258771896 1.702963710921711e-016 0 -0.1661308258771896 -0.9861037135124207 -3.509013978502231e-016 0 1.096343463342109e-016 -3.743166442952229e-016 1 0 -0.07101806253194809 -0.02219301089644432 -0.01999999769032002 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+-1 -1.334063881586189e-008 -7.982826621955041e-010 0 1.10096191110321e-032 -1 -3.018818806569426e-016 0 -7.293991291219912e-017 -3.018818806569426e-016 1 0 -0.1368601024150848 0.06445372104644775 0.003820367390289903 1
+
+
+
+-1 -3.025554562441357e-008 -3.172106577409295e-009 0 1.10096191110321e-032 -1.00000011920929 -3.018819071267222e-016 0 -7.293991291219912e-017 -3.018819071267222e-016 1.00000011920929 0 -0.2946771681308746 0.07397986948490143 0.01617963425815105 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+
+
+
+
+
+1 -5.030475147549396e-009 -8.559119635265233e-008 0 1.553537853915543e-009 -1.993428355717697e-008 1 0 -5.03141173169297e-009 -1 -1.993428355717697e-008 0 0.4018276929855347 0.004671174101531506 -0.01877834275364876 1
+
+
+
+
+
+
+
+
+
+
+
+-1.553142503496474e-009 5.031413952139019e-009 -1 0 5.031442373848449e-009 1 5.031413063960599e-009 0 1 -7.856474439904559e-007 -1.082494804904854e-007 0 0.5421041250228882 0.03720489889383316 0.04404613375663757 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+-1.552729944620523e-009 5.031413063960599e-009 -1 0 5.0314401534024e-009 1 5.031413063960599e-009 0 1 -3.418919334308157e-007 -1.096145751944277e-007 0 0.6029092669487 0.04294551536440849 0.04271972924470902 1
+
+
+
+
+
\ No newline at end of file
diff --git a/data/tests/Jt/Engine/2_Cylinder_Engine3_Exploded.plmxml b/data/tests/Jt/Engine/2_Cylinder_Engine3_Exploded.plmxml
new file mode 100644
index 000000000..baaba2887
--- /dev/null
+++ b/data/tests/Jt/Engine/2_Cylinder_Engine3_Exploded.plmxml
@@ -0,0 +1,511 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+1.421973649939901e-012 0.002356703858822584 -0.9999971985816956 0 -6.033720745257654e-010 -0.9999971985816956 -0.002356703858822584 0 -1 6.033737398603023e-010 -3.700562300775484e-019 0 -0.2949999868869782 0.1321395188570023 -0.003983345814049244 1
+
+
+2.757793993168889e-013 4.575816179956671e-013 1 0 4.575816179956671e-013 -1 4.575816179956671e-013 0 1 4.575816179956671e-013 -2.757793993168889e-013 0 0.1000000014901161 -0.1338488310575485 0.05437212437391281 1
+
+
+0.9861037135124207 -0.1661308258771896 -1.166810754732375e-015 0 0.1661308258771896 0.9861037135124207 -1.062013085640994e-015 0 1.327029577804367e-015 8.534118465009541e-016 1 0 0.07101806253194809 0.02219301462173462 0.02199999988079071 1
+
+
+-1 1.10096191110321e-032 -7.293991291219912e-017 0 1.10096191110321e-032 -1 -3.018818806569426e-016 0 -7.293991291219912e-017 -3.018818806569426e-016 1 0 -0.1368601024150848 0.06445372104644775 0.003820367390289903 1
+
+
+-1 -1.334063881586189e-008 7.982825511732017e-010 0 1.10096191110321e-032 -1 -3.018818806569426e-016 0 -7.293991291219912e-017 -3.018818806569426e-016 1 0 -0.294677197933197 0.07397986948490143 0.01617963239550591 1
+
+
+0.9995650053024292 0.02949320152401924 -7.979323313200837e-010 0 -0.0294931884855032 0.9995650053024292 2.354164085893729e-011 0 -3.085015966644567e-015 2.168479519145078e-015 1 0 -0.0453154630959034 -0.02461725845932961 -0.02632036805152893 1
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0.1368601024150848 -0.06445372104644775 -0.03617963194847107 1
+
+
+-1 -1.334063881586189e-008 7.041613514502387e-009 0 -1.003604666278664e-019 -1 1.355268465125744e-016 0 -1.736007260287489e-016 1.355268465125744e-016 1 0 -0.294677197933197 0.07397986948490143 0.0161796361207962 1
+
+
+0.9995650053024292 0.02949320152401924 -7.038550631222051e-009 0 -0.0294931884855032 0.9995650053024292 2.076799010541919e-010 0 1.57434811062825e-016 -2.681045890006053e-016 1 0 -0.0453154630959034 -0.02461725845932961 -0.02632036432623863 1
+
+
+0.7071067690849304 -0.7071067690849304 4.055928498874345e-013 0 0.7071067690849304 0.7071067690849304 6.101357784178425e-016 0 -2.872288724139332e-013 2.863660101149607e-013 1 0 0.04717867448925972 -0.0528213270008564 -0.08894477039575577 1
+
+
+1.214013511940948e-008 -7.440697502580917e-010 1 0 -0.9059386253356934 0.4234090149402618 3.675416633368289e-013 0 -0.4234090149402618 -0.9059386253356934 1.728632428171784e-013 0 -0.03029589354991913 -0.05256131291389465 0.02505522221326828 1
+
+
+-0.4234090149402618 -0.9059386253356934 1.726649286873036e-013 0 -0.9059386253356934 0.4234090149402618 3.675724817835818e-013 0 -1.214013511940948e-008 7.440699723026967e-010 -1 0 -0.09059386700391769 -0.02437981590628624 -0.04005522653460503 1
+
+
+-0.5 -0.8660253882408142 -2.979083167524747e-016 0 0.8660253882408142 -0.5 -7.816530680941419e-016 0 5.279772353637604e-016 -6.488226847947026e-016 1 0 0.01809818297624588 -0.06969784200191498 -0.1055598109960556 1
+
+
+-0.9390942454338074 0.3436597287654877 1.284025318025572e-016 0 -0.3436597883701325 -0.9390941858291626 -6.660528172495127e-016 0 2.47777798279003e-008 -2.063888393522007e-009 1 0 -0.05131101608276367 -0.05052240565419197 0.1075598075985909 1
+
+
+-0.9390942454338074 0.3436597287654877 3.809448359261655e-016 0 -0.3436597883701325 -0.9390941858291626 -2.583991531420675e-015 0 2.47777798279003e-008 -2.063890391923451e-009 1 0 -0.05131101980805397 -0.05052240565419197 -0.01844018884003162 1
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+1 -5.031413063960599e-009 -1.553538520049358e-009 0 1.553538409027055e-009 -1.993428355717697e-008 1 0 -5.031413063960599e-009 -1 -1.993428355717697e-008 0 0.1269356608390808 -5.273894387869405e-008 -0.0365588441491127 1
+
+
+-1 -1.490642098644912e-008 -1.665472915135524e-008 0 1.665472915135524e-008 -1.764261092773722e-008 -1 0 1.490642098644912e-008 -1 1.764261092773722e-008 0 -0.1269356608390808 3.299700068737366e-009 0.0365588404238224 1
+
+
+2.459232373297482e-009 0.7071067690849304 -0.7071067690849304 0 -4.656259378066352e-009 -0.7071067690849304 -0.7071067690849304 0 -1 5.031412619871389e-009 1.55353274688963e-009 0 0.06499999761581421 0.1287170201539993 -0.003270523622632027 1
+
+
+-1.553133399667672e-009 5.031413063960599e-009 -1 0 5.031413063960599e-009 1 5.031413063960599e-009 0 1 -5.031413063960599e-009 -1.553133399667672e-009 0 0.2239999920129776 0.03048792481422424 0.02500873245298863 1
+
+
+1.665474158585312e-008 1.004267005555448e-006 -1 0 -1 -1.666503557373744e-008 -1.665475757306467e-008 0 -1.6665051560949e-008 1 1.004267005555448e-006 0 -0.04826182126998901 -0.05911042168736458 0.03459598124027252 1
+
+
+1 9.947598300641403e-014 -1.004267005555448e-006 0 1.011203266898519e-006 3.500436918102423e-008 0.9999999403953552 0 2.75101122437782e-014 -1 2.288952989822068e-013 0 0.04958733543753624 0.1757381856441498 0.08959835022687912 1
+
+
+1 9.977915303889529e-014 -9.877358024823479e-007 0 -9.946720638254192e-007 -3.500436562831055e-008 -0.9999999403953552 0 -2.75101122437782e-014 1 -2.288952989822068e-013 0 0.02452629990875721 0.2137382179498673 0.2830735743045807 1
+
+
+0.9999898672103882 1.657488901685156e-008 -0.004498782102018595 0 -0.004498789552599192 -1.781053349247941e-008 -0.9999898076057434 0 -1.665473980949628e-008 1 1.726835030524399e-008 0 -0.02312494441866875 0.2477381676435471 0.2203545719385147 1
+
+
+0.9999974370002747 -7.939097296238984e-011 -0.002271066652610898 0 9.118318147522016e-016 1 3.807415215490448e-015 0 0.002271073637530208 3.500404588407946e-008 0.9999973773956299 0 -0.0001340909366263077 -0.01299998629838228 0.0001236627285834402 1
+
+
+-0.9999850392341614 -0.004973083734512329 -0.002270016819238663 0 0.004973071627318859 -0.9999875426292419 1.127185623772675e-005 0 -0.002270089229568839 -4.575558421038295e-008 0.9999972581863403 0 0.0487947128713131 0.7686771750450134 -0.02040251158177853 1
+
+
+1 -7.424300063618716e-011 1.35305974757749e-010 0 1.276140897124513e-015 0.9999998807907105 4.341043060584901e-016 0 -4.433523059788058e-008 -2.848764957263938e-008 0.9999998211860657 0 -1.748614808505522e-009 -9.381160293031599e-010 -7.228971310446752e-010 1
+
+
+0.9999973773956299 1.651584646822357e-008 0.002270044526085258 0 -1.669391558323241e-008 0.9999998807907105 1.723048725921217e-008 0 -0.002270088996738195 -4.57557440824985e-008 0.9999972581863403 0 0.04950515553355217 0.3443533480167389 0.07959935814142227 1
+
+
+0.9999973773956299 1.651585179729409e-008 0.002270044526085258 0 1.669392091230293e-008 -0.9999998807907105 -1.723048725921217e-008 0 0.002270088996738195 4.57557440824985e-008 -0.9999972581863403 0 0.04947110638022423 0.2571229636669159 0.09459931403398514 1
+
+
+0.9984452724456787 1.914222380605679e-008 -0.05574143305420876 0 -0.05574139580130577 4.472066095217997e-008 -0.9984451532363892 0 -1.669391203051873e-008 1 1.723049436463953e-008 0 0.01820174790918827 0.326738178730011 0.2976770401000977 1
+
+
+0.9984543323516846 1.913488922866691e-008 -0.05557771772146225 0 -0.05557768046855927 4.472379444564467e-008 -0.998454213142395 0 -1.669391025416189e-008 0.9999998807907105 1.723049436463953e-008 0 0.06816709786653519 0.326738178730011 0.2977887094020844 1
+
+
+1 -7.424300063618716e-011 1.35305974757749e-010 0 1.276140897124513e-015 0.9999998807907105 4.341043060584901e-016 0 -4.433523059788058e-008 -2.848764957263938e-008 0.9999998211860657 0 -4.064914627122107e-009 -1.459414988858043e-008 -0.09999953210353851 1
+
+
+0.9999974370002747 1.662746029751361e-008 0.002270044526085258 0 -1.669391735958925e-008 1.00000011920929 1.723049081192585e-008 0 -0.002270061522722244 -2.438619972622291e-008 0.9999974966049194 0 0.04973216727375984 0.3443534076213837 0.07959914952516556 1
+
+
+0.9999974370002747 1.662746562658413e-008 0.002270044526085258 0 1.669392268865977e-008 -1.00000011920929 -1.723049081192585e-008 0 0.002270061522722244 2.438619972622291e-008 -0.9999974966049194 0 0.0496981143951416 0.2571230232715607 0.09459911286830902 1
+
+
+0.9986630082130432 1.791910797521723e-008 -0.05169311910867691 0 -0.05169309675693512 2.345346850063379e-008 -0.998663067817688 0 -1.669391025416189e-008 1.00000011920929 1.72305067991374e-008 0 0.01757495850324631 0.3267382085323334 0.2976291477680206 1
+
+
+0.9986716508865356 1.791518755567267e-008 -0.05152621492743492 0 -0.05152619630098343 2.345645455648082e-008 -0.9986717104911804 0 -1.669391025416189e-008 1.00000011920929 1.723049791735321e-008 0 0.06753963232040405 0.3267382085323334 0.2977406084537506 1
+
+
+-0.9999873042106628 -0.004487393889576197 -0.00227002170868218 0 0.004487383179366589 -0.9999898076057434 1.016931855701841e-005 0 -0.002270088996738195 -4.575493051106605e-008 0.9999972581863403 0 -0.02998023852705956 0.7686992287635803 -0.02058133110404015 1
+
+
+-0.821344792842865 -0.3829995691776276 0.4227339625358582 0 -0.3831273019313812 -0.1786547750234604 -0.9062537550926209 0 0.4226182997226715 -0.9063078165054321 -4.468796817036491e-007 0 -0.2707940638065338 0.1454340070486069 0.1220441088080406 1
+
+
+0.4546822905540466 0.654166042804718 0.6044259667396545 0 -0.8696395754814148 0.4726209938526154 0.1426760256290436 0 -0.1923305839300156 -0.5905050039291382 0.7837809920310974 0 0.09187051653862 0.08063256740570068 0.1662608832120895 1
+
+
+0.7850326299667358 0.06081443279981613 -0.6164620518684387 0 -0.1356190741062164 0.9878997206687927 -0.07524674385786057 0 0.6044265031814575 0.1426751911640167 0.7837809920310974 0 -0.001248535001650453 -0.2500619888305664 -0.09022713452577591 1
+
+
+0.7850326299667358 0.06081448495388031 -0.6164620518684387 0 -0.3924773633480072 -0.7211050391197205 -0.5709372162818909 0 -0.4792551398277283 0.6901518106460571 -0.5422225594520569 0 0.0455969013273716 0.2435131669044495 0.06938881427049637 1
+
+
+1 -3.002940829333056e-008 3.437022044749938e-008 0 -4.150651022882812e-008 1.000000238418579 4.017514854126603e-008 0 3.73510147255729e-008 2.773385787691041e-008 1 0 -1.489124112907803e-008 -4.276215381793236e-009 1.08718030134014e-008 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1410751193761826 0.09142301231622696 -0.3314632773399353 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.05227819457650185 0.07644443958997726 -0.1796288043260574 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1347948610782623 0.09093648940324783 -0.3265315294265747 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.05855846777558327 0.07595790922641754 -0.1746970862150192 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1285146176815033 0.0904499888420105 -0.3215998709201813 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.0648387148976326 0.07547140121459961 -0.1697653979063034 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1222343519330025 0.08996346592903137 -0.3166681826114655 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.07111898809671402 0.07498487830162048 -0.1648336797952652 1
+
+
+-0.6893028616905212 -0.1355008780956268 0.7116888165473938 0 -0.6755837202072144 0.4749762713909149 -0.5639010667800903 0 -0.2616261541843414 -0.8695042133331299 -0.4189447462558746 0 0.1159540787339211 0.08947695046663284 -0.3117364346981049 1
+
+
+0.8620703816413879 -0.01532000117003918 -0.506557047367096 0 -0.4340352714061737 0.4936883747577667 -0.7535817623138428 0 0.261626124382019 0.8695042133331299 0.4189446866512299 0 -0.07739924639463425 0.07449836283922195 -0.1599020063877106 1
+
+
+-0.4546823501586914 0.6541661024093628 -0.6044260263442993 0 0.8696396350860596 0.4726210236549377 -0.1426760405302048 0 0.192330613732338 -0.5905051231384277 -0.7837811708450317 0 0.01489819493144751 0.08582951128482819 -0.04803464561700821 1
+
+
+1 2.298901691233368e-008 -2.432995493961698e-008 0 -3.89851670945518e-008 0.9999998807907105 -1.280528216796029e-008 0 -3.000558379540053e-008 -2.485903749516183e-008 0.9999998807907105 0 -1.494453005790319e-009 -7.655864275868396e-010 -5.496130661697407e-009 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.1413719058036804 0.08810769766569138 -0.3271084725856781 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.05524870008230209 0.07287602126598358 -0.1727083474397659 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.1366616934537888 0.08774281293153763 -0.3234097063541412 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.05995889753103256 0.07251112163066864 -0.1690095812082291 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.1319515109062195 0.08737793564796448 -0.3197109401226044 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.06466909497976303 0.07214623689651489 -0.165310800075531 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.127241313457489 0.08701304346323013 -0.3160121440887451 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.0693792924284935 0.07178134471178055 -0.1616120338439941 1
+
+
+-0.7145452499389648 -0.1154179275035858 0.6900026798248291 0 -0.652251660823822 0.4665488302707672 -0.5974109768867493 0 -0.252968043088913 -0.8769325613975525 -0.4086517691612244 0 0.1225311160087585 0.08664815127849579 -0.3123133778572083 1
+
+
+0.8450331687927246 0.005398655775934458 -0.5346865653991699 0 -0.4710902869701386 0.4805829524993897 -0.7396714687347412 0 0.252968043088913 0.8769325613975525 0.4086517691612244 0 -0.07408948242664337 0.0714164674282074 -0.1579132527112961 1
+
+
+0.7850325107574463 0.06081444025039673 -0.6164620518684387 0 -0.135619044303894 0.9878994226455689 -0.07524680346250534 0 0.6044264435768127 0.1426751613616943 0.7837807536125183 0 -0.005746716633439064 -0.250409871339798 -0.08668788522481918 1
+
+
+0.7850325703620911 0.06081447005271912 -0.6164620518684387 0 -0.3681581914424896 -0.7545340657234192 -0.543265700340271 0 -0.498180091381073 0.6534368991851807 -0.5699445009231567 0 0.03418708592653275 0.2526659965515137 0.06506367027759552 1
+
+
+0.9026297330856323 0.4304179251194 -9.149687798526429e-007 0 -0.4304179251194 0.9026297330856323 4.554329109396349e-007 0 1.028840756589489e-006 1.773579327846164e-008 0.9999999403953552 0 0.2777610719203949 0.5800805687904358 -0.005389846861362457 1
+
+
+0.9026297926902771 -0.4304177463054657 -9.298340728491894e-007 0 0.4304177463054657 0.9026297926902771 -4.242589284331189e-007 0 1.028840756589489e-006 1.773579505481848e-008 0.9999999403953552 0 0.3539793193340302 0.3309040069580078 -0.005389927886426449 1
+
+
+1 -6.184104131534696e-005 -1.004268028736988e-006 0 1.011203266898519e-006 1.773524793691195e-008 0.9999999403953552 0 -6.184104131534696e-005 -1 -1.720678532990405e-008 0 0.05108792707324028 0.3257383704185486 0.09109834581613541 1
+
+
+0.9999933242797852 1.67195413069976e-008 0.003653878346085548 0 0.003653871593996882 -1.767486601522705e-008 -0.9999932646751404 0 -1.665473980949628e-008 1 1.726829879089564e-008 0 0.08119496703147888 0.2477381825447083 0.2201460599899292 1
+
+
+-0.8213930130004883 0.3830220103263855 0.4226199984550476 0 -0.3830239772796631 0.1786065548658371 -0.9063069224357605 0 -0.4226182103157044 -0.9063078165054321 4.008188341231289e-007 0 -0.141640841960907 0.3886727094650269 0.1220077648758888 1
+
+
+-1.552728390308289e-009 5.031413063960599e-009 -1 0 5.031413063960599e-009 1 5.031413063960599e-009 0 1 -5.031413063960599e-009 -1.552728390308289e-009 0 0.2239999771118164 0.03198792412877083 0.02350873127579689 1
+
+
+1.421973649939901e-012 0.002356703858822584 -0.9999971985816956 0 -6.033720745257654e-010 -0.9999971985816956 -0.002356703858822584 0 -1 6.033737398603023e-010 -3.700562300775484e-019 0 -0.2949999570846558 0.02160527557134628 -0.1053286641836166 1
+
+
+-5.582201367815287e-013 -0.0009254564647562802 -0.9999995827674866 0 -6.028238463962055e-010 -0.9999995827674866 0.0009254564647562802 0 -1 6.028241239519616e-010 3.326781192647572e-016 0 -0.2949999570846558 0.02149887569248676 0.0004925570683553815 1
+
+
+1.421973649939901e-012 0.002356703858822584 -0.9999971985816956 0 -6.033720745257654e-010 -0.9999971985816956 -0.002356703858822584 0 -1 6.033737398603023e-010 -3.700562300775484e-019 0 -0.2949999570846558 0.123807780444622 -0.1001014932990074 1
+
+
+2.757793993168889e-013 4.575816179956671e-013 1 0 4.575816179956671e-013 -1 4.575816179956671e-013 0 1 4.575816179956671e-013 -2.757793993168889e-013 0 0.09999999403953552 -0.1338488161563873 0.03437212482094765 1
+
+
+4.052314039881821e-013 1.110223024625157e-015 1 0 1.110223024625157e-015 1 -1.110223024625157e-015 0 -1 1.110223024625157e-015 4.052314039881821e-013 0 -0.09999999403953552 -0.06615116447210312 0.01437209732830524 1
+
+
+4.052314039881821e-013 1.110223024625157e-015 1 0 1.110223024625157e-015 1 -1.110223024625157e-015 0 -1 1.110223024625157e-015 4.052314039881821e-013 0 -0.09999999403953552 -0.06615117192268372 -0.005627896171063185 1
+
+
+-0.9861037135124207 0.1661308258771896 1.702963710921711e-016 0 -0.1661308258771896 -0.9861037135124207 -3.509013978502231e-016 0 1.096343463342109e-016 -3.743166442952229e-016 1 0 -0.07101806253194809 -0.02219301089644432 -0.01999999769032002 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+-1 -1.334063881586189e-008 -7.982826621955041e-010 0 1.10096191110321e-032 -1 -3.018818806569426e-016 0 -7.293991291219912e-017 -3.018818806569426e-016 1 0 -0.1368601024150848 0.06445372104644775 0.003820367390289903 1
+
+
+
+-1 -3.025554562441357e-008 -3.172106577409295e-009 0 1.10096191110321e-032 -1.00000011920929 -3.018819071267222e-016 0 -7.293991291219912e-017 -3.018819071267222e-016 1.00000011920929 0 -0.2946771681308746 0.07397986948490143 0.01617963425815105 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
+
+
+
+
+
+
+
+1 -5.030475147549396e-009 -8.559119635265233e-008 0 1.553537853915543e-009 -1.993428355717697e-008 1 0 -5.03141173169297e-009 -1 -1.993428355717697e-008 0 0.4018276929855347 0.004671174101531506 -0.01877834275364876 1
+
+
+
+
+
+
+
+
+
+
+
+-1.553142503496474e-009 5.031413952139019e-009 -1 0 5.031442373848449e-009 1 5.031413063960599e-009 0 1 -7.856474439904559e-007 -1.082494804904854e-007 0 0.5421041250228882 0.03720489889383316 0.04404613375663757 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+-1.552729944620523e-009 5.031413063960599e-009 -1 0 5.0314401534024e-009 1 5.031413063960599e-009 0 1 -3.418919334308157e-007 -1.096145751944277e-007 0 0.6029092669487 0.04294551536440849 0.04271972924470902 1
+
+
+
+
+
\ No newline at end of file
diff --git a/data/tests/PadTest.fcstd b/data/tests/PadTest.fcstd
index 8a7223083..628652095 100644
Binary files a/data/tests/PadTest.fcstd and b/data/tests/PadTest.fcstd differ
diff --git a/data/tests/PocketTest.fcstd b/data/tests/PocketTest.fcstd
index 6acf91ba0..6f8fd2869 100644
Binary files a/data/tests/PocketTest.fcstd and b/data/tests/PocketTest.fcstd differ
diff --git a/data/tests/Step/as1-ac-214_small.stp b/data/tests/Step/as1-ac-214_small.stp
new file mode 100644
index 000000000..85b358f64
--- /dev/null
+++ b/data/tests/Step/as1-ac-214_small.stp
@@ -0,0 +1,1519 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('CATIA V5 STEP Exchange'),'2;1');
+
+FILE_NAME('C:\\Users\\jriegel\\SW-Entwicklung\\FreeCAD\\temp\\data\\tests\\Step\\as1-ac-214_small.stp','2014-11-09T11:25:11+00:00',('none'),('none'),'CATIA Version 5 Release 19 SP 3 (IN-10)','CATIA V5 STEP AP203','none');
+
+FILE_SCHEMA(('CONFIG_CONTROL_DESIGN'));
+
+ENDSEC;
+/* file written by CATIA V5R19 */
+DATA;
+#5=PRODUCT('AS1-AC-214','AS1-AC-214','',(#2)) ;
+#56=PRODUCT('L-BRACKET','L-BRACKET','',(#2)) ;
+#817=PRODUCT('NUT-BOLT ASSEMBLY','NUT-BOLT ASSEMBLY','',(#2)) ;
+#825=PRODUCT('BOLT','BOLT','',(#2)) ;
+#1058=PRODUCT('NUT','NUT','',(#2)) ;
+#1=APPLICATION_CONTEXT('configuration controlled 3D design of mechanical parts and assemblies') ;
+#17=PRODUCT_DEFINITION('None',' ',#6,#3) ;
+#819=PRODUCT_DEFINITION('None',' ',#818,#3) ;
+#19=SECURITY_CLASSIFICATION(' ',' ',#18) ;
+#18=SECURITY_CLASSIFICATION_LEVEL('unclassified') ;
+#63=CARTESIAN_POINT('Axis2P3D Location',(146.885775404,5.,0.)) ;
+#68=CARTESIAN_POINT('Line Origine',(146.885775404,5.,5.)) ;
+#72=CARTESIAN_POINT('Vertex',(30.0000000004,5.,5.)) ;
+#74=CARTESIAN_POINT('Vertex',(20.0000000004,5.,5.)) ;
+#78=CARTESIAN_POINT('Control Point',(30.,5.,-5.)) ;
+#79=CARTESIAN_POINT('Control Point',(30.,4.2146018366,-5.)) ;
+#80=CARTESIAN_POINT('Control Point',(30.,3.42920367321,-4.84578743123)) ;
+#81=CARTESIAN_POINT('Control Point',(30.0000000001,2.68423158173,-4.53720988735)) ;
+#82=CARTESIAN_POINT('Control Point',(30.0000000001,1.35542134095,-3.64457865905)) ;
+#83=CARTESIAN_POINT('Control Point',(30.0000000002,0.462790112647,-2.31576841827)) ;
+#84=CARTESIAN_POINT('Control Point',(30.0000000002,0.154212568767,-1.57079632679)) ;
+#85=CARTESIAN_POINT('Control Point',(30.0000000002,-0.154212568767,1.98447071066E-015)) ;
+#86=CARTESIAN_POINT('Control Point',(30.0000000003,0.154212568767,1.57079632679)) ;
+#87=CARTESIAN_POINT('Control Point',(30.0000000003,0.462790112647,2.31576841827)) ;
+#88=CARTESIAN_POINT('Control Point',(30.0000000003,1.35542134095,3.64457865905)) ;
+#89=CARTESIAN_POINT('Control Point',(30.0000000004,2.68423158173,4.53720988735)) ;
+#90=CARTESIAN_POINT('Control Point',(30.0000000004,3.42920367321,4.84578743123)) ;
+#91=CARTESIAN_POINT('Control Point',(30.0000000004,4.2146018366,5.)) ;
+#92=CARTESIAN_POINT('Control Point',(30.0000000004,5.,5.)) ;
+#93=CARTESIAN_POINT('Vertex',(30.0000000004,5.,-5.)) ;
+#96=CARTESIAN_POINT('Line Origine',(146.885775404,5.,-5.)) ;
+#100=CARTESIAN_POINT('Vertex',(20.,5.,-5.)) ;
+#104=CARTESIAN_POINT('Control Point',(20.0000000004,5.,5.)) ;
+#105=CARTESIAN_POINT('Control Point',(20.0000000004,4.2146018366,5.)) ;
+#106=CARTESIAN_POINT('Control Point',(20.0000000004,3.42920367321,4.84578743123)) ;
+#107=CARTESIAN_POINT('Control Point',(20.0000000004,2.68423158173,4.53720988735)) ;
+#108=CARTESIAN_POINT('Control Point',(20.0000000003,1.35542134095,3.64457865905)) ;
+#109=CARTESIAN_POINT('Control Point',(20.0000000003,0.462790112647,2.31576841827)) ;
+#110=CARTESIAN_POINT('Control Point',(20.0000000003,0.154212568767,1.57079632679)) ;
+#111=CARTESIAN_POINT('Control Point',(20.0000000002,-0.154212568767,-1.13398326323E-015)) ;
+#112=CARTESIAN_POINT('Control Point',(20.0000000002,0.154212568767,-1.57079632679)) ;
+#113=CARTESIAN_POINT('Control Point',(20.0000000002,0.462790112647,-2.31576841827)) ;
+#114=CARTESIAN_POINT('Control Point',(20.0000000001,1.35542134095,-3.64457865905)) ;
+#115=CARTESIAN_POINT('Control Point',(20.0000000001,2.68423158173,-4.53720988735)) ;
+#116=CARTESIAN_POINT('Control Point',(20.,3.42920367321,-4.84578743123)) ;
+#117=CARTESIAN_POINT('Control Point',(20.,4.2146018366,-5.)) ;
+#118=CARTESIAN_POINT('Control Point',(20.,5.,-5.)) ;
+#127=CARTESIAN_POINT('Axis2P3D Location',(146.885775404,5.,0.)) ;
+#132=CARTESIAN_POINT('Axis2P3D Location',(20.0000000004,5.,0.)) ;
+#137=CARTESIAN_POINT('Axis2P3D Location',(30.0000000004,5.,0.)) ;
+#149=CARTESIAN_POINT('Axis2P3D Location',(30.,25.,-50.)) ;
+#154=CARTESIAN_POINT('Line Origine',(30.,0.,50.)) ;
+#158=CARTESIAN_POINT('Vertex',(30.,25.,50.)) ;
+#160=CARTESIAN_POINT('Vertex',(30.,-25.,50.)) ;
+#163=CARTESIAN_POINT('Line Origine',(30.,-25.,0.)) ;
+#167=CARTESIAN_POINT('Vertex',(30.,-25.,-50.)) ;
+#170=CARTESIAN_POINT('Line Origine',(30.,0.,-50.)) ;
+#174=CARTESIAN_POINT('Vertex',(30.,25.,-50.)) ;
+#177=CARTESIAN_POINT('Line Origine',(30.,25.,0.)) ;
+#189=CARTESIAN_POINT('Control Point',(30.,-13.1698729806,15.4903810564)) ;
+#190=CARTESIAN_POINT('Control Point',(30.,-12.8960161287,15.016047075)) ;
+#191=CARTESIAN_POINT('Control Point',(30.,-12.6871093474,14.5042147651)) ;
+#192=CARTESIAN_POINT('Control Point',(30.,-12.5500072729,13.9666921033)) ;
+#193=CARTESIAN_POINT('Control Point',(30.,-12.4264790799,12.8679642662)) ;
+#194=CARTESIAN_POINT('Control Point',(30.,-12.6028538506,11.7764747485)) ;
+#195=CARTESIAN_POINT('Control Point',(30.,-12.7657199312,11.2461897012)) ;
+#196=CARTESIAN_POINT('Control Point',(30.,-13.2324186028,10.2438651882)) ;
+#197=CARTESIAN_POINT('Control Point',(30.,-13.9513789308,9.40389287983)) ;
+#198=CARTESIAN_POINT('Control Point',(30.,-14.366562681,9.0359933905)) ;
+#199=CARTESIAN_POINT('Control Point',(30.,-15.2869440429,8.42332689458)) ;
+#200=CARTESIAN_POINT('Control Point',(30.,-16.3381404003,8.08062635872)) ;
+#201=CARTESIAN_POINT('Control Point',(30.,-16.8841695996,7.98275046179)) ;
+#202=CARTESIAN_POINT('Control Point',(30.,-17.9889534405,7.93899264059)) ;
+#203=CARTESIAN_POINT('Control Point',(30.,-19.06483247,8.1938293503)) ;
+#204=CARTESIAN_POINT('Control Point',(30.,-19.5819528563,8.39461305141)) ;
+#205=CARTESIAN_POINT('Control Point',(30.,-20.4202785222,8.86148802385)) ;
+#206=CARTESIAN_POINT('Control Point',(30.,-21.1229012492,9.50902773031)) ;
+#207=CARTESIAN_POINT('Control Point',(30.,-21.3919903062,9.81270158389)) ;
+#208=CARTESIAN_POINT('Control Point',(30.,-21.6286380923,10.1413919975)) ;
+#209=CARTESIAN_POINT('Control Point',(30.,-21.8301270194,10.4903810564)) ;
+#210=CARTESIAN_POINT('Vertex',(30.0000000004,-13.1698729811,15.4903810568)) ;
+#212=CARTESIAN_POINT('Vertex',(30.0000000004,-21.8301270189,10.4903810568)) ;
+#216=CARTESIAN_POINT('Control Point',(30.,-21.8301270194,10.4903810564)) ;
+#217=CARTESIAN_POINT('Control Point',(30.,-22.103983871,10.9647150374)) ;
+#218=CARTESIAN_POINT('Control Point',(30.,-22.3128906521,11.4765473467)) ;
+#219=CARTESIAN_POINT('Control Point',(30.,-22.4499927272,12.0140700109)) ;
+#220=CARTESIAN_POINT('Control Point',(30.,-22.57352092,13.112797848)) ;
+#221=CARTESIAN_POINT('Control Point',(30.,-22.3971461491,14.2042873658)) ;
+#222=CARTESIAN_POINT('Control Point',(30.,-22.2342800694,14.7345724105)) ;
+#223=CARTESIAN_POINT('Control Point',(30.,-21.767581398,15.7368969234)) ;
+#224=CARTESIAN_POINT('Control Point',(30.,-21.0486210703,16.5768692318)) ;
+#225=CARTESIAN_POINT('Control Point',(30.,-20.6334373176,16.9447687251)) ;
+#226=CARTESIAN_POINT('Control Point',(30.,-19.7130559573,17.5574352198)) ;
+#227=CARTESIAN_POINT('Control Point',(30.,-18.6618596017,17.9001357554)) ;
+#228=CARTESIAN_POINT('Control Point',(30.,-18.1158303983,17.9980116512)) ;
+#229=CARTESIAN_POINT('Control Point',(30.,-17.0110465561,18.0417694721)) ;
+#230=CARTESIAN_POINT('Control Point',(30.,-15.9351675255,17.7869327615)) ;
+#231=CARTESIAN_POINT('Control Point',(30.,-15.4180471478,17.5861490638)) ;
+#232=CARTESIAN_POINT('Control Point',(30.,-14.5797214775,17.1192740895)) ;
+#233=CARTESIAN_POINT('Control Point',(30.,-13.8770987475,16.4717343795)) ;
+#234=CARTESIAN_POINT('Control Point',(30.,-13.6080096965,16.1680605327)) ;
+#235=CARTESIAN_POINT('Control Point',(30.,-13.3713619088,15.8393701173)) ;
+#236=CARTESIAN_POINT('Control Point',(30.,-13.1698729806,15.4903810564)) ;
+#243=CARTESIAN_POINT('Control Point',(30.,-21.8301270194,-10.4903810564)) ;
+#244=CARTESIAN_POINT('Control Point',(30.,-21.5562701677,-10.0160470753)) ;
+#245=CARTESIAN_POINT('Control Point',(30.,-21.2174637758,-9.57921234104)) ;
+#246=CARTESIAN_POINT('Control Point',(30.,-20.8205065314,-9.19171712959)) ;
+#247=CARTESIAN_POINT('Control Point',(30.,-19.9307444093,-8.53537465804)) ;
+#248=CARTESIAN_POINT('Control Point',(30.,-18.8972993738,-8.14237493132)) ;
+#249=CARTESIAN_POINT('Control Point',(30.,-18.3566260127,-8.01827857092)) ;
+#250=CARTESIAN_POINT('Control Point',(30.,-17.2552381873,-7.92128922002)) ;
+#251=CARTESIAN_POINT('Control Point',(30.,-16.1683206673,-8.12394097344)) ;
+#252=CARTESIAN_POINT('Control Point',(30.,-15.6421184809,-8.29955090444)) ;
+#253=CARTESIAN_POINT('Control Point',(30.,-14.651343053,-8.79029129626)) ;
+#254=CARTESIAN_POINT('Control Point',(30.,-13.8289575062,-9.52930377634)) ;
+#255=CARTESIAN_POINT('Control Point',(30.,-13.4711798922,-9.95324098914)) ;
+#256=CARTESIAN_POINT('Control Point',(30.,-12.8808925865,-10.8881329516)) ;
+#257=CARTESIAN_POINT('Control Point',(30.,-12.5636481364,-11.9472898787)) ;
+#258=CARTESIAN_POINT('Control Point',(30.,-12.4789717295,-12.4955211137)) ;
+#259=CARTESIAN_POINT('Control Point',(30.,-12.4641344825,-13.4549699256)) ;
+#260=CARTESIAN_POINT('Control Point',(30.,-12.6736089554,-14.3872289119)) ;
+#261=CARTESIAN_POINT('Control Point',(30.,-12.8020536981,-14.7721037957)) ;
+#262=CARTESIAN_POINT('Control Point',(30.,-12.9683840533,-15.1413919973)) ;
+#263=CARTESIAN_POINT('Control Point',(30.,-13.1698729806,-15.4903810564)) ;
+#264=CARTESIAN_POINT('Vertex',(30.0000000004,-21.8301270189,-10.4903810568)) ;
+#266=CARTESIAN_POINT('Vertex',(30.0000000004,-13.1698729811,-15.4903810568)) ;
+#270=CARTESIAN_POINT('Control Point',(30.,-13.1698729806,-15.4903810564)) ;
+#271=CARTESIAN_POINT('Control Point',(30.,-13.4437298331,-15.9647150391)) ;
+#272=CARTESIAN_POINT('Control Point',(30.,-13.7825362263,-16.4015497746)) ;
+#273=CARTESIAN_POINT('Control Point',(30.,-14.1794934657,-16.7890449812)) ;
+#274=CARTESIAN_POINT('Control Point',(30.,-15.069255591,-17.4453874557)) ;
+#275=CARTESIAN_POINT('Control Point',(30.,-16.1027006308,-17.8383871833)) ;
+#276=CARTESIAN_POINT('Control Point',(30.,-16.6433739825,-17.9624835415)) ;
+#277=CARTESIAN_POINT('Control Point',(30.,-17.7447618126,-18.0594728935)) ;
+#278=CARTESIAN_POINT('Control Point',(30.,-18.8316793374,-17.8568211386)) ;
+#279=CARTESIAN_POINT('Control Point',(30.,-19.3578815148,-17.6812112106)) ;
+#280=CARTESIAN_POINT('Control Point',(30.,-20.3486569466,-17.1904708175)) ;
+#281=CARTESIAN_POINT('Control Point',(30.,-21.1710424963,-16.4514583344)) ;
+#282=CARTESIAN_POINT('Control Point',(30.,-21.528820106,-16.0275211265)) ;
+#283=CARTESIAN_POINT('Control Point',(30.,-22.1191074132,-15.0926291625)) ;
+#284=CARTESIAN_POINT('Control Point',(30.,-22.4363518638,-14.0334722334)) ;
+#285=CARTESIAN_POINT('Control Point',(30.,-22.5210282705,-13.485241)) ;
+#286=CARTESIAN_POINT('Control Point',(30.,-22.5358655175,-12.5257921888)) ;
+#287=CARTESIAN_POINT('Control Point',(30.,-22.3263910451,-11.5935332031)) ;
+#288=CARTESIAN_POINT('Control Point',(30.,-22.197946301,-11.2086583152)) ;
+#289=CARTESIAN_POINT('Control Point',(30.,-22.0316159461,-10.8393701146)) ;
+#290=CARTESIAN_POINT('Control Point',(30.,-21.8301270194,-10.4903810564)) ;
+#301=CARTESIAN_POINT('Axis2P3D Location',(20.,-25.,-50.)) ;
+#306=CARTESIAN_POINT('Line Origine',(20.,-5.,50.)) ;
+#310=CARTESIAN_POINT('Vertex',(20.,-25.,50.)) ;
+#312=CARTESIAN_POINT('Vertex',(20.,15.,50.)) ;
+#315=CARTESIAN_POINT('Line Origine',(20.,15.,0.)) ;
+#319=CARTESIAN_POINT('Vertex',(20.,15.,-50.)) ;
+#322=CARTESIAN_POINT('Line Origine',(20.,-5.,-50.)) ;
+#326=CARTESIAN_POINT('Vertex',(20.,-25.,-50.)) ;
+#329=CARTESIAN_POINT('Line Origine',(20.,-25.,0.)) ;
+#341=CARTESIAN_POINT('Control Point',(20.,-21.8301270194,10.4903810564)) ;
+#342=CARTESIAN_POINT('Control Point',(20.,-21.5562701677,10.0160470753)) ;
+#343=CARTESIAN_POINT('Control Point',(20.,-21.2174637758,9.57921234103)) ;
+#344=CARTESIAN_POINT('Control Point',(20.,-20.8205065314,9.1917171296)) ;
+#345=CARTESIAN_POINT('Control Point',(20.,-19.9307444093,8.53537465804)) ;
+#346=CARTESIAN_POINT('Control Point',(20.,-18.8972993738,8.14237493132)) ;
+#347=CARTESIAN_POINT('Control Point',(20.,-18.3566260127,8.01827857092)) ;
+#348=CARTESIAN_POINT('Control Point',(20.,-17.2552381874,7.92128922002)) ;
+#349=CARTESIAN_POINT('Control Point',(20.,-16.1683206673,8.12394097343)) ;
+#350=CARTESIAN_POINT('Control Point',(20.,-15.6421184809,8.29955090444)) ;
+#351=CARTESIAN_POINT('Control Point',(20.,-14.651343053,8.79029129627)) ;
+#352=CARTESIAN_POINT('Control Point',(20.,-13.8289575061,9.52930377635)) ;
+#353=CARTESIAN_POINT('Control Point',(20.,-13.4711798922,9.95324098912)) ;
+#354=CARTESIAN_POINT('Control Point',(20.,-12.8808925865,10.8881329516)) ;
+#355=CARTESIAN_POINT('Control Point',(20.,-12.5636481364,11.9472898788)) ;
+#356=CARTESIAN_POINT('Control Point',(20.,-12.4789717295,12.4955211137)) ;
+#357=CARTESIAN_POINT('Control Point',(20.,-12.4641344825,13.4549699256)) ;
+#358=CARTESIAN_POINT('Control Point',(20.,-12.6736089554,14.3872289119)) ;
+#359=CARTESIAN_POINT('Control Point',(20.,-12.8020536981,14.7721037957)) ;
+#360=CARTESIAN_POINT('Control Point',(20.,-12.9683840533,15.1413919973)) ;
+#361=CARTESIAN_POINT('Control Point',(20.,-13.1698729806,15.4903810564)) ;
+#362=CARTESIAN_POINT('Vertex',(20.0000000004,-21.8301270189,10.4903810568)) ;
+#364=CARTESIAN_POINT('Vertex',(20.,-13.1698729811,15.4903810568)) ;
+#368=CARTESIAN_POINT('Control Point',(20.,-13.1698729806,15.4903810564)) ;
+#369=CARTESIAN_POINT('Control Point',(20.,-13.4437298332,15.9647150391)) ;
+#370=CARTESIAN_POINT('Control Point',(20.,-13.7825362264,16.4015497747)) ;
+#371=CARTESIAN_POINT('Control Point',(20.,-14.1794934656,16.7890449811)) ;
+#372=CARTESIAN_POINT('Control Point',(20.,-15.069255591,17.4453874556)) ;
+#373=CARTESIAN_POINT('Control Point',(20.,-16.1027006308,17.8383871833)) ;
+#374=CARTESIAN_POINT('Control Point',(20.,-16.6433739825,17.9624835415)) ;
+#375=CARTESIAN_POINT('Control Point',(20.,-17.7447618126,18.0594728935)) ;
+#376=CARTESIAN_POINT('Control Point',(20.,-18.8316793374,17.8568211386)) ;
+#377=CARTESIAN_POINT('Control Point',(20.,-19.3578815148,17.6812112106)) ;
+#378=CARTESIAN_POINT('Control Point',(20.,-20.3486569467,17.1904708175)) ;
+#379=CARTESIAN_POINT('Control Point',(20.,-21.1710424963,16.4514583344)) ;
+#380=CARTESIAN_POINT('Control Point',(20.,-21.528820106,16.0275211265)) ;
+#381=CARTESIAN_POINT('Control Point',(20.,-22.1191074132,15.0926291625)) ;
+#382=CARTESIAN_POINT('Control Point',(20.,-22.4363518638,14.0334722334)) ;
+#383=CARTESIAN_POINT('Control Point',(20.,-22.5210282705,13.485241)) ;
+#384=CARTESIAN_POINT('Control Point',(20.,-22.5358655175,12.5257921888)) ;
+#385=CARTESIAN_POINT('Control Point',(20.,-22.3263910451,11.5935332031)) ;
+#386=CARTESIAN_POINT('Control Point',(20.,-22.197946301,11.2086583152)) ;
+#387=CARTESIAN_POINT('Control Point',(20.,-22.0316159461,10.8393701146)) ;
+#388=CARTESIAN_POINT('Control Point',(20.,-21.8301270194,10.4903810564)) ;
+#395=CARTESIAN_POINT('Control Point',(20.,-13.1698729806,-15.4903810564)) ;
+#396=CARTESIAN_POINT('Control Point',(20.,-12.8960161287,-15.016047075)) ;
+#397=CARTESIAN_POINT('Control Point',(20.,-12.6871093474,-14.5042147651)) ;
+#398=CARTESIAN_POINT('Control Point',(20.,-12.5500072729,-13.9666921032)) ;
+#399=CARTESIAN_POINT('Control Point',(20.,-12.4264790799,-12.8679642662)) ;
+#400=CARTESIAN_POINT('Control Point',(20.,-12.6028538506,-11.7764747485)) ;
+#401=CARTESIAN_POINT('Control Point',(20.,-12.7657199312,-11.2461897011)) ;
+#402=CARTESIAN_POINT('Control Point',(20.,-13.2324186028,-10.2438651882)) ;
+#403=CARTESIAN_POINT('Control Point',(20.,-13.9513789308,-9.40389287982)) ;
+#404=CARTESIAN_POINT('Control Point',(20.,-14.366562681,-9.0359933905)) ;
+#405=CARTESIAN_POINT('Control Point',(20.,-15.2869440429,-8.42332689458)) ;
+#406=CARTESIAN_POINT('Control Point',(20.,-16.3381404003,-8.08062635872)) ;
+#407=CARTESIAN_POINT('Control Point',(20.,-16.8841695996,-7.98275046179)) ;
+#408=CARTESIAN_POINT('Control Point',(20.,-17.9889534405,-7.93899264059)) ;
+#409=CARTESIAN_POINT('Control Point',(20.,-19.06483247,-8.1938293503)) ;
+#410=CARTESIAN_POINT('Control Point',(20.,-19.5819528563,-8.39461305141)) ;
+#411=CARTESIAN_POINT('Control Point',(20.,-20.4202785222,-8.86148802385)) ;
+#412=CARTESIAN_POINT('Control Point',(20.,-21.1229012492,-9.50902773031)) ;
+#413=CARTESIAN_POINT('Control Point',(20.,-21.3919903062,-9.81270158389)) ;
+#414=CARTESIAN_POINT('Control Point',(20.,-21.6286380923,-10.1413919975)) ;
+#415=CARTESIAN_POINT('Control Point',(20.,-21.8301270194,-10.4903810564)) ;
+#416=CARTESIAN_POINT('Vertex',(20.0000000004,-13.1698729811,-15.4903810568)) ;
+#418=CARTESIAN_POINT('Vertex',(20.,-21.8301270189,-10.4903810568)) ;
+#422=CARTESIAN_POINT('Control Point',(20.,-21.8301270194,-10.4903810564)) ;
+#423=CARTESIAN_POINT('Control Point',(20.,-22.103983871,-10.9647150374)) ;
+#424=CARTESIAN_POINT('Control Point',(20.,-22.3128906521,-11.4765473467)) ;
+#425=CARTESIAN_POINT('Control Point',(20.,-22.4499927272,-12.0140700109)) ;
+#426=CARTESIAN_POINT('Control Point',(20.,-22.57352092,-13.112797848)) ;
+#427=CARTESIAN_POINT('Control Point',(20.,-22.3971461491,-14.2042873658)) ;
+#428=CARTESIAN_POINT('Control Point',(20.,-22.2342800694,-14.7345724104)) ;
+#429=CARTESIAN_POINT('Control Point',(20.,-21.767581398,-15.7368969234)) ;
+#430=CARTESIAN_POINT('Control Point',(20.,-21.0486210703,-16.5768692318)) ;
+#431=CARTESIAN_POINT('Control Point',(20.,-20.6334373176,-16.9447687252)) ;
+#432=CARTESIAN_POINT('Control Point',(20.,-19.7130559572,-17.5574352198)) ;
+#433=CARTESIAN_POINT('Control Point',(20.,-18.6618596017,-17.9001357554)) ;
+#434=CARTESIAN_POINT('Control Point',(20.,-18.1158303983,-17.9980116512)) ;
+#435=CARTESIAN_POINT('Control Point',(20.,-17.0110465561,-18.0417694721)) ;
+#436=CARTESIAN_POINT('Control Point',(20.,-15.9351675255,-17.7869327615)) ;
+#437=CARTESIAN_POINT('Control Point',(20.,-15.4180471478,-17.5861490637)) ;
+#438=CARTESIAN_POINT('Control Point',(20.,-14.5797214775,-17.1192740895)) ;
+#439=CARTESIAN_POINT('Control Point',(20.,-13.8770987475,-16.4717343795)) ;
+#440=CARTESIAN_POINT('Control Point',(20.,-13.6080096965,-16.1680605327)) ;
+#441=CARTESIAN_POINT('Control Point',(20.,-13.3713619088,-15.8393701173)) ;
+#442=CARTESIAN_POINT('Control Point',(20.,-13.1698729806,-15.4903810564)) ;
+#453=CARTESIAN_POINT('Axis2P3D Location',(20.,-25.,50.)) ;
+#458=CARTESIAN_POINT('Line Origine',(25.,-25.,50.)) ;
+#463=CARTESIAN_POINT('Line Origine',(0.,25.,50.)) ;
+#467=CARTESIAN_POINT('Vertex',(-30.,25.,50.)) ;
+#470=CARTESIAN_POINT('Line Origine',(-30.,20.,50.)) ;
+#474=CARTESIAN_POINT('Vertex',(-30.,15.,50.)) ;
+#477=CARTESIAN_POINT('Line Origine',(-5.,15.,50.)) ;
+#491=CARTESIAN_POINT('Axis2P3D Location',(30.,-25.,-50.)) ;
+#496=CARTESIAN_POINT('Line Origine',(25.,-25.,-50.)) ;
+#508=CARTESIAN_POINT('Axis2P3D Location',(6.66666666667,5.,-50.)) ;
+#513=CARTESIAN_POINT('Line Origine',(-4.99999999938,15.,-50.)) ;
+#517=CARTESIAN_POINT('Vertex',(-30.,15.,-50.)) ;
+#520=CARTESIAN_POINT('Line Origine',(-29.9999999994,20.,-50.)) ;
+#524=CARTESIAN_POINT('Vertex',(-30.,25.,-50.)) ;
+#527=CARTESIAN_POINT('Line Origine',(6.20900664217E-010,25.,-50.)) ;
+#541=CARTESIAN_POINT('Axis2P3D Location',(-30.,25.,-50.)) ;
+#546=CARTESIAN_POINT('Line Origine',(-30.,25.,0.)) ;
+#558=CARTESIAN_POINT('Control Point',(-10.,25.,5.)) ;
+#559=CARTESIAN_POINT('Control Point',(-10.5477137052,25.,5.)) ;
+#560=CARTESIAN_POINT('Control Point',(-11.09542688,25.,4.9250024243)) ;
+#561=CARTESIAN_POINT('Control Point',(-11.6294861924,25.,4.77497497429)) ;
+#562=CARTESIAN_POINT('Control Point',(-12.642776511,25.,4.33258960796)) ;
+#563=CARTESIAN_POINT('Control Point',(-13.4998467783,25.,3.63409981446)) ;
+#564=CARTESIAN_POINT('Control Point',(-13.8776540543,25.,3.2279111336)) ;
+#565=CARTESIAN_POINT('Control Point',(-14.5123432122,25.,2.32257596885)) ;
+#566=CARTESIAN_POINT('Control Point',(-14.8803004065,25.,1.27995190258)) ;
+#567=CARTESIAN_POINT('Control Point',(-14.9913188347,25.,0.736442489121)) ;
+#568=CARTESIAN_POINT('Control Point',(-15.0617129038,25.,-0.366964399168)) ;
+#569=CARTESIAN_POINT('Control Point',(-14.8329020956,25.,-1.44867741682)) ;
+#570=CARTESIAN_POINT('Control Point',(-14.6446505074,25.,-1.97049052935)) ;
+#571=CARTESIAN_POINT('Control Point',(-14.1301539728,25.,-2.94914030862)) ;
+#572=CARTESIAN_POINT('Control Point',(-13.3715193963,25.,-3.75346052241)) ;
+#573=CARTESIAN_POINT('Control Point',(-12.9390754118,25.,-4.10090806785)) ;
+#574=CARTESIAN_POINT('Control Point',(-12.1155869935,25.,-4.59348190386)) ;
+#575=CARTESIAN_POINT('Control Point',(-11.2034897956,25.,-4.87820118104)) ;
+#576=CARTESIAN_POINT('Control Point',(-10.8059559954,25.,-4.95940221226)) ;
+#577=CARTESIAN_POINT('Control Point',(-10.4029778542,25.,-5.)) ;
+#578=CARTESIAN_POINT('Control Point',(-10.,25.,-5.)) ;
+#579=CARTESIAN_POINT('Vertex',(-10.,25.0000000004,5.)) ;
+#581=CARTESIAN_POINT('Vertex',(-10.,25.0000000004,-5.)) ;
+#585=CARTESIAN_POINT('Control Point',(-10.,25.,-5.)) ;
+#586=CARTESIAN_POINT('Control Point',(-9.45228629483,25.,-5.)) ;
+#587=CARTESIAN_POINT('Control Point',(-8.90457311998,25.,-4.92500242429)) ;
+#588=CARTESIAN_POINT('Control Point',(-8.37051380756,25.,-4.77497497429)) ;
+#589=CARTESIAN_POINT('Control Point',(-7.35722348901,25.,-4.33258960796)) ;
+#590=CARTESIAN_POINT('Control Point',(-6.5001532217,25.,-3.63409981447)) ;
+#591=CARTESIAN_POINT('Control Point',(-6.12234594572,25.,-3.22791113359)) ;
+#592=CARTESIAN_POINT('Control Point',(-5.48765678784,25.,-2.32257596885)) ;
+#593=CARTESIAN_POINT('Control Point',(-5.11969959348,25.,-1.27995190257)) ;
+#594=CARTESIAN_POINT('Control Point',(-5.00868116525,25.,-0.736442489123)) ;
+#595=CARTESIAN_POINT('Control Point',(-4.93828709623,25.,0.366964399184)) ;
+#596=CARTESIAN_POINT('Control Point',(-5.16709790445,25.,1.44867741685)) ;
+#597=CARTESIAN_POINT('Control Point',(-5.3553494926,25.,1.97049052932)) ;
+#598=CARTESIAN_POINT('Control Point',(-5.86984602717,25.,2.94914030863)) ;
+#599=CARTESIAN_POINT('Control Point',(-6.6284806037,25.,3.75346052244)) ;
+#600=CARTESIAN_POINT('Control Point',(-7.06092458818,25.,4.10090806783)) ;
+#601=CARTESIAN_POINT('Control Point',(-7.88441300652,25.,4.59348190386)) ;
+#602=CARTESIAN_POINT('Control Point',(-8.79651020437,25.,4.87820118104)) ;
+#603=CARTESIAN_POINT('Control Point',(-9.19404400457,25.,4.95940221226)) ;
+#604=CARTESIAN_POINT('Control Point',(-9.59702214582,25.,5.)) ;
+#605=CARTESIAN_POINT('Control Point',(-10.,25.,5.)) ;
+#612=CARTESIAN_POINT('Axis2P3D Location',(146.885775404,-17.5,12.9903810568)) ;
+#617=CARTESIAN_POINT('Line Origine',(146.885775404,-21.8301270189,10.4903810568)) ;
+#622=CARTESIAN_POINT('Line Origine',(146.885775404,-13.1698729811,15.4903810568)) ;
+#634=CARTESIAN_POINT('Axis2P3D Location',(146.885775404,-17.5,12.9903810568)) ;
+#646=CARTESIAN_POINT('Axis2P3D Location',(146.885775404,-17.5,-12.9903810568)) ;
+#651=CARTESIAN_POINT('Line Origine',(146.885775404,-13.1698729811,-15.4903810568)) ;
+#656=CARTESIAN_POINT('Line Origine',(146.885775404,-21.8301270189,-10.4903810568)) ;
+#668=CARTESIAN_POINT('Axis2P3D Location',(146.885775404,-17.5,-12.9903810568)) ;
+#680=CARTESIAN_POINT('Axis2P3D Location',(20.,15.,-50.)) ;
+#685=CARTESIAN_POINT('Line Origine',(-30.,15.,0.)) ;
+#697=CARTESIAN_POINT('Control Point',(-10.,15.,-5.)) ;
+#698=CARTESIAN_POINT('Control Point',(-10.5477137052,15.,-5.)) ;
+#699=CARTESIAN_POINT('Control Point',(-11.0954268801,15.,-4.92500242428)) ;
+#700=CARTESIAN_POINT('Control Point',(-11.6294861924,15.,-4.77497497432)) ;
+#701=CARTESIAN_POINT('Control Point',(-12.642776511,15.,-4.33258960797)) ;
+#702=CARTESIAN_POINT('Control Point',(-13.4998467783,15.,-3.63409981443)) ;
+#703=CARTESIAN_POINT('Control Point',(-13.8776540542,15.,-3.22791113364)) ;
+#704=CARTESIAN_POINT('Control Point',(-14.5123432122,15.,-2.32257596888)) ;
+#705=CARTESIAN_POINT('Control Point',(-14.8803004065,15.,-1.27995190258)) ;
+#706=CARTESIAN_POINT('Control Point',(-14.9913188347,15.,-0.736442489115)) ;
+#707=CARTESIAN_POINT('Control Point',(-15.0617129038,15.,0.366964399197)) ;
+#708=CARTESIAN_POINT('Control Point',(-14.8329020955,15.,1.44867741687)) ;
+#709=CARTESIAN_POINT('Control Point',(-14.6446505074,15.,1.97049052931)) ;
+#710=CARTESIAN_POINT('Control Point',(-14.1301539728,15.,2.94914030861)) ;
+#711=CARTESIAN_POINT('Control Point',(-13.3715193963,15.,3.75346052243)) ;
+#712=CARTESIAN_POINT('Control Point',(-12.9390754118,15.,4.10090806784)) ;
+#713=CARTESIAN_POINT('Control Point',(-12.1155869935,15.,4.59348190386)) ;
+#714=CARTESIAN_POINT('Control Point',(-11.2034897956,15.,4.87820118104)) ;
+#715=CARTESIAN_POINT('Control Point',(-10.8059559954,15.,4.95940221226)) ;
+#716=CARTESIAN_POINT('Control Point',(-10.4029778542,15.,5.)) ;
+#717=CARTESIAN_POINT('Control Point',(-10.,15.,5.)) ;
+#718=CARTESIAN_POINT('Vertex',(-10.,15.0000000004,-5.)) ;
+#720=CARTESIAN_POINT('Vertex',(-10.,15.,5.)) ;
+#724=CARTESIAN_POINT('Control Point',(-10.,15.,5.)) ;
+#725=CARTESIAN_POINT('Control Point',(-9.45228629483,15.,5.)) ;
+#726=CARTESIAN_POINT('Control Point',(-8.90457311998,15.,4.9250024243)) ;
+#727=CARTESIAN_POINT('Control Point',(-8.37051380755,15.,4.77497497429)) ;
+#728=CARTESIAN_POINT('Control Point',(-7.35722348899,15.,4.33258960795)) ;
+#729=CARTESIAN_POINT('Control Point',(-6.50015322168,15.,3.63409981445)) ;
+#730=CARTESIAN_POINT('Control Point',(-6.12234594573,15.,3.22791113361)) ;
+#731=CARTESIAN_POINT('Control Point',(-5.48765678784,15.,2.32257596886)) ;
+#732=CARTESIAN_POINT('Control Point',(-5.11969959348,15.,1.27995190258)) ;
+#733=CARTESIAN_POINT('Control Point',(-5.00868116525,15.,0.736442489116)) ;
+#734=CARTESIAN_POINT('Control Point',(-4.93828709623,15.,-0.366964399172)) ;
+#735=CARTESIAN_POINT('Control Point',(-5.16709790445,15.,-1.44867741682)) ;
+#736=CARTESIAN_POINT('Control Point',(-5.35534949262,15.,-1.97049052936)) ;
+#737=CARTESIAN_POINT('Control Point',(-5.86984602718,15.,-2.94914030863)) ;
+#738=CARTESIAN_POINT('Control Point',(-6.62848060368,15.,-3.75346052242)) ;
+#739=CARTESIAN_POINT('Control Point',(-7.06092458819,15.,-4.10090806784)) ;
+#740=CARTESIAN_POINT('Control Point',(-7.88441300653,15.,-4.59348190386)) ;
+#741=CARTESIAN_POINT('Control Point',(-8.79651020436,15.,-4.87820118104)) ;
+#742=CARTESIAN_POINT('Control Point',(-9.19404400458,15.,-4.95940221226)) ;
+#743=CARTESIAN_POINT('Control Point',(-9.59702214582,15.,-5.)) ;
+#744=CARTESIAN_POINT('Control Point',(-10.,15.,-5.)) ;
+#751=CARTESIAN_POINT('Axis2P3D Location',(-30.,15.,-50.)) ;
+#763=CARTESIAN_POINT('Axis2P3D Location',(-10.,141.885775404,0.)) ;
+#768=CARTESIAN_POINT('Line Origine',(-10.,141.885775404,-5.)) ;
+#773=CARTESIAN_POINT('Line Origine',(-10.,141.885775404,5.)) ;
+#785=CARTESIAN_POINT('Axis2P3D Location',(-10.,141.885775404,0.)) ;
+#807=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
+#808=CARTESIAN_POINT('NONE',(150.,75.,50.)) ;
+#832=CARTESIAN_POINT('Axis2P3D Location',(1.5,1.006602E-014,1.746751E-014)) ;
+#837=CARTESIAN_POINT('Axis2P3D Location',(1.5,1.13982876296E-014,1.61352423704E-014)) ;
+#841=CARTESIAN_POINT('Vertex',(1.5,7.5,0.)) ;
+#843=CARTESIAN_POINT('Vertex',(1.5,-7.5,-4.24912383924E-015)) ;
+#846=CARTESIAN_POINT('Axis2P3D Location',(1.5,8.73375237045E-015,1.87997776296E-014)) ;
+#855=CARTESIAN_POINT('Axis2P3D Location',(1.5,1.09541984197E-014,1.65793315803E-014)) ;
+#859=CARTESIAN_POINT('Vertex',(1.5,5.,0.)) ;
+#861=CARTESIAN_POINT('Vertex',(1.5,-5.,6.12303176911E-016)) ;
+#864=CARTESIAN_POINT('Axis2P3D Location',(1.5,9.1778415803E-015,1.83556884197E-014)) ;
+#874=CARTESIAN_POINT('Axis2P3D Location',(1.5,0.,0.)) ;
+#879=CARTESIAN_POINT('Line Origine',(1.5,5.,-1.22460635382E-015)) ;
+#883=CARTESIAN_POINT('Vertex',(38.5,5.,0.)) ;
+#886=CARTESIAN_POINT('Axis2P3D Location',(38.5,0.,0.)) ;
+#890=CARTESIAN_POINT('Vertex',(38.5,-5.,6.12303176911E-016)) ;
+#893=CARTESIAN_POINT('Line Origine',(1.5,-5.,6.12303176911E-016)) ;
+#905=CARTESIAN_POINT('Axis2P3D Location',(1.5,0.,0.)) ;
+#910=CARTESIAN_POINT('Axis2P3D Location',(38.5,0.,0.)) ;
+#922=CARTESIAN_POINT('Axis2P3D Location',(38.5,5.,0.)) ;
+#932=CARTESIAN_POINT('Axis2P3D Location',(1.5,0.,0.)) ;
+#937=CARTESIAN_POINT('Line Origine',(1.5,7.5,0.)) ;
+#941=CARTESIAN_POINT('Vertex',(0.5,7.5,0.)) ;
+#944=CARTESIAN_POINT('Line Origine',(1.5,-7.5,-4.24912383924E-015)) ;
+#948=CARTESIAN_POINT('Vertex',(0.5,-7.5,-4.24912383924E-015)) ;
+#951=CARTESIAN_POINT('Axis2P3D Location',(0.5,0.,0.)) ;
+#963=CARTESIAN_POINT('Axis2P3D Location',(1.5,0.,0.)) ;
+#968=CARTESIAN_POINT('Axis2P3D Location',(0.5,0.,0.)) ;
+#980=CARTESIAN_POINT('Axis2P3D Location',(-1.5,7.5,0.)) ;
+#985=CARTESIAN_POINT('Axis2P3D Location',(-1.5,0.,-2.53269627493E-015)) ;
+#989=CARTESIAN_POINT('Vertex',(-1.5,5.5,7.7538984584E-008)) ;
+#991=CARTESIAN_POINT('Vertex',(-1.5,-5.5,-9.61987094331E-008)) ;
+#994=CARTESIAN_POINT('Axis2P3D Location',(-1.5,8.881784197E-016,-4.30211422042E-016)) ;
+#1004=CARTESIAN_POINT('Axis2P3D Location',(0.5,8.881784197E-016,-3.33066907388E-015)) ;
+#1009=CARTESIAN_POINT('Axis2P3D Location',(0.5,5.5,2.74629163854E-009)) ;
+#1014=CARTESIAN_POINT('Axis2P3D Location',(0.5,-5.5,-9.6198709526E-008)) ;
+#1026=CARTESIAN_POINT('Axis2P3D Location',(0.5,4.4408920985E-016,-1.55431223448E-015)) ;
+#1048=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
+#1049=CARTESIAN_POINT('NONE',(252.527291545,67.3529469863,18.9365794127)) ;
+#1065=CARTESIAN_POINT('Axis2P3D Location',(-1.5,-7.5,-10.)) ;
+#1070=CARTESIAN_POINT('Line Origine',(-1.5,0.,-10.)) ;
+#1074=CARTESIAN_POINT('Vertex',(-1.5,-7.5,-10.)) ;
+#1076=CARTESIAN_POINT('Vertex',(-1.5,7.5,-10.)) ;
+#1079=CARTESIAN_POINT('Line Origine',(-1.5,-7.5,0.)) ;
+#1083=CARTESIAN_POINT('Vertex',(-1.5,-7.5,10.)) ;
+#1086=CARTESIAN_POINT('Line Origine',(-1.5,0.,10.)) ;
+#1090=CARTESIAN_POINT('Vertex',(-1.5,7.5,10.)) ;
+#1093=CARTESIAN_POINT('Line Origine',(-1.5,7.5,0.)) ;
+#1104=CARTESIAN_POINT('Axis2P3D Location',(-1.5,8.881784197E-016,0.)) ;
+#1108=CARTESIAN_POINT('Vertex',(-1.50000000059,8.34347776911E-016,-5.)) ;
+#1110=CARTESIAN_POINT('Vertex',(-1.5,2.6645352591E-015,5.)) ;
+#1113=CARTESIAN_POINT('Axis2P3D Location',(-1.5,-8.881784197E-016,0.)) ;
+#1123=CARTESIAN_POINT('Axis2P3D Location',(1.5,-7.5,-10.)) ;
+#1128=CARTESIAN_POINT('Line Origine',(-0.5,-7.5,-10.)) ;
+#1132=CARTESIAN_POINT('Vertex',(0.5,-7.5,-10.)) ;
+#1135=CARTESIAN_POINT('Line Origine',(-0.5,7.5,-10.)) ;
+#1139=CARTESIAN_POINT('Vertex',(0.5,7.5,-10.)) ;
+#1142=CARTESIAN_POINT('Line Origine',(0.5,-8.881784197E-016,-10.)) ;
+#1154=CARTESIAN_POINT('Axis2P3D Location',(1.5,-7.5,10.)) ;
+#1159=CARTESIAN_POINT('Line Origine',(-0.5,-7.5,10.)) ;
+#1163=CARTESIAN_POINT('Vertex',(0.5,-7.5,10.)) ;
+#1166=CARTESIAN_POINT('Line Origine',(0.5,-7.5,-1.7763568394E-015)) ;
+#1178=CARTESIAN_POINT('Axis2P3D Location',(1.5,7.5,10.)) ;
+#1183=CARTESIAN_POINT('Line Origine',(-0.5,7.5,10.)) ;
+#1187=CARTESIAN_POINT('Vertex',(0.5,7.5,10.)) ;
+#1190=CARTESIAN_POINT('Line Origine',(0.5,-1.7763568394E-015,10.)) ;
+#1202=CARTESIAN_POINT('Axis2P3D Location',(1.5,7.5,-10.)) ;
+#1207=CARTESIAN_POINT('Line Origine',(0.5,7.5,1.7763568394E-015)) ;
+#1219=CARTESIAN_POINT('Axis2P3D Location',(0.5,0.,9.)) ;
+#1225=CARTESIAN_POINT('Control Point',(1.5,6.5,9.)) ;
+#1226=CARTESIAN_POINT('Control Point',(1.5,6.60172877653,9.10172877653)) ;
+#1227=CARTESIAN_POINT('Control Point',(1.48706407003,6.70294375782,9.20396816251)) ;
+#1228=CARTESIAN_POINT('Control Point',(1.46135276871,6.80390140682,9.30389465826)) ;
+#1229=CARTESIAN_POINT('Control Point',(1.38209084822,7.00229313499,9.50228479367)) ;
+#1230=CARTESIAN_POINT('Control Point',(1.24254361508,7.18462387437,9.68463244784)) ;
+#1231=CARTESIAN_POINT('Control Point',(1.15662240902,7.26921826151,9.76921898666)) ;
+#1232=CARTESIAN_POINT('Control Point',(0.987345401215,7.39073963531,9.89073916732)) ;
+#1233=CARTESIAN_POINT('Control Point',(0.774983165596,7.46765962756,9.96765992959)) ;
+#1234=CARTESIAN_POINT('Control Point',(0.685696192879,7.48922399455,9.98922399452)) ;
+#1235=CARTESIAN_POINT('Control Point',(0.592848286934,7.5,10.)) ;
+#1236=CARTESIAN_POINT('Control Point',(0.5,7.5,10.)) ;
+#1237=CARTESIAN_POINT('Vertex',(1.5,6.5,9.)) ;
+#1241=CARTESIAN_POINT('Control Point',(1.5,-6.5,9.)) ;
+#1242=CARTESIAN_POINT('Control Point',(1.5,-6.60172877653,9.10172877653)) ;
+#1243=CARTESIAN_POINT('Control Point',(1.48706407003,-6.70294375782,9.20396816251)) ;
+#1244=CARTESIAN_POINT('Control Point',(1.46135276871,-6.80390140682,9.30389465826)) ;
+#1245=CARTESIAN_POINT('Control Point',(1.38209084822,-7.00229313499,9.50228479367)) ;
+#1246=CARTESIAN_POINT('Control Point',(1.24254361508,-7.18462387437,9.68463244784)) ;
+#1247=CARTESIAN_POINT('Control Point',(1.15662240902,-7.26921826151,9.76921898666)) ;
+#1248=CARTESIAN_POINT('Control Point',(0.987345401215,-7.39073963531,9.89073916732)) ;
+#1249=CARTESIAN_POINT('Control Point',(0.774983165597,-7.46765962756,9.96765992959)) ;
+#1250=CARTESIAN_POINT('Control Point',(0.685696192878,-7.48922399455,9.98922399452)) ;
+#1251=CARTESIAN_POINT('Control Point',(0.592848286933,-7.5,10.)) ;
+#1252=CARTESIAN_POINT('Control Point',(0.5,-7.5,10.)) ;
+#1253=CARTESIAN_POINT('Vertex',(1.5,-6.5,9.)) ;
+#1256=CARTESIAN_POINT('Line Origine',(1.5,0.,9.)) ;
+#1268=CARTESIAN_POINT('Axis2P3D Location',(0.5,6.5,0.)) ;
+#1274=CARTESIAN_POINT('Control Point',(1.5,6.5,-9.)) ;
+#1275=CARTESIAN_POINT('Control Point',(1.5,6.60172877653,-9.10172877653)) ;
+#1276=CARTESIAN_POINT('Control Point',(1.48706407003,6.70396816251,-9.20294375782)) ;
+#1277=CARTESIAN_POINT('Control Point',(1.46135276871,6.80389465826,-9.30390140682)) ;
+#1278=CARTESIAN_POINT('Control Point',(1.38209084822,7.00228479367,-9.50229313499)) ;
+#1279=CARTESIAN_POINT('Control Point',(1.24254361508,7.18463244784,-9.68462387437)) ;
+#1280=CARTESIAN_POINT('Control Point',(1.15662240902,7.26921898666,-9.76921826151)) ;
+#1281=CARTESIAN_POINT('Control Point',(0.987345401215,7.39073916732,-9.89073963531)) ;
+#1282=CARTESIAN_POINT('Control Point',(0.774983165598,7.46765992959,-9.96765962756)) ;
+#1283=CARTESIAN_POINT('Control Point',(0.685696192875,7.48922399452,-9.98922399455)) ;
+#1284=CARTESIAN_POINT('Control Point',(0.592848286932,7.5,-10.)) ;
+#1285=CARTESIAN_POINT('Control Point',(0.5,7.5,-10.)) ;
+#1286=CARTESIAN_POINT('Vertex',(1.5,6.5,-9.)) ;
+#1289=CARTESIAN_POINT('Line Origine',(1.5,6.5,0.)) ;
+#1301=CARTESIAN_POINT('Axis2P3D Location',(0.5,0.,-9.)) ;
+#1307=CARTESIAN_POINT('Control Point',(1.5,-6.5,-9.)) ;
+#1308=CARTESIAN_POINT('Control Point',(1.5,-6.60172877653,-9.10172877653)) ;
+#1309=CARTESIAN_POINT('Control Point',(1.48706407003,-6.70294375782,-9.20396816251)) ;
+#1310=CARTESIAN_POINT('Control Point',(1.46135276871,-6.80390140682,-9.30389465826)) ;
+#1311=CARTESIAN_POINT('Control Point',(1.38209084822,-7.00229313499,-9.50228479367)) ;
+#1312=CARTESIAN_POINT('Control Point',(1.24254361508,-7.18462387437,-9.68463244784)) ;
+#1313=CARTESIAN_POINT('Control Point',(1.15662240902,-7.26921826151,-9.76921898666)) ;
+#1314=CARTESIAN_POINT('Control Point',(0.987345401215,-7.39073963531,-9.89073916732)) ;
+#1315=CARTESIAN_POINT('Control Point',(0.774983165596,-7.46765962756,-9.96765992959)) ;
+#1316=CARTESIAN_POINT('Control Point',(0.685696192877,-7.48922399455,-9.98922399452)) ;
+#1317=CARTESIAN_POINT('Control Point',(0.592848286933,-7.5,-10.)) ;
+#1318=CARTESIAN_POINT('Control Point',(0.5,-7.5,-10.)) ;
+#1319=CARTESIAN_POINT('Vertex',(1.5,-6.5,-9.)) ;
+#1322=CARTESIAN_POINT('Line Origine',(1.5,0.,-9.)) ;
+#1334=CARTESIAN_POINT('Axis2P3D Location',(0.5,-6.5,0.)) ;
+#1339=CARTESIAN_POINT('Line Origine',(1.5,-6.5,0.)) ;
+#1351=CARTESIAN_POINT('Axis2P3D Location',(-23.679356624,2.220446E-016,0.)) ;
+#1356=CARTESIAN_POINT('Axis2P3D Location',(0.5,2.220446E-016,0.)) ;
+#1360=CARTESIAN_POINT('Vertex',(0.5,2.220446E-016,5.)) ;
+#1362=CARTESIAN_POINT('Vertex',(0.5,8.34347776911E-016,-5.)) ;
+#1365=CARTESIAN_POINT('Line Origine',(-23.6793566234,2.220446E-016,5.)) ;
+#1370=CARTESIAN_POINT('Line Origine',(-23.6793566234,8.34347776911E-016,-5.)) ;
+#1382=CARTESIAN_POINT('Axis2P3D Location',(-23.679356624,2.220446E-016,0.)) ;
+#1387=CARTESIAN_POINT('Axis2P3D Location',(0.5,2.220446E-016,0.)) ;
+#1399=CARTESIAN_POINT('Axis2P3D Location',(1.5,0.,0.)) ;
+#1410=CARTESIAN_POINT('Axis2P3D Location',(1.5,4.7878367937E-015,-4.55191440096E-015)) ;
+#1414=CARTESIAN_POINT('Vertex',(1.5,6.48547187913E-008,6.)) ;
+#1416=CARTESIAN_POINT('Vertex',(1.5,-2.50929248776E-008,-6.)) ;
+#1419=CARTESIAN_POINT('Axis2P3D Location',(1.5,-9.32587340685E-015,8.43769498715E-015)) ;
+#1429=CARTESIAN_POINT('Axis2P3D Location',(0.5,0.,-4.4408920985E-016)) ;
+#1434=CARTESIAN_POINT('Axis2P3D Location',(0.5,0.,6.)) ;
+#1439=CARTESIAN_POINT('Axis2P3D Location',(0.5,7.66053886991E-015,-6.)) ;
+#1451=CARTESIAN_POINT('Axis2P3D Location',(0.5,-1.11022302463E-015,-4.4408920985E-016)) ;
+#1473=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
+#1474=CARTESIAN_POINT('NONE',(252.527291545,100.352946986,18.9365794127)) ;
+#1486=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
+#1487=CARTESIAN_POINT('NONE',(-97.5272915445,56.0634205873,98.8529469863)) ;
+#1501=CARTESIAN_POINT('NONE',(0.,0.,0.)) ;
+#1502=CARTESIAN_POINT('NONE',(-120.027291545,43.0730395305,98.8529469863)) ;
+#64=DIRECTION('Axis2P3D Direction',(1.,1.224606E-016,-0.)) ;
+#65=DIRECTION('Axis2P3D XDirection',(0.,0.,1.)) ;
+#69=DIRECTION('Vector Direction',(1.,1.22460619423E-016,0.)) ;
+#97=DIRECTION('Vector Direction',(1.,1.22460619423E-016,0.)) ;
+#128=DIRECTION('Axis2P3D Direction',(1.,1.224606E-016,-0.)) ;
+#129=DIRECTION('Axis2P3D XDirection',(1.49970981812E-032,-1.22464679915E-016,-1.)) ;
+#133=DIRECTION('Axis2P3D Direction',(1.,1.224606E-016,-0.)) ;
+#138=DIRECTION('Axis2P3D Direction',(1.,1.224606E-016,-0.)) ;
+#150=DIRECTION('Axis2P3D Direction',(1.,0.,0.)) ;
+#151=DIRECTION('Axis2P3D XDirection',(0.,0.,-1.)) ;
+#155=DIRECTION('Vector Direction',(0.,-1.,0.)) ;
+#164=DIRECTION('Vector Direction',(0.,0.,1.)) ;
+#171=DIRECTION('Vector Direction',(0.,-1.,0.)) ;
+#178=DIRECTION('Vector Direction',(0.,0.,1.)) ;
+#302=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#303=DIRECTION('Axis2P3D XDirection',(0.,0.,1.)) ;
+#307=DIRECTION('Vector Direction',(0.,1.,0.)) ;
+#316=DIRECTION('Vector Direction',(0.,0.,1.)) ;
+#323=DIRECTION('Vector Direction',(0.,1.,0.)) ;
+#330=DIRECTION('Vector Direction',(0.,0.,1.)) ;
+#454=DIRECTION('Axis2P3D Direction',(0.,0.,-1.)) ;
+#455=DIRECTION('Axis2P3D XDirection',(-1.,0.,0.)) ;
+#459=DIRECTION('Vector Direction',(-1.,0.,0.)) ;
+#464=DIRECTION('Vector Direction',(1.,0.,0.)) ;
+#471=DIRECTION('Vector Direction',(0.,1.,0.)) ;
+#478=DIRECTION('Vector Direction',(-1.,0.,0.)) ;
+#492=DIRECTION('Axis2P3D Direction',(0.,-1.,0.)) ;
+#493=DIRECTION('Axis2P3D XDirection',(0.,0.,-1.)) ;
+#497=DIRECTION('Vector Direction',(-1.,0.,0.)) ;
+#509=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
+#510=DIRECTION('Axis2P3D XDirection',(1.,0.,0.)) ;
+#514=DIRECTION('Vector Direction',(-1.,0.,0.)) ;
+#521=DIRECTION('Vector Direction',(0.,1.,0.)) ;
+#528=DIRECTION('Vector Direction',(1.,0.,0.)) ;
+#542=DIRECTION('Axis2P3D Direction',(0.,1.,0.)) ;
+#543=DIRECTION('Axis2P3D XDirection',(0.,0.,1.)) ;
+#547=DIRECTION('Vector Direction',(0.,0.,1.)) ;
+#613=DIRECTION('Axis2P3D Direction',(1.,3.06151588734E-017,-5.30270106505E-017)) ;
+#614=DIRECTION('Axis2P3D XDirection',(0.,-0.866025403784,-0.5)) ;
+#618=DIRECTION('Vector Direction',(1.,3.06151548557E-017,-5.3027093827E-017)) ;
+#623=DIRECTION('Vector Direction',(1.,3.06151548557E-017,-5.3027093827E-017)) ;
+#635=DIRECTION('Axis2P3D Direction',(1.,3.06151588734E-017,-5.30270106505E-017)) ;
+#636=DIRECTION('Axis2P3D XDirection',(-7.49855126393E-033,0.866025403784,0.5)) ;
+#647=DIRECTION('Axis2P3D Direction',(1.,3.06151588734E-017,5.30270106505E-017)) ;
+#648=DIRECTION('Axis2P3D XDirection',(0.,0.866025403784,-0.5)) ;
+#652=DIRECTION('Vector Direction',(1.,3.06151548557E-017,5.3027093827E-017)) ;
+#657=DIRECTION('Vector Direction',(1.,3.06151548557E-017,5.3027093827E-017)) ;
+#669=DIRECTION('Axis2P3D Direction',(1.,3.06151588734E-017,5.30270106505E-017)) ;
+#670=DIRECTION('Axis2P3D XDirection',(-7.49855126393E-033,-0.866025403784,0.5)) ;
+#681=DIRECTION('Axis2P3D Direction',(0.,-1.,0.)) ;
+#682=DIRECTION('Axis2P3D XDirection',(0.,0.,-1.)) ;
+#686=DIRECTION('Vector Direction',(0.,0.,1.)) ;
+#752=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#753=DIRECTION('Axis2P3D XDirection',(0.,0.,1.)) ;
+#764=DIRECTION('Axis2P3D Direction',(0.,1.,0.)) ;
+#765=DIRECTION('Axis2P3D XDirection',(0.,0.,-1.)) ;
+#769=DIRECTION('Vector Direction',(0.,1.,0.)) ;
+#774=DIRECTION('Vector Direction',(0.,1.,0.)) ;
+#786=DIRECTION('Axis2P3D Direction',(0.,1.,0.)) ;
+#787=DIRECTION('Axis2P3D XDirection',(-1.22464679915E-016,0.,1.)) ;
+#809=DIRECTION('NONE',(1.,0.,0.)) ;
+#810=DIRECTION('NONE',(0.,0.,1.)) ;
+#811=DIRECTION('NONE',(-2.220446E-016,2.220446E-016,-1.)) ;
+#812=DIRECTION('NONE',(-2.220446E-016,-1.,-2.220446E-016)) ;
+#833=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#834=DIRECTION('Axis2P3D XDirection',(0.,0.,1.)) ;
+#838=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#847=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#856=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#865=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#875=DIRECTION('Axis2P3D Direction',(1.,0.,0.)) ;
+#876=DIRECTION('Axis2P3D XDirection',(0.,-1.,1.22464679915E-016)) ;
+#880=DIRECTION('Vector Direction',(1.,0.,0.)) ;
+#887=DIRECTION('Axis2P3D Direction',(1.,0.,0.)) ;
+#894=DIRECTION('Vector Direction',(1.,0.,0.)) ;
+#906=DIRECTION('Axis2P3D Direction',(1.,0.,0.)) ;
+#907=DIRECTION('Axis2P3D XDirection',(0.,1.,0.)) ;
+#911=DIRECTION('Axis2P3D Direction',(1.,0.,0.)) ;
+#923=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#924=DIRECTION('Axis2P3D XDirection',(0.,0.,1.)) ;
+#933=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#934=DIRECTION('Axis2P3D XDirection',(0.,1.,0.)) ;
+#938=DIRECTION('Vector Direction',(-1.,0.,0.)) ;
+#945=DIRECTION('Vector Direction',(-1.,0.,0.)) ;
+#952=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#964=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#965=DIRECTION('Axis2P3D XDirection',(0.,-1.,-5.66553889765E-016)) ;
+#969=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#981=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#982=DIRECTION('Axis2P3D XDirection',(0.,0.,1.)) ;
+#986=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#995=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#1005=DIRECTION('Axis2P3D Direction',(-1.,-0.,0.)) ;
+#1006=DIRECTION('Axis2P3D XDirection',(0.,-0.916336428703,-0.400409227456)) ;
+#1010=DIRECTION('Axis2P3D Direction',(0.,-4.99326358039E-010,1.)) ;
+#1015=DIRECTION('Axis2P3D Direction',(-0.,1.74906738537E-008,-1.)) ;
+#1027=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#1028=DIRECTION('Axis2P3D XDirection',(0.,0.909870182947,0.414893058733)) ;
+#1050=DIRECTION('NONE',(1.,0.,0.)) ;
+#1051=DIRECTION('NONE',(0.,0.,1.)) ;
+#1052=DIRECTION('NONE',(0.,1.,1.224606E-016)) ;
+#1053=DIRECTION('NONE',(-1.,0.,0.)) ;
+#1066=DIRECTION('Axis2P3D Direction',(1.,0.,0.)) ;
+#1067=DIRECTION('Axis2P3D XDirection',(0.,0.,-1.)) ;
+#1071=DIRECTION('Vector Direction',(0.,1.,0.)) ;
+#1080=DIRECTION('Vector Direction',(0.,0.,-1.)) ;
+#1087=DIRECTION('Vector Direction',(0.,-1.,0.)) ;
+#1094=DIRECTION('Vector Direction',(0.,0.,1.)) ;
+#1105=DIRECTION('Axis2P3D Direction',(1.,0.,0.)) ;
+#1114=DIRECTION('Axis2P3D Direction',(1.,0.,0.)) ;
+#1124=DIRECTION('Axis2P3D Direction',(0.,0.,-1.)) ;
+#1125=DIRECTION('Axis2P3D XDirection',(-1.,0.,0.)) ;
+#1129=DIRECTION('Vector Direction',(-1.,0.,0.)) ;
+#1136=DIRECTION('Vector Direction',(-1.,0.,0.)) ;
+#1143=DIRECTION('Vector Direction',(0.,1.,0.)) ;
+#1155=DIRECTION('Axis2P3D Direction',(0.,-1.,0.)) ;
+#1156=DIRECTION('Axis2P3D XDirection',(0.,0.,-1.)) ;
+#1160=DIRECTION('Vector Direction',(-1.,0.,0.)) ;
+#1167=DIRECTION('Vector Direction',(0.,0.,-1.)) ;
+#1179=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
+#1180=DIRECTION('Axis2P3D XDirection',(1.,0.,0.)) ;
+#1184=DIRECTION('Vector Direction',(-1.,0.,0.)) ;
+#1191=DIRECTION('Vector Direction',(0.,1.,0.)) ;
+#1203=DIRECTION('Axis2P3D Direction',(0.,1.,0.)) ;
+#1204=DIRECTION('Axis2P3D XDirection',(0.,0.,1.)) ;
+#1208=DIRECTION('Vector Direction',(0.,0.,1.)) ;
+#1220=DIRECTION('Axis2P3D Direction',(-0.,1.,0.)) ;
+#1221=DIRECTION('Axis2P3D XDirection',(-1.83697019872E-016,-0.,1.)) ;
+#1257=DIRECTION('Vector Direction',(0.,1.,0.)) ;
+#1269=DIRECTION('Axis2P3D Direction',(0.,0.,1.)) ;
+#1270=DIRECTION('Axis2P3D XDirection',(1.,0.,0.)) ;
+#1290=DIRECTION('Vector Direction',(0.,0.,1.)) ;
+#1302=DIRECTION('Axis2P3D Direction',(-0.,1.,0.)) ;
+#1303=DIRECTION('Axis2P3D XDirection',(1.,0.,0.)) ;
+#1323=DIRECTION('Vector Direction',(0.,1.,0.)) ;
+#1335=DIRECTION('Axis2P3D Direction',(0.,0.,-1.)) ;
+#1336=DIRECTION('Axis2P3D XDirection',(1.,0.,0.)) ;
+#1340=DIRECTION('Vector Direction',(0.,0.,-1.)) ;
+#1352=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#1353=DIRECTION('Axis2P3D XDirection',(0.,0.,1.)) ;
+#1357=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#1366=DIRECTION('Vector Direction',(-1.,0.,0.)) ;
+#1371=DIRECTION('Vector Direction',(-1.,0.,0.)) ;
+#1383=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#1384=DIRECTION('Axis2P3D XDirection',(0.,1.22464679915E-016,-1.)) ;
+#1388=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#1400=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#1401=DIRECTION('Axis2P3D XDirection',(0.,0.,1.)) ;
+#1411=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#1420=DIRECTION('Axis2P3D Direction',(-1.,0.,0.)) ;
+#1430=DIRECTION('Axis2P3D Direction',(-1.,-0.,0.)) ;
+#1431=DIRECTION('Axis2P3D XDirection',(0.,-0.327595417415,0.944818100212)) ;
+#1435=DIRECTION('Axis2P3D Direction',(0.,-1.,0.)) ;
+#1440=DIRECTION('Axis2P3D Direction',(0.,1.,1.27675647832E-015)) ;
+#1452=DIRECTION('Axis2P3D Direction',(-1.,0.,-0.)) ;
+#1453=DIRECTION('Axis2P3D XDirection',(0.,0.371212471839,-0.928547952855)) ;
+#1475=DIRECTION('NONE',(1.,0.,0.)) ;
+#1476=DIRECTION('NONE',(0.,0.,1.)) ;
+#1477=DIRECTION('NONE',(0.,1.,1.224606E-016)) ;
+#1478=DIRECTION('NONE',(-1.,0.,0.)) ;
+#1488=DIRECTION('NONE',(1.,0.,0.)) ;
+#1489=DIRECTION('NONE',(0.,0.,1.)) ;
+#1490=DIRECTION('NONE',(1.,-2.220446E-016,-4.93038065763E-032)) ;
+#1491=DIRECTION('NONE',(2.220446E-016,1.,0.)) ;
+#1503=DIRECTION('NONE',(1.,0.,0.)) ;
+#1504=DIRECTION('NONE',(0.,0.,1.)) ;
+#1505=DIRECTION('NONE',(1.,-2.220446E-016,-4.93038065763E-032)) ;
+#1506=DIRECTION('NONE',(2.220446E-016,1.,0.)) ;
+#66=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#63,#64,#65) ;
+#130=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#127,#128,#129) ;
+#134=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#132,#133,$) ;
+#139=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#137,#138,$) ;
+#152=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#149,#150,#151) ;
+#304=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#301,#302,#303) ;
+#456=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#453,#454,#455) ;
+#494=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#491,#492,#493) ;
+#511=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#508,#509,#510) ;
+#544=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#541,#542,#543) ;
+#615=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#612,#613,#614) ;
+#637=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#634,#635,#636) ;
+#649=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#646,#647,#648) ;
+#671=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#668,#669,#670) ;
+#683=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#680,#681,#682) ;
+#754=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#751,#752,#753) ;
+#766=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#763,#764,#765) ;
+#788=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#785,#786,#787) ;
+#805=AXIS2_PLACEMENT_3D(' ',#808,#812,#811) ;
+#806=AXIS2_PLACEMENT_3D(' ',#807,#810,#809) ;
+#835=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#832,#833,#834) ;
+#839=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#837,#838,$) ;
+#848=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#846,#847,$) ;
+#857=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#855,#856,$) ;
+#866=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#864,#865,$) ;
+#877=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#874,#875,#876) ;
+#888=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#886,#887,$) ;
+#908=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#905,#906,#907) ;
+#912=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#910,#911,$) ;
+#925=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#922,#923,#924) ;
+#935=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#932,#933,#934) ;
+#953=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#951,#952,$) ;
+#966=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#963,#964,#965) ;
+#970=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#968,#969,$) ;
+#983=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#980,#981,#982) ;
+#987=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#985,#986,$) ;
+#996=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#994,#995,$) ;
+#1007=AXIS2_PLACEMENT_3D('Torus Axis2P3D',#1004,#1005,#1006) ;
+#1011=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#1009,#1010,$) ;
+#1016=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#1014,#1015,$) ;
+#1029=AXIS2_PLACEMENT_3D('Torus Axis2P3D',#1026,#1027,#1028) ;
+#1046=AXIS2_PLACEMENT_3D(' ',#1049,#1053,#1052) ;
+#1047=AXIS2_PLACEMENT_3D(' ',#1048,#1051,#1050) ;
+#1068=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#1065,#1066,#1067) ;
+#1106=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#1104,#1105,$) ;
+#1115=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#1113,#1114,$) ;
+#1126=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#1123,#1124,#1125) ;
+#1157=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#1154,#1155,#1156) ;
+#1181=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#1178,#1179,#1180) ;
+#1205=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#1202,#1203,#1204) ;
+#1222=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#1219,#1220,#1221) ;
+#1271=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#1268,#1269,#1270) ;
+#1304=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#1301,#1302,#1303) ;
+#1337=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#1334,#1335,#1336) ;
+#1354=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#1351,#1352,#1353) ;
+#1358=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#1356,#1357,$) ;
+#1385=AXIS2_PLACEMENT_3D('Cylinder Axis2P3D',#1382,#1383,#1384) ;
+#1389=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#1387,#1388,$) ;
+#1402=AXIS2_PLACEMENT_3D('Plane Axis2P3D',#1399,#1400,#1401) ;
+#1412=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#1410,#1411,$) ;
+#1421=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#1419,#1420,$) ;
+#1432=AXIS2_PLACEMENT_3D('Torus Axis2P3D',#1429,#1430,#1431) ;
+#1436=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#1434,#1435,$) ;
+#1441=AXIS2_PLACEMENT_3D('Circle Axis2P3D',#1439,#1440,$) ;
+#1454=AXIS2_PLACEMENT_3D('Torus Axis2P3D',#1451,#1452,#1453) ;
+#1471=AXIS2_PLACEMENT_3D(' ',#1474,#1478,#1477) ;
+#1472=AXIS2_PLACEMENT_3D(' ',#1473,#1476,#1475) ;
+#1484=AXIS2_PLACEMENT_3D(' ',#1487,#1491,#1490) ;
+#1485=AXIS2_PLACEMENT_3D(' ',#1486,#1489,#1488) ;
+#1499=AXIS2_PLACEMENT_3D(' ',#1502,#1506,#1505) ;
+#1500=AXIS2_PLACEMENT_3D(' ',#1501,#1504,#1503) ;
+#45=PRODUCT_DEFINITION_SHAPE(' ',' ',#17) ;
+#61=PRODUCT_DEFINITION_SHAPE(' ',' ',#58) ;
+#801=PRODUCT_DEFINITION_SHAPE(' ',' ',#800) ;
+#820=PRODUCT_DEFINITION_SHAPE(' ',' ',#819) ;
+#830=PRODUCT_DEFINITION_SHAPE(' ',' ',#827) ;
+#1042=PRODUCT_DEFINITION_SHAPE(' ',' ',#1041) ;
+#1063=PRODUCT_DEFINITION_SHAPE(' ',' ',#1060) ;
+#1467=PRODUCT_DEFINITION_SHAPE(' ',' ',#1466) ;
+#1480=PRODUCT_DEFINITION_SHAPE(' ',' ',#1479) ;
+#1495=PRODUCT_DEFINITION_SHAPE(' ',' ',#1494) ;
+#34=APPROVAL_PERSON_ORGANIZATION(#28,#24,#22) ;
+#28=PERSON_AND_ORGANIZATION(#25,#26) ;
+#25=PERSON(' ',' ',' ',$,$,$) ;
+#26=ORGANIZATION(' ',' ',' ') ;
+#24=APPROVAL(#23,' ') ;
+#23=APPROVAL_STATUS('not_yet_approved') ;
+#22=APPROVAL_ROLE('APPROVER') ;
+#13=DATE_AND_TIME(#11,#12) ;
+#12=LOCAL_TIME(12,25,11.,#10) ;
+#10=COORDINATED_UNIVERSAL_TIME_OFFSET(0,0,.AHEAD.) ;
+#121=ORIENTED_EDGE('',*,*,#76,.F.) ;
+#122=ORIENTED_EDGE('',*,*,#95,.F.) ;
+#123=ORIENTED_EDGE('',*,*,#102,.F.) ;
+#124=ORIENTED_EDGE('',*,*,#119,.F.) ;
+#143=ORIENTED_EDGE('',*,*,#76,.T.) ;
+#144=ORIENTED_EDGE('',*,*,#136,.F.) ;
+#145=ORIENTED_EDGE('',*,*,#102,.T.) ;
+#146=ORIENTED_EDGE('',*,*,#141,.F.) ;
+#183=ORIENTED_EDGE('',*,*,#162,.T.) ;
+#184=ORIENTED_EDGE('',*,*,#169,.F.) ;
+#185=ORIENTED_EDGE('',*,*,#176,.F.) ;
+#186=ORIENTED_EDGE('',*,*,#181,.T.) ;
+#239=ORIENTED_EDGE('',*,*,#214,.T.) ;
+#240=ORIENTED_EDGE('',*,*,#237,.T.) ;
+#293=ORIENTED_EDGE('',*,*,#268,.T.) ;
+#294=ORIENTED_EDGE('',*,*,#291,.T.) ;
+#297=ORIENTED_EDGE('',*,*,#95,.T.) ;
+#298=ORIENTED_EDGE('',*,*,#141,.T.) ;
+#335=ORIENTED_EDGE('',*,*,#314,.T.) ;
+#336=ORIENTED_EDGE('',*,*,#321,.F.) ;
+#337=ORIENTED_EDGE('',*,*,#328,.F.) ;
+#338=ORIENTED_EDGE('',*,*,#333,.T.) ;
+#391=ORIENTED_EDGE('',*,*,#366,.T.) ;
+#392=ORIENTED_EDGE('',*,*,#389,.T.) ;
+#445=ORIENTED_EDGE('',*,*,#420,.T.) ;
+#446=ORIENTED_EDGE('',*,*,#443,.T.) ;
+#449=ORIENTED_EDGE('',*,*,#119,.T.) ;
+#450=ORIENTED_EDGE('',*,*,#136,.T.) ;
+#483=ORIENTED_EDGE('',*,*,#314,.F.) ;
+#484=ORIENTED_EDGE('',*,*,#462,.F.) ;
+#485=ORIENTED_EDGE('',*,*,#162,.F.) ;
+#486=ORIENTED_EDGE('',*,*,#469,.F.) ;
+#487=ORIENTED_EDGE('',*,*,#476,.F.) ;
+#488=ORIENTED_EDGE('',*,*,#481,.F.) ;
+#502=ORIENTED_EDGE('',*,*,#462,.T.) ;
+#503=ORIENTED_EDGE('',*,*,#333,.F.) ;
+#504=ORIENTED_EDGE('',*,*,#500,.F.) ;
+#505=ORIENTED_EDGE('',*,*,#169,.T.) ;
+#533=ORIENTED_EDGE('',*,*,#500,.T.) ;
+#534=ORIENTED_EDGE('',*,*,#328,.T.) ;
+#535=ORIENTED_EDGE('',*,*,#519,.T.) ;
+#536=ORIENTED_EDGE('',*,*,#526,.T.) ;
+#537=ORIENTED_EDGE('',*,*,#531,.T.) ;
+#538=ORIENTED_EDGE('',*,*,#176,.T.) ;
+#552=ORIENTED_EDGE('',*,*,#469,.T.) ;
+#553=ORIENTED_EDGE('',*,*,#181,.F.) ;
+#554=ORIENTED_EDGE('',*,*,#531,.F.) ;
+#555=ORIENTED_EDGE('',*,*,#550,.T.) ;
+#608=ORIENTED_EDGE('',*,*,#583,.T.) ;
+#609=ORIENTED_EDGE('',*,*,#606,.T.) ;
+#628=ORIENTED_EDGE('',*,*,#621,.F.) ;
+#629=ORIENTED_EDGE('',*,*,#214,.F.) ;
+#630=ORIENTED_EDGE('',*,*,#626,.F.) ;
+#631=ORIENTED_EDGE('',*,*,#366,.F.) ;
+#640=ORIENTED_EDGE('',*,*,#621,.T.) ;
+#641=ORIENTED_EDGE('',*,*,#389,.F.) ;
+#642=ORIENTED_EDGE('',*,*,#626,.T.) ;
+#643=ORIENTED_EDGE('',*,*,#237,.F.) ;
+#662=ORIENTED_EDGE('',*,*,#655,.F.) ;
+#663=ORIENTED_EDGE('',*,*,#268,.F.) ;
+#664=ORIENTED_EDGE('',*,*,#660,.F.) ;
+#665=ORIENTED_EDGE('',*,*,#420,.F.) ;
+#674=ORIENTED_EDGE('',*,*,#655,.T.) ;
+#675=ORIENTED_EDGE('',*,*,#443,.F.) ;
+#676=ORIENTED_EDGE('',*,*,#660,.T.) ;
+#677=ORIENTED_EDGE('',*,*,#291,.F.) ;
+#691=ORIENTED_EDGE('',*,*,#481,.T.) ;
+#692=ORIENTED_EDGE('',*,*,#689,.F.) ;
+#693=ORIENTED_EDGE('',*,*,#519,.F.) ;
+#694=ORIENTED_EDGE('',*,*,#321,.T.) ;
+#747=ORIENTED_EDGE('',*,*,#722,.T.) ;
+#748=ORIENTED_EDGE('',*,*,#745,.T.) ;
+#757=ORIENTED_EDGE('',*,*,#476,.T.) ;
+#758=ORIENTED_EDGE('',*,*,#550,.F.) ;
+#759=ORIENTED_EDGE('',*,*,#526,.F.) ;
+#760=ORIENTED_EDGE('',*,*,#689,.T.) ;
+#779=ORIENTED_EDGE('',*,*,#772,.F.) ;
+#780=ORIENTED_EDGE('',*,*,#583,.F.) ;
+#781=ORIENTED_EDGE('',*,*,#777,.F.) ;
+#782=ORIENTED_EDGE('',*,*,#722,.F.) ;
+#791=ORIENTED_EDGE('',*,*,#772,.T.) ;
+#792=ORIENTED_EDGE('',*,*,#745,.F.) ;
+#793=ORIENTED_EDGE('',*,*,#777,.T.) ;
+#794=ORIENTED_EDGE('',*,*,#606,.F.) ;
+#852=ORIENTED_EDGE('',*,*,#845,.F.) ;
+#853=ORIENTED_EDGE('',*,*,#850,.F.) ;
+#870=ORIENTED_EDGE('',*,*,#863,.T.) ;
+#871=ORIENTED_EDGE('',*,*,#868,.T.) ;
+#899=ORIENTED_EDGE('',*,*,#885,.T.) ;
+#900=ORIENTED_EDGE('',*,*,#892,.T.) ;
+#901=ORIENTED_EDGE('',*,*,#897,.T.) ;
+#902=ORIENTED_EDGE('',*,*,#863,.F.) ;
+#916=ORIENTED_EDGE('',*,*,#885,.F.) ;
+#917=ORIENTED_EDGE('',*,*,#868,.F.) ;
+#918=ORIENTED_EDGE('',*,*,#897,.F.) ;
+#919=ORIENTED_EDGE('',*,*,#914,.T.) ;
+#928=ORIENTED_EDGE('',*,*,#892,.F.) ;
+#929=ORIENTED_EDGE('',*,*,#914,.F.) ;
+#957=ORIENTED_EDGE('',*,*,#943,.F.) ;
+#958=ORIENTED_EDGE('',*,*,#845,.T.) ;
+#959=ORIENTED_EDGE('',*,*,#950,.F.) ;
+#960=ORIENTED_EDGE('',*,*,#955,.T.) ;
+#974=ORIENTED_EDGE('',*,*,#950,.T.) ;
+#975=ORIENTED_EDGE('',*,*,#850,.T.) ;
+#976=ORIENTED_EDGE('',*,*,#943,.T.) ;
+#977=ORIENTED_EDGE('',*,*,#972,.T.) ;
+#1000=ORIENTED_EDGE('',*,*,#993,.F.) ;
+#1001=ORIENTED_EDGE('',*,*,#998,.F.) ;
+#1020=ORIENTED_EDGE('',*,*,#1013,.T.) ;
+#1021=ORIENTED_EDGE('',*,*,#993,.T.) ;
+#1022=ORIENTED_EDGE('',*,*,#1018,.F.) ;
+#1023=ORIENTED_EDGE('',*,*,#972,.F.) ;
+#1032=ORIENTED_EDGE('',*,*,#1018,.T.) ;
+#1033=ORIENTED_EDGE('',*,*,#998,.T.) ;
+#1034=ORIENTED_EDGE('',*,*,#1013,.F.) ;
+#1035=ORIENTED_EDGE('',*,*,#955,.F.) ;
+#1099=ORIENTED_EDGE('',*,*,#1078,.F.) ;
+#1100=ORIENTED_EDGE('',*,*,#1085,.F.) ;
+#1101=ORIENTED_EDGE('',*,*,#1092,.F.) ;
+#1102=ORIENTED_EDGE('',*,*,#1097,.F.) ;
+#1119=ORIENTED_EDGE('',*,*,#1112,.T.) ;
+#1120=ORIENTED_EDGE('',*,*,#1117,.T.) ;
+#1148=ORIENTED_EDGE('',*,*,#1134,.T.) ;
+#1149=ORIENTED_EDGE('',*,*,#1078,.T.) ;
+#1150=ORIENTED_EDGE('',*,*,#1141,.F.) ;
+#1151=ORIENTED_EDGE('',*,*,#1146,.T.) ;
+#1172=ORIENTED_EDGE('',*,*,#1165,.T.) ;
+#1173=ORIENTED_EDGE('',*,*,#1085,.T.) ;
+#1174=ORIENTED_EDGE('',*,*,#1134,.F.) ;
+#1175=ORIENTED_EDGE('',*,*,#1170,.T.) ;
+#1196=ORIENTED_EDGE('',*,*,#1189,.T.) ;
+#1197=ORIENTED_EDGE('',*,*,#1092,.T.) ;
+#1198=ORIENTED_EDGE('',*,*,#1165,.F.) ;
+#1199=ORIENTED_EDGE('',*,*,#1194,.T.) ;
+#1213=ORIENTED_EDGE('',*,*,#1141,.T.) ;
+#1214=ORIENTED_EDGE('',*,*,#1097,.T.) ;
+#1215=ORIENTED_EDGE('',*,*,#1189,.F.) ;
+#1216=ORIENTED_EDGE('',*,*,#1211,.T.) ;
+#1262=ORIENTED_EDGE('',*,*,#1239,.T.) ;
+#1263=ORIENTED_EDGE('',*,*,#1194,.F.) ;
+#1264=ORIENTED_EDGE('',*,*,#1255,.T.) ;
+#1265=ORIENTED_EDGE('',*,*,#1260,.T.) ;
+#1295=ORIENTED_EDGE('',*,*,#1288,.T.) ;
+#1296=ORIENTED_EDGE('',*,*,#1211,.F.) ;
+#1297=ORIENTED_EDGE('',*,*,#1239,.F.) ;
+#1298=ORIENTED_EDGE('',*,*,#1293,.T.) ;
+#1328=ORIENTED_EDGE('',*,*,#1321,.T.) ;
+#1329=ORIENTED_EDGE('',*,*,#1146,.F.) ;
+#1330=ORIENTED_EDGE('',*,*,#1288,.F.) ;
+#1331=ORIENTED_EDGE('',*,*,#1326,.T.) ;
+#1345=ORIENTED_EDGE('',*,*,#1255,.F.) ;
+#1346=ORIENTED_EDGE('',*,*,#1170,.F.) ;
+#1347=ORIENTED_EDGE('',*,*,#1321,.F.) ;
+#1348=ORIENTED_EDGE('',*,*,#1343,.T.) ;
+#1376=ORIENTED_EDGE('',*,*,#1364,.F.) ;
+#1377=ORIENTED_EDGE('',*,*,#1369,.F.) ;
+#1378=ORIENTED_EDGE('',*,*,#1112,.F.) ;
+#1379=ORIENTED_EDGE('',*,*,#1374,.F.) ;
+#1393=ORIENTED_EDGE('',*,*,#1391,.F.) ;
+#1394=ORIENTED_EDGE('',*,*,#1374,.T.) ;
+#1395=ORIENTED_EDGE('',*,*,#1117,.F.) ;
+#1396=ORIENTED_EDGE('',*,*,#1369,.T.) ;
+#1405=ORIENTED_EDGE('',*,*,#1260,.F.) ;
+#1406=ORIENTED_EDGE('',*,*,#1343,.F.) ;
+#1407=ORIENTED_EDGE('',*,*,#1326,.F.) ;
+#1408=ORIENTED_EDGE('',*,*,#1293,.F.) ;
+#1425=ORIENTED_EDGE('',*,*,#1418,.T.) ;
+#1426=ORIENTED_EDGE('',*,*,#1423,.T.) ;
+#1445=ORIENTED_EDGE('',*,*,#1438,.T.) ;
+#1446=ORIENTED_EDGE('',*,*,#1364,.T.) ;
+#1447=ORIENTED_EDGE('',*,*,#1443,.F.) ;
+#1448=ORIENTED_EDGE('',*,*,#1418,.F.) ;
+#1457=ORIENTED_EDGE('',*,*,#1443,.T.) ;
+#1458=ORIENTED_EDGE('',*,*,#1391,.T.) ;
+#1459=ORIENTED_EDGE('',*,*,#1438,.F.) ;
+#1460=ORIENTED_EDGE('',*,*,#1423,.F.) ;
+#241=FACE_BOUND('',#238,.T.) ;
+#295=FACE_BOUND('',#292,.T.) ;
+#299=FACE_BOUND('',#296,.T.) ;
+#393=FACE_BOUND('',#390,.T.) ;
+#447=FACE_BOUND('',#444,.T.) ;
+#451=FACE_BOUND('',#448,.T.) ;
+#610=FACE_BOUND('',#607,.T.) ;
+#749=FACE_BOUND('',#746,.T.) ;
+#872=FACE_BOUND('',#869,.T.) ;
+#1121=FACE_BOUND('',#1118,.T.) ;
+#1427=FACE_BOUND('',#1424,.T.) ;
+#62=CLOSED_SHELL('Closed Shell',(#126,#148,#300,#452,#490,#507,#540,#611,#633,#645,#667,#679,#750,#762,#784,#796)) ;
+#831=CLOSED_SHELL('Closed Shell',(#873,#904,#921,#931,#962,#979,#1003,#1025,#1037)) ;
+#1064=CLOSED_SHELL('Closed Shell',(#1122,#1153,#1177,#1201,#1218,#1267,#1300,#1333,#1350,#1381,#1398,#1428,#1450,#1462)) ;
+#804=ITEM_DEFINED_TRANSFORMATION(' ',' ',#806,#805) ;
+#1045=ITEM_DEFINED_TRANSFORMATION(' ',' ',#1047,#1046) ;
+#1470=ITEM_DEFINED_TRANSFORMATION(' ',' ',#1472,#1471) ;
+#1483=ITEM_DEFINED_TRANSFORMATION(' ',' ',#1485,#1484) ;
+#1498=ITEM_DEFINED_TRANSFORMATION(' ',' ',#1500,#1499) ;
+#70=VECTOR('Line Direction',#69,1.) ;
+#98=VECTOR('Line Direction',#97,1.) ;
+#156=VECTOR('Line Direction',#155,1.) ;
+#165=VECTOR('Line Direction',#164,1.) ;
+#172=VECTOR('Line Direction',#171,1.) ;
+#179=VECTOR('Line Direction',#178,1.) ;
+#308=VECTOR('Line Direction',#307,1.) ;
+#317=VECTOR('Line Direction',#316,1.) ;
+#324=VECTOR('Line Direction',#323,1.) ;
+#331=VECTOR('Line Direction',#330,1.) ;
+#460=VECTOR('Line Direction',#459,1.) ;
+#465=VECTOR('Line Direction',#464,1.) ;
+#472=VECTOR('Line Direction',#471,1.) ;
+#479=VECTOR('Line Direction',#478,1.) ;
+#498=VECTOR('Line Direction',#497,1.) ;
+#515=VECTOR('Line Direction',#514,1.) ;
+#522=VECTOR('Line Direction',#521,1.) ;
+#529=VECTOR('Line Direction',#528,1.) ;
+#548=VECTOR('Line Direction',#547,1.) ;
+#619=VECTOR('Line Direction',#618,1.) ;
+#624=VECTOR('Line Direction',#623,1.) ;
+#653=VECTOR('Line Direction',#652,1.) ;
+#658=VECTOR('Line Direction',#657,1.) ;
+#687=VECTOR('Line Direction',#686,1.) ;
+#770=VECTOR('Line Direction',#769,1.) ;
+#775=VECTOR('Line Direction',#774,1.) ;
+#881=VECTOR('Line Direction',#880,1.) ;
+#895=VECTOR('Line Direction',#894,1.) ;
+#939=VECTOR('Line Direction',#938,1.) ;
+#946=VECTOR('Line Direction',#945,1.) ;
+#1072=VECTOR('Line Direction',#1071,1.) ;
+#1081=VECTOR('Line Direction',#1080,1.) ;
+#1088=VECTOR('Line Direction',#1087,1.) ;
+#1095=VECTOR('Line Direction',#1094,1.) ;
+#1130=VECTOR('Line Direction',#1129,1.) ;
+#1137=VECTOR('Line Direction',#1136,1.) ;
+#1144=VECTOR('Line Direction',#1143,1.) ;
+#1161=VECTOR('Line Direction',#1160,1.) ;
+#1168=VECTOR('Line Direction',#1167,1.) ;
+#1185=VECTOR('Line Direction',#1184,1.) ;
+#1192=VECTOR('Line Direction',#1191,1.) ;
+#1209=VECTOR('Line Direction',#1208,1.) ;
+#1258=VECTOR('Line Direction',#1257,1.) ;
+#1291=VECTOR('Line Direction',#1290,1.) ;
+#1324=VECTOR('Line Direction',#1323,1.) ;
+#1341=VECTOR('Line Direction',#1340,1.) ;
+#1367=VECTOR('Line Direction',#1366,1.) ;
+#1372=VECTOR('Line Direction',#1371,1.) ;
+#798=ADVANCED_BREP_SHAPE_REPRESENTATION('NONE',(#797),#53) ;
+#1039=ADVANCED_BREP_SHAPE_REPRESENTATION('NONE',(#1038),#822) ;
+#1464=ADVANCED_BREP_SHAPE_REPRESENTATION('NONE',(#1463),#1055) ;
+#44=SHAPE_REPRESENTATION(' ',(#805,#1484,#1499),#51) ;
+#54=SHAPE_REPRESENTATION(' ',(#806),#53) ;
+#815=SHAPE_REPRESENTATION(' ',(#1046,#1471,#1485,#1500),#814) ;
+#823=SHAPE_REPRESENTATION(' ',(#1047),#822) ;
+#1056=SHAPE_REPRESENTATION(' ',(#1472),#1055) ;
+#126=ADVANCED_FACE('52D',(#125),#67,.F.) ;
+#148=ADVANCED_FACE('52D',(#147),#131,.F.) ;
+#300=ADVANCED_FACE('52D',(#187,#241,#295,#299),#153,.T.) ;
+#452=ADVANCED_FACE('52D',(#339,#393,#447,#451),#305,.T.) ;
+#490=ADVANCED_FACE('52D',(#489),#457,.F.) ;
+#507=ADVANCED_FACE('52D',(#506),#495,.T.) ;
+#540=ADVANCED_FACE('52D',(#539),#512,.F.) ;
+#611=ADVANCED_FACE('52D',(#556,#610),#545,.T.) ;
+#633=ADVANCED_FACE('52D',(#632),#616,.F.) ;
+#645=ADVANCED_FACE('52D',(#644),#638,.F.) ;
+#667=ADVANCED_FACE('52D',(#666),#650,.F.) ;
+#679=ADVANCED_FACE('52D',(#678),#672,.F.) ;
+#750=ADVANCED_FACE('52D',(#695,#749),#684,.T.) ;
+#762=ADVANCED_FACE('52D',(#761),#755,.T.) ;
+#784=ADVANCED_FACE('52D',(#783),#767,.F.) ;
+#796=ADVANCED_FACE('52D',(#795),#789,.F.) ;
+#873=ADVANCED_FACE('870',(#854,#872),#836,.F.) ;
+#904=ADVANCED_FACE('870',(#903),#878,.T.) ;
+#921=ADVANCED_FACE('870',(#920),#909,.T.) ;
+#931=ADVANCED_FACE('870',(#930),#926,.F.) ;
+#962=ADVANCED_FACE('870',(#961),#936,.T.) ;
+#979=ADVANCED_FACE('870',(#978),#967,.T.) ;
+#1003=ADVANCED_FACE('870',(#1002),#984,.T.) ;
+#1025=ADVANCED_FACE('870',(#1024),#1008,.T.) ;
+#1037=ADVANCED_FACE('870',(#1036),#1030,.T.) ;
+#1122=ADVANCED_FACE('79A',(#1103,#1121),#1069,.F.) ;
+#1153=ADVANCED_FACE('79A',(#1152),#1127,.T.) ;
+#1177=ADVANCED_FACE('79A',(#1176),#1158,.T.) ;
+#1201=ADVANCED_FACE('79A',(#1200),#1182,.T.) ;
+#1218=ADVANCED_FACE('79A',(#1217),#1206,.T.) ;
+#1267=ADVANCED_FACE('79A',(#1266),#1223,.T.) ;
+#1300=ADVANCED_FACE('79A',(#1299),#1272,.T.) ;
+#1333=ADVANCED_FACE('79A',(#1332),#1305,.T.) ;
+#1350=ADVANCED_FACE('79A',(#1349),#1338,.T.) ;
+#1381=ADVANCED_FACE('79A',(#1380),#1355,.F.) ;
+#1398=ADVANCED_FACE('79A',(#1397),#1386,.F.) ;
+#1428=ADVANCED_FACE('79A',(#1409,#1427),#1403,.F.) ;
+#1450=ADVANCED_FACE('79A',(#1449),#1433,.T.) ;
+#1462=ADVANCED_FACE('79A',(#1461),#1455,.T.) ;
+#4=APPLICATION_PROTOCOL_DEFINITION('international standard','config_control_design',1994,#1) ;
+#35=APPROVAL_DATE_TIME(#13,#24) ;
+#77=B_SPLINE_CURVE_WITH_KNOTS('',5,(#78,#79,#80,#81,#82,#83,#84,#85,#86,#87,#88,#89,#90,#91,#92),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,6),(-7.85398163397,-3.92699081699,4.4408920985E-016,3.92699081699,7.85398163397),.UNSPECIFIED.) ;
+#103=B_SPLINE_CURVE_WITH_KNOTS('',5,(#104,#105,#106,#107,#108,#109,#110,#111,#112,#113,#114,#115,#116,#117,#118),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,6),(-7.85398163397,-3.92699081699,4.4408920985E-016,3.92699081699,7.85398163397),.UNSPECIFIED.) ;
+#188=B_SPLINE_CURVE_WITH_KNOTS('',5,(#189,#190,#191,#192,#193,#194,#195,#196,#197,#198,#199,#200,#201,#202,#203,#204,#205,#206,#207,#208,#209),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,6),(0.,3.87292074105,7.74584148254,11.6187622392,15.491683003,19.3646037458,22.2140874796),.UNSPECIFIED.) ;
+#215=B_SPLINE_CURVE_WITH_KNOTS('',5,(#216,#217,#218,#219,#220,#221,#222,#223,#224,#225,#226,#227,#228,#229,#230,#231,#232,#233,#234,#235,#236),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,6),(0.,3.87292073664,7.74584148307,11.618762234,15.4916829903,19.3646037494,22.2140874992),.UNSPECIFIED.) ;
+#242=B_SPLINE_CURVE_WITH_KNOTS('',5,(#243,#244,#245,#246,#247,#248,#249,#250,#251,#252,#253,#254,#255,#256,#257,#258,#259,#260,#261,#262,#263),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,6),(0.,3.87292073819,7.74584148132,11.6187622256,15.4916829835,19.3646037405,22.2140874761),.UNSPECIFIED.) ;
+#269=B_SPLINE_CURVE_WITH_KNOTS('',5,(#270,#271,#272,#273,#274,#275,#276,#277,#278,#279,#280,#281,#282,#283,#284,#285,#286,#287,#288,#289,#290),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,6),(0.,3.87292075057,7.74584151084,11.6187622719,15.4916830411,19.3646038008,22.2140875287),.UNSPECIFIED.) ;
+#340=B_SPLINE_CURVE_WITH_KNOTS('',5,(#341,#342,#343,#344,#345,#346,#347,#348,#349,#350,#351,#352,#353,#354,#355,#356,#357,#358,#359,#360,#361),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,6),(0.,3.87292073822,7.74584148135,11.6187622256,15.4916829836,19.3646037407,22.2140874763),.UNSPECIFIED.) ;
+#367=B_SPLINE_CURVE_WITH_KNOTS('',5,(#368,#369,#370,#371,#372,#373,#374,#375,#376,#377,#378,#379,#380,#381,#382,#383,#384,#385,#386,#387,#388),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,6),(0.,3.87292075092,7.74584151105,11.6187622721,15.4916830414,19.3646038011,22.2140875291),.UNSPECIFIED.) ;
+#394=B_SPLINE_CURVE_WITH_KNOTS('',5,(#395,#396,#397,#398,#399,#400,#401,#402,#403,#404,#405,#406,#407,#408,#409,#410,#411,#412,#413,#414,#415),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,6),(0.,3.87292074096,7.74584148236,11.618762239,15.4916830028,19.3646037456,22.2140874794),.UNSPECIFIED.) ;
+#421=B_SPLINE_CURVE_WITH_KNOTS('',5,(#422,#423,#424,#425,#426,#427,#428,#429,#430,#431,#432,#433,#434,#435,#436,#437,#438,#439,#440,#441,#442),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,6),(0.,3.87292073663,7.74584148308,11.618762234,15.4916829903,19.3646037495,22.2140874992),.UNSPECIFIED.) ;
+#557=B_SPLINE_CURVE_WITH_KNOTS('',5,(#558,#559,#560,#561,#562,#563,#564,#565,#566,#567,#568,#569,#570,#571,#572,#573,#574,#575,#576,#577,#578),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,6),(0.,3.87292075072,7.74584150645,11.6187622749,15.4916830251,19.3646037577,22.2140874912),.UNSPECIFIED.) ;
+#584=B_SPLINE_CURVE_WITH_KNOTS('',5,(#585,#586,#587,#588,#589,#590,#591,#592,#593,#594,#595,#596,#597,#598,#599,#600,#601,#602,#603,#604,#605),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,6),(0.,3.87292075073,7.74584150644,11.6187622749,15.4916830252,19.3646037579,22.2140874915),.UNSPECIFIED.) ;
+#696=B_SPLINE_CURVE_WITH_KNOTS('',5,(#697,#698,#699,#700,#701,#702,#703,#704,#705,#706,#707,#708,#709,#710,#711,#712,#713,#714,#715,#716,#717),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,6),(0.,3.87292075098,7.74584150689,11.6187622753,15.4916830257,19.3646037583,22.2140874919),.UNSPECIFIED.) ;
+#723=B_SPLINE_CURVE_WITH_KNOTS('',5,(#724,#725,#726,#727,#728,#729,#730,#731,#732,#733,#734,#735,#736,#737,#738,#739,#740,#741,#742,#743,#744),.UNSPECIFIED.,.F.,.U.,(6,3,3,3,3,3,6),(0.,3.87292075071,7.74584150651,11.6187622749,15.4916830252,19.3646037577,22.2140874913),.UNSPECIFIED.) ;
+#1224=B_SPLINE_CURVE_WITH_KNOTS('',5,(#1225,#1226,#1227,#1228,#1229,#1230,#1231,#1232,#1233,#1234,#1235,#1236),.UNSPECIFIED.,.F.,.U.,(6,3,3,6),(0.,1.01728776527,2.03457553053,2.69111206366),.UNSPECIFIED.) ;
+#1240=B_SPLINE_CURVE_WITH_KNOTS('',5,(#1241,#1242,#1243,#1244,#1245,#1246,#1247,#1248,#1249,#1250,#1251,#1252),.UNSPECIFIED.,.F.,.U.,(6,3,3,6),(0.,1.01728776527,2.03457553053,2.69111206365),.UNSPECIFIED.) ;
+#1273=B_SPLINE_CURVE_WITH_KNOTS('',5,(#1274,#1275,#1276,#1277,#1278,#1279,#1280,#1281,#1282,#1283,#1284,#1285),.UNSPECIFIED.,.F.,.U.,(6,3,3,6),(0.,1.01728776527,2.03457553053,2.69111206365),.UNSPECIFIED.) ;
+#1306=B_SPLINE_CURVE_WITH_KNOTS('',5,(#1307,#1308,#1309,#1310,#1311,#1312,#1313,#1314,#1315,#1316,#1317,#1318),.UNSPECIFIED.,.F.,.U.,(6,3,3,6),(0.,1.01728776527,2.03457553054,2.69111206366),.UNSPECIFIED.) ;
+#797=MANIFOLD_SOLID_BREP('52D',#62) ;
+#1038=MANIFOLD_SOLID_BREP('870',#831) ;
+#1463=MANIFOLD_SOLID_BREP('79A',#1064) ;
+#11=CALENDAR_DATE(2014,9,11) ;
+#33=CC_DESIGN_APPROVAL(#24,(#19,#6,#17)) ;
+#21=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#13,#20,(#19)) ;
+#32=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#13,#31,(#17)) ;
+#20=DATE_TIME_ROLE('classification_date') ;
+#31=DATE_TIME_ROLE('creation_date') ;
+#30=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#28,#29,(#19)) ;
+#36=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#28,#37,(#6)) ;
+#38=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#28,#39,(#6,#17)) ;
+#40=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#28,#41,(#5)) ;
+#29=PERSON_AND_ORGANIZATION_ROLE('classification_officer') ;
+#37=PERSON_AND_ORGANIZATION_ROLE('design_supplier') ;
+#39=PERSON_AND_ORGANIZATION_ROLE('creator') ;
+#41=PERSON_AND_ORGANIZATION_ROLE('design_owner') ;
+#42=CC_DESIGN_SECURITY_CLASSIFICATION(#19,(#6,#800,#1041,#1466,#1479,#1494)) ;
+#60=DOCUMENT('1','L-BRACKET.CATPart','CATPart document',#59) ;
+#829=DOCUMENT('2','BOLT.CATPart','CATPart document',#828) ;
+#1062=DOCUMENT('3','NUT.CATPart','CATPart document',#1061) ;
+#59=DOCUMENT_TYPE('') ;
+#828=DOCUMENT_TYPE('') ;
+#1061=DOCUMENT_TYPE('') ;
+#135=CIRCLE('generated circle',#134,5.) ;
+#140=CIRCLE('generated circle',#139,5.) ;
+#840=CIRCLE('generated circle',#839,7.5) ;
+#849=CIRCLE('generated circle',#848,7.5) ;
+#858=CIRCLE('generated circle',#857,5.) ;
+#867=CIRCLE('generated circle',#866,5.) ;
+#889=CIRCLE('generated circle',#888,5.) ;
+#913=CIRCLE('generated circle',#912,5.) ;
+#954=CIRCLE('generated circle',#953,7.5) ;
+#971=CIRCLE('generated circle',#970,7.5) ;
+#988=CIRCLE('generated circle',#987,5.5) ;
+#997=CIRCLE('generated circle',#996,5.5) ;
+#1012=CIRCLE('generated circle',#1011,2.) ;
+#1017=CIRCLE('generated circle',#1016,2.) ;
+#1107=CIRCLE('generated circle',#1106,5.) ;
+#1116=CIRCLE('generated circle',#1115,5.) ;
+#1359=CIRCLE('generated circle',#1358,5.) ;
+#1390=CIRCLE('generated circle',#1389,5.) ;
+#1413=CIRCLE('generated circle',#1412,6.) ;
+#1422=CIRCLE('generated circle',#1421,6.) ;
+#1437=CIRCLE('generated circle',#1436,1.) ;
+#1442=CIRCLE('generated circle',#1441,1.) ;
+#802=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#803,#801) ;
+#1043=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1044,#1042) ;
+#1468=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1469,#1467) ;
+#1481=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1482,#1480) ;
+#1496=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1497,#1495) ;
+#799=SHAPE_REPRESENTATION_RELATIONSHIP(' ',' ',#54,#798) ;
+#1040=SHAPE_REPRESENTATION_RELATIONSHIP(' ',' ',#823,#1039) ;
+#1465=SHAPE_REPRESENTATION_RELATIONSHIP(' ',' ',#1056,#1464) ;
+#67=CYLINDRICAL_SURFACE('generated cylinder',#66,5.) ;
+#131=CYLINDRICAL_SURFACE('generated cylinder',#130,5.) ;
+#616=CYLINDRICAL_SURFACE('generated cylinder',#615,5.) ;
+#638=CYLINDRICAL_SURFACE('generated cylinder',#637,5.) ;
+#650=CYLINDRICAL_SURFACE('generated cylinder',#649,5.) ;
+#672=CYLINDRICAL_SURFACE('generated cylinder',#671,5.) ;
+#767=CYLINDRICAL_SURFACE('generated cylinder',#766,5.) ;
+#789=CYLINDRICAL_SURFACE('generated cylinder',#788,5.) ;
+#878=CYLINDRICAL_SURFACE('generated cylinder',#877,5.) ;
+#909=CYLINDRICAL_SURFACE('generated cylinder',#908,5.) ;
+#936=CYLINDRICAL_SURFACE('generated cylinder',#935,7.5) ;
+#967=CYLINDRICAL_SURFACE('generated cylinder',#966,7.5) ;
+#1223=CYLINDRICAL_SURFACE('generated cylinder',#1222,1.) ;
+#1272=CYLINDRICAL_SURFACE('generated cylinder',#1271,1.) ;
+#1305=CYLINDRICAL_SURFACE('generated cylinder',#1304,1.) ;
+#1338=CYLINDRICAL_SURFACE('generated cylinder',#1337,1.) ;
+#1355=CYLINDRICAL_SURFACE('generated cylinder',#1354,5.) ;
+#1386=CYLINDRICAL_SURFACE('generated cylinder',#1385,5.) ;
+#1008=TOROIDAL_SURFACE('homeo Torus',#1007,5.5,2.) ;
+#1030=TOROIDAL_SURFACE('homeo Torus',#1029,5.5,2.) ;
+#1433=TOROIDAL_SURFACE('homeo Torus',#1432,6.,1.) ;
+#1455=TOROIDAL_SURFACE('homeo Torus',#1454,6.,1.) ;
+#3=DESIGN_CONTEXT(' ',#1,'design') ;
+#76=EDGE_CURVE('',#73,#75,#71,.F.) ;
+#95=EDGE_CURVE('',#94,#73,#77,.T.) ;
+#102=EDGE_CURVE('',#101,#94,#99,.T.) ;
+#119=EDGE_CURVE('',#75,#101,#103,.T.) ;
+#136=EDGE_CURVE('',#101,#75,#135,.T.) ;
+#141=EDGE_CURVE('',#73,#94,#140,.F.) ;
+#162=EDGE_CURVE('',#159,#161,#157,.T.) ;
+#169=EDGE_CURVE('',#168,#161,#166,.T.) ;
+#176=EDGE_CURVE('',#175,#168,#173,.T.) ;
+#181=EDGE_CURVE('',#175,#159,#180,.T.) ;
+#214=EDGE_CURVE('',#211,#213,#188,.T.) ;
+#237=EDGE_CURVE('',#213,#211,#215,.T.) ;
+#268=EDGE_CURVE('',#265,#267,#242,.T.) ;
+#291=EDGE_CURVE('',#267,#265,#269,.T.) ;
+#314=EDGE_CURVE('',#311,#313,#309,.T.) ;
+#321=EDGE_CURVE('',#320,#313,#318,.T.) ;
+#328=EDGE_CURVE('',#327,#320,#325,.T.) ;
+#333=EDGE_CURVE('',#327,#311,#332,.T.) ;
+#366=EDGE_CURVE('',#363,#365,#340,.T.) ;
+#389=EDGE_CURVE('',#365,#363,#367,.T.) ;
+#420=EDGE_CURVE('',#417,#419,#394,.T.) ;
+#443=EDGE_CURVE('',#419,#417,#421,.T.) ;
+#462=EDGE_CURVE('',#161,#311,#461,.T.) ;
+#469=EDGE_CURVE('',#468,#159,#466,.T.) ;
+#476=EDGE_CURVE('',#475,#468,#473,.T.) ;
+#481=EDGE_CURVE('',#313,#475,#480,.T.) ;
+#500=EDGE_CURVE('',#168,#327,#499,.T.) ;
+#519=EDGE_CURVE('',#320,#518,#516,.T.) ;
+#526=EDGE_CURVE('',#518,#525,#523,.T.) ;
+#531=EDGE_CURVE('',#525,#175,#530,.T.) ;
+#550=EDGE_CURVE('',#525,#468,#549,.T.) ;
+#583=EDGE_CURVE('',#580,#582,#557,.T.) ;
+#606=EDGE_CURVE('',#582,#580,#584,.T.) ;
+#621=EDGE_CURVE('',#213,#363,#620,.F.) ;
+#626=EDGE_CURVE('',#365,#211,#625,.T.) ;
+#655=EDGE_CURVE('',#267,#417,#654,.F.) ;
+#660=EDGE_CURVE('',#419,#265,#659,.T.) ;
+#689=EDGE_CURVE('',#518,#475,#688,.T.) ;
+#722=EDGE_CURVE('',#719,#721,#696,.T.) ;
+#745=EDGE_CURVE('',#721,#719,#723,.T.) ;
+#772=EDGE_CURVE('',#582,#719,#771,.F.) ;
+#777=EDGE_CURVE('',#721,#580,#776,.T.) ;
+#845=EDGE_CURVE('',#842,#844,#840,.T.) ;
+#850=EDGE_CURVE('',#844,#842,#849,.T.) ;
+#863=EDGE_CURVE('',#860,#862,#858,.T.) ;
+#868=EDGE_CURVE('',#862,#860,#867,.T.) ;
+#885=EDGE_CURVE('',#860,#884,#882,.T.) ;
+#892=EDGE_CURVE('',#884,#891,#889,.F.) ;
+#897=EDGE_CURVE('',#891,#862,#896,.F.) ;
+#914=EDGE_CURVE('',#891,#884,#913,.F.) ;
+#943=EDGE_CURVE('',#842,#942,#940,.T.) ;
+#950=EDGE_CURVE('',#949,#844,#947,.F.) ;
+#955=EDGE_CURVE('',#949,#942,#954,.F.) ;
+#972=EDGE_CURVE('',#942,#949,#971,.F.) ;
+#993=EDGE_CURVE('',#990,#992,#988,.F.) ;
+#998=EDGE_CURVE('',#992,#990,#997,.F.) ;
+#1013=EDGE_CURVE('',#942,#990,#1012,.T.) ;
+#1018=EDGE_CURVE('',#949,#992,#1017,.T.) ;
+#1078=EDGE_CURVE('',#1075,#1077,#1073,.T.) ;
+#1085=EDGE_CURVE('',#1084,#1075,#1082,.T.) ;
+#1092=EDGE_CURVE('',#1091,#1084,#1089,.T.) ;
+#1097=EDGE_CURVE('',#1077,#1091,#1096,.T.) ;
+#1112=EDGE_CURVE('',#1109,#1111,#1107,.T.) ;
+#1117=EDGE_CURVE('',#1111,#1109,#1116,.T.) ;
+#1134=EDGE_CURVE('',#1133,#1075,#1131,.T.) ;
+#1141=EDGE_CURVE('',#1140,#1077,#1138,.T.) ;
+#1146=EDGE_CURVE('',#1140,#1133,#1145,.F.) ;
+#1165=EDGE_CURVE('',#1164,#1084,#1162,.T.) ;
+#1170=EDGE_CURVE('',#1133,#1164,#1169,.F.) ;
+#1189=EDGE_CURVE('',#1188,#1091,#1186,.T.) ;
+#1194=EDGE_CURVE('',#1164,#1188,#1193,.T.) ;
+#1211=EDGE_CURVE('',#1188,#1140,#1210,.F.) ;
+#1239=EDGE_CURVE('',#1238,#1188,#1224,.T.) ;
+#1255=EDGE_CURVE('',#1164,#1254,#1240,.F.) ;
+#1260=EDGE_CURVE('',#1254,#1238,#1259,.T.) ;
+#1288=EDGE_CURVE('',#1287,#1140,#1273,.T.) ;
+#1293=EDGE_CURVE('',#1238,#1287,#1292,.F.) ;
+#1321=EDGE_CURVE('',#1320,#1133,#1306,.T.) ;
+#1326=EDGE_CURVE('',#1287,#1320,#1325,.F.) ;
+#1343=EDGE_CURVE('',#1320,#1254,#1342,.F.) ;
+#1364=EDGE_CURVE('',#1361,#1363,#1359,.T.) ;
+#1369=EDGE_CURVE('',#1111,#1361,#1368,.F.) ;
+#1374=EDGE_CURVE('',#1363,#1109,#1373,.T.) ;
+#1391=EDGE_CURVE('',#1363,#1361,#1390,.T.) ;
+#1418=EDGE_CURVE('',#1415,#1417,#1413,.T.) ;
+#1423=EDGE_CURVE('',#1417,#1415,#1422,.T.) ;
+#1438=EDGE_CURVE('',#1415,#1361,#1437,.F.) ;
+#1443=EDGE_CURVE('',#1417,#1363,#1442,.F.) ;
+#120=EDGE_LOOP('',(#121,#122,#123,#124)) ;
+#142=EDGE_LOOP('',(#143,#144,#145,#146)) ;
+#182=EDGE_LOOP('',(#183,#184,#185,#186)) ;
+#238=EDGE_LOOP('',(#239,#240)) ;
+#292=EDGE_LOOP('',(#293,#294)) ;
+#296=EDGE_LOOP('',(#297,#298)) ;
+#334=EDGE_LOOP('',(#335,#336,#337,#338)) ;
+#390=EDGE_LOOP('',(#391,#392)) ;
+#444=EDGE_LOOP('',(#445,#446)) ;
+#448=EDGE_LOOP('',(#449,#450)) ;
+#482=EDGE_LOOP('',(#483,#484,#485,#486,#487,#488)) ;
+#501=EDGE_LOOP('',(#502,#503,#504,#505)) ;
+#532=EDGE_LOOP('',(#533,#534,#535,#536,#537,#538)) ;
+#551=EDGE_LOOP('',(#552,#553,#554,#555)) ;
+#607=EDGE_LOOP('',(#608,#609)) ;
+#627=EDGE_LOOP('',(#628,#629,#630,#631)) ;
+#639=EDGE_LOOP('',(#640,#641,#642,#643)) ;
+#661=EDGE_LOOP('',(#662,#663,#664,#665)) ;
+#673=EDGE_LOOP('',(#674,#675,#676,#677)) ;
+#690=EDGE_LOOP('',(#691,#692,#693,#694)) ;
+#746=EDGE_LOOP('',(#747,#748)) ;
+#756=EDGE_LOOP('',(#757,#758,#759,#760)) ;
+#778=EDGE_LOOP('',(#779,#780,#781,#782)) ;
+#790=EDGE_LOOP('',(#791,#792,#793,#794)) ;
+#851=EDGE_LOOP('',(#852,#853)) ;
+#869=EDGE_LOOP('',(#870,#871)) ;
+#898=EDGE_LOOP('',(#899,#900,#901,#902)) ;
+#915=EDGE_LOOP('',(#916,#917,#918,#919)) ;
+#927=EDGE_LOOP('',(#928,#929)) ;
+#956=EDGE_LOOP('',(#957,#958,#959,#960)) ;
+#973=EDGE_LOOP('',(#974,#975,#976,#977)) ;
+#999=EDGE_LOOP('',(#1000,#1001)) ;
+#1019=EDGE_LOOP('',(#1020,#1021,#1022,#1023)) ;
+#1031=EDGE_LOOP('',(#1032,#1033,#1034,#1035)) ;
+#1098=EDGE_LOOP('',(#1099,#1100,#1101,#1102)) ;
+#1118=EDGE_LOOP('',(#1119,#1120)) ;
+#1147=EDGE_LOOP('',(#1148,#1149,#1150,#1151)) ;
+#1171=EDGE_LOOP('',(#1172,#1173,#1174,#1175)) ;
+#1195=EDGE_LOOP('',(#1196,#1197,#1198,#1199)) ;
+#1212=EDGE_LOOP('',(#1213,#1214,#1215,#1216)) ;
+#1261=EDGE_LOOP('',(#1262,#1263,#1264,#1265)) ;
+#1294=EDGE_LOOP('',(#1295,#1296,#1297,#1298)) ;
+#1327=EDGE_LOOP('',(#1328,#1329,#1330,#1331)) ;
+#1344=EDGE_LOOP('',(#1345,#1346,#1347,#1348)) ;
+#1375=EDGE_LOOP('',(#1376,#1377,#1378,#1379)) ;
+#1392=EDGE_LOOP('',(#1393,#1394,#1395,#1396)) ;
+#1404=EDGE_LOOP('',(#1405,#1406,#1407,#1408)) ;
+#1424=EDGE_LOOP('',(#1425,#1426)) ;
+#1444=EDGE_LOOP('',(#1445,#1446,#1447,#1448)) ;
+#1456=EDGE_LOOP('',(#1457,#1458,#1459,#1460)) ;
+#125=FACE_OUTER_BOUND('',#120,.T.) ;
+#147=FACE_OUTER_BOUND('',#142,.T.) ;
+#187=FACE_OUTER_BOUND('',#182,.T.) ;
+#339=FACE_OUTER_BOUND('',#334,.T.) ;
+#489=FACE_OUTER_BOUND('',#482,.T.) ;
+#506=FACE_OUTER_BOUND('',#501,.T.) ;
+#539=FACE_OUTER_BOUND('',#532,.T.) ;
+#556=FACE_OUTER_BOUND('',#551,.T.) ;
+#632=FACE_OUTER_BOUND('',#627,.T.) ;
+#644=FACE_OUTER_BOUND('',#639,.T.) ;
+#666=FACE_OUTER_BOUND('',#661,.T.) ;
+#678=FACE_OUTER_BOUND('',#673,.T.) ;
+#695=FACE_OUTER_BOUND('',#690,.T.) ;
+#761=FACE_OUTER_BOUND('',#756,.T.) ;
+#783=FACE_OUTER_BOUND('',#778,.T.) ;
+#795=FACE_OUTER_BOUND('',#790,.T.) ;
+#854=FACE_OUTER_BOUND('',#851,.T.) ;
+#903=FACE_OUTER_BOUND('',#898,.T.) ;
+#920=FACE_OUTER_BOUND('',#915,.T.) ;
+#930=FACE_OUTER_BOUND('',#927,.T.) ;
+#961=FACE_OUTER_BOUND('',#956,.T.) ;
+#978=FACE_OUTER_BOUND('',#973,.T.) ;
+#1002=FACE_OUTER_BOUND('',#999,.T.) ;
+#1024=FACE_OUTER_BOUND('',#1019,.T.) ;
+#1036=FACE_OUTER_BOUND('',#1031,.T.) ;
+#1103=FACE_OUTER_BOUND('',#1098,.T.) ;
+#1152=FACE_OUTER_BOUND('',#1147,.T.) ;
+#1176=FACE_OUTER_BOUND('',#1171,.T.) ;
+#1200=FACE_OUTER_BOUND('',#1195,.T.) ;
+#1217=FACE_OUTER_BOUND('',#1212,.T.) ;
+#1266=FACE_OUTER_BOUND('',#1261,.T.) ;
+#1299=FACE_OUTER_BOUND('',#1294,.T.) ;
+#1332=FACE_OUTER_BOUND('',#1327,.T.) ;
+#1349=FACE_OUTER_BOUND('',#1344,.T.) ;
+#1380=FACE_OUTER_BOUND('',#1375,.T.) ;
+#1397=FACE_OUTER_BOUND('',#1392,.T.) ;
+#1409=FACE_OUTER_BOUND('',#1404,.T.) ;
+#1449=FACE_OUTER_BOUND('',#1444,.T.) ;
+#1461=FACE_OUTER_BOUND('',#1456,.T.) ;
+#50=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.005),#46,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
+#52=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.005),#46,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
+#813=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.005),#46,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
+#821=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.005),#46,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
+#1054=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.005),#46,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
+#1492=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.005),#46,'distance_accuracy_value','CONFUSED CURVE UNCERTAINTY') ;
+#71=LINE('Line',#68,#70) ;
+#99=LINE('Line',#96,#98) ;
+#157=LINE('Line',#154,#156) ;
+#166=LINE('Line',#163,#165) ;
+#173=LINE('Line',#170,#172) ;
+#180=LINE('Line',#177,#179) ;
+#309=LINE('Line',#306,#308) ;
+#318=LINE('Line',#315,#317) ;
+#325=LINE('Line',#322,#324) ;
+#332=LINE('Line',#329,#331) ;
+#461=LINE('Line',#458,#460) ;
+#466=LINE('Line',#463,#465) ;
+#473=LINE('Line',#470,#472) ;
+#480=LINE('Line',#477,#479) ;
+#499=LINE('Line',#496,#498) ;
+#516=LINE('Line',#513,#515) ;
+#523=LINE('Line',#520,#522) ;
+#530=LINE('Line',#527,#529) ;
+#549=LINE('Line',#546,#548) ;
+#620=LINE('Line',#617,#619) ;
+#625=LINE('Line',#622,#624) ;
+#654=LINE('Line',#651,#653) ;
+#659=LINE('Line',#656,#658) ;
+#688=LINE('Line',#685,#687) ;
+#771=LINE('Line',#768,#770) ;
+#776=LINE('Line',#773,#775) ;
+#882=LINE('Line',#879,#881) ;
+#896=LINE('Line',#893,#895) ;
+#940=LINE('Line',#937,#939) ;
+#947=LINE('Line',#944,#946) ;
+#1073=LINE('Line',#1070,#1072) ;
+#1082=LINE('Line',#1079,#1081) ;
+#1089=LINE('Line',#1086,#1088) ;
+#1096=LINE('Line',#1093,#1095) ;
+#1131=LINE('Line',#1128,#1130) ;
+#1138=LINE('Line',#1135,#1137) ;
+#1145=LINE('Line',#1142,#1144) ;
+#1162=LINE('Line',#1159,#1161) ;
+#1169=LINE('Line',#1166,#1168) ;
+#1186=LINE('Line',#1183,#1185) ;
+#1193=LINE('Line',#1190,#1192) ;
+#1210=LINE('Line',#1207,#1209) ;
+#1259=LINE('Line',#1256,#1258) ;
+#1292=LINE('Line',#1289,#1291) ;
+#1325=LINE('Line',#1322,#1324) ;
+#1342=LINE('Line',#1339,#1341) ;
+#1368=LINE('Line',#1365,#1367) ;
+#1373=LINE('Line',#1370,#1372) ;
+#2=MECHANICAL_CONTEXT(' ',#1,'mechanical') ;
+#800=NEXT_ASSEMBLY_USAGE_OCCURRENCE('NAUO2','NAUO2','L-BRACKET_1',#17,#58,' ') ;
+#1041=NEXT_ASSEMBLY_USAGE_OCCURRENCE('NAUO3','NAUO3','BOLT_1',#819,#827,' ') ;
+#1466=NEXT_ASSEMBLY_USAGE_OCCURRENCE('NAUO4','NAUO4','NUT_1',#819,#1060,' ') ;
+#1479=NEXT_ASSEMBLY_USAGE_OCCURRENCE('NAUO5','NAUO5','NUT-BOLT ASSEMBLY_1',#17,#819,' ') ;
+#1494=NEXT_ASSEMBLY_USAGE_OCCURRENCE('NAUO6','NAUO6','NUT-BOLT ASSEMBLY_2',#17,#819,' ') ;
+#27=PERSONAL_ADDRESS(' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',(#25),' ') ;
+#153=PLANE('Plane',#152) ;
+#305=PLANE('Plane',#304) ;
+#457=PLANE('Plane',#456) ;
+#495=PLANE('Plane',#494) ;
+#512=PLANE('Plane',#511) ;
+#545=PLANE('Plane',#544) ;
+#684=PLANE('Plane',#683) ;
+#755=PLANE('Plane',#754) ;
+#836=PLANE('Plane',#835) ;
+#926=PLANE('Plane',#925) ;
+#984=PLANE('Plane',#983) ;
+#1069=PLANE('Plane',#1068) ;
+#1127=PLANE('Plane',#1126) ;
+#1158=PLANE('Plane',#1157) ;
+#1182=PLANE('Plane',#1181) ;
+#1206=PLANE('Plane',#1205) ;
+#1403=PLANE('Plane',#1402) ;
+#48=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.0174532925199),#47) ;
+#7=PRODUCT_CATEGORY('part',$) ;
+#14=PRODUCT_CATEGORY('part',$) ;
+#9=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#7,#8) ;
+#16=PRODUCT_CATEGORY_RELATIONSHIP(' ',' ',#14,#15) ;
+#6=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('None',' ',#5,.BOUGHT.) ;
+#57=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('None',' ',#56,.BOUGHT.) ;
+#818=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('None',' ',#817,.BOUGHT.) ;
+#826=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('None',' ',#825,.BOUGHT.) ;
+#1059=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('None',' ',#1058,.BOUGHT.) ;
+#58=PRODUCT_DEFINITION_WITH_ASSOCIATED_DOCUMENTS('None',' ',#57,#3,(#60)) ;
+#827=PRODUCT_DEFINITION_WITH_ASSOCIATED_DOCUMENTS('None',' ',#826,#3,(#829)) ;
+#1060=PRODUCT_DEFINITION_WITH_ASSOCIATED_DOCUMENTS('None',' ',#1059,#3,(#1062)) ;
+#8=PRODUCT_RELATED_PRODUCT_CATEGORY('detail',$,(#56,#825,#1058)) ;
+#15=PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#5,#817)) ;
+#43=SHAPE_DEFINITION_REPRESENTATION(#45,#44) ;
+#55=SHAPE_DEFINITION_REPRESENTATION(#61,#54) ;
+#816=SHAPE_DEFINITION_REPRESENTATION(#820,#815) ;
+#824=SHAPE_DEFINITION_REPRESENTATION(#830,#823) ;
+#1057=SHAPE_DEFINITION_REPRESENTATION(#1063,#1056) ;
+#73=VERTEX_POINT('',#72) ;
+#75=VERTEX_POINT('',#74) ;
+#94=VERTEX_POINT('',#93) ;
+#101=VERTEX_POINT('',#100) ;
+#159=VERTEX_POINT('',#158) ;
+#161=VERTEX_POINT('',#160) ;
+#168=VERTEX_POINT('',#167) ;
+#175=VERTEX_POINT('',#174) ;
+#211=VERTEX_POINT('',#210) ;
+#213=VERTEX_POINT('',#212) ;
+#265=VERTEX_POINT('',#264) ;
+#267=VERTEX_POINT('',#266) ;
+#311=VERTEX_POINT('',#310) ;
+#313=VERTEX_POINT('',#312) ;
+#320=VERTEX_POINT('',#319) ;
+#327=VERTEX_POINT('',#326) ;
+#363=VERTEX_POINT('',#362) ;
+#365=VERTEX_POINT('',#364) ;
+#417=VERTEX_POINT('',#416) ;
+#419=VERTEX_POINT('',#418) ;
+#468=VERTEX_POINT('',#467) ;
+#475=VERTEX_POINT('',#474) ;
+#518=VERTEX_POINT('',#517) ;
+#525=VERTEX_POINT('',#524) ;
+#580=VERTEX_POINT('',#579) ;
+#582=VERTEX_POINT('',#581) ;
+#719=VERTEX_POINT('',#718) ;
+#721=VERTEX_POINT('',#720) ;
+#842=VERTEX_POINT('',#841) ;
+#844=VERTEX_POINT('',#843) ;
+#860=VERTEX_POINT('',#859) ;
+#862=VERTEX_POINT('',#861) ;
+#884=VERTEX_POINT('',#883) ;
+#891=VERTEX_POINT('',#890) ;
+#942=VERTEX_POINT('',#941) ;
+#949=VERTEX_POINT('',#948) ;
+#990=VERTEX_POINT('',#989) ;
+#992=VERTEX_POINT('',#991) ;
+#1075=VERTEX_POINT('',#1074) ;
+#1077=VERTEX_POINT('',#1076) ;
+#1084=VERTEX_POINT('',#1083) ;
+#1091=VERTEX_POINT('',#1090) ;
+#1109=VERTEX_POINT('',#1108) ;
+#1111=VERTEX_POINT('',#1110) ;
+#1133=VERTEX_POINT('',#1132) ;
+#1140=VERTEX_POINT('',#1139) ;
+#1164=VERTEX_POINT('',#1163) ;
+#1188=VERTEX_POINT('',#1187) ;
+#1238=VERTEX_POINT('',#1237) ;
+#1254=VERTEX_POINT('',#1253) ;
+#1287=VERTEX_POINT('',#1286) ;
+#1320=VERTEX_POINT('',#1319) ;
+#1361=VERTEX_POINT('',#1360) ;
+#1363=VERTEX_POINT('',#1362) ;
+#1415=VERTEX_POINT('',#1414) ;
+#1417=VERTEX_POINT('',#1416) ;
+#46=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)) ;
+#47=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)) ;
+#49=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()) ;
+#51=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#50))GLOBAL_UNIT_ASSIGNED_CONTEXT((#46,#47,#49))REPRESENTATION_CONTEXT(' ',' ')) ;
+#53=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#52))GLOBAL_UNIT_ASSIGNED_CONTEXT((#46,#47,#49))REPRESENTATION_CONTEXT(' ',' ')) ;
+#814=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#813))GLOBAL_UNIT_ASSIGNED_CONTEXT((#46,#47,#49))REPRESENTATION_CONTEXT(' ',' ')) ;
+#822=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#821))GLOBAL_UNIT_ASSIGNED_CONTEXT((#46,#47,#49))REPRESENTATION_CONTEXT(' ',' ')) ;
+#1055=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#1054))GLOBAL_UNIT_ASSIGNED_CONTEXT((#46,#47,#49))REPRESENTATION_CONTEXT(' ',' ')) ;
+#1493=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#1492))GLOBAL_UNIT_ASSIGNED_CONTEXT((#46,#47,#49))REPRESENTATION_CONTEXT(' ',' ')) ;
+#803=(REPRESENTATION_RELATIONSHIP(' ',' ',#54,#44)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#804)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
+#1044=(REPRESENTATION_RELATIONSHIP(' ',' ',#823,#815)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1045)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
+#1469=(REPRESENTATION_RELATIONSHIP(' ',' ',#1056,#815)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1470)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
+#1482=(REPRESENTATION_RELATIONSHIP(' ',' ',#815,#44)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1483)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
+#1497=(REPRESENTATION_RELATIONSHIP(' ',' ',#815,#44)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1498)SHAPE_REPRESENTATION_RELATIONSHIP()) ;
+ENDSEC;
+END-ISO-10303-21;
diff --git a/src/3rdParty/salomesmesh/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp b/src/3rdParty/salomesmesh/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp
index b22b28905..46a1dc7d2 100644
--- a/src/3rdParty/salomesmesh/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp
+++ b/src/3rdParty/salomesmesh/src/DriverSTL/DriverSTL_R_SMDS_Mesh.cpp
@@ -157,6 +157,9 @@ Driver_Mesh::Status DriverSTL_R_SMDS_Mesh::Perform()
// static methods
+#pragma warning(push)
+#pragma warning(disable : 4805)
+
static Standard_Real readFloat(OSD_File& theFile)
{
union {
@@ -176,6 +179,7 @@ static Standard_Real readFloat(OSD_File& theFile)
return u.f;
}
+#pragma warning(pop)
static SMDS_MeshNode* addNode(const gp_Pnt& P,
DriverSTL_DataMapOfPntNodePtr& uniqnodes,
diff --git a/src/App/Application.cpp b/src/App/Application.cpp
index e8adf1132..57da57783 100644
--- a/src/App/Application.cpp
+++ b/src/App/Application.cpp
@@ -94,7 +94,11 @@
#include "Annotation.h"
#include "MeasureDistance.h"
#include "Placement.h"
-#include "Plane.h"
+#include "GeoFeatureGroup.h"
+#include "OriginGroup.h"
+#include "Part.h"
+#include "OriginFeature.h"
+#include "Origin.h"
#include "MaterialObject.h"
#include "Expression.h"
@@ -1128,7 +1132,14 @@ void Application::initTypes(void)
App ::MaterialObject ::init();
App ::MaterialObjectPython ::init();
App ::Placement ::init();
+ App ::OriginFeature ::init();
App ::Plane ::init();
+ App ::Line ::init();
+ App ::GeoFeatureGroup ::init();
+ App ::GeoFeatureGroupPython ::init();
+ App ::OriginGroup ::init();
+ App ::Part ::init();
+ App ::Origin ::init();
// Expression classes
App ::Expression ::init();
@@ -1334,7 +1345,7 @@ void Application::processFiles(const std::list& files)
Base::Interpreter().runFile(file.filePath().c_str(), true);
}
else if (file.hasExtension("py")) {
- try {
+ try{
Base::Interpreter().loadModule(file.fileNamePure().c_str());
}
catch(const PyException&) {
diff --git a/src/App/CMakeLists.txt b/src/App/CMakeLists.txt
index e03e21ec0..1fd9d474a 100644
--- a/src/App/CMakeLists.txt
+++ b/src/App/CMakeLists.txt
@@ -33,6 +33,11 @@ set(FreeCADApp_LIBS
generate_from_xml(DocumentPy)
generate_from_xml(DocumentObjectPy)
generate_from_xml(DocumentObjectGroupPy)
+generate_from_xml(GeoFeaturePy)
+generate_from_xml(GeoFeatureGroupPy)
+generate_from_xml(OriginGroupPy)
+generate_from_xml(PartPy)
+
generate_from_xml(ComplexGeoDataPy)
generate_from_xml(PropertyContainerPy)
generate_from_xml(MaterialPy)
@@ -43,6 +48,10 @@ generate_from_py(FreeCADTest TestScript.h)
SET(FreeCADApp_XML_SRCS
DocumentObjectGroupPy.xml
DocumentObjectPy.xml
+ GeoFeaturePy.xml
+ GeoFeatureGroupPy.xml
+ OriginGroupPy.xml
+ PartPy.xml
DocumentPy.xml
PropertyContainerPy.xml
ComplexGeoDataPy.xml
@@ -58,6 +67,7 @@ SET(Document_CPP_SRCS
DocumentObjectFileIncluded.cpp
DocumentObjectGroup.cpp
DocumentObjectGroupPyImp.cpp
+ GeoFeaturePyImp.cpp
DocumentObjectPyImp.cpp
DocumentObserver.cpp
DocumentObserverPython.cpp
@@ -66,10 +76,18 @@ SET(Document_CPP_SRCS
FeaturePython.cpp
FeatureTest.cpp
GeoFeature.cpp
+ GeoFeatureGroupPyImp.cpp
+ GeoFeatureGroup.cpp
+ OriginGroupPyImp.cpp
+ OriginGroup.cpp
+ PartPyImp.cpp
+ Part.cpp
+ Origin.cpp
+ Path.cpp
InventorObject.cpp
MeasureDistance.cpp
Placement.cpp
- Plane.cpp
+ OriginFeature.cpp
Range.cpp
Transactions.cpp
VRMLObject.cpp
@@ -93,10 +111,15 @@ SET(Document_HPP_SRCS
FeaturePythonPyImp.inl
FeatureTest.h
GeoFeature.h
+ GeoFeatureGroup.h
+ OriginGroup.h
+ Part.h
+ Origin.h
+ Path.h
InventorObject.h
MeasureDistance.h
Placement.h
- Plane.h
+ OriginFeature.h
Range.h
Transactions.h
VRMLObject.h
diff --git a/src/App/Document.cpp b/src/App/Document.cpp
index 4312724bd..0e026c0bf 100644
--- a/src/App/Document.cpp
+++ b/src/App/Document.cpp
@@ -74,7 +74,6 @@ recompute path. Also enables more complicated dependencies beyond trees.
#include "DocumentPy.h"
#include "Application.h"
#include "DocumentObject.h"
-#include "PropertyLinks.h"
#include "MergeDocuments.h"
#include
@@ -110,7 +109,7 @@ using namespace zipios;
#if FC_DEBUG
# define FC_LOGFEATUREUPDATE
-#endif
+#endif
// typedef boost::property VertexProperty;
typedef boost::adjacency_list <
@@ -136,12 +135,13 @@ struct DocumentP
std::map objectMap;
DocumentObject* activeObject;
Transaction *activeUndoTransaction;
- Transaction *activeTransaction;
+ Transaction *activeTransaction; ///< FIXME: has no effect (2015-09-01, Fat-Zer)
int iTransactionMode;
int iTransactionCount;
std::map mTransactions;
std::map vertexMap;
bool rollback;
+ bool undoing; ///< document in the midle of undo or redo
bool closable;
bool keepTrailingDigits;
int iUndoMode;
@@ -157,6 +157,7 @@ struct DocumentP
iTransactionMode = 0;
iTransactionCount = 0;
rollback = false;
+ undoing = false;
closable = true;
keepTrailingDigits = true;
iUndoMode = 0;
@@ -573,9 +574,10 @@ bool Document::undo(void)
// redo
d->activeUndoTransaction = new Transaction();
d->activeUndoTransaction->Name = mUndoTransactions.back()->Name;
-
+ d->undoing = true;
// applying the undo
mUndoTransactions.back()->apply(*this,false);
+ d->undoing = false;
// save the redo
mRedoTransactions.push_back(d->activeUndoTransaction);
@@ -604,7 +606,9 @@ bool Document::redo(void)
d->activeUndoTransaction->Name = mRedoTransactions.back()->Name;
// do the redo
+ d->undoing = true;
mRedoTransactions.back()->apply(*this,true);
+ d->undoing = false;
mUndoTransactions.push_back(d->activeUndoTransaction);
d->activeUndoTransaction = 0;
@@ -927,6 +931,10 @@ Document::Document(void)
ADD_PROPERTY_TYPE(Id,(""),0,Prop_None,"ID of the document");
ADD_PROPERTY_TYPE(Uid,(id),0,Prop_ReadOnly,"UUID of the document");
+ // license stuff
+ ADD_PROPERTY_TYPE(License,("CC-BY 3.0"),0,Prop_None,"License string of the Item");
+ ADD_PROPERTY_TYPE(LicenseURL,("http://creativecommons.org/licenses/by/3.0/"),0,Prop_None,"URL to the license text/contract");
+
// license stuff
int licenseId = App::GetApplication().GetParameterGroupByPath
("User parameter:BaseApp/Preferences/Document")->GetInt("prefLicenseType",0);
@@ -983,6 +991,10 @@ Document::Document(void)
// this creates and sets 'TransientDir' in onChanged()
ADD_PROPERTY_TYPE(TransientDir,(""),0,PropertyType(Prop_Transient|Prop_ReadOnly),
"Transient directory, where the files live while the document is open");
+ ADD_PROPERTY_TYPE(Tip,(0),0,PropertyType(Prop_Transient),
+ "Link of the tip object of the document");
+ ADD_PROPERTY_TYPE(TipName,(""),0,PropertyType(Prop_Hidden|Prop_ReadOnly),
+ "Link of the tip object of the document");
Uid.touch();
}
@@ -1103,7 +1115,7 @@ void Document::Restore(Base::XMLReader &reader)
string name = reader.getAttribute("name");
try {
- addObject(type.c_str(),name.c_str());
+ addObject(type.c_str(), name.c_str(), /*isNew=*/ false);
}
catch ( Base::Exception& ) {
Base::Console().Message("Cannot create object '%s'\n", name.c_str());
@@ -1130,6 +1142,10 @@ void Document::Restore(Base::XMLReader &reader)
else if ( scheme >= 3 ) {
// read the feature types
readObjects(reader);
+
+ // tip object handling. First the whole document has to be read, then we
+ // can restore the Tip link out of the TipName Property:
+ Tip.setValue(getObject(TipName.getValue()));
}
reader.readEndElement("Document");
@@ -1215,7 +1231,7 @@ Document::readObjects(Base::XMLReader& reader)
// otherwise we may cause a dependency to itself
// Example: Object 'Cut001' references object 'Cut' and removing the
// digits we make an object 'Cut' referencing itself.
- App::DocumentObject* obj = addObject(type.c_str(),name.c_str());
+ App::DocumentObject* obj = addObject(type.c_str(), name.c_str(), /*isNew=*/ false);
if (obj) {
objs.push_back(obj);
// use this name for the later access because an object with
@@ -1336,6 +1352,11 @@ bool Document::save (void)
compression = Base::clamp(compression, Z_NO_COMPRESSION, Z_BEST_COMPRESSION);
if (*(FileName.getValue()) != '\0') {
+ // Save the name of the tip object in order to handle in Restore()
+ if(Tip.getValue()) {
+ TipName.setValue(Tip.getValue()->getNameInDocument());
+ }
+
std::string LastModifiedDateString = Base::TimeInfo::currentDateTimeString();
LastModifiedDate.setValue(LastModifiedDateString.c_str());
// set author if needed
@@ -1448,6 +1469,8 @@ void Document::restore (void)
// !TODO mind exeptions while restoring!
clearUndos();
for (std::vector::iterator obj = d->objectArray.begin(); obj != d->objectArray.end(); ++obj) {
+ // NOTE don't call unsetupObject () here due to it is intended to do some manipulations
+ // on other objects, but here we are wiping out document completely
signalDeletedObject(*(*obj));
delete *obj;
}
@@ -1484,7 +1507,7 @@ void Document::restore (void)
// without GUI. But if available then follow after all data files of the App document.
signalRestoreDocument(reader);
reader.readFiles(zipstream);
-
+
// reset all touched
for (std::map::iterator It= d->objectMap.begin();It!=d->objectMap.end();++It) {
It->second->connectRelabelSignals();
@@ -1507,7 +1530,7 @@ bool Document::isSaved() const
* matches with the file name where the document is stored to.
* In contrast to Label the method getName() returns the internal name of the document that only
* matches with Label when loading or creating a document because then both are set to the same value.
- * Since the internal name cannot be changed during runtime it must differ from the Label after saving
+ * Since the internal name cannot be changed during runtime it must differ from the Label after saving
* the document the first time or saving it under a new file name.
* @ note More than one document can have the same label name.
* @ note The internal is always guaranteed to be unique because @ref Application::newDocument() checks
@@ -1604,7 +1627,7 @@ Document::getDependencyList(const std::vector& objs) const
Vertex v = add_vertex(DepList);
ObjectMap[*it] = v;
VertexMap[v] = *it;
- }
+ }
for (std::vector::const_iterator it = d->objectArray.begin(); it != d->objectArray.end();++it) {
std::vector outList = (*it)->getOutList();
@@ -1639,8 +1662,11 @@ Document::getDependencyList(const std::vector& objs) const
// this sort gives the execute
boost::topological_sort(DepList, std::front_inserter(make_order));
}
- catch (const std::exception&) {
- return std::vector();
+ catch (const std::exception& e) {
+ std::stringstream ss;
+ ss << "Gathering all dependencies failed, probably due to circular dependencies. Error: ";
+ ss << e.what();
+ throw Base::Exception(ss.str().c_str());
}
std::set out;
@@ -1751,7 +1777,7 @@ void Document::recompute()
for (std::list::reverse_iterator i = make_order.rbegin();i != make_order.rend(); ++i) {
DocumentObject* Cur = d->vertexMap[*i];
- if (!Cur) continue;
+ if (!Cur || !isIn(Cur)) continue;
#ifdef FC_LOGFEATUREUPDATE
std::clog << Cur->getNameInDocument() << " dep on:" ;
#endif
@@ -1816,7 +1842,7 @@ void Document::recompute()
// reset all touched
for (std::map::iterator it = d->vertexMap.begin(); it != d->vertexMap.end(); ++it) {
- if (it->second)
+ if ((it->second) && isIn(it->second))
it->second->purgeTouched();
}
d->vertexMap.clear();
@@ -1914,7 +1940,7 @@ void Document::recomputeFeature(DocumentObject* Feat)
_recomputeFeature(Feat);
}
-DocumentObject * Document::addObject(const char* sType, const char* pObjectName)
+DocumentObject * Document::addObject(const char* sType, const char* pObjectName, bool isNew)
{
Base::BaseClass* base = static_cast(Base::Type::createInstanceByName(sType,true));
@@ -1961,6 +1987,11 @@ DocumentObject * Document::addObject(const char* sType, const char* pObjectName)
pcObject->Label.setValue( ObjectName );
+ // Call the object-specific initialization
+ if (!d->undoing && !d->rollback && isNew) {
+ pcObject->setupObject ();
+ }
+
// mark the object as new (i.e. set status bit 2) and send the signal
pcObject->StatusBits.set(2);
signalNewObject(*pcObject);
@@ -2050,7 +2081,14 @@ void Document::remObject(const char* sName)
if (d->activeObject == pos->second)
d->activeObject = 0;
+ // Mark the object as about to be deleted
+ pos->second->StatusBits.set (ObjectStatus::Delete);
+ if (!d->undoing && !d->rollback) {
+ pos->second->unsetupObject();
+ }
signalDeletedObject(*(pos->second));
+ pos->second->StatusBits.reset (ObjectStatus::Delete); // Unset the bit to be on the safe side
+
if (!d->vertexMap.empty()) {
// recompute of document is running
for (std::map::iterator it = d->vertexMap.begin(); it != d->vertexMap.end(); ++it) {
@@ -2064,6 +2102,12 @@ void Document::remObject(const char* sName)
// Before deleting we must nullify all dependant objects
breakDependency(pos->second, true);
+ //and remove the tip if needed
+ if(Tip.getValue() && strcmp(Tip.getValue()->getNameInDocument(), sName)==0) {
+ Tip.setValue(nullptr);
+ TipName.setValue("");
+ }
+
// do no transactions if we do a rollback!
if(!d->rollback){
@@ -2098,14 +2142,29 @@ void Document::remObject(const char* sName)
/// Remove an object out of the document (internal)
void Document::_remObject(DocumentObject* pcObject)
{
+ // TODO Refactoring: share code with Document::remObject() (2015-09-01, Fat-Zer)
_checkTransaction(pcObject);
std::map::iterator pos = d->objectMap.find(pcObject->getNameInDocument());
+
if (d->activeObject == pcObject)
d->activeObject = 0;
+ // Mark the object as about to be deleted
+ pcObject->StatusBits.set (ObjectStatus::Delete);
+ if (!d->undoing && !d->rollback) {
+ pcObject->unsetupObject();
+ }
signalDeletedObject(*pcObject);
+ // TODO Check me if it's needed (2015-09-01, Fat-Zer)
+ pcObject->StatusBits.reset (ObjectStatus::Delete); // Unset the bit to be on the safe side
+
+ //remove the tip if needed
+ if(Tip.getValue() == pcObject) {
+ Tip.setValue(nullptr);
+ TipName.setValue("");
+ }
// do no transactions if we do a rollback!
if(!d->rollback){
@@ -2290,6 +2349,16 @@ DocumentObject * Document::getObject(const char *Name) const
return 0;
}
+// Note: This method is only used in Tree.cpp slotChangeObject(), see explanation there
+const bool Document::isIn(const DocumentObject *pFeat) const
+{
+ for (std::map::const_iterator o = d->objectMap.begin(); o != d->objectMap.end(); o++)
+ if (o->second == pFeat)
+ return true;
+
+ return false;
+}
+
const char * Document::getObjectName(DocumentObject *pFeat) const
{
std::map::const_iterator pos;
diff --git a/src/App/Document.h b/src/App/Document.h
index 1402f7cc4..c74948eb0 100644
--- a/src/App/Document.h
+++ b/src/App/Document.h
@@ -30,6 +30,7 @@
#include "PropertyContainer.h"
#include "PropertyStandard.h"
+#include "PropertyLinks.h"
#include