32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
import bpy
|
|
|
|
class NoSubdiv(bpy.types.Operator):
|
|
"""Remove all subdivision surface modifiers from objects"""
|
|
bl_idname = "bst.no_subdiv"
|
|
bl_label = "No Subdiv"
|
|
bl_options = {'REGISTER', 'UNDO'}
|
|
|
|
only_selected: bpy.props.BoolProperty(
|
|
name="Only Selected Objects",
|
|
description="Apply only to selected objects",
|
|
default=True
|
|
)
|
|
|
|
def execute(self, context):
|
|
# Choose objects based on the property
|
|
if self.only_selected:
|
|
objects = context.selected_objects
|
|
else:
|
|
objects = bpy.data.objects
|
|
removed_count = 0
|
|
for obj in objects:
|
|
if obj.modifiers:
|
|
subdiv_mods = [mod for mod in obj.modifiers if mod.type == 'SUBSURF']
|
|
for mod in subdiv_mods:
|
|
obj.modifiers.remove(mod)
|
|
removed_count += 1
|
|
self.report({'INFO'}, f"Subdivision Surface modifiers removed from {'selected' if self.only_selected else 'all'} objects. ({removed_count} removed)")
|
|
return {'FINISHED'}
|
|
|
|
print("Subdivision Surface modifiers removed from all objects.")
|