0

我正在尝试使用宏更改我在solidworks 零件中的一些文本。我认为我最好的选择是将文本设置为等于自定义属性,然后使用 vba 更改该属性的值。

我似乎得到的最接近的是这个

Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = Application.SldWorks

Set Part = swApp.ActiveDoc
Part.FileSummaryInfo
End Sub

这只是从录制的宏中获取的。据我所知,它只是选择文件属性,没有改变任何东西。

任何人都知道我将如何使这项工作?或者如果有不同的方法来实现同样的事情?

谢谢

4

2 回答 2

1

尝试使用 CustomPropertyManager 对象。在 API 帮助中有一个类似于您所追求的示例:https ://help.solidworks.com/2020/english/api/sldworksapi/Get_Custom_Properties_for_Configuration_Example_VB.htm

您没有说您使用的是哪个版本的软件,但 API 在许多软件版本中应该足够相似。

我还建议使用强类型代替“对象”。即,将“Dim swApp As Object”更改为“Dim swApp As SldWorks.SldWorks”等。这允许 VBA 编辑器建议方法/属性。

于 2020-07-01T14:10:17.320 回答
-1

此代码用于更新自定义属性。正如评论中提到的,它的限制是链接到自定义属性的文本在打开之前不会更新。我不知道将打开文本的代码。

    Dim swApp As SldWorks.SldWorks

    Dim swModel As SldWorks.ModelDoc2

Dim swCustPropMgr As SldWorks.CustomPropertyManager

Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Dim Code As String

 Sub setcode()

Code = "test2"

End Sub

Sub main()

setcode

Set swApp = Application.SldWorks

Set swModel = swApp.ActiveDoc

Set swCustPropMgr = swModel.Extension.CustomPropertyManager("")

swCustPropMgr.Add3 "Texttesting", swCustomInfoText, Code, swCustomPropertyReplaceValue


End Sub
于 2020-07-17T03:00:03.833 回答