Hallo Edlich,
die Aussage von Jason war wohl auch nicht sehr hilfreich.
IMHO geht es nur einzeln und ziemlich langsam, wenn du eine Methode findest, den untenstehenden Code zu verbessern, lass es mich wissen.
Ich habe den Filename hardcoded eingefügt. Die Methode, Nodes, bei denen IncludeInPartsList auf False steht, nicht einzublenden ist sehr aufwendig (funktioniert nur über die Assembly Occurrences).
Option Explicit
Private SEApp As SolidEdgeFramework.Application
Private SEDft As SolidEdgeDraft.DraftDocument
Private SEHL As SolidEdgeFramework.HighlightSet
Private aModMems() As SolidEdgeDraft.ModelMember
Private ModMemCount As Long
Private Sub Form_Load()
Dim i As Long, k As Long
Set SEApp = GetObject(, "SolidEdge.Application")
Set SEDft = SEApp.ActiveDocument
For i = 1 To SEDft.Sheets.Count
If SEDft.Sheets(i).SectionType = igWorkingSection Then
For k = 1 To SEDft.Sheets(i).DrawingViews.Count
RecGetModMem SEDft.Sheets(i).DrawingViews(k).ModelMembers
Next
End If
Next
If SEDft.HighlightSets.Count > 0 Then
For i = 1 To SEDft.HighlightSets.Count
SEDft.HighlightSets(i).Delete
Next
End If
Set SEHL = SEDft.HighlightSets.Add
For i = 1 To ModMemCount
If aModMems(i).FileName = "SS_DIN933_M12x30.par" Then
For k = 1 To aModMems(i).GraphicMembers.Count
SEHL.AddItem aModMems(i).GraphicMembers(k)
Next
End If
Next
SEHL.Draw
Stop
SEHL.Delete
Erase aModMems
Set SEHL = Nothing
Set SEDft = Nothing
Set SEApp = Nothing
End Sub
Private Sub RecGetModMem(ByVal ModMems As SolidEdgeDraft.ModelMembers)
Dim ModMem As SolidEdgeDraft.ModelMember
Dim i As Long
For i = 1 To ModMems.Count
Set ModMem = ModMems(i)
ModMemCount = ModMemCount + 1
ReDim Preserve aModMems(ModMemCount)
Set aModMems(ModMemCount) = ModMem
Set ModMem = Nothing
If ModMems(i).ComponentType = seAssemblyMemberType _
And ModMems(i).ModelMembers.Count > 0 Then
RecGetModMem ModMems(i).ModelMembers
End If
Next
End Sub
HTH pablo
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP