1#1 - create Box using short-cut
2NewCommand D
3AddDriver D Box;			## add box driver to driver table
4set B1 [AddBox D 130 140 150];		## add box
5ComputeFun D $B1:1;			## compute box1 function
6GetShape D $B1:1:2 Box1;		## check result
7whatis Box1
8# refers to result NS
9GetReference D $B1;			## check is reference set
10
11
12#2 - create 8 spheres
13AddDriver D Cyl Sph Attach XAttach PTxyz PTALine PRLine PMirr Cut Fuse Prism FulRevol SecRevol Fillet
14NewCommand D
15explode Box1 V
16set SPnt1 [AttachShape D Box1_1 ${B1} ${B1} 0]; ## set attachment
17set SPnt2 [AttachShape D Box1_2 ${B1} ${B1} 0]; ## set attachment
18set SPnt3 [AttachShape D Box1_3 ${B1} ${B1} 0]; ## set attachment
19set SPnt4 [AttachShape D Box1_4 ${B1} ${B1} 0]; ## set attachment
20
21set Sph1 [AddSphere D $SPnt1 25]
22ComputeFun D $Sph1:1
23GetShape D $Sph1:1:2 Sp1
24
25set Sph2 [AddSphere D $SPnt2 25]
26ComputeFun D $Sph2:1
27GetShape D $Sph2:1:2 Sp2
28
29set Sph3 [AddSphere D $SPnt3 25]
30ComputeFun D $Sph3:1
31GetShape D $Sph3:1:2 Sp3
32
33set Sph4 [AddSphere D $SPnt4 25]
34ComputeFun D $Sph4:1
35GetShape D $Sph4:1:2 Sp4
36NewCommand D
37
38#3 Rotate spheres
39explode Box1 E
40set Sel1 [AttachShape D Box1_1 ${B1} ${B1} 0];
41set FR1 [PRotateRoundLine D $Sph1 $Sel1 120]
42ComputeFun D $FR1
43GetShape D $FR1:2 Sp1
44
45set Sel2 [AttachShape D Box1_1 ${B1} ${B1} 0];
46set FR2 [PRotateRoundLine D $Sph2 $Sel2 120]
47ComputeFun D $FR2
48GetShape D $FR2:2 Sp2
49
50set Sel3 [AttachShape D Box1_3 ${B1} ${B1} 0];
51set FR3 [PRotateRoundLine D $Sph3 $Sel3 120]
52ComputeFun D $FR3
53GetShape D $FR3:2 Sp3
54
55set Sel4 [AttachShape D Box1_3 ${B1} ${B1} 0];
56set FR4 [PRotateRoundLine D $Sph4 $Sel4 120]
57ComputeFun D $FR4
58GetShape D $FR4:2 Sp4
59NewCommand D
60
61#4 Fuse spheres
62set FS1 [AddFuse D $B1 $Sph1]
63ComputeFun D $FS1
64GetShape D $FS1:2 Box1
65
66set FS2 [AddFuse D $B1 $Sph2]
67ComputeFun D $FS2
68GetShape D $FS2:2 Box1
69
70set FS3 [AddFuse D $B1 $Sph3]
71ComputeFun D $FS3
72GetShape D $FS3:2 Box1
73
74set FS4 [AddFuse D $B1 $Sph4]
75ComputeFun D $FS4
76GetShape D $FS4:2 Box1
77
78
79#5 test selection
80NewCommand D
81set SL [TestSingleSelection D $B1 0]
82set SL2 [TestMultipleSelection D $B1 0]
83
84#6 modification
85NewCommand D
86BoxDX D $B1 210
87BoxDZ D $B1 270
88
89#7 recomputation
90NewCommand D
91InitLogBook D;		## to be initialized before any recomputation of impacted functions set (if attachments are presented)
92ComputeFun D $B1:1
93ComputeFun D $SPnt1:1
94ComputeFun D $SPnt2:1
95ComputeFun D $SPnt3:1
96ComputeFun D $SPnt4:1
97ComputeFun D $Sph1:1
98ComputeFun D $Sph2:1
99ComputeFun D $Sph3:1
100ComputeFun D $Sph4:1
101ComputeFun D $Sel1:1
102ComputeFun D $Sel2:1
103ComputeFun D $Sel3:1
104ComputeFun D $Sel4:1
105ComputeFun D $FR1
106ComputeFun D $FR2
107ComputeFun D $FR3
108ComputeFun D $FR4
109ComputeFun D $FS1
110ComputeFun D $FS2
111ComputeFun D $FS3
112ComputeFun D $FS4
113erase
114GetShape D $FS4:2 Box1
115
116
117#recomputation of entities of the TestSelection commands
118SolveFlatFrom D $SL
119NewCommand D
120
121