Rope molding

Next
 From:  jpaluck
4611.1 
I recently needed to make some rope..I used quads because I couldn't exactly rap my head around how to do it in Moi..with poyl's I just extruded a cylinder copy and pasted 6 times in an array around the first then used the twist deformer...then the lightbulb went off with moi..draw out a helix then sweep with a circle profile, circle array count 8..cut in half done. I did this very quick so things aren't centered etc but hope it helps someone else out.

Michael - It would be nice to have the basic deformers like bend and twist..I know you said you going to put them in sometime..maybe V3?





  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
4611.2 In reply to 4611.1 
Hi jpaluck,

> Michael - It would be nice to have the basic deformers like bend and twist..I know
> you said you going to put them in sometime..maybe V3?

Bend is now possible in v3 by using the new Transform > Deform > Flow command.

You draw one line down the middle of your object as the base backbone curve, and then draw an arc or other bendy curve for the target, then you can use Flow to transform from one backbone to the other. In the first v3 beta there is a bug where the curves need to be drawn in the top view (curves in the world x/y plane) for curve-to-curve based flow to work currently though, so keep that in mind.

I am also working on a twist command as well.

Another way to produce a twisted result is to make a base profile curve and use Transform > Array > Circular to replicate it with a rotation and step applied, then loft through the set of curves that are produced, see here for an example:

http://moi3d.com/forum/index.php?webtag=MOI&msg=4464.12

Using the same technique from the link above for your case would look something like this:

Start with one circle off to the side:



Run Transform > Array > Circular to replicate that around the center point:



Select all those circles and run Construct > Boolean > Union to combine them all together trimming away the interior parts:



The inside portion of that won't be used so you can just delete it.

That then leaves you with the profile curve - select it and replicate it using Transform > Array > Circular again, but this time use a lot more steps and also set the "Vertical step" parameter so that each rotated copy also takes a step upwards, that will make a pattern like this:




You can now select all those curves and generate an object through them by using Construct > Loft, that will make this result:




This technique makes really good geometry - for braided things like this which don't have any interruptions in them it may be better to do it this way than using Twist even when twist is available.

Twist will be more general purpose modifier and will be able to twist something with holes in it or stuff like that but if you just want a straight piece, this current technique is probably the way to go.

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
4611.3 In reply to 4611.1 
Then here's an example of how to bend it - for the current v3 beta you need to place your object down flat in the world x/y plane for this one to work, that's a bug that is fixed for the next v3 beta which I hope to have out pretty soon.

But for now, put your object down in the world x/y plane, and draw a base line running down the middle of it, and have a separate bendy target curve to the side of it, in whatever shape you want to have the final result, you can draw an arc or any kind of curve for that target, like this:




Now to generate the bend, select your object then run the new Transform > Deform > Flow command - at the first prompt which says "Select base curve or surface", select that base line running right through the middle of the shape. Then at the second prompt for selecting the target curve, select the bendy one over on the side. That will generate a bendy result like so:






So actually the tools for generating twisty and bendy stuff like you want here are already in the current v3 beta release! :)

The nice thing about the Flow command is that it allows you to bend your object around any kind of curve that you draw - if you want something bent in a circular shape then just draw an arc as the target curve. This makes Flow to be much more general purpose and more powerful than a more limited Bend command would be able to do.

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  jpaluck
4611.4 
WOW..very cool..had no idea the flow command did that..More ideas..thanks a lot for the breakdown..and yes I can see how that is going to be way more powerful than a simple bend deformer
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  jpaluck
4611.5 
Michael

Starting playing with your examples..your way is awsome to "twist" things with the array step etc...My question for you the flow command..how to you get the Target Object to flow exactly the legnth of the projected curve?..been playing with a helix flat..kept changing the legnth of the object but can never get it exact...what am I missing? Guess during technical drawing many many years ago I should have been and class more and not out back smokn cigs and other things ;)

Thanks for all you help Michael



  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
4611.6 In reply to 4611.5 
Hi jpaluck - basically flow will map the same relationship your object has to the line on to the new curve.

So if you have some margin area like the line sticking out past the end of the object by some bit, you will have a corresponding margin on the target curve.

To avoid that, reposition your line so that it is ending flush with your object, then the object will have the same relation flush to the target curve as well.

Also in your example model, you've got your object pointing upwards - remember I wrote previously in this thread that there's a bug you can run into currently unless you've got both curves to use in Flow positioned to be down in the world x/y plane - so if you run into a problem try rotating your currently vertical object and line 90 degrees down so that it is in the world x/y plane. The bug actually does not seem to be kicking in for this particular case though anyway.

Another thing is that you generally want to have the line traverse the entire length of your object - if you select your line, you can see that you've only got it going partway along the object and not all the way:



Think of the line as if it was the "spinal column" of your object - a spinal column should run the entire length of the object, not just sticking a little ways through it.

Then the result of flow is that it remaps your object on to a different spinal column, with the new deformed object being in relation to the new spine the same as it relates to the base spine.

There are also 2 different modes for curve-to-curve flow - the default mode maps "distance traveled along base spine" to the same distance traveled along the target spine.

The other mode is matching "percentage of curve length traveled along base spine" to percentage along the other one - that's controlled by the "Stretch" checkbox which is one of the options that you can turn on or off in the final stage of the Flow command.


It sounds like you want to map your object to fit within the entire length of the target curve, so to do that make sure your base line is traversing the entire length of the object instead of only sticking halfway through it, and then set the "Stretch" option so that the line will be mapped to the entire length of the target curve.

Does that help? Please let me know if you are still stuck.

- Michael
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
4611.7 In reply to 4611.6 
Made some rope, adapted from a solidworks tutorial, which used sweep with a twist command.
In MoI, used sweep, then followed with twist command for 3 turns = 1080 degrees.
The outer cable of 6 ropes used the twist command again, with 1.5 turns = 540 degrees.
The second picture shows the result using the "surface" of the rope, without using all of the individual strands, which yielsd a smaller file size.
The two "starter" 3dm files just have two versions of the 2d profile, and path line.





EDITED: 10 Aug 2013 by BEMFARMER


  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Mike K4ICY (MAJIKMIKE)
4611.8 In reply to 4611.7 
RIGHT ON Bemfarmer! I see you have mastered the "Twist-Flow-Twist" technique... ;-)

Very nice rope simulation.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Bdaniel (BRAZZ)
4611.9 In reply to 4611.8 
pretty cool indeed.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  wastzzz
4611.10 
Many polys on export! :( probably i would make a texture for the small details
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
 From:  Michael Gibson
4611.11 In reply to 4611.10 
Hi Max,

> Many polys on export! :( probably i would make a texture for the small details

A texture is definitely going to be a lot more efficient. But it's often difficult for a texture to look 100% the same as real geometry especially if you are going to be zoomed in at all. If it's going to only be a tiny thing on the screen then a texture instead can work well though.

There are techniques you can use on the rendering side to start with high res geometry like this, then create a normal map from that which then is applied to a low res mesh. That usually does a good job but for that method you need to start with an initial detailed high res mesh.

If you're just doing a still rendering and not making game assets, it's not really so much of a concern to have a lot of polygons on export these days - renderers are much more able to handle high poly counts than say 20 years ago.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All