Hola Goroscar
No lo he probado y seguramente falle en algún sitio, pero aqui te dejo el código para lo que buscas.
 
Sub CATMain()
 
Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument
 
Dim Selection1 As Object
Set Selection1 = CATIA.ActiveDocument.Selection
 
Dim part1 As Part
Set part1 = partDocument1.Part
 
Dim shapeFactory1 As ShapeFactory
Set shapeFactory1 = part1.ShapeFactory
 
Dim bodies1 As Bodies
Set bodies1 = part1.Bodies
 
Dim body1 As Body
Set body1 = bodies1.Item("PartBody")
 
Dim sketches1 As Sketches
Set sketches1 = body1.Sketches
 
Dim sketch1 As Sketch
Set sketch1 = sketches1.Item("Sketch.4")
 
Selection1.Clear
Dim InPutObjectType(0)
InPutObjectType(0) = "CATPoint"
Status = Selection1.SelectElement2(InPutObjectType, "Select a point", False)
 
 
Dim reference1 As Reference
Set reference1 = Selection1.Item(1)
 
Dim shapes1 As Shapes
Set shapes1 = body1.Shapes
 
Dim pad1 As Pad
Set pad1 = shapes1.Item("Pad.1")
 
Selection1.Clear
InPutObjectType(0) = "CATPlane"
Status = Selection1.SelectElement2(InPutObjectType, "Select a plane", False)
 
Dim reference2 As Reference
Set reference2 = Selection1.Item(1)
 
Dim hole1 As Hole
Set hole1 = shapeFactory1.AddNewHoleFromRefPoint(reference1, reference2, 10#)
 
hole1.Type = catSimpleHole
 
hole1.AnchorMode = catExtremPointHoleAnchor
 
hole1.BottomType = catFlatHoleBottom
 
Dim limit1 As Limit
Set limit1 = hole1.BottomLimit
 
limit1.LimitMode = catOffsetLimit
 
Dim length1 As Length
Set length1 = hole1.Diameter
 
length1.Value = 10#
hole1.ThreadingMode = catSmoothHoleThreading
hole1.ThreadSide = catRightThreadSide
part1.Update
End Sub