Hallo,
das müßte klappen
##############################################
Public Sub AssemblyCount()
Dim oDoc As Inventor.AssemblyDocument
Set oDoc = ThisApplication.ActiveDocument
Dim oCompDef As Inventor.ComponentDefinition
Set oCompDef = oDoc.ComponentDefinition
Dim sMsg As String
Dim iLeafNodes As Long
Dim iSubAssemblies As Long
Dim Sichtbar_1 As Boolean
Dim Sichtbar_2 As Boolean
'zum testen ob alle Bauteile erfasst werden
Sichtbar_1 = True
Sichtbar_2 = False ' bei "True" alle sichtbar, bei "false" alle unsichtbar
Dim oCompOcc As ComponentOccurrence
For Each oCompOcc In oCompDef.Occurrences
If oCompOcc.SubOccurrences.Count = 0 Then
If Sichtbar_1 = True Then
oCompOcc.Visible = Sichtbar_2
End If
iLeafNodes = iLeafNodes + 1
Else
iSubAssemblies = iSubAssemblies + 1
Call processAllSubOcc(oCompOcc, sMsg, iLeafNodes, iSubAssemblies)
If Sichtbar_1 = True Then
oCompOcc.Visible = Sichtbar_2
End If
End If
Next
End Sub
Private Sub processAllSubOcc(ByVal oCompOcc As ComponentOccurrence, _
ByRef sMsg As String, _
ByRef iLeafNodes As Long, _
ByRef iSubAssemblies As Long)
Dim oSubCompOcc As ComponentOccurrence
For Each oSubCompOcc In oCompOcc.SubOccurrences
If oSubCompOcc.SubOccurrences.Count = 0 Then
iLeafNodes = iLeafNodes + 1
Else
sMsg = sMsg + oSubCompOcc.Name + vbCr
iSubAssemblies = iSubAssemblies + 1
Call processAllSubOcc(oSubCompOcc, sMsg, iLeafNodes, iSubAssemblies)
End If
Next
End Sub
############################
MFG
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP