Post #355: Hi roaoao, I need to add this options from Wazou´s PMs:
📋 Metadata
- Author: Leafar
- Date: 2016-09-27 03:31:32
- Type:
feature_request - Quality Score: 6/10
- Reply to: post_00354
- Replies (1): post_00356
🏷️ Tags
macro custom-operators advanced unsolved
⚙️ Related PME Features
- Macro Editor
- Python Scripting
💬 Content
Hi roaoao, I need to add this options from Wazou´s PMs:
#####################
# Align To 0 #
#####################
#Align to X - 0
class AlignToX0(bpy.types.Operator):
bl_idname = "align.2x0"
bl_label = "Align To X-0"
bl_options = {'REGISTER', 'UNDO'}
def execute(self, context):
bpy.ops.object.mode_set(mode = 'OBJECT')
for vert in bpy.context.object.data.vertices:
if vert.select:
vert.co[0] = 0
bpy.ops.object.editmode_toggle()
return {'FINISHED'}
#Align to Y - 0
class AlignToY0(bpy.types.Operator):
bl_idname = "align.2y0"
bl_label = "Align To Y-0"
bl_options = {'REGISTER', 'UNDO'}
def execute(self, context):
bpy.ops.object.mode_set(mode = 'OBJECT')
for vert in bpy.context.object.data.vertices:
if vert.select:
vert.co[1] = 0
bpy.ops.object.editmode_toggle()
return {'FINISHED'}
#Align to Z - 0
class AlignToZ0(bpy.types.Operator):
bl_idname = "align.2z0"
bl_label = "Align To Z-0"
bl_options = {'REGISTER', 'UNDO'}
def execute(self, context):
bpy.ops.object.mode_set(mode = 'OBJECT')
for vert in bpy.context.object.data.vertices:
if vert.select:
vert.co[2] = 0
bpy.ops.object.editmode_toggle()
return {'FINISHED'}
#Align X Left
class AlignXLeft(bpy.types.Operator):
bl_idname = "alignx.left"
bl_label = "Align X Left"
bl_options = {'REGISTER', 'UNDO'}
def execute(self, context):
bpy.ops.object.mode_set(mode='OBJECT')
count = 0
axe = 0
for vert in bpy.context.object.data.vertices:
if vert.select:
if count == 0:
max = vert.co[axe]
count += 1
continue
count += 1
if vert.co[axe] < max:
max = vert.co[axe]
bpy.ops.object.mode_set(mode='OBJECT')
for vert in bpy.context.object.data.vertices:
if vert.select:
vert.co[axe] = max
bpy.ops.object.mode_set(mode='EDIT')
return {'FINISHED'}
#Align X Right
class AlignXRight(bpy.types.Operator):
bl_idname = "alignx.right"
bl_label = "Align X Right"
def execute(self, context):
bpy.ops.object.mode_set(mode='OBJECT')
count = 0
axe = 0
for vert in bpy.context.object.data.vertices:
if vert.select:
if count == 0:
max = vert.co[axe]
count += 1
continue
count += 1
if vert.co[axe] > max:
max = vert.co[axe]
bpy.ops.object.mode_set(mode='OBJECT')
for vert in bpy.context.object.data.vertices:
if vert.select:
vert.co[axe] = max
bpy.ops.object.mode_set(mode='EDIT')
return {'FINISHED'}
#Align Y Back
class AlignYBack(bpy.types.Operator):
bl_idname = "aligny.back"
bl_label = "Align Y back"
bl_options = {'REGISTER', 'UNDO'}
def execute(self, context):
bpy.ops.object.mode_set(mode='OBJECT')
count = 0
axe = 1
for vert in bpy.context.object.data.vertices:
if vert.select:
if count == 0:
max = vert.co[axe]
count += 1
continue
count += 1
if vert.co[axe] > max:
max = vert.co[axe]
bpy.ops.object.mode_set(mode='OBJECT')
for vert in bpy.context.object.data.vertices:
if vert.select:
vert.co[axe] = max
bpy.ops.object.mode_set(mode='EDIT')
return {'FINISHED'}
#Align Y Front
class AlignYFront(bpy.types.Operator):
bl_idname = "aligny.front"
bl_label = "Align Y Front"
bl_options = {'REGISTER', 'UNDO'}
def execute(self, context):
bpy.ops.object.mode_set(mode='OBJECT')
count = 0
axe = 1
for vert in bpy.context.object.data.vertices:
if vert.select:
if count == 0:
max = vert.co[axe]
count += 1
continue
count += 1
if vert.co[axe] < max:
max = vert.co[axe]
bpy.ops.object.mode_set(mode='OBJECT')
for vert in bpy.context.object.data.vertices:
if vert.select:
vert.co[axe] = max
bpy.ops.object.mode_set(mode='EDIT')
return {'FINISHED'}
#Align Z Top
class AlignZTop(bpy.types.Operator):
bl_idname = "alignz.top"
bl_label = "Align Z Top"
bl_options = {'REGISTER', 'UNDO'}
def execute(self, context):
bpy.ops.object.mode_set(mode='OBJECT')
count = 0
axe = 2
for vert in bpy.context.object.data.vertices:
if vert.select:
if count == 0:
max = vert.co[axe]
count += 1
continue
count += 1
if vert.co[axe] > max:
max = vert.co[axe]
bpy.ops.object.mode_set(mode='OBJECT')
for vert in bpy.context.object.data.vertices:
if vert.select:
vert.co[axe] = max
bpy.ops.object.mode_set(mode='EDIT')
return {'FINISHED'}
#Align Z Bottom
class AlignZBottom(bpy.types.Operator):
bl_idname = "alignz.bottom"
bl_label = "Align Z Bottom"
bl_options = {'REGISTER', 'UNDO'}
def execute(self, context):
bpy.ops.object.mode_set(mode='OBJECT')
count = 0
axe = 2
for vert in bpy.context.object.data.vertices:
if vert.select:
if count == 0:
max = vert.co[axe]
count += 1
continue
count += 1
if vert.co[axe] < max:
max = vert.co[axe]
bpy.ops.object.mode_set(mode='OBJECT')
for vert in bpy.context.object.data.vertices:
if vert.select:
vert.co[axe] = max
bpy.ops.object.mode_set(mode='EDIT')
return {'FINISHED'}
Thanks in advance!
PD: SERIOUSLY, the Blender Institute should buy this addon to add it into trunk. I don´t need it, I already have it but this addon improves Blender in so many ways that everyone should have access to it! Think about it!!!