Så du svarede med en masse gode muligheder og Guilherme C. Webster sendt i en, der ikke kun tilføjede farve til dele i en samling, men også tilføjede farve til multibodies i en del. Klippe. og. RULLE.
Rigtig sød Guilherme, og en kæmpe tak til alle der har bidraget til samtalen. Hvis du gik glip af det, er der noget fantastisk macro hackin' sjov i kommentarerne for randomiseret farve. Her er de resultater, du får med makroen og makroen til at downloade og lege med dig selv. Som du ser, fungerer det endda med virtuelle dele. Åh ja.




Her er koden, hvis du gerne vil cutte og indsætte.
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swElement As Object
Dim vElementArr As Variant
Dim vElement As Variant
Dim vMatProp As Variant
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
vMatProp = swModel.MaterialPropertyValues
'Get all elements
If swModel.GetType = swDocPART Then
vElementArr = swModel.GetBodies2(swAllBodies, False)
For Each vElement In vElementArr
Set swElement = vElement
Randomize
vMatProp(0) = Rnd 'Red
vMatProp(1) = Rnd 'Green
vMatProp(2) = Rnd 'Blue
vMatProp(3) = Rnd / 2 + 0.5 'Ambient
vMatProp(4) = Rnd / 2 + 0.5 'Diffuse
vMatProp(5) = Rnd 'Specular
vMatProp(6) = Rnd * 0.9 + 0.1 'Shininess
swElement.MaterialPropertyValues2 = vMatProp
Next
ElseIf swModel.GetType = swDocASSEMBLY Then
vElementArr = swModel.GetComponents(False)
For Each vElement In vElementArr
Set swElement = vElement
Randomize
vMatProp(0) = Rnd 'Red
vMatProp(1) = Rnd 'Green
vMatProp(2) = Rnd 'Blue
vMatProp(3) = Rnd / 2 + 0.5 'Ambient
vMatProp(4) = Rnd / 2 + 0.5 'Diffuse
vMatProp(5) = Rnd 'Specular
vMatProp(6) = Rnd * 0.9 + 0.1 'Shininess
swElement.MaterialPropertyValues = vMatProp
Next
ElseIf swModel.GetType = swDocDRAWING Then
MsgBox ("You can only apply random colors to part bodies or assembly components.")
Exit Sub
End If
'Redraw to see new color
swModel.GraphicsRedraw2
End Sub
Her er makro download. Bare download, udpak og afspil makroen via din makroværktøjslinje i SolidWorks med en assembly eller del (med multibodies) åben...
Tak igen alle sammen! Hvis du har noget, du gerne vil tilføje til dette, så tryk på kommentarerne!