[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3394] contrib/py/scripts/addons/ mesh_mextrude_plus.py: updates for api
Brendon Murphy
meta.androcto1 at gmail.com
Thu May 24 15:24:35 CEST 2012
Revision: 3394
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3394
Author: meta-androcto
Date: 2012-05-24 13:24:35 +0000 (Thu, 24 May 2012)
Log Message:
-----------
updates for api
Modified Paths:
--------------
contrib/py/scripts/addons/mesh_mextrude_plus.py
Modified: contrib/py/scripts/addons/mesh_mextrude_plus.py
===================================================================
--- contrib/py/scripts/addons/mesh_mextrude_plus.py 2012-05-24 07:26:08 UTC (rev 3393)
+++ contrib/py/scripts/addons/mesh_mextrude_plus.py 2012-05-24 13:24:35 UTC (rev 3394)
@@ -53,7 +53,7 @@
def vsca(self, r):
random.seed(self.ran + r)
return [self.sca * (1 + random.gauss(0, self.var3 / 3))] * 3
-# funcion para calcular el centro de una seleccion de vertices
+# centroide de una seleccion de vertices
def centro(ver):
vvv = [v for v in ver if v.select]
if not vvv or len(vvv) == len(ver): return ('error')
@@ -62,9 +62,9 @@
z = sum([round(v.co[2],4) for v in vvv]) / len(vvv)
return (x,y,z)
+# recuperar el estado original del objeto
def volver(obj, copia, om, msm, msv):
for i in copia: obj.data.vertices[i].select = True
- #bpy.ops.object.mode_set(mode=om) #stay in object mode...
bpy.context.tool_settings.mesh_select_mode = msm
for i in range(len(msv)):
obj.modifiers[i].show_viewport = msv[i]
@@ -181,6 +181,7 @@
if not total:
self.report({'INFO'}, 'Select one or more faces...')
return{'FINISHED'}
+
class BB(bpy.types.Operator):
bl_idname = 'object.mesh2bones'
bl_label = 'Create Armature'
@@ -190,10 +191,10 @@
numb = IntProperty(name='Max Bones', min=1, max=1000, soft_max=100, default=5, description='Max number of bones')
skip = IntProperty(name='Skip Loops', min=0, max=5, default=0, description='Skip some edges to get longer bones')
long = FloatProperty(name='Min Length', min=0.01, max=5, default=0.15, description='Discard bones shorter than this value')
- ika = BoolProperty(name='IK constraints', default=True, description='Add an Empty and a IK constraint')
- rotk = BoolProperty(name='Use rotation', default=False, description='Activate constraint rotation')
+ ika = BoolProperty(name='IK constraints', default=True, description='Add IK constraint and Empty as target')
+ rotk = BoolProperty(name='IK Rotation', default=False, description='IK constraint follows target rotation')
auto = BoolProperty(name='Auto weight', default=True, description='Auto weight and assign vertices')
- env = BoolProperty(name='Use Envelopes', default=False, description='Use envelopes instead of weights')
+ env = BoolProperty(name='Envelopes', default=False, description='Use envelopes instead of weights')
rad = FloatProperty(name='Radius', min=0.01, max=5, default=0.25, description='Envelope deform radius')
nam = StringProperty(name='', default='hueso', description='Default name for bones / groups')
@@ -220,25 +221,33 @@
def execute(self, context):
scn = bpy.context.scene
obj = bpy.context.object
- fac, ver, om = obj.data.polygons, obj.data.vertices, obj.mode
+ fac = obj.data.polygons
+ # guardar estado y seleccion
+ ver, om = obj.data.vertices, obj.mode
msm, msv = list(bpy.context.tool_settings.mesh_select_mode), []
for i in range(len(obj.modifiers)):
msv.append(obj.modifiers[i].show_viewport)
obj.modifiers[i].show_viewport = False
+ bpy.ops.object.mode_set(mode='OBJECT')
+ copia = [v.index for v in ver if v.select]
+ sel = [f.index for f in fac if f.select]
bpy.ops.object.mode_set(mode='EDIT')
bpy.context.tool_settings.mesh_select_mode = [True, False, False]
+ bpy.ops.mesh.select_all(action='DESELECT')
txt = 'Select a face or a vertex where the chain should end...'
-
- # una cadena de huesos por cara...
bpy.ops.object.mode_set(mode='OBJECT')
- copia = [v.index for v in ver if v.select]
- sel = [f.index for f in fac if f.select]
- if sel == []: sel = ['simple']
+ # crear rig unico -desde vertice/s y no desde caras-
+ if sel == []:
+ sel = ['simple']
+ for i in copia:
+ obj.data.vertices[i].select = True
+
# reciclar el rig en cada refresco...
try: scn.objects.unlink(rig)
except: pass
+ # loop de caras
for i in sel:
if sel[0] != 'simple':
for v in ver: v.select = False
@@ -341,6 +350,7 @@
return{'FINISHED'}
+
class BotonME(bpy.types.Panel):
bl_label = 'Multi Extrude Plus'
bl_space_type = 'VIEW_3D'
More information about the Bf-extensions-cvs
mailing list