Hallo.
Ik heb een macro waarmee selectiesets worden gemaakt, maar ik wil ze automatisch hernoemen om de inhoud van het onderdeel te standaardiseren.
Hier is een macro-uittreksel dat de namen van de selectiesets geeft, maar ik kan de code niet schrijven om ze te hernoemen ...
"Sub TraverseFeatureFeatures(swFeat als SldWorks.Feature, swModel als SldWorks.ModelDoc2)
Dim swSelectionSetFolder als SldWorks.SelectionSetFolder
Dim selectieSetArray als variant
Dim selectionSetItemArray As Variant
Dim selectieSetItemArrayTypes als variant
Dim swSelectionSet als SldWorks.SelectionSet
Dim swSelectionSetItem As SldWorks.SelectionSetItem
Dim swFace als SldWorks.Face2
Dim swEdge als SldWorks.Edge
Dim swBody As SldWorks.Body2
Zon i Zo lang
Zon j Zo lang
Dim ret als Booleaanse
While Not swFeat Is Nothing
If swFeat.Name = "Selection Sets" Then
Debug.Print " " & swFeat.Name & " [" & swFeat.GetTypeName & "]"
'Get Selection Sets folder
Set swSelectionSetFolder = swFeat.GetSpecificFeature2
'Get selection sets in Selection Sets folder
selectionSetArray = swSelectionSetFolder.GetSelectionSets
For i = 0 To UBound(selectionSetArray)
Set swSelectionSet = selectionSetArray(i)
Debug.Print " Selection set[" & i & "] name: " & swSelectionSet.GetName
'Get the items and their types in this selection set
selectionSetItemArray = swSelectionSet.GetSelectionSetItems
selectionSetItemArrayTypes = swSelectionSet.GetSelectionSetItemTypes
For j = 0 To UBound(selectionSetItemArray)
Set swSelectionSetItem = selectionSetItemArray(j)
Select Case selectionSetItemArrayTypes(j)
Case swSelectType_e.swSelFACES
'Get the Dispatch object for the selection set item
Set swFace = swSelectionSetItem.GetCorrespondingItem
'Get the name of the body for the face
Set swBody = swFace.GetBody
Debug.Print " Name of face[" & j & "]'s body: " & swBody.Name
Case swSelectType_e.swSelEDGES
'Get the Dispatch object for the selection set item
Set swEdge = swSelectionSetItem.GetCorrespondingItem
'Get the name of the body for the edge
Set swBody = swEdge.GetBody
Debug.Print " Name of edge[" & j & "]'s body: " & swBody.Name
End Select
Next
Next
End If
Set swFeat = swFeat.GetNextFeature
Wend
Einde Sub"
Bij voorbaat dank