Option Explicit
Language="VBSCRIPT"
' COPYRIGHT DASSAULT SYSTEMES 2010

' *****************************************************************************
'   Purpose:      Edit openings on an SDD Plate.
'   Languages:    VBScript
'   Locales:      English 
'   CATIA Level:  V5R21 
' *****************************************************************************

Sub CATMain() 

  Set documents1 = CATIA.Documents
  Set partDocument1 = documents1.Item("Design_Unit_004.CATPart")
  Set part1 = partDocument1.Part

  'Get the OpeningObject for Opening_038
  Dim Opening1 As SfmOpening
  Set Opening1 = part1.FindObjectByName("Opening_038")

  Dim Sel1 As Selection
  Set Sel1 = CATIA.ActiveDocument.Selection
  Sel1.Add Opening1

  Dim OpeningObject1 As SfmOpening
  Set OpeningObject1= Sel1.FindObject("CATIASfmOpening")

  'Get the OpeningObject for Opening_040
  Dim Opening2 As SfmOpening
  Set Opening2 = part1.FindObjectByName("Opening_040")

  Dim Sel2 As Selection
  Set Sel2 = CATIA.ActiveDocument.Selection
  Sel2.Add Opening2

  Dim OpeningObject2 As SfmOpening
  Set OpeningObject2= Sel2.FindObject("CATIASfmOpening")

  'Get the OpeningObject for Opening_043
  Dim Opening3 As SfmOpening
  Set Opening3 = part1.FindObjectByName("Opening_043")

  Dim Sel3 As Selection
  Set Sel3 = CATIA.ActiveDocument.Selection
  Sel1.Add Opening3

  Dim OpeningObject3 As SfmOpening
  Set OpeningObject3= Sel3.FindObject("CATIASfmOpening")

  'Get the mode in which Opening_038 and Opening_040 is created
  Dim CreationMode1 As Long
  CreationMode1 = OpeningObject1.CreationMode
  MsgBox CreationMode1

  Dim CreationMode2 As Long
  CreationMode2 = OpeningObject2.CreationMode
  MsgBox CreationMode2

  'Get the Intersecting Element for Opening_038
  Dim IntersectingElem1 As Reference
  Set IntersectingElem1 = OpeningObject1.IntersectingElement

  'Modify the creation mode to Sketch Mode for Opening_040.
  Then assign a sketch as intersecting element to this opening
  OpeningObject2.CreationMode = 1

  Set Sketch = part1.FindObjectByName("Sketch.11")
  Set sketchref = part1.CreateReferenceFromObject(Sketch)
  OpeningObject2.IntersectingElement = sketchref

  'Get the current Direction of Opening_043 and then set a new direction
  Dim GetDir As Reference
  Set GetDir = OpeningObject3.Direction

  Set SketchAsDir = part1.FindObjectByName("Sketch.14")
  Set PutDir = part1.CreateReferenceFromObject(SketchAsDir)
  OpeningObject3.Direction = PutDir

  'GetMathDirection for Opening_043. This will return the direction in Vector Form.

  Dim GetMathDir(3)
  GetMathDir(3) = OpeningObject3.GetDirection
  Dimx1, y1, z1 As Double
  x1 = GetMathDir(0)
  y1 = GetMathDir(1)
  z1 = GetMathDir(2)

  part1.Update

End Sub