• NXOpen.UF.UFView.CycleObjects 的使用


    image

    Public Sub CycleObjects(ByVal view As NXOpen.Tag, ByVal type As NXOpen.UF.UFView.CycleObjectsEnum, ByRef _object As NXOpen.Tag)
         NXOpen.UF.UFView 的成员

    在指定视图中循环对象

    1.如果视图(view)为NULL_TAG(.NET:NXOpen.Tag.Null),则使用工作视图。

    2.type=UF_VIEW_VISIBLE_OBJECTS(.NET:NXOpen.UF.UFView.CycleObjectsEnum.VisibleObjects),返回视图矩形边界内的所有可见对象;不会返回跨越边界或在边界外的对象。不支持制图成员的非矩形边界,如果想获取制图成员的非矩形边界视图的可见对象,或跨越视图边界的对象,请使用UF_VIEW_ask_visible_objects

    3.在结束遍历循环之前,不能删除或者擦除对象,不能通过添加或移除视图进行边界。如果需要删除遍历查找的对象,请创建一个数组,在遍历结束以后,对对象数组进行删除操作。

    PS:这个功能将会返回用于显示的实体轮廓边缘(包括面和边)。在用户定义图层(1~256层)中。

    个人的理解是

    type=UF_VIEW_VISIBLE_OBJECTS,返回视图边界内的可见对象,包括实体轮廓。

    type=UF_VIEW_DEPENDENT_OBJECTS ,返回视图内的可以显示的制图对象(包括隐藏但可以显示的制图对象),不包括不能显示的对象,不包括实体轮廓。

    type=UF_VIEW_ERASED_OBJECTS

    type=UF_VIEW_MODIFIED_OBJECTS

    下面的代码,是获取在工作视图可以显示的40层里的注释。

    Dim theSession = Session.GetSession()
            Dim workPart As Part = theSession.Parts.Work
    
            Dim theUfSession = UFSession.GetUFSession()
    
            Dim lw = theSession.ListingWindow
            lw.Open
    
            Dim _object = NXOpen.Tag.Null
            Do
                theUfSession.View.CycleObjects(NXOpen.Tag.Null, NXOpen.UF.UFView.CycleObjectsEnum.DependentObjects, _object)
                If _object = NXOpen.Tag.Null Then
                    Exit Do
                Else
                    Dim _type, _subtype As Integer
                    theUfSession.Obj.AskTypeAndSubtype(_object, _type, _subtype)
                    'lw.WriteLine(String.Format("Type:{0} Subtype:{1}", _type, _subtype))
                    If _type = UFConstants.UF_drafting_entity_type AndAlso _subtype = UFConstants.UF_draft_note_subtype Then
                        Dim note1 As Annotations.Note = TryCast(Utilities.NXObjectManager.Get(_object), Annotations.Note)
                        If note1 IsNot Nothing Then
                            If note1.Layer = 40 Then
                                'TODO:位于40层的注释
                                'theSession.Information.DisplayObjectsDetails({note1})
                            End If
                        End If
                    End If
                End If
            Loop While _object <> NXOpen.Tag.Null
  • 相关阅读:
    Linux安装nginx
    Linux安装vsftp服务
    maven的Tomcat插件使用
    Mybatis逆向工程生成代码
    千里之行,始于足下
    java 通过反射获取注解
    天气预报需要用到的jar包
    JDBC 利用反射 配置文件
    从网页下载图片的代码
    装箱/拆箱 对象排序
  • 原文地址:https://www.cnblogs.com/bizca/p/4620422.html
Copyright © 2020-2023  润新知