i have a macro i use to color all the hole wizard features in a part. i wounder if there is a easy way to modify it so it only apply colors to hole wizard taped holes?
Option Explicit
Const APPEARANCE_PATH As String = _
"C:\Users\Administratör\Desktop\FärgTolerans\Färger\hål (grå).p2m"
Sub HoleWizard()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim swObj As Object
Dim swRenderMat As SldWorks.RenderMaterial
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
Dim nSel As Integer
nSel = swSelMgr.GetSelectedObjectCount2(-1)
Dim i As Integer
For i = 1 To nSel
Dim swFeature As SldWorks.Feature
If swSelMgr.GetSelectedObjectType3(i, -1) = 22 Then
Set swFeature = swSelMgr.GetSelectedObject6(i, -1)
If swFeature.GetTypeName2 = "HoleWzd" Then
Set swObj = swSelMgr.GetSelectedObject6(i, -1)
If swModel.GetType = swDocPART Then
If swObj Is Nothing Then Set swObj = swModel
ElseIf swModel.GetType = swDocASSEMBLY Then
Dim swAssy As SldWorks.AssemblyDoc
Dim swComp As SldWorks.Component2
Dim lngInfo As Long
Set swAssy = swModel
If TypeOf swObj Is SldWorks.Face2 Or _
TypeOf swObj Is SldWorks.Feature Or _
TypeOf swObj Is SldWorks.Body2 Then
Set swComp = swSelMgr.GetSelectedObjectsComponent3(1, -1)
swComp.Select4 False, Nothing, False
swAssy.EditPart2 False, True, lngInfo
If lngInfo = -1 Then
swApp.SendMsgToUser "Failed to edit component."
Exit Sub
End If
End If
Else
Exit Sub
End If
Set swRenderMat = swModel.Extension.CreateRenderMaterial(APPEARANCE_PATH)
If swRenderMat.AddEntity(swObj) = False Then
swApp.SendMsgToUser "Failed to add entity."
Exit Sub
End If
If swModel.Extension.AddDisplayStateSpecificRenderMaterial( _
swRenderMat, swAllDisplayState, Empty, Empty, Empty) = False Then
swApp.SendMsgToUser "Failed to add appearance."
Exit Sub
End If
End If
End If
Next i
swModel.EditRebuild3
If Not swComp Is Nothing Then
swComp.Select4 False, Nothing, False
swAssy.EditAssembly
End If
Call main3
End Sub
SolidworksApi/macros