Community
Inventor Forum
Welcome to Autodesk’s Inventor Forums. Share your knowledge, ask questions, and explore popular Inventor topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

VBA script for editing title block in IDW files

1 REPLY 1
SOLVED
Reply
Message 1 of 2
pball
2329 Views, 1 Reply

VBA script for editing title block in IDW files

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.

1 REPLY 1
Message 2 of 2
pball
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.

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report