[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [2308] trunk/py/scripts/addons/ add_mesh_extra_objects: Added Polysphere object thanks to metalliandy.
Brendon Murphy
meta.androcto1 at gmail.com
Tue Sep 6 03:41:53 CEST 2011
Revision: 2308
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=2308
Author: meta-androcto
Date: 2011-09-06 01:41:51 +0000 (Tue, 06 Sep 2011)
Log Message:
-----------
Added Polysphere object thanks to metalliandy.
Updated version & bl_info,
Added Authors to the base of gpl block as the list was too long.
Modified Paths:
--------------
trunk/py/scripts/addons/add_mesh_extra_objects/__init__.py
Added Paths:
-----------
trunk/py/scripts/addons/add_mesh_extra_objects/add_mesh_polysphere.py
Modified: trunk/py/scripts/addons/add_mesh_extra_objects/__init__.py
===================================================================
--- trunk/py/scripts/addons/add_mesh_extra_objects/__init__.py 2011-09-06 01:10:47 UTC (rev 2307)
+++ trunk/py/scripts/addons/add_mesh_extra_objects/__init__.py 2011-09-06 01:41:51 UTC (rev 2308)
@@ -15,11 +15,12 @@
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####
+# Contributed to by Pontiac, Fourmadmen, varkenvarken, tuga3d, meta-androcto, metalliandy #
bl_info = {
"name": "Extra Objects",
- "author": "Pontiac, Fourmadmen, varkenvarken, tuga3d, meta-androcto",
- "version": (0, 1),
+ "author": "Multiple Authors",
+ "version": (0, 2),
"blender": (2, 5, 9),
"api": 39933,
"location": "View3D > Add > Mesh > Extra Objects",
@@ -39,12 +40,14 @@
imp.reload(add_mesh_gemstones)
imp.reload(add_mesh_gears)
imp.reload(add_mesh_3d_function_surface)
+ imp.reload(add_mesh_polysphere)
else:
from . import add_mesh_extra_objects
from . import add_mesh_twisted_torus
from . import add_mesh_gemstones
from . import add_mesh_gears
from . import add_mesh_3d_function_surface
+ from . import add_mesh_polysphere
import bpy
@@ -63,6 +66,8 @@
layout.menu("INFO_MT_mesh_basic_add", text="Basic Objects")
layout.operator("mesh.primitive_twisted_torus_add",
text="Twisted Torus")
+ layout.operator("mesh.primitive_polysphere_add",
+ text="Polysphere")
class INFO_MT_mesh_gemstones_add(bpy.types.Menu):
Added: trunk/py/scripts/addons/add_mesh_extra_objects/add_mesh_polysphere.py
===================================================================
--- trunk/py/scripts/addons/add_mesh_extra_objects/add_mesh_polysphere.py (rev 0)
+++ trunk/py/scripts/addons/add_mesh_extra_objects/add_mesh_polysphere.py 2011-09-06 01:41:51 UTC (rev 2308)
@@ -0,0 +1,133 @@
+# ##### 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+'''
+bl_info = {
+ "name": "Add PolySphere",
+ "author": "Andy Davies (metalliandy)",
+ "version": (0,1,5),
+ "blender": (2, 5, 8),
+ "api": 37702,
+ "location": "View3D > Add > Mesh > PolySphere",
+ "description": "Adds a PolySphere (all quads) for sculpting",
+ "warning": "",
+ "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.5/Py/"\
+ "Scripts/Add_Mesh/Add_PolySphere",
+ "tracker_url": "",
+ "category": "Add Mesh"}
+'''
+"""
+About this script:-
+This script enables the creation of a "PolySphere": an all quad sphere for use in sculpting and is intended to be used in place of a standard UVSphere, where the poles on would cause pinching and other unwanted artefacts.
+Apart from being all quads, the advantages are that the topology is distributed evenly across the surface and that they also use only around 80% of the geometry of a comparable resolution UV sphere.
+
+Usage:-
+Activate the script via the "Add-Ons" tab under the user preferences.
+The PolySphere can then be accessed via Add Mesh> PolySphere.
+
+
+Related Links:-
+http://blenderartists.org/forum/showthread.php?t=205444
+http://www.metalliandy.com
+
+Thanks to:-
+Dealga McArdle (zeffii) - http://www.digitalaphasia.com
+
+Version history:-
+v0.1.5 - Ammended script for compatibility with recent API changes.
+v0.1.4 - Ammended script and changed bl_info for compatibility with recent API changes.
+v0.1.3 - Ammended script for compatibility with recent API changes.
+v0.1.2 - Ammended script meta information for compatibility with recent API changes.
+v0.1.1 - Cleaned code up a little and incresed the scale of the final PolySphere to 2 units.
+v0.1 - Initial revision.
+
+"""
+
+import bpy
+
+def Add_PolySphere():
+ #Add Cube to scene
+ bpy.ops.mesh.primitive_cube_add()
+
+ #Changes name of Cube to PolySphere adds the variable cube
+ cube = bpy.context.object
+ cube.name = "PolySphere"
+
+ #Positions Cube primitive to scene centre
+ bpy.context.active_object.location = [0, 0, 0]
+
+ #Adds Subsurf Modifier
+ bpy.ops.object.modifier_add(type='SUBSURF')
+
+ #Selects Subsurf Modifier for editing
+ subsurf = cube.modifiers['Subsurf']
+
+ #Changes Subsurf levels
+ subsurf.levels = 3
+
+ #Applys Subsurf Modifier
+ bpy.ops.object.modifier_apply(apply_as='DATA', modifier="Subsurf")
+
+ #Adds smooth shading
+ bpy.ops.object.shade_smooth()
+
+ #Change to Editmode
+ bpy.ops.object.editmode_toggle()
+
+ #Selects cube in Editmode
+ bpy.ops.mesh.select_all(action='TOGGLE')
+
+ #Adds transform "To Sphere"
+ bpy.ops.transform.tosphere(value=1)
+
+ #Change to Objectmode
+ bpy.ops.object.editmode_toggle()
+
+ #Scales Object to 2.0 Units
+ bpy.ops.transform.resize(value=(1.15525, 1.15525, 1.15525), constraint_axis=(False, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1, snap=False, snap_target='CLOSEST', snap_point=(0, 0, 0), snap_align=False, snap_normal=(0, 0, 0), release_confirm=False)
+
+ #Applys location, rotation and scale data
+ bpy.ops.object.transform_apply(location=True, rotation=True, scale=True)
+
+#makes PolySphere an operator
+class AddPolySphere(bpy.types.Operator):
+
+ bl_idname = "mesh.primitive_polysphere_add"
+ bl_label = "Add PolySphere"
+ bl_options = {'REGISTER', 'UNDO'}
+
+ def execute(self, context):
+ Add_PolySphere()
+ return {'FINISHED'}
+'''
+# Register the operator
+def menu_func(self, context):
+ self.layout.operator(AddPolySphere.bl_idname, text="PolySphere", icon='PLUGIN')
+
+
+def register():
+ bpy.utils.register_module(__name__)
+ bpy.types.INFO_MT_mesh_add.append(menu_func)
+
+
+def unregister():
+ bpy.utils.unregister_module(__name__)
+ bpy.types.INFO_MT_mesh_add.remove(menu_func)
+
+if __name__ == "__main__":
+ register()
+'''
\ No newline at end of file
More information about the Bf-extensions-cvs
mailing list