Code:
Option ExplicitPrivate Sub GetDrawCurve()
Dim oApp As Inventor.Application
Set oApp = ThisApplication
Dim oDrawDoc As DrawingDocument
Set oDrawDoc = oApp.ActiveDocument
Dim oAssDoc As AssemblyDocument
Set oAssDoc = oDrawDoc.ReferencedDocuments(1)
Dim oAssPane As BrowserPane
For Each oAssPane In oAssDoc.BrowserPanes
If oAssPane.InternalName = "AmBrowserArrangement" Then
Exit For
End If
Next
Dim oBPane As BrowserPane
For Each oBPane In oDrawDoc.BrowserPanes
If oBPane.InternalName = "DlHierarchy" Then
Exit For
End If
Next
If oBPane.TopNode.Selected = True Then Exit Sub
Dim oBNode As BrowserNode
Set oBNode = TraverseBrowserNodes(oBPane.TopNode.BrowserNodes)
If oBNode Is Nothing Then Exit Sub
Dim oDrawView As DrawingView
Dim oNode As BrowserNode
Set oNode = oBNode.Parent
Do While Not TypeOf oNode.NativeObject Is DrawingView
Set oNode = oNode.Parent
Loop
Set oDrawView = oNode.NativeObject
Dim oParentView As DrawingView
Set oParentView = oDrawView
Do While Not oParentView.ParentView Is Nothing
Set oParentView = oParentView.ParentView
Loop
Dim oSheet As Sheet
Set oSheet = oParentView.Parent
If Not oSheet.Name = oDrawDoc.ActiveSheet.Name Then
oSheet.Activate
End If
Dim oCompOcc As ComponentOccurrence
Set oCompOcc = oBNode.BrowserNodeDefinition.NativeObject
Dim oAssNode As BrowserNode
Set oAssNode = oAssPane.GetBrowserNodeFromObject(oCompOcc)
Dim oDrawCurves As DrawingCurvesEnumerator
Set oDrawCurves = oDrawView.DrawingCurves(oAssNode.NativeObject)
End Sub
Private Function TraverseBrowserNodes(ByVal oBNodes As BrowserNodesEnumerator) As BrowserNode
Dim oBNode As BrowserNode
For Each oBNode In oBNodes
If Not oBNode.NativeObject Is Nothing Then
If oBNode.Selected = True Then
Set TraverseBrowserNodes = oBNode
Exit Function
End If
If oBNode.Expanded = True Then
Set TraverseBrowserNodes = TraverseBrowserNodes(oBNode.BrowserNodes)
If Not TraverseBrowserNodes Is Nothing Then
Exit Function
End If
End If
End If
Next
End Function