我正在尝试使用宏更改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
它只是从录制的宏中获取的。据我所见,它只是选择文件属性,而没有更改任何内容。
有人知道我该怎么做吗?或者,如果有不同的方法来实现同样的事情?
感谢
尝试使用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编辑器建议方法/属性。
此代码用于更新自定义属性。正如评论中提到的,它的限制是链接到自定义属性的文本在打开之前不会更新。我不知道打开文本的代码。
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