#pload FULL #source dftree.tcl #source DDataStd_TreeBrowser.tcl erase Close D unset D NewDocument D MDTV-Standard #Drivers' nick-names: #Box|Sph|Cyl|Cut|Fuse|Prism|SecRevol|FulRevol|PTxyz|PTALine|PRLine|PMirr|Fillet|Attach|XAttach # order of functions recomputation should be defined out of the tool (by end user) #Commands of transformation: #PTranslateDXYZ Doc ShapeEntry dx dy dz #PTranslateAlongLine Doc ShapeEntry Line off #PRotateRoundLine Doc ShapeEntry Line Angle #PMirror Doc ShapeEntry PlaneObj ## Test of transformation functions AddDriver D Box Attach PTxyz PTALine PRLine PMirr Sph Prism FulRevol SecRevol #1 - create box using more flexible set of commands NewCommand D isos 12 set B2 [AddObject D]; ## add object set F2 [AddFunction D $B2 Box]; ## add function BoxDX D $B2 190; ## set argumets of this function BoxDY D $B2 290 BoxDZ D $B2 390 InitLogBook D; ## initialize (clean) internal maps of labels ComputeFun D $F2; ## compute the function GetShape D $F2:2 Box2; ## check result fit whatis Box2 GetReference D $B2; ## referes to result NS #2 Revol Sectioned explode Box2 F explode Box2_3 E set SBas1 [AttachShape D Box2_3 ${B2} ${B2} 0] set SAx1 [AttachShape D Box2_3_2 ${B2} ${B2} 0] set SRev1 [AddRevol D $SBas1 $SAx1 120 0] ComputeFun D $SRev1:1 GetShape D $SRev1:1:2 R1 don R1 #3 explode R1 F explode R1_5 E set SBas2 [AttachShape D R1_5 ${SRev1} ${SRev1} 0] set SAx2 [AttachShape D R1_5_2 ${SRev1} ${SRev1} 0] set SRev2 [AddRevol D $SBas2 $SAx2 120 0] ComputeFun D $SRev2:1 GetShape D $SRev2:1:2 R2 #4 explode R2 F explode R2_5 E set SBas3 [AttachShape D R2_5 ${SRev2} ${SRev2} 0] set SAx3 [AttachShape D R2_5_2 ${SRev2} ${SRev2} 0] set SRev3 [AddRevol D $SBas3 $SAx3 120 0] ComputeFun D $SRev3:1 GetShape D $SRev3:1:2 R2 #8 AddDriver D Fuse set FS1 [AddFuse D $SRev1 $SRev2] ComputeFun D $FS1 GetShape D $FS1:2 R1 #9 set FS2 [AddFuse D $SRev1 $SRev3] ComputeFun D $FS2 GetShape D $FS2:2 R1 #10 NewCommand D set SL [TestSingleSelection D $B2 0] set SL2 [TestMultipleSelection D $B2 0] NewCommand D BoxDZ D $B2 420 #8 order of recomputation NewCommand D InitLogBook D; ## to be initialized before any recomputation of impacted functions set (if attachments are presented) ComputeFun D $F2; ComputeFun D $SBas1:1 ComputeFun D $SAx1:1 ComputeFun D $SRev1:1 ComputeFun D $SBas2:1 ComputeFun D $SAx2:1 ComputeFun D $SRev2:1 ComputeFun D $SBas3:1 ComputeFun D $SAx3:1 ComputeFun D $SRev3:1 ComputeFun D $FS1 ComputeFun D $FS2 GetShape D $FS2:2 R1 SolveFlatFrom D $SL NewCommand D