From 668043c4a0077dde507378e81152820aed798a7c Mon Sep 17 00:00:00 2001 From: Brendon Murphy <meta.androcto1@gmail.com> Date: Sun, 29 Aug 2010 05:51:46 +0000 Subject: [PATCH] adding contrib\py\scripts\addons\system_blend_info.py moved to release, this handy script provides an easy to understand overview of the scene's content & databases [[Split portion of a mixed commit.]] --- system_blend_info.py | 206 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 system_blend_info.py diff --git a/system_blend_info.py b/system_blend_info.py new file mode 100644 index 000000000..fafe99b97 --- /dev/null +++ b/system_blend_info.py @@ -0,0 +1,206 @@ +# scene_blend_info.py Copyright (C) 2010, Mariano Hidalgo +# +# Show Information About the Blend. +# ***** BEGIN GPL LICENSE BLOCK ***** +# +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# ***** END GPL LICENCE BLOCK ***** + +bl_addon_info = { + "name": "System: Scene Information", + "author": "uselessdreamer", + "version": "0.3", + "blender": (2, 5, 3), + "location": "Object Properties > Scene", + "description": "Show information about the .blend", + "warning": "", + "wiki_url": 'http://wiki.blender.org/index.php/Extensions:2.5/Py/' \ + 'Scripts/', + "tracker_url": "https://projects.blender.org/tracker/index.php?" \ + "func=detail&aid=22102&group_id=153&atid=469", + "category": "System"} + +import bpy + + +def quantity_string(quantity, text_single, text_plural, text_none=None): + sep = " " + + if not text_none: + text_none = text_plural + + if quantity == 0: + string = str(quantity) + sep + text_none + + if quantity == 1: + string = str(quantity) + sep + text_single + + if quantity >= 2: + string = str(quantity) + sep + text_plural + + if quantity < 0: + return None + + return string + + +class OBJECT_PT_blendinfo(bpy.types.Panel): + bl_label = "Blend Info" + bl_space_type = "PROPERTIES" + bl_region_type = "WINDOW" + bl_context = "scene" + + def draw(self, context): + amount = 2 + ob_cols = [] + db_cols = [] + etc_cols = [] + + objects = bpy.data.objects + + layout = self.layout + + # OBJECTS + + l_row = layout.row() + num = len(bpy.data.objects) + l_row.label(text=quantity_string(num, "Object", "Objects") + + " in the scene:", + icon='OBJECT_DATA') + + l_row = layout.row() + ob_cols.append(l_row.column()) + ob_cols.append(l_row.column()) + + row = ob_cols[0].row() + meshes = [o for o in objects.values() if o.type == 'MESH'] + num = len(meshes) + row.label(text=quantity_string(num, "Mesh", "Meshes"), + icon='MESH_DATA') + + row = ob_cols[1].row() + curves = [o for o in objects.values() if o.type == 'CURVE'] + num = len(curves) + row.label(text=quantity_string(num, "Curve", "Curves"), + icon='CURVE_DATA') + + row = ob_cols[0].row() + cameras = [o for o in objects.values() if o.type == 'CAMERA'] + num = len(cameras) + row.label(text=quantity_string(num, "Camera", "Cameras"), + icon='CAMERA_DATA') + + row = ob_cols[1].row() + lamps = [o for o in objects.values() if o.type == 'LAMP'] + num = len(lamps) + row.label(text=quantity_string(num, "Lamp", "Lamps"), + icon='LAMP_DATA') + + row = ob_cols[0].row() + armatures = [o for o in objects.values() if o.type == 'ARMATURE'] + num = len(armatures) + row.label(text=quantity_string(num, "Armature", "Armatures"), + icon='ARMATURE_DATA') + + row = ob_cols[1].row() + lattices = [o for o in objects.values() if o.type == 'LATTICE'] + num = len(lattices) + row.label(text=quantity_string(num, "Lattice", "Lattices"), + icon='LATTICE_DATA') + + row = ob_cols[0].row() + empties = [o for o in objects.values() if o.type == 'EMPTY'] + num = len(empties) + row.label(text=quantity_string(num, "Empty", "Empties"), + icon='EMPTY_DATA') + + l_row_sep = layout.separator() + + # DATABLOCKS + + l_row = layout.row() + num = len(bpy.data.objects) + l_row.label(text="Datablocks in the scene:") + + l_row = layout.row() + db_cols.append(l_row.column()) + db_cols.append(l_row.column()) + + row = db_cols[0].row() + num = len(bpy.data.meshes) + row.label(text=quantity_string(num, "Mesh", "Meshes"), + icon='MESH_DATA') + + row = db_cols[1].row() + num = len(bpy.data.curves) + row.label(text=quantity_string(num, "Curve", "Curves"), + icon='CURVE_DATA') + + row = db_cols[0].row() + num = len(bpy.data.cameras) + row.label(text=quantity_string(num, "Camera", "Cameras"), + icon='CAMERA_DATA') + + row = db_cols[1].row() + num = len(bpy.data.lamps) + row.label(text=quantity_string(num, "Lamp", "Lamps"), + icon='LAMP_DATA') + + row = db_cols[0].row() + num = len(bpy.data.armatures) + row.label(text=quantity_string(num, "Armature", "Armatures"), + icon='ARMATURE_DATA') + + row = db_cols[1].row() + num = len(bpy.data.lattices) + row.label(text=quantity_string(num, "Lattice", "Lattices"), + icon='LATTICE_DATA') + + row = db_cols[0].row() + num = len(bpy.data.materials) + row.label(text=quantity_string(num, "Material", "Materials"), + icon='MATERIAL_DATA') + + row = db_cols[1].row() + num = len(bpy.data.worlds) + row.label(text=quantity_string(num, "World", "Worlds"), + icon='WORLD_DATA') + + row = db_cols[0].row() + num = len(bpy.data.textures) + row.label(text=quantity_string(num, "Texture", "Textures"), + icon='TEXTURE_DATA') + + row = db_cols[1].row() + num = len(bpy.data.images) + row.label(text=quantity_string(num, "Image", "Images"), + icon='IMAGE_DATA') + + row = db_cols[0].row() + num = len(bpy.data.texts) + row.label(text=quantity_string(num, "Text", "Texts"), + icon='TEXT') + + +def register(): + pass + +def unregister(): + pass + +if __name__ == "__main__": + register() -- GitLab