SolidWorks EPDM二次开发入门(四)

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

在未改变变量之前的文件

SolidWorks EPDM二次开发入门(四)

 

在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

下面是更改后的文件变量

SolidWorks EPDM二次开发入门(四)

 

你可能感兴趣的:(二次开发)