import bpy
class DimensionToolsPanel(bpy.types.Panel):
"""Creates a panel with two buttons to remember and apply object dimensions"""
bl_label = "Retransform Tool"
bl_idname = "OBJECT_PT_retransform_tools"
bl_space_type = 'PROPERTIES'
bl_region_type = 'WINDOW'
bl_context = "object"
def draw(self, context):
layout = self.layout
obj = context.active_object
row = layout.row()
row.label(text="Selected Object: " + obj.name)
row = layout.row()
row.operator("object.remember_dimensions", text="RETRANSFORM", icon='FILE_REFRESH')
class RememberDimensionsOperator(bpy.types.Operator):
"""Stores the object's dimensions"""
bl_idname = "object.remember_dimensions"
bl_label = "RETRANSFORM"
def execute(self, context):
obj = context.active_object
obj["remember_dimensions"] = obj.dimensions.copy()
obj.dimensions = (10,10,10)
bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)
obj.dimensions = obj["remember_dimensions"]
self.report({'INFO'}, "RETRANSFORMED object: " + obj.name)
return {'FINISHED'}
def register():
bpy.utils.register_class(DimensionToolsPanel)
bpy.utils.register_class(RememberDimensionsOperator)
def unregister():
bpy.utils.unregister_class(DimensionToolsPanel)
bpy.utils.unregister_class(RememberDimensionsOperator)
if __name__ == "__main__":
register()
dimension_tools_04.py