helix

Next
 From:  Morten (RUMLAB)
3447.1 
Hi all.

I'm trying to combined several helices, but one thing is troubleling me:

When a helix with few turns are made, it looses tangency to the start and end radial circle (see att.)

Why is this?

Morten
Image Attachments:
Size: 42.6 KB, Downloaded: 20 times, Dimensions: 824x523px
  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:  steve (STEVE_HOME)
3447.2 In reply to 3447.1 
Hi Morten,

If I understand your question correctly, then neither of those 2d Helix are actually tangent. The more turns you have, then the more it will appear to be tangent, but no tangency is made due to the way the 2d Helix moves in/out from the actual circle.

To help show that. I have drawn 2 circles and placed an Helix, the first with 3 turns, the second with one turn.



The circles are in blue. The Helix in black. The green lines are tangent to the circle at the intersection of the circle/helix. The red lines are tangent to the helix at that same intersection.


- Steve

EDITED: 4 Apr 2010 by STEVE_HOME

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:  Michael Gibson
3447.3 In reply to 3447.1 
Hi Morten,

> Why is this?

The technical reason is that a helix or spiral is not able to be represented with a 100% exact NURBS curve unlike a circle or an ellipse for example.

So because of that the helix is created through a kind of approximation and fitting process.

It looks like there may be a bug in that special helix fitting process that gets magnified when you have only 1 turn, I'll take a look at that.

- 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
3447.4 In reply to 3447.1 
Hi Morten, so looking into this more, the previous answer I gave is not correct.

Although it is true that the spiral/helix goes through a kind of fitting process, the end tangents of the fitted curve are being specified precisely, and it is the correct result to not have a tangent that agrees with a circle when you have a spiral like that.

It's not supposed to match a circle's tangent, even at the end because the spiral's shape is continuously shrinking and morphing to a different size, like Steve mentions above.

It would only have the same tangent as a circle if it behaved the same as a circle in the immediate vicinity of the endpoints. But a circle does not have the continuously shrinking aspect to it while the spiral does - any movement from the end of the spiral, no matter how small, results in a point that is not at the same radius as the start point. So that also means it does not have the same kind of tangent as a circle would at that point. The spiral is by its nature a sloped kind of shape, so it produces a sloped tangent as well.

I also tested this with Rhino and got the same result as well, just to verify that it was how the end tangents of a spiral was expected to be formed and not something unique to MoI.

So if you want to have different end tangents than what you are getting with a sprial, that means you actually don't want an actual spiral shape or at least not of that kind that is being produced there.


You may want to do something more with a freeform drawn curve with control points instead.

Maybe you could show a sketch of the kind of end result that you're looking for.


- 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
3447.5 In reply to 3447.2 
Hi Morten, also as Steve mentioned above, when you use more turns, the sloping nature of the spiral is distributed over a wider area and ends begin to resemble a circle more closely in its starting tangent.

But it will still have a sloping aspect to it and not be identical to a circle tangent at the start and end.

- 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
3447.6 In reply to 3447.1 
Hi Morten, just one more note - the kind of spiral that MoI is producing is this one here:

http://en.wikipedia.org/wiki/Archimedean_spiral

The end tangents on that kind of spiral are not supposed to coincide with tangents of the outer radius or inner radius circles, a spiral like this is a "whole different kettle of fish" from just a circle because of its continuously changing nature.

- 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:  steve (STEVE_HOME)
3447.7 In reply to 3447.1 
Morton,

One way to work around this is to construct the 2d helix from (trimmed/half) circles. There are errors due to that, but it will allow for easily adding different pitches(sizes) of other 2d helix.

A pic showing error(difference) between using flat (2d) helix and constructing from circles (helix in red, trimmed circles in black).





- Steve
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:  BurrMan
3447.8 In reply to 3447.7 
ANother option would be to turn on control points for the helix and move the last point to be inline with the second to the last point. This will have the endpoints be tangent.




EDITED: 19 Jun 2012 by BURRMAN

  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:  Morten (RUMLAB)
3447.9 
Great respons here! Thank you for the insightful answers.

I'm actually trying to join 3d helices - the trimmed circle solution might be a good bet.
Just wanted to make sure, that it was a correct behaviour I was seeing.

In the end I need to make a kind of tool to turn springs with changing diameters,
but with fewer turns than the attached screencap and more than one change in diameter.
I just need a good method for making a clean geometry. I'll post results when I have tested the arc method.

Thanks!

EDITED: 5 Apr 2010 by RUMLAB

Image Attachments:
Size: 62.8 KB, Downloaded: 13 times, Dimensions: 779x453px
Size: 48.3 KB, Downloaded: 39 times, Dimensions: 829x487px
  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:  steve (STEVE_HOME)
3447.10 In reply to 3447.9 
Hi Morton,

OK.

As mentioned, what you are seeing is correct, as the helix will change tangency, in this case, due to the angular slope.


Although changing the tangency will give out an incorrect result, you can make slight changes to help.


After creating the helix with the helix tool(in this case 3 helix, the middle helix being tapered)



Zoom in to where the helix endpoints join



Trim off a small part of the end of each helix (you can use trim:- Add trim points). Here I have trimmed one helix endpoint and adding a trim point to the end of the other helix.



Then select those 2 helix and use "Blend" G1 to blend.



Repeat for the other joining helix endpoints, then join all those curves (helix + blends).

You can then sweep that resulting curve with your shape for the cutout.

In this example, this was the result.




- Steve

  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
3447.11 In reply to 3447.9 
Hi Morten, one thing to be aware of with arcs for a 3D curve is that each arc is going to be a planar curve, so if you string many of them together you will get a curve that has a kind of abrupt change in a certain sense where the arcs touch one another, rather than a continuous gradual change.

You might try using the Rebuild command on it to reconstruct a new smooth curve from points sampled on the original curve.

There isn't any icon for Rebuild, to run it you need to type it in (press Tab first, then type Rebuild and push Enter), or set it up on a keyboard shortcut.


You might have an easier job of this if you start with a straight cylindrical type helix and then use some of the deformation tools in Rhino to warp it into the final shape.

- 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
 From:  Michael Gibson
3447.12 In reply to 3447.9 
Hi Morten, also if you can describe what you need with enough detail so an equation could be written for the position of each point on your curve, it would then be possible to write a script command that would make the curve for you by generating a bunch of points for a control point curve.

That's how this sine wave plugin was done:
http://moi3d.com/forum/messages.php?webtag=MOI&msg=1519.38

- 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