Merge pull request #135 from blobfish/rebaseMaster
PartDesignNext rebased on master
This commit is contained in:
commit
081b86c212
|
@ -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)
|
||||
|
|
3
FCMasterMerge.kdev4
Normal file
3
FCMasterMerge.kdev4
Normal file
|
@ -0,0 +1,3 @@
|
|||
[Project]
|
||||
Manager=KDevCMakeManager
|
||||
Name=FCMasterMerge
|
BIN
data/tests/Jt/Engine/2_Cylinder_Engine.jt
Normal file
BIN
data/tests/Jt/Engine/2_Cylinder_Engine.jt
Normal file
Binary file not shown.
Binary file not shown.
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/Case_r_123_200_0_Parts.jt
Normal file
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/Case_r_123_200_0_Parts.jt
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/Head_1_123_150_0_Parts.jt
Normal file
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/Head_1_123_150_0_Parts.jt
Normal file
Binary file not shown.
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/Head_2_123_151_0_Parts.jt
Normal file
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/Head_2_123_151_0_Parts.jt
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/Lifter_123_923_0_Parts.jt
Normal file
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/Lifter_123_923_0_Parts.jt
Normal file
Binary file not shown.
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/Piston_123_844_0_Parts.jt
Normal file
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/Piston_123_844_0_Parts.jt
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/Spark_Plug__0_Parts.jt
Normal file
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/Spark_Plug__0_Parts.jt
Normal file
Binary file not shown.
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/Spring_Link__0_Parts.jt
Normal file
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/Spring_Link__0_Parts.jt
Normal file
Binary file not shown.
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/Valve_123_700_0_Parts.jt
Normal file
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/Valve_123_700_0_Parts.jt
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/crank_123_782_0_Parts.jt
Normal file
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/crank_123_782_0_Parts.jt
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/rod_123_699_0_Parts.jt
Normal file
BIN
data/tests/Jt/Engine/2_Cylinder_Engine/rod_123_699_0_Parts.jt
Normal file
Binary file not shown.
403
data/tests/Jt/Engine/2_Cylinder_Engine1_Internals.plmxml
Normal file
403
data/tests/Jt/Engine/2_Cylinder_Engine1_Internals.plmxml
Normal file
|
@ -0,0 +1,403 @@
|
|||
<?xml version="1.0" ?>
|
||||
<PLMXML xmlns="http://www.plmxml.org/Schemas/PLMXMLSchema"
|
||||
schemaVersion="4" date="2005-01-13" time="18:02:23" author="Vis Mockup 5.1.0">
|
||||
<ProductDef id="id1">
|
||||
<UserData id="id12" type="__TCC-VIS_MONIKER_INFO">
|
||||
<UserValue value="C:\Program Files\UGS\JT2Go\Examples\2_Cylinder_Engine_Example\2_Cylinder_Engine.jt" title="Path"></UserValue>
|
||||
<UserValue value="file" title="FA_Protocol"></UserValue>
|
||||
<UserValue value="C:/Program Files/UGS/JT2Go/Examples/2_Cylinder_Engine_Example/2_Cylinder_Engine.jt" title="object_id"></UserValue>
|
||||
<UserValue value="C:\Program Files\UGS\JT2Go\Examples\2_Cylinder_Engine_Example\2_Cylinder_Engine.jt" title="LocalCopy"></UserValue>
|
||||
<UserValue value="2.0" title="Version"></UserValue>
|
||||
<UserValue value="local" title="FA_Service"></UserValue>
|
||||
<UserValue value="No" title="MkIsFolder"></UserValue>
|
||||
<UserValue value="2_Cylinder_Engine.jt" title="Title"></UserValue>
|
||||
<UserValue value="DirectModel.Document" title="FileTypeID"></UserValue></UserData>
|
||||
<InstanceGraph id="id2" rootRefs="inst1931328">
|
||||
<Instance id="inst1931328" name="2_Cylinder_Engine" partRef="#id14">
|
||||
<ApplicationRef application="TCC-VIS" label="2_Cylinder_Engine.asm;0;0:"></ApplicationRef>
|
||||
<UserData id="id18" type="Hidden_Metadata">
|
||||
<UserValue value="156001" title="TOOLKIT_CUSTOMER"></UserValue></UserData>
|
||||
<UserData id="id29">
|
||||
<UserValue value="2_Cylinder_Engine" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:30.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="2 Cylinder Engine" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-001" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Jan-10-2005 13:23:55.05" title="Version Mod. Date + Time"></UserValue></UserData>
|
||||
<Transform id="id15">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Instance>
|
||||
<Instance id="inst1950208" name="rod:123-699;0,Parts" partRef="#id44">
|
||||
<ApplicationRef application="TCC-VIS" label="rod:123-699;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id45">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</Transform></Instance>
|
||||
<Instance id="inst1950304" name="Piston Sub:;0,Parts" partRef="#id50">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id51">-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</Transform></Instance>
|
||||
<Instance id="inst1950160" name="Piston:123-844;0,Parts" partRef="#id58">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston:123-844;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id59">-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</Transform></Instance>
|
||||
<Instance id="inst1950400" name="Piston pin:123-845;0,Parts" partRef="#id64">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston pin:123-845;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id65">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</Transform></Instance>
|
||||
<Instance id="inst1950496" name="Piston Sub:;0,Parts" partRef="#id70">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston Sub:;0,Parts.asm;0;1:"></ApplicationRef>
|
||||
<Transform id="id71">1 0 0 0 0 1 0 0 0 0 1 0 0.1368601024150848 -0.06445372104644775 -0.03617963194847107 1</Transform></Instance>
|
||||
<Instance id="inst1950448" name="Piston:123-844;0,Parts" partRef="#id58">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston:123-844;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id83">-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</Transform></Instance>
|
||||
<Instance id="inst1950592" name="Piston pin:123-845;0,Parts" partRef="#id64">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston pin:123-845;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id86">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</Transform></Instance>
|
||||
<Instance id="inst1950640" name="CamShaft Sub:123-990;0,Parts" partRef="#id89">
|
||||
<ApplicationRef application="TCC-VIS" label="CamShaft Sub:123-990;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id90">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</Transform></Instance>
|
||||
<Instance id="inst1950688" name="Cam_shaft:123-457;0,Parts" partRef="#id104">
|
||||
<ApplicationRef application="TCC-VIS" label="Cam_shaft:123-457;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id105">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</Transform></Instance>
|
||||
<Instance id="inst1950736" name="cam_gear:123-456;0,Parts" partRef="#id110">
|
||||
<ApplicationRef application="TCC-VIS" label="cam_gear:123-456;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id111">-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</Transform></Instance>
|
||||
<Instance id="inst1950784" name="Crank_Sub:123-555;0,Parts" partRef="#id116">
|
||||
<ApplicationRef application="TCC-VIS" label="Crank_Sub:123-555;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id117">-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</Transform></Instance>
|
||||
<Instance id="inst1950832" name="crank:123-782;0,Parts" partRef="#id131">
|
||||
<ApplicationRef application="TCC-VIS" label="crank:123-782;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id132">-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</Transform></Instance>
|
||||
<Instance id="inst1950880" name="crank_gear:123-783;0,Parts" partRef="#id137">
|
||||
<ApplicationRef application="TCC-VIS" label="crank_gear:123-783;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id138">-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</Transform></Instance>
|
||||
<Instance id="inst1950928" name="Body Sub:123-002;0,Parts" partRef="#id143">
|
||||
<ApplicationRef application="TCC-VIS" label="Body Sub:123-002;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id144">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Instance>
|
||||
<Instance id="inst1951264" name="Head2 Sub:;0,Parts" partRef="#id158">
|
||||
<ApplicationRef application="TCC-VIS" label="Head2 Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id159">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</Transform></Instance>
|
||||
<Instance id="inst1951408" name="Spark Plug:;0,Parts" partRef="#id172">
|
||||
<ApplicationRef application="TCC-VIS" label="Spark Plug:;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id173">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</Transform></Instance>
|
||||
<Instance id="inst1951616" name="Rocker_Sub:;0,Parts" partRef="#id178">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker_Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id179">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</Transform></Instance>
|
||||
<Instance id="inst1951568" name="Rocker Arm Shaft:123-601;0,Parts" partRef="#id191">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Arm Shaft:123-601;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id192">-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</Transform></Instance>
|
||||
<Instance id="inst1951712" name="Rocker_Mount_Sub:;0,Parts" partRef="#id197">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker_Mount_Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id198">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</Transform></Instance>
|
||||
<Instance id="inst1951824" name="Rocker Mount:123-604;0,Parts" partRef="#id205">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Mount:123-604;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id206">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</Transform></Instance>
|
||||
<Instance id="inst1951872" name="Rocker Mount Cap:123-608;0,Parts" partRef="#id211">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Mount Cap:123-608;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id212">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</Transform></Instance>
|
||||
<Instance id="inst1951920" name="Rocker Bolt:123-603;0,Parts" partRef="#id217">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Bolt:123-603;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id218">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</Transform></Instance>
|
||||
<Instance id="inst1952032" name="Rocker Bolt:123-603;0,Parts" partRef="#id217">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Bolt:123-603;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id223">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</Transform></Instance>
|
||||
<Instance id="inst1952144" name="Rocker_Mount_Sub:;0,Parts" partRef="#id226">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker_Mount_Sub:;0,Parts.asm;0;1:"></ApplicationRef>
|
||||
<Transform id="id227">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</Transform></Instance>
|
||||
<Instance id="inst1952256" name="Rocker Mount:123-604;0,Parts" partRef="#id205">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Mount:123-604;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id239">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</Transform></Instance>
|
||||
<Instance id="inst1952304" name="Rocker Mount Cap:123-608;0,Parts" partRef="#id211">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Mount Cap:123-608;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id242">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</Transform></Instance>
|
||||
<Instance id="inst1952352" name="Rocker Bolt:123-603;0,Parts" partRef="#id217">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Bolt:123-603;0,Parts.part;0;2:"></ApplicationRef>
|
||||
<Transform id="id245">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</Transform></Instance>
|
||||
<Instance id="inst1952464" name="Rocker Bolt:123-603;0,Parts" partRef="#id217">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Bolt:123-603;0,Parts.part;0;3:"></ApplicationRef>
|
||||
<Transform id="id248">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</Transform></Instance>
|
||||
<Instance id="inst1952576" name="Rocker Arm Shaft:123-601;0,Parts" partRef="#id191">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Arm Shaft:123-601;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id251">-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</Transform></Instance>
|
||||
<Instance id="inst1952624" name="Valve Spring:123-702;0,Parts" partRef="#id254">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Spring:123-702;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id255">-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</Transform></Instance>
|
||||
<Instance id="inst1952720" name="Valve_Sub:;0,Parts" partRef="#id260">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve_Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id261">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</Transform></Instance>
|
||||
<Instance id="inst1952672" name="Valve:123-700;0,Parts" partRef="#id268">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve:123-700;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id269">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</Transform></Instance>
|
||||
<Instance id="inst1952816" name="Valve Spring Cap:123-704;0,Parts" partRef="#id274">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Spring Cap:123-704;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id275">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</Transform></Instance>
|
||||
<Instance id="inst1952864" name="Spring:;0,Parts" partRef="#id280">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id281">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</Transform></Instance>
|
||||
<Instance id="inst1952912" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id289">-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</Transform></Instance>
|
||||
<Instance id="inst1952960" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id294">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</Transform></Instance>
|
||||
<Instance id="inst1953008" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;2:"></ApplicationRef>
|
||||
<Transform id="id297">-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</Transform></Instance>
|
||||
<Instance id="inst1953056" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;3:"></ApplicationRef>
|
||||
<Transform id="id300">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</Transform></Instance>
|
||||
<Instance id="inst1953104" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;4:"></ApplicationRef>
|
||||
<Transform id="id303">-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</Transform></Instance>
|
||||
<Instance id="inst1953152" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;5:"></ApplicationRef>
|
||||
<Transform id="id306">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</Transform></Instance>
|
||||
<Instance id="inst1953200" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;6:"></ApplicationRef>
|
||||
<Transform id="id309">-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</Transform></Instance>
|
||||
<Instance id="inst1953248" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;7:"></ApplicationRef>
|
||||
<Transform id="id312">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</Transform></Instance>
|
||||
<Instance id="inst1953296" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;8:"></ApplicationRef>
|
||||
<Transform id="id315">-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</Transform></Instance>
|
||||
<Instance id="inst1953344" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;9:"></ApplicationRef>
|
||||
<Transform id="id318">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</Transform></Instance>
|
||||
<Instance id="inst1953440" name="Valve_Sub:;0,Parts" partRef="#id321">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve_Sub:;0,Parts.asm;0;1:"></ApplicationRef>
|
||||
<Transform id="id322">-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</Transform></Instance>
|
||||
<Instance id="inst1953392" name="Spring:;0,Parts" partRef="#id335">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring:;0,Parts.asm;0;1:"></ApplicationRef>
|
||||
<Transform id="id336">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</Transform></Instance>
|
||||
<Instance id="inst1953576" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;10:"></ApplicationRef>
|
||||
<Transform id="id348">-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</Transform></Instance>
|
||||
<Instance id="inst1953624" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;11:"></ApplicationRef>
|
||||
<Transform id="id351">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</Transform></Instance>
|
||||
<Instance id="inst1953672" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;12:"></ApplicationRef>
|
||||
<Transform id="id354">-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</Transform></Instance>
|
||||
<Instance id="inst1953720" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;13:"></ApplicationRef>
|
||||
<Transform id="id357">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</Transform></Instance>
|
||||
<Instance id="inst1953768" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;14:"></ApplicationRef>
|
||||
<Transform id="id360">-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</Transform></Instance>
|
||||
<Instance id="inst1953816" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;15:"></ApplicationRef>
|
||||
<Transform id="id363">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</Transform></Instance>
|
||||
<Instance id="inst1953920" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;16:"></ApplicationRef>
|
||||
<Transform id="id366">-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</Transform></Instance>
|
||||
<Instance id="inst1954024" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;17:"></ApplicationRef>
|
||||
<Transform id="id369">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</Transform></Instance>
|
||||
<Instance id="inst1954128" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;18:"></ApplicationRef>
|
||||
<Transform id="id372">-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</Transform></Instance>
|
||||
<Instance id="inst1954232" name="Spring Link:;0,Parts" partRef="#id288">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;19:"></ApplicationRef>
|
||||
<Transform id="id375">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</Transform></Instance>
|
||||
<Instance id="inst1954336" name="Valve:123-700;0,Parts" partRef="#id268">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve:123-700;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id378">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</Transform></Instance>
|
||||
<Instance id="inst1954440" name="Valve Spring Cap:123-704;0,Parts" partRef="#id274">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Spring Cap:123-704;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id381">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</Transform></Instance>
|
||||
<Instance id="inst1954488" name="Rocker Arm:123-600;0,Parts" partRef="#id384">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Arm:123-600;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id385">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</Transform></Instance>
|
||||
<Instance id="inst1954600" name="Rocker Arm_copy:123-602;0,Parts" partRef="#id390">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Arm_copy:123-602;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id391">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</Transform></Instance>
|
||||
<Instance id="inst1954872" name="Valve Spring:123-702;0,Parts" partRef="#id254">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Spring:123-702;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id396">-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</Transform></Instance>
|
||||
<Instance id="inst1955728" name="rod:123-699;0,Parts" partRef="#id44">
|
||||
<ApplicationRef application="TCC-VIS" label="rod:123-699;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id399">-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</Transform></Instance>
|
||||
<Part id="id14" name="2_Cylinder_Engine" instanceRefs="inst1950208 inst1950304 inst1950496 inst1950640 inst1950784 inst1950928 inst1955728" type="assembly">
|
||||
<UserData id="id31" type="Hidden_Metadata">
|
||||
<UserValue value="156001" title="TOOLKIT_CUSTOMER"></UserValue></UserData>
|
||||
<UserData id="id42">
|
||||
<UserValue value="2_Cylinder_Engine" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:30.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="2 Cylinder Engine" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-001" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Jan-10-2005 13:23:55.05" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id44" name="rod:123-699;0,Parts" type="solid">
|
||||
<Bound id="id47" values="0.02005359902977943 -0.006323420908302069 0 0.09100000560283661 0.03700000047683716 0.009999999776482582"></Bound>
|
||||
<Representation id="id48" format="JT" location="./2_Cylinder_Engine/rod_123_699_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id50" name="Piston Sub:;0,Parts" instanceRefs="inst1950160 inst1950400" type="assembly">
|
||||
<UserData id="id56">
|
||||
<UserValue value="Piston Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="Piston Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue></UserData></Part>
|
||||
<Part id="id58" name="Piston:123-844;0,Parts" type="solid">
|
||||
<Bound id="id61" values="0.0101108755916357 0.009526152163743973 0 0.05324159190058708 0.04650000110268593 0.04649999737739563"></Bound>
|
||||
<Representation id="id62" format="JT" location="./2_Cylinder_Engine/Piston_123_844_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id64" name="Piston pin:123-845;0,Parts" type="solid">
|
||||
<Bound id="id67" values="-0.2534925639629364 0.09658930450677872 0.04250000044703484 0.01099999435245991 0.01099186204373837 0.04250000044703484"></Bound>
|
||||
<Representation id="id68" format="JT" location="./2_Cylinder_Engine/Piston_pin_123_845_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id70" name="Piston Sub:;0,Parts" instanceRefs="inst1950448 inst1950592" type="assembly">
|
||||
<UserData id="id81">
|
||||
<UserValue value="Piston Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:24.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Piston Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id89" name="CamShaft Sub:123-990;0,Parts" instanceRefs="inst1950688 inst1950736" type="assembly">
|
||||
<UserData id="id102">
|
||||
<UserValue value="CamShaft Sub:123-990;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:25.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="CamShaft Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-990" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Aug-14-2001 14:11:35.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id104" name="Cam_shaft:123-457;0,Parts" type="solid">
|
||||
<Bound id="id107" values="0.05063954740762711 -0.03493684902787209 -4.356868157628924e-005 0.1267500072717667 0.02063110843300819 0.01902950927615166"></Bound>
|
||||
<Representation id="id108" format="JT" location="./2_Cylinder_Engine/Cam_shaft_123_457_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id110" name="cam_gear:123-456;0,Parts" type="solid">
|
||||
<Bound id="id113" values="0 -0.1000000014901161 -0.002500000409781933 0.06898061186075211 0.06888007372617722 0.01250000018626452"></Bound>
|
||||
<Representation id="id114" format="JT" location="./2_Cylinder_Engine/cam_gear_123_456_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id116" name="Crank_Sub:123-555;0,Parts" instanceRefs="inst1950832 inst1950880" type="assembly">
|
||||
<UserData id="id129">
|
||||
<UserValue value="Crank_Sub:123-555;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Aug-14-2001 14:13:01.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="Crank_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-555" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Aug-14-2001 14:13:01.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id131" name="crank:123-782;0,Parts" type="solid">
|
||||
<Bound id="id134" values="4.847693617193727e-006 0 -0.01325000263750553 0.06299515068531036 0.03500000014901161 0.1267500072717667"></Bound>
|
||||
<Representation id="id135" format="JT" location="./2_Cylinder_Engine/crank_123_782_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id137" name="crank_gear:123-783;0,Parts" type="solid">
|
||||
<Bound id="id140" values="0 -0.0001077877532225102 -0.002500000409781933 0.03597993031144142 0.03586557507514954 0.01250000018626452"></Bound>
|
||||
<Representation id="id141" format="JT" location="./2_Cylinder_Engine/crank_gear_123_783_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id143" name="Body Sub:123-002;0,Parts" instanceRefs="inst1951264" type="assembly">
|
||||
<UserData id="id156">
|
||||
<UserValue value="Body Sub:123-002;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:29.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Body Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-002" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Aug-14-2001 14:10:00.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id158" name="Head2 Sub:;0,Parts" instanceRefs="inst1951408 inst1951616 inst1952624 inst1952720 inst1953440 inst1954488 inst1954600 inst1954872" type="assembly">
|
||||
<UserData id="id170">
|
||||
<UserValue value="Head2 Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:27.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Head2 Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id172" name="Spark Plug:;0,Parts" type="solid">
|
||||
<Bound id="id175" values="0.03006996028125286 0.2239631712436676 0.02060705050826073 0.01078151073306799 0.009165501222014427 0.0493929535150528"></Bound>
|
||||
<Representation id="id176" format="JT" location="./2_Cylinder_Engine/Spark_Plug__0_Parts.jt"></Representation></Part>
|
||||
<Part id="id178" name="Rocker_Sub:;0,Parts" instanceRefs="inst1951568 inst1951712 inst1952144 inst1952576" type="assembly">
|
||||
<UserData id="id189">
|
||||
<UserValue value="Rocker_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:27.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Rocker_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id191" name="Rocker Arm Shaft:123-601;0,Parts" type="solid">
|
||||
<Bound id="id194" values="-0.04317900538444519 0.4631594121456146 0.05750000104308128 0.006500000134110451 0.006495170295238495 0.05750000104308128"></Bound>
|
||||
<Representation id="id195" format="JT" location="./2_Cylinder_Engine/Rocker_Arm_Shaft_123_601_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id197" name="Rocker_Mount_Sub:;0,Parts" instanceRefs="inst1951824 inst1951872 inst1951920 inst1952032" type="assembly">
|
||||
<UserData id="id203">
|
||||
<UserValue value="Rocker_Mount_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="Rocker_Mount_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue></UserData></Part>
|
||||
<Part id="id205" name="Rocker Mount:123-604;0,Parts" type="solid">
|
||||
<Bound id="id208" values="0.005044352263212204 -0.05961518362164497 0.007500000298023224 0.0494999997317791 0.02099999971687794 0.007500000298023224"></Bound>
|
||||
<Representation id="id209" format="JT" location="./2_Cylinder_Engine/Rocker_Mount_123_604_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id211" name="Rocker Mount Cap:123-608;0,Parts" type="solid">
|
||||
<Bound id="id214" values="0.005044352263212204 -0.05511518567800522 0.007500000298023224 0.0494999997317791 0.006499998271465302 0.007500000298023224"></Bound>
|
||||
<Representation id="id215" format="JT" location="./2_Cylinder_Engine/Rocker_Mount_Cap_123_608_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id217" name="Rocker Bolt:123-603;0,Parts" type="solid">
|
||||
<Bound id="id220" values="0.02305358275771141 0.2096639275550842 -0.04050000011920929 0.007499999366700649 0.007494449149817228 0.04050000011920929"></Bound>
|
||||
<Representation id="id221" format="JT" location="./2_Cylinder_Engine/Rocker_Bolt_123_603_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id226" name="Rocker_Mount_Sub:;0,Parts" instanceRefs="inst1952256 inst1952304 inst1952352 inst1952464" type="assembly">
|
||||
<UserData id="id237">
|
||||
<UserValue value="Rocker_Mount_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:27.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Rocker_Mount_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id254" name="Valve Spring:123-702;0,Parts" type="solid">
|
||||
<Bound id="id257" values="-0.2873985767364502 -0.0646171048283577 0.0324999988079071 0.008999995887279511 0.008993340656161308 0.0324999988079071"></Bound>
|
||||
<Representation id="id258" format="JT" location="./2_Cylinder_Engine/Valve_Spring_123_702_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id260" name="Valve_Sub:;0,Parts" instanceRefs="inst1952672 inst1952816 inst1952864" type="assembly">
|
||||
<UserData id="id266">
|
||||
<UserValue value="Valve_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="Valve_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue></UserData></Part>
|
||||
<Part id="id268" name="Valve:123-700;0,Parts" type="solid">
|
||||
<Bound id="id271" values="0.1265590041875839 0.2941140830516815 0 0.05499999970197678 0.01800000295042992 0.01798668131232262"></Bound>
|
||||
<Representation id="id272" format="JT" location="./2_Cylinder_Engine/Valve_123_700_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id274" name="Valve Spring Cap:123-704;0,Parts" type="solid">
|
||||
<Bound id="id277" values="0.2066644430160523 0.2842055261135101 0 0.004499997943639755 0.01600000448524952 0.01598815992474556"></Bound>
|
||||
<Representation id="id278" format="JT" location="./2_Cylinder_Engine/Valve_Spring_Cap_123_704_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id280" name="Spring:;0,Parts" instanceRefs="inst1952912 inst1952960 inst1953008 inst1953056 inst1953104 inst1953152 inst1953200 inst1953248 inst1953296 inst1953344" type="assembly">
|
||||
<UserData id="id286">
|
||||
<UserValue value="Spring" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="Spring:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue></UserData></Part>
|
||||
<Part id="id288" name="Spring Link:;0,Parts" type="solid">
|
||||
<Bound id="id291" values="0.1303011178970337 -0.04939981177449226 0.007499259896576405 0.001999998930841684 0.01499851979315281 0.007499259896576405"></Bound>
|
||||
<Representation id="id292" format="JT" location="./2_Cylinder_Engine/Spring_Link__0_Parts.jt"></Representation></Part>
|
||||
<Part id="id321" name="Valve_Sub:;0,Parts" instanceRefs="inst1953392 inst1954336 inst1954440" type="assembly">
|
||||
<UserData id="id333">
|
||||
<UserValue value="Valve_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:26.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="Valve_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id335" name="Spring:;0,Parts" instanceRefs="inst1953576 inst1953624 inst1953672 inst1953720 inst1953768 inst1953816 inst1953920 inst1954024 inst1954128 inst1954232" type="assembly">
|
||||
<UserData id="id346">
|
||||
<UserValue value="Spring:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:25.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Spring" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id384" name="Rocker Arm:123-600;0,Parts" type="solid">
|
||||
<Bound id="id387" values="-0.2874188423156738 -0.1816282123327255 0.04250000044703484 0.03894562274217606 0.01755017042160034 0.04250000044703484"></Bound>
|
||||
<Representation id="id388" format="JT" location="./2_Cylinder_Engine/Rocker_Arm_123_600_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id390" name="Rocker Arm_copy:123-602;0,Parts" type="solid">
|
||||
<Bound id="id393" values="-0.2914990782737732 -0.1816282123327255 0.04250000044703484 0.03894564881920815 0.01755017600953579 0.04250000044703484"></Bound>
|
||||
<Representation id="id394" format="JT" location="./2_Cylinder_Engine/Rocker_Arm_copy_123_602_0_Parts.jt"></Representation></Part></InstanceGraph></ProductDef></PLMXML>
|
161
data/tests/Jt/Engine/2_Cylinder_Engine2_Externals.plmxml
Normal file
161
data/tests/Jt/Engine/2_Cylinder_Engine2_Externals.plmxml
Normal file
|
@ -0,0 +1,161 @@
|
|||
<?xml version="1.0" ?>
|
||||
<PLMXML xmlns="http://www.plmxml.org/Schemas/PLMXMLSchema"
|
||||
schemaVersion="4" date="2005-01-13" time="18:04:04" author="Vis Mockup 5.1.0">
|
||||
<ProductDef id="id1">
|
||||
<UserData id="id12" type="__TCC-VIS_MONIKER_INFO">
|
||||
<UserValue value="C:\Program Files\UGS\JT2Go\Examples\2_Cylinder_Engine_Example\2_Cylinder_Engine.jt" title="Path"></UserValue>
|
||||
<UserValue value="file" title="FA_Protocol"></UserValue>
|
||||
<UserValue value="C:/Program Files/UGS/JT2Go/Examples/2_Cylinder_Engine_Example/2_Cylinder_Engine.jt" title="object_id"></UserValue>
|
||||
<UserValue value="C:\Program Files\UGS\JT2Go\Examples\2_Cylinder_Engine_Example\2_Cylinder_Engine.jt" title="LocalCopy"></UserValue>
|
||||
<UserValue value="2.0" title="Version"></UserValue>
|
||||
<UserValue value="local" title="FA_Service"></UserValue>
|
||||
<UserValue value="No" title="MkIsFolder"></UserValue>
|
||||
<UserValue value="2_Cylinder_Engine.jt" title="Title"></UserValue>
|
||||
<UserValue value="DirectModel.Document" title="FileTypeID"></UserValue></UserData>
|
||||
<InstanceGraph id="id2" rootRefs="inst1931328">
|
||||
<Instance id="inst1931328" name="2_Cylinder_Engine" partRef="#id14">
|
||||
<ApplicationRef application="TCC-VIS" label="2_Cylinder_Engine.asm;0;0:"></ApplicationRef>
|
||||
<UserData id="id18" type="Hidden_Metadata">
|
||||
<UserValue value="156001" title="TOOLKIT_CUSTOMER"></UserValue></UserData>
|
||||
<UserData id="id29">
|
||||
<UserValue value="2_Cylinder_Engine" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:30.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="2 Cylinder Engine" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-001" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Jan-10-2005 13:23:55.05" title="Version Mod. Date + Time"></UserValue></UserData>
|
||||
<Transform id="id15">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Instance>
|
||||
<Instance id="inst1590432" name="Head Stud:123-006;0,Parts" partRef="#id44">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Stud:123-006;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id45">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</Transform></Instance>
|
||||
<Instance id="inst1950112" name="Lifter:123-923;0,Parts" partRef="#id50">
|
||||
<ApplicationRef application="TCC-VIS" label="Lifter:123-923;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id51">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</Transform></Instance>
|
||||
<Instance id="inst1950928" name="Body Sub:123-002;0,Parts" partRef="#id56">
|
||||
<ApplicationRef application="TCC-VIS" label="Body Sub:123-002;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id57">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Instance>
|
||||
<Instance id="inst1950976" name="Case_r:123-200;0,Parts" partRef="#id71">
|
||||
<ApplicationRef application="TCC-VIS" label="Case_r:123-200;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id72">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Instance>
|
||||
<Instance id="inst1951024" name="Cylinder_1:123-100;0,Parts" partRef="#id77">
|
||||
<ApplicationRef application="TCC-VIS" label="Cylinder_1:123-100;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id78">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</Transform></Instance>
|
||||
<Instance id="inst1951072" name="Cylinder_2:123-101;0,Parts" partRef="#id83">
|
||||
<ApplicationRef application="TCC-VIS" label="Cylinder_2:123-101;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id84">-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</Transform></Instance>
|
||||
<Instance id="inst1951120" name="cylinder bolt pattern:;0,Parts" partRef="#id89">
|
||||
<ApplicationRef application="TCC-VIS" label="cylinder bolt pattern:;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id90">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</Transform></Instance>
|
||||
<Instance id="inst1951168" name="Head_1:123-150;0,Parts" partRef="#id95">
|
||||
<ApplicationRef application="TCC-VIS" label="Head_1:123-150;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id96">-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</Transform></Instance>
|
||||
<Instance id="inst1951264" name="Head2 Sub:;0,Parts" partRef="#id101">
|
||||
<ApplicationRef application="TCC-VIS" label="Head2 Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id102">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</Transform></Instance>
|
||||
<Instance id="inst1951216" name="Head_2:123-151;0,Parts" partRef="#id115">
|
||||
<ApplicationRef application="TCC-VIS" label="Head_2:123-151;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id116">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</Transform></Instance>
|
||||
<Instance id="inst1951360" name="Head Nut:123-005;0,Parts" partRef="#id121">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Nut:123-005;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id122">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</Transform></Instance>
|
||||
<Instance id="inst1954648" name="Valve Cover_copy:;0,Main" partRef="#id127">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Cover_copy:;0,Main.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id128">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</Transform></Instance>
|
||||
<Instance id="inst1954760" name="Head Nut:123-005;0,Parts" partRef="#id121">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Nut:123-005;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id133">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</Transform></Instance>
|
||||
<Instance id="inst1954920" name="Valve Cover:123-701;0,Parts" partRef="#id136">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Cover:123-701;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id137">-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</Transform></Instance>
|
||||
<Instance id="inst1955032" name="Head Stud:123-006;0,Parts" partRef="#id44">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Stud:123-006;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id142">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</Transform></Instance>
|
||||
<Instance id="inst1955144" name="Head Stud:123-006;0,Parts" partRef="#id44">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Stud:123-006;0,Parts.part;0;2:"></ApplicationRef>
|
||||
<Transform id="id145">-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</Transform></Instance>
|
||||
<Instance id="inst1955256" name="Head Stud:123-006;0,Parts" partRef="#id44">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Stud:123-006;0,Parts.part;0;3:"></ApplicationRef>
|
||||
<Transform id="id148">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</Transform></Instance>
|
||||
<Instance id="inst1955368" name="Lifter:123-923;0,Parts" partRef="#id50">
|
||||
<ApplicationRef application="TCC-VIS" label="Lifter:123-923;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id151">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</Transform></Instance>
|
||||
<Instance id="inst1955472" name="Lifter:123-923;0,Parts" partRef="#id50">
|
||||
<ApplicationRef application="TCC-VIS" label="Lifter:123-923;0,Parts.part;0;2:"></ApplicationRef>
|
||||
<Transform id="id154">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</Transform></Instance>
|
||||
<Instance id="inst1955576" name="Lifter:123-923;0,Parts" partRef="#id50">
|
||||
<ApplicationRef application="TCC-VIS" label="Lifter:123-923;0,Parts.part;0;3:"></ApplicationRef>
|
||||
<Transform id="id157">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</Transform></Instance>
|
||||
<Part id="id14" name="2_Cylinder_Engine" instanceRefs="inst1590432 inst1950112 inst1950928 inst1955256 inst1955368 inst1955472 inst1955576" type="assembly">
|
||||
<UserData id="id31" type="Hidden_Metadata">
|
||||
<UserValue value="156001" title="TOOLKIT_CUSTOMER"></UserValue></UserData>
|
||||
<UserData id="id42">
|
||||
<UserValue value="2_Cylinder_Engine" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:30.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="2 Cylinder Engine" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-001" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Jan-10-2005 13:23:55.05" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id44" name="Head Stud:123-006;0,Parts" type="solid">
|
||||
<Bound id="id47" values="-0.03247146308422089 0.07456196844577789 -0.1150000020861626 0.006500001531094313 0.006495191715657711 0.1150000020861626"></Bound>
|
||||
<Representation id="id48" format="JT" location="./2_Cylinder_Engine/Head_Stud_123_006_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id50" name="Lifter:123-923;0,Parts" type="solid">
|
||||
<Bound id="id53" values="-0.02437210455536842 -0.03384878858923912 -0.04250000044703484 0.00774999987334013 0.007749963086098433 0.04250000044703484"></Bound>
|
||||
<Representation id="id54" format="JT" location="./2_Cylinder_Engine/Lifter_123_923_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id56" name="Body Sub:123-002;0,Parts" instanceRefs="inst1950976 inst1951024 inst1951072 inst1951120 inst1951168 inst1951264 inst1954920 inst1955032 inst1955144" type="assembly">
|
||||
<UserData id="id69">
|
||||
<UserValue value="Body Sub:123-002;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:29.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Body Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-002" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Aug-14-2001 14:10:00.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id71" name="Case_r:123-200;0,Parts" type="solid">
|
||||
<Bound id="id74" values="0 -0.04548577964305878 -0.003500004298985004 0.0949999988079071 0.1354857832193375 0.1164999976754189"></Bound>
|
||||
<Representation id="id75" format="JT" location="./2_Cylinder_Engine/Case_r_123_200_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id77" name="Cylinder_1:123-100;0,Parts" type="solid">
|
||||
<Bound id="id80" values="0.01856433786451817 0.05655883997678757 2.846240931830835e-007 0.08050000667572022 0.0950000062584877 0.08000028133392334"></Bound>
|
||||
<Representation id="id81" format="JT" location="./2_Cylinder_Engine/Cylinder_1_123_100_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id83" name="Cylinder_2:123-101;0,Parts" type="solid">
|
||||
<Bound id="id86" values="0.01856433786451817 0.05655883997678757 2.846240931830835e-007 0.08050000667572022 0.0950000062584877 0.08000028133392334"></Bound>
|
||||
<Representation id="id87" format="JT" location="./2_Cylinder_Engine/Cylinder_2_123_101_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id89" name="cylinder bolt pattern:;0,Parts" type="solid">
|
||||
<Bound id="id92" values="-0.1074714586138725 0.0745619609951973 -0.1150000020861626 0.08149999380111694 0.08149999380111694 0.1150000020861626"></Bound>
|
||||
<Representation id="id93" format="JT" location="./2_Cylinder_Engine/cylinder_bolt_pattern__0_Parts.jt"></Representation></Part>
|
||||
<Part id="id95" name="Head_1:123-150;0,Parts" type="solid">
|
||||
<Bound id="id98" values="0.005008736159652472 -0.03048798069357872 0.04119380190968514 0.1079999953508377 0.09020166844129562 0.0411965511739254"></Bound>
|
||||
<Representation id="id99" format="JT" location="./2_Cylinder_Engine/Head_1_123_150_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id101" name="Head2 Sub:;0,Parts" instanceRefs="inst1951216 inst1951360 inst1954648 inst1954760" type="assembly">
|
||||
<UserData id="id113">
|
||||
<UserValue value="Head2 Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:27.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Head2 Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id115" name="Head_2:123-151;0,Parts" type="solid">
|
||||
<Bound id="id118" values="0.005008736159652472 -0.03048798069357872 -0.04119383916258812 0.1079999953508377 0.09020166844129562 0.04119651019573212"></Bound>
|
||||
<Representation id="id119" format="JT" location="./2_Cylinder_Engine/Head_2_123_151_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id121" name="Head Nut:123-005;0,Parts" type="solid">
|
||||
<Bound id="id124" values="0.02565165981650353 0.2141639441251755 -0.008499999530613422 0.01200000010430813 0.01199112832546234 0.008499999530613422"></Bound>
|
||||
<Representation id="id125" format="JT" location="./2_Cylinder_Engine/Head_Nut_123_005_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id127" name="Valve Cover_copy:;0,Main" type="solid">
|
||||
<Bound id="id130" values="0.003508739871904254 -0.03198798000812531 0.0386538989841938 0.101500004529953 0.09204161167144775 0.03634610027074814"></Bound>
|
||||
<Representation id="id131" format="JT" location="./2_Cylinder_Engine/Valve_Cover_copy__0_Main.jt"></Representation></Part>
|
||||
<Part id="id136" name="Valve Cover:123-701;0,Parts" type="solid">
|
||||
<Bound id="id139" values="0.003508739871904254 -0.03198803216218948 0.1113460958003998 0.101500004529953 0.09204155951738358 0.03634609654545784"></Bound>
|
||||
<Representation id="id140" format="JT" location="./2_Cylinder_Engine/Valve_Cover_123_701_0_Parts.jt"></Representation></Part></InstanceGraph></ProductDef></PLMXML>
|
511
data/tests/Jt/Engine/2_Cylinder_Engine3.plmxml
Normal file
511
data/tests/Jt/Engine/2_Cylinder_Engine3.plmxml
Normal file
|
@ -0,0 +1,511 @@
|
|||
<?xml version="1.0" ?>
|
||||
<PLMXML xmlns="http://www.plmxml.org/Schemas/PLMXMLSchema"
|
||||
schemaVersion="4" date="2005-02-14" time="21:15:28" author="Vis Mockup 5.1.0">
|
||||
<ProductDef id="id1">
|
||||
<UserData id="id12" type="__TCC-VIS_MONIKER_INFO">
|
||||
<UserValue value="C:\Program Files\UGS\JT2Go\Examples\2_Cylinder_Engine_Example\2_Cylinder_Engine.jt" title="Path"></UserValue>
|
||||
<UserValue value="file" title="FA_Protocol"></UserValue>
|
||||
<UserValue value="C:/Program Files/UGS/JT2Go/Examples/2_Cylinder_Engine_Example/2_Cylinder_Engine.jt" title="object_id"></UserValue>
|
||||
<UserValue value="C:\Program Files\UGS\JT2Go\Examples\2_Cylinder_Engine_Example\2_Cylinder_Engine.jt" title="LocalCopy"></UserValue>
|
||||
<UserValue value="2.0" title="Version"></UserValue>
|
||||
<UserValue value="local" title="FA_Service"></UserValue>
|
||||
<UserValue value="No" title="MkIsFolder"></UserValue>
|
||||
<UserValue value="2_Cylinder_Engine.jt" title="Title"></UserValue>
|
||||
<UserValue value="DirectModel.Document" title="FileTypeID"></UserValue></UserData>
|
||||
<InstanceGraph id="id2" rootRefs="inst1798736">
|
||||
<Instance id="inst1798736" name="2_Cylinder_Engine" partRef="#id14">
|
||||
<ApplicationRef application="TCC-VIS" label="2_Cylinder_Engine.asm;0;0:"></ApplicationRef>
|
||||
<UserData id="id20" type="Hidden_Metadata">
|
||||
<UserValue value="156001" title="TOOLKIT_CUSTOMER"></UserValue></UserData>
|
||||
<UserData id="id31">
|
||||
<UserValue value="2_Cylinder_Engine" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:30.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="2 Cylinder Engine" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-001" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Jan-10-2005 13:23:55.05" title="Version Mod. Date + Time"></UserValue></UserData>
|
||||
<Transform id="id15">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Instance>
|
||||
<Instance id="inst1779056" name="Head Stud:123-006;0,Parts" partRef="#id46">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Stud:123-006;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id47">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</Transform></Instance>
|
||||
<Instance id="inst1913768" name="Lifter:123-923;0,Parts" partRef="#id52">
|
||||
<ApplicationRef application="TCC-VIS" label="Lifter:123-923;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id53">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</Transform></Instance>
|
||||
<Instance id="inst1910440" name="rod:123-699;0,Parts" partRef="#id58">
|
||||
<ApplicationRef application="TCC-VIS" label="rod:123-699;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id59">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</Transform></Instance>
|
||||
<Instance id="inst1937376" name="Piston Sub:;0,Parts" partRef="#id64">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id65">-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</Transform></Instance>
|
||||
<Instance id="inst1912768" name="Piston:123-844;0,Parts" partRef="#id74">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston:123-844;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id75">-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</Transform></Instance>
|
||||
<Instance id="inst1865720" name="Piston pin:123-845;0,Parts" partRef="#id83">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston pin:123-845;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id84">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</Transform></Instance>
|
||||
<Instance id="inst1895856" name="Piston Sub:;0,Parts" partRef="#id89">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston Sub:;0,Parts.asm;0;1:"></ApplicationRef>
|
||||
<Transform id="id90">1 0 0 0 0 1 0 0 0 0 1 0 0.1368601024150848 -0.06445372104644775 -0.03617963194847107 1</Transform></Instance>
|
||||
<Instance id="inst1671584" name="Piston:123-844;0,Parts" partRef="#id74">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston:123-844;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id102">-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</Transform></Instance>
|
||||
<Instance id="inst2012776" name="Piston pin:123-845;0,Parts" partRef="#id83">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston pin:123-845;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id105">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</Transform></Instance>
|
||||
<Instance id="inst2026000" name="CamShaft Sub:123-990;0,Parts" partRef="#id108">
|
||||
<ApplicationRef application="TCC-VIS" label="CamShaft Sub:123-990;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id109">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</Transform></Instance>
|
||||
<Instance id="inst2054176" name="Cam_shaft:123-457;0,Parts" partRef="#id123">
|
||||
<ApplicationRef application="TCC-VIS" label="Cam_shaft:123-457;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id124">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</Transform></Instance>
|
||||
<Instance id="inst1938944" name="cam_gear:123-456;0,Parts" partRef="#id129">
|
||||
<ApplicationRef application="TCC-VIS" label="cam_gear:123-456;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id130">-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</Transform></Instance>
|
||||
<Instance id="inst1848008" name="Crank_Sub:123-555;0,Parts" partRef="#id135">
|
||||
<ApplicationRef application="TCC-VIS" label="Crank_Sub:123-555;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id136">-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</Transform></Instance>
|
||||
<Instance id="inst1838360" name="crank:123-782;0,Parts" partRef="#id150">
|
||||
<ApplicationRef application="TCC-VIS" label="crank:123-782;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id151">-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</Transform></Instance>
|
||||
<Instance id="inst1857888" name="crank_gear:123-783;0,Parts" partRef="#id156">
|
||||
<ApplicationRef application="TCC-VIS" label="crank_gear:123-783;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id157">-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</Transform></Instance>
|
||||
<Instance id="inst2010456" name="Body Sub:123-002;0,Parts" partRef="#id162">
|
||||
<ApplicationRef application="TCC-VIS" label="Body Sub:123-002;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id163">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Instance>
|
||||
<Instance id="inst2026392" name="Case_r:123-200;0,Parts" partRef="#id179">
|
||||
<ApplicationRef application="TCC-VIS" label="Case_r:123-200;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id180">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Instance>
|
||||
<Instance id="inst2026184" name="Cylinder_1:123-100;0,Parts" partRef="#id187">
|
||||
<ApplicationRef application="TCC-VIS" label="Cylinder_1:123-100;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id188">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</Transform></Instance>
|
||||
<Instance id="inst1996904" name="Cylinder_2:123-101;0,Parts" partRef="#id196">
|
||||
<ApplicationRef application="TCC-VIS" label="Cylinder_2:123-101;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id197">-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</Transform></Instance>
|
||||
<Instance id="inst1858736" name="cylinder bolt pattern:;0,Parts" partRef="#id203">
|
||||
<ApplicationRef application="TCC-VIS" label="cylinder bolt pattern:;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id204">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</Transform></Instance>
|
||||
<Instance id="inst1726008" name="Head_1:123-150;0,Parts" partRef="#id209">
|
||||
<ApplicationRef application="TCC-VIS" label="Head_1:123-150;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id210">-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</Transform></Instance>
|
||||
<Instance id="inst1729056" name="Head2 Sub:;0,Parts" partRef="#id218">
|
||||
<ApplicationRef application="TCC-VIS" label="Head2 Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id219">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</Transform></Instance>
|
||||
<Instance id="inst1727816" name="Head_2:123-151;0,Parts" partRef="#id232">
|
||||
<ApplicationRef application="TCC-VIS" label="Head_2:123-151;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id233">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</Transform></Instance>
|
||||
<Instance id="inst2027256" name="Spark Plug:;0,Parts" partRef="#id239">
|
||||
<ApplicationRef application="TCC-VIS" label="Spark Plug:;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id240">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</Transform></Instance>
|
||||
<Instance id="inst1842808" name="Head Nut:123-005;0,Parts" partRef="#id245">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Nut:123-005;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id246">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</Transform></Instance>
|
||||
<Instance id="inst1906944" name="Rocker_Sub:;0,Parts" partRef="#id251">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker_Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id252">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</Transform></Instance>
|
||||
<Instance id="inst2033120" name="Rocker Arm Shaft:123-601;0,Parts" partRef="#id264">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Arm Shaft:123-601;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id265">-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</Transform></Instance>
|
||||
<Instance id="inst1789832" name="Rocker_Mount_Sub:;0,Parts" partRef="#id270">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker_Mount_Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id271">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</Transform></Instance>
|
||||
<Instance id="inst1796000" name="Rocker Mount:123-604;0,Parts" partRef="#id278">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Mount:123-604;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id279">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</Transform></Instance>
|
||||
<Instance id="inst2030512" name="Rocker Mount Cap:123-608;0,Parts" partRef="#id284">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Mount Cap:123-608;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id285">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</Transform></Instance>
|
||||
<Instance id="inst1725832" name="Rocker Bolt:123-603;0,Parts" partRef="#id290">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Bolt:123-603;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id291">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</Transform></Instance>
|
||||
<Instance id="inst2029080" name="Rocker Bolt:123-603;0,Parts" partRef="#id290">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Bolt:123-603;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id296">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</Transform></Instance>
|
||||
<Instance id="inst2033672" name="Rocker_Mount_Sub:;0,Parts" partRef="#id299">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker_Mount_Sub:;0,Parts.asm;0;1:"></ApplicationRef>
|
||||
<Transform id="id300">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</Transform></Instance>
|
||||
<Instance id="inst1996808" name="Rocker Mount:123-604;0,Parts" partRef="#id278">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Mount:123-604;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id312">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</Transform></Instance>
|
||||
<Instance id="inst1867136" name="Rocker Mount Cap:123-608;0,Parts" partRef="#id284">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Mount Cap:123-608;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id315">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</Transform></Instance>
|
||||
<Instance id="inst1948848" name="Rocker Bolt:123-603;0,Parts" partRef="#id290">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Bolt:123-603;0,Parts.part;0;2:"></ApplicationRef>
|
||||
<Transform id="id318">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</Transform></Instance>
|
||||
<Instance id="inst1997256" name="Rocker Bolt:123-603;0,Parts" partRef="#id290">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Bolt:123-603;0,Parts.part;0;3:"></ApplicationRef>
|
||||
<Transform id="id321">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</Transform></Instance>
|
||||
<Instance id="inst1949072" name="Rocker Arm Shaft:123-601;0,Parts" partRef="#id264">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Arm Shaft:123-601;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id324">-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</Transform></Instance>
|
||||
<Instance id="inst2052896" name="Valve Spring:123-702;0,Parts" partRef="#id327">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Spring:123-702;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id328">-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</Transform></Instance>
|
||||
<Instance id="inst1725624" name="Valve_Sub:;0,Parts" partRef="#id333">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve_Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id334">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</Transform></Instance>
|
||||
<Instance id="inst1914472" name="Valve:123-700;0,Parts" partRef="#id341">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve:123-700;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id342">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</Transform></Instance>
|
||||
<Instance id="inst1734000" name="Valve Spring Cap:123-704;0,Parts" partRef="#id347">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Spring Cap:123-704;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id348">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</Transform></Instance>
|
||||
<Instance id="inst1730152" name="Spring:;0,Parts" partRef="#id353">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id354">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</Transform></Instance>
|
||||
<Instance id="inst1910040" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id362">-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</Transform></Instance>
|
||||
<Instance id="inst1910640" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id367">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</Transform></Instance>
|
||||
<Instance id="inst1911040" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;2:"></ApplicationRef>
|
||||
<Transform id="id370">-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</Transform></Instance>
|
||||
<Instance id="inst1911768" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;3:"></ApplicationRef>
|
||||
<Transform id="id373">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</Transform></Instance>
|
||||
<Instance id="inst1912168" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;4:"></ApplicationRef>
|
||||
<Transform id="id376">-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</Transform></Instance>
|
||||
<Instance id="inst1912968" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;5:"></ApplicationRef>
|
||||
<Transform id="id379">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</Transform></Instance>
|
||||
<Instance id="inst1920696" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;6:"></ApplicationRef>
|
||||
<Transform id="id382">-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</Transform></Instance>
|
||||
<Instance id="inst1827264" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;7:"></ApplicationRef>
|
||||
<Transform id="id385">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</Transform></Instance>
|
||||
<Instance id="inst1920976" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;8:"></ApplicationRef>
|
||||
<Transform id="id388">-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</Transform></Instance>
|
||||
<Instance id="inst1994408" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;9:"></ApplicationRef>
|
||||
<Transform id="id391">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</Transform></Instance>
|
||||
<Instance id="inst1994616" name="Valve_Sub:;0,Parts" partRef="#id394">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve_Sub:;0,Parts.asm;0;1:"></ApplicationRef>
|
||||
<Transform id="id395">-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</Transform></Instance>
|
||||
<Instance id="inst1995632" name="Spring:;0,Parts" partRef="#id408">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring:;0,Parts.asm;0;1:"></ApplicationRef>
|
||||
<Transform id="id409">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</Transform></Instance>
|
||||
<Instance id="inst1722840" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;10:"></ApplicationRef>
|
||||
<Transform id="id421">-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</Transform></Instance>
|
||||
<Instance id="inst1723976" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;11:"></ApplicationRef>
|
||||
<Transform id="id424">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</Transform></Instance>
|
||||
<Instance id="inst1725736" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;12:"></ApplicationRef>
|
||||
<Transform id="id427">-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</Transform></Instance>
|
||||
<Instance id="inst1995424" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;13:"></ApplicationRef>
|
||||
<Transform id="id430">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</Transform></Instance>
|
||||
<Instance id="inst1726232" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;14:"></ApplicationRef>
|
||||
<Transform id="id433">-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</Transform></Instance>
|
||||
<Instance id="inst1727160" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;15:"></ApplicationRef>
|
||||
<Transform id="id436">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</Transform></Instance>
|
||||
<Instance id="inst1722360" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;16:"></ApplicationRef>
|
||||
<Transform id="id439">-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</Transform></Instance>
|
||||
<Instance id="inst1995528" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;17:"></ApplicationRef>
|
||||
<Transform id="id442">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</Transform></Instance>
|
||||
<Instance id="inst1995008" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;18:"></ApplicationRef>
|
||||
<Transform id="id445">-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</Transform></Instance>
|
||||
<Instance id="inst2053416" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;19:"></ApplicationRef>
|
||||
<Transform id="id448">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</Transform></Instance>
|
||||
<Instance id="inst2053208" name="Valve:123-700;0,Parts" partRef="#id341">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve:123-700;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id451">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</Transform></Instance>
|
||||
<Instance id="inst1862560" name="Valve Spring Cap:123-704;0,Parts" partRef="#id347">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Spring Cap:123-704;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id454">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</Transform></Instance>
|
||||
<Instance id="inst1719832" name="Rocker Arm:123-600;0,Parts" partRef="#id457">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Arm:123-600;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id458">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</Transform></Instance>
|
||||
<Instance id="inst1729824" name="Rocker Arm_copy:123-602;0,Parts" partRef="#id463">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Arm_copy:123-602;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id464">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</Transform></Instance>
|
||||
<Instance id="inst1726936" name="Valve Cover_copy:;0,Main" partRef="#id469">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Cover_copy:;0,Main.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id470">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</Transform></Instance>
|
||||
<Instance id="inst1722616" name="Head Nut:123-005;0,Parts" partRef="#id245">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Nut:123-005;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id475">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</Transform></Instance>
|
||||
<Instance id="inst1760240" name="Valve Spring:123-702;0,Parts" partRef="#id327">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Spring:123-702;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id478">-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</Transform></Instance>
|
||||
<Instance id="inst1724160" name="Valve Cover:123-701;0,Parts" partRef="#id481">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Cover:123-701;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id482">-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</Transform></Instance>
|
||||
<Instance id="inst1723752" name="Head Stud:123-006;0,Parts" partRef="#id46">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Stud:123-006;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id489">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</Transform></Instance>
|
||||
<Instance id="inst1725216" name="Head Stud:123-006;0,Parts" partRef="#id46">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Stud:123-006;0,Parts.part;0;2:"></ApplicationRef>
|
||||
<Transform id="id492">-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</Transform></Instance>
|
||||
<Instance id="inst1758176" name="Head Stud:123-006;0,Parts" partRef="#id46">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Stud:123-006;0,Parts.part;0;3:"></ApplicationRef>
|
||||
<Transform id="id495">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</Transform></Instance>
|
||||
<Instance id="inst1919952" name="Lifter:123-923;0,Parts" partRef="#id52">
|
||||
<ApplicationRef application="TCC-VIS" label="Lifter:123-923;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id498">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</Transform></Instance>
|
||||
<Instance id="inst2053728" name="Lifter:123-923;0,Parts" partRef="#id52">
|
||||
<ApplicationRef application="TCC-VIS" label="Lifter:123-923;0,Parts.part;0;2:"></ApplicationRef>
|
||||
<Transform id="id501">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</Transform></Instance>
|
||||
<Instance id="inst2050288" name="Lifter:123-923;0,Parts" partRef="#id52">
|
||||
<ApplicationRef application="TCC-VIS" label="Lifter:123-923;0,Parts.part;0;3:"></ApplicationRef>
|
||||
<Transform id="id504">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</Transform></Instance>
|
||||
<Instance id="inst1998064" name="rod:123-699;0,Parts" partRef="#id58">
|
||||
<ApplicationRef application="TCC-VIS" label="rod:123-699;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id507">-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</Transform></Instance>
|
||||
<Part id="id14" name="2_Cylinder_Engine" instanceRefs="inst1779056 inst1913768 inst1910440 inst1937376 inst1895856 inst2026000 inst1848008 inst2010456 inst1758176 inst1919952 inst2053728 inst2050288 inst1998064" type="assembly">
|
||||
<UserData id="id33" type="Hidden_Metadata">
|
||||
<UserValue value="156001" title="TOOLKIT_CUSTOMER"></UserValue></UserData>
|
||||
<UserData id="id44">
|
||||
<UserValue value="2_Cylinder_Engine" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:30.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="2 Cylinder Engine" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-001" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Jan-10-2005 13:23:55.05" title="Version Mod. Date + Time"></UserValue></UserData>
|
||||
<Occurrence id="id16" instanceRefs="#inst1798736">
|
||||
<Transform id="id17">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Occurrence></Part>
|
||||
<Part id="id46" name="Head Stud:123-006;0,Parts" type="solid">
|
||||
<Bound id="id49" values="-0.03247146308422089 0.07456196844577789 -0.1150000020861626 0.006500001531094313 0.006495191715657711 0.1150000020861626"></Bound>
|
||||
<Representation id="id50" format="JT" location="./2_Cylinder_Engine/Head_Stud_123_006_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id52" name="Lifter:123-923;0,Parts" type="solid">
|
||||
<Bound id="id55" values="-0.02437210455536842 -0.03384878858923912 -0.04250000044703484 0.00774999987334013 0.007749963086098433 0.04250000044703484"></Bound>
|
||||
<Representation id="id56" format="JT" location="./2_Cylinder_Engine/Lifter_123_923_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id58" name="rod:123-699;0,Parts" type="solid">
|
||||
<Bound id="id61" values="0.02005359902977943 -0.006323420908302069 0 0.09100000560283661 0.03700000047683716 0.009999999776482582"></Bound>
|
||||
<Representation id="id62" format="JT" location="./2_Cylinder_Engine/rod_123_699_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id64" name="Piston Sub:;0,Parts" instanceRefs="inst1912768 inst1865720" type="assembly">
|
||||
<UserData id="id72">
|
||||
<UserValue value="Piston Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="Piston Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue></UserData>
|
||||
<Occurrence id="id66" instanceRefs="#inst1798736 #inst1937376">
|
||||
<Transform id="id67">-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</Transform></Occurrence></Part>
|
||||
<Part id="id74" name="Piston:123-844;0,Parts" type="solid">
|
||||
<Bound id="id80" values="0.0101108755916357 0.009526152163743973 0 0.05324159190058708 0.04650000110268593 0.04649999737739563"></Bound>
|
||||
<Occurrence id="id76" materialRef="id77" instanceRefs="#inst1798736 #inst1937376 #inst1912768">
|
||||
<Transform id="id78">-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</Transform></Occurrence>
|
||||
<Representation id="id81" format="JT" location="./2_Cylinder_Engine/Piston_123_844_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id83" name="Piston pin:123-845;0,Parts" type="solid">
|
||||
<Bound id="id86" values="-0.2534925639629364 0.09658930450677872 0.04250000044703484 0.01099999435245991 0.01099186204373837 0.04250000044703484"></Bound>
|
||||
<Representation id="id87" format="JT" location="./2_Cylinder_Engine/Piston_pin_123_845_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id89" name="Piston Sub:;0,Parts" instanceRefs="inst1671584 inst2012776" type="assembly">
|
||||
<UserData id="id100">
|
||||
<UserValue value="Piston Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:24.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Piston Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id108" name="CamShaft Sub:123-990;0,Parts" instanceRefs="inst2054176 inst1938944" type="assembly">
|
||||
<UserData id="id121">
|
||||
<UserValue value="CamShaft Sub:123-990;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:25.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="CamShaft Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-990" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Aug-14-2001 14:11:35.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id123" name="Cam_shaft:123-457;0,Parts" type="solid">
|
||||
<Bound id="id126" values="0.05063954740762711 -0.03493684902787209 -4.356868157628924e-005 0.1267500072717667 0.02063110843300819 0.01902950927615166"></Bound>
|
||||
<Representation id="id127" format="JT" location="./2_Cylinder_Engine/Cam_shaft_123_457_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id129" name="cam_gear:123-456;0,Parts" type="solid">
|
||||
<Bound id="id132" values="0 -0.1000000014901161 -0.002500000409781933 0.06898061186075211 0.06888007372617722 0.01250000018626452"></Bound>
|
||||
<Representation id="id133" format="JT" location="./2_Cylinder_Engine/cam_gear_123_456_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id135" name="Crank_Sub:123-555;0,Parts" instanceRefs="inst1838360 inst1857888" type="assembly">
|
||||
<UserData id="id148">
|
||||
<UserValue value="Crank_Sub:123-555;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Aug-14-2001 14:13:01.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="Crank_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-555" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Aug-14-2001 14:13:01.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id150" name="crank:123-782;0,Parts" type="solid">
|
||||
<Bound id="id153" values="4.847693617193727e-006 0 -0.01325000263750553 0.06299515068531036 0.03500000014901161 0.1267500072717667"></Bound>
|
||||
<Representation id="id154" format="JT" location="./2_Cylinder_Engine/crank_123_782_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id156" name="crank_gear:123-783;0,Parts" type="solid">
|
||||
<Bound id="id159" values="0 -0.0001077877532225102 -0.002500000409781933 0.03597993031144142 0.03586557507514954 0.01250000018626452"></Bound>
|
||||
<Representation id="id160" format="JT" location="./2_Cylinder_Engine/crank_gear_123_783_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id162" name="Body Sub:123-002;0,Parts" instanceRefs="inst2026392 inst2026184 inst1996904 inst1858736 inst1726008 inst1729056 inst1724160 inst1723752 inst1725216" type="assembly">
|
||||
<UserData id="id177">
|
||||
<UserValue value="Body Sub:123-002;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:29.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Body Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-002" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Aug-14-2001 14:10:00.00" title="Version Mod. Date + Time"></UserValue></UserData>
|
||||
<Occurrence id="id164" instanceRefs="#inst1798736 #inst2010456">
|
||||
<Transform id="id165">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Occurrence></Part>
|
||||
<Part id="id179" name="Case_r:123-200;0,Parts" type="solid">
|
||||
<Bound id="id184" values="0 -0.04548577964305878 -0.003500004298985004 0.0949999988079071 0.1354857832193375 0.1164999976754189"></Bound>
|
||||
<Occurrence id="id181" materialRef="id182" instanceRefs="#inst1798736 #inst2010456 #inst2026392"></Occurrence>
|
||||
<Representation id="id185" format="JT" location="./2_Cylinder_Engine/Case_r_123_200_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id187" name="Cylinder_1:123-100;0,Parts" type="solid">
|
||||
<Bound id="id193" values="0.01856433786451817 0.05655883997678757 2.846240931830835e-007 0.08050000667572022 0.0950000062584877 0.08000028133392334"></Bound>
|
||||
<Occurrence id="id189" materialRef="id190" instanceRefs="#inst1798736 #inst2010456 #inst2026184">
|
||||
<Transform id="id191">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</Transform></Occurrence>
|
||||
<Representation id="id194" format="JT" location="./2_Cylinder_Engine/Cylinder_1_123_100_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id196" name="Cylinder_2:123-101;0,Parts" type="solid">
|
||||
<Bound id="id200" values="0.01856433786451817 0.05655883997678757 2.846240931830835e-007 0.08050000667572022 0.0950000062584877 0.08000028133392334"></Bound>
|
||||
<Occurrence id="id198" materialRef="id190" instanceRefs="#inst1798736 #inst2010456 #inst1996904"></Occurrence>
|
||||
<Representation id="id201" format="JT" location="./2_Cylinder_Engine/Cylinder_2_123_101_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id203" name="cylinder bolt pattern:;0,Parts" type="solid">
|
||||
<Bound id="id206" values="-0.1074714586138725 0.0745619609951973 -0.1150000020861626 0.08149999380111694 0.08149999380111694 0.1150000020861626"></Bound>
|
||||
<Representation id="id207" format="JT" location="./2_Cylinder_Engine/cylinder_bolt_pattern__0_Parts.jt"></Representation></Part>
|
||||
<Part id="id209" name="Head_1:123-150;0,Parts" type="solid">
|
||||
<Bound id="id215" values="0.005008736159652472 -0.03048798069357872 0.04119380190968514 0.1079999953508377 0.09020166844129562 0.0411965511739254"></Bound>
|
||||
<Occurrence id="id211" materialRef="id212" instanceRefs="#inst1798736 #inst2010456 #inst1726008">
|
||||
<Transform id="id213">-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</Transform></Occurrence>
|
||||
<Representation id="id216" format="JT" location="./2_Cylinder_Engine/Head_1_123_150_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id218" name="Head2 Sub:;0,Parts" instanceRefs="inst1727816 inst2027256 inst1842808 inst1906944 inst2052896 inst1725624 inst1994616 inst1719832 inst1729824 inst1726936 inst1722616 inst1760240" type="assembly">
|
||||
<UserData id="id230">
|
||||
<UserValue value="Head2 Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:27.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Head2 Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id232" name="Head_2:123-151;0,Parts" type="solid">
|
||||
<Bound id="id236" values="0.005008736159652472 -0.03048798069357872 -0.04119383916258812 0.1079999953508377 0.09020166844129562 0.04119651019573212"></Bound>
|
||||
<Occurrence id="id234" materialRef="id212" instanceRefs="#inst1798736 #inst2010456 #inst1729056 #inst1727816"></Occurrence>
|
||||
<Representation id="id237" format="JT" location="./2_Cylinder_Engine/Head_2_123_151_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id239" name="Spark Plug:;0,Parts" type="solid">
|
||||
<Bound id="id242" values="0.03006996028125286 0.2239631712436676 0.02060705050826073 0.01078151073306799 0.009165501222014427 0.0493929535150528"></Bound>
|
||||
<Representation id="id243" format="JT" location="./2_Cylinder_Engine/Spark_Plug__0_Parts.jt"></Representation></Part>
|
||||
<Part id="id245" name="Head Nut:123-005;0,Parts" type="solid">
|
||||
<Bound id="id248" values="0.02565165981650353 0.2141639441251755 -0.008499999530613422 0.01200000010430813 0.01199112832546234 0.008499999530613422"></Bound>
|
||||
<Representation id="id249" format="JT" location="./2_Cylinder_Engine/Head_Nut_123_005_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id251" name="Rocker_Sub:;0,Parts" instanceRefs="inst2033120 inst1789832 inst2033672 inst1949072" type="assembly">
|
||||
<UserData id="id262">
|
||||
<UserValue value="Rocker_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:27.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Rocker_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id264" name="Rocker Arm Shaft:123-601;0,Parts" type="solid">
|
||||
<Bound id="id267" values="-0.04317900538444519 0.4631594121456146 0.05750000104308128 0.006500000134110451 0.006495170295238495 0.05750000104308128"></Bound>
|
||||
<Representation id="id268" format="JT" location="./2_Cylinder_Engine/Rocker_Arm_Shaft_123_601_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id270" name="Rocker_Mount_Sub:;0,Parts" instanceRefs="inst1796000 inst2030512 inst1725832 inst2029080" type="assembly">
|
||||
<UserData id="id276">
|
||||
<UserValue value="Rocker_Mount_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="Rocker_Mount_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue></UserData></Part>
|
||||
<Part id="id278" name="Rocker Mount:123-604;0,Parts" type="solid">
|
||||
<Bound id="id281" values="0.005044352263212204 -0.05961518362164497 0.007500000298023224 0.0494999997317791 0.02099999971687794 0.007500000298023224"></Bound>
|
||||
<Representation id="id282" format="JT" location="./2_Cylinder_Engine/Rocker_Mount_123_604_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id284" name="Rocker Mount Cap:123-608;0,Parts" type="solid">
|
||||
<Bound id="id287" values="0.005044352263212204 -0.05511518567800522 0.007500000298023224 0.0494999997317791 0.006499998271465302 0.007500000298023224"></Bound>
|
||||
<Representation id="id288" format="JT" location="./2_Cylinder_Engine/Rocker_Mount_Cap_123_608_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id290" name="Rocker Bolt:123-603;0,Parts" type="solid">
|
||||
<Bound id="id293" values="0.02305358275771141 0.2096639275550842 -0.04050000011920929 0.007499999366700649 0.007494449149817228 0.04050000011920929"></Bound>
|
||||
<Representation id="id294" format="JT" location="./2_Cylinder_Engine/Rocker_Bolt_123_603_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id299" name="Rocker_Mount_Sub:;0,Parts" instanceRefs="inst1996808 inst1867136 inst1948848 inst1997256" type="assembly">
|
||||
<UserData id="id310">
|
||||
<UserValue value="Rocker_Mount_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:27.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Rocker_Mount_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id327" name="Valve Spring:123-702;0,Parts" type="solid">
|
||||
<Bound id="id330" values="-0.2873985767364502 -0.0646171048283577 0.0324999988079071 0.008999995887279511 0.008993340656161308 0.0324999988079071"></Bound>
|
||||
<Representation id="id331" format="JT" location="./2_Cylinder_Engine/Valve_Spring_123_702_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id333" name="Valve_Sub:;0,Parts" instanceRefs="inst1914472 inst1734000 inst1730152" type="assembly">
|
||||
<UserData id="id339">
|
||||
<UserValue value="Valve_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="Valve_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue></UserData></Part>
|
||||
<Part id="id341" name="Valve:123-700;0,Parts" type="solid">
|
||||
<Bound id="id344" values="0.1265590041875839 0.2941140830516815 0 0.05499999970197678 0.01800000295042992 0.01798668131232262"></Bound>
|
||||
<Representation id="id345" format="JT" location="./2_Cylinder_Engine/Valve_123_700_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id347" name="Valve Spring Cap:123-704;0,Parts" type="solid">
|
||||
<Bound id="id350" values="0.2066644430160523 0.2842055261135101 0 0.004499997943639755 0.01600000448524952 0.01598815992474556"></Bound>
|
||||
<Representation id="id351" format="JT" location="./2_Cylinder_Engine/Valve_Spring_Cap_123_704_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id353" name="Spring:;0,Parts" instanceRefs="inst1910040 inst1910640 inst1911040 inst1911768 inst1912168 inst1912968 inst1920696 inst1827264 inst1920976 inst1994408" type="assembly">
|
||||
<UserData id="id359">
|
||||
<UserValue value="Spring" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="Spring:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue></UserData></Part>
|
||||
<Part id="id361" name="Spring Link:;0,Parts" type="solid">
|
||||
<Bound id="id364" values="0.1303011178970337 -0.04939981177449226 0.007499259896576405 0.001999998930841684 0.01499851979315281 0.007499259896576405"></Bound>
|
||||
<Representation id="id365" format="JT" location="./2_Cylinder_Engine/Spring_Link__0_Parts.jt"></Representation></Part>
|
||||
<Part id="id394" name="Valve_Sub:;0,Parts" instanceRefs="inst1995632 inst2053208 inst1862560" type="assembly">
|
||||
<UserData id="id406">
|
||||
<UserValue value="Valve_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:26.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="Valve_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id408" name="Spring:;0,Parts" instanceRefs="inst1722840 inst1723976 inst1725736 inst1995424 inst1726232 inst1727160 inst1722360 inst1995528 inst1995008 inst2053416" type="assembly">
|
||||
<UserData id="id419">
|
||||
<UserValue value="Spring:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:25.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Spring" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id457" name="Rocker Arm:123-600;0,Parts" type="solid">
|
||||
<Bound id="id460" values="-0.2874188423156738 -0.1816282123327255 0.04250000044703484 0.03894562274217606 0.01755017042160034 0.04250000044703484"></Bound>
|
||||
<Representation id="id461" format="JT" location="./2_Cylinder_Engine/Rocker_Arm_123_600_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id463" name="Rocker Arm_copy:123-602;0,Parts" type="solid">
|
||||
<Bound id="id466" values="-0.2914990782737732 -0.1816282123327255 0.04250000044703484 0.03894564881920815 0.01755017600953579 0.04250000044703484"></Bound>
|
||||
<Representation id="id467" format="JT" location="./2_Cylinder_Engine/Rocker_Arm_copy_123_602_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id469" name="Valve Cover_copy:;0,Main" type="solid">
|
||||
<Bound id="id472" values="0.003508739871904254 -0.03198798000812531 0.0386538989841938 0.101500004529953 0.09204161167144775 0.03634610027074814"></Bound>
|
||||
<Representation id="id473" format="JT" location="./2_Cylinder_Engine/Valve_Cover_copy__0_Main.jt"></Representation></Part>
|
||||
<Part id="id481" name="Valve Cover:123-701;0,Parts" type="solid">
|
||||
<Bound id="id486" values="0.003508739871904254 -0.03198803216218948 0.1113460958003998 0.101500004529953 0.09204155951738358 0.03634609654545784"></Bound>
|
||||
<Occurrence id="id483" instanceRefs="#inst1798736 #inst2010456 #inst1724160">
|
||||
<Transform id="id484">-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</Transform></Occurrence>
|
||||
<Representation id="id487" format="JT" location="./2_Cylinder_Engine/Valve_Cover_123_701_0_Parts.jt"></Representation></Part></InstanceGraph>
|
||||
<Material id="id77" diffuse="1 0 1" specular="1 0 1" emissive="0 0 0" ambient="0 0 0" shininess="96" alpha="0.1000000238418579"></Material>
|
||||
<Material id="id182" diffuse="0.847058892250061 0.847058892250061 0.847058892250061" specular="0.8000000715255737 0.8000000715255737 0.8000000715255737" emissive="0 0 0" ambient="0.1490196138620377 0.1490196138620377 0.1490196138620377" shininess="96" alpha="0.5"></Material>
|
||||
<Material id="id190" diffuse="0.6509804129600525 0.7921569347381592 0.9411765336990356" specular="0.6509804129600525 0.7921569347381592 0.9411765336990356" emissive="0 0 0" ambient="0.1490196138620377 0.1490196138620377 0.1490196138620377" shininess="96" alpha="0.5"></Material>
|
||||
<Material id="id212" diffuse="1 0 0" specular="1 0 0" emissive="0 0 0" ambient="0.1490196138620377 0.1490196138620377 0.1490196138620377" shininess="96" alpha="0.5"></Material></ProductDef></PLMXML>
|
511
data/tests/Jt/Engine/2_Cylinder_Engine3.xml
Normal file
511
data/tests/Jt/Engine/2_Cylinder_Engine3.xml
Normal file
|
@ -0,0 +1,511 @@
|
|||
<?xml version="1.0" ?>
|
||||
<PLMXML xmlns="http://www.plmxml.org/Schemas/PLMXMLSchema"
|
||||
schemaVersion="4" date="2005-02-14" time="21:15:28" author="Vis Mockup 5.1.0">
|
||||
<ProductDef id="id1">
|
||||
<UserData id="id12" type="__TCC-VIS_MONIKER_INFO">
|
||||
<UserValue value="C:\Program Files\UGS\JT2Go\Examples\2_Cylinder_Engine_Example\2_Cylinder_Engine.jt" title="Path"></UserValue>
|
||||
<UserValue value="file" title="FA_Protocol"></UserValue>
|
||||
<UserValue value="C:/Program Files/UGS/JT2Go/Examples/2_Cylinder_Engine_Example/2_Cylinder_Engine.jt" title="object_id"></UserValue>
|
||||
<UserValue value="C:\Program Files\UGS\JT2Go\Examples\2_Cylinder_Engine_Example\2_Cylinder_Engine.jt" title="LocalCopy"></UserValue>
|
||||
<UserValue value="2.0" title="Version"></UserValue>
|
||||
<UserValue value="local" title="FA_Service"></UserValue>
|
||||
<UserValue value="No" title="MkIsFolder"></UserValue>
|
||||
<UserValue value="2_Cylinder_Engine.jt" title="Title"></UserValue>
|
||||
<UserValue value="DirectModel.Document" title="FileTypeID"></UserValue></UserData>
|
||||
<InstanceGraph id="id2" rootRefs="inst1798736">
|
||||
<Instance id="inst1798736" name="2_Cylinder_Engine" partRef="#id14">
|
||||
<ApplicationRef application="TCC-VIS" label="2_Cylinder_Engine.asm;0;0:"></ApplicationRef>
|
||||
<UserData id="id20" type="Hidden_Metadata">
|
||||
<UserValue value="156001" title="TOOLKIT_CUSTOMER"></UserValue></UserData>
|
||||
<UserData id="id31">
|
||||
<UserValue value="2_Cylinder_Engine" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:30.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="2 Cylinder Engine" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-001" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Jan-10-2005 13:23:55.05" title="Version Mod. Date + Time"></UserValue></UserData>
|
||||
<Transform id="id15">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Instance>
|
||||
<Instance id="inst1779056" name="Head Stud:123-006;0,Parts" partRef="#id46">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Stud:123-006;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id47">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</Transform></Instance>
|
||||
<Instance id="inst1913768" name="Lifter:123-923;0,Parts" partRef="#id52">
|
||||
<ApplicationRef application="TCC-VIS" label="Lifter:123-923;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id53">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</Transform></Instance>
|
||||
<Instance id="inst1910440" name="rod:123-699;0,Parts" partRef="#id58">
|
||||
<ApplicationRef application="TCC-VIS" label="rod:123-699;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id59">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</Transform></Instance>
|
||||
<Instance id="inst1937376" name="Piston Sub:;0,Parts" partRef="#id64">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id65">-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</Transform></Instance>
|
||||
<Instance id="inst1912768" name="Piston:123-844;0,Parts" partRef="#id74">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston:123-844;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id75">-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</Transform></Instance>
|
||||
<Instance id="inst1865720" name="Piston pin:123-845;0,Parts" partRef="#id83">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston pin:123-845;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id84">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</Transform></Instance>
|
||||
<Instance id="inst1895856" name="Piston Sub:;0,Parts" partRef="#id89">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston Sub:;0,Parts.asm;0;1:"></ApplicationRef>
|
||||
<Transform id="id90">1 0 0 0 0 1 0 0 0 0 1 0 0.1368601024150848 -0.06445372104644775 -0.03617963194847107 1</Transform></Instance>
|
||||
<Instance id="inst1671584" name="Piston:123-844;0,Parts" partRef="#id74">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston:123-844;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id102">-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</Transform></Instance>
|
||||
<Instance id="inst2012776" name="Piston pin:123-845;0,Parts" partRef="#id83">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston pin:123-845;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id105">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</Transform></Instance>
|
||||
<Instance id="inst2026000" name="CamShaft Sub:123-990;0,Parts" partRef="#id108">
|
||||
<ApplicationRef application="TCC-VIS" label="CamShaft Sub:123-990;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id109">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</Transform></Instance>
|
||||
<Instance id="inst2054176" name="Cam_shaft:123-457;0,Parts" partRef="#id123">
|
||||
<ApplicationRef application="TCC-VIS" label="Cam_shaft:123-457;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id124">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</Transform></Instance>
|
||||
<Instance id="inst1938944" name="cam_gear:123-456;0,Parts" partRef="#id129">
|
||||
<ApplicationRef application="TCC-VIS" label="cam_gear:123-456;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id130">-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</Transform></Instance>
|
||||
<Instance id="inst1848008" name="Crank_Sub:123-555;0,Parts" partRef="#id135">
|
||||
<ApplicationRef application="TCC-VIS" label="Crank_Sub:123-555;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id136">-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</Transform></Instance>
|
||||
<Instance id="inst1838360" name="crank:123-782;0,Parts" partRef="#id150">
|
||||
<ApplicationRef application="TCC-VIS" label="crank:123-782;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id151">-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</Transform></Instance>
|
||||
<Instance id="inst1857888" name="crank_gear:123-783;0,Parts" partRef="#id156">
|
||||
<ApplicationRef application="TCC-VIS" label="crank_gear:123-783;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id157">-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</Transform></Instance>
|
||||
<Instance id="inst2010456" name="Body Sub:123-002;0,Parts" partRef="#id162">
|
||||
<ApplicationRef application="TCC-VIS" label="Body Sub:123-002;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id163">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Instance>
|
||||
<Instance id="inst2026392" name="Case_r:123-200;0,Parts" partRef="#id179">
|
||||
<ApplicationRef application="TCC-VIS" label="Case_r:123-200;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id180">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Instance>
|
||||
<Instance id="inst2026184" name="Cylinder_1:123-100;0,Parts" partRef="#id187">
|
||||
<ApplicationRef application="TCC-VIS" label="Cylinder_1:123-100;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id188">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</Transform></Instance>
|
||||
<Instance id="inst1996904" name="Cylinder_2:123-101;0,Parts" partRef="#id196">
|
||||
<ApplicationRef application="TCC-VIS" label="Cylinder_2:123-101;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id197">-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</Transform></Instance>
|
||||
<Instance id="inst1858736" name="cylinder bolt pattern:;0,Parts" partRef="#id203">
|
||||
<ApplicationRef application="TCC-VIS" label="cylinder bolt pattern:;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id204">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</Transform></Instance>
|
||||
<Instance id="inst1726008" name="Head_1:123-150;0,Parts" partRef="#id209">
|
||||
<ApplicationRef application="TCC-VIS" label="Head_1:123-150;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id210">-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</Transform></Instance>
|
||||
<Instance id="inst1729056" name="Head2 Sub:;0,Parts" partRef="#id218">
|
||||
<ApplicationRef application="TCC-VIS" label="Head2 Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id219">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</Transform></Instance>
|
||||
<Instance id="inst1727816" name="Head_2:123-151;0,Parts" partRef="#id232">
|
||||
<ApplicationRef application="TCC-VIS" label="Head_2:123-151;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id233">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</Transform></Instance>
|
||||
<Instance id="inst2027256" name="Spark Plug:;0,Parts" partRef="#id239">
|
||||
<ApplicationRef application="TCC-VIS" label="Spark Plug:;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id240">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</Transform></Instance>
|
||||
<Instance id="inst1842808" name="Head Nut:123-005;0,Parts" partRef="#id245">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Nut:123-005;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id246">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</Transform></Instance>
|
||||
<Instance id="inst1906944" name="Rocker_Sub:;0,Parts" partRef="#id251">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker_Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id252">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</Transform></Instance>
|
||||
<Instance id="inst2033120" name="Rocker Arm Shaft:123-601;0,Parts" partRef="#id264">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Arm Shaft:123-601;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id265">-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</Transform></Instance>
|
||||
<Instance id="inst1789832" name="Rocker_Mount_Sub:;0,Parts" partRef="#id270">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker_Mount_Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id271">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</Transform></Instance>
|
||||
<Instance id="inst1796000" name="Rocker Mount:123-604;0,Parts" partRef="#id278">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Mount:123-604;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id279">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</Transform></Instance>
|
||||
<Instance id="inst2030512" name="Rocker Mount Cap:123-608;0,Parts" partRef="#id284">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Mount Cap:123-608;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id285">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</Transform></Instance>
|
||||
<Instance id="inst1725832" name="Rocker Bolt:123-603;0,Parts" partRef="#id290">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Bolt:123-603;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id291">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</Transform></Instance>
|
||||
<Instance id="inst2029080" name="Rocker Bolt:123-603;0,Parts" partRef="#id290">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Bolt:123-603;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id296">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</Transform></Instance>
|
||||
<Instance id="inst2033672" name="Rocker_Mount_Sub:;0,Parts" partRef="#id299">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker_Mount_Sub:;0,Parts.asm;0;1:"></ApplicationRef>
|
||||
<Transform id="id300">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</Transform></Instance>
|
||||
<Instance id="inst1996808" name="Rocker Mount:123-604;0,Parts" partRef="#id278">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Mount:123-604;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id312">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</Transform></Instance>
|
||||
<Instance id="inst1867136" name="Rocker Mount Cap:123-608;0,Parts" partRef="#id284">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Mount Cap:123-608;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id315">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</Transform></Instance>
|
||||
<Instance id="inst1948848" name="Rocker Bolt:123-603;0,Parts" partRef="#id290">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Bolt:123-603;0,Parts.part;0;2:"></ApplicationRef>
|
||||
<Transform id="id318">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</Transform></Instance>
|
||||
<Instance id="inst1997256" name="Rocker Bolt:123-603;0,Parts" partRef="#id290">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Bolt:123-603;0,Parts.part;0;3:"></ApplicationRef>
|
||||
<Transform id="id321">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</Transform></Instance>
|
||||
<Instance id="inst1949072" name="Rocker Arm Shaft:123-601;0,Parts" partRef="#id264">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Arm Shaft:123-601;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id324">-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</Transform></Instance>
|
||||
<Instance id="inst2052896" name="Valve Spring:123-702;0,Parts" partRef="#id327">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Spring:123-702;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id328">-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</Transform></Instance>
|
||||
<Instance id="inst1725624" name="Valve_Sub:;0,Parts" partRef="#id333">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve_Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id334">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</Transform></Instance>
|
||||
<Instance id="inst1914472" name="Valve:123-700;0,Parts" partRef="#id341">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve:123-700;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id342">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</Transform></Instance>
|
||||
<Instance id="inst1734000" name="Valve Spring Cap:123-704;0,Parts" partRef="#id347">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Spring Cap:123-704;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id348">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</Transform></Instance>
|
||||
<Instance id="inst1730152" name="Spring:;0,Parts" partRef="#id353">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id354">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</Transform></Instance>
|
||||
<Instance id="inst1910040" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id362">-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</Transform></Instance>
|
||||
<Instance id="inst1910640" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id367">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</Transform></Instance>
|
||||
<Instance id="inst1911040" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;2:"></ApplicationRef>
|
||||
<Transform id="id370">-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</Transform></Instance>
|
||||
<Instance id="inst1911768" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;3:"></ApplicationRef>
|
||||
<Transform id="id373">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</Transform></Instance>
|
||||
<Instance id="inst1912168" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;4:"></ApplicationRef>
|
||||
<Transform id="id376">-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</Transform></Instance>
|
||||
<Instance id="inst1912968" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;5:"></ApplicationRef>
|
||||
<Transform id="id379">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</Transform></Instance>
|
||||
<Instance id="inst1920696" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;6:"></ApplicationRef>
|
||||
<Transform id="id382">-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</Transform></Instance>
|
||||
<Instance id="inst1827264" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;7:"></ApplicationRef>
|
||||
<Transform id="id385">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</Transform></Instance>
|
||||
<Instance id="inst1920976" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;8:"></ApplicationRef>
|
||||
<Transform id="id388">-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</Transform></Instance>
|
||||
<Instance id="inst1994408" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;9:"></ApplicationRef>
|
||||
<Transform id="id391">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</Transform></Instance>
|
||||
<Instance id="inst1994616" name="Valve_Sub:;0,Parts" partRef="#id394">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve_Sub:;0,Parts.asm;0;1:"></ApplicationRef>
|
||||
<Transform id="id395">-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</Transform></Instance>
|
||||
<Instance id="inst1995632" name="Spring:;0,Parts" partRef="#id408">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring:;0,Parts.asm;0;1:"></ApplicationRef>
|
||||
<Transform id="id409">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</Transform></Instance>
|
||||
<Instance id="inst1722840" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;10:"></ApplicationRef>
|
||||
<Transform id="id421">-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</Transform></Instance>
|
||||
<Instance id="inst1723976" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;11:"></ApplicationRef>
|
||||
<Transform id="id424">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</Transform></Instance>
|
||||
<Instance id="inst1725736" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;12:"></ApplicationRef>
|
||||
<Transform id="id427">-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</Transform></Instance>
|
||||
<Instance id="inst1995424" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;13:"></ApplicationRef>
|
||||
<Transform id="id430">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</Transform></Instance>
|
||||
<Instance id="inst1726232" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;14:"></ApplicationRef>
|
||||
<Transform id="id433">-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</Transform></Instance>
|
||||
<Instance id="inst1727160" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;15:"></ApplicationRef>
|
||||
<Transform id="id436">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</Transform></Instance>
|
||||
<Instance id="inst1722360" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;16:"></ApplicationRef>
|
||||
<Transform id="id439">-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</Transform></Instance>
|
||||
<Instance id="inst1995528" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;17:"></ApplicationRef>
|
||||
<Transform id="id442">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</Transform></Instance>
|
||||
<Instance id="inst1995008" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;18:"></ApplicationRef>
|
||||
<Transform id="id445">-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</Transform></Instance>
|
||||
<Instance id="inst2053416" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;19:"></ApplicationRef>
|
||||
<Transform id="id448">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</Transform></Instance>
|
||||
<Instance id="inst2053208" name="Valve:123-700;0,Parts" partRef="#id341">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve:123-700;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id451">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</Transform></Instance>
|
||||
<Instance id="inst1862560" name="Valve Spring Cap:123-704;0,Parts" partRef="#id347">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Spring Cap:123-704;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id454">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</Transform></Instance>
|
||||
<Instance id="inst1719832" name="Rocker Arm:123-600;0,Parts" partRef="#id457">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Arm:123-600;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id458">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</Transform></Instance>
|
||||
<Instance id="inst1729824" name="Rocker Arm_copy:123-602;0,Parts" partRef="#id463">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Arm_copy:123-602;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id464">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</Transform></Instance>
|
||||
<Instance id="inst1726936" name="Valve Cover_copy:;0,Main" partRef="#id469">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Cover_copy:;0,Main.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id470">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</Transform></Instance>
|
||||
<Instance id="inst1722616" name="Head Nut:123-005;0,Parts" partRef="#id245">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Nut:123-005;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id475">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</Transform></Instance>
|
||||
<Instance id="inst1760240" name="Valve Spring:123-702;0,Parts" partRef="#id327">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Spring:123-702;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id478">-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</Transform></Instance>
|
||||
<Instance id="inst1724160" name="Valve Cover:123-701;0,Parts" partRef="#id481">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Cover:123-701;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id482">-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</Transform></Instance>
|
||||
<Instance id="inst1723752" name="Head Stud:123-006;0,Parts" partRef="#id46">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Stud:123-006;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id489">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</Transform></Instance>
|
||||
<Instance id="inst1725216" name="Head Stud:123-006;0,Parts" partRef="#id46">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Stud:123-006;0,Parts.part;0;2:"></ApplicationRef>
|
||||
<Transform id="id492">-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</Transform></Instance>
|
||||
<Instance id="inst1758176" name="Head Stud:123-006;0,Parts" partRef="#id46">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Stud:123-006;0,Parts.part;0;3:"></ApplicationRef>
|
||||
<Transform id="id495">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</Transform></Instance>
|
||||
<Instance id="inst1919952" name="Lifter:123-923;0,Parts" partRef="#id52">
|
||||
<ApplicationRef application="TCC-VIS" label="Lifter:123-923;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id498">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</Transform></Instance>
|
||||
<Instance id="inst2053728" name="Lifter:123-923;0,Parts" partRef="#id52">
|
||||
<ApplicationRef application="TCC-VIS" label="Lifter:123-923;0,Parts.part;0;2:"></ApplicationRef>
|
||||
<Transform id="id501">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</Transform></Instance>
|
||||
<Instance id="inst2050288" name="Lifter:123-923;0,Parts" partRef="#id52">
|
||||
<ApplicationRef application="TCC-VIS" label="Lifter:123-923;0,Parts.part;0;3:"></ApplicationRef>
|
||||
<Transform id="id504">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</Transform></Instance>
|
||||
<Instance id="inst1998064" name="rod:123-699;0,Parts" partRef="#id58">
|
||||
<ApplicationRef application="TCC-VIS" label="rod:123-699;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id507">-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</Transform></Instance>
|
||||
<Part id="id14" name="2_Cylinder_Engine" instanceRefs="inst1779056 inst1913768 inst1910440 inst1937376 inst1895856 inst2026000 inst1848008 inst2010456 inst1758176 inst1919952 inst2053728 inst2050288 inst1998064" type="assembly">
|
||||
<UserData id="id33" type="Hidden_Metadata">
|
||||
<UserValue value="156001" title="TOOLKIT_CUSTOMER"></UserValue></UserData>
|
||||
<UserData id="id44">
|
||||
<UserValue value="2_Cylinder_Engine" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:30.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="2 Cylinder Engine" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-001" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Jan-10-2005 13:23:55.05" title="Version Mod. Date + Time"></UserValue></UserData>
|
||||
<Occurrence id="id16" instanceRefs="#inst1798736">
|
||||
<Transform id="id17">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Occurrence></Part>
|
||||
<Part id="id46" name="Head Stud:123-006;0,Parts" type="solid">
|
||||
<Bound id="id49" values="-0.03247146308422089 0.07456196844577789 -0.1150000020861626 0.006500001531094313 0.006495191715657711 0.1150000020861626"></Bound>
|
||||
<Representation id="id50" format="JT" location="./2_Cylinder_Engine/Head_Stud_123_006_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id52" name="Lifter:123-923;0,Parts" type="solid">
|
||||
<Bound id="id55" values="-0.02437210455536842 -0.03384878858923912 -0.04250000044703484 0.00774999987334013 0.007749963086098433 0.04250000044703484"></Bound>
|
||||
<Representation id="id56" format="JT" location="./2_Cylinder_Engine/Lifter_123_923_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id58" name="rod:123-699;0,Parts" type="solid">
|
||||
<Bound id="id61" values="0.02005359902977943 -0.006323420908302069 0 0.09100000560283661 0.03700000047683716 0.009999999776482582"></Bound>
|
||||
<Representation id="id62" format="JT" location="./2_Cylinder_Engine/rod_123_699_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id64" name="Piston Sub:;0,Parts" instanceRefs="inst1912768 inst1865720" type="assembly">
|
||||
<UserData id="id72">
|
||||
<UserValue value="Piston Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="Piston Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue></UserData>
|
||||
<Occurrence id="id66" instanceRefs="#inst1798736 #inst1937376">
|
||||
<Transform id="id67">-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</Transform></Occurrence></Part>
|
||||
<Part id="id74" name="Piston:123-844;0,Parts" type="solid">
|
||||
<Bound id="id80" values="0.0101108755916357 0.009526152163743973 0 0.05324159190058708 0.04650000110268593 0.04649999737739563"></Bound>
|
||||
<Occurrence id="id76" materialRef="id77" instanceRefs="#inst1798736 #inst1937376 #inst1912768">
|
||||
<Transform id="id78">-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</Transform></Occurrence>
|
||||
<Representation id="id81" format="JT" location="./2_Cylinder_Engine/Piston_123_844_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id83" name="Piston pin:123-845;0,Parts" type="solid">
|
||||
<Bound id="id86" values="-0.2534925639629364 0.09658930450677872 0.04250000044703484 0.01099999435245991 0.01099186204373837 0.04250000044703484"></Bound>
|
||||
<Representation id="id87" format="JT" location="./2_Cylinder_Engine/Piston_pin_123_845_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id89" name="Piston Sub:;0,Parts" instanceRefs="inst1671584 inst2012776" type="assembly">
|
||||
<UserData id="id100">
|
||||
<UserValue value="Piston Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:24.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Piston Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id108" name="CamShaft Sub:123-990;0,Parts" instanceRefs="inst2054176 inst1938944" type="assembly">
|
||||
<UserData id="id121">
|
||||
<UserValue value="CamShaft Sub:123-990;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:25.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="CamShaft Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-990" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Aug-14-2001 14:11:35.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id123" name="Cam_shaft:123-457;0,Parts" type="solid">
|
||||
<Bound id="id126" values="0.05063954740762711 -0.03493684902787209 -4.356868157628924e-005 0.1267500072717667 0.02063110843300819 0.01902950927615166"></Bound>
|
||||
<Representation id="id127" format="JT" location="./2_Cylinder_Engine/Cam_shaft_123_457_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id129" name="cam_gear:123-456;0,Parts" type="solid">
|
||||
<Bound id="id132" values="0 -0.1000000014901161 -0.002500000409781933 0.06898061186075211 0.06888007372617722 0.01250000018626452"></Bound>
|
||||
<Representation id="id133" format="JT" location="./2_Cylinder_Engine/cam_gear_123_456_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id135" name="Crank_Sub:123-555;0,Parts" instanceRefs="inst1838360 inst1857888" type="assembly">
|
||||
<UserData id="id148">
|
||||
<UserValue value="Crank_Sub:123-555;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Aug-14-2001 14:13:01.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="Crank_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-555" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Aug-14-2001 14:13:01.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id150" name="crank:123-782;0,Parts" type="solid">
|
||||
<Bound id="id153" values="4.847693617193727e-006 0 -0.01325000263750553 0.06299515068531036 0.03500000014901161 0.1267500072717667"></Bound>
|
||||
<Representation id="id154" format="JT" location="./2_Cylinder_Engine/crank_123_782_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id156" name="crank_gear:123-783;0,Parts" type="solid">
|
||||
<Bound id="id159" values="0 -0.0001077877532225102 -0.002500000409781933 0.03597993031144142 0.03586557507514954 0.01250000018626452"></Bound>
|
||||
<Representation id="id160" format="JT" location="./2_Cylinder_Engine/crank_gear_123_783_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id162" name="Body Sub:123-002;0,Parts" instanceRefs="inst2026392 inst2026184 inst1996904 inst1858736 inst1726008 inst1729056 inst1724160 inst1723752 inst1725216" type="assembly">
|
||||
<UserData id="id177">
|
||||
<UserValue value="Body Sub:123-002;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:29.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Body Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-002" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Aug-14-2001 14:10:00.00" title="Version Mod. Date + Time"></UserValue></UserData>
|
||||
<Occurrence id="id164" instanceRefs="#inst1798736 #inst2010456">
|
||||
<Transform id="id165">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Occurrence></Part>
|
||||
<Part id="id179" name="Case_r:123-200;0,Parts" type="solid">
|
||||
<Bound id="id184" values="0 -0.04548577964305878 -0.003500004298985004 0.0949999988079071 0.1354857832193375 0.1164999976754189"></Bound>
|
||||
<Occurrence id="id181" materialRef="id182" instanceRefs="#inst1798736 #inst2010456 #inst2026392"></Occurrence>
|
||||
<Representation id="id185" format="JT" location="./2_Cylinder_Engine/Case_r_123_200_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id187" name="Cylinder_1:123-100;0,Parts" type="solid">
|
||||
<Bound id="id193" values="0.01856433786451817 0.05655883997678757 2.846240931830835e-007 0.08050000667572022 0.0950000062584877 0.08000028133392334"></Bound>
|
||||
<Occurrence id="id189" materialRef="id190" instanceRefs="#inst1798736 #inst2010456 #inst2026184">
|
||||
<Transform id="id191">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</Transform></Occurrence>
|
||||
<Representation id="id194" format="JT" location="./2_Cylinder_Engine/Cylinder_1_123_100_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id196" name="Cylinder_2:123-101;0,Parts" type="solid">
|
||||
<Bound id="id200" values="0.01856433786451817 0.05655883997678757 2.846240931830835e-007 0.08050000667572022 0.0950000062584877 0.08000028133392334"></Bound>
|
||||
<Occurrence id="id198" materialRef="id190" instanceRefs="#inst1798736 #inst2010456 #inst1996904"></Occurrence>
|
||||
<Representation id="id201" format="JT" location="./2_Cylinder_Engine/Cylinder_2_123_101_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id203" name="cylinder bolt pattern:;0,Parts" type="solid">
|
||||
<Bound id="id206" values="-0.1074714586138725 0.0745619609951973 -0.1150000020861626 0.08149999380111694 0.08149999380111694 0.1150000020861626"></Bound>
|
||||
<Representation id="id207" format="JT" location="./2_Cylinder_Engine/cylinder_bolt_pattern__0_Parts.jt"></Representation></Part>
|
||||
<Part id="id209" name="Head_1:123-150;0,Parts" type="solid">
|
||||
<Bound id="id215" values="0.005008736159652472 -0.03048798069357872 0.04119380190968514 0.1079999953508377 0.09020166844129562 0.0411965511739254"></Bound>
|
||||
<Occurrence id="id211" materialRef="id212" instanceRefs="#inst1798736 #inst2010456 #inst1726008">
|
||||
<Transform id="id213">-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</Transform></Occurrence>
|
||||
<Representation id="id216" format="JT" location="./2_Cylinder_Engine/Head_1_123_150_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id218" name="Head2 Sub:;0,Parts" instanceRefs="inst1727816 inst2027256 inst1842808 inst1906944 inst2052896 inst1725624 inst1994616 inst1719832 inst1729824 inst1726936 inst1722616 inst1760240" type="assembly">
|
||||
<UserData id="id230">
|
||||
<UserValue value="Head2 Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:27.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Head2 Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id232" name="Head_2:123-151;0,Parts" type="solid">
|
||||
<Bound id="id236" values="0.005008736159652472 -0.03048798069357872 -0.04119383916258812 0.1079999953508377 0.09020166844129562 0.04119651019573212"></Bound>
|
||||
<Occurrence id="id234" materialRef="id212" instanceRefs="#inst1798736 #inst2010456 #inst1729056 #inst1727816"></Occurrence>
|
||||
<Representation id="id237" format="JT" location="./2_Cylinder_Engine/Head_2_123_151_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id239" name="Spark Plug:;0,Parts" type="solid">
|
||||
<Bound id="id242" values="0.03006996028125286 0.2239631712436676 0.02060705050826073 0.01078151073306799 0.009165501222014427 0.0493929535150528"></Bound>
|
||||
<Representation id="id243" format="JT" location="./2_Cylinder_Engine/Spark_Plug__0_Parts.jt"></Representation></Part>
|
||||
<Part id="id245" name="Head Nut:123-005;0,Parts" type="solid">
|
||||
<Bound id="id248" values="0.02565165981650353 0.2141639441251755 -0.008499999530613422 0.01200000010430813 0.01199112832546234 0.008499999530613422"></Bound>
|
||||
<Representation id="id249" format="JT" location="./2_Cylinder_Engine/Head_Nut_123_005_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id251" name="Rocker_Sub:;0,Parts" instanceRefs="inst2033120 inst1789832 inst2033672 inst1949072" type="assembly">
|
||||
<UserData id="id262">
|
||||
<UserValue value="Rocker_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:27.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Rocker_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id264" name="Rocker Arm Shaft:123-601;0,Parts" type="solid">
|
||||
<Bound id="id267" values="-0.04317900538444519 0.4631594121456146 0.05750000104308128 0.006500000134110451 0.006495170295238495 0.05750000104308128"></Bound>
|
||||
<Representation id="id268" format="JT" location="./2_Cylinder_Engine/Rocker_Arm_Shaft_123_601_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id270" name="Rocker_Mount_Sub:;0,Parts" instanceRefs="inst1796000 inst2030512 inst1725832 inst2029080" type="assembly">
|
||||
<UserData id="id276">
|
||||
<UserValue value="Rocker_Mount_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="Rocker_Mount_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue></UserData></Part>
|
||||
<Part id="id278" name="Rocker Mount:123-604;0,Parts" type="solid">
|
||||
<Bound id="id281" values="0.005044352263212204 -0.05961518362164497 0.007500000298023224 0.0494999997317791 0.02099999971687794 0.007500000298023224"></Bound>
|
||||
<Representation id="id282" format="JT" location="./2_Cylinder_Engine/Rocker_Mount_123_604_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id284" name="Rocker Mount Cap:123-608;0,Parts" type="solid">
|
||||
<Bound id="id287" values="0.005044352263212204 -0.05511518567800522 0.007500000298023224 0.0494999997317791 0.006499998271465302 0.007500000298023224"></Bound>
|
||||
<Representation id="id288" format="JT" location="./2_Cylinder_Engine/Rocker_Mount_Cap_123_608_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id290" name="Rocker Bolt:123-603;0,Parts" type="solid">
|
||||
<Bound id="id293" values="0.02305358275771141 0.2096639275550842 -0.04050000011920929 0.007499999366700649 0.007494449149817228 0.04050000011920929"></Bound>
|
||||
<Representation id="id294" format="JT" location="./2_Cylinder_Engine/Rocker_Bolt_123_603_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id299" name="Rocker_Mount_Sub:;0,Parts" instanceRefs="inst1996808 inst1867136 inst1948848 inst1997256" type="assembly">
|
||||
<UserData id="id310">
|
||||
<UserValue value="Rocker_Mount_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:27.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Rocker_Mount_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id327" name="Valve Spring:123-702;0,Parts" type="solid">
|
||||
<Bound id="id330" values="-0.2873985767364502 -0.0646171048283577 0.0324999988079071 0.008999995887279511 0.008993340656161308 0.0324999988079071"></Bound>
|
||||
<Representation id="id331" format="JT" location="./2_Cylinder_Engine/Valve_Spring_123_702_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id333" name="Valve_Sub:;0,Parts" instanceRefs="inst1914472 inst1734000 inst1730152" type="assembly">
|
||||
<UserData id="id339">
|
||||
<UserValue value="Valve_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="Valve_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue></UserData></Part>
|
||||
<Part id="id341" name="Valve:123-700;0,Parts" type="solid">
|
||||
<Bound id="id344" values="0.1265590041875839 0.2941140830516815 0 0.05499999970197678 0.01800000295042992 0.01798668131232262"></Bound>
|
||||
<Representation id="id345" format="JT" location="./2_Cylinder_Engine/Valve_123_700_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id347" name="Valve Spring Cap:123-704;0,Parts" type="solid">
|
||||
<Bound id="id350" values="0.2066644430160523 0.2842055261135101 0 0.004499997943639755 0.01600000448524952 0.01598815992474556"></Bound>
|
||||
<Representation id="id351" format="JT" location="./2_Cylinder_Engine/Valve_Spring_Cap_123_704_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id353" name="Spring:;0,Parts" instanceRefs="inst1910040 inst1910640 inst1911040 inst1911768 inst1912168 inst1912968 inst1920696 inst1827264 inst1920976 inst1994408" type="assembly">
|
||||
<UserData id="id359">
|
||||
<UserValue value="Spring" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="Spring:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue></UserData></Part>
|
||||
<Part id="id361" name="Spring Link:;0,Parts" type="solid">
|
||||
<Bound id="id364" values="0.1303011178970337 -0.04939981177449226 0.007499259896576405 0.001999998930841684 0.01499851979315281 0.007499259896576405"></Bound>
|
||||
<Representation id="id365" format="JT" location="./2_Cylinder_Engine/Spring_Link__0_Parts.jt"></Representation></Part>
|
||||
<Part id="id394" name="Valve_Sub:;0,Parts" instanceRefs="inst1995632 inst2053208 inst1862560" type="assembly">
|
||||
<UserData id="id406">
|
||||
<UserValue value="Valve_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:26.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="Valve_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id408" name="Spring:;0,Parts" instanceRefs="inst1722840 inst1723976 inst1725736 inst1995424 inst1726232 inst1727160 inst1722360 inst1995528 inst1995008 inst2053416" type="assembly">
|
||||
<UserData id="id419">
|
||||
<UserValue value="Spring:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:25.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Spring" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id457" name="Rocker Arm:123-600;0,Parts" type="solid">
|
||||
<Bound id="id460" values="-0.2874188423156738 -0.1816282123327255 0.04250000044703484 0.03894562274217606 0.01755017042160034 0.04250000044703484"></Bound>
|
||||
<Representation id="id461" format="JT" location="./2_Cylinder_Engine/Rocker_Arm_123_600_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id463" name="Rocker Arm_copy:123-602;0,Parts" type="solid">
|
||||
<Bound id="id466" values="-0.2914990782737732 -0.1816282123327255 0.04250000044703484 0.03894564881920815 0.01755017600953579 0.04250000044703484"></Bound>
|
||||
<Representation id="id467" format="JT" location="./2_Cylinder_Engine/Rocker_Arm_copy_123_602_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id469" name="Valve Cover_copy:;0,Main" type="solid">
|
||||
<Bound id="id472" values="0.003508739871904254 -0.03198798000812531 0.0386538989841938 0.101500004529953 0.09204161167144775 0.03634610027074814"></Bound>
|
||||
<Representation id="id473" format="JT" location="./2_Cylinder_Engine/Valve_Cover_copy__0_Main.jt"></Representation></Part>
|
||||
<Part id="id481" name="Valve Cover:123-701;0,Parts" type="solid">
|
||||
<Bound id="id486" values="0.003508739871904254 -0.03198803216218948 0.1113460958003998 0.101500004529953 0.09204155951738358 0.03634609654545784"></Bound>
|
||||
<Occurrence id="id483" instanceRefs="#inst1798736 #inst2010456 #inst1724160">
|
||||
<Transform id="id484">-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</Transform></Occurrence>
|
||||
<Representation id="id487" format="JT" location="./2_Cylinder_Engine/Valve_Cover_123_701_0_Parts.jt"></Representation></Part></InstanceGraph>
|
||||
<Material id="id77" diffuse="1 0 1" specular="1 0 1" emissive="0 0 0" ambient="0 0 0" shininess="96" alpha="0.1000000238418579"></Material>
|
||||
<Material id="id182" diffuse="0.847058892250061 0.847058892250061 0.847058892250061" specular="0.8000000715255737 0.8000000715255737 0.8000000715255737" emissive="0 0 0" ambient="0.1490196138620377 0.1490196138620377 0.1490196138620377" shininess="96" alpha="0.5"></Material>
|
||||
<Material id="id190" diffuse="0.6509804129600525 0.7921569347381592 0.9411765336990356" specular="0.6509804129600525 0.7921569347381592 0.9411765336990356" emissive="0 0 0" ambient="0.1490196138620377 0.1490196138620377 0.1490196138620377" shininess="96" alpha="0.5"></Material>
|
||||
<Material id="id212" diffuse="1 0 0" specular="1 0 0" emissive="0 0 0" ambient="0.1490196138620377 0.1490196138620377 0.1490196138620377" shininess="96" alpha="0.5"></Material></ProductDef></PLMXML>
|
511
data/tests/Jt/Engine/2_Cylinder_Engine3_Exploded.plmxml
Normal file
511
data/tests/Jt/Engine/2_Cylinder_Engine3_Exploded.plmxml
Normal file
|
@ -0,0 +1,511 @@
|
|||
<?xml version="1.0" ?>
|
||||
<PLMXML xmlns="http://www.plmxml.org/Schemas/PLMXMLSchema"
|
||||
schemaVersion="4" date="2005-02-14" time="21:15:28" author="Vis Mockup 5.1.0">
|
||||
<ProductDef id="id1">
|
||||
<UserData id="id12" type="__TCC-VIS_MONIKER_INFO">
|
||||
<UserValue value="C:\Program Files\UGS\JT2Go\Examples\2_Cylinder_Engine_Example\2_Cylinder_Engine.jt" title="Path"></UserValue>
|
||||
<UserValue value="file" title="FA_Protocol"></UserValue>
|
||||
<UserValue value="C:/Program Files/UGS/JT2Go/Examples/2_Cylinder_Engine_Example/2_Cylinder_Engine.jt" title="object_id"></UserValue>
|
||||
<UserValue value="C:\Program Files\UGS\JT2Go\Examples\2_Cylinder_Engine_Example\2_Cylinder_Engine.jt" title="LocalCopy"></UserValue>
|
||||
<UserValue value="2.0" title="Version"></UserValue>
|
||||
<UserValue value="local" title="FA_Service"></UserValue>
|
||||
<UserValue value="No" title="MkIsFolder"></UserValue>
|
||||
<UserValue value="2_Cylinder_Engine.jt" title="Title"></UserValue>
|
||||
<UserValue value="DirectModel.Document" title="FileTypeID"></UserValue></UserData>
|
||||
<InstanceGraph id="id2" rootRefs="inst1798736">
|
||||
<Instance id="inst1798736" name="2_Cylinder_Engine" partRef="#id14">
|
||||
<ApplicationRef application="TCC-VIS" label="2_Cylinder_Engine.asm;0;0:"></ApplicationRef>
|
||||
<UserData id="id20" type="Hidden_Metadata">
|
||||
<UserValue value="156001" title="TOOLKIT_CUSTOMER"></UserValue></UserData>
|
||||
<UserData id="id31">
|
||||
<UserValue value="2_Cylinder_Engine" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:30.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="2 Cylinder Engine" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-001" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Jan-10-2005 13:23:55.05" title="Version Mod. Date + Time"></UserValue></UserData>
|
||||
<Transform id="id15">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Instance>
|
||||
<Instance id="inst1779056" name="Head Stud:123-006;0,Parts" partRef="#id46">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Stud:123-006;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id47">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</Transform></Instance>
|
||||
<Instance id="inst1913768" name="Lifter:123-923;0,Parts" partRef="#id52">
|
||||
<ApplicationRef application="TCC-VIS" label="Lifter:123-923;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id53">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</Transform></Instance>
|
||||
<Instance id="inst1910440" name="rod:123-699;0,Parts" partRef="#id58">
|
||||
<ApplicationRef application="TCC-VIS" label="rod:123-699;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id59">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</Transform></Instance>
|
||||
<Instance id="inst1937376" name="Piston Sub:;0,Parts" partRef="#id64">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id65">-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</Transform></Instance>
|
||||
<Instance id="inst1912768" name="Piston:123-844;0,Parts" partRef="#id74">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston:123-844;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id75">-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</Transform></Instance>
|
||||
<Instance id="inst1865720" name="Piston pin:123-845;0,Parts" partRef="#id83">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston pin:123-845;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id84">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</Transform></Instance>
|
||||
<Instance id="inst1895856" name="Piston Sub:;0,Parts" partRef="#id89">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston Sub:;0,Parts.asm;0;1:"></ApplicationRef>
|
||||
<Transform id="id90">1 0 0 0 0 1 0 0 0 0 1 0 0.1368601024150848 -0.06445372104644775 -0.03617963194847107 1</Transform></Instance>
|
||||
<Instance id="inst1671584" name="Piston:123-844;0,Parts" partRef="#id74">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston:123-844;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id102">-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</Transform></Instance>
|
||||
<Instance id="inst2012776" name="Piston pin:123-845;0,Parts" partRef="#id83">
|
||||
<ApplicationRef application="TCC-VIS" label="Piston pin:123-845;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id105">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</Transform></Instance>
|
||||
<Instance id="inst2026000" name="CamShaft Sub:123-990;0,Parts" partRef="#id108">
|
||||
<ApplicationRef application="TCC-VIS" label="CamShaft Sub:123-990;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id109">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</Transform></Instance>
|
||||
<Instance id="inst2054176" name="Cam_shaft:123-457;0,Parts" partRef="#id123">
|
||||
<ApplicationRef application="TCC-VIS" label="Cam_shaft:123-457;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id124">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</Transform></Instance>
|
||||
<Instance id="inst1938944" name="cam_gear:123-456;0,Parts" partRef="#id129">
|
||||
<ApplicationRef application="TCC-VIS" label="cam_gear:123-456;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id130">-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</Transform></Instance>
|
||||
<Instance id="inst1848008" name="Crank_Sub:123-555;0,Parts" partRef="#id135">
|
||||
<ApplicationRef application="TCC-VIS" label="Crank_Sub:123-555;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id136">-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</Transform></Instance>
|
||||
<Instance id="inst1838360" name="crank:123-782;0,Parts" partRef="#id150">
|
||||
<ApplicationRef application="TCC-VIS" label="crank:123-782;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id151">-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</Transform></Instance>
|
||||
<Instance id="inst1857888" name="crank_gear:123-783;0,Parts" partRef="#id156">
|
||||
<ApplicationRef application="TCC-VIS" label="crank_gear:123-783;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id157">-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</Transform></Instance>
|
||||
<Instance id="inst2010456" name="Body Sub:123-002;0,Parts" partRef="#id162">
|
||||
<ApplicationRef application="TCC-VIS" label="Body Sub:123-002;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id163">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Instance>
|
||||
<Instance id="inst2026392" name="Case_r:123-200;0,Parts" partRef="#id179">
|
||||
<ApplicationRef application="TCC-VIS" label="Case_r:123-200;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id180">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Instance>
|
||||
<Instance id="inst2026184" name="Cylinder_1:123-100;0,Parts" partRef="#id187">
|
||||
<ApplicationRef application="TCC-VIS" label="Cylinder_1:123-100;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id188">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</Transform></Instance>
|
||||
<Instance id="inst1996904" name="Cylinder_2:123-101;0,Parts" partRef="#id196">
|
||||
<ApplicationRef application="TCC-VIS" label="Cylinder_2:123-101;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id197">-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</Transform></Instance>
|
||||
<Instance id="inst1858736" name="cylinder bolt pattern:;0,Parts" partRef="#id203">
|
||||
<ApplicationRef application="TCC-VIS" label="cylinder bolt pattern:;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id204">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</Transform></Instance>
|
||||
<Instance id="inst1726008" name="Head_1:123-150;0,Parts" partRef="#id209">
|
||||
<ApplicationRef application="TCC-VIS" label="Head_1:123-150;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id210">-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</Transform></Instance>
|
||||
<Instance id="inst1729056" name="Head2 Sub:;0,Parts" partRef="#id218">
|
||||
<ApplicationRef application="TCC-VIS" label="Head2 Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id219">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</Transform></Instance>
|
||||
<Instance id="inst1727816" name="Head_2:123-151;0,Parts" partRef="#id232">
|
||||
<ApplicationRef application="TCC-VIS" label="Head_2:123-151;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id233">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</Transform></Instance>
|
||||
<Instance id="inst2027256" name="Spark Plug:;0,Parts" partRef="#id239">
|
||||
<ApplicationRef application="TCC-VIS" label="Spark Plug:;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id240">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</Transform></Instance>
|
||||
<Instance id="inst1842808" name="Head Nut:123-005;0,Parts" partRef="#id245">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Nut:123-005;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id246">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</Transform></Instance>
|
||||
<Instance id="inst1906944" name="Rocker_Sub:;0,Parts" partRef="#id251">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker_Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id252">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</Transform></Instance>
|
||||
<Instance id="inst2033120" name="Rocker Arm Shaft:123-601;0,Parts" partRef="#id264">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Arm Shaft:123-601;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id265">-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</Transform></Instance>
|
||||
<Instance id="inst1789832" name="Rocker_Mount_Sub:;0,Parts" partRef="#id270">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker_Mount_Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id271">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</Transform></Instance>
|
||||
<Instance id="inst1796000" name="Rocker Mount:123-604;0,Parts" partRef="#id278">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Mount:123-604;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id279">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</Transform></Instance>
|
||||
<Instance id="inst2030512" name="Rocker Mount Cap:123-608;0,Parts" partRef="#id284">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Mount Cap:123-608;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id285">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</Transform></Instance>
|
||||
<Instance id="inst1725832" name="Rocker Bolt:123-603;0,Parts" partRef="#id290">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Bolt:123-603;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id291">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</Transform></Instance>
|
||||
<Instance id="inst2029080" name="Rocker Bolt:123-603;0,Parts" partRef="#id290">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Bolt:123-603;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id296">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</Transform></Instance>
|
||||
<Instance id="inst2033672" name="Rocker_Mount_Sub:;0,Parts" partRef="#id299">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker_Mount_Sub:;0,Parts.asm;0;1:"></ApplicationRef>
|
||||
<Transform id="id300">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</Transform></Instance>
|
||||
<Instance id="inst1996808" name="Rocker Mount:123-604;0,Parts" partRef="#id278">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Mount:123-604;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id312">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</Transform></Instance>
|
||||
<Instance id="inst1867136" name="Rocker Mount Cap:123-608;0,Parts" partRef="#id284">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Mount Cap:123-608;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id315">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</Transform></Instance>
|
||||
<Instance id="inst1948848" name="Rocker Bolt:123-603;0,Parts" partRef="#id290">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Bolt:123-603;0,Parts.part;0;2:"></ApplicationRef>
|
||||
<Transform id="id318">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</Transform></Instance>
|
||||
<Instance id="inst1997256" name="Rocker Bolt:123-603;0,Parts" partRef="#id290">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Bolt:123-603;0,Parts.part;0;3:"></ApplicationRef>
|
||||
<Transform id="id321">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</Transform></Instance>
|
||||
<Instance id="inst1949072" name="Rocker Arm Shaft:123-601;0,Parts" partRef="#id264">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Arm Shaft:123-601;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id324">-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</Transform></Instance>
|
||||
<Instance id="inst2052896" name="Valve Spring:123-702;0,Parts" partRef="#id327">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Spring:123-702;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id328">-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</Transform></Instance>
|
||||
<Instance id="inst1725624" name="Valve_Sub:;0,Parts" partRef="#id333">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve_Sub:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id334">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</Transform></Instance>
|
||||
<Instance id="inst1914472" name="Valve:123-700;0,Parts" partRef="#id341">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve:123-700;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id342">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</Transform></Instance>
|
||||
<Instance id="inst1734000" name="Valve Spring Cap:123-704;0,Parts" partRef="#id347">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Spring Cap:123-704;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id348">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</Transform></Instance>
|
||||
<Instance id="inst1730152" name="Spring:;0,Parts" partRef="#id353">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring:;0,Parts.asm;0;0:"></ApplicationRef>
|
||||
<Transform id="id354">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</Transform></Instance>
|
||||
<Instance id="inst1910040" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id362">-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</Transform></Instance>
|
||||
<Instance id="inst1910640" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id367">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</Transform></Instance>
|
||||
<Instance id="inst1911040" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;2:"></ApplicationRef>
|
||||
<Transform id="id370">-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</Transform></Instance>
|
||||
<Instance id="inst1911768" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;3:"></ApplicationRef>
|
||||
<Transform id="id373">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</Transform></Instance>
|
||||
<Instance id="inst1912168" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;4:"></ApplicationRef>
|
||||
<Transform id="id376">-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</Transform></Instance>
|
||||
<Instance id="inst1912968" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;5:"></ApplicationRef>
|
||||
<Transform id="id379">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</Transform></Instance>
|
||||
<Instance id="inst1920696" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;6:"></ApplicationRef>
|
||||
<Transform id="id382">-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</Transform></Instance>
|
||||
<Instance id="inst1827264" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;7:"></ApplicationRef>
|
||||
<Transform id="id385">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</Transform></Instance>
|
||||
<Instance id="inst1920976" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;8:"></ApplicationRef>
|
||||
<Transform id="id388">-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</Transform></Instance>
|
||||
<Instance id="inst1994408" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;9:"></ApplicationRef>
|
||||
<Transform id="id391">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</Transform></Instance>
|
||||
<Instance id="inst1994616" name="Valve_Sub:;0,Parts" partRef="#id394">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve_Sub:;0,Parts.asm;0;1:"></ApplicationRef>
|
||||
<Transform id="id395">-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</Transform></Instance>
|
||||
<Instance id="inst1995632" name="Spring:;0,Parts" partRef="#id408">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring:;0,Parts.asm;0;1:"></ApplicationRef>
|
||||
<Transform id="id409">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</Transform></Instance>
|
||||
<Instance id="inst1722840" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;10:"></ApplicationRef>
|
||||
<Transform id="id421">-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</Transform></Instance>
|
||||
<Instance id="inst1723976" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;11:"></ApplicationRef>
|
||||
<Transform id="id424">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</Transform></Instance>
|
||||
<Instance id="inst1725736" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;12:"></ApplicationRef>
|
||||
<Transform id="id427">-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</Transform></Instance>
|
||||
<Instance id="inst1995424" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;13:"></ApplicationRef>
|
||||
<Transform id="id430">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</Transform></Instance>
|
||||
<Instance id="inst1726232" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;14:"></ApplicationRef>
|
||||
<Transform id="id433">-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</Transform></Instance>
|
||||
<Instance id="inst1727160" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;15:"></ApplicationRef>
|
||||
<Transform id="id436">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</Transform></Instance>
|
||||
<Instance id="inst1722360" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;16:"></ApplicationRef>
|
||||
<Transform id="id439">-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</Transform></Instance>
|
||||
<Instance id="inst1995528" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;17:"></ApplicationRef>
|
||||
<Transform id="id442">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</Transform></Instance>
|
||||
<Instance id="inst1995008" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;18:"></ApplicationRef>
|
||||
<Transform id="id445">-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</Transform></Instance>
|
||||
<Instance id="inst2053416" name="Spring Link:;0,Parts" partRef="#id361">
|
||||
<ApplicationRef application="TCC-VIS" label="Spring Link:;0,Parts.part;0;19:"></ApplicationRef>
|
||||
<Transform id="id448">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</Transform></Instance>
|
||||
<Instance id="inst2053208" name="Valve:123-700;0,Parts" partRef="#id341">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve:123-700;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id451">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</Transform></Instance>
|
||||
<Instance id="inst1862560" name="Valve Spring Cap:123-704;0,Parts" partRef="#id347">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Spring Cap:123-704;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id454">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</Transform></Instance>
|
||||
<Instance id="inst1719832" name="Rocker Arm:123-600;0,Parts" partRef="#id457">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Arm:123-600;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id458">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</Transform></Instance>
|
||||
<Instance id="inst1729824" name="Rocker Arm_copy:123-602;0,Parts" partRef="#id463">
|
||||
<ApplicationRef application="TCC-VIS" label="Rocker Arm_copy:123-602;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id464">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</Transform></Instance>
|
||||
<Instance id="inst1726936" name="Valve Cover_copy:;0,Main" partRef="#id469">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Cover_copy:;0,Main.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id470">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</Transform></Instance>
|
||||
<Instance id="inst1722616" name="Head Nut:123-005;0,Parts" partRef="#id245">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Nut:123-005;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id475">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</Transform></Instance>
|
||||
<Instance id="inst1760240" name="Valve Spring:123-702;0,Parts" partRef="#id327">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Spring:123-702;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id478">-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</Transform></Instance>
|
||||
<Instance id="inst1724160" name="Valve Cover:123-701;0,Parts" partRef="#id481">
|
||||
<ApplicationRef application="TCC-VIS" label="Valve Cover:123-701;0,Parts.part;0;0:"></ApplicationRef>
|
||||
<Transform id="id482">-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</Transform></Instance>
|
||||
<Instance id="inst1723752" name="Head Stud:123-006;0,Parts" partRef="#id46">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Stud:123-006;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id489">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</Transform></Instance>
|
||||
<Instance id="inst1725216" name="Head Stud:123-006;0,Parts" partRef="#id46">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Stud:123-006;0,Parts.part;0;2:"></ApplicationRef>
|
||||
<Transform id="id492">-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</Transform></Instance>
|
||||
<Instance id="inst1758176" name="Head Stud:123-006;0,Parts" partRef="#id46">
|
||||
<ApplicationRef application="TCC-VIS" label="Head Stud:123-006;0,Parts.part;0;3:"></ApplicationRef>
|
||||
<Transform id="id495">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</Transform></Instance>
|
||||
<Instance id="inst1919952" name="Lifter:123-923;0,Parts" partRef="#id52">
|
||||
<ApplicationRef application="TCC-VIS" label="Lifter:123-923;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id498">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</Transform></Instance>
|
||||
<Instance id="inst2053728" name="Lifter:123-923;0,Parts" partRef="#id52">
|
||||
<ApplicationRef application="TCC-VIS" label="Lifter:123-923;0,Parts.part;0;2:"></ApplicationRef>
|
||||
<Transform id="id501">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</Transform></Instance>
|
||||
<Instance id="inst2050288" name="Lifter:123-923;0,Parts" partRef="#id52">
|
||||
<ApplicationRef application="TCC-VIS" label="Lifter:123-923;0,Parts.part;0;3:"></ApplicationRef>
|
||||
<Transform id="id504">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</Transform></Instance>
|
||||
<Instance id="inst1998064" name="rod:123-699;0,Parts" partRef="#id58">
|
||||
<ApplicationRef application="TCC-VIS" label="rod:123-699;0,Parts.part;0;1:"></ApplicationRef>
|
||||
<Transform id="id507">-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</Transform></Instance>
|
||||
<Part id="id14" name="2_Cylinder_Engine" instanceRefs="inst1779056 inst1913768 inst1910440 inst1937376 inst1895856 inst2026000 inst1848008 inst2010456 inst1758176 inst1919952 inst2053728 inst2050288 inst1998064" type="assembly">
|
||||
<UserData id="id33" type="Hidden_Metadata">
|
||||
<UserValue value="156001" title="TOOLKIT_CUSTOMER"></UserValue></UserData>
|
||||
<UserData id="id44">
|
||||
<UserValue value="2_Cylinder_Engine" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:30.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="2 Cylinder Engine" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-001" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Jan-10-2005 13:23:55.05" title="Version Mod. Date + Time"></UserValue></UserData>
|
||||
<Occurrence id="id16" instanceRefs="#inst1798736">
|
||||
<Transform id="id17">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Occurrence></Part>
|
||||
<Part id="id46" name="Head Stud:123-006;0,Parts" type="solid">
|
||||
<Bound id="id49" values="-0.03247146308422089 0.07456196844577789 -0.1150000020861626 0.006500001531094313 0.006495191715657711 0.1150000020861626"></Bound>
|
||||
<Representation id="id50" format="JT" location="./2_Cylinder_Engine/Head_Stud_123_006_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id52" name="Lifter:123-923;0,Parts" type="solid">
|
||||
<Bound id="id55" values="-0.02437210455536842 -0.03384878858923912 -0.04250000044703484 0.00774999987334013 0.007749963086098433 0.04250000044703484"></Bound>
|
||||
<Representation id="id56" format="JT" location="./2_Cylinder_Engine/Lifter_123_923_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id58" name="rod:123-699;0,Parts" type="solid">
|
||||
<Bound id="id61" values="0.02005359902977943 -0.006323420908302069 0 0.09100000560283661 0.03700000047683716 0.009999999776482582"></Bound>
|
||||
<Representation id="id62" format="JT" location="./2_Cylinder_Engine/rod_123_699_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id64" name="Piston Sub:;0,Parts" instanceRefs="inst1912768 inst1865720" type="assembly">
|
||||
<UserData id="id72">
|
||||
<UserValue value="Piston Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="Piston Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue></UserData>
|
||||
<Occurrence id="id66" instanceRefs="#inst1798736 #inst1937376">
|
||||
<Transform id="id67">-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</Transform></Occurrence></Part>
|
||||
<Part id="id74" name="Piston:123-844;0,Parts" type="solid">
|
||||
<Bound id="id80" values="0.0101108755916357 0.009526152163743973 0 0.05324159190058708 0.04650000110268593 0.04649999737739563"></Bound>
|
||||
<Occurrence id="id76" materialRef="id77" instanceRefs="#inst1798736 #inst1937376 #inst1912768">
|
||||
<Transform id="id78">-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</Transform></Occurrence>
|
||||
<Representation id="id81" format="JT" location="./2_Cylinder_Engine/Piston_123_844_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id83" name="Piston pin:123-845;0,Parts" type="solid">
|
||||
<Bound id="id86" values="-0.2534925639629364 0.09658930450677872 0.04250000044703484 0.01099999435245991 0.01099186204373837 0.04250000044703484"></Bound>
|
||||
<Representation id="id87" format="JT" location="./2_Cylinder_Engine/Piston_pin_123_845_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id89" name="Piston Sub:;0,Parts" instanceRefs="inst1671584 inst2012776" type="assembly">
|
||||
<UserData id="id100">
|
||||
<UserValue value="Piston Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:24.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Piston Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id108" name="CamShaft Sub:123-990;0,Parts" instanceRefs="inst2054176 inst1938944" type="assembly">
|
||||
<UserData id="id121">
|
||||
<UserValue value="CamShaft Sub:123-990;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:25.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="CamShaft Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-990" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Aug-14-2001 14:11:35.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id123" name="Cam_shaft:123-457;0,Parts" type="solid">
|
||||
<Bound id="id126" values="0.05063954740762711 -0.03493684902787209 -4.356868157628924e-005 0.1267500072717667 0.02063110843300819 0.01902950927615166"></Bound>
|
||||
<Representation id="id127" format="JT" location="./2_Cylinder_Engine/Cam_shaft_123_457_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id129" name="cam_gear:123-456;0,Parts" type="solid">
|
||||
<Bound id="id132" values="0 -0.1000000014901161 -0.002500000409781933 0.06898061186075211 0.06888007372617722 0.01250000018626452"></Bound>
|
||||
<Representation id="id133" format="JT" location="./2_Cylinder_Engine/cam_gear_123_456_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id135" name="Crank_Sub:123-555;0,Parts" instanceRefs="inst1838360 inst1857888" type="assembly">
|
||||
<UserData id="id148">
|
||||
<UserValue value="Crank_Sub:123-555;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Aug-14-2001 14:13:01.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="Crank_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-555" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Aug-14-2001 14:13:01.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id150" name="crank:123-782;0,Parts" type="solid">
|
||||
<Bound id="id153" values="4.847693617193727e-006 0 -0.01325000263750553 0.06299515068531036 0.03500000014901161 0.1267500072717667"></Bound>
|
||||
<Representation id="id154" format="JT" location="./2_Cylinder_Engine/crank_123_782_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id156" name="crank_gear:123-783;0,Parts" type="solid">
|
||||
<Bound id="id159" values="0 -0.0001077877532225102 -0.002500000409781933 0.03597993031144142 0.03586557507514954 0.01250000018626452"></Bound>
|
||||
<Representation id="id160" format="JT" location="./2_Cylinder_Engine/crank_gear_123_783_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id162" name="Body Sub:123-002;0,Parts" instanceRefs="inst2026392 inst2026184 inst1996904 inst1858736 inst1726008 inst1729056 inst1724160 inst1723752 inst1725216" type="assembly">
|
||||
<UserData id="id177">
|
||||
<UserValue value="Body Sub:123-002;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:29.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Body Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="123-002" title="I-DEAS Part Number"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="Aug-14-2001 14:10:00.00" title="Version Mod. Date + Time"></UserValue></UserData>
|
||||
<Occurrence id="id164" instanceRefs="#inst1798736 #inst2010456">
|
||||
<Transform id="id165">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</Transform></Occurrence></Part>
|
||||
<Part id="id179" name="Case_r:123-200;0,Parts" type="solid">
|
||||
<Bound id="id184" values="0 -0.04548577964305878 -0.003500004298985004 0.0949999988079071 0.1354857832193375 0.1164999976754189"></Bound>
|
||||
<Occurrence id="id181" materialRef="id182" instanceRefs="#inst1798736 #inst2010456 #inst2026392"></Occurrence>
|
||||
<Representation id="id185" format="JT" location="./2_Cylinder_Engine/Case_r_123_200_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id187" name="Cylinder_1:123-100;0,Parts" type="solid">
|
||||
<Bound id="id193" values="0.01856433786451817 0.05655883997678757 2.846240931830835e-007 0.08050000667572022 0.0950000062584877 0.08000028133392334"></Bound>
|
||||
<Occurrence id="id189" materialRef="id190" instanceRefs="#inst1798736 #inst2010456 #inst2026184">
|
||||
<Transform id="id191">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</Transform></Occurrence>
|
||||
<Representation id="id194" format="JT" location="./2_Cylinder_Engine/Cylinder_1_123_100_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id196" name="Cylinder_2:123-101;0,Parts" type="solid">
|
||||
<Bound id="id200" values="0.01856433786451817 0.05655883997678757 2.846240931830835e-007 0.08050000667572022 0.0950000062584877 0.08000028133392334"></Bound>
|
||||
<Occurrence id="id198" materialRef="id190" instanceRefs="#inst1798736 #inst2010456 #inst1996904"></Occurrence>
|
||||
<Representation id="id201" format="JT" location="./2_Cylinder_Engine/Cylinder_2_123_101_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id203" name="cylinder bolt pattern:;0,Parts" type="solid">
|
||||
<Bound id="id206" values="-0.1074714586138725 0.0745619609951973 -0.1150000020861626 0.08149999380111694 0.08149999380111694 0.1150000020861626"></Bound>
|
||||
<Representation id="id207" format="JT" location="./2_Cylinder_Engine/cylinder_bolt_pattern__0_Parts.jt"></Representation></Part>
|
||||
<Part id="id209" name="Head_1:123-150;0,Parts" type="solid">
|
||||
<Bound id="id215" values="0.005008736159652472 -0.03048798069357872 0.04119380190968514 0.1079999953508377 0.09020166844129562 0.0411965511739254"></Bound>
|
||||
<Occurrence id="id211" materialRef="id212" instanceRefs="#inst1798736 #inst2010456 #inst1726008">
|
||||
<Transform id="id213">-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</Transform></Occurrence>
|
||||
<Representation id="id216" format="JT" location="./2_Cylinder_Engine/Head_1_123_150_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id218" name="Head2 Sub:;0,Parts" instanceRefs="inst1727816 inst2027256 inst1842808 inst1906944 inst2052896 inst1725624 inst1994616 inst1719832 inst1729824 inst1726936 inst1722616 inst1760240" type="assembly">
|
||||
<UserData id="id230">
|
||||
<UserValue value="Head2 Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:27.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Head2 Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id232" name="Head_2:123-151;0,Parts" type="solid">
|
||||
<Bound id="id236" values="0.005008736159652472 -0.03048798069357872 -0.04119383916258812 0.1079999953508377 0.09020166844129562 0.04119651019573212"></Bound>
|
||||
<Occurrence id="id234" materialRef="id212" instanceRefs="#inst1798736 #inst2010456 #inst1729056 #inst1727816"></Occurrence>
|
||||
<Representation id="id237" format="JT" location="./2_Cylinder_Engine/Head_2_123_151_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id239" name="Spark Plug:;0,Parts" type="solid">
|
||||
<Bound id="id242" values="0.03006996028125286 0.2239631712436676 0.02060705050826073 0.01078151073306799 0.009165501222014427 0.0493929535150528"></Bound>
|
||||
<Representation id="id243" format="JT" location="./2_Cylinder_Engine/Spark_Plug__0_Parts.jt"></Representation></Part>
|
||||
<Part id="id245" name="Head Nut:123-005;0,Parts" type="solid">
|
||||
<Bound id="id248" values="0.02565165981650353 0.2141639441251755 -0.008499999530613422 0.01200000010430813 0.01199112832546234 0.008499999530613422"></Bound>
|
||||
<Representation id="id249" format="JT" location="./2_Cylinder_Engine/Head_Nut_123_005_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id251" name="Rocker_Sub:;0,Parts" instanceRefs="inst2033120 inst1789832 inst2033672 inst1949072" type="assembly">
|
||||
<UserData id="id262">
|
||||
<UserValue value="Rocker_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:27.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Rocker_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id264" name="Rocker Arm Shaft:123-601;0,Parts" type="solid">
|
||||
<Bound id="id267" values="-0.04317900538444519 0.4631594121456146 0.05750000104308128 0.006500000134110451 0.006495170295238495 0.05750000104308128"></Bound>
|
||||
<Representation id="id268" format="JT" location="./2_Cylinder_Engine/Rocker_Arm_Shaft_123_601_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id270" name="Rocker_Mount_Sub:;0,Parts" instanceRefs="inst1796000 inst2030512 inst1725832 inst2029080" type="assembly">
|
||||
<UserData id="id276">
|
||||
<UserValue value="Rocker_Mount_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="Rocker_Mount_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue></UserData></Part>
|
||||
<Part id="id278" name="Rocker Mount:123-604;0,Parts" type="solid">
|
||||
<Bound id="id281" values="0.005044352263212204 -0.05961518362164497 0.007500000298023224 0.0494999997317791 0.02099999971687794 0.007500000298023224"></Bound>
|
||||
<Representation id="id282" format="JT" location="./2_Cylinder_Engine/Rocker_Mount_123_604_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id284" name="Rocker Mount Cap:123-608;0,Parts" type="solid">
|
||||
<Bound id="id287" values="0.005044352263212204 -0.05511518567800522 0.007500000298023224 0.0494999997317791 0.006499998271465302 0.007500000298023224"></Bound>
|
||||
<Representation id="id288" format="JT" location="./2_Cylinder_Engine/Rocker_Mount_Cap_123_608_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id290" name="Rocker Bolt:123-603;0,Parts" type="solid">
|
||||
<Bound id="id293" values="0.02305358275771141 0.2096639275550842 -0.04050000011920929 0.007499999366700649 0.007494449149817228 0.04050000011920929"></Bound>
|
||||
<Representation id="id294" format="JT" location="./2_Cylinder_Engine/Rocker_Bolt_123_603_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id299" name="Rocker_Mount_Sub:;0,Parts" instanceRefs="inst1996808 inst1867136 inst1948848 inst1997256" type="assembly">
|
||||
<UserData id="id310">
|
||||
<UserValue value="Rocker_Mount_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:27.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Rocker_Mount_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id327" name="Valve Spring:123-702;0,Parts" type="solid">
|
||||
<Bound id="id330" values="-0.2873985767364502 -0.0646171048283577 0.0324999988079071 0.008999995887279511 0.008993340656161308 0.0324999988079071"></Bound>
|
||||
<Representation id="id331" format="JT" location="./2_Cylinder_Engine/Valve_Spring_123_702_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id333" name="Valve_Sub:;0,Parts" instanceRefs="inst1914472 inst1734000 inst1730152" type="assembly">
|
||||
<UserData id="id339">
|
||||
<UserValue value="Valve_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="Valve_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue></UserData></Part>
|
||||
<Part id="id341" name="Valve:123-700;0,Parts" type="solid">
|
||||
<Bound id="id344" values="0.1265590041875839 0.2941140830516815 0 0.05499999970197678 0.01800000295042992 0.01798668131232262"></Bound>
|
||||
<Representation id="id345" format="JT" location="./2_Cylinder_Engine/Valve_123_700_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id347" name="Valve Spring Cap:123-704;0,Parts" type="solid">
|
||||
<Bound id="id350" values="0.2066644430160523 0.2842055261135101 0 0.004499997943639755 0.01600000448524952 0.01598815992474556"></Bound>
|
||||
<Representation id="id351" format="JT" location="./2_Cylinder_Engine/Valve_Spring_Cap_123_704_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id353" name="Spring:;0,Parts" instanceRefs="inst1910040 inst1910640 inst1911040 inst1911768 inst1912168 inst1912968 inst1920696 inst1827264 inst1920976 inst1994408" type="assembly">
|
||||
<UserData id="id359">
|
||||
<UserValue value="Spring" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="Spring:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue></UserData></Part>
|
||||
<Part id="id361" name="Spring Link:;0,Parts" type="solid">
|
||||
<Bound id="id364" values="0.1303011178970337 -0.04939981177449226 0.007499259896576405 0.001999998930841684 0.01499851979315281 0.007499259896576405"></Bound>
|
||||
<Representation id="id365" format="JT" location="./2_Cylinder_Engine/Spring_Link__0_Parts.jt"></Representation></Part>
|
||||
<Part id="id394" name="Valve_Sub:;0,Parts" instanceRefs="inst1995632 inst2053208 inst1862560" type="assembly">
|
||||
<UserData id="id406">
|
||||
<UserValue value="Valve_Sub:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="**Changes not in Library**" title="Revision"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:26.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="Valve_Sub" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id408" name="Spring:;0,Parts" instanceRefs="inst1722840 inst1723976 inst1725736 inst1995424 inst1726232 inst1727160 inst1722360 inst1995528 inst1995008 inst2053416" type="assembly">
|
||||
<UserData id="id419">
|
||||
<UserValue value="Spring:;0,Parts" title="Name"></UserValue>
|
||||
<UserValue type="int" value="0" title="Version"></UserValue>
|
||||
<UserValue value="sgerus" title="Creator"></UserValue>
|
||||
<UserValue value="Jan-30-1998 16:58:25.00" title="Version Create Date + Time"></UserValue>
|
||||
<UserValue value="INITIAL" title="State"></UserValue>
|
||||
<UserValue value="Spring" title="I-DEAS Name"></UserValue>
|
||||
<UserValue value="sgerus" title="Last Modifier"></UserValue>
|
||||
<UserValue value="May-03-1999 15:12:04.00" title="Version Mod. Date + Time"></UserValue></UserData></Part>
|
||||
<Part id="id457" name="Rocker Arm:123-600;0,Parts" type="solid">
|
||||
<Bound id="id460" values="-0.2874188423156738 -0.1816282123327255 0.04250000044703484 0.03894562274217606 0.01755017042160034 0.04250000044703484"></Bound>
|
||||
<Representation id="id461" format="JT" location="./2_Cylinder_Engine/Rocker_Arm_123_600_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id463" name="Rocker Arm_copy:123-602;0,Parts" type="solid">
|
||||
<Bound id="id466" values="-0.2914990782737732 -0.1816282123327255 0.04250000044703484 0.03894564881920815 0.01755017600953579 0.04250000044703484"></Bound>
|
||||
<Representation id="id467" format="JT" location="./2_Cylinder_Engine/Rocker_Arm_copy_123_602_0_Parts.jt"></Representation></Part>
|
||||
<Part id="id469" name="Valve Cover_copy:;0,Main" type="solid">
|
||||
<Bound id="id472" values="0.003508739871904254 -0.03198798000812531 0.0386538989841938 0.101500004529953 0.09204161167144775 0.03634610027074814"></Bound>
|
||||
<Representation id="id473" format="JT" location="./2_Cylinder_Engine/Valve_Cover_copy__0_Main.jt"></Representation></Part>
|
||||
<Part id="id481" name="Valve Cover:123-701;0,Parts" type="solid">
|
||||
<Bound id="id486" values="0.003508739871904254 -0.03198803216218948 0.1113460958003998 0.101500004529953 0.09204155951738358 0.03634609654545784"></Bound>
|
||||
<Occurrence id="id483" instanceRefs="#inst1798736 #inst2010456 #inst1724160">
|
||||
<Transform id="id484">-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</Transform></Occurrence>
|
||||
<Representation id="id487" format="JT" location="./2_Cylinder_Engine/Valve_Cover_123_701_0_Parts.jt"></Representation></Part></InstanceGraph>
|
||||
<Material id="id77" diffuse="1 0 1" specular="1 0 1" emissive="0 0 0" ambient="0 0 0" shininess="96" alpha="0.1000000238418579"></Material>
|
||||
<Material id="id182" diffuse="0.847058892250061 0.847058892250061 0.847058892250061" specular="0.8000000715255737 0.8000000715255737 0.8000000715255737" emissive="0 0 0" ambient="0.1490196138620377 0.1490196138620377 0.1490196138620377" shininess="96" alpha="0.5"></Material>
|
||||
<Material id="id190" diffuse="0.6509804129600525 0.7921569347381592 0.9411765336990356" specular="0.6509804129600525 0.7921569347381592 0.9411765336990356" emissive="0 0 0" ambient="0.1490196138620377 0.1490196138620377 0.1490196138620377" shininess="96" alpha="0.5"></Material>
|
||||
<Material id="id212" diffuse="1 0 0" specular="1 0 0" emissive="0 0 0" ambient="0.1490196138620377 0.1490196138620377 0.1490196138620377" shininess="96" alpha="0.5"></Material></ProductDef></PLMXML>
|
Binary file not shown.
Binary file not shown.
1519
data/tests/Step/as1-ac-214_small.stp
Normal file
1519
data/tests/Step/as1-ac-214_small.stp
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -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,
|
||||
|
|
|
@ -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<std::string>& 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&) {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 <Base/Console.h>
|
||||
|
@ -110,7 +109,7 @@ using namespace zipios;
|
|||
|
||||
#if FC_DEBUG
|
||||
# define FC_LOGFEATUREUPDATE
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// typedef boost::property<boost::vertex_root_t, DocumentObject* > VertexProperty;
|
||||
typedef boost::adjacency_list <
|
||||
|
@ -136,12 +135,13 @@ struct DocumentP
|
|||
std::map<std::string,DocumentObject*> objectMap;
|
||||
DocumentObject* activeObject;
|
||||
Transaction *activeUndoTransaction;
|
||||
Transaction *activeTransaction;
|
||||
Transaction *activeTransaction; ///< FIXME: has no effect (2015-09-01, Fat-Zer)
|
||||
int iTransactionMode;
|
||||
int iTransactionCount;
|
||||
std::map<int,Transaction*> mTransactions;
|
||||
std::map<Vertex,DocumentObject*> 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<int>(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<DocumentObject*>::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<std::string,DocumentObject*>::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<App::DocumentObject*>& objs) const
|
|||
Vertex v = add_vertex(DepList);
|
||||
ObjectMap[*it] = v;
|
||||
VertexMap[v] = *it;
|
||||
}
|
||||
}
|
||||
|
||||
for (std::vector<DocumentObject*>::const_iterator it = d->objectArray.begin(); it != d->objectArray.end();++it) {
|
||||
std::vector<DocumentObject*> outList = (*it)->getOutList();
|
||||
|
@ -1639,8 +1662,11 @@ Document::getDependencyList(const std::vector<App::DocumentObject*>& objs) const
|
|||
// this sort gives the execute
|
||||
boost::topological_sort(DepList, std::front_inserter(make_order));
|
||||
}
|
||||
catch (const std::exception&) {
|
||||
return std::vector<App::DocumentObject*>();
|
||||
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<Vertex> out;
|
||||
|
@ -1751,7 +1777,7 @@ void Document::recompute()
|
|||
|
||||
for (std::list<Vertex>::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<Vertex,DocumentObject*>::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::BaseClass*>(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<Vertex,DocumentObject*>::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<std::string,DocumentObject*>::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<std::string,DocumentObject*>::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<std::string,DocumentObject*>::const_iterator pos;
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
|
||||
#include "PropertyContainer.h"
|
||||
#include "PropertyStandard.h"
|
||||
#include "PropertyLinks.h"
|
||||
|
||||
#include <map>
|
||||
#include <vector>
|
||||
|
@ -84,17 +85,21 @@ public:
|
|||
PropertyUUID Uid;
|
||||
/** License string
|
||||
* Holds the short license string for the Item, e.g. CC-BY
|
||||
* for the Creative Commons license suit.
|
||||
* for the Creative Commons license suit.
|
||||
*/
|
||||
App::PropertyString License;
|
||||
/// License descripton/contract URL
|
||||
App::PropertyString LicenseURL;
|
||||
/// Meta descriptons
|
||||
App::PropertyMap Meta;
|
||||
/// Meta descriptons
|
||||
/// Material descriptons, used and defined in the Material module.
|
||||
App::PropertyMap Material;
|
||||
/// read-only name of the temp dir created wen the document is opened
|
||||
PropertyString TransientDir;
|
||||
PropertyString TransientDir;
|
||||
/// Tip object of the document (if any)
|
||||
PropertyLink Tip;
|
||||
/// Tip object of the document (if any)
|
||||
PropertyString TipName;
|
||||
//@}
|
||||
|
||||
/** @name Signals of the document */
|
||||
|
@ -116,7 +121,7 @@ public:
|
|||
boost::signal<void (const App::Document&)> signalRedo;
|
||||
/** signal on load/save document
|
||||
* this signal is given when the document gets streamed.
|
||||
* you can use this hook to write additional information in
|
||||
* you can use this hook to write additional information in
|
||||
* the file (like the Gui::Document it does).
|
||||
*/
|
||||
boost::signal<void (Base::Writer &)> signalSaveDocument;
|
||||
|
@ -162,9 +167,14 @@ public:
|
|||
/** @name Object handling */
|
||||
//@{
|
||||
/** Add a feature of sType with sName (ASCII) to this document and set it active.
|
||||
* Unicode names are set through the Label property.
|
||||
* Unicode names are set through the Label propery.
|
||||
* @param sType the type of created object
|
||||
* @param pObjectName if nonNULL use that name otherwise generate a new uniq name based on the \a sType
|
||||
* @param isNew if false don't call the \c DocumentObject::setupObject() callback (default is true)
|
||||
*/
|
||||
DocumentObject *addObject(const char* sType, const char* pObjectName=0);
|
||||
DocumentObject *addObject(const char* sType, const char* pObjectName=0, bool isNew=true);
|
||||
/// Remove a feature out of the document
|
||||
void remObject(const char* sName);
|
||||
/** Add an existing feature with sName (ASCII) to this document and set it active.
|
||||
* Unicode names are set through the Label property.
|
||||
* This is an overloaded function of the function above and can be used to create
|
||||
|
@ -173,8 +183,8 @@ public:
|
|||
* is raisedd.
|
||||
*/
|
||||
void addObject(DocumentObject*, const char* pObjectName=0);
|
||||
/// Remove a feature out of the document
|
||||
void remObject(const char* sName);
|
||||
|
||||
|
||||
/** Copy an object from another document to this document
|
||||
* If \a recursive is true then all objects this object depends on
|
||||
* are copied as well. By default \a recursive is false.
|
||||
|
@ -192,6 +202,8 @@ public:
|
|||
DocumentObject *getActiveObject(void) const;
|
||||
/// Returns a Object of this document
|
||||
DocumentObject *getObject(const char *Name) const;
|
||||
/// Returns true if the DocumentObject is contained in this document
|
||||
const bool isIn(const DocumentObject *pFeat) const;
|
||||
/// Returns a Name of an Object or 0
|
||||
const char *getObjectName(DocumentObject *pFeat) const;
|
||||
/// Returns a Name of an Object or 0
|
||||
|
@ -236,16 +248,16 @@ public:
|
|||
/** @name methods for the UNDO REDO and Transaction handling */
|
||||
//@{
|
||||
/// switch the level of Undo/Redo
|
||||
void setUndoMode(int iMode);
|
||||
void setUndoMode(int iMode);
|
||||
/// switch the level of Undo/Redo
|
||||
int getUndoMode(void) const;
|
||||
int getUndoMode(void) const;
|
||||
/// switch the tranaction mode
|
||||
void setTransactionMode(int iMode);
|
||||
/// Open a new command Undo/Redo, an UTF-8 name can be specified
|
||||
void openTransaction(const char* name=0);
|
||||
// Commit the Command transaction. Do nothing If there is no Command transaction open.
|
||||
void commitTransaction();
|
||||
/// Abort the actually running transaction.
|
||||
/// Abort the actually running transaction.
|
||||
void abortTransaction();
|
||||
/// Check if a transaction is open
|
||||
bool hasPendingTransaction() const;
|
||||
|
@ -300,7 +312,7 @@ public:
|
|||
friend class Transaction;
|
||||
friend class TransactionObject;
|
||||
|
||||
/// Destruction
|
||||
/// Destruction
|
||||
virtual ~Document();
|
||||
|
||||
protected:
|
||||
|
|
|
@ -59,7 +59,7 @@ DocumentObject::DocumentObject(void)
|
|||
DocumentObject::~DocumentObject(void)
|
||||
{
|
||||
if (!PythonObject.is(Py::_None())){
|
||||
// Remark: The API of Py::Object has been changed to set whether the wrapper owns the passed
|
||||
// Remark: The API of Py::Object has been changed to set whether the wrapper owns the passed
|
||||
// Python object or not. In the constructor we forced the wrapper to own the object so we need
|
||||
// not to dec'ref the Python object any more.
|
||||
// But we must still invalidate the Python object because it need not to be
|
||||
|
@ -115,7 +115,7 @@ const char* DocumentObject::getStatusString(void) const
|
|||
const char *DocumentObject::getNameInDocument(void) const
|
||||
{
|
||||
// Note: It can happen that we query the internal name of an object even if it is not
|
||||
// part of a document (anymore). This is the case e.g. if we have a reference in Python
|
||||
// part of a document (anymore). This is the case e.g. if we have a reference in Python
|
||||
// to an object that has been removed from the document. In this case we should rather
|
||||
// return 0.
|
||||
//assert(pcNameInDocument);
|
||||
|
@ -172,6 +172,40 @@ DocumentObjectGroup* DocumentObject::getGroup() const
|
|||
return DocumentObjectGroup::getGroupOfObject(this);
|
||||
}
|
||||
|
||||
bool DocumentObject::testIfLinkDAGCompatible(DocumentObject *linkTo) const
|
||||
{
|
||||
std::vector<App::DocumentObject*> linkTo_in_vector;
|
||||
linkTo_in_vector.push_back(linkTo);
|
||||
return this->testIfLinkDAGCompatible(linkTo_in_vector);
|
||||
}
|
||||
|
||||
bool DocumentObject::testIfLinkDAGCompatible(const std::vector<DocumentObject *> &linksTo) const
|
||||
{
|
||||
Document* doc = this->getDocument();
|
||||
if (!doc)
|
||||
throw Base::Exception("DocumentObject::testIfLinkIsDAG: object is not in any document.");
|
||||
std::vector<App::DocumentObject*> deplist = doc->getDependencyList(linksTo);
|
||||
if( std::find(deplist.begin(),deplist.end(),this) != deplist.end() )
|
||||
//found this in dependency list
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
bool DocumentObject::testIfLinkDAGCompatible(PropertyLinkSubList &linksTo) const
|
||||
{
|
||||
const std::vector<App::DocumentObject*> &linksTo_in_vector = linksTo.getValues();
|
||||
return this->testIfLinkDAGCompatible(linksTo_in_vector);
|
||||
}
|
||||
|
||||
bool DocumentObject::testIfLinkDAGCompatible(PropertyLinkSub &linkTo) const
|
||||
{
|
||||
std::vector<App::DocumentObject*> linkTo_in_vector;
|
||||
linkTo_in_vector.reserve(1);
|
||||
linkTo_in_vector.push_back(linkTo.getValue());
|
||||
return this->testIfLinkDAGCompatible(linkTo_in_vector);
|
||||
}
|
||||
|
||||
void DocumentObject::onLostLinkToObject(DocumentObject*)
|
||||
{
|
||||
|
||||
|
@ -221,7 +255,7 @@ PyObject *DocumentObject::getPyObject(void)
|
|||
// ref counter is set to 1
|
||||
PythonObject = Py::Object(new DocumentObjectPy(this),true);
|
||||
}
|
||||
return Py::new_reference_to(PythonObject);
|
||||
return Py::new_reference_to(PythonObject);
|
||||
}
|
||||
|
||||
std::vector<PyObject *> DocumentObject::getPySubObjects(const std::vector<std::string>&) const
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
|
||||
#include <App/PropertyContainer.h>
|
||||
#include <App/PropertyStandard.h>
|
||||
#include <App/PropertyLinks.h>
|
||||
#include <App/PropertyExpressionEngine.h>
|
||||
|
||||
#include <Base/TimeInfo.h>
|
||||
|
@ -47,6 +48,7 @@ enum ObjectStatus {
|
|||
New = 2,
|
||||
Recompute = 3,
|
||||
Restore = 4,
|
||||
Delete = 5,
|
||||
Expand = 16
|
||||
};
|
||||
|
||||
|
@ -114,6 +116,8 @@ public:
|
|||
bool isRecomputing() const {return StatusBits.test(3);}
|
||||
/// returns true if this objects is currently restoring from file
|
||||
bool isRestoring() const {return StatusBits.test(4);}
|
||||
/// returns true if this objects is currently restoring from file
|
||||
bool isDeleting() const {return StatusBits.test(5);}
|
||||
/// recompute only this object
|
||||
virtual App::DocumentObjectExecReturn *recompute(void);
|
||||
/// return the status bits
|
||||
|
@ -129,6 +133,21 @@ public:
|
|||
/// get group if object is part of a group, otherwise 0 is returned
|
||||
DocumentObjectGroup* getGroup() const;
|
||||
|
||||
/**
|
||||
* @brief testIfLinkIsDAG tests a link that is about to be created for
|
||||
* circular references.
|
||||
* @param objToLinkIn (input). The object this object is to depend on after
|
||||
* the link is going to be created.
|
||||
* @return true if link can be created (no cycles will be made). False if
|
||||
* the link will cause a circular dependency and break recomputes. Throws an
|
||||
* error if the document already has a circular dependency.
|
||||
* That is, if the return is true, the link is allowed.
|
||||
*/
|
||||
bool testIfLinkDAGCompatible(DocumentObject* linkTo) const;
|
||||
bool testIfLinkDAGCompatible(const std::vector<DocumentObject *> &linksTo) const;
|
||||
bool testIfLinkDAGCompatible(App::PropertyLinkSubList &linksTo) const;
|
||||
bool testIfLinkDAGCompatible(App::PropertyLinkSub &linkTo) const;
|
||||
|
||||
|
||||
public:
|
||||
/** mustExecute
|
||||
|
@ -194,7 +213,7 @@ protected:
|
|||
* 2 - object is marked as 'new'
|
||||
* 3 - object is marked as 'recompute', i.e. the object gets recomputed now
|
||||
* 4 - object is marked as 'restoring', i.e. the object gets loaded at the moment
|
||||
* 5 - reserved
|
||||
* 5 - object is marked as 'deleting', i.e. the object gets deleted at the moment
|
||||
* 6 - reserved
|
||||
* 7 - reserved
|
||||
* 16 - object is marked as 'expanded' in the tree view
|
||||
|
@ -213,6 +232,10 @@ protected:
|
|||
virtual void onDocumentRestored() {}
|
||||
/// get called after setting the document
|
||||
virtual void onSettingDocument() {}
|
||||
/// get called after a brand new object was created
|
||||
virtual void setupObject() {}
|
||||
/// get called when object is going to be removed from the document
|
||||
virtual void unsetupObject() {}
|
||||
|
||||
/// python object of this class and all descendend
|
||||
protected: // attributes
|
||||
|
|
|
@ -29,14 +29,14 @@
|
|||
#include "DocumentObjectGroup.h"
|
||||
#include "DocumentObjectGroupPy.h"
|
||||
#include "Document.h"
|
||||
#include "FeaturePythonPyImp.h"
|
||||
#include "FeaturePythonPyImp.h"
|
||||
|
||||
using namespace App;
|
||||
|
||||
PROPERTY_SOURCE(App::DocumentObjectGroup, App::DocumentObject)
|
||||
|
||||
|
||||
DocumentObjectGroup::DocumentObjectGroup()
|
||||
DocumentObjectGroup::DocumentObjectGroup()
|
||||
{
|
||||
ADD_PROPERTY_TYPE(Group,(0),"Base",(App::PropertyType)(Prop_Output),"List of referenced objects");
|
||||
}
|
||||
|
@ -63,20 +63,22 @@ void DocumentObjectGroup::addObject(DocumentObject* obj)
|
|||
|
||||
void DocumentObjectGroup::removeObject(DocumentObject* obj)
|
||||
{
|
||||
std::vector<DocumentObject*> grp = Group.getValues();
|
||||
for (std::vector<DocumentObject*>::iterator it = grp.begin(); it != grp.end(); ++it) {
|
||||
if (*it == obj) {
|
||||
grp.erase(it);
|
||||
Group.setValues(grp);
|
||||
break;
|
||||
}
|
||||
const std::vector<DocumentObject*> & grp = Group.getValues();
|
||||
std::vector<DocumentObject*> newGrp;
|
||||
|
||||
std::remove_copy (grp.begin(), grp.end(), std::back_inserter (newGrp), obj);
|
||||
if (grp.size() != newGrp.size()) {
|
||||
Group.setValues (newGrp);
|
||||
}
|
||||
}
|
||||
|
||||
void DocumentObjectGroup::removeObjectsFromDocument()
|
||||
{
|
||||
std::vector<DocumentObject*> grp = Group.getValues();
|
||||
for (std::vector<DocumentObject*>::iterator it = grp.begin(); it != grp.end(); ++it) {
|
||||
const std::vector<DocumentObject*> & grp = Group.getValues();
|
||||
// Use set so iterate on each linked object exactly one time (in case of multiple links to the same document)
|
||||
std::set<DocumentObject*> grpSet (grp.begin(), grp.end());
|
||||
|
||||
for (std::set<DocumentObject*>::iterator it = grpSet.begin(); it != grpSet.end(); ++it) {
|
||||
removeObjectFromDocument(*it);
|
||||
}
|
||||
}
|
||||
|
@ -85,11 +87,9 @@ void DocumentObjectGroup::removeObjectFromDocument(DocumentObject* obj)
|
|||
{
|
||||
// remove all children
|
||||
if (obj->getTypeId().isDerivedFrom(DocumentObjectGroup::getClassTypeId())) {
|
||||
std::vector<DocumentObject*> grp = static_cast<DocumentObjectGroup*>(obj)->Group.getValues();
|
||||
for (std::vector<DocumentObject*>::iterator it = grp.begin(); it != grp.end(); ++it) {
|
||||
// recursive call to remove all subgroups
|
||||
removeObjectFromDocument(*it);
|
||||
}
|
||||
DocumentObjectGroup *grp = static_cast<DocumentObjectGroup*>(obj);
|
||||
// recursive call to remove all subgroups
|
||||
grp->removeObjectsFromDocument();
|
||||
}
|
||||
|
||||
this->getDocument()->remObject(obj->getNameInDocument());
|
||||
|
@ -103,12 +103,18 @@ DocumentObject *DocumentObjectGroup::getObject(const char *Name) const
|
|||
return 0;
|
||||
}
|
||||
|
||||
bool DocumentObjectGroup::hasObject(const DocumentObject* obj) const
|
||||
bool DocumentObjectGroup::hasObject(const DocumentObject* obj, bool recursive) const
|
||||
{
|
||||
const std::vector<DocumentObject*>& grp = Group.getValues();
|
||||
for (std::vector<DocumentObject*>::const_iterator it = grp.begin(); it != grp.end(); ++it) {
|
||||
if (*it == obj)
|
||||
if (*it == obj) {
|
||||
return true;
|
||||
} else if ( recursive && (*it)->isDerivedFrom (App::DocumentObjectGroup::getTypeId()) ) {
|
||||
App::DocumentObjectGroup *subGroup = static_cast<App::DocumentObjectGroup *> (*it);
|
||||
if (subGroup->hasObject (obj, recursive)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@ -162,7 +168,7 @@ DocumentObjectGroup* DocumentObjectGroup::getGroupOfObject(const DocumentObject*
|
|||
{
|
||||
const Document* doc = obj->getDocument();
|
||||
std::vector<DocumentObject*> grps = doc->getObjectsOfType(DocumentObjectGroup::getClassTypeId());
|
||||
for (std::vector<DocumentObject*>::iterator it = grps.begin(); it != grps.end(); ++it) {
|
||||
for (std::vector<DocumentObject*>::const_iterator it = grps.begin(); it != grps.end(); ++it) {
|
||||
DocumentObjectGroup* grp = (DocumentObjectGroup*)(*it);
|
||||
if (grp->hasObject(obj))
|
||||
return grp;
|
||||
|
@ -177,7 +183,7 @@ PyObject *DocumentObjectGroup::getPyObject()
|
|||
// ref counter is set to 1
|
||||
PythonObject = Py::Object(new DocumentObjectGroupPy(this),true);
|
||||
}
|
||||
return Py::new_reference_to(PythonObject);
|
||||
return Py::new_reference_to(PythonObject);
|
||||
}
|
||||
|
||||
// Python feature ---------------------------------------------------------
|
||||
|
|
|
@ -45,11 +45,11 @@ public:
|
|||
|
||||
/** @name Object handling */
|
||||
//@{
|
||||
/** Adds an object of \a sType with \a pObjectName to the document this group belongs to and
|
||||
/** Adds an object of \a sType with \a pObjectName to the document this group belongs to and
|
||||
* append it to this group as well.
|
||||
*/
|
||||
DocumentObject *addObject(const char* sType, const char* pObjectName);
|
||||
/* Adds the object \a obj to this group.
|
||||
/* Adds the object \a obj to this group.
|
||||
*/
|
||||
void addObject(DocumentObject* obj);
|
||||
/** Removes an object from this group.
|
||||
|
@ -64,8 +64,10 @@ public:
|
|||
DocumentObject *getObject(const char* Name) const;
|
||||
/**
|
||||
* Checks whether the object \a obj is part of this group.
|
||||
* @param obj the object to check for.
|
||||
* @param recursive if true check also if the obj is child of some sub group (default is false).
|
||||
*/
|
||||
bool hasObject(const DocumentObject* obj) const;
|
||||
bool hasObject(const DocumentObject* obj, bool recursive=false) const;
|
||||
/**
|
||||
* Checks whether this group object is a child (or sub-child)
|
||||
* of the given group object.
|
||||
|
|
|
@ -39,10 +39,14 @@
|
|||
</Documentation>
|
||||
</Methode>
|
||||
<Methode Name="hasObject">
|
||||
<Documentation>
|
||||
<UserDocu>Checks if the group has a given object</UserDocu>
|
||||
<Documentation>
|
||||
<UserDocu>hasObject(obj, recursive=false)
|
||||
Checks if the group has a given object
|
||||
@param obj the object to check for.
|
||||
@param recursive if true check also if the obj is child of some sub group (default is false).
|
||||
</UserDocu>
|
||||
</Documentation>
|
||||
</Methode>
|
||||
<CustomAttributes />
|
||||
</PythonExport>
|
||||
</GenerateModel>
|
||||
</GenerateModel>
|
||||
|
|
|
@ -48,7 +48,7 @@ PyObject* DocumentObjectGroupPy::newObject(PyObject *args)
|
|||
DocumentObject *object = getDocumentObjectGroupPtr()->addObject(sType, sName);
|
||||
if ( object ) {
|
||||
return object->getPyObject();
|
||||
}
|
||||
}
|
||||
else {
|
||||
PyErr_Format(Base::BaseExceptionFreeCADError, "Cannot create object of type '%s'", sType);
|
||||
return NULL;
|
||||
|
@ -58,8 +58,8 @@ PyObject* DocumentObjectGroupPy::newObject(PyObject *args)
|
|||
PyObject* DocumentObjectGroupPy::addObject(PyObject *args)
|
||||
{
|
||||
PyObject *object;
|
||||
if (!PyArg_ParseTuple(args, "O!", &(DocumentObjectPy::Type), &object)) // convert args: Python->C
|
||||
return NULL; // NULL triggers exception
|
||||
if (!PyArg_ParseTuple(args, "O!", &(DocumentObjectPy::Type), &object)) // convert args: Python->C
|
||||
return NULL; // NULL triggers exception
|
||||
|
||||
DocumentObjectPy* docObj = static_cast<DocumentObjectPy*>(object);
|
||||
if (!docObj->getDocumentObjectPtr() || !docObj->getDocumentObjectPtr()->getNameInDocument()) {
|
||||
|
@ -109,8 +109,8 @@ PyObject* DocumentObjectGroupPy::addObject(PyObject *args)
|
|||
PyObject* DocumentObjectGroupPy::removeObject(PyObject *args)
|
||||
{
|
||||
PyObject *object;
|
||||
if (!PyArg_ParseTuple(args, "O!", &(DocumentObjectPy::Type), &object)) // convert args: Python->C
|
||||
return NULL; // NULL triggers exception
|
||||
if (!PyArg_ParseTuple(args, "O!", &(DocumentObjectPy::Type), &object)) // convert args: Python->C
|
||||
return NULL; // NULL triggers exception
|
||||
|
||||
DocumentObjectPy* docObj = static_cast<DocumentObjectPy*>(object);
|
||||
if (!docObj->getDocumentObjectPtr() || !docObj->getDocumentObjectPtr()->getNameInDocument()) {
|
||||
|
@ -148,8 +148,8 @@ PyObject* DocumentObjectGroupPy::removeObject(PyObject *args)
|
|||
|
||||
PyObject* DocumentObjectGroupPy::removeObjectsFromDocument(PyObject *args)
|
||||
{
|
||||
if (!PyArg_ParseTuple(args, "")) // convert args: Python->C
|
||||
return NULL; // NULL triggers exception
|
||||
if (!PyArg_ParseTuple(args, "")) // convert args: Python->C
|
||||
return NULL; // NULL triggers exception
|
||||
|
||||
getDocumentObjectGroupPtr()->removeObjectsFromDocument();
|
||||
Py_Return;
|
||||
|
@ -158,8 +158,8 @@ PyObject* DocumentObjectGroupPy::removeObjectsFromDocument(PyObject *args)
|
|||
PyObject* DocumentObjectGroupPy::getObject(PyObject *args)
|
||||
{
|
||||
char* pcName;
|
||||
if (!PyArg_ParseTuple(args, "s", &pcName)) // convert args: Python->C
|
||||
return NULL; // NULL triggers exception
|
||||
if (!PyArg_ParseTuple(args, "s", &pcName)) // convert args: Python->C
|
||||
return NULL; // NULL triggers exception
|
||||
|
||||
DocumentObject* obj = getDocumentObjectGroupPtr()->getObject(pcName);
|
||||
if ( obj ) {
|
||||
|
@ -172,8 +172,10 @@ PyObject* DocumentObjectGroupPy::getObject(PyObject *args)
|
|||
PyObject* DocumentObjectGroupPy::hasObject(PyObject *args)
|
||||
{
|
||||
PyObject *object;
|
||||
if (!PyArg_ParseTuple(args, "O!", &(DocumentObjectPy::Type), &object)) // convert args: Python->C
|
||||
return NULL; // NULL triggers exception
|
||||
PyObject *recursivePy = 0;
|
||||
int recursive = 0;
|
||||
if (!PyArg_ParseTuple(args, "O!|O", &(DocumentObjectPy::Type), &object, &recursivePy))
|
||||
return NULL; // NULL triggers exception
|
||||
|
||||
DocumentObjectPy* docObj = static_cast<DocumentObjectPy*>(object);
|
||||
if (!docObj->getDocumentObjectPtr() || !docObj->getDocumentObjectPtr()->getNameInDocument()) {
|
||||
|
@ -184,8 +186,16 @@ PyObject* DocumentObjectGroupPy::hasObject(PyObject *args)
|
|||
PyErr_SetString(Base::BaseExceptionFreeCADError, "Cannot check an object from another document with this group");
|
||||
return NULL;
|
||||
}
|
||||
if (recursivePy) {
|
||||
recursive = PyObject_IsTrue(recursivePy);
|
||||
if ( recursive == -1) {
|
||||
// Note: shouldn't happen
|
||||
PyErr_SetString(PyExc_ValueError, "The recursive parameter should be of boolean type");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
bool v = getDocumentObjectGroupPtr()->hasObject(docObj->getDocumentObjectPtr());
|
||||
bool v = getDocumentObjectGroupPtr()->hasObject(docObj->getDocumentObjectPtr(), recursive);
|
||||
return PyBool_FromLong(v ? 1 : 0);
|
||||
}
|
||||
|
||||
|
@ -196,6 +206,6 @@ PyObject *DocumentObjectGroupPy::getCustomAttributes(const char* /*attr*/) const
|
|||
|
||||
int DocumentObjectGroupPy::setCustomAttributes(const char* /*attr*/, PyObject* /*obj*/)
|
||||
{
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) Jürgen Riegel (juergen.riegel@web.de) 2002 *
|
||||
* Copyright (c) Juergen Riegel (juergen.riegel@web.de) 2002 *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
|
@ -45,7 +45,7 @@ GeoFeature::GeoFeature(void)
|
|||
|
||||
GeoFeature::~GeoFeature(void)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
void GeoFeature::transformPlacement(const Base::Placement &transform)
|
||||
{
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) Jürgen Riegel (juergen.riegel@web.de) 2002 *
|
||||
* Copyright (c) Juergen Riegel (juergen.riegel@web.de) 2002 *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
|
@ -46,10 +46,17 @@ public:
|
|||
GeoFeature(void);
|
||||
virtual ~GeoFeature();
|
||||
|
||||
/**
|
||||
* @brief transformPlacement applies transform to placement of this shape.
|
||||
* Override this function to propagate the change of placement to base
|
||||
* features, for example. By the time of writing this comment, the function
|
||||
* was only called by alignment task (Edit->Alignment)
|
||||
* @param transform (input).
|
||||
*/
|
||||
virtual void transformPlacement(const Base::Placement &transform);
|
||||
};
|
||||
|
||||
} //namespace App
|
||||
|
||||
|
||||
#endif // APP_GEOFEATURE_H
|
||||
#endif // APP_GEOFEATURE_H
|
||||
|
|
175
src/App/GeoFeatureGroup.cpp
Normal file
175
src/App/GeoFeatureGroup.cpp
Normal file
|
@ -0,0 +1,175 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) Juergen Riegel (juergen.riegel@web.de) 2014 *
|
||||
* Copyright (c) Alexander Golubev (Fat-Zer) <fatzer2@gmail.com> 2015 *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#ifndef _PreComp_
|
||||
#endif
|
||||
|
||||
#include <App/Document.h>
|
||||
|
||||
#include "GeoFeatureGroup.h"
|
||||
#include "GeoFeatureGroupPy.h"
|
||||
#include "FeaturePythonPyImp.h"
|
||||
|
||||
using namespace App;
|
||||
|
||||
|
||||
PROPERTY_SOURCE(App::GeoFeatureGroup, App::DocumentObjectGroup)
|
||||
|
||||
|
||||
//===========================================================================
|
||||
// Feature
|
||||
//===========================================================================
|
||||
|
||||
GeoFeatureGroup::GeoFeatureGroup(void)
|
||||
{
|
||||
ADD_PROPERTY(Placement,(Base::Placement()));
|
||||
}
|
||||
|
||||
GeoFeatureGroup::~GeoFeatureGroup(void)
|
||||
{
|
||||
}
|
||||
|
||||
void GeoFeatureGroup::transformPlacement(const Base::Placement &transform)
|
||||
{
|
||||
// NOTE: Keep in sync with APP::GeoFeature
|
||||
Base::Placement plm = this->Placement.getValue();
|
||||
plm = transform * plm;
|
||||
this->Placement.setValue(plm);
|
||||
}
|
||||
|
||||
std::vector<App::DocumentObject*> GeoFeatureGroup::getGeoSubObjects () const {
|
||||
const auto & objs = Group.getValues();
|
||||
|
||||
std::set<const App::DocumentObjectGroup*> processedGroups;
|
||||
std::set<App::DocumentObject*> rvSet;
|
||||
std::set<App::DocumentObject*> curSearchSet (objs.begin(), objs.end());
|
||||
|
||||
processedGroups.insert ( this );
|
||||
|
||||
while ( !curSearchSet.empty() ) {
|
||||
rvSet.insert ( curSearchSet.begin (), curSearchSet.end () );
|
||||
|
||||
std::set<App::DocumentObject*> nextSearchSet;
|
||||
for ( auto obj: curSearchSet) {
|
||||
if ( isNonGeoGroup (obj) ) {
|
||||
const App::DocumentObjectGroup *grp = static_cast<const App::DocumentObjectGroup *> (obj);
|
||||
// Check if we havent already processed the element may happen in case of nontree structure
|
||||
// Note: if the condition is false this generally indicates malformed structure
|
||||
if ( processedGroups.find (grp) == processedGroups.end() ) {
|
||||
processedGroups.insert ( grp );
|
||||
const auto & objs = grp->Group.getValues();
|
||||
nextSearchSet.insert (objs.begin(), objs.end());
|
||||
}
|
||||
}
|
||||
}
|
||||
nextSearchSet.swap (curSearchSet);
|
||||
}
|
||||
|
||||
return std::vector<App::DocumentObject*> ( rvSet.begin(), rvSet.end() );
|
||||
}
|
||||
|
||||
bool GeoFeatureGroup::geoHasObject (const DocumentObject* obj) const {
|
||||
const auto & objs = Group.getValues();
|
||||
|
||||
if (!obj) {
|
||||
return false;
|
||||
}
|
||||
|
||||
std::set<const App::DocumentObjectGroup*> processedGroups;
|
||||
std::set<const App::DocumentObject*> curSearchSet (objs.begin(), objs.end());
|
||||
|
||||
processedGroups.insert ( this );
|
||||
|
||||
while ( !curSearchSet.empty() ) {
|
||||
if ( curSearchSet.find (obj) != curSearchSet.end() ) {
|
||||
return true;
|
||||
}
|
||||
std::set<const App::DocumentObject*> nextSearchSet;
|
||||
for ( auto obj: curSearchSet) {
|
||||
if ( isNonGeoGroup (obj) ) {
|
||||
const App::DocumentObjectGroup *grp = static_cast<const App::DocumentObjectGroup *> (obj);
|
||||
if ( processedGroups.find (grp) == processedGroups.end() ) {
|
||||
processedGroups.insert ( grp );
|
||||
const auto & objs = grp->Group.getValues();
|
||||
nextSearchSet.insert (objs.begin(), objs.end());
|
||||
}
|
||||
}
|
||||
}
|
||||
nextSearchSet.swap (curSearchSet);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
GeoFeatureGroup* GeoFeatureGroup::getGroupOfObject(const DocumentObject* obj, bool indirect)
|
||||
{
|
||||
const Document* doc = obj->getDocument();
|
||||
std::vector<DocumentObject*> grps = doc->getObjectsOfType(GeoFeatureGroup::getClassTypeId());
|
||||
for (std::vector<DocumentObject*>::const_iterator it = grps.begin(); it != grps.end(); ++it) {
|
||||
GeoFeatureGroup* grp = (GeoFeatureGroup*)(*it);
|
||||
if ( indirect ) {
|
||||
if (grp->geoHasObject(obj)) {
|
||||
return grp;
|
||||
}
|
||||
} else {
|
||||
if (grp->hasObject(obj)) {
|
||||
return grp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
PyObject *GeoFeatureGroup::getPyObject()
|
||||
{
|
||||
if (PythonObject.is(Py::_None())){
|
||||
// ref counter is set to 1
|
||||
PythonObject = Py::Object(new GeoFeatureGroupPy(this),true);
|
||||
}
|
||||
return Py::new_reference_to(PythonObject);
|
||||
}
|
||||
|
||||
// Python feature ---------------------------------------------------------
|
||||
|
||||
|
||||
namespace App {
|
||||
/// @cond DOXERR
|
||||
PROPERTY_SOURCE_TEMPLATE(App::GeoFeatureGroupPython, App::GeoFeatureGroup)
|
||||
template<> const char* App::GeoFeatureGroupPython::getViewProviderName(void) const {
|
||||
return "Gui::ViewProviderGeoFeatureGroupPython";
|
||||
}
|
||||
template<> PyObject* App::GeoFeatureGroupPython::getPyObject(void) {
|
||||
if (PythonObject.is(Py::_None())) {
|
||||
// ref counter is set to 1
|
||||
PythonObject = Py::Object(new FeaturePythonPyT<App::GeoFeatureGroupPy>(this),true);
|
||||
}
|
||||
return Py::new_reference_to(PythonObject);
|
||||
}
|
||||
/// @endcond
|
||||
|
||||
// explicit template instantiation
|
||||
template class AppExport FeaturePythonT<App::GeoFeatureGroup>;
|
||||
}
|
91
src/App/GeoFeatureGroup.h
Normal file
91
src/App/GeoFeatureGroup.h
Normal file
|
@ -0,0 +1,91 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) Juergen Riegel (juergen.riegel@web.de) 2014 *
|
||||
* Copyright (c) Alexander Golubev (Fat-Zer) <fatzer2@gmail.com> 2015 *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#ifndef APP_GeoFeatureGroup_H
|
||||
#define APP_GeoFeatureGroup_H
|
||||
|
||||
#include <App/FeaturePython.h>
|
||||
|
||||
#include "DocumentObjectGroup.h"
|
||||
#include "PropertyGeo.h"
|
||||
|
||||
namespace App
|
||||
{
|
||||
|
||||
/**
|
||||
* The base class for placeable group of DocumentObjects
|
||||
*/
|
||||
class AppExport GeoFeatureGroup : public App::DocumentObjectGroup
|
||||
{
|
||||
PROPERTY_HEADER(App::GeoFeatureGroup);
|
||||
|
||||
public:
|
||||
PropertyPlacement Placement;
|
||||
|
||||
/**
|
||||
* @brief transformPlacement applies transform to placement of this shape.
|
||||
* Override this function to propagate the change of placement to base
|
||||
* features.
|
||||
* @param transform (input).
|
||||
*/
|
||||
virtual void transformPlacement(const Base::Placement &transform);
|
||||
/// Constructor
|
||||
GeoFeatureGroup(void);
|
||||
virtual ~GeoFeatureGroup();
|
||||
|
||||
/// Returns all geometrically controlled objects: all objects of this group and it's non-geo subgroups
|
||||
std::vector<App::DocumentObject*> getGeoSubObjects () const;
|
||||
|
||||
/// Returns true if either the group or one of it's non-geo subgroups has the object
|
||||
bool geoHasObject (const DocumentObject* obj) const;
|
||||
|
||||
/** Returns the geo feature group which contains this object.
|
||||
* In case this object is not part of any geoFeatureGroup 0 is returned.
|
||||
* Unlike DocumentObjectGroup::getGroupOfObject serches only for GeoFeatureGroups
|
||||
* @param obj the object to search for
|
||||
* @param indirect if true return if the group that so-called geoHas the object, @see geoHasObject()
|
||||
* default is true
|
||||
*/
|
||||
static GeoFeatureGroup* getGroupOfObject(const DocumentObject* obj, bool indirect=true);
|
||||
|
||||
/// Returns true if the given DocumentObject is DocumentObjectGroup but not GeoFeatureGroup
|
||||
static bool isNonGeoGroup(const DocumentObject* obj) {
|
||||
return obj->isDerivedFrom ( App::DocumentObjectGroup::getClassTypeId () ) &&
|
||||
!obj->isDerivedFrom ( App::GeoFeatureGroup::getClassTypeId () );
|
||||
}
|
||||
|
||||
/// Returns the type name of the ViewProvider
|
||||
virtual const char* getViewProviderName(void) const {
|
||||
return "Gui::ViewProviderGeoFeatureGroup";
|
||||
}
|
||||
|
||||
virtual PyObject *getPyObject(void);
|
||||
};
|
||||
|
||||
typedef App::FeaturePythonT<GeoFeatureGroup> GeoFeatureGroupPython;
|
||||
|
||||
} //namespace App
|
||||
|
||||
|
||||
#endif // APP_GeoFeatureGroup_H
|
18
src/App/GeoFeatureGroupPy.xml
Normal file
18
src/App/GeoFeatureGroupPy.xml
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
|
||||
<PythonExport
|
||||
Father="DocumentObjectGroupPy"
|
||||
Name="GeoFeatureGroupPy"
|
||||
Twin="GeoFeatureGroup"
|
||||
TwinPointer="GeoFeatureGroup"
|
||||
Include="App/GeoFeatureGroup.h"
|
||||
Namespace="App"
|
||||
FatherInclude="App/DocumentObjectGroupPy.h"
|
||||
FatherNamespace="App">
|
||||
<Documentation>
|
||||
<Author Licence="LGPL" Name="Werner Mayer" EMail="wmayer@users.sourceforge.net" />
|
||||
<UserDocu>This class handles placeable group of document objects</UserDocu>
|
||||
</Documentation>
|
||||
|
||||
</PythonExport>
|
||||
</GenerateModel>
|
29
src/App/GeoFeatureGroupPyImp.cpp
Normal file
29
src/App/GeoFeatureGroupPyImp.cpp
Normal file
|
@ -0,0 +1,29 @@
|
|||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#include "App/GeoFeatureGroup.h"
|
||||
|
||||
// inclusion of the generated files (generated out of GeoFeatureGroupPy.xml)
|
||||
#include "GeoFeatureGroupPy.h"
|
||||
#include "GeoFeatureGroupPy.cpp"
|
||||
|
||||
using namespace App;
|
||||
|
||||
// returns a string which represents the object e.g. when printed in python
|
||||
std::string GeoFeatureGroupPy::representation(void) const
|
||||
{
|
||||
return std::string("<GeoFeatureGroup object>");
|
||||
}
|
||||
|
||||
|
||||
PyObject *GeoFeatureGroupPy::getCustomAttributes(const char* /*attr*/) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int GeoFeatureGroupPy::setCustomAttributes(const char* /*attr*/, PyObject* /*obj*/)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
23
src/App/GeoFeaturePy.xml
Normal file
23
src/App/GeoFeaturePy.xml
Normal file
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
|
||||
<PythonExport
|
||||
Father="DocumentObjectPy"
|
||||
Name="GeoFeaturePy"
|
||||
Twin="GeoFeature"
|
||||
TwinPointer="GeoFeature"
|
||||
Include="App/GeoFeature.h"
|
||||
Namespace="App"
|
||||
FatherInclude="App/DocumentObjectPy.h"
|
||||
FatherNamespace="App">
|
||||
<Documentation>
|
||||
<Author Licence="LGPL" Name="Jürgen Riegel" EMail="FreeCAD@juergen-riegel.net" />
|
||||
<UserDocu>This class does the whole placement and position handling</UserDocu>
|
||||
</Documentation>
|
||||
<Methode Name="getPaths">
|
||||
<Documentation>
|
||||
<UserDocu>returns all posible paths to the root of the document</UserDocu>
|
||||
</Documentation>
|
||||
</Methode>
|
||||
<CustomAttributes />
|
||||
</PythonExport>
|
||||
</GenerateModel>
|
40
src/App/GeoFeaturePyImp.cpp
Normal file
40
src/App/GeoFeaturePyImp.cpp
Normal file
|
@ -0,0 +1,40 @@
|
|||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#include "App/GeoFeature.h"
|
||||
|
||||
// inclusion of the generated files (generated out of GeoFeaturePy.xml)
|
||||
#include "GeoFeaturePy.h"
|
||||
#include "GeoFeaturePy.cpp"
|
||||
|
||||
using namespace App;
|
||||
|
||||
// returns a string which represents the object e.g. when printed in python
|
||||
std::string GeoFeaturePy::representation(void) const
|
||||
{
|
||||
return std::string("<GeoFeature object>");
|
||||
}
|
||||
|
||||
|
||||
|
||||
PyObject* GeoFeaturePy::getPaths(PyObject * /*args*/)
|
||||
{
|
||||
PyErr_SetString(PyExc_NotImplementedError, "Not yet implemented");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
PyObject *GeoFeaturePy::getCustomAttributes(const char* /*attr*/) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int GeoFeaturePy::setCustomAttributes(const char* /*attr*/, PyObject* /*obj*/)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
180
src/App/Origin.cpp
Normal file
180
src/App/Origin.cpp
Normal file
|
@ -0,0 +1,180 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) Stefan Tr<EFBFBD>ger (stefantroeger@gmx.net) 2015 *
|
||||
* Copyright (c) Alexander Golubev (Fat-Zer) <fatzer2@gmail.com> 2015 *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#ifndef _PreComp_
|
||||
#include <string>
|
||||
#endif
|
||||
|
||||
#include <Base/Exception.h>
|
||||
#include <Base/Placement.h>
|
||||
|
||||
#include <App/Document.h>
|
||||
#include "OriginFeature.h"
|
||||
|
||||
#include "Origin.h"
|
||||
|
||||
#ifndef M_PI
|
||||
#define M_PI 3.14159265358979323846
|
||||
#endif
|
||||
|
||||
using namespace App;
|
||||
|
||||
|
||||
PROPERTY_SOURCE(App::Origin, App::DocumentObject)
|
||||
|
||||
const char* Origin::AxisRoles[3] = {"X_Axis", "Y_Axis", "Z_Axis"};
|
||||
const char* Origin::PlaneRoles[3] = {"XY_Plane", "XZ_Plane", "YZ_Plane"};
|
||||
|
||||
Origin::Origin(void) {
|
||||
ADD_PROPERTY_TYPE ( OriginFeatures, (0), 0, App::Prop_Hidden,
|
||||
"Axis and baseplanes controlled by the origin" );
|
||||
}
|
||||
|
||||
|
||||
Origin::~Origin(void)
|
||||
{ }
|
||||
|
||||
App::OriginFeature *Origin::getOriginFeature( const char *role) const {
|
||||
const auto & features = OriginFeatures.getValues ();
|
||||
auto featIt = std::find_if (features.begin(), features.end(),
|
||||
[role] (App::DocumentObject *obj) {
|
||||
return obj->isDerivedFrom ( App::OriginFeature::getClassTypeId () ) &&
|
||||
strcmp (static_cast<App::OriginFeature *>(obj)->Role.getValue(), role) == 0;
|
||||
} );
|
||||
if (featIt != features.end()) {
|
||||
return static_cast<App::OriginFeature *>(*featIt);
|
||||
} else {
|
||||
|
||||
std::stringstream err;
|
||||
err << "Origin \"" << getNameInDocument () << "\" doesn't contain feature with role \""
|
||||
<< role << '"';
|
||||
throw Base::Exception ( err.str().c_str () );
|
||||
}
|
||||
}
|
||||
|
||||
App::Line *Origin::getAxis( const char *role ) const {
|
||||
App::OriginFeature *feat = getOriginFeature (role);
|
||||
if ( feat->isDerivedFrom(App::Line::getClassTypeId () ) ) {
|
||||
return static_cast<App::Line *> (feat);
|
||||
} else {
|
||||
std::stringstream err;
|
||||
err << "Origin \"" << getNameInDocument () << "\" contains bad Axis object for role \""
|
||||
<< role << '"';
|
||||
throw Base::Exception ( err.str().c_str () );
|
||||
}
|
||||
}
|
||||
|
||||
App::Plane *Origin::getPlane( const char *role ) const {
|
||||
App::OriginFeature *feat = getOriginFeature (role);
|
||||
if ( feat->isDerivedFrom(App::Plane::getClassTypeId () ) ) {
|
||||
return static_cast<App::Plane *> (feat);
|
||||
} else {
|
||||
std::stringstream err;
|
||||
err << "Origin \"" << getNameInDocument () << "\" comtains bad Plane object for role \""
|
||||
<< role << '"';
|
||||
throw Base::Exception ( err.str().c_str () );
|
||||
}
|
||||
}
|
||||
|
||||
bool Origin::hasObject (DocumentObject *obj) const {
|
||||
const auto & features = OriginFeatures.getValues ();
|
||||
return std::find (features.begin(), features.end(), obj) != features.end ();
|
||||
}
|
||||
|
||||
short Origin::mustExecute(void) const {
|
||||
if (OriginFeatures.isTouched ()) {
|
||||
return 1;
|
||||
} else {
|
||||
return DocumentObject::mustExecute();
|
||||
}
|
||||
}
|
||||
|
||||
App::DocumentObjectExecReturn *Origin::execute(void) {
|
||||
try { // try to find all base axis and planes in the origin
|
||||
for (const char* role: AxisRoles) {
|
||||
App::Line *axis = getAxis (role);
|
||||
assert(axis);
|
||||
}
|
||||
for (const char* role: PlaneRoles) {
|
||||
App::Plane *plane = getPlane (role);
|
||||
assert(plane);
|
||||
}
|
||||
} catch (const Base::Exception &ex) {
|
||||
setError ();
|
||||
return new App::DocumentObjectExecReturn ( ex.what () );
|
||||
}
|
||||
|
||||
return DocumentObject::execute ();
|
||||
}
|
||||
|
||||
void Origin::setupObject () {
|
||||
const static struct {
|
||||
const Base::Type type;
|
||||
const char *role;
|
||||
Base::Rotation rot;
|
||||
} setupData [] = {
|
||||
{App::Line::getClassTypeId(), "X_Axis", Base::Rotation () },
|
||||
{App::Line::getClassTypeId(), "Y_Axis", Base::Rotation ( Base::Vector3d (1,1,1), M_PI*2/3 ) },
|
||||
{App::Line::getClassTypeId(), "Z_Axis", Base::Rotation ( Base::Vector3d (1,1,1), M_PI*4/3 ) },
|
||||
{App::Plane::getClassTypeId (), "XY_Plane", Base::Rotation () },
|
||||
{App::Plane::getClassTypeId (), "XZ_Plane", Base::Rotation ( Base::Vector3d (0,1,1), M_PI ), },
|
||||
{App::Plane::getClassTypeId (), "YZ_Plane", Base::Rotation ( Base::Vector3d (1,1,1), M_PI*2/3 ) },
|
||||
};
|
||||
|
||||
App::Document *doc = getDocument ();
|
||||
|
||||
std::vector<App::DocumentObject *> links;
|
||||
for (auto data: setupData) {
|
||||
std::string objName = doc->getUniqueObjectName ( data.role );
|
||||
App::DocumentObject *featureObj = doc->addObject ( data.type.getName(), objName.c_str () );
|
||||
|
||||
assert ( featureObj && featureObj->isDerivedFrom ( App::OriginFeature::getClassTypeId () ) );
|
||||
|
||||
App::OriginFeature *feature = static_cast <App::OriginFeature *> ( featureObj );
|
||||
feature->Placement.setValue ( Base::Placement ( Base::Vector3d (), data.rot ) );
|
||||
feature->Role.setValue ( data.role );
|
||||
|
||||
links.push_back (feature);
|
||||
}
|
||||
|
||||
OriginFeatures.setValues (links);
|
||||
}
|
||||
|
||||
void Origin::unsetupObject () {
|
||||
const auto &objsLnk = OriginFeatures.getValues ();
|
||||
// Copy to set to assert we won't call methode more then one time for each object
|
||||
std::set<App::DocumentObject *> objs (objsLnk.begin(), objsLnk.end());
|
||||
// Remove all controlled objects
|
||||
for (auto obj: objs ) {
|
||||
// Check that previous deletes wasn't inderectly removed one of our objects
|
||||
const auto &objsLnk = OriginFeatures.getValues ();
|
||||
if ( std::find(objsLnk.begin(), objsLnk.end(), obj) != objsLnk.end()) {
|
||||
if ( ! obj->isDeleting () ) {
|
||||
obj->getDocument ()->remObject (obj->getNameInDocument());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
142
src/App/Origin.h
Normal file
142
src/App/Origin.h
Normal file
|
@ -0,0 +1,142 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) Stefan Tröger (stefantroeger@gmx.net) 2015 *
|
||||
* Copyright (c) Alexander Golubev (Fat-Zer) <fatzer2@gmail.com> 2015 *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#ifndef APP_Origin_H
|
||||
#define APP_Origin_H
|
||||
|
||||
#include "GeoFeature.h"
|
||||
|
||||
#include "OriginFeature.h"
|
||||
#include "PropertyLinks.h"
|
||||
|
||||
namespace App
|
||||
{
|
||||
|
||||
/** Base class of all geometric document objects.
|
||||
*/
|
||||
class AppExport Origin : public App::DocumentObject
|
||||
{
|
||||
PROPERTY_HEADER(App::Origin);
|
||||
|
||||
public:
|
||||
/// Constructor
|
||||
Origin(void);
|
||||
virtual ~Origin();
|
||||
|
||||
/// returns the type name of the ViewProvider
|
||||
virtual const char* getViewProviderName(void) const {
|
||||
return "Gui::ViewProviderOrigin";
|
||||
}
|
||||
|
||||
/** @name Axis and plane access
|
||||
* This functions returns casted axis and planes objects and asserts they are setted correctly
|
||||
* otherwice Base::Exception is thrown.
|
||||
*/
|
||||
///@{
|
||||
// returns X axis
|
||||
App::Line *getX () const {
|
||||
return getAxis ("X_Axis");
|
||||
}
|
||||
// returns Y axis
|
||||
App::Line *getY () const {
|
||||
return getAxis ("Y_Axis");
|
||||
}
|
||||
// returns Z axis
|
||||
App::Line *getZ () const {
|
||||
return getAxis ("Z_Axis");
|
||||
}
|
||||
|
||||
// returns XY plane
|
||||
App::Plane *getXY () const {
|
||||
return getPlane ("XY_Plane");
|
||||
}
|
||||
// returns XZ plane
|
||||
App::Plane *getXZ () const {
|
||||
return getPlane ("XZ_Plane");
|
||||
}
|
||||
// returns YZ plane
|
||||
App::Plane *getYZ () const {
|
||||
return getPlane ("YZ_Plane");
|
||||
}
|
||||
|
||||
/// Returns all axis objects to iterate on them
|
||||
std::vector<App::Line *> axes() const {
|
||||
return { getX(), getY(), getZ() };
|
||||
}
|
||||
|
||||
/// Returns all base planes objects to iterate on them
|
||||
std::vector<App::Plane *> planes() const {
|
||||
return { getXY(), getXZ(), getYZ() };
|
||||
}
|
||||
|
||||
/// Returns all controled objects (both planes and axis) to iterate on them
|
||||
std::vector<App::OriginFeature *> baseObjects() const {
|
||||
return { getX(), getY(), getZ(), getXY(), getXZ(), getYZ() };
|
||||
}
|
||||
|
||||
/// Returns an axis by it's name
|
||||
App::OriginFeature *getOriginFeature( const char* role ) const;
|
||||
|
||||
/// Returns an axis by it's name
|
||||
App::Line *getAxis( const char* role ) const;
|
||||
|
||||
/// Returns an axis by it's name
|
||||
App::Plane *getPlane( const char* role ) const;
|
||||
///@}
|
||||
|
||||
/// Returns true if the given object is part of the origin
|
||||
bool hasObject (DocumentObject *obj) const;
|
||||
|
||||
/// Returns the default bounding box of the origin (use this if you confused what should be s )
|
||||
// TODO Delete me if not really needed (2015-09-01, Fat-Zer)
|
||||
static Base::BoundBox3d defaultBoundBox();
|
||||
|
||||
/// Returns true on changing OriginFeature set
|
||||
virtual short mustExecute(void) const;
|
||||
|
||||
/// Axis types
|
||||
static const char* AxisRoles[3];
|
||||
/// Baseplane types
|
||||
static const char* PlaneRoles[3];
|
||||
|
||||
// Axis links
|
||||
PropertyLinkList OriginFeatures;
|
||||
|
||||
protected:
|
||||
/// Checks integrity of the Origin
|
||||
virtual App::DocumentObjectExecReturn *execute(void);
|
||||
/// Creates all corresponding Axises and Planes objects for the origin if they not linked yet
|
||||
virtual void setupObject ();
|
||||
/// Removes all planes and axis if they are still linked to the document
|
||||
virtual void unsetupObject ();
|
||||
|
||||
private:
|
||||
struct SetupData;
|
||||
void setupOriginFeature (App::PropertyLink &featProp, const SetupData &data);
|
||||
|
||||
};
|
||||
|
||||
} //namespace App
|
||||
|
||||
#endif // APP_Origin_H
|
64
src/App/OriginFeature.cpp
Normal file
64
src/App/OriginFeature.cpp
Normal file
|
@ -0,0 +1,64 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) 2015 Alexander Golubev (Fat-Zer) <fatzer2@gmail.com> *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#ifndef _PreComp_
|
||||
#endif
|
||||
|
||||
#include "Document.h"
|
||||
#include "Origin.h"
|
||||
|
||||
#include "OriginFeature.h"
|
||||
|
||||
using namespace App;
|
||||
|
||||
PROPERTY_SOURCE(App::OriginFeature, App::GeoFeature)
|
||||
PROPERTY_SOURCE(App::Plane, App::OriginFeature)
|
||||
PROPERTY_SOURCE(App::Line, App::OriginFeature)
|
||||
|
||||
OriginFeature::OriginFeature()
|
||||
{
|
||||
ADD_PROPERTY_TYPE ( Role, (""), 0, App::Prop_ReadOnly, "Role of the feature in the Origin" ) ;
|
||||
|
||||
// Set placement to read-only
|
||||
Placement.setStatus(Property::Hidden, true);
|
||||
}
|
||||
|
||||
OriginFeature::~OriginFeature()
|
||||
{ }
|
||||
|
||||
Origin * OriginFeature::getOrigin () {
|
||||
App::Document *doc = getDocument();
|
||||
auto origins = doc->getObjectsOfType ( App::Origin::getClassTypeId() );
|
||||
|
||||
auto originIt= std::find_if (origins.begin(), origins.end(), [this] (DocumentObject *origin) {
|
||||
assert ( origin->isDerivedFrom ( App::Origin::getClassTypeId() ) );
|
||||
return static_cast<App::Origin *> (origin)->hasObject (this);
|
||||
} );
|
||||
if (originIt == origins.end()) {
|
||||
return 0;
|
||||
} else {
|
||||
assert ( (*originIt)->isDerivedFrom ( App::Origin::getClassTypeId() ) );
|
||||
return static_cast<App::Origin *> (*originIt);
|
||||
}
|
||||
}
|
69
src/App/OriginFeature.h
Normal file
69
src/App/OriginFeature.h
Normal file
|
@ -0,0 +1,69 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) Jürgen Riegel (juergen.riegel@web.de) 2012 *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef ORIGINFEATURE_H_6ZWJPB5V
|
||||
#define ORIGINFEATURE_H_6ZWJPB5V
|
||||
|
||||
#include "GeoFeature.h"
|
||||
|
||||
namespace App
|
||||
{
|
||||
|
||||
class Origin;
|
||||
|
||||
/** Plane Object
|
||||
* Used to define planar support for all kind of operations in the document space
|
||||
*/
|
||||
class AppExport OriginFeature: public App::GeoFeature
|
||||
{
|
||||
PROPERTY_HEADER(App::OriginFeature);
|
||||
public:
|
||||
/// additional information about the feature usage (e.g. "BasePlane-XY" or "Axis-X" in a Origin)
|
||||
PropertyString Role;
|
||||
|
||||
/// Constructor
|
||||
OriginFeature(void);
|
||||
virtual ~OriginFeature();
|
||||
|
||||
/// Finds the origin object this plane belongs to
|
||||
App::Origin *getOrigin ();
|
||||
};
|
||||
|
||||
class AppExport Plane: public App::OriginFeature {
|
||||
PROPERTY_HEADER(App::OriginFeature);
|
||||
public:
|
||||
virtual const char* getViewProviderName(void) const {
|
||||
return "Gui::ViewProviderPlane";
|
||||
}
|
||||
};
|
||||
|
||||
class AppExport Line: public App::OriginFeature {
|
||||
PROPERTY_HEADER(App::OriginFeature);
|
||||
public:
|
||||
virtual const char* getViewProviderName(void) const {
|
||||
return "Gui::ViewProviderLine";
|
||||
}
|
||||
};
|
||||
|
||||
} //namespace App
|
||||
|
||||
#endif /* end of include guard: ORIGINFEATURE_H_6ZWJPB5V */
|
123
src/App/OriginGroup.cpp
Normal file
123
src/App/OriginGroup.cpp
Normal file
|
@ -0,0 +1,123 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) Alexander Golubev (Fat-Zer) <fatzer2@gmail.com> 2015 *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#include "PreCompiled.h"
|
||||
#include "OriginGroup.h"
|
||||
|
||||
#ifndef _PreComp_
|
||||
#endif
|
||||
|
||||
#include <Base/Exception.h>
|
||||
|
||||
#include <App/Document.h>
|
||||
#include "Origin.h"
|
||||
|
||||
#include "GeoFeature.h"
|
||||
|
||||
using namespace App;
|
||||
|
||||
PROPERTY_SOURCE(App::OriginGroup, App::GeoFeatureGroup);
|
||||
|
||||
OriginGroup::OriginGroup () {
|
||||
ADD_PROPERTY_TYPE ( Origin, (0), 0, App::Prop_Hidden, "Origin linked to the group" );
|
||||
}
|
||||
|
||||
OriginGroup::~OriginGroup ()
|
||||
{ }
|
||||
|
||||
App::Origin *OriginGroup::getOrigin () const {
|
||||
App::DocumentObject *originObj = Origin.getValue ();
|
||||
|
||||
if ( !originObj ) {
|
||||
std::stringstream err;
|
||||
err << "Can't find Origin for \"" << getNameInDocument () << "\"";
|
||||
throw Base::Exception ( err.str().c_str () );
|
||||
|
||||
} else if (! originObj->isDerivedFrom ( App::Origin::getClassTypeId() ) ) {
|
||||
std::stringstream err;
|
||||
err << "Bad object \"" << originObj->getNameInDocument () << "\"(" << originObj->getTypeId().getName()
|
||||
<< ") linked to the Origin of \"" << getNameInDocument () << "\"";
|
||||
throw Base::Exception ( err.str().c_str () );
|
||||
} else {
|
||||
return static_cast<App::Origin *> ( originObj );
|
||||
}
|
||||
}
|
||||
|
||||
App::OriginGroup *OriginGroup::getGroupOfObject (const DocumentObject* obj, bool indirect) {
|
||||
const Document* doc = obj->getDocument();
|
||||
std::vector<DocumentObject*> grps = doc->getObjectsOfType ( OriginGroup::getClassTypeId() );
|
||||
for (auto grpObj: grps) {
|
||||
OriginGroup* grp = static_cast <OriginGroup* >(grpObj);
|
||||
if ( indirect ) {
|
||||
if ( grp->geoHasObject (obj) ) {
|
||||
return grp;
|
||||
}
|
||||
} else {
|
||||
if ( grp->hasObject (obj) ) {
|
||||
return grp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
short OriginGroup::mustExecute() const {
|
||||
if (Origin.isTouched ()) {
|
||||
return 1;
|
||||
} else {
|
||||
return GeoFeatureGroup::mustExecute();
|
||||
}
|
||||
}
|
||||
|
||||
App::DocumentObjectExecReturn *OriginGroup::execute() {
|
||||
try { // try to find all base axis and planes in the origin
|
||||
getOrigin ();
|
||||
} catch (const Base::Exception &ex) {
|
||||
setError ();
|
||||
return new App::DocumentObjectExecReturn ( ex.what () );
|
||||
}
|
||||
|
||||
return GeoFeatureGroup::execute ();
|
||||
}
|
||||
|
||||
void OriginGroup::setupObject () {
|
||||
App::Document *doc = getDocument ();
|
||||
|
||||
std::string objName = std::string ( getNameInDocument()).append ( "Origin" );
|
||||
|
||||
App::DocumentObject *originObj = doc->addObject ( "App::Origin", objName.c_str () );
|
||||
|
||||
assert ( originObj && originObj->isDerivedFrom ( App::Origin::getClassTypeId () ) );
|
||||
Origin.setValue (originObj);
|
||||
|
||||
GeoFeatureGroup::setupObject ();
|
||||
}
|
||||
|
||||
void OriginGroup::unsetupObject () {
|
||||
App::DocumentObject *origin = Origin.getValue ();
|
||||
if (origin && !origin->isDeleting ()) {
|
||||
origin->getDocument ()->remObject (origin->getNameInDocument());
|
||||
}
|
||||
|
||||
GeoFeatureGroup::unsetupObject ();
|
||||
}
|
76
src/App/OriginGroup.h
Normal file
76
src/App/OriginGroup.h
Normal file
|
@ -0,0 +1,76 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) Alexander Golubev (Fat-Zer) <fatzer2@gmail.com> 2015 *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef ORIGINGROUP_H_QHTU73IF
|
||||
#define ORIGINGROUP_H_QHTU73IF
|
||||
|
||||
#include "GeoFeatureGroup.h"
|
||||
#include "PropertyLinks.h"
|
||||
|
||||
namespace App {
|
||||
class Origin;
|
||||
|
||||
/**
|
||||
* Represents an abstact placeable group of objects with an associated Origin
|
||||
*/
|
||||
class AppExport OriginGroup: public App::GeoFeatureGroup
|
||||
{
|
||||
PROPERTY_HEADER(App::OriginGroup);
|
||||
public:
|
||||
OriginGroup ();
|
||||
virtual ~OriginGroup ();
|
||||
|
||||
/// Returns the origin link or throws an exception
|
||||
App::Origin *getOrigin () const;
|
||||
|
||||
/// returns the type name of the ViewProvider
|
||||
virtual const char* getViewProviderName () const {
|
||||
return "Gui::ViewProviderOriginGroup";
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the origin group which contains this object.
|
||||
* In case this object is not part of any geoFeatureGroup 0 is returned.
|
||||
* @param obj the object to search for
|
||||
* @param indirect if true return if the group that so-called geoHas the object, @see geoHasObject()
|
||||
* default is true
|
||||
*/
|
||||
static OriginGroup* getGroupOfObject (const DocumentObject* obj, bool indirect=true);
|
||||
|
||||
/// Returns true on changing OriginFeature set
|
||||
virtual short mustExecute () const;
|
||||
|
||||
/// Origin linked to the group
|
||||
PropertyLink Origin;
|
||||
|
||||
protected:
|
||||
/// Checks integrity of the Origin
|
||||
virtual App::DocumentObjectExecReturn *execute ();
|
||||
/// Creates the corresponding Origin object
|
||||
virtual void setupObject ();
|
||||
/// Removes all planes and axis if they are still linked to the document
|
||||
virtual void unsetupObject ();
|
||||
};
|
||||
|
||||
} /* App */
|
||||
|
||||
#endif /* end of include guard: ORIGINGROUP_H_QHTU73IF */
|
19
src/App/OriginGroupPy.xml
Normal file
19
src/App/OriginGroupPy.xml
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
|
||||
<PythonExport
|
||||
Father="GeoFeatureGroupPy"
|
||||
Name="OriginGroupPy"
|
||||
Twin="OriginGroup"
|
||||
TwinPointer="OriginGroup"
|
||||
Include="App/OriginGroup.h"
|
||||
Namespace="App"
|
||||
FatherInclude="App/GeoFeatureGroupPy.h"
|
||||
FatherNamespace="App">
|
||||
<Documentation>
|
||||
<Author Licence="LGPL" Name="Alexander Golubev" EMail="fatzer2@gmail.com" />
|
||||
<UserDocu>This class handles placable group of document objects with an Origin</UserDocu>
|
||||
</Documentation>
|
||||
|
||||
</PythonExport>
|
||||
</GenerateModel>
|
||||
|
34
src/App/OriginGroupPyImp.cpp
Normal file
34
src/App/OriginGroupPyImp.cpp
Normal file
|
@ -0,0 +1,34 @@
|
|||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#include "App/OriginGroup.h"
|
||||
|
||||
// inclusion of the generated files (generated out of OriginGroupPy.xml)
|
||||
#include "OriginGroupPy.h"
|
||||
#include "OriginGroupPy.cpp"
|
||||
|
||||
using namespace App;
|
||||
|
||||
// returns a string which represents the object e.g. when printed in python
|
||||
std::string OriginGroupPy::representation(void) const
|
||||
{
|
||||
return std::string("<OriginGroup object>");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
PyObject *OriginGroupPy::getCustomAttributes(const char* /*attr*/) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int OriginGroupPy::setCustomAttributes(const char* /*attr*/, PyObject* /*obj*/)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
121
src/App/Part.cpp
Normal file
121
src/App/Part.cpp
Normal file
|
@ -0,0 +1,121 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) Juergen Riegel (juergen.riegel@web.de) 2014 *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#ifndef _PreComp_
|
||||
#endif
|
||||
|
||||
#include <App/Document.h>
|
||||
|
||||
#include "Part.h"
|
||||
#include "PartPy.h"
|
||||
|
||||
|
||||
using namespace App;
|
||||
|
||||
|
||||
PROPERTY_SOURCE(App::Part, App::OriginGroup)
|
||||
|
||||
|
||||
//===========================================================================
|
||||
// Part
|
||||
//===========================================================================
|
||||
|
||||
|
||||
Part::Part(void)
|
||||
{
|
||||
ADD_PROPERTY(Type,(""));
|
||||
ADD_PROPERTY_TYPE(Material, (), 0, App::Prop_None, "Map with material properties");
|
||||
ADD_PROPERTY_TYPE(Meta, (), 0, App::Prop_None, "Map with additional meta information");
|
||||
|
||||
// create the uuid for the document
|
||||
Base::Uuid id;
|
||||
ADD_PROPERTY_TYPE(Id, (""), 0, App::Prop_None, "ID (Part-Number) of the Item");
|
||||
ADD_PROPERTY_TYPE(Uid, (id), 0, App::Prop_None, "UUID of the Item");
|
||||
|
||||
// license stuff
|
||||
ADD_PROPERTY_TYPE(License, ("CC BY 3.0"), 0, App::Prop_None, "License string of the Item");
|
||||
ADD_PROPERTY_TYPE(LicenseURL, ("http://creativecommons.org/licenses/by/3.0/"), 0, App::Prop_None, "URL to the license text/contract");
|
||||
// color and apperance
|
||||
ADD_PROPERTY(Color, (1.0, 1.0, 1.0, 1.0)); // set transparent -> not used
|
||||
|
||||
}
|
||||
|
||||
Part::~Part(void)
|
||||
{
|
||||
}
|
||||
|
||||
App::Part *Part::getPartOfObject (const DocumentObject* obj, bool indirect) {
|
||||
const Document* doc = obj->getDocument();
|
||||
std::vector<DocumentObject*> grps = doc->getObjectsOfType ( Part::getClassTypeId() );
|
||||
|
||||
for (auto partObj: grps) {
|
||||
Part* part = static_cast <Part* >(partObj);
|
||||
if ( indirect ) {
|
||||
if ( part->geoHasObject (obj) ) {
|
||||
return part;
|
||||
}
|
||||
} else {
|
||||
if ( part->hasObject (obj) ) {
|
||||
return part;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
PyObject *Part::getPyObject()
|
||||
{
|
||||
if (PythonObject.is(Py::_None())){
|
||||
// ref counter is set to 1
|
||||
PythonObject = Py::Object(new PartPy(this),true);
|
||||
}
|
||||
return Py::new_reference_to(PythonObject);
|
||||
}
|
||||
|
||||
// Python feature ---------------------------------------------------------
|
||||
|
||||
// Not quit sure yet makeing Part derivable in Python is good Idea!
|
||||
// JR 2014
|
||||
|
||||
//namespace App {
|
||||
///// @cond DOXERR
|
||||
//PROPERTY_SOURCE_TEMPLATE(App::PartPython, App::Part)
|
||||
//template<> const char* App::PartPython::getViewProviderName(void) const {
|
||||
// return "Gui::ViewProviderPartPython";
|
||||
//}
|
||||
//template<> PyObject* App::PartPython::getPyObject(void) {
|
||||
// if (PythonObject.is(Py::_None())) {
|
||||
// // ref counter is set to 1
|
||||
// PythonObject = Py::Object(new FeaturePythonPyT<App::PartPy>(this),true);
|
||||
// }
|
||||
// return Py::new_reference_to(PythonObject);
|
||||
//}
|
||||
///// @endcond
|
||||
//
|
||||
//// explicit template instantiation
|
||||
//template class AppExport FeaturePythonT<App::Part>;
|
||||
//}
|
104
src/App/Part.h
Normal file
104
src/App/Part.h
Normal file
|
@ -0,0 +1,104 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) Jürgen Riegel (juergen.riegel@web.de) 2014 *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#ifndef APP_Part_H
|
||||
#define APP_Part_H
|
||||
|
||||
#include "OriginGroup.h"
|
||||
#include "PropertyLinks.h"
|
||||
|
||||
|
||||
|
||||
namespace App
|
||||
{
|
||||
|
||||
|
||||
/** Base class of all geometric document objects.
|
||||
*/
|
||||
class AppExport Part : public App::OriginGroup
|
||||
{
|
||||
PROPERTY_HEADER(App::Part);
|
||||
|
||||
public:
|
||||
/// type of the part
|
||||
PropertyString Type;
|
||||
|
||||
/** @name base properties of all Assembly Items
|
||||
* This properties corospond mostly to the meta information
|
||||
* in the App::Document class
|
||||
*/
|
||||
//@{
|
||||
/// Id e.g. Part number
|
||||
App::PropertyString Id;
|
||||
/// unique identifier of the Item
|
||||
App::PropertyUUID Uid;
|
||||
/// material descriptons
|
||||
App::PropertyMap Material;
|
||||
/// Meta descriptons
|
||||
App::PropertyMap Meta;
|
||||
|
||||
/** License string
|
||||
* Holds the short license string for the Item, e.g. CC-BY
|
||||
* for the Creative Commons license suit.
|
||||
*/
|
||||
App::PropertyString License;
|
||||
/// License descripton/contract URL
|
||||
App::PropertyString LicenseURL;
|
||||
//@}
|
||||
|
||||
/** @name Visual properties */
|
||||
//@{
|
||||
/** Base color of the Item
|
||||
If the transparency value is 1.0
|
||||
the color or the next hirachy is used
|
||||
*/
|
||||
App::PropertyColor Color;
|
||||
//@}
|
||||
|
||||
/// Constructor
|
||||
Part(void);
|
||||
virtual ~Part();
|
||||
|
||||
/// returns the type name of the ViewProvider
|
||||
virtual const char* getViewProviderName(void) const {
|
||||
return "Gui::ViewProviderPart";
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the part which contains this object.
|
||||
* In case this object is not belongs to any Part 0 is returned.
|
||||
* @param obj the object to search for
|
||||
* @param indirect if true return if the part that so-called geoHas the object, @see geoHasObject()
|
||||
* default is true
|
||||
*/
|
||||
static App::Part* getPartOfObject (const DocumentObject* obj, bool indirect=true);
|
||||
|
||||
virtual PyObject *getPyObject(void);
|
||||
};
|
||||
|
||||
//typedef App::FeaturePythonT<Part> PartPython;
|
||||
|
||||
} //namespace App
|
||||
|
||||
|
||||
#endif // APP_Part_H
|
19
src/App/PartPy.xml
Normal file
19
src/App/PartPy.xml
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
|
||||
<PythonExport
|
||||
Father="OriginGroupPy"
|
||||
Name="PartPy"
|
||||
Twin="Part"
|
||||
TwinPointer="Part"
|
||||
Include="App/Part.h"
|
||||
Namespace="App"
|
||||
FatherInclude="App/OriginGroupPy.h"
|
||||
FatherNamespace="App">
|
||||
<Documentation>
|
||||
<Author Licence="LGPL" Name="Juergen Riegel" EMail="FreeCAD@juergen-riegel.net" />
|
||||
<UserDocu>This class handles document objects in Part</UserDocu>
|
||||
</Documentation>
|
||||
|
||||
<CustomAttributes />
|
||||
</PythonExport>
|
||||
</GenerateModel>
|
33
src/App/PartPyImp.cpp
Normal file
33
src/App/PartPyImp.cpp
Normal file
|
@ -0,0 +1,33 @@
|
|||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#include "App/Part.h"
|
||||
|
||||
// inclusion of the generated files (generated out of PartPy.xml)
|
||||
#include "PartPy.h"
|
||||
#include "PartPy.cpp"
|
||||
|
||||
using namespace App;
|
||||
|
||||
// returns a string which represents the object e.g. when printed in python
|
||||
std::string PartPy::representation(void) const
|
||||
{
|
||||
return std::string("<Part object>");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
PyObject *PartPy::getCustomAttributes(const char* /*attr*/) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
int PartPy::setCustomAttributes(const char* /*attr*/, PyObject* /*obj*/)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) Jürgen Riegel (juergen.riegel@web.de) 2012 *
|
||||
* Copyright (c) Jürgen Riegel (juergen.riegel@web.de) 2014 *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
|
@ -26,31 +26,21 @@
|
|||
#ifndef _PreComp_
|
||||
#endif
|
||||
|
||||
|
||||
#include "Plane.h"
|
||||
|
||||
#include "Path.h"
|
||||
#define new DEBUG_CLIENTBLOCK
|
||||
using namespace App;
|
||||
|
||||
|
||||
PROPERTY_SOURCE(App::Plane, App::GeoFeature)
|
||||
|
||||
|
||||
//===========================================================================
|
||||
// Feature
|
||||
//===========================================================================
|
||||
|
||||
Plane::Plane(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
Plane::~Plane(void)
|
||||
Path::Path(void)
|
||||
{
|
||||
}
|
||||
|
||||
Path::Path(const std::vector<Base::Persistence *> &PathVector)
|
||||
:_PathVector(PathVector)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Path::~Path(void)
|
||||
{
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) Jürgen Riegel (juergen.riegel@web.de) 2012 *
|
||||
* Copyright (c) Jürgen Riegel (juergen.riegel@web.de) 2014 *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
|
@ -21,14 +21,10 @@
|
|||
***************************************************************************/
|
||||
|
||||
|
||||
#ifndef APP_Path_H
|
||||
#define APP_Path_H
|
||||
|
||||
|
||||
#ifndef _AppPlane_h_
|
||||
#define _AppPlane_h_
|
||||
|
||||
|
||||
#include "GeoFeature.h"
|
||||
#include "PropertyGeo.h"
|
||||
#include <Base/Persistence.h>
|
||||
|
||||
|
||||
|
||||
|
@ -36,28 +32,25 @@ namespace App
|
|||
{
|
||||
|
||||
|
||||
/** Plane Object
|
||||
* Used to define planar support for all kind of operations in the document space
|
||||
/** Base class of all geometric document objects.
|
||||
*/
|
||||
class AppExport Plane: public App::GeoFeature
|
||||
class AppExport Path
|
||||
{
|
||||
PROPERTY_HEADER(App::Plane);
|
||||
protected:
|
||||
std::vector<Base::Persistence *> _PathVector;
|
||||
|
||||
public:
|
||||
/// Constructor
|
||||
Path(void);
|
||||
Path(const std::vector<Base::Persistence *> & PathVector);
|
||||
|
||||
/// Constructor
|
||||
Plane(void);
|
||||
virtual ~Plane();
|
||||
virtual ~Path();
|
||||
|
||||
const std::vector<Base::Persistence *> & getVector(void)const{return _PathVector;}
|
||||
|
||||
/// returns the type name of the ViewProvider
|
||||
virtual const char* getViewProviderName(void) const {
|
||||
return "Gui::ViewProviderPlane";
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
} //namespace App
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
#endif // APP_Path_H
|
|
@ -249,7 +249,9 @@ void PropertyLinkSub::setPyObject(PyObject *value)
|
|||
}
|
||||
else if (PyTuple_Check(value) || PyList_Check(value)) {
|
||||
Py::Sequence seq(value);
|
||||
if (PyObject_TypeCheck(seq[0].ptr(), &(DocumentObjectPy::Type))){
|
||||
if(seq.size() == 0)
|
||||
setValue(NULL);
|
||||
else if (PyObject_TypeCheck(seq[0].ptr(), &(DocumentObjectPy::Type))){
|
||||
DocumentObjectPy *pcObj = (DocumentObjectPy*)seq[0].ptr();
|
||||
if (seq[1].isString()) {
|
||||
std::vector<std::string> vals;
|
||||
|
@ -547,11 +549,18 @@ void PropertyLinkSubList::setValue(DocumentObject* lValue,const char* SubName)
|
|||
_lSubList.resize(1);
|
||||
_lSubList[0]=SubName;
|
||||
hasSetValue();
|
||||
} else {
|
||||
aboutToSetValue();
|
||||
_lValueList.clear();
|
||||
_lSubList.clear();
|
||||
hasSetValue();
|
||||
}
|
||||
}
|
||||
|
||||
void PropertyLinkSubList::setValues(const std::vector<DocumentObject*>& lValue,const std::vector<const char*>& lSubNames)
|
||||
{
|
||||
if (lValue.size() != lSubNames.size())
|
||||
throw Base::Exception("PropertyLinkSubList::setValues: size of subelements list != size of objects list");
|
||||
aboutToSetValue();
|
||||
_lValueList = lValue;
|
||||
_lSubList.resize(lSubNames.size());
|
||||
|
@ -563,12 +572,71 @@ void PropertyLinkSubList::setValues(const std::vector<DocumentObject*>& lValue,c
|
|||
|
||||
void PropertyLinkSubList::setValues(const std::vector<DocumentObject*>& lValue,const std::vector<std::string>& lSubNames)
|
||||
{
|
||||
if (lValue.size() != lSubNames.size())
|
||||
throw Base::Exception("PropertyLinkSubList::setValues: size of subelements list != size of objects list");
|
||||
aboutToSetValue();
|
||||
_lValueList = lValue;
|
||||
_lSubList = lSubNames;
|
||||
hasSetValue();
|
||||
}
|
||||
|
||||
void PropertyLinkSubList::setValue(DocumentObject* lValue, const std::vector<string> &SubList)
|
||||
{
|
||||
aboutToSetValue();
|
||||
int size = SubList.size();
|
||||
this->_lValueList.clear();
|
||||
if (size == 0) {
|
||||
if (lValue)
|
||||
this->_lValueList.push_back(lValue);
|
||||
this->_lSubList.clear();
|
||||
} else {
|
||||
this->_lSubList = SubList;
|
||||
this->_lValueList.insert(this->_lValueList.begin(), size, lValue);
|
||||
}
|
||||
hasSetValue();
|
||||
}
|
||||
|
||||
const string PropertyLinkSubList::getPyReprString()
|
||||
{
|
||||
assert(this->_lValueList.size() == this->_lSubList.size());
|
||||
|
||||
if (this->_lValueList.size() == 0)
|
||||
return std::string("None");
|
||||
|
||||
std::stringstream strm;
|
||||
strm << "[";
|
||||
for ( int i = 0 ; i < this->_lSubList.size() ; i++) {
|
||||
if (i>0)
|
||||
strm << ",(";
|
||||
else
|
||||
strm << "(";
|
||||
App::DocumentObject* obj = this->_lValueList[i];
|
||||
if (obj) {
|
||||
strm << "App.getDocument('" << obj->getDocument()->getName() << "')." << obj->getNameInDocument();
|
||||
} else {
|
||||
strm << "None";
|
||||
}
|
||||
strm << ",";
|
||||
strm << "'" << this->_lSubList[i] << "'";
|
||||
strm << ")";
|
||||
}
|
||||
strm << "]";
|
||||
return strm.str();
|
||||
}
|
||||
|
||||
DocumentObject *PropertyLinkSubList::getValue() const
|
||||
{
|
||||
App::DocumentObject* ret = 0;
|
||||
//FIXME: cache this to avoid iterating each time, to improve speed
|
||||
for (int i = 0 ; i < this->_lValueList.size() ; i++){
|
||||
if (ret == 0)
|
||||
ret = this->_lValueList[i];
|
||||
if (ret != this->_lValueList[i])
|
||||
return 0;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
PyObject *PropertyLinkSubList::getPyObject(void)
|
||||
{
|
||||
unsigned int count = getSize();
|
||||
|
@ -591,44 +659,50 @@ PyObject *PropertyLinkSubList::getPyObject(void)
|
|||
|
||||
void PropertyLinkSubList::setPyObject(PyObject *value)
|
||||
{
|
||||
if (PyTuple_Check(value) || PyList_Check(value)) {
|
||||
Py::Sequence list(value);
|
||||
Py::Sequence::size_type size = list.size();
|
||||
try { //try PropertyLinkSub syntax
|
||||
PropertyLinkSub dummy;
|
||||
dummy.setPyObject(value);
|
||||
this->setValue(dummy.getValue(), dummy.getSubValues());
|
||||
} catch (Base::TypeError) {
|
||||
|
||||
std::vector<DocumentObject*> values;
|
||||
values.reserve(size);
|
||||
std::vector<std::string> SubNames;
|
||||
SubNames.reserve(size);
|
||||
if (PyTuple_Check(value) || PyList_Check(value)) {
|
||||
Py::Sequence list(value);
|
||||
Py::Sequence::size_type size = list.size();
|
||||
|
||||
for (Py::Sequence::size_type i=0; i<size; i++) {
|
||||
Py::Object item = list[i];
|
||||
if (item.isTuple()) {
|
||||
Py::Tuple tup(item);
|
||||
if (PyObject_TypeCheck(tup[0].ptr(), &(DocumentObjectPy::Type))){
|
||||
DocumentObjectPy *pcObj;
|
||||
pcObj = static_cast<DocumentObjectPy*>(tup[0].ptr());
|
||||
values.push_back(pcObj->getDocumentObjectPtr());
|
||||
if (Py::Object(tup[1].ptr()).isString()){
|
||||
SubNames.push_back(Py::String(tup[1].ptr()));
|
||||
std::vector<DocumentObject*> values;
|
||||
values.reserve(size);
|
||||
std::vector<std::string> SubNames;
|
||||
SubNames.reserve(size);
|
||||
for (Py::Sequence::size_type i=0; i<size; i++) {
|
||||
Py::Object item = list[i];
|
||||
if (item.isTuple()) {
|
||||
Py::Tuple tup(item);
|
||||
if (PyObject_TypeCheck(tup[0].ptr(), &(DocumentObjectPy::Type))){
|
||||
DocumentObjectPy *pcObj;
|
||||
pcObj = static_cast<DocumentObjectPy*>(tup[0].ptr());
|
||||
values.push_back(pcObj->getDocumentObjectPtr());
|
||||
if (Py::Object(tup[1].ptr()).isString()){
|
||||
SubNames.push_back(Py::String(tup[1].ptr()));
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (PyObject_TypeCheck(*item, &(DocumentObjectPy::Type))) {
|
||||
DocumentObjectPy *pcObj;
|
||||
pcObj = static_cast<DocumentObjectPy*>(*item);
|
||||
values.push_back(pcObj->getDocumentObjectPtr());
|
||||
}
|
||||
else if (item.isString()) {
|
||||
SubNames.push_back(Py::String(item));
|
||||
}
|
||||
}
|
||||
else if (PyObject_TypeCheck(*item, &(DocumentObjectPy::Type))) {
|
||||
DocumentObjectPy *pcObj;
|
||||
pcObj = static_cast<DocumentObjectPy*>(*item);
|
||||
values.push_back(pcObj->getDocumentObjectPtr());
|
||||
}
|
||||
else if (item.isString()) {
|
||||
SubNames.push_back(Py::String(item));
|
||||
}
|
||||
}
|
||||
|
||||
setValues(values,SubNames);
|
||||
}
|
||||
else {
|
||||
std::string error = std::string("type must be 'DocumentObject' or list of 'DocumentObject', not ");
|
||||
error += value->ob_type->tp_name;
|
||||
throw Base::TypeError(error);
|
||||
setValues(values,SubNames);
|
||||
}
|
||||
else {
|
||||
std::string error = std::string("type must be 'DocumentObject' or list of 'DocumentObject', not ");
|
||||
error += value->ob_type->tp_name;
|
||||
throw Base::TypeError(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -683,6 +757,44 @@ void PropertyLinkSubList::Restore(Base::XMLReader &reader)
|
|||
setValues(values,SubNames);
|
||||
}
|
||||
|
||||
void PropertyLinkSubList::Restore_FromLinkSub(XMLReader &reader)
|
||||
{
|
||||
//Copy-paste from PropertyLinkSub::Restore()
|
||||
// read my element
|
||||
reader.readElement("LinkSub");
|
||||
// get the values of my attributes
|
||||
std::string name = reader.getAttribute("value");
|
||||
int count = reader.getAttributeAsInteger("count");
|
||||
|
||||
// Property not in a DocumentObject!
|
||||
assert(getContainer()->getTypeId().isDerivedFrom(App::DocumentObject::getClassTypeId()) );
|
||||
|
||||
std::vector<std::string> values(count);
|
||||
for (int i = 0; i < count; i++) {
|
||||
reader.readElement("Sub");
|
||||
values[i] = reader.getAttribute("value");
|
||||
}
|
||||
|
||||
reader.readEndElement("LinkSub");
|
||||
|
||||
DocumentObject *pcObject;
|
||||
if (name != ""){
|
||||
App::Document* document = static_cast<DocumentObject*>(getContainer())->getDocument();
|
||||
pcObject = document ? document->getObject(name.c_str()) : 0;
|
||||
if (!pcObject) {
|
||||
if (reader.isVerbose()) {
|
||||
Base::Console().Warning("Lost link to '%s' while loading, maybe "
|
||||
"an object was not loaded correctly\n",name.c_str());
|
||||
}
|
||||
}
|
||||
setValue(pcObject,values);
|
||||
}
|
||||
else {
|
||||
setValue(0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Property *PropertyLinkSubList::Copy(void) const
|
||||
{
|
||||
PropertyLinkSubList *p = new PropertyLinkSubList();
|
||||
|
|
|
@ -247,12 +247,19 @@ public:
|
|||
virtual void setSize(int newSize);
|
||||
virtual int getSize(void) const;
|
||||
|
||||
/** Sets the property
|
||||
/** Sets the property.
|
||||
* setValue(0, whatever) clears the property
|
||||
*/
|
||||
void setValue(DocumentObject*,const char*);
|
||||
void setValues(const std::vector<DocumentObject*>&,const std::vector<const char*>&);
|
||||
void setValues(const std::vector<DocumentObject*>&,const std::vector<std::string>&);
|
||||
|
||||
/**
|
||||
* @brief setValue: PropertyLinkSub-compatible overload
|
||||
* @param SubList
|
||||
*/
|
||||
void setValue(App::DocumentObject *lValue, const std::vector<std::string> &SubList=std::vector<std::string>());
|
||||
|
||||
// index operator
|
||||
SubSet operator[] (const int idx) const {
|
||||
return SubSet(_lValueList.operator[] (idx),_lSubList.operator [](idx));
|
||||
|
@ -262,6 +269,16 @@ public:
|
|||
return _lValueList;
|
||||
}
|
||||
|
||||
const std::string getPyReprString();
|
||||
|
||||
/**
|
||||
* @brief getValue emulates the action of a single-object link.
|
||||
* @return reference to object, if the link os to only one object. NULL if
|
||||
* the link is empty, or links to subelements of more than one documant
|
||||
* object.
|
||||
*/
|
||||
DocumentObject* getValue() const;
|
||||
|
||||
const std::vector<std::string> &getSubValues(void) const {
|
||||
return _lSubList;
|
||||
}
|
||||
|
@ -271,6 +288,7 @@ public:
|
|||
|
||||
virtual void Save (Base::Writer &writer) const;
|
||||
virtual void Restore(Base::XMLReader &reader);
|
||||
virtual void Restore_FromLinkSub(Base::XMLReader &reader);
|
||||
|
||||
virtual Property *Copy(void) const;
|
||||
virtual void Paste(const Property &from);
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#define BASE_EXCEPTION_H
|
||||
|
||||
#include <exception>
|
||||
#include <stdexcept>
|
||||
#include <string>
|
||||
#include <signal.h>
|
||||
#include "FileInfo.h"
|
||||
|
|
|
@ -393,15 +393,15 @@ bool Base::XMLReader::doNameMapping() const
|
|||
// ---------------------------------------------------------------------------
|
||||
// Base::XMLReader: Implementation of the SAX DocumentHandler interface
|
||||
// ---------------------------------------------------------------------------
|
||||
void Base::XMLReader::startDocument()
|
||||
{
|
||||
ReadType = StartDocument;
|
||||
}
|
||||
|
||||
void Base::XMLReader::endDocument()
|
||||
{
|
||||
ReadType = EndDocument;
|
||||
}
|
||||
void Base::XMLReader::startDocument()
|
||||
{
|
||||
ReadType = StartDocument;
|
||||
}
|
||||
|
||||
void Base::XMLReader::endDocument()
|
||||
{
|
||||
ReadType = EndDocument;
|
||||
}
|
||||
|
||||
void Base::XMLReader::startElement(const XMLCh* const /*uri*/, const XMLCh* const localname, const XMLCh* const /*qname*/, const XERCES_CPP_NAMESPACE_QUALIFIER Attributes& attrs)
|
||||
{
|
||||
|
|
|
@ -77,9 +77,16 @@ int RotationPy::PyInit(PyObject* args, PyObject* /*kwd*/)
|
|||
PyErr_Clear();
|
||||
double angle;
|
||||
if (PyArg_ParseTuple(args, "O!d", &(Base::VectorPy::Type), &o, &angle)) {
|
||||
// NOTE: The last parameter defines the rotation angle in degree.
|
||||
getRotationPtr()->setValue(static_cast<Base::VectorPy*>(o)->value(), Base::toRadians<double>(angle));
|
||||
return 0;
|
||||
// NOTE: The last parameter defines the rotation angle in degree.
|
||||
getRotationPtr()->setValue(static_cast<Base::VectorPy*>(o)->value(), Base::toRadians<double>(angle));
|
||||
return 0;
|
||||
}
|
||||
|
||||
PyErr_Clear();
|
||||
if (PyArg_ParseTuple(args, "O!d", &(Base::MatrixPy::Type), &o, &angle)) {
|
||||
// NOTE: The last parameter defines the rotation angle in degree.
|
||||
getRotationPtr()->setValue(static_cast<Base::MatrixPy*>(o)->value());
|
||||
return 0;
|
||||
}
|
||||
|
||||
PyErr_Clear();
|
||||
|
@ -96,6 +103,43 @@ int RotationPy::PyInit(PyObject* args, PyObject* /*kwd*/)
|
|||
return 0;
|
||||
}
|
||||
|
||||
double a11 = 1.0, a12 = 0.0, a13 = 0.0, a14 = 0.0;
|
||||
double a21 = 0.0, a22 = 1.0, a23 = 0.0, a24 = 0.0;
|
||||
double a31 = 0.0, a32 = 0.0, a33 = 1.0, a34 = 0.0;
|
||||
double a41 = 0.0, a42 = 0.0, a43 = 0.0, a44 = 1.0;
|
||||
|
||||
// try read a 4x4 matrix
|
||||
PyErr_Clear();
|
||||
if (PyArg_ParseTuple(args, "dddddddddddddddd",
|
||||
&a11, &a12, &a13, &a14,
|
||||
&a21, &a22, &a23, &a24,
|
||||
&a31, &a32, &a33, &a34,
|
||||
&a41, &a42, &a43, &a44))
|
||||
{
|
||||
Matrix4D mtx(a11, a12, a13, a14,
|
||||
a21, a22, a23, a24,
|
||||
a31, a32, a33, a34,
|
||||
a41, a42, a43, a44);
|
||||
getRotationPtr()->setValue(mtx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// try read a 3x3 matrix
|
||||
PyErr_Clear();
|
||||
if (PyArg_ParseTuple(args, "ddddddddd",
|
||||
&a11, &a12, &a13,
|
||||
&a21, &a22, &a23,
|
||||
&a31, &a32, &a33))
|
||||
{
|
||||
Matrix4D mtx(a11, a12, a13, a14,
|
||||
a21, a22, a23, a24,
|
||||
a31, a32, a33, a34,
|
||||
a41, a42, a43, a44);
|
||||
getRotationPtr()->setValue(mtx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
PyErr_Clear();
|
||||
PyObject *v1, *v2;
|
||||
if (PyArg_ParseTuple(args, "O!O!", &(Base::VectorPy::Type), &v1,
|
||||
|
@ -112,7 +156,11 @@ int RotationPy::PyInit(PyObject* args, PyObject* /*kwd*/)
|
|||
"-- four floats (a quaternion)\n"
|
||||
"-- three floats (yaw, pitch, roll)"
|
||||
"-- Vector (rotation axis) and float (rotation angle)\n"
|
||||
"-- two Vectors (two axes)");
|
||||
"-- two Vectors (two axes)\n"
|
||||
"-- Matrix object\n"
|
||||
"-- 16 floats (4x4 matrix)\n"
|
||||
"-- 9 floats (3x3 matrix)\n"
|
||||
);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
|
@ -27,6 +27,8 @@
|
|||
# include <QUuid>
|
||||
#endif
|
||||
|
||||
#include <stdexcept>
|
||||
|
||||
/// Here the FreeCAD includes sorted by Base,App,Gui......
|
||||
#include "Uuid.h"
|
||||
#include "Exception.h"
|
||||
|
|
71
src/Gui/ActiveObjectList.cpp
Normal file
71
src/Gui/ActiveObjectList.cpp
Normal file
|
@ -0,0 +1,71 @@
|
|||
/***************************************************************************
|
||||
* (c) Jürgen Riegel (juergen.riegel@web.de) 2014 *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU Library General Public License (LGPL) *
|
||||
* as published by the Free Software Foundation; either version 2 of *
|
||||
* the License, or (at your option) any later version. *
|
||||
* for detail see the LICENCE text file. *
|
||||
* *
|
||||
* FreeCAD is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with FreeCAD; if not, write to the Free Software *
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
||||
* USA *
|
||||
* *
|
||||
* Juergen Riegel 2014 *
|
||||
***************************************************************************/
|
||||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#ifndef _PreComp_
|
||||
|
||||
#endif
|
||||
|
||||
#include "ActiveObjectList.h"
|
||||
#include <Gui/Application.h>
|
||||
#include <Gui/Document.h>
|
||||
#include <Gui/ViewProviderDocumentObject.h>
|
||||
|
||||
|
||||
|
||||
using namespace Gui;
|
||||
|
||||
|
||||
void Gui::ActiveObjectList::setObject(App::DocumentObject* obj, const char* name, const Gui::HighlightMode& mode)
|
||||
{
|
||||
if (obj){
|
||||
if (hasObject(name)){
|
||||
Gui::Application::Instance->activeDocument()->signalHighlightObject(*dynamic_cast<Gui::ViewProviderDocumentObject*>(Gui::Application::Instance->activeDocument()->getViewProvider(getObject<App::DocumentObject*>(name))), mode, false);
|
||||
}
|
||||
_ObjectMap[name] = obj;
|
||||
|
||||
Gui::Application::Instance->activeDocument()->signalHighlightObject(*dynamic_cast<Gui::ViewProviderDocumentObject*>(Gui::Application::Instance->activeDocument()->getViewProvider(obj)), mode, true);
|
||||
}
|
||||
}
|
||||
|
||||
bool Gui::ActiveObjectList::hasObject(const char*name)const
|
||||
{
|
||||
return _ObjectMap.find(name) != _ObjectMap.end();
|
||||
}
|
||||
|
||||
void ActiveObjectList::objectDeleted(const ViewProviderDocumentObject& viewProviderIn)
|
||||
{
|
||||
App::DocumentObject* object = viewProviderIn.getObject();
|
||||
//maybe boost::bimap or boost::multi_index
|
||||
std::map<std::string, App::DocumentObject*>::iterator it;
|
||||
for (it = _ObjectMap.begin(); it != _ObjectMap.end(); ++it)
|
||||
{
|
||||
if (it->second == object)
|
||||
{
|
||||
_ObjectMap.erase(it);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
74
src/Gui/ActiveObjectList.h
Normal file
74
src/Gui/ActiveObjectList.h
Normal file
|
@ -0,0 +1,74 @@
|
|||
/***************************************************************************
|
||||
* (c) Jürgen Riegel (juergen.riegel@web.de) 2014 *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU Library General Public License (LGPL) *
|
||||
* as published by the Free Software Foundation; either version 2 of *
|
||||
* the License, or (at your option) any later version. *
|
||||
* for detail see the LICENCE text file. *
|
||||
* *
|
||||
* FreeCAD is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with FreeCAD; if not, write to the Free Software *
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
||||
* USA *
|
||||
* *
|
||||
* Juergen Riegel 2014 *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#ifndef GUI_ActiveObjectList_H
|
||||
#define GUI_ActiveObjectList_H
|
||||
|
||||
#include <map>
|
||||
#include "Tree.h"
|
||||
namespace App {
|
||||
class DocumentObject;
|
||||
}
|
||||
|
||||
namespace Gui
|
||||
{
|
||||
|
||||
class Document;
|
||||
class ViewProviderDocumentObject;
|
||||
|
||||
/** List of active or special objects
|
||||
* This class holds a list of objects with a special name.
|
||||
* Its mainly used to points to something like the active Body or Part in a edit session.
|
||||
* The class is used the viewer (editor) of a document.
|
||||
* @see Gui::MDIViewer
|
||||
* @author Jürgen Riegel
|
||||
*/
|
||||
class GuiExport ActiveObjectList
|
||||
{
|
||||
|
||||
public:
|
||||
template<typename _T>
|
||||
inline _T getObject(const char* name) const
|
||||
{
|
||||
std::map<std::string, App::DocumentObject*>::const_iterator pos = _ObjectMap.find(name);
|
||||
return pos == _ObjectMap.end() ? 0 : dynamic_cast<_T>(pos->second);
|
||||
}
|
||||
void setObject(App::DocumentObject*, const char*, const Gui::HighlightMode& m = Gui::LightBlue);
|
||||
bool hasObject(const char*)const;
|
||||
void objectDeleted(const ViewProviderDocumentObject& viewProviderIn);
|
||||
protected:
|
||||
std::map<std::string, App::DocumentObject*> _ObjectMap;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
} //namespace Gui
|
||||
|
||||
static const char PDBODYKEY[] = "pdbody";
|
||||
static const char PARTKEY[] = "part";
|
||||
|
||||
#endif
|
|
@ -1,5 +1,5 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) 2004 Jürgen Riegel <juergen.riegel@web.de> *
|
||||
* Copyright (c) 2004 Juergen Riegel <juergen.riegel@web.de> *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
|
@ -103,7 +103,13 @@
|
|||
#include "ViewProviderAnnotation.h"
|
||||
#include "ViewProviderMeasureDistance.h"
|
||||
#include "ViewProviderPlacement.h"
|
||||
#include "ViewProviderOriginFeature.h"
|
||||
#include "ViewProviderPlane.h"
|
||||
#include "ViewProviderLine.h"
|
||||
#include "ViewProviderGeoFeatureGroup.h"
|
||||
#include "ViewProviderOriginGroup.h"
|
||||
#include "ViewProviderPart.h"
|
||||
#include "ViewProviderOrigin.h"
|
||||
#include "ViewProviderMaterialObject.h"
|
||||
|
||||
#include "Language/Translator.h"
|
||||
|
@ -319,6 +325,15 @@ struct PyMethodDef FreeCADGui_methods[] = {
|
|||
{NULL, NULL} /* sentinel */
|
||||
};
|
||||
|
||||
|
||||
Gui::MDIView* Application::activeView(void) const
|
||||
{
|
||||
if (activeDocument())
|
||||
return activeDocument()->getActiveView();
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
} // namespace Gui
|
||||
|
||||
Application::Application(bool GUIenabled)
|
||||
|
@ -1529,7 +1544,14 @@ void Application::initTypes(void)
|
|||
Gui::ViewProviderPythonFeature ::init();
|
||||
Gui::ViewProviderPythonGeometry ::init();
|
||||
Gui::ViewProviderPlacement ::init();
|
||||
Gui::ViewProviderOriginFeature ::init();
|
||||
Gui::ViewProviderPlane ::init();
|
||||
Gui::ViewProviderLine ::init();
|
||||
Gui::ViewProviderGeoFeatureGroup ::init();
|
||||
Gui::ViewProviderGeoFeatureGroupPython ::init();
|
||||
Gui::ViewProviderOriginGroup ::init();
|
||||
Gui::ViewProviderPart ::init();
|
||||
Gui::ViewProviderOrigin ::init();
|
||||
Gui::ViewProviderMaterialObject ::init();
|
||||
Gui::ViewProviderMaterialObjectPython ::init();
|
||||
|
||||
|
|
|
@ -147,7 +147,9 @@ public:
|
|||
* If no such document exists 0 is returned.
|
||||
*/
|
||||
Gui::Document* getDocument(const App::Document* pDoc) const;
|
||||
/// Shows the associated view provider of the given object
|
||||
/// Getter for the active view of the active document or null
|
||||
Gui::MDIView* activeView(void) const;
|
||||
/// Shows the associated view provider of the given object
|
||||
void showViewProvider(const App::DocumentObject*);
|
||||
/// Hides the associated view provider of the given object
|
||||
void hideViewProvider(const App::DocumentObject*);
|
||||
|
@ -232,6 +234,7 @@ public:
|
|||
|
||||
PYFUNCDEF_S(sActiveDocument);
|
||||
PYFUNCDEF_S(sSetActiveDocument);
|
||||
PYFUNCDEF_S(sActiveView);
|
||||
PYFUNCDEF_S(sGetDocument);
|
||||
|
||||
PYFUNCDEF_S(sDoCommand);
|
||||
|
|
|
@ -139,13 +139,16 @@ PyMethodDef Application::Methods[] = {
|
|||
"Open a macro, Inventor or VRML file"},
|
||||
{"export", (PyCFunction) Application::sExport, 1,
|
||||
"save scene to Inventor or VRML file"},
|
||||
{"activeDocument", (PyCFunction) Application::sActiveDocument, 1,
|
||||
{ "activeDocument", (PyCFunction)Application::sActiveDocument, 1,
|
||||
"activeDocument() -> object or None\n\n"
|
||||
"Return the active document or None if no one exists"},
|
||||
"Return the active document or None if no one exists" },
|
||||
{"setActiveDocument", (PyCFunction) Application::sSetActiveDocument,1,
|
||||
"setActiveDocument(string or App.Document) -> None\n\n"
|
||||
"Activate the specified document"},
|
||||
{"getDocument", (PyCFunction) Application::sGetDocument, 1,
|
||||
{ "activeView", (PyCFunction)Application::sActiveView, 1,
|
||||
"activeView() -> object or None\n\n"
|
||||
"Return the active view of the active document or None if no one exists" },
|
||||
{ "getDocument", (PyCFunction)Application::sGetDocument, 1,
|
||||
"getDocument(string) -> object\n\n"
|
||||
"Get a document by its name"},
|
||||
{"doCommand", (PyCFunction) Application::sDoCommand, 1,
|
||||
|
@ -167,17 +170,34 @@ PyMethodDef Application::Methods[] = {
|
|||
{NULL, NULL} /* Sentinel */
|
||||
};
|
||||
|
||||
PyObject* Gui::Application::sActiveDocument(PyObject * /*self*/, PyObject *args,PyObject * /*kwd*/)
|
||||
PyObject* Gui::Application::sActiveDocument(PyObject * /*self*/, PyObject *args, PyObject * /*kwd*/)
|
||||
{
|
||||
if (!PyArg_ParseTuple(args, "")) // convert args: Python->C
|
||||
return NULL; // NULL triggers exception
|
||||
if (!PyArg_ParseTuple(args, "")) // convert args: Python->C
|
||||
return NULL; // NULL triggers exception
|
||||
|
||||
Document *pcDoc = Instance->activeDocument();
|
||||
if (pcDoc) {
|
||||
return pcDoc->getPyObject();
|
||||
} else {
|
||||
Py_Return;
|
||||
}
|
||||
Document *pcDoc = Instance->activeDocument();
|
||||
if (pcDoc) {
|
||||
return pcDoc->getPyObject();
|
||||
}
|
||||
else {
|
||||
Py_Return;
|
||||
}
|
||||
}
|
||||
|
||||
PyObject* Gui::Application::sActiveView(PyObject * /*self*/, PyObject *args, PyObject * /*kwd*/)
|
||||
{
|
||||
if (!PyArg_ParseTuple(args, "")) // convert args: Python->C
|
||||
return NULL; // NULL triggers exception
|
||||
|
||||
Document *pcDoc = Instance->activeDocument();
|
||||
if (pcDoc) {
|
||||
Gui::MDIView *pcView = pcDoc->getActiveView();
|
||||
if (pcView)
|
||||
// already incremented in getPyObject().
|
||||
return pcView->getPyObject();
|
||||
}
|
||||
|
||||
Py_Return;
|
||||
}
|
||||
|
||||
PyObject* Gui::Application::sSetActiveDocument(PyObject * /*self*/, PyObject *args,PyObject * /*kwd*/)
|
||||
|
|
|
@ -33,6 +33,7 @@ include_directories(
|
|||
${CMAKE_CURRENT_BINARY_DIR}/propertyeditor
|
||||
${CMAKE_CURRENT_BINARY_DIR}/TaskView
|
||||
${CMAKE_CURRENT_BINARY_DIR}/Quarter
|
||||
${CMAKE_CURRENT_BINARY_DIR}/DAGView
|
||||
${Boost_INCLUDE_DIRS}
|
||||
${COIN3D_INCLUDE_DIRS}
|
||||
${PYTHON_INCLUDE_DIRS}
|
||||
|
@ -199,6 +200,7 @@ set(Gui_MOC_HDRS
|
|||
DlgSettingsMacroImp.h
|
||||
DlgSettingsUnitsImp.h
|
||||
DlgTipOfTheDayImp.h
|
||||
DlgCheckableMessageBox.h
|
||||
DlgToolbarsImp.h
|
||||
DlgWorkbenchesImp.h
|
||||
TaskDlgRelocation.h
|
||||
|
@ -260,6 +262,9 @@ set(Gui_MOC_HDRS
|
|||
TaskView/TaskWatcher.h
|
||||
TaskView/TaskEditControl.h
|
||||
TaskView/TaskView.h
|
||||
DAGView/DAGView.h
|
||||
DAGView/DAGModel.h
|
||||
DAGView/DAGRectItem.h
|
||||
)
|
||||
#qt4_wrap_cpp(Gui_MOC_SRCS ${Gui_MOC_HDRS})
|
||||
fc_wrap_cpp(Gui_MOC_SRCS ${Gui_MOC_HDRS})
|
||||
|
@ -305,6 +310,7 @@ SET(Gui_UIC_SRCS
|
|||
DlgSettingsDocument.ui
|
||||
DlgSettingsImage.ui
|
||||
DlgSettingsMacro.ui
|
||||
DlgCheckableMessageBox.ui
|
||||
DlgTipOfTheDay.ui
|
||||
DlgToolbars.ui
|
||||
DlgWorkbenches.ui
|
||||
|
@ -376,6 +382,7 @@ SET(Dialog_CPP_SRCS
|
|||
DlgTipOfTheDayImp.cpp
|
||||
DlgExpressionInput.cpp
|
||||
TaskDlgRelocation.cpp
|
||||
DlgCheckableMessageBox.cpp
|
||||
DlgUndoRedo.cpp
|
||||
InputVector.cpp
|
||||
Placement.cpp
|
||||
|
@ -405,6 +412,7 @@ SET(Dialog_HPP_SRCS
|
|||
DlgProjectInformationImp.h
|
||||
DlgProjectUtility.h
|
||||
DlgPropertyLink.h
|
||||
DlgCheckableMessageBox.h
|
||||
DlgTipOfTheDayImp.h
|
||||
DlgExpressionInput.h
|
||||
TaskDlgRelocation.h
|
||||
|
@ -443,6 +451,7 @@ SET(Dialog_SRCS
|
|||
DlgProjectUtility.ui
|
||||
DlgPropertyLink.ui
|
||||
DlgTipOfTheDay.ui
|
||||
DlgCheckableMessageBox.ui
|
||||
DlgTreeWidget.ui
|
||||
DlgExpressionInput.ui
|
||||
DownloadManager.ui
|
||||
|
@ -551,6 +560,11 @@ SET(Dock_Windows_CPP_SRCS
|
|||
Tree.cpp
|
||||
TreeView.cpp
|
||||
ProjectView.cpp
|
||||
DAGView/DAGView.cpp
|
||||
DAGView/DAGModel.cpp
|
||||
DAGView/DAGRectItem.cpp
|
||||
DAGView/DAGModelGraph.cpp
|
||||
DAGView/DAGFilter.cpp
|
||||
)
|
||||
SET(Dock_Windows_HPP_SRCS
|
||||
CombiView.h
|
||||
|
@ -563,6 +577,11 @@ SET(Dock_Windows_HPP_SRCS
|
|||
Tree.h
|
||||
TreeView.h
|
||||
ProjectView.h
|
||||
DAGView/DAGView.h
|
||||
DAGView/DAGModel.h
|
||||
DAGView/DAGRectItem.h
|
||||
DAGView/DAGModelGraph.h
|
||||
DAGView/DAGFilter.h
|
||||
)
|
||||
SET(Dock_Windows_SRCS
|
||||
${Dock_Windows_CPP_SRCS}
|
||||
|
@ -815,7 +834,13 @@ SET(Viewprovider_CPP_SRCS
|
|||
ViewProviderVRMLObject.cpp
|
||||
ViewProviderBuilder.cpp
|
||||
ViewProviderPlacement.cpp
|
||||
ViewProviderOriginFeature.cpp
|
||||
ViewProviderPlane.cpp
|
||||
ViewProviderLine.cpp
|
||||
ViewProviderGeoFeatureGroup.cpp
|
||||
ViewProviderOriginGroup.cpp
|
||||
ViewProviderPart.cpp
|
||||
ViewProviderOrigin.cpp
|
||||
ViewProviderMaterialObject.cpp
|
||||
)
|
||||
SET(Viewprovider_SRCS
|
||||
|
@ -833,7 +858,13 @@ SET(Viewprovider_SRCS
|
|||
ViewProviderVRMLObject.h
|
||||
ViewProviderBuilder.h
|
||||
ViewProviderPlacement.h
|
||||
ViewProviderOriginFeature.h
|
||||
ViewProviderPlane.h
|
||||
ViewProviderLine.h
|
||||
ViewProviderGeoFeatureGroup.h
|
||||
ViewProviderOriginGroup.h
|
||||
ViewProviderPart.h
|
||||
ViewProviderOrigin.h
|
||||
ViewProviderMaterialObject.h
|
||||
)
|
||||
SOURCE_GROUP("View3D\\Viewprovider" FILES ${Viewprovider_SRCS})
|
||||
|
@ -924,10 +955,12 @@ SOURCE_GROUP("Widget" FILES ${Widget_SRCS})
|
|||
SET(View_CPP_SRCS
|
||||
MDIView.cpp
|
||||
GraphvizView.cpp
|
||||
ActiveObjectList.cpp
|
||||
)
|
||||
SET(View_HPP_SRCS
|
||||
MDIView.h
|
||||
GraphvizView.h
|
||||
ActiveObjectList.h
|
||||
)
|
||||
SET(View_SRCS
|
||||
${View_CPP_SRCS}
|
||||
|
|
|
@ -166,7 +166,6 @@ protected:
|
|||
/// Applies the menu text, tool and status tip to the passed action object
|
||||
void applyCommandData(const char* context, Action* );
|
||||
const char* keySequenceToAccel(int) const;
|
||||
void adjustCameraPosition();
|
||||
//@}
|
||||
|
||||
public:
|
||||
|
@ -252,8 +251,6 @@ public:
|
|||
static void copyVisual(const char* to, const char* attr_to, const char* from, const char* attr_from);
|
||||
/// Get Python tuple from object and sub-elements
|
||||
static std::string getPythonTuple(const std::string& name, const std::vector<std::string>& subnames);
|
||||
/// import an external module only once
|
||||
//static void addModule(const char* sModuleName);
|
||||
/// translate a string to a python string literal (needed e.g. in file names for windows...)
|
||||
const std::string strToPython(const char* Str);
|
||||
const std::string strToPython(const std::string &Str){return strToPython(Str.c_str());};
|
||||
|
@ -288,6 +285,12 @@ public:
|
|||
const char* getGroupName() const { return sGroup; }
|
||||
void setGroupName(const char*);
|
||||
//@}
|
||||
|
||||
|
||||
/** @name arbitrary helper methods */
|
||||
//@{
|
||||
void adjustCameraPosition();
|
||||
//@}
|
||||
|
||||
protected:
|
||||
enum CmdType {
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
# include <QEventLoop>
|
||||
# include <QFileDialog>
|
||||
# include <QLabel>
|
||||
# include <QTextStream>
|
||||
# include <QStatusBar>
|
||||
# include <QPointer>
|
||||
# include <QProcess>
|
||||
|
@ -44,6 +45,7 @@
|
|||
#include <App/DocumentObjectGroup.h>
|
||||
#include <App/DocumentObject.h>
|
||||
#include <App/GeoFeature.h>
|
||||
#include <App/Origin.h>
|
||||
|
||||
#include "Action.h"
|
||||
#include "Application.h"
|
||||
|
@ -558,7 +560,7 @@ DEF_STD_CMD_A(StdCmdProjectInfo);
|
|||
StdCmdProjectInfo::StdCmdProjectInfo()
|
||||
:Command("Std_ProjectInfo")
|
||||
{
|
||||
// seting the
|
||||
// seting the
|
||||
sGroup = QT_TR_NOOP("File");
|
||||
sMenuText = QT_TR_NOOP("Project i&nformation...");
|
||||
sToolTipText = QT_TR_NOOP("Show details of the currently active project");
|
||||
|
@ -589,7 +591,7 @@ DEF_STD_CMD_A(StdCmdProjectUtil);
|
|||
StdCmdProjectUtil::StdCmdProjectUtil()
|
||||
:Command("Std_ProjectUtil")
|
||||
{
|
||||
// seting the
|
||||
// seting the
|
||||
sGroup = QT_TR_NOOP("Tools");
|
||||
sWhatsThis = "Std_ProjectUtil";
|
||||
sMenuText = QT_TR_NOOP("Project utility...");
|
||||
|
@ -1067,15 +1069,22 @@ void StdCmdDelete::activated(int iMsg)
|
|||
}
|
||||
else {
|
||||
// check if we can delete the object
|
||||
std::set<QString> affectedLabels;
|
||||
for (std::vector<Gui::SelectionObject>::iterator ft = sel.begin(); ft != sel.end(); ++ft) {
|
||||
App::DocumentObject* obj = ft->getObject();
|
||||
std::vector<App::DocumentObject*> links = obj->getInList();
|
||||
if (!links.empty()) {
|
||||
// check if the referenced objects are groups or are selected too
|
||||
for (std::vector<App::DocumentObject*>::iterator lt = links.begin(); lt != links.end(); ++lt) {
|
||||
if (!(*lt)->getTypeId().isDerivedFrom(App::DocumentObjectGroup::getClassTypeId()) && !rSel.isSelected(*lt)) {
|
||||
if (
|
||||
(!(*lt)->getTypeId().isDerivedFrom(App::DocumentObjectGroup::getClassTypeId())) &&
|
||||
(!(*lt)->getTypeId().isDerivedFrom(App::Origin::getClassTypeId())) &&
|
||||
(!rSel.isSelected(*lt)) &&
|
||||
(!(*lt)->getTypeId().isDerivedFrom(Base::Type::fromName("Part::BodyBase")))
|
||||
){
|
||||
// TODO Do something with this hack of Part::BodyBase (2015-09-09, Fat-Zer)
|
||||
autoDeletion = false;
|
||||
break;
|
||||
affectedLabels.insert(QString::fromUtf8((*lt)->Label.getValue()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1086,10 +1095,16 @@ void StdCmdDelete::activated(int iMsg)
|
|||
}
|
||||
|
||||
if (!autoDeletion) {
|
||||
QString bodyMessage;
|
||||
QTextStream bodyMessageStream(&bodyMessage);
|
||||
bodyMessageStream << qApp->translate("Std_Delete",
|
||||
"The following, referencing objects might break.\n\n"
|
||||
"Are you sure you want to continue?\n\n");
|
||||
for (const auto ¤tLabel : affectedLabels)
|
||||
bodyMessageStream << currentLabel << '\n';
|
||||
|
||||
int ret = QMessageBox::question(Gui::getMainWindow(),
|
||||
qApp->translate("Std_Delete", "Object dependencies"),
|
||||
qApp->translate("Std_Delete", "This object is referenced by other objects and thus these objects might get broken.\n"
|
||||
"Are you sure to continue?"),
|
||||
qApp->translate("Std_Delete", "Object dependencies"), bodyMessage,
|
||||
QMessageBox::Yes, QMessageBox::No);
|
||||
if (ret == QMessageBox::Yes)
|
||||
autoDeletion = true;
|
||||
|
@ -1112,6 +1127,7 @@ void StdCmdDelete::activated(int iMsg)
|
|||
}
|
||||
}
|
||||
}
|
||||
doCommand(Doc,"App.getDocument(\"%s\").recompute()", (*it)->getName());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1145,7 +1161,7 @@ void StdCmdRefresh::activated(int iMsg)
|
|||
//testing the changes of properties.
|
||||
//openCommand("Refresh active document");
|
||||
doCommand(Doc,"App.activeDocument().recompute()");
|
||||
//commitCommand();
|
||||
//commitCommand();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -124,7 +124,7 @@ void ControlSingleton::showDialog(Gui::TaskView::TaskDialog *dlg)
|
|||
if (ActiveDialog == dlg)
|
||||
return; // dialog is already defined
|
||||
ActiveDialog = dlg;
|
||||
connect(dlg, SIGNAL(destroyed()), this, SLOT(closedDialog()));
|
||||
connect(dlg, SIGNAL(aboutToBeDestroyed()), this, SLOT(closedDialog()));
|
||||
}
|
||||
// not all workbenches have the combo view enabled
|
||||
else if (!_taskPanel) {
|
||||
|
|
86
src/Gui/DAGView/DAGFilter.cpp
Normal file
86
src/Gui/DAGView/DAGFilter.cpp
Normal file
|
@ -0,0 +1,86 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) 2015 Thomas Anderson <blobfish[at]gmx.com> *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#include "PreCompiled.h"
|
||||
#ifndef _PreComp_
|
||||
#endif
|
||||
|
||||
#include <Base/Type.h>
|
||||
#include <Gui/ViewProviderDocumentObject.h>
|
||||
|
||||
|
||||
#include "DAGFilter.h"
|
||||
|
||||
using namespace Gui;
|
||||
using namespace DAG;
|
||||
|
||||
FilterBase::FilterBase() : name(QString::fromAscii("empty name")), enabled(true), type(Type::Exclusion)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
FilterOrigin::FilterOrigin() : FilterBase()
|
||||
{
|
||||
name = QObject::tr("Origin");
|
||||
}
|
||||
|
||||
bool FilterOrigin::goFilter(const Vertex &vertexIn, const Graph &graphIn, const GraphLinkContainer &linkIn) const
|
||||
{
|
||||
Base::Type originType = Base::Type::fromName("App::Origin");
|
||||
assert (originType != Base::Type::badType());
|
||||
//if child of origin hide.
|
||||
InEdgeIterator it, itEnd;
|
||||
for (boost::tie(it, itEnd) = boost::in_edges(vertexIn, graphIn); it != itEnd; ++it)
|
||||
{
|
||||
Vertex source = boost::source(*it, graphIn);
|
||||
const GraphLinkRecord &sourceRecord = findRecord(source, linkIn);
|
||||
if
|
||||
(
|
||||
(sourceRecord.DObject->getTypeId() == originType) &&
|
||||
(boost::in_degree(vertexIn, graphIn) == 1)
|
||||
)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
FilterTyped::FilterTyped(const std::string &typeIn) : FilterBase(), type(typeIn)
|
||||
{
|
||||
name = QString::fromStdString(typeIn);
|
||||
}
|
||||
|
||||
bool FilterTyped::goFilter(const Gui::DAG::Vertex& vertexIn, const Graph& graphIn, const GraphLinkContainer& linkIn) const
|
||||
{
|
||||
if (type.empty())
|
||||
return false;
|
||||
Base::Type theType = Base::Type::fromName(type.c_str());
|
||||
if (theType == Base::Type::badType())
|
||||
return false;
|
||||
|
||||
const GraphLinkRecord &sourceRecord = findRecord(vertexIn, linkIn);
|
||||
if (sourceRecord.DObject->getTypeId() == theType)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
73
src/Gui/DAGView/DAGFilter.h
Normal file
73
src/Gui/DAGView/DAGFilter.h
Normal file
|
@ -0,0 +1,73 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) 2015 Thomas Anderson <blobfish[at]gmx.com> *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef DAGFILTER_H
|
||||
#define DAGFILTER_H
|
||||
|
||||
#include <QString>
|
||||
|
||||
#include "DAGModelGraph.h"
|
||||
|
||||
namespace Gui
|
||||
{
|
||||
class ViewProviderDocumentObject;
|
||||
namespace DAG
|
||||
{
|
||||
class FilterBase
|
||||
{
|
||||
public:
|
||||
enum class Type
|
||||
{
|
||||
None = 0, //!< no type designation. shouldn't be used.
|
||||
Inclusion,
|
||||
Exclusion
|
||||
};
|
||||
FilterBase();
|
||||
//! @return is whether we have a match or not.
|
||||
virtual bool goFilter(const Vertex &vertexIn, const Graph &graphIn, const GraphLinkContainer &linkIn) const = 0;
|
||||
QString name;
|
||||
bool enabled;
|
||||
Type type;
|
||||
};
|
||||
|
||||
/*! Hide all children of app::origin that are not
|
||||
* used by subsequent features
|
||||
*/
|
||||
class FilterOrigin : public FilterBase
|
||||
{
|
||||
public:
|
||||
FilterOrigin();
|
||||
virtual bool goFilter(const Vertex &vertexIn, const Graph &graphIn, const GraphLinkContainer &linkIn) const override;
|
||||
};
|
||||
|
||||
/*! Hide nodes of type*/
|
||||
class FilterTyped : public FilterBase
|
||||
{
|
||||
public:
|
||||
explicit FilterTyped(const std::string &typeIn);
|
||||
std::string type;
|
||||
virtual bool goFilter(const Vertex &vertexIn, const Graph &graphIn, const GraphLinkContainer &linkIn) const override;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif // DAGFILTER_H
|
1202
src/Gui/DAGView/DAGModel.cpp
Normal file
1202
src/Gui/DAGView/DAGModel.cpp
Normal file
File diff suppressed because it is too large
Load Diff
167
src/Gui/DAGView/DAGModel.h
Normal file
167
src/Gui/DAGView/DAGModel.h
Normal file
|
@ -0,0 +1,167 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) 2015 Thomas Anderson <blobfish[at]gmx.com> *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef DAGMODEL_H
|
||||
#define DAGMODEL_H
|
||||
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
|
||||
#include <boost/signal.hpp>
|
||||
|
||||
#include <QGraphicsScene>
|
||||
#include <QBrush>
|
||||
#include <QLineEdit>
|
||||
|
||||
#include "DAGRectItem.h"
|
||||
#include "DAGModelGraph.h"
|
||||
#include "DAGFilter.h"
|
||||
|
||||
class QGraphicsSceneHoverEvent;
|
||||
class QGraphicsProxyWidget;
|
||||
|
||||
namespace Gui
|
||||
{
|
||||
class Document;
|
||||
class ViewProviderDocumentObject;
|
||||
class SelectionChanges;
|
||||
|
||||
namespace DAG
|
||||
{
|
||||
class LineEdit : public QLineEdit
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
LineEdit(QWidget *parentIn = 0);
|
||||
Q_SIGNALS:
|
||||
void acceptedSignal();
|
||||
void rejectedSignal();
|
||||
protected:
|
||||
virtual void keyPressEvent(QKeyEvent*);
|
||||
};
|
||||
|
||||
class Model : public QGraphicsScene
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
Model(QObject *parentIn, const Gui::Document &documentIn);
|
||||
virtual ~Model() override;
|
||||
void awake(); //!< hooked up to event dispatcher for update when idle.
|
||||
void selectionChanged(const SelectionChanges& msg);
|
||||
|
||||
protected:
|
||||
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent* event) override;
|
||||
virtual void mousePressEvent(QGraphicsSceneMouseEvent* event) override;
|
||||
virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event) override;
|
||||
virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent* event) override;
|
||||
|
||||
private Q_SLOTS:
|
||||
void updateSlot();
|
||||
void onRenameSlot();
|
||||
void renameAcceptedSlot();
|
||||
void renameRejectedSlot();
|
||||
void editingStartSlot();
|
||||
void editingFinishedSlot();
|
||||
|
||||
private:
|
||||
Model(){}
|
||||
//documentObject slots.
|
||||
typedef boost::BOOST_SIGNALS_NAMESPACE::connection Connection;
|
||||
Connection connectNewObject;
|
||||
Connection connectDelObject;
|
||||
Connection connectChgObject;
|
||||
Connection connectRenObject;
|
||||
Connection connectActObject;
|
||||
Connection connectEdtObject;
|
||||
Connection connectResObject;
|
||||
Connection connectHltObject;
|
||||
Connection connectExpObject;
|
||||
void slotNewObject(const Gui::ViewProviderDocumentObject &VPDObjectIn);
|
||||
void slotDeleteObject(const Gui::ViewProviderDocumentObject &VPDObjectIn);
|
||||
void slotChangeObject(const Gui::ViewProviderDocumentObject &VPDObjectIn, const App::Property& propertyIn);
|
||||
void slotInEdit(const Gui::ViewProviderDocumentObject &VPDObjectIn);
|
||||
void slotResetEdit(const Gui::ViewProviderDocumentObject &VPDObjectIn);
|
||||
|
||||
std::shared_ptr<GraphLinkContainer> graphLink;
|
||||
std::shared_ptr<Graph> theGraph;
|
||||
bool graphDirty;
|
||||
|
||||
void indexVerticesEdges();
|
||||
void removeAllItems();
|
||||
void addVertexItemsToScene(const Vertex &vertexIn);
|
||||
void removeVertexItemsFromScene(const Vertex &vertexIn);
|
||||
void updateStates();
|
||||
|
||||
RectItem* getRectFromPosition(const QPointF &position); //!< can be nullptr
|
||||
|
||||
//! @name View Constants for spacing
|
||||
//@{
|
||||
float fontHeight; //!< height of the current qApp default font.
|
||||
float direction; //!< controls top to bottom or bottom to top direction.
|
||||
float verticalSpacing; //!< pixels between top and bottom of text to background rectangle.
|
||||
float rowHeight; //!< height of background rectangle.
|
||||
float iconSize; //!< size of icon to match font.
|
||||
float pointSize; //!< size of the connection point.
|
||||
float pointSpacing; //!< spacing between pofloat columns.
|
||||
float pointToIcon; //!< spacing from last column points to first icon.
|
||||
float iconToIcon; //!< spacing between icons.
|
||||
float iconToText; //!< spacing between last icon and text.
|
||||
float rowPadding; //!< spaces added to rectangle bacground width ends.
|
||||
std::vector<QBrush> backgroundBrushes; //!< brushes to paint background rectangles.
|
||||
std::vector<QBrush> forgroundBrushes; //!< brushes to paint points, connectors, text.
|
||||
void setupViewConstants();
|
||||
//@}
|
||||
|
||||
RectItem *currentPrehighlight;
|
||||
|
||||
enum class SelectionMode
|
||||
{
|
||||
Single,
|
||||
Multiple
|
||||
};
|
||||
SelectionMode selectionMode;
|
||||
std::vector<Vertex> getAllSelected();
|
||||
void visiblyIsolate(Vertex sourceIn); //!< hide any connected feature and turn on sourceIn.
|
||||
|
||||
QPointF lastPick;
|
||||
bool lastPickValid = false;
|
||||
|
||||
QPixmap visiblePixmapEnabled;
|
||||
QPixmap visiblePixmapDisabled;
|
||||
QPixmap passPixmap;
|
||||
QPixmap failPixmap;
|
||||
QPixmap pendingPixmap;
|
||||
|
||||
QAction *renameAction;
|
||||
QAction *editingFinishedAction;
|
||||
QGraphicsProxyWidget *proxy = nullptr;
|
||||
void finishRename();
|
||||
|
||||
//filters
|
||||
void setupFilters();
|
||||
typedef std::vector<std::shared_ptr<FilterBase> > FilterContainer;
|
||||
FilterContainer filters;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif // DAGMODEL_H
|
110
src/Gui/DAGView/DAGModelGraph.cpp
Normal file
110
src/Gui/DAGView/DAGModelGraph.cpp
Normal file
|
@ -0,0 +1,110 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) 2015 Thomas Anderson <blobfish[at]gmx.com> *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#include "PreCompiled.h"
|
||||
#ifndef _PreComp_
|
||||
#endif
|
||||
|
||||
#include "DAGModelGraph.h"
|
||||
|
||||
using namespace Gui;
|
||||
using namespace DAG;
|
||||
|
||||
VertexProperty::VertexProperty() :
|
||||
rectangle(new RectItem()),
|
||||
point(new QGraphicsEllipseItem()),
|
||||
visibleIcon(new QGraphicsPixmapItem()),
|
||||
stateIcon(new QGraphicsPixmapItem()),
|
||||
icon(new QGraphicsPixmapItem()),
|
||||
text(new QGraphicsTextItem()),
|
||||
row(0),
|
||||
column(0),
|
||||
lastVisibleState(VisibilityState::None),
|
||||
dagVisible(true)
|
||||
{
|
||||
//set z values.
|
||||
this->rectangle->setZValue(-1000.0);
|
||||
this->point->setZValue(1000.0);
|
||||
this->visibleIcon->setZValue(0.0);
|
||||
this->stateIcon->setZValue(0.0);
|
||||
this->icon->setZValue(0.0);
|
||||
this->text->setZValue(0.0);
|
||||
}
|
||||
|
||||
EdgeProperty::EdgeProperty() : relation(BranchTag::None)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
const GraphLinkRecord& Gui::DAG::findRecord(Vertex vertexIn, const GraphLinkContainer &containerIn)
|
||||
{
|
||||
typedef GraphLinkContainer::index<GraphLinkRecord::ByVertex>::type List;
|
||||
const List &list = containerIn.get<GraphLinkRecord::ByVertex>();
|
||||
List::const_iterator it = list.find(vertexIn);
|
||||
assert(it != list.end());
|
||||
return *it;
|
||||
}
|
||||
|
||||
const GraphLinkRecord& Gui::DAG::findRecord(const App::DocumentObject* dObjectIn, const GraphLinkContainer &containerIn)
|
||||
{
|
||||
typedef GraphLinkContainer::index<GraphLinkRecord::ByDObject>::type List;
|
||||
const List &list = containerIn.get<GraphLinkRecord::ByDObject>();
|
||||
List::const_iterator it = list.find(dObjectIn);
|
||||
assert(it != list.end());
|
||||
return *it;
|
||||
}
|
||||
|
||||
const GraphLinkRecord& Gui::DAG::findRecord(const ViewProviderDocumentObject* VPDObjectIn, const GraphLinkContainer &containerIn)
|
||||
{
|
||||
typedef GraphLinkContainer::index<GraphLinkRecord::ByVPDObject>::type List;
|
||||
const List &list = containerIn.get<GraphLinkRecord::ByVPDObject>();
|
||||
List::const_iterator it = list.find(VPDObjectIn);
|
||||
assert(it != list.end());
|
||||
return *it;
|
||||
}
|
||||
|
||||
const GraphLinkRecord& Gui::DAG::findRecord(const RectItem* rectIn, const GraphLinkContainer &containerIn)
|
||||
{
|
||||
typedef GraphLinkContainer::index<GraphLinkRecord::ByRectItem>::type List;
|
||||
const List &list = containerIn.get<GraphLinkRecord::ByRectItem>();
|
||||
List::const_iterator it = list.find(rectIn);
|
||||
assert(it != list.end());
|
||||
return *it;
|
||||
}
|
||||
|
||||
const GraphLinkRecord& Gui::DAG::findRecord(const std::string &stringIn, const GraphLinkContainer &containerIn)
|
||||
{
|
||||
typedef GraphLinkContainer::index<GraphLinkRecord::ByUniqueName>::type List;
|
||||
const List &list = containerIn.get<GraphLinkRecord::ByUniqueName>();
|
||||
List::const_iterator it = list.find(stringIn);
|
||||
assert(it != list.end());
|
||||
return *it;
|
||||
}
|
||||
|
||||
void Gui::DAG::eraseRecord(const ViewProviderDocumentObject* VPDObjectIn, GraphLinkContainer &containerIn)
|
||||
{
|
||||
typedef GraphLinkContainer::index<GraphLinkRecord::ByVPDObject>::type List;
|
||||
const List &list = containerIn.get<GraphLinkRecord::ByVPDObject>();
|
||||
List::iterator it = list.find(VPDObjectIn);
|
||||
assert(it != list.end());
|
||||
containerIn.get<GraphLinkRecord::ByVPDObject>().erase(it);
|
||||
}
|
291
src/Gui/DAGView/DAGModelGraph.h
Normal file
291
src/Gui/DAGView/DAGModelGraph.h
Normal file
|
@ -0,0 +1,291 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) 2015 Thomas Anderson <blobfish[at]gmx.com> *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef DAGMODELGRAPH_H
|
||||
#define DAGMODELGRAPH_H
|
||||
|
||||
#include <memory>
|
||||
#include <bitset>
|
||||
|
||||
#include <boost/graph/adjacency_list.hpp>
|
||||
#include <boost/graph/iteration_macros.hpp>
|
||||
#include <boost/graph/reverse_graph.hpp>
|
||||
#include <boost/graph/topological_sort.hpp>
|
||||
#include <boost/graph/graphviz.hpp>
|
||||
#include <boost/graph/breadth_first_search.hpp>
|
||||
#include <boost/multi_index_container.hpp>
|
||||
#include <boost/multi_index/member.hpp>
|
||||
#include <boost/multi_index/ordered_index.hpp>
|
||||
|
||||
#include "DAGRectItem.h"
|
||||
|
||||
namespace App{class DocumentObject;}
|
||||
|
||||
namespace Gui
|
||||
{
|
||||
class ViewProviderDocumentObject;
|
||||
|
||||
namespace DAG
|
||||
{
|
||||
enum class VisibilityState
|
||||
{
|
||||
None = 0, //<! not determined.
|
||||
On, //<! shown
|
||||
Off //<! hidden
|
||||
};
|
||||
|
||||
enum class FeatureState
|
||||
{
|
||||
None = 0, //<! not determined.
|
||||
Pass, //<! feature updated ok.
|
||||
Fail, //<! feature failed to update.
|
||||
Pending //<! feature is pending an update.
|
||||
};
|
||||
|
||||
//limit of column width? boost::dynamic_bitset?
|
||||
//did a trial run with this set at 4096, not much difference.
|
||||
//going to leave a big number by default and see how it goes.
|
||||
typedef std::bitset<1024> ColumnMask;
|
||||
|
||||
/*! @brief Graph vertex information
|
||||
*
|
||||
* My data stored for each vertex;
|
||||
*/
|
||||
struct VertexProperty
|
||||
{
|
||||
VertexProperty();
|
||||
std::shared_ptr<RectItem> rectangle; //!< background
|
||||
std::shared_ptr<QGraphicsEllipseItem> point; //!< point
|
||||
std::shared_ptr<QGraphicsPixmapItem> visibleIcon; //!< visible Icon
|
||||
std::shared_ptr<QGraphicsPixmapItem> stateIcon; //!< visible Icon
|
||||
std::shared_ptr<QGraphicsPixmapItem> icon; //!< icon
|
||||
std::shared_ptr<QGraphicsTextItem> text; //!< text
|
||||
int row; //!< row for this entry.
|
||||
ColumnMask column; //!< column number containing the point.
|
||||
int topoSortIndex;
|
||||
VisibilityState lastVisibleState; //!< visibility test.
|
||||
FeatureState lastFeatureState; //!< feature state test.
|
||||
bool dagVisible; //!< should entry be visible in the DAG view.
|
||||
};
|
||||
/*! @brief boost data for each vertex.
|
||||
*
|
||||
* needed to create an internal index for vertex. needed for listS.
|
||||
* color is needed by some algorithms */
|
||||
typedef boost::property
|
||||
<
|
||||
boost::vertex_index_t, std::size_t,
|
||||
boost::property <boost::vertex_color_t, boost::default_color_type, VertexProperty>
|
||||
> vertex_prop;
|
||||
|
||||
/*! @brief Graph edge information
|
||||
*
|
||||
* My data stored for each edge;
|
||||
*/
|
||||
struct EdgeProperty
|
||||
{
|
||||
//! Feature relation meta data. Not used right now.
|
||||
enum class BranchTag
|
||||
{
|
||||
None = 0, //!< not defined.
|
||||
Create, //!< create a new branch.
|
||||
Continue, //!< continue a branch.
|
||||
Terminate //!< terminate a branch.
|
||||
};
|
||||
EdgeProperty();
|
||||
BranchTag relation;
|
||||
std::shared_ptr <QGraphicsPathItem> connector; //!< line representing link between nodes.
|
||||
};
|
||||
/*! @brief needed to create an internal index for graph edges. needed for setS.*/
|
||||
typedef boost::property<boost::edge_index_t, std::size_t, EdgeProperty> edge_prop;
|
||||
|
||||
typedef boost::adjacency_list<boost::setS, boost::listS, boost::bidirectionalS, vertex_prop, edge_prop> Graph;
|
||||
typedef boost::graph_traits<Graph>::vertex_descriptor Vertex;
|
||||
typedef boost::graph_traits<Graph>::edge_descriptor Edge;
|
||||
typedef boost::graph_traits<Graph>::vertex_iterator VertexIterator;
|
||||
typedef boost::graph_traits<Graph>::edge_iterator EdgeIterator;
|
||||
typedef boost::graph_traits<Graph>::in_edge_iterator InEdgeIterator;
|
||||
typedef boost::graph_traits<Graph>::out_edge_iterator OutEdgeIterator;
|
||||
typedef boost::graph_traits<Graph>::adjacency_iterator VertexAdjacencyIterator;
|
||||
typedef boost::reverse_graph<Graph, Graph&> GraphReversed;
|
||||
typedef std::vector<Vertex> Path; //!< a path or any array of vertices
|
||||
|
||||
template <class GraphEW>
|
||||
class Edge_writer {
|
||||
public:
|
||||
Edge_writer(const GraphEW &graphEWIn) : graphEW(graphEWIn) {}
|
||||
template <class EdgeW>
|
||||
void operator()(std::ostream& out, const EdgeW& edgeW) const
|
||||
{
|
||||
out << "[label=\"";
|
||||
out << "edge";
|
||||
out << "\"]";
|
||||
}
|
||||
private:
|
||||
const GraphEW &graphEW;
|
||||
};
|
||||
|
||||
template <class GraphVW>
|
||||
class Vertex_writer {
|
||||
public:
|
||||
Vertex_writer(const GraphVW &graphVWIn) : graphVW(graphVWIn) {}
|
||||
template <class VertexW>
|
||||
void operator()(std::ostream& out, const VertexW& vertexW) const
|
||||
{
|
||||
out << "[label=\"";
|
||||
out << graphVW[vertexW].text->toPlainText().toAscii().data();
|
||||
out << "\"]";
|
||||
}
|
||||
private:
|
||||
const GraphVW &graphVW;
|
||||
};
|
||||
|
||||
template <class GraphIn>
|
||||
void outputGraphviz(const GraphIn &graphIn, const std::string &filePath)
|
||||
{
|
||||
std::ofstream file(filePath.c_str());
|
||||
boost::write_graphviz(file, graphIn, Vertex_writer<GraphIn>(graphIn),
|
||||
Edge_writer<GraphIn>(graphIn));
|
||||
}
|
||||
|
||||
//! get all the leaves of the templated graph. Not used right now.
|
||||
template <class GraphIn>
|
||||
class RakeLeaves
|
||||
{
|
||||
typedef boost::graph_traits<Graph>::vertex_descriptor GraphInVertex;
|
||||
typedef std::vector<GraphInVertex> GraphInVertices;
|
||||
public:
|
||||
RakeLeaves(const GraphIn &graphIn) : graph(graphIn) {}
|
||||
GraphInVertices operator()() const
|
||||
{
|
||||
GraphInVertices out;
|
||||
BGL_FORALL_VERTICES_T(currentVertex, graph, GraphIn)
|
||||
{
|
||||
if (boost::out_degree(currentVertex, graph) == 0)
|
||||
out.push_back(currentVertex);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
private:
|
||||
const GraphIn &graph;
|
||||
};
|
||||
|
||||
//! get all the roots of the templated graph. Not used right now.
|
||||
template <class GraphIn>
|
||||
class DigRoots
|
||||
{
|
||||
typedef boost::graph_traits<Graph>::vertex_descriptor GraphInVertex;
|
||||
typedef std::vector<GraphInVertex> GraphInVertices;
|
||||
public:
|
||||
DigRoots(const GraphIn &graphIn) : graph(graphIn) {}
|
||||
GraphInVertices operator()() const
|
||||
{
|
||||
GraphInVertices out;
|
||||
BGL_FORALL_VERTICES_T(currentVertex, graph, GraphIn)
|
||||
{
|
||||
if (boost::in_degree(currentVertex, graph) == 0)
|
||||
out.push_back(currentVertex);
|
||||
}
|
||||
return out;
|
||||
}
|
||||
private:
|
||||
const GraphIn &graph;
|
||||
};
|
||||
|
||||
/*! @brief Get connected components.
|
||||
*/
|
||||
class ConnectionVisitor : public boost::default_bfs_visitor
|
||||
{
|
||||
public:
|
||||
ConnectionVisitor(std::vector<Vertex> &verticesIn) : vertices(verticesIn){}
|
||||
|
||||
template<typename TVertex, typename TGraph>
|
||||
void discover_vertex(TVertex vertex, TGraph &graph)
|
||||
{
|
||||
vertices.push_back(vertex);
|
||||
}
|
||||
private:
|
||||
std::vector<Vertex> &vertices;
|
||||
};
|
||||
|
||||
/*! Multi_index record. */
|
||||
struct GraphLinkRecord
|
||||
{
|
||||
const App::DocumentObject *DObject; //!< document object
|
||||
const Gui::ViewProviderDocumentObject *VPDObject; //!< view provider
|
||||
const RectItem *rectItem; //!< qgraphics item.
|
||||
std::string uniqueName; //!< name for document object.
|
||||
Vertex vertex; //!< vertex in graph.
|
||||
|
||||
//@{
|
||||
//! used as tags.
|
||||
struct ByDObject{};
|
||||
struct ByVPDObject{};
|
||||
struct ByRectItem{};
|
||||
struct ByUniqueName{};
|
||||
struct ByVertex{};
|
||||
//@}
|
||||
};
|
||||
|
||||
namespace BMI = boost::multi_index;
|
||||
typedef boost::multi_index_container
|
||||
<
|
||||
GraphLinkRecord,
|
||||
BMI::indexed_by
|
||||
<
|
||||
BMI::ordered_unique
|
||||
<
|
||||
BMI::tag<GraphLinkRecord::ByDObject>,
|
||||
BMI::member<GraphLinkRecord, const App::DocumentObject*, &GraphLinkRecord::DObject>
|
||||
>,
|
||||
BMI::ordered_unique
|
||||
<
|
||||
BMI::tag<GraphLinkRecord::ByVPDObject>,
|
||||
BMI::member<GraphLinkRecord, const Gui::ViewProviderDocumentObject*, &GraphLinkRecord::VPDObject>
|
||||
>,
|
||||
BMI::ordered_unique
|
||||
<
|
||||
BMI::tag<GraphLinkRecord::ByRectItem>,
|
||||
BMI::member<GraphLinkRecord, const RectItem*, &GraphLinkRecord::rectItem>
|
||||
>,
|
||||
BMI::ordered_unique
|
||||
<
|
||||
BMI::tag<GraphLinkRecord::ByUniqueName>,
|
||||
BMI::member<GraphLinkRecord, std::string, &GraphLinkRecord::uniqueName>
|
||||
>,
|
||||
BMI::ordered_unique
|
||||
<
|
||||
BMI::tag<GraphLinkRecord::ByVertex>,
|
||||
BMI::member<GraphLinkRecord, Vertex, &GraphLinkRecord::vertex>
|
||||
>
|
||||
>
|
||||
> GraphLinkContainer;
|
||||
|
||||
const GraphLinkRecord& findRecord(Vertex vertexIn, const GraphLinkContainer &containerIn);
|
||||
const GraphLinkRecord& findRecord(const App::DocumentObject* dObjectIn, const GraphLinkContainer &containerIn);
|
||||
const GraphLinkRecord& findRecord(const Gui::ViewProviderDocumentObject* VPDObjectIn, const GraphLinkContainer &containerIn);
|
||||
const GraphLinkRecord& findRecord(const RectItem* rectIn, const GraphLinkContainer &containerIn);
|
||||
const GraphLinkRecord& findRecord(const std::string &stringIn, const GraphLinkContainer &containerIn);
|
||||
void eraseRecord(const Gui::ViewProviderDocumentObject* VPDObjectIn, GraphLinkContainer &containerIn);
|
||||
}
|
||||
}
|
||||
|
||||
#endif // DAGMODELGRAPH_H
|
78
src/Gui/DAGView/DAGRectItem.cpp
Normal file
78
src/Gui/DAGView/DAGRectItem.cpp
Normal file
|
@ -0,0 +1,78 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) 2015 Thomas Anderson <blobfish[at]gmx.com> *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#include "PreCompiled.h"
|
||||
#ifndef _PreComp_
|
||||
#include <QPainter>
|
||||
#include <QApplication>
|
||||
#endif
|
||||
|
||||
#include <QStyleOptionViewItem>
|
||||
|
||||
#include "DAGRectItem.h"
|
||||
|
||||
using namespace Gui;
|
||||
using namespace DAG;
|
||||
|
||||
RectItem::RectItem(QGraphicsItem* parent) : QGraphicsRectItem(parent)
|
||||
{
|
||||
selected = false;
|
||||
preSelected = false;
|
||||
editing = false;
|
||||
}
|
||||
|
||||
void RectItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
|
||||
{
|
||||
painter->save();
|
||||
|
||||
QStyleOptionViewItemV4 styleOption;
|
||||
|
||||
styleOption.backgroundBrush = backgroundBrush;
|
||||
if (editing)
|
||||
styleOption.backgroundBrush = editBrush;
|
||||
else
|
||||
{
|
||||
styleOption.state |= QStyle::State_Enabled;
|
||||
if (selected)
|
||||
styleOption.state |= QStyle::State_Selected;
|
||||
if (preSelected)
|
||||
{
|
||||
if (!selected)
|
||||
{
|
||||
styleOption.state |= QStyle::State_Selected;
|
||||
QPalette palette = styleOption.palette;
|
||||
QColor tempColor = palette.color(QPalette::Active, QPalette::Highlight);
|
||||
tempColor.setAlphaF(0.15);
|
||||
palette.setColor(QPalette::Inactive, QPalette::Highlight, tempColor);
|
||||
styleOption.palette = palette;
|
||||
}
|
||||
styleOption.state |= QStyle::State_MouseOver;
|
||||
}
|
||||
}
|
||||
styleOption.rect = this->rect().toRect();
|
||||
|
||||
QApplication::style()->drawControl(QStyle::CE_ItemViewItem, &styleOption, painter);
|
||||
|
||||
painter->restore();
|
||||
}
|
||||
|
||||
#include <moc_DAGRectItem.cpp>
|
64
src/Gui/DAGView/DAGRectItem.h
Normal file
64
src/Gui/DAGView/DAGRectItem.h
Normal file
|
@ -0,0 +1,64 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) 2015 Thomas Anderson <blobfish[at]gmx.com> *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef DAGRECTITEM_H
|
||||
#define DAGRECTITEM_H
|
||||
|
||||
#include <QGraphicsRectItem>
|
||||
#include <QBrush>
|
||||
|
||||
namespace Gui
|
||||
{
|
||||
namespace DAG
|
||||
{
|
||||
/*all right I give up! the parenting combined with the zvalues is fubar!
|
||||
* you can't control any kind of layering between children of separate parents
|
||||
*/
|
||||
class RectItem : public QGraphicsRectItem
|
||||
{
|
||||
public:
|
||||
RectItem(QGraphicsItem* parent = 0);
|
||||
void setBackgroundBrush(const QBrush &brushIn){backgroundBrush = brushIn;}
|
||||
void setEditingBrush(const QBrush &brushIn){editBrush = brushIn;}
|
||||
void preHighlightOn(){preSelected = true;}
|
||||
void preHighlightOff(){preSelected = false;}
|
||||
void selectionOn(){selected = true;}
|
||||
void selectionOff(){selected = false;}
|
||||
bool isSelected(){return selected;}
|
||||
bool isPreSelected(){return preSelected;}
|
||||
void editingStart(){editing = true;}
|
||||
void editingFinished(){editing = false;}
|
||||
bool isEditing(){return editing;}
|
||||
protected:
|
||||
virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = 0);
|
||||
private:
|
||||
QBrush backgroundBrush; //!< brush used for background. not used yet.
|
||||
QBrush editBrush; //!< brush used when object is in edit mode.
|
||||
//start with booleans, may expand to state.
|
||||
bool selected;
|
||||
bool preSelected;
|
||||
bool editing;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif // DAGRECTITEM_H
|
121
src/Gui/DAGView/DAGView.cpp
Normal file
121
src/Gui/DAGView/DAGView.cpp
Normal file
|
@ -0,0 +1,121 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) 2015 Thomas Anderson <blobfish[at]gmx.com> *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#include "PreCompiled.h"
|
||||
#ifndef _PreComp_
|
||||
#include <QAbstractEventDispatcher>
|
||||
#include <QVBoxLayout>
|
||||
#endif
|
||||
|
||||
#include <sstream>
|
||||
|
||||
#include <Base/Console.h>
|
||||
|
||||
#include <App/Document.h>
|
||||
#include <Gui/Document.h>
|
||||
#include <Gui/Application.h>
|
||||
|
||||
#include "DAGModel.h"
|
||||
#include "DAGView.h"
|
||||
|
||||
using namespace Gui;
|
||||
using namespace DAG;
|
||||
|
||||
DAG::DockWindow::DockWindow(Gui::Document* gDocumentIn, QWidget* parent): Gui::DockWindow(gDocumentIn, parent)
|
||||
{
|
||||
dagView = new View(this);
|
||||
QVBoxLayout *layout = new QVBoxLayout();
|
||||
layout->addWidget(dagView);
|
||||
this->setLayout(layout);
|
||||
}
|
||||
|
||||
View::View(QWidget* parentIn): QGraphicsView(parentIn)
|
||||
{
|
||||
this->setRenderHint(QPainter::Antialiasing, true);
|
||||
this->setRenderHint(QPainter::TextAntialiasing, true);
|
||||
Application::Instance->signalActiveDocument.connect(boost::bind(&View::slotActiveDocument, this, _1));
|
||||
Application::Instance->signalDeleteDocument.connect(boost::bind(&View::slotDeleteDocument, this, _1));
|
||||
|
||||
//just update the dagview when the gui process is idle.
|
||||
connect(QAbstractEventDispatcher::instance(), SIGNAL(awake()), this, SLOT(awakeSlot()));
|
||||
}
|
||||
|
||||
View::~View()
|
||||
{
|
||||
Application::Instance->signalActiveDocument.disconnect(boost::bind(&View::slotActiveDocument, this, _1));
|
||||
Application::Instance->signalDeleteDocument.disconnect(boost::bind(&View::slotDeleteDocument, this, _1));
|
||||
}
|
||||
|
||||
void View::slotActiveDocument(const Document &documentIn)
|
||||
{
|
||||
ModelMap::const_iterator it = modelMap.find(&documentIn);
|
||||
if (it == modelMap.end())
|
||||
{
|
||||
ModelMap::value_type entry(std::make_pair(&documentIn, std::shared_ptr<Model>(new Model(this, documentIn))));
|
||||
modelMap.insert(entry);
|
||||
this->setScene(entry.second.get());
|
||||
}
|
||||
else
|
||||
{
|
||||
this->setScene(it->second.get());
|
||||
}
|
||||
}
|
||||
|
||||
void View::slotDeleteDocument(const Document &documentIn)
|
||||
{
|
||||
ModelMap::iterator it = modelMap.find(&documentIn);
|
||||
if (it != modelMap.end())
|
||||
modelMap.erase(it);
|
||||
}
|
||||
|
||||
void View::awakeSlot()
|
||||
{
|
||||
Model *model = dynamic_cast<Model *>(this->scene());
|
||||
if (model)
|
||||
model->awake();
|
||||
}
|
||||
|
||||
void View::onSelectionChanged(const SelectionChanges& msg)
|
||||
{
|
||||
//dispatch to appropriate document.
|
||||
ModelMap::iterator it;
|
||||
for (auto it = modelMap.begin(); it != modelMap.end(); ++it)
|
||||
{
|
||||
if (std::string(it->first->getDocument()->getName()) == std::string(msg.pDocName))
|
||||
{
|
||||
it->second->selectionChanged(msg);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//why am I getting a spontanous event with an empty name?
|
||||
//also getting events after document has been removed from modelMap.
|
||||
//just ignore for now.
|
||||
// std::ostringstream stream;
|
||||
// stream << std::endl << "couldn't find document of name: " << std::string(msg.pDocName) << std::endl << std::endl;
|
||||
// Base::Console().Warning(stream.str().c_str());
|
||||
// assert(0); //no document of name.
|
||||
}
|
||||
|
||||
|
||||
|
||||
#include "moc_DAGView.cpp"
|
75
src/Gui/DAGView/DAGView.h
Normal file
75
src/Gui/DAGView/DAGView.h
Normal file
|
@ -0,0 +1,75 @@
|
|||
/***************************************************************************
|
||||
* Copyright (c) 2015 Thomas Anderson <blobfish[at]gmx.com> *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef DAGVIEW_H
|
||||
#define DAGVIEW_H
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include <QtGui/QGraphicsView>
|
||||
|
||||
#include <Gui/DockWindow.h>
|
||||
#include <Gui/Document.h>
|
||||
#include <Gui/Selection.h>
|
||||
|
||||
#include "DAGModel.h"
|
||||
|
||||
namespace Gui
|
||||
{
|
||||
namespace DAG
|
||||
{
|
||||
//! @brief view for DAG viewer
|
||||
class View : public QGraphicsView, public SelectionObserver
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
View(QWidget *parentIn = 0);
|
||||
virtual ~View() override;
|
||||
|
||||
public Q_SLOTS:
|
||||
void awakeSlot(); //!< hooked up to event dispatcher for update when idle.
|
||||
|
||||
private:
|
||||
virtual void onSelectionChanged(const SelectionChanges& msg) override;
|
||||
|
||||
void slotActiveDocument(const Gui::Document &documentIn);
|
||||
void slotDeleteDocument(const Gui::Document &documentIn);
|
||||
|
||||
typedef std::map<const Gui::Document*, std::shared_ptr<Model> > ModelMap;
|
||||
ModelMap modelMap;
|
||||
};
|
||||
|
||||
//! @brief dock window for DAG viewer
|
||||
class DockWindow : public Gui::DockWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
DockWindow(Gui::Document* gDocumentIn = 0, QWidget *parent = 0);
|
||||
~DockWindow(){};
|
||||
|
||||
private:
|
||||
View *dagView;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif // DAGVIEW_H
|
3981
src/Gui/DAGView/DAGViewerDesign.svg
Normal file
3981
src/Gui/DAGView/DAGViewerDesign.svg
Normal file
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 201 KiB |
239
src/Gui/DlgCheckableMessageBox.cpp
Normal file
239
src/Gui/DlgCheckableMessageBox.cpp
Normal file
|
@ -0,0 +1,239 @@
|
|||
/**************************************************************************
|
||||
**
|
||||
** This file is part of Qt Creator
|
||||
**
|
||||
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
|
||||
**
|
||||
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||
**
|
||||
** Commercial Usage
|
||||
**
|
||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
||||
** accordance with the Qt Commercial License Agreement provided with the
|
||||
** Software or, alternatively, in accordance with the terms contained in
|
||||
** a written agreement between you and Nokia.
|
||||
**
|
||||
** GNU Lesser General Public License Usage
|
||||
**
|
||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
** General Public License version 2.1 as published by the Free Software
|
||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
** packaging of this file. Please review the following information to
|
||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
**
|
||||
** If you are unsure which license is appropriate for your use, please
|
||||
** contact the sales department at http://qt.nokia.com/contact.
|
||||
**
|
||||
**************************************************************************/
|
||||
|
||||
#include "PreCompiled.h"
|
||||
#ifndef _PreComp_
|
||||
# include <QHeaderView>
|
||||
#endif
|
||||
|
||||
#include "DlgCheckableMessageBox.h"
|
||||
#include "ui_DlgCheckableMessageBox.h"
|
||||
|
||||
#include <QtGui/QPushButton>
|
||||
#include <QtCore/QDebug>
|
||||
|
||||
#include "MainWindow.h"
|
||||
|
||||
#include <App/Application.h>
|
||||
//#include <App/Parameter.h>
|
||||
|
||||
|
||||
namespace Gui {
|
||||
namespace Dialog {
|
||||
QByteArray toParamEntry(QString name)
|
||||
{
|
||||
QString tmp = QString::fromLatin1(name.toLatin1());
|
||||
name.replace(QString::fromLatin1(" "),QString::fromLatin1("_"));
|
||||
return name.toLatin1();
|
||||
}
|
||||
|
||||
void DlgCheckableMessageBox::showMessage(QString header, QString message, bool check,QString checkText )
|
||||
{
|
||||
bool checked = App::GetApplication().GetParameterGroupByPath( QByteArray("User parameter:BaseApp/CheckMessages"))->GetBool(toParamEntry(header));
|
||||
|
||||
if(!checked){
|
||||
DlgCheckableMessageBox *mb = new DlgCheckableMessageBox(Gui::getMainWindow());
|
||||
mb->setWindowTitle(header);
|
||||
mb->setIconPixmap(QMessageBox::standardIcon(QMessageBox::Warning));
|
||||
mb->setText(message);
|
||||
mb->setPrefEntry(header);
|
||||
mb->setCheckBoxText(checkText);
|
||||
mb->setChecked(check);
|
||||
mb->setStandardButtons(QDialogButtonBox::Ok);
|
||||
mb->setDefaultButton(QDialogButtonBox::Ok);
|
||||
mb->show();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
struct DlgCheckableMessageBoxPrivate {
|
||||
DlgCheckableMessageBoxPrivate() : clickedButton(0) {}
|
||||
|
||||
Ui::DlgCheckableMessageBox ui;
|
||||
QAbstractButton *clickedButton;
|
||||
};
|
||||
|
||||
DlgCheckableMessageBox::DlgCheckableMessageBox(QWidget *parent) :
|
||||
QDialog(parent),
|
||||
m_d(new DlgCheckableMessageBoxPrivate)
|
||||
{
|
||||
setModal(true);
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
m_d->ui.setupUi(this);
|
||||
m_d->ui.pixmapLabel->setVisible(false);
|
||||
connect(m_d->ui.buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
|
||||
connect(m_d->ui.buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
|
||||
connect(m_d->ui.buttonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(slotClicked(QAbstractButton*)));
|
||||
}
|
||||
|
||||
DlgCheckableMessageBox::~DlgCheckableMessageBox()
|
||||
{
|
||||
delete m_d;
|
||||
}
|
||||
|
||||
void DlgCheckableMessageBox::setPrefEntry( const QString& entry )
|
||||
{
|
||||
paramEntry = toParamEntry(entry);
|
||||
bool checked = App::GetApplication().GetParameterGroupByPath( QByteArray("User parameter:BaseApp/CheckMessages"))->GetBool(paramEntry);
|
||||
setChecked(checked);
|
||||
}
|
||||
|
||||
|
||||
void DlgCheckableMessageBox::slotClicked(QAbstractButton *b)
|
||||
{
|
||||
m_d->clickedButton = b;
|
||||
}
|
||||
|
||||
QAbstractButton *DlgCheckableMessageBox::clickedButton() const
|
||||
{
|
||||
return m_d->clickedButton;
|
||||
}
|
||||
|
||||
QDialogButtonBox::StandardButton DlgCheckableMessageBox::clickedStandardButton() const
|
||||
{
|
||||
if (m_d->clickedButton)
|
||||
return m_d->ui.buttonBox->standardButton(m_d->clickedButton);
|
||||
return QDialogButtonBox::NoButton;
|
||||
}
|
||||
|
||||
QString DlgCheckableMessageBox::text() const
|
||||
{
|
||||
return m_d->ui.messageLabel->text();
|
||||
}
|
||||
|
||||
void DlgCheckableMessageBox::setText(const QString &t)
|
||||
{
|
||||
m_d->ui.messageLabel->setText(t);
|
||||
}
|
||||
|
||||
QPixmap DlgCheckableMessageBox::iconPixmap() const
|
||||
{
|
||||
if (const QPixmap *p = m_d->ui.pixmapLabel->pixmap())
|
||||
return QPixmap(*p);
|
||||
return QPixmap();
|
||||
}
|
||||
|
||||
void DlgCheckableMessageBox::setIconPixmap(const QPixmap &p)
|
||||
{
|
||||
m_d->ui.pixmapLabel->setPixmap(p);
|
||||
m_d->ui.pixmapLabel->setVisible(!p.isNull());
|
||||
}
|
||||
|
||||
bool DlgCheckableMessageBox::isChecked() const
|
||||
{
|
||||
return m_d->ui.checkBox->isChecked();
|
||||
}
|
||||
|
||||
void DlgCheckableMessageBox::setChecked(bool s)
|
||||
{
|
||||
m_d->ui.checkBox->setChecked(s);
|
||||
}
|
||||
|
||||
QString DlgCheckableMessageBox::checkBoxText() const
|
||||
{
|
||||
return m_d->ui.checkBox->text();
|
||||
}
|
||||
|
||||
void DlgCheckableMessageBox::setCheckBoxText(const QString &t)
|
||||
{
|
||||
m_d->ui.checkBox->setText(t);
|
||||
}
|
||||
|
||||
QDialogButtonBox::StandardButtons DlgCheckableMessageBox::standardButtons() const
|
||||
{
|
||||
return m_d->ui.buttonBox->standardButtons();
|
||||
}
|
||||
|
||||
void DlgCheckableMessageBox::setStandardButtons(QDialogButtonBox::StandardButtons s)
|
||||
{
|
||||
m_d->ui.buttonBox->setStandardButtons(s);
|
||||
}
|
||||
|
||||
QDialogButtonBox::StandardButton DlgCheckableMessageBox::defaultButton() const
|
||||
{
|
||||
Q_FOREACH (QAbstractButton *b, m_d->ui.buttonBox->buttons())
|
||||
if (QPushButton *pb = qobject_cast<QPushButton *>(b))
|
||||
if (pb->isDefault())
|
||||
return m_d->ui.buttonBox->standardButton(pb);
|
||||
return QDialogButtonBox::NoButton;
|
||||
}
|
||||
|
||||
void DlgCheckableMessageBox::setDefaultButton(QDialogButtonBox::StandardButton s)
|
||||
{
|
||||
if (QPushButton *b = m_d->ui.buttonBox->button(s)) {
|
||||
b->setDefault(true);
|
||||
b->setFocus();
|
||||
}
|
||||
}
|
||||
|
||||
void DlgCheckableMessageBox::accept()
|
||||
{
|
||||
if(!paramEntry.isEmpty())
|
||||
App::GetApplication().GetParameterGroupByPath( QByteArray("User parameter:BaseApp/CheckMessages"))->SetBool(paramEntry,isChecked());
|
||||
QDialog::accept();
|
||||
}
|
||||
|
||||
void DlgCheckableMessageBox::reject()
|
||||
{
|
||||
if(!paramEntry.isEmpty())
|
||||
App::GetApplication().GetParameterGroupByPath( QByteArray("User parameter:BaseApp/CheckMessages"))->SetBool(paramEntry,isChecked());
|
||||
QDialog::reject();
|
||||
}
|
||||
|
||||
QDialogButtonBox::StandardButton
|
||||
DlgCheckableMessageBox::question(QWidget *parent,
|
||||
const QString &title,
|
||||
const QString &question,
|
||||
const QString &checkBoxText,
|
||||
bool *checkBoxSetting,
|
||||
QDialogButtonBox::StandardButtons buttons,
|
||||
QDialogButtonBox::StandardButton defaultButton)
|
||||
{
|
||||
DlgCheckableMessageBox mb(parent);
|
||||
mb.setWindowTitle(title);
|
||||
mb.setIconPixmap(QMessageBox::standardIcon(QMessageBox::Question));
|
||||
mb.setText(question);
|
||||
mb.setCheckBoxText(checkBoxText);
|
||||
mb.setChecked(*checkBoxSetting);
|
||||
mb.setStandardButtons(buttons);
|
||||
mb.setDefaultButton(defaultButton);
|
||||
mb.exec();
|
||||
*checkBoxSetting = mb.isChecked();
|
||||
return mb.clickedStandardButton();
|
||||
}
|
||||
|
||||
QMessageBox::StandardButton DlgCheckableMessageBox::dialogButtonBoxToMessageBoxButton(QDialogButtonBox::StandardButton db)
|
||||
{
|
||||
return static_cast<QMessageBox::StandardButton>(int(db));
|
||||
}
|
||||
|
||||
} // namespace Dialog
|
||||
} // namespace Gui
|
||||
|
||||
#include "moc_DlgCheckableMessageBox.cpp"
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user