今天我做了个,更新文件变量的例子,搞了好一会才弄出来。把代码贴下。
在未改变变量之前的文件

在VS里面创建一个类库类库中添加以下方法
''' <summary>
''' 获取文件
''' </summary>
''' <param name="files">添加后的所有文件</param>
''' <param name="SetName">BOM条目名</param>
''' <remarks></remarks>
Public Sub GetFiles(ByRef files() As EdmListFile, ByVal SetName As String)
lst.CreateListEx(SetName, 0, cols) '调用IEdmBatchListing2中的方法,添加文件
lst.GetFiles(files) '获取files中的所有文件
End Sub
''' <summary>
''' 更新文件信息
''' </summary>
''' <param name="vName">变量名称</param>
''' <param name="value">变量值</param>
''' <remarks></remarks>
Public Sub BatchUpdateFileVariable(ByVal vName As String, ByVal value As Object)
Dim varMgr As IEdmVariableMgr5 '定义变量的对象
varMgr = vault
Dim var As IEdmVariable5
var = varMgr.GetVariable(vName) '获取vName所对应的变量
Dim Upate As IEdmBatchUpdate2 '定义update对象
Upate = vault.CreateUtility(EdmUtility.EdmUtil_BatchUpdate)
Dim files() As EdmListFile = Nothing
GetFiles(files, "") '获取文件
For Each efile As EdmListFile In files
Dim file As IEdmFile8 = vault.GetObject(EdmObjectType.EdmObject_File, efile.mlFileID)
If Not file.IsLocked Then
file.LockFile(efile.mlFolderID, 0)
End If
Upate.SetVar(efile.mlFileID, var.ID, value, "", 1) '把添加需要更新的内容
Next
Dim Errors() As EdmBatchError2 = Nothing
Dim errcount As Integer = Upate.CommitUpdate(Errors) '提交并捕捉错误
If errcount > 0 Then
MsgBox("有错误")
Else
MsgBox("更新成功")
End If
End Sub
然后再创建个窗体,更改变量之前要先读取文件(在SolidWorks EPDM二次开发入门(一)中写到了)添加 一个按钮
按钮代码如下
Try
Finfo.BatchUpdateFileVariable("项目序号", "A395") '调用后台更新函数
Finfo.BatchUpdateFileVariable("项目名称", "SolidWorks")
Catch ex As Exception
MsgBox(ex.Message)
End Try
下面是更改后的文件变量

浙公网安备 33010602011771号