需要有关vba代码的帮助,这些代码旨在在Inventor工程图的标题栏中找到字段文本字符串并替换其中的一部分

时间:2019-04-04 22:16:43

标签: vba autodesk cad autodesk-inventor

我试图在Inventor 2019中更改大约300多个工程图(IDW)的工程图编号。API遇到的问题是让它查找和更改正确的字符串。

示例图形编号是17-677-001,其中17-677是作业编号,而001是该图形的任意标识。我将这些图纸翻转过来,我想要一个可以批量执行的宏,以查找包含17-677的图纸编号,并仅用19-085替换17-677零件。

我有一个阅读对象模型后试图编写的代码,但我认为我错过了过程中的一些步骤。标题栏的设置方式可能是问题的一部分。我的意思是,图形编号不在标题栏定义的文本框中,而是在标题栏中以符号方式调用的属性的值。

示例:该属性的名称为,其值为17-677-001,这是需要更改的部分。

代码如下

Sub replaceDwgNo()

Dim doc As DrawingDocument
Set doc = ThisApplication.ActiveDocument

Dim sheet As sheet
Set sheet = doc.ActiveSheet

Dim tb As TitleBlockDefinition
Set tb = sheet.TitleBlock.Definition

Dim sketch As DrawingSketch
Set sketch = tb.sketch

Call tb.Edit(sketch)

Dim curText As TextBox
Set curText = sketch.TextBoxes.Item(10)

If curText.Text = "<AES_MD_NAME>" Then
On Error Resume Next
curText.FormattedText = Replace(curText.FormattedText, "17-677", "19-085")

Call tb.ExitEdit

End If

End Sub

考虑到这一点,我试图编写的代码应该在当前图形中定位该属性,检查该属性的值是否包含17-677,并仅用19-085替换17-677部分。话虽如此,我未能正确编写代码。

此代码的问题在于,它正在标题栏中搜索属性的名称,然后尝试更改该名称,而不是调用该属性的值并更改该值。我不知道如何执行此操作,因为进一步的尝试会导致语法错误等。我还可以提供IDW的副本,这将需要inventor2019。不过,我不确定如何在此处附加它。非常感谢您的宝贵时间。

0 个答案:

没有答案