# =================== OCAF ====================== # Naming # # Testing purpose: Naming selection mechanism # # Test case: F7 (test special cases of type migration) # 1. Create 4 points: $Pnt1 - $Pnt4 # 2. Create closed line $Lin2 # 3. Create prism Pr ($Prism) # 4. Addbox $B1 # 5. Translate box $B1 along XYZ # 6. $Com1 = Common ($Prism, $B1) # 7. Add cylinder $Cyl # 8. Translate cylinder $Cyl along XYZ # 9. Cut $Cut1 = Cut ($Prism, $Cyl) # 10. Make 4 selections (Select edges 8,9, 11+, 11) # 11. Modify $Pnt1 # 12. Recompute # =============================================== erase Close D NewDocument D BinOcaf isos 12 #1 - create 4 Pnts NewCommand D AddDriver D PntXYZ PntRLT Line3D Attach; set Pnt1 [AddPoint D 0 0 0]; ## add point1 ComputeFun D $Pnt1:1; ## compute function GetShape D $Pnt1:1:2 P1; ## check result whatis P1 # referes to result NS GetReference D $Pnt1; ## check is reference set set Pnt2 [AddPoint D 0 200 0]; ComputeFun D $Pnt2:1; set Pnt3 [AddPoint D 200 200 0]; ComputeFun D $Pnt3:1; set Pnt4 [AddPoint D 200 0 0]; ComputeFun D $Pnt4:1; GetShape D $Pnt2:1:2 P2; GetShape D $Pnt3:1:2 P3; GetShape D $Pnt4:1:2 P4; #2 create closed Lin2 NewCommand D set Lin2 [ AddLine3D D 1 $Pnt1 $Pnt2 $Pnt3 $Pnt4] ComputeFun D $Lin2:1; GetShape D $Lin2:1:2 L1; #3 Prism NewCommand D AddDriver D Prism Box PTxyz set Prism [AddPrism D $Lin2 300 1] ComputeFun D $Prism:1 GetShape D $Prism:1:2 Pr GetReference D $Prism; ## check is reference set #4 Add Box NewCommand D set B1 [AddBox D 400 140 600]; ComputeFun D $B1:1; GetShape D $B1:1:2 Box; #5 Translate Box1 NewCommand D set FTr1 [PTranslateDXYZ D $B1 -100 -20 -100] ComputeFun D $FTr1 GetShape D $B1:2:2 Box #6 add Common NewCommand D AddDriver D Comm Cut Fuse set Com1 [AddCommon D $Prism $B1] ComputeFun D $Com1 GetShape D $Com1:2 Pr #7 Add Cylinder NewCommand D explode Pr E AddDriver D Attach Cyl set Sel1 [AttachShape D Pr_6 ${Prism} ${Prism} 0]; ## set attachment set Cyl [AddCyl D 70 515 ${Sel1}] ComputeFun D $Cyl:1 GetShape D $Cyl:1:2 CylS #8 Translate Cylinder NewCommand D set FTr1 [PTranslateDXYZ D $Cyl -100 200 170] ComputeFun D $FTr1 GetShape D $Cyl:2:2 CylS #9 Cut NewCommand D set Cut1 [AddCut D $Prism $Cyl] ComputeFun D $Cut1 GetShape D $Cut1:2 Pr don Pr #10 Select edges 8,9, 11 (test special cases of type migration) explode Pr E erase Pr_1 Pr_2 Pr_3 Pr_4 Pr_5 Pr_6 Pr_7 Pr_8 Pr_9 Pr_10 Pr_11 Pr_12 Pr_13 Pr_14 Pr_15 Pr_16 Pr_17 display Pr_8 Pr_9 ## ==> 8,9 NewCommand D set Sel8 [AttachShape D Pr_8 ${Prism} ${Prism} 0]; ## should return Compound of two edges set Sel9 [AttachShape D Pr_9 ${Prism} ${Prism} 1]; ## should return Compound of two edges set Sel11 [AttachShape D Pr_11 ${Prism} ${Prism} 1]; set Sel12 [AttachShape D Pr_11 ${Prism} ${Prism} 0]; #11 modify PntOffset D $Pnt1 40 25 skip #12 recompute ComputeFun D $Pnt1:1 ComputeFun D $Lin2:1 ComputeFun D $Prism:1 ComputeFun D $Com1 ComputeFun D $Sel1:1 ComputeFun D $Cyl:1 ComputeFun D $FTr1 ComputeFun D $Cut1 erase GetShape D $Cut1:2 Pr ComputeFun D $Sel8:1 ComputeFun D $Sel9:1 ComputeFun D $Sel11:1 ComputeFun D $Sel12:1 NewCommand D