[Plugin] SketchyFFD (Classic)
-
@dave r said:
Very cool script. Thank you.
I do seem to being doing something wrong with it though. (Leave it to me to break it. ) See the attached screen grab.
I drew a sphere centered on the blue axis and above the ground plane. After moving a single point marked at the top and updating, the egg moved off to where it is now. What did I do wrong?
[attachment=0:wa4rvigs]<!-- ia0 -->FFD1.JPG<!-- ia0 -->[/attachment:wa4rvigs]It looks like you did a "Update FFD" without first closing the control point group.
Chris
-
Yup. That's what I did alright.
Thanks for the help.
Dave
-
Coen's post makes me ask, is there anyway to make this work on a component instead of or in addition to a group?
-
Where's the "dope slap" smilie?
I was doing it in reverse, trying to make a group of a components. Thanks Coen. I gotta think inside the box.
-
@unknownuser said:
You're welcome Dave!
What's a dope slap though?
Also, I have been experimenting more with this script. I had an idea to position the cloned Construction Points along a series of curved Edges that you usually see used on Soap Skin Bubble examples, but I haven't been successful. I am trying to see (and would like Chris to shed some light on this) if the Construction Points have coordinates assigned to them. What I mean is that if I clone the Construction Points from the top and use them in the bottom will this distort the FFD? Should I therefor use the top ones? Well I tested this and it does seem so that there are coordinates assigned to them because by running two tests, one with using the Construction Points from above and the other test by using the bottom ones, and the result were different. The second test is what you see below, which brings me to another point - it is interesting to see what kind of curvy geometry you can create with this script, cloning Construction Points and positioning them. I hope I can find a way to understand how to exactly control them so it becomes easy to make any kind of curved geometry I had hoped to create in the first place.
As it is currently written it creates the construction points at fixed points and then weights the model based on that initial position. I am actually surprised that coping the construction points works at all.
I think what you are asking for is: Take this mesh and start FFD with this group of arbitrary positioned control points. That should be possible and probably not to difficult.
But you would have to be careful. When you start a FFD it creates a table of weights for each construction point with 3 floats per vertex in the group to deform.
So if you have a mesh with 1000 verts and a 3x3 set of control points:
3x3x3=27 control points
2710003=81,000 floatsWhen you update it loops through each vertex and calculates how much to move it based on the weighted changes in the control point. So the more control points you have the slower it is.
In your picture it looks like you have 9x9x3 control points. That comes to 729,000 floats. It would be really really slow to deform.
Chris
-
I'd take "really really slow" over "no such function at all" any day.
-
I think its pretty clear what he means.
He much rather have a slow tool that does what he wants then not having that tool at all. -
@unknownuser said:
The example in the pic takes a few seconds to deform.
So do the points placed actually have different coordinates assigned to them? That's what I was asking in my previous post. I find it kinda hard to explain, I hope you know what I mean.
Yes they do. Each construction point has its original position stored in an attribute. Thats how I know how far the point moved. But that is only 1/2 the equation. You also need the pre-calculated weight. That is what is missing when you copy a control point. Its that quick because it doesn't have all the calculated weights to process.
If you want to try it with more control points do this:
-Select the group you want to deform.
-Open the ruby console and enter the following line:startFFD(Sketchup.active_model.selection[0],7.0)
That will create a 8x8 control grid (8-1=7.0). Delete the points you don't intend to move to make it a bit faster.
-
I made a new version that has a NxN FFD. That means you can select how many control points there are in each direction. It isn't as slow as I expected.
Here is a 12x12x2. I am playing back my undo buffer so it looks faster than it is.
Ill post it once I fix a bug or two.
Just when I thought I was out they pull me back in.
Chris -
@unknownuser said:
@unknownuser said:
I'd take "really really slow" over "no such function at all" any day.
Juju, I find your replies are often cryptic. What's the bottom line?
@pixero said:
I think its pretty clear what he means.
He much rather have a slow tool that does what he wants then not having that tool at all.Exactly! Thanks for clearing that up for me.
-
Can't wait to play with this, Chris, thank you from the bottom of my heart... been wishing for this for a loooong time.
-
This version supports NxN deforms. But more importantly it updates the mesh automatically when you move control points. That makes it a lot more usable.
Also added status text progress when it is weighing and deforming the mesh.
Making a curling wave with a 13x13x2 FFD.
See the PluginStore for the download...
-
cheers for the update chris, this will make an already powerful tool all the better.
-
Thank you Chris!!!
The Update FFD is obsolete nowDaniel S
-
-
Impressive, organic modelling did take a grand leap! Just if there where nice tool for subdivision surface... pokes Whaat
-
Great job! The auto update is very nice. But I have one problem... If I create a flat piece of geometry similar to your wave demo, then strange things happen. After moving a control point the geometry disappears and the camera goes nuts. It sticks me in an over-head view, miles away from the control points. After a zoom extents I can tell that the geometry is still there and is selectable, but not visible. Turning on hidden geometry doesn't help and any attempt to zoom in or out puts me back over-head at a great distance from the points. It seems to work great on geometry with thickness. Any help is appreciated and thanks again for the wonderful script!
Edit:
After looking back at your wave demo, I noticed that you have a vertical edge at one corner of the mesh to give it thickness and I assume that you have deleted the control points from the bottom also. I tried this and it works just fine. So thanks again for the script!
-
this is awsome for cars,until finding this i had on my car square from now i won t have any square,just litle mouvement with mouse and all is fine,,,,thank u very much
-
Here i attach a video using FFD like a twist tool...
it would be easy to make this automatic with ruby?
i mean.. to set the center of rotation (like in TIGΒ΄s Grow.rb) and the rotation angle.Daniel S
-
Wow! This has now officially crossed the line from 'pretty darned impressive' to "stunning".
Thank you for sharing this with the community.
Ampa
Advertisement