• Industries
  • Products
  • Buy
  • Services & Support
  • Communities
  • Discussion Groups

    Autodesk Inventor

    Reply
    Distinguished Contributor
    Posts: 105
    Registered: ‎04-20-2012

    VBA script for editing title block in IDW files

    446 Views, 1 Replies
    05-03-2012 05:15 AM

    I've been looking for a while and managed to find 2 VBA scripts for replacing values in a title block. However one errors out on the line that is supposed to do the replacing and the other works off an ID number which isn't consistent.

     

    I'm a proficient scripter but not in this language, so I have a general idea of how these scripts are working but not the intricacies of them. Which Is exactly what I think is needed to get either of them working.

     

    Function Test_UpdateTitleBlock()
    
    Dim oDoc As DrawingDocument
    Set oDoc = ThisApplication.ActiveDocument
    
    Dim oTitleBlock As TitleBlock
    Dim oTextBox As TextBox
    Dim oSheet As Sheet
    
    For Each oSheet In oDoc.Sheets
        Set oTitleBlock = oSheet.TitleBlock
        For Each oTextBox In oTitleBlock.Definition.Sketch.TextBoxes
            If oTextBox.Text = "<FILENAME AND PATH>" Then
                ' Errors here and doesn't replace text
                Call oTitleBlock.SetPromptResultText(oTextBox, "New Value")
            End If
        Next
    Next
    End Function

     This throws an error on the line I have marked.

     

    Function Remove_Filepath()
    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument
    
    ' Create the new title block defintion.
    Dim oTitleBlockDef As TitleBlockDefinition
    Set oTitleBlockDef = oDrawDoc.ActiveSheet.TitleBlock.Definition
    
    Dim oSketch As DrawingSketch
    Call oTitleBlockDef.Edit(oSketch)
    oSketch.TextBoxes.Item(20).Text = " "
    Call oTitleBlockDef.ExitEdit
    
    End Function

     

    This one works great, except that it does a "dumb" replace because it looks for the Xth textbox and edits that. The problem is in a detail drawing I want to edit textbox 20 but in assembly drawings I don't want to edit any textbox. So if someone could get this to loop through the textboxes and compare the text to what I want to replace that would be awesome.

     

    Thanks for any help.

    Please use plain text.
    Distinguished Contributor
    Posts: 105
    Registered: ‎04-20-2012

    Re: VBA script for editing title block in IDW files

    05-03-2012 10:19 AM in reply to: pball

    Sorry for the double post but it seems either you can't edit posts or at least opening posts.

     

    It always seems like I manage to get something working after I asking somewhere for help and I always like to share to what I figured out.

     

    Function Remove_FilePath()
    On Error GoTo ErrMsg
    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument
    
    ' Create the new title block defintion.
    Dim oTitleBlockDef As TitleBlockDefinition
    Set oTitleBlockDef = oDrawDoc.ActiveSheet.TitleBlock.Definition
    
    Dim oSketch As DrawingSketch
    Call oTitleBlockDef.Edit(oSketch)
    
    Dim count As Integer
    count = 1
    While oSketch.TextBoxes.Item(count).Text <> vbNullString
        If oSketch.TextBoxes.Item(count).Text = "<FILENAME AND PATH>" Then
            oSketch.TextBoxes.Item(count).Text = " "
        End If
        count = count + 1
    Wend
    ErrMsg:
    Call oTitleBlockDef.ExitEdit
    
    End Function

     This function just "removes" the filepath from the title block. It doesn't seem to like substituting in "" but a space works just fine. I take no credit for most of the script, just a bit of credit for hacking it some. It loops through all the textboxes inside of the title block and when it matches the text it replaces it.

    Please use plain text.