iCAx开思工具箱

标题: vb.net获取现有操作名及其所属程序组. [打印本页]

作者: hello_icax    时间: 2010-5-13 09:58
标题: vb.net获取现有操作名及其所属程序组.
小弟刚刚搞了个程序,请各位多多指教.(实属 抛砖引玉)!


'获取当前文件操作导航器内程序视图中的程序组和操作名的树型结构.
Public Sub GetOperationList()
        Dim theSession As Session = Session.GetSession()
        Dim workPart As Part = theSession.Parts.Work
        Dim lst As ListingWindow
        Dim arrOpers() As NXOpen.CAM.Operation
        Dim stOpers() As String
        Dim i As Integer
        Dim theUI As UI = UI.GetUI()
        Dim CAM_GRP_COL As CAM.NCGroupCollection
        Dim n As Integer
        Dim nSpace As Integer
        Dim nCouGroup As Integer
        Dim nd As New System.Windows.Forms.TreeNode
        lst = theSession.ListingWindow
        lst.Open()
        Try
            arrOpers = workPart.CAMSetup.CAMOperationCollection.ToArray
            ReDim stOpers(arrOpers.Length - 1)
            For i = 0 To arrOpers.Length - 1
                stOpers(i) = arrOpers(i).Name.ToString
            Next

            CAM_GRP_COL = workPart.CAMSetup.CAMGroupCollection
            Dim stList(stOpers.Length + 100) As String '最多允许100个文件夹。
            n = 0
            nSpace = 8
            nCouGroup = 0
            Tree.Nodes.Clear()
            nd.Name = "NC_PROGRAM" : nd.Text = "NC_PROGRAM"
            Tree.Nodes.Add(nd)
            SortOperNames(lst, CAM_GRP_COL, "NC_PROGRAM", stOpers, n, stList, nSpace, nCouGroup, nd)
            Tree.ExpandAll()
        Catch ex As Exception
            lst.WriteLine(ex.Message)
        End Try
    End Sub

    Private Sub SortOperNames(ByRef lst As ListingWindow, ByVal CAM_GRP_COL As CAM.NCGroupCollection, ByVal stName As String, ByRef stOpers() As String, _
                        ByRef nIndex As Integer, ByRef stList() As String, ByRef nSpace As Integer, ByRef nCouGroup As Integer, ByRef nd As System.Windows.Forms.TreeNode)
        Dim nCGroup1 As CAM.NCGroup = CType(CAM_GRP_COL.FindObject(stName), CAM.NCGroup)
        Dim arrGrps() As CAM.CAMObject
        Dim i As Integer
        Dim j As Integer
        Dim NND As Windows.Forms.TreeNode
        arrGrps = nCGroup1.GetMembers
        For i = 0 To arrGrps.Length - 1
            'lst.WriteLine("判断:" + arrGrps(i).Name.ToString)
            For j = 0 To stOpers.Length - 1
                If arrGrps(i).Name.ToString = stOpers(j) Then
                    Exit For
                End If
            Next
            If j >= stOpers.Length Then
                'lst.WriteLine("是文件夹")
                NND = New Windows.Forms.TreeNode
                NND.Name = arrGrps(i).Name.ToString : NND.Text = arrGrps(i).Name.ToString
                nd.Nodes.Add(NND)
                nd = NND
                nCouGroup = nCouGroup + 1
                stList(nIndex) = Space(nSpace) + arrGrps(i).Name.ToString + "*"
                nIndex = nIndex + 1
                nSpace = nSpace + 8
                SortOperNames(lst, CAM_GRP_COL, arrGrps(i).Name.ToString, stOpers, nIndex, stList, nSpace, nCouGroup, nd)
            Else
                stList(nIndex) = Space(nSpace) + stOpers(j)
                nIndex = nIndex + 1
                'lst.WriteLine("是操作")
                NND = nd.Nodes.Add(stOpers(j))
                NND.Text = stOpers(j)
            End If
        Next
        nSpace = nSpace - 8
        nd = nd.Parent
    End Sub

可惜运行效果图无法上传.
相册使用需要添加两位好友.
小弟初来乍到.不知哪位高手可帮忙.
作者: zhaojianhong    时间: 2010-5-16 08:53
感谢楼主的无私奉献,希望楼主多搞点类似的代码,让新学VB的更有信心!强烈支持!!!
作者: zhaojianhong    时间: 2010-5-17 13:00
arrGrps = nCGroup1.GetMembers
这个地方好像有问题,我试验了一下,类里面没这个成员呀 楼主能解决一下吗?
作者: hello_icax    时间: 2010-5-19 09:56
你好,在GetMembers只有在NX7.0版本时才有!
作者: zhaojianhong    时间: 2010-5-23 09:11
多谢楼主,我还没用UG7,看来UG7开发更简单了,这么好的帖子怎么没人顶,强烈支持!
  录像,截图也可以呀,代码好像不完整,中间一个地方有错, Tree.ExpandAll()
应该为ND.我执行了一下,没任何反应,楼主截图看看最终效果是什么样的


作者: hello_icax    时间: 2010-5-24 09:30
NX7我也是刚刚接触.
这些代码只是子程序.需要在模块级声明一个TREE对象.
Public Tree As System.Windows.Forms.TreeView

在窗体上安放一个TreeView控件.一个Button控件.
Button控件的单击事件内调用即可.
M1.Tree = Me.TreeView1
GetOperationList()

当然,至于子程序调用和参数传递的方法有很多.用其它方法也可以.
只要有一个TreeView控件就可以.

很想上截图,可惜上不了.
因为我也是(试用期),还没有添加到好友.
ICAX网的规定好像是必须至少添加两个好友才能往相册内传图片.
好友寻觅中...




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3