Change Title Block using Visual Basic

Change Title Block using Visual Basic

bretrick30
Advocate Advocate
3,475 Views
2 Replies
Message 1 of 3

Change Title Block using Visual Basic

bretrick30
Advocate
Advocate

I am trying to change the title block of the active sheet using visual basic.  I realize this can be done using a snippet in iLogic, but I am creating an external .dll file using Visual Studio.

 

I have tried...

 

ThisDoc.Document.ActiveSheet.TitleBlock.Definition = "Title Block Name"

 

ThisDoc.Document.ActiveSheet.TitleBlock.Definition.Name = "Title Block Name" (This changes the name of the title block in the browser but doesnt swap it out.)

 

Call ThisDoc.Document.ActiveSheet.TitleBlock.Definition("Title Block Name")

 

Thanks,

0 Likes
Accepted solutions (1)
3,476 Views
2 Replies
Replies (2)
Message 2 of 3

Anonymous
Not applicable

This is from the Programming Help file in Inventor.  I'm sure you can modify it to suit your needs.  It's VBA, but there's just a few tweaks to make it VB.

 

Public Sub InsertTitleBlockOnSheet()
    ' Set a reference to the drawing document.
    ' This assumes a drawing document is active.
    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument

    ' Obtain a reference to the desired border defintion.
    Dim oTitleBlockDef As TitleBlockDefinition
    Set oTitleBlockDef = oDrawDoc.TitleBlockDefinitions.Item("Sample Title Block")

    Dim oSheet As Sheet
    Set oSheet = oDrawDoc.ActiveSheet

    ' Check to see if the sheet already has a title block and delete it if it does.
    If Not oSheet.TitleBlock Is Nothing Then
        oSheet.TitleBlock.Delete
    End If

    ' This title block definition contains one prompted string input.  An array
    ' must be input that contains the strings for the prompted strings.
    Dim sPromptStrings(1 To 2) As String
    sPromptStrings(1) = "String 1"
    sPromptStrings(2) = "String 2"

    ' Add an instance of the title block definition to the sheet.
    Dim oTitleBlock As TitleBlock
    Set oTitleBlock = oSheet.AddTitleBlock(oTitleBlockDef, , sPromptStrings)
End Sub

 

0 Likes
Message 3 of 3

Anonymous
Not applicable
Accepted solution
Private Sub OButtonDefA1_OnExecute(ByVal Context As Inventor.NameValueMap) Handles OButtonDefA1.OnExecute
            On Error Resume Next

            Dim oDoc As Inventor.DrawingDocument
            oDoc = m_inventorApplication.ActiveDocument
            Dim sName As String
            If oDoc.Sheets.Count = 1 Then
                If Not Left(oDoc.ActiveSheet.Name, 5) = "00_00" Then
                    sName = "00_00"
                    Call oDoc.Sheets.Add(Inventor.DrawingSheetSizeEnum.kCustomDrawingSheetSize, Inventor.PageOrientationTypeEnum.kLandscapePageOrientation, sName, 80.5, 58.2)
                    oDoc.Sheets.Item(1).Delete(False)
                Else
                    sName = "01_00"
                    Call oDoc.Sheets.Add(Inventor.DrawingSheetSizeEnum.kCustomDrawingSheetSize, Inventor.PageOrientationTypeEnum.kLandscapePageOrientation, sName, 80.5, 58.2)
                End If
            ElseIf oDoc.Sheets.Count > 1 Then
                sName = Format(oDoc.Sheets.Count, "0#") & "_00"
                Call oDoc.Sheets.Add(Inventor.DrawingSheetSizeEnum.kCustomDrawingSheetSize, Inventor.PageOrientationTypeEnum.kLandscapePageOrientation, sName, 80.5, 58.2)
            End If

            Dim oBorder As Inventor.BorderDefinition
            oBorder = oDoc.BorderDefinitions.Item("IP-A1")

            Call oDoc.ActiveSheet.AddBorder(oBorder)

            Dim oTitle As Inventor.TitleBlockDefinition
            oTitle = oDoc.TitleBlockDefinitions.Item("IP-TITLE-B")

            Dim sPromptStrings(1) As String
            sPromptStrings(0) = "N.T.S"
            sPromptStrings(1) = "01"

            Dim oSheet As Inventor.Sheet
            oSheet = oDoc.ActiveSheet

            If Not oSheet.TitleBlock Is Nothing Then
                oSheet.TitleBlock.Delete()
            End If


            Dim oTitleBlock As Inventor.TitleBlock
            oTitleBlock = oSheet.AddTitleBlock(oTitle, , sPromptStrings)
        End Sub

 Hope this will help you

0 Likes