I recently discovered Chris' wonderful plugin, SketchyFFD, and was amazed at it's potential! Chris was looking for some help with updating the code, so I took a shot at it.
Update 9 Feb 2010
I've been working hard on updating the code to be more efficient and to address some bugs. As a result, performance has again improved! The plugin also handles group transformations much better now.
Note that if you create a group of items to deform (deformation group) and create an FFD, then transform the deformation group(e.g., rotate, scale, move), you should NOT transform the FFD as well. It will work relative to the deformation group's original size/orientation. If you want you can create a new FFD and it will align with the deformation group correctly. I'm working on an enhancement for this.
I became interested in this plugin to create an aircraft model. The fuselage is made up of compound curves. Using SketchyFFD, FredoScale and the Dome shape from the Shapes plugin, I was quickly able to create this:
Velocity.jpg
9 Feb 2010 Change Log:
updated handling of group transforms to address issues when the deformation group was modified
updated handling of the local origin
multiple performance improvements
4 Feb 2010 Change Log:
Fixed issues with Control Point groups and Subdivisions sometimes being out of position
Added feature that combines move and transform into one operation so it can be undone all at once
Disabled screen refreshes during heavy operations to improve performance
Additional performance improvements
Fixed bug where control group sizes could not be changed or where all dimensions had to be equal
I would appreciate your feedback on how the new version is working!
Well, after trying it I think I'll continue working on SketchyFFD. Control Points has some nice features, but I don't think SketchyFFD redundant, and I'm working on some new features that will widen the gap further.
Your update apparently only works in Sketchup 7. What about SU6? Yeah, I know it will eventually be obsolete. However, SU6pro is what I have at the office, and don't know when we will be upgrading. By the way, it seems to work very well in SU7 free. Thank you for your hard work. This is an excellent tool that mimics Lattice Deformation without the lattice. And, I believe FFD is unique enough to warrant continued support whether Control Points by Kirill is finally finished or not. I seem to have problems making that one work.
0
I take the slow, deliberate approach in my aimless wandering.
i would suggest that since there is a free version of 7, and it can save as ver6 for pro owners, that there seems no reason to ask script writers to waste precious development time on a previous version. if any of you are stuck to ver6 maybe the inconvenience should be to you.
0
“There are three classes of people: those who see. Those who see when they are shown. Those who do not see.”
wow, Glenn! this new version is flying! speed wise you took that script to a whole new level
I created a box with 10x5x5 subdivisions first to try it. and changes to the geometry were instantaneous! then I tried to push it a bit more and created a sphere from a 96 edges circle (more than 13.000 edges and faces). first deformation took about two seconds; and between 0.5 and 1 second after that. I am absolutely amazed. thank you very much for this!
Jakob
PS: just in case you don't know what to do now... how about deforming nested groups
[Edit] PPS: and if making it compatible with SU6 takes any of that speed improvement away again, don't you dare do it!
Can anyone give my a clue to improve my ability to select the control points when using FFD? I don't use the plugin much and always found it hard - now with the latest update it's nearly impossible.
Currently I invoke the plugin from the context menu when I have created a group from the stuff to be deformed, then try to select control points but the only way I can do this is by editing the group of control points having first selected the FFD Control points group in the Outliner but when I do that an move a control point, the group I am trying to deform stays unchanged.
Occasionally, I am able to grab a control point and manipulate it successfully after double clicking here and there but it's about a 1% success ratio and I don't know what I did to make it work on those occasions!
Unfortunately, the control points still remain greyed out. If I select the control points group (easiest to do in the Outliner) then I can select individual points easily enough but moving them produces no deformation of the group I am trying to deform. The points themselves move and produce a larger bounding box for the control points group but that is all.
your underlying geometry also has to be divided to allow it to deform. example: if you create a cylinder and make a 3x3 FFD, when you move the middle (vertically) points, nothing happens. try playing with a sphere first, it has lots of geometry so can be deformed easily.
i can't help you with selection problems though, i have this problem myself when i use the profile builder plugin.
0
“There are three classes of people: those who see. Those who see when they are shown. Those who do not see.”
it sounds to me as if you aren't always within the group of the control points. using the outliner to edit the group is a good idea. make sure you are really in the control vertex group (the control points are dark black, the rest of the model is greyed out). then use selection frame to select points and then move them). and yes, subdivision is necessary. the more divisions the smoother the geometry
Well, I spent some time today exploring two things: SU6 support and nested groups.
SU6 support is possible, but would require quite a bit of coding. Basically I would have to check the version then code around the SU7 enhancements. Are many interested in SU6 support?
Nested groups, however, is very exciting! I'm looking into ways to handle this, along with some other features that compliment it.
Please post your feature requests, and perhaps I can add them into the enhancements I'm working on!
Thanks to all who posted feedback. It really helps to know how the plugin is working. I hope more users will respond with candid feedback so I can continue to improve SketchyFFD.
Thanks for the suggestion about subdivision and the sphere - I can make that work. However, an extruded rectangle which I then subdivide first into lots of triangles doesn't work at all. A rectangular extrusion divided into quads works somewhat.
Think I shall stick to SDS and the control points plugin.
about SU6 support: if it really is a lot of work I would leave it. as xrok1 said,there is a free version of SU7 that can actually save to SU6 file format. so if someone really needed to use the plugin, he could allways go that route.
now about suggestions:
- I think it is time move FFD away from a context click menu to a toolbar. why? well, I think the context menu should always stay as compact as possible and in probably 90% of cases, when I right click a group, I don't want to use FFD. its a whole different matter, if you actually right click a FFD-array group. then fire away with context menus!
- we already mentioned the nested groups. whats the best approach for that? I guess geometry within the nested groups should behave just like they weren't nested at all (no idea how to code that though )
- now I am going a bit far: imagine having - as a second method to use the tool - a dialog box, where you can choose predefined operations from a list (twist, bend, squeeze...) and then adjust their parameters (which either results in the change instantly or you have to press an 'apply' button to do the changes without leaving the window). you can apply more than one of those deformators to an object, while the order of these manipulations will affect the outcome. the tricky thing here is to figure out, how to apply several deformators to the object. is it best do apply them one after the other? (big processing effort if you change the first deformator, because all the following deformators have to be recalculated) or is there a better, faste way?
sorry, I am fantasizing away here and probably don't make any sense at all. have to catch a flight to Germany now, but will try to make some images demonstrating my ideas soon...
mitcorb wrote:Please do what is best for the community of SU users, reference my previous post. With respect
Thanks, as I said if there is enough interest I would consider it.
jason_maranto wrote:Auto subdivide, something along the lines of what Fredo has in his FredoScale plugin would definately add alot of functionality to this plugin.
OK, but how do you decide when/how much to subdivide? There are times when I want to just deform what I have, and others when I want to add some detail, but not too much. Perhaps a dialog?
The way I do it now is by using either FFD subdivide or other tools, then use FFD and other tools to manipulate the shape. By the way, have you tried using other tools to manipulate the FFD control points themselves? For example, open the FFD control points group, select multiple points, then use scale to make changes to the position of the selection.
plot-paris wrote:I think it is time move FFD away from a context click menu to a toolbar
I agree.
plot-paris wrote:- we already mentioned the nested groups. whats the best approach for that? I guess geometry within the nested groups should behave just like they weren't nested at all
I was thinking that as well, and plan to add this feature soon.
plot-paris wrote:- now I am going a bit far: imagine having - as a second method to use the tool - a dialog box, where you can choose predefined operations from a list (twist, bend, squeeze...) and then adjust their parameters (which either results in the change instantly or you have to press an 'apply' button to do the changes without leaving the window). you can apply more than one of those deformators to an object, while the order of these manipulations will affect the outcome.
Is that all you want, piece of cake! Seriously, I working on some changes that will allow a degree of multiple deformations. The first step will be to allow for multiple FFD control points groups at once. In the future, maybe it will be closer to what you suggest, stay tuned.
chrisjk wrote:Thanks for the suggestion about subdivision and the sphere - I can make that work. However, an extruded rectangle which I then subdivide first into lots of triangles doesn't work at all. A rectangular extrusion divided into quads works somewhat.
Sorry you're having trouble. Can you post a sample so I can take a look at it?
Also, checkout the video I just posted at the top of the thread.
OK, but how do you decide when/how much to subdivide?
i think a good start would be to add 1 vert for each FFD point. so if you FFDed a cube you would end up with a cube with a division at the corners and center points of each side and the center point of each face.
0
“There are three classes of people: those who see. Those who see when they are shown. Those who do not see.”