Files
2026-03-17 14:58:51 -06:00

40 lines
1.3 KiB
Python

import bpy
def get_all_visible_materials():
objects=[ob for ob in bpy.context.view_layer.objects if ob.visible_get()]
slot_array = [object.material_slots for object in objects]
vis_mat = set()
for slots in slot_array:
for slot in slots:
vis_mat.add(slot.material)
# to remove None values in list
vis_mat = list(filter(None, vis_mat))
return vis_mat
def get_selected_materials(selected_objects):
selected_materials = set()
slots_array = [obj.material_slots for obj in selected_objects]
for slots in slots_array:
for slot in slots:
selected_materials.add(slot.material)
return selected_materials
def clean_empty_materials():
for obj in bpy.data.objects:
for slot in obj.material_slots:
mat = slot.material
if mat is None:
print("Removed Empty Materials from " + obj.name)
bpy.ops.object.select_all(action='DESELECT')
obj.select_set(True)
bpy.ops.object.material_slot_remove()
def clean_no_user_materials():
for material in bpy.data.materials:
if not material.users:
bpy.data.materials.remove(material)
def use_nodes():
for material in bpy.data.materials:
if not material.use_nodes:
material.use_nodes = True