Hallo zusammen,
ich schreibe zurzeit ein Makro, um einige ältere Baugruppen auf den neusten Stand zu bringen. Dazu gehört auch, dass ich fälschlicherweise hinterlegte Render Materials entferne. Leider habe ich mit folgender sub bis jetzt kein Glück. Folgendes wird für jede Komponente zurückgegeben:
Code:
C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\data\graphics\materials\metal\steel\stainless steel treadplate.p2m
ID1 4
ID2 0
Removed: Falsch
Ich hoffe einige/r von euch hat noch eine Idee. Hier nun die kleine Sub.
Code:
Sub removeRenderMaterial(swModel As ModelDoc2)
Dim swModelExt As ModelDocExtension
Set swModelExt = swModel.Extension
If (swModelExt.GetRenderMaterialsCount2(swAllDisplayState, Nothing) > 0) Then
Dim renderMaterials As Variant
Dim renderMaterial As Variant
Dim swRenderMaterial As renderMaterial
Dim renderMaterialID As Integer
Dim fileName As String
Dim materialRemoved As Boolean
Const renderMaterialPath = "C:\Program Files\SOLIDWORKS Corp\SOLIDWORKS\data\graphics\materials\metal\steel\stainless steel treadplate.p2m"
renderMaterials = swModelExt.GetRenderMaterials2(swAllDisplayState, Nothing)
For Each renderMaterial In renderMaterials
Set swRenderMaterial = renderMaterial
Dim value As Boolean
If (swRenderMaterial.fileName = renderMaterialPath) Then
Dim renderMaterialID1 As Long
Dim renderMaterialID2 As Long
Dim rendermaterialID1_toDelete(0) As Long
Dim rendermaterialID2_toDelete(0) As Long
swRenderMaterial.GetMaterialIds renderMaterialID1, renderMaterialID2
rendermaterialID1_toDelete(0) = renderMaterialID1
rendermaterialID2_toDelete(0) = renderMaterialID2
value = swModelExt.DeleteDisplayStateSpecificRenderMaterial(rendermaterialID1_toDelete, rendermaterialID2_toDelete)
swModelExt.UpdateRenderMaterialsInSceneGraph True
Debug.Print (swRenderMaterial.fileName)
Debug.Print ("ID1 " & renderMaterialID1)
Debug.Print ("ID2 " & renderMaterialID2)
Debug.Print ("Removed: " & value)
End If
Next
End If
End Sub
[Diese Nachricht wurde von R3vo am 03. Jul. 2022 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP