暴雨前的宁静

博客园 首页 新随笔 联系 订阅 管理

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

在未改变变量之前的文件

 

在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
下面是更改后的文件变量

 

posted on 2010-03-25 14:39  暴雨前的宁静  阅读(1315)  评论(0编辑  收藏  举报