Looking for a definitive, foolproof way of bending with the Simple Deform modifier

Hi Ricky.

About stretching, what I mean is : if the bent radius = the original length, then I call that “no stretching” (like a piece of paper).

About resetting transformations : my scenario is for objects oriented at an arbitrarily angle in the world but with cleanly oriented local transformations - that is to say, one axis pointing in the long direction of the model, and one axis pointing in the short direction (as shown in the earlier examples :slight_smile: )

I do not understand what you mean by “double verts group with axis = cylinder” and after. Could you explain it with a clear sentence ?

Besides that : where is a good place to ask for custom scripts/macros ? I suppose that I would be unlikely to find someone able or willing to write a custom version of the SimpleDeform modifier with axis picking (even though that would be a HUGE plus for Blender to have), but a simple script cycling through all the possible twelve axis permutations of an object + another one to orient an empty/model in 12 different orientations would be a good workaround (this would be accessible as UI buttons located in T panel, or at the press of two user-defined keyboard shortcuts).

this remind me of the UV mapping thing
2D to 3D or 3D to 2D
there will always be deformation
even if you have same length !

for the skrinkwrap
if your object his a volume you have 2 layers with different curvature radius
inside and outside
so make a verts group for each side then you can add a skrinkwrap modifier with vert group

for new Script may be in python forum
or addition to blender try to go to IRC dev channel and talk to dev on line
or try on

still not certain it can be done even with equal length !

happy bl

I see what you mean with the shrinkwrap - indeed an interesting trick to have in ones arsenal, but unfortunately not applicable here since I will not be dealing just with simple models.

About stretching and equal length : I am not sure to understand what you mean. Whether or not if fits these theoretical limitations is irrelevant, since I do know already that the behavior of the SimpleDeform/Bend modifier is exactly what I am after - only not just limited to “z+ short length / x+ long length”, which is the only thing that the modifier can currently deal with.

I’ll poke around the Python forum. No idea how they’ll react to a request over there ! StackExchange seems like a good place too, thanks for the recommendation.

if you find something let us know
would like to know if it can be done

happy bl

Will do without a doubt ! And I am also posting the brief here.

For those just catching this thread, I am looking for the following : a script cycling through all possible permutations of the local rotation transformation of the selected object, in increments of 90 degrees around each axis.

http://i.imgur.com/z5Ym463.gif

If possible, the preferred first permutations would be :

Permutation 1
+X >> +X
+Y >> +Z
+Z >> -Y

Permutation 2
+X >> -Z
+Y >> +Y
+Z >> +X

It should be possible to launch the script through a keyboard keypress (not predefined - the user should be free to assign a custom key from the preferences/input menu), pressed repeatedly until the desired permutation is reached. No T/N panel integration required. It should work on a object oriented freely in space (that is to say, with no relation to the world orientation).

Thanks !

no offense devs but some things in blender just don’t make any sense. the curver modifier and the “”"“simple”""" Deform modifier

they work but it’s just such a pain compared to say… C4D or 3ds max, the same 3ds max which everyone in this forum says is the anti christ of 3d software.

@fdfxd : Yes, but we are very close to fixing that issue :slight_smile: The axis permutations workflow would make it totally usable. Crossing fingers.

There is some stretching there – it’s more like the imaginary center (between the two main faces) isn’t stretching at all. But the inside is getting a bit shorter, and the outside a bit longer. (For what it’s worth.)

This is an interesting question. For this kind of movement I tend to use an armature, as it allows me to avoid stretching (like when bending paper, for instance). Are you using an armature for this animation?

From what I understand (which is very little), deformers create their deformations within the bounding box where the object resides, rather than on the surfaces themselves. If that’s the case I don’t see how you could avoid stretching. But again, I’m probably misunderstanding, and not seeing something :).

Edit: wasn’t there an animation here just a minute ago? Where did it go? I’m waaaaay behind on this thread, I think…

Edit mode, Mirror local x/y/z and recalculate normals.
Example: local mirror x axis
bpy.ops.transform.mirror(constraint_axis=(True, False, False), constraint_orientation=‘LOCAL’)

I really hope you can get someone to fix this so that using an empty won’t be necessary - the “simple” deform is the most frustrating modifier in Blender. In Carrara, which is nowhere near as sophisticated as Blender, you simply select your axis(local) and choose the angle.

@benu : yes, I am not arguing that there is no stretching ; I am satisfied with the way the actual bending operates. The discussion about stretching is actually not really relevant to this topic to begin with - it just emerged from a misunderstanding in earlier posts :slight_smile:

@JuhaW : Interesting ! That sounds like a good way to cover some permutations. Unfortunately I dont think it would cover all of them since I also need to swap each axis the others (as seen in the first two permutations detailed earlier). It looks like you are on the right track though !!

@Roygee : if someone manages to write a script like the one detailed above in the monkey head example, then an empty would only be needed for double curvatures. For a simple bend the process would be to apply the Simple Deform/Bend modifier, give it a value, and then press the button/keyboard shortcut to cycle through the axis permutations until the proper one is reached.

Still crossing fingers !

Yeah @eppo, that’s exactly the core need - being able to pick the main axis of deformation. Unfortunately I don’t see that happening any time soon since it has been needed and requested for years and never got implemented … hence the workaround based on axis permutations :slight_smile:

3 buttons (x,y,z) for edit mode local rotate 90 degrees steps, I think that covers all.

might be possible with small script to use simple modifier as per GLOBAL AXIS
then rotate it again function of other angle in panel X Y Z

what do you think ?

happy bl

working on a small script to try to do it with simple bend modifier

but several constraints to be respected here

like

1- ob must be subdivided or won’t bent

2 - you want to bend around any axis of ob ?
simple modifier does this with z axis only !

3 - gone use some simple Euler angles
which might lead to some gimbal lock if not careful

4 - may not work if parented !

give me your feedback

salut

I like the very straightforward way you think. This is definitely a much better solution than iterating through a list of permutations : it would only require three buttons, it would cover all possible permutations, and could even allow one to reach the desired one more quickly. That’s much more elegant, and potentially useful for other needs to. If I am following you correctly the interface would be as follows :

One remark : you mention Edit mode, but i think this should work straight from Object mode in order to reduce user involvement as much as possible. For instance, in the case of X the scenario would be :

  • user is in object mode
  • user invokes the tool (either through a keyboard key or a UI button)
  • the popup shows up, asking for which axis to rotate around
  • the user clicks the desired button (X for instance). The tool then does all the following at once :
    — the script enters edit mode
    — the script selects all components, and rotate them 90 degrees around the local X axis of the object, centered around the object origin (not the center of mass)
    — the script exits edit mode, goes to object mode
    — the script rotates the object 90 degrees in the opposite direction around the local X axis, centered around the object origin.
  • if the user is not satisfied with the new orientation of the local axis, he/she can keep on clicking any of the buttons
  • if the user is satisfied, moving the mouse away from the popup closes it.

@Ricky : oh, that’s awesome to hear ! I am really glad to see that other users see the potential use of this. Not sure what you mean about the global axis though, since the whole point of this tool proposal is to not have any reliance on the world orientation. Not sure what you mean about subdivided models either, I don’t see why that would be a requisite ? As for the Z axis limitation of the Simple Deform modifier : yes indeed, that’s precisely the point of this thread :slight_smile: Since the Simple Deform modifier can only bend predictably for 1 out of many, many possible axis orientations, I am focusing my research on exactly that : trying to find a way to edit the orientation of the local axis of a model very easily and with only a few clicks.

Try this script if it works: http://www.pasteall.org/65187/python

Is this to be run from the Text Editor, or to be installed as an addon ? I tried both but did not see a panel appear - neither as a T panel tab, or as a T panel submenu …

Run from text editor and its in T-panel under Misc tab.

Got it ! It was there indeed, just didn’t think of looking there.

Okay, this is huge already ! it does the “internal rotation” perfectly well, and even when mindlessly clicking at random on the XYZ buttons (which is why I would think most users would do :D), finding the correct one for the bend to look right is super easy.

Questions :

  • What does the “reset values” button does ?
  • At the moment I see that the center of rotation is based on the “Pivot point” setting currently active (center of mass, 3d cursor, and so on) - would it be possible to make it use the origin of the object instead ?
  • Do you think that also “counter rotating” the model is something that would be eventually possible ?
  • Can such a panel also hold text areas ? If yes I’ll gladly provide a little write-up explaining what the tool does, that we could insert there.
  • Regarding the subpanel location : I quite like the idea of it showing up under misc … but could a variant be possible, showing up under “Tools” ? My reasoning behind this is simply the fact that the “Simple Align” add-on goes there too.

Man … thanks a ton for taking the time to help with this. It might not sound like much feature-wise, but for artists used to non-destructive modeling workflows, being able to freely bend models in space is a huge, huge deal.