Fri, 01/26/2024 - 14:56
Hello All,
I have a document imported from a step file, it's Xdump looks like this:
Draw[19]> Xdump frame
ASSEMBLY COMPOUND 0:1:1:1 "HR BEFESTIGUNG"
INSTANCE COMPOUND 0:1:1:1:1 (refers to 0:1:1:2) "0000_0000_000_00_--_R---_---_0_REF.1"
INSTANCE COMPOUND 0:1:1:1:2 (refers to 0:1:1:3) "1209_1002_400_00_--_----_--B.1"
INSTANCE COMPOUND 0:1:1:1:3 (refers to 0:1:1:57) "1209_1002_400_00_--_D-13_---.1"
PART COMPOUND 0:1:1:2 "ZENTRALES ASSEMBLY REF-CATPART"
ASSEMBLY COMPOUND 0:1:1:3 "HR DSK D208 MAN 3650 TGM"
INSTANCE COMPOUND 0:1:1:3:1 (refers to 0:1:1:2) "0000_0000_000_00_--_R---_---_0_REF.1"
INSTANCE COMPOUND 0:1:1:3:2 (refers to 0:1:1:4) "0000_1006_701_00_--_----_--A.1"
INSTANCE COMPOUND 0:1:1:3:3 (refers to 0:1:1:21) "0000_1007_208_00_--_----_---.1"
INSTANCE SOLID 0:1:1:3:4 (refers to 0:1:1:27) "0000_1122_571_00_--_----_---.1"
INSTANCE SOLID 0:1:1:3:5 (refers to 0:1:1:27) "0000_1122_571_00_--_----_---.2"
INSTANCE SOLID 0:1:1:3:6 (refers to 0:1:1:28) "0000_1128_310_00_--_----_---.1"
INSTANCE SOLID 0:1:1:3:7 (refers to 0:1:1:28) "0000_1128_310_00_--_----_---.2"
INSTANCE SOLID 0:1:1:3:8 (refers to 0:1:1:28) "0000_1128_310_00_--_----_---.3"
INSTANCE SOLID 0:1:1:3:9 (refers to 0:1:1:28) "0000_1128_310_00_--_----_---.4"
INSTANCE SOLID 0:1:1:3:10 (refers to 0:1:1:29) "0000_1128_326_00_--_----_--A.1"
....
....
PART SOLID 0:1:1:82 "WINKEL HR KONSOLE"
PART COMPOUND 0:1:1:83 "STARTPART SNG"
Free Shapes: 1
ASSEMBLY COMPOUND 0:1:1:1 "HR BEFESTIGUNG"
I want to traverse the node 0:1:1:1 to find the node INSTANCE COMPOUND 0:1:1:1:2 (refers to 0:1:1:3) "1209_1002_400_00_--_----_--B.1" by a regular expression matching it's name and to get the shape from 0:1:1:3 which is referrenced by 0:1:1:1:2.
I've noteced, that I can get the first interesting node by using XGetFreeShapes frame which gives me back 0:1:1:1
I can than traverse it's children by Children frame 0:1:1:1 which gives me 0:1:1:1:1 0:1:1:1:2 0:1:1:1:3.
But when I store the node returned from XGetFreeShapes to a variable like that:
set s [XGetFreeShapes frame]
than Children frame $s returns 0
Draw[43]> XGetFreeShapes frame
0:1:1:1
Draw[44]> set s [XGetFreeShapes frame]
0:1:1:1
Draw[45]> Children frame 0:1:1:1
0:1:1:1:1 0:1:1:1:2 0:1:1:1:3
Draw[46]> Children frame $s
0
Draw[47]>
What is the proper way how to do that?
Thank you.