' COPYRIGHT DASSAULT SYSTEMES 2001
Option Explicit

' ***********************************************************************
'   Purpose     : Create an approbation stamp.
'   Assumptions : A CATProduct document should be active.
'   Author      : 
'   Languages   : VBScript
'   Locales     : English 
'   CATIA Level : V5R6 
' ***********************************************************************

Sub CATMain()

    Const CHAR_HEIGHT = 0.05
    Const CHAR_WIDTH  = 0.03
    Const ANCHOR_HEIGHT = -0.9
    Const ANCHOR_WIDTH  = 0.0
    Const EPSILON  = 0.5

    'Acquire the name of the Responsible
    Dim sRespName As String
    sRespName = "John SMITH" 'Default value
    sRespName = InputBox("What is your name ?", "Responsible name", sRespName)
    If sRespName <> "" Then

        ' Retrieve the AnnotatedViews collection
        Dim cAnnotatedViews As AnyObject
        Set cAnnotatedViews = CATIA.ActiveDocument.Product.GetTechnologicalObject("AnnotatedViews")

        ' Create the AnnotatedView
        Dim oAnnotatedView As AnyObject
        Set oAnnotatedView = cAnnotatedViews.Add

        ' Retrieve the Marker2Ds collection
        Dim cMarker2Ds As Marker2Ds
        Set cMarker2Ds = oAnnotatedView.Marker2Ds
  
        ' Create the text
        Dim dPosition2(1)
        dPosition2(0) = ANCHOR_WIDTH
        dPosition2(1) = ANCHOR_HEIGHT
        Dim oMarker2DText As Marker2D
        Dim sText As String
        sText = "ACME, Approved by " & sRespName & ", " & Cstr(Now)
        Set oMarker2DText = cMarker2Ds.Add2DText (dPosition2, sText)

        ' Create the frame
        Dim dPosition4(3)
        dPosition4(0) = ANCHOR_WIDTH  - CHAR_WIDTH*EPSILON
        dPosition4(1) = ANCHOR_HEIGHT + CHAR_HEIGHT*EPSILON
        dPosition4(2) = ANCHOR_WIDTH  + CHAR_WIDTH*(Len(sText) +EPSILON)
        dPosition4(3) = ANCHOR_HEIGHT - CHAR_HEIGHT*(1 + EPSILON)
        Dim oMarker2DRectangle As Marker2D
        Set oMarker2DRectangle = cMarker2Ds.Add2DRectangle(dPosition4, 0)

        ' Update the view
        oAnnotatedView.Update

        ' Apply the view
        CATIA.ActiveDocument.GetWorkbench("NavigatorWorkbench").View oAnnotatedView

    End If

End Sub