Quick way to do Mesh Deform (as in 3dsmax, FFD Modifier)

Hi Blender Community !

Is I understand it now, the Mesh Deform works a bit more tedious as the FFD Modifier in 3dsmax.
3dsmax => Select target vertices you want to deform => apply FFD => change to the FFD sublevel => transform FFD to deform your vert selection. done !

Blender => create a new Box serving as Lattice => (Subdivide the Box for more handles/lattice points if necessary) => apply a Mesh Deform modifier to your target Object => Link the previous created Lattice Box in the “Object”-field => Link the vert selection Set => change back to the Lattice Box => transform lattice Box to deform your target object. done !

additional problems : The Meshdeform box is never perfectly aligned with the target. This means whenever I transform the right most outer boundaries of the Meshdeform box, the left most boundaries of the target mesh move slightly too.
This can lead to some nasty caps.
When I go beyond the precision of 5, Blender v2.77 will crash eventually.

Is there already a Plugin for a better Mesh Deform ? Is there a better alternative somewhere ?

My thread was originally posted yesterday, but since im a new member I need to wait for authorization,
so sry if this post will come in late and you already answered to my newb question !

Well, I already gobbled together a little script myself after I found out that you can set the blending mode to “linear”,
in a lattice.
Its very crude but does its job:

Put this* in the TextEditor => select an object you want to put a 3x3 lattice on (in objectmode) => Run Script

import bpy
from mathutils import Vector

iterations = 3
pos = (0,0,0)
size = (0,0,0)

bpy.ops.object.transform_apply(location=True, rotation=True, scale=True)
obj = bpy.context.active_object

centre = sum((Vector(b) for b in obj.bound_box), Vector())
centre /= 8
pos = centre + obj.location
size = obj.dimensions

#for obj in bpy.context.selected_objects:
#    pos = obj.location
#for obj in bpy.context.selected_objects:
#    size = obj.dimensions

bpy.ops.object.add(type='LATTICE', view_align=False, enter_editmode=True, location=pos, layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))

bpy.context.object.data.interpolation_type_u = 'KEY_LINEAR'
bpy.context.object.data.interpolation_type_v = 'KEY_LINEAR'
bpy.context.object.data.interpolation_type_w = 'KEY_LINEAR'

bpy.context.object.data.points_u = iterations
bpy.context.object.data.points_v = iterations
bpy.context.object.data.points_w = iterations

lat = bpy.context.active_object
lat.dimensions = size

latmod = obj.modifiers.new('Lattice','LATTICE')
latmod.object = lat

This Script does no error catching or anything - very primitive.

So basically my question remains: Is there already a good version of this out there somewhere ? (fast FFD)

Or can I make a proper Plugin out of this with added features ?

Hi rbx775


Hey Dito !

It works well but its a bit unhandy tbh.
I guess I can modify it for my needs !
Thank you very much !

That’s right.

A entry in the Toolbar would be nice.