Hallo an alle
Ich muss die Farbe eines ASM mit einem Makro ändern, ohne die Farbe der Teile zu berühren, also wirklich auf ASM-Ebene, visuell im Build-Baum, ist es das Erscheinungsbild direkt neben dem ASM-Namen.
Nach mehreren Stunden Recherche stieß ich schließlich auf ein Makro, das ich an meine Sauce angepasst habe, aber wenn ich es laufen lasse, passiert es einfach... Nichts :
Sub main()
Dim swApp als SldWorks.SldWorks
Dim Modeldoc2 As SldWorks.Modeldoc2
Dim swAss As SldWorks.AssemblyDoc
Dim vMatProp als Variante
Legen Sie swApp = Application.SldWorks fest
Legen Sie Modeldoc2 = swApp.ActiveDoc fest.
vMatProp = Modeldoc2.MaterialPropertyValues
Wenn Modeldoc2.GetType = swDocASSEMBLY dann
Set swAss = Modeldoc2
vMatProp = Modeldoc2.MaterialPropertyValues
vMatProp(0) = 2 'Rot
vMatProp(1) = 0 'Grün
vMatProp(2) = 0 'Blau
vMatProp(3) = 1 / 2 + 0,5 'Umgebungstemperatur
vMatProp(4) = 1 / 2 + 0,5 'Diffus
vMatProp(5) = 1 'Spekular
vMatProp(6) = 1 * 0,9 + 0,1 'Glanz
Modeldoc2.MaterialPropertyValues = vMatProp
Oder
MsgBox ("Dieses Makro auf eine Baugruppe anwenden")
Sub beenden
Ende, wenn
'Neu zeichnen, um die neue Farbe zu sehen
Wählen Sie ein Modelldoc2.GraphicsRedraw2
Ende Sub
Wenn ich Modeldoc2.GetType = swDocASSEMBLY durch Modeldoc2.GetType = swDocPART ersetze, funktioniert es, aber auf dem PART (logisch) kam ich zu dem Schluss, dass das Problem von Modeldoc2.MaterialPropertyValues = vMatProp herrühren könnte, das möglicherweise nicht für die Verwendung auf einem ASM geeignet ist.
Hat bitte jemand eine Lösung?