寻找局部视图中显示出来的部件

最近在全球论坛有个问题是想知道局部视图中显示出来的部件。可考虑两个方法:

1. 遍历装配文档,依次用Drawingview.DrawingCurves查看是否有视图曲线

2. 遍历视图曲线,依次访问其ModelGeometry,看看是哪些部件产生的。

以下代码用了方法1。假定图纸中第二个视图是局部视图。


Public Sub GetViewComponents()

    Dim doc As DrawingDocument
    Set doc = ThisApplication.ActiveDocument
    
    Dim sectionView As SectionDrawingView
    Set sectionView = doc.ActiveSheet.DrawingViews(2)
    
    Dim docDesc As DocumentDescriptor
    Set docDesc = sectionView.ReferencedDocumentDescriptor

    Dim asm As AssemblyDocument
    Set asm = docDesc.ReferencedDocument
    
    Debug.Print "Occurrences in View: " & sectionView.name
    
    On Error Resume Next
    
    Dim occurrence As ComponentOccurrence
    For Each occurrence In asm.ComponentDefinition.Occurrences
    
        Dim curves As DrawingCurvesEnumerator
        Set curves = sectionView.DrawingCurves(occurrence)
        
        If Err Then
            'DrawingCurves fails if no curves...
            Err.Clear
        ElseIf curves Is Nothing Or curves.count = 0 Then
            'Component not in view...
        Else
            'Component is in section view
            Debug.Print occurrence.name
        End If
    
    Next
    
End Sub


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值