94f000bc4cb6c4950074eb66a5957f30ea577f8d
[occt.git] / tests / caf / xlink / B1
1 #INTERFACE CAF
2 # XLink attributes
3 #
4 # Testing attribute: TDocStd_XLink
5 #
6 # Testing command:   CopyWithLink
7 #
8
9 puts "caf004-B1"
10
11 # Create two new documents Doc1, Doc2
12 NewDocument Doc1 MDTV-Design
13 NewDocument Doc2 MDTV-Design
14
15 # Set UndoLimit for them
16 UndoLimit Doc1 100
17 UndoLimit Doc2 100
18
19 # Set a shape in Doc1 to label 'SLabel'
20 set aLabel1 0:2
21 Label Doc1 ${aLabel1}
22 SetName Doc1 ${aLabel1} SLabel
23
24 set aSetX1 10
25 set aSetY1 20
26 set aSetZ1 30
27 set aSetDX1 100
28 set aSetDY1 200
29 set aSetDZ1 300
30
31 box aBox1 ${aSetX1} ${aSetY1} ${aSetZ1} ${aSetDX1} ${aSetDY1} ${aSetDZ1}
32
33 set aBoundingBox1 [bounding aBox1]
34 set X1_Box1 [lindex ${aBoundingBox1} 0]
35 set Y1_Box1 [lindex ${aBoundingBox1} 1]
36 set Z1_Box1 [lindex ${aBoundingBox1} 2]
37 set X2_Box1 [lindex ${aBoundingBox1} 3]
38 set Y2_Box1 [lindex ${aBoundingBox1} 4]
39 set Z2_Box1 [lindex ${aBoundingBox1} 5]
40
41 SetShape Doc1 ${aLabel1} aBox1
42
43 # Create a new label 'TLabel1' in Doc1
44 set aLabel2 0:3
45 Label Doc1 ${aLabel2}
46 SetName Doc1 ${aLabel2} TLabel1
47
48 # Open transaction in Doc1
49 NewCommand Doc1
50
51 # Copy 'SLabel' to the label 'TLabel1' with link
52 CopyWithLink Doc1 ${aLabel2} Doc1 ${aLabel1}
53
54 # Close/Open transaction
55 NewCommand Doc1
56
57 # Undo Doc1
58 Undo Doc1
59
60 # Redo Doc1
61 Redo Doc1
62
63 # Get a shape from 'TLabel1'
64 GetShape Doc1 ${aLabel2} aBox2
65
66 set aBoundingBox2 [bounding aBox2]
67 set X1_Box2 [lindex ${aBoundingBox2} 0]
68 set Y1_Box2 [lindex ${aBoundingBox2} 1]
69 set Z1_Box2 [lindex ${aBoundingBox2} 2]
70 set X2_Box2 [lindex ${aBoundingBox2} 3]
71 set Y2_Box2 [lindex ${aBoundingBox2} 4]
72 set Z2_Box2 [lindex ${aBoundingBox2} 5]
73
74 if { ${X1_Box1} != ${X1_Box2} || 
75      ${Y1_Box1} != ${Y1_Box2} || 
76      ${Z1_Box1} != ${Z1_Box2} || 
77      ${X2_Box1} != ${X2_Box2} || 
78      ${Y2_Box1} != ${Y2_Box2} || 
79      ${Z2_Box1} != ${Z2_Box2} } {
80         puts "X1_Box1=${X1_Box1} Y1_Box1=${Y1_Box1} Z1_Box1=${Z1_Box1} X2_Box1=${X2_Box1} Y2_Box1=${Y2_Box1} Z2_Box1=${Z2_Box1}"
81         puts "X1_Box2=${X1_Box2} Y1_Box2=${Y1_Box2} Z1_Box2=${Z1_Box2} X2_Box2=${X2_Box2} Y2_Box2=${Y2_Box2} Z2_Box2=${Z2_Box2}"
82         puts "Set a link between attributes of the same document: Error"
83         return
84 }
85
86 puts "Set a link between attributes of the same document: OK"