Variable Pitch Helix by Equation Curve

glenn-chun
Autodesk
Autodesk

Variable Pitch Helix by Equation Curve

glenn-chun
Autodesk
Autodesk

You can create a variable pitch helix by using the Equation Curve feature introduced in Inventor 2013.

 

Create a new 3D Sketch. Start the Equation Curve command.

equation_curve_ribbon.png

 

Here are equations that I use to create helical curves. Many other variations exist, but the following should give you some basic ideas.

 

Cartesian coordinates:

x(t) = radius * sin(360 * num_turns * t) 

y(t) = radius * cos(360 * num_turns * t)

z(t) = height * t

      = num_turns * pitch * t

 

Cylindrical coordinates:

r(t) = radius

theta(t) = 360 * num_turns * t

z(t) = (same as Cartesian)

 

  • To make the radius variable, replace radius with radius * t.
  • To make the pitch variable, replace pitch with pitch * t.

 

Examples:

radius = 3 or 3*t

num_turns = 5

height = 10

pitch = 2 or 2*t

t ranges from 0 to 1.

 

1. constant radius, constant pitch:

 

Cartesian coordinates:

x(t) = 3*sin(360*5*t)

y(t) = 3*cos(360*5*t)

z(t) = 5*2*t

 

Cylindrical coordinates:

r(t) = 3

theta(t) = 360*5*t

z(t) = 5*2*t

 

2. constant radius, variable pitch:

 

Cartesian coordinates:

x(t) = 3*sin(360*5*t)

y(t) = 3*cos(360*5*t)

z(t) = 5*2*t*t

 

Cylindrical coordinates:

r(t) = 3

theta(t) = 360*5*t

z(t) = 5*2*t*t

 

3. variable radius, constant pitch:

 

Cartesian coordinates:

x(t) = 3*t*sin(360*5*t)

y(t) = 3*t*cos(360*5*t)

z(t) = 5*2*t

 

Cylindrical coordinates:

r(t) = 3*t

theta(t) = 360*5*t

z(t) = 5*2*t

 

4. variable radius, variable pitch:

 

Cartesian coordinates:

x(t) = 3*t*sin(360*5*t)

y(t) = 3*t*cos(360*5*t)

z(t) = 5*2*t*t

 

Cylindrical coordinates:

r(t) = 3*t

theta(t) = 360*5*t

z(t) = 5*2*t*t

 

Note: You can use t^2 instead of t*t above.

 

helix_equation.png

 

When you sweep a profile along a helical path, use the plane normal sweep (instead of perpendicular sweep) to orient profiles suitable for coil or spring.  In the example below, the sweep path is a constant radius, variable pitch helix.

perp_sweep_vs_plane_normal_sweep.png

 

HTH,

Glenn



Glenn Chun
Sr. Principal Engineer
Reply
Accepted solutions (4)
37,233 Views
24 Replies
Replies (24)

Anonymous
Not applicable

I think you guys just made my day!!

0 Likes

karthur1
Mentor
Mentor

Now if you can flatten that I will be impressed.  Smiley Happy

Anonymous
Not applicable

FINALLY!!!! Thanks for posting this. 

 

<snark>

Maybe we'll be able to do equation surfaces by 2020.

</snark>

0 Likes

Anonymous
Not applicable

Glen,

Thanks for the equations. Do you know of equations for compression springs?

 

Compression Spring.JPG

0 Likes

glenn-chun
Autodesk
Autodesk
Accepted solution

Hi sention,

 

When you create a coil, spring, or helix sweep, please use the Coil command or Helical Curve command in 3D Sketch whenever you can for optimized performance/capacity.

 

  • To create constant-pitch helix, you'd better use the Coil or Helical Curve command than the Equation Curve command.
  • To create variable-pitch helix, use the Equation Curve command since the Coil or Helical Curve command doesn't offer that functionality.

 

By looking at your drawing, I see everything as a constant-pitch helix.  I would use three Coil features in this case. 

 

compression_spring.png

 

I defined the following parameters before I designed this model.  You can see/edit these in the Parameters dialog > User Parameters.

 

helix_radius = 10 mm

 

wire_radius = 1 mm

wire_diameter = 2 * wire_radius

 

active_coil_pitch = 4 * wire_diameter

active_coil_num_revolution = 5

active_coil_height = active_coil_pitch * active_coil_num_revolution

 

dead_coil_pitch = wire_diameter

dead_coil_num_revolution = 3

dead_coil_height = dead_coil_pitch * dead_coil_num_revolution

 

 

For the 'dead coils', the pictch is the same as the wire diameter, and this is possible only in Inventor 2014 and later.  See Type 3b in my recent post called Demystifying Self-intersecting Sweep

http://forums.autodesk.com/t5/Autodesk-Inventor/Demystifying-Self-intersecting-Sweep/m-p/4303803

 

Attached is the part that I created in Inventor 2014.  Every surface in this model is analytic geometry (rather than NURBS), so you can feel the optimized performance.  All planes of the cross-sectional profiles in the three Coil features contain the helical axis (Z-axis in this case).

 

Hope that helps,

 

Glenn

Autodesk ShapeManager Development

 



Glenn Chun
Sr. Principal Engineer

glenn-chun
Autodesk
Autodesk

In my example above, the transition between the active coil and each dead coil is not tangent-continuous.  If you want smooth transitions, the above technique is not appropriate.

 

Glenn



Glenn Chun
Sr. Principal Engineer
0 Likes

glenn-chun
Autodesk
Autodesk
Accepted solution

If you want smooth transitions between active and dead coils, here's a workflow that you could use.

 

In the attached compression_spring_2_glenn.ipt, I added the following parameters:

 

entire_coil_height = active_coil_height + 2 ul * dead_coil_height

active_coil_len = active_coil_num_revolution * sqrt((active_coil_pitch) ^ 2 ul + ( 2 ul * PI * helix_radius ) ^ 2 ul)

dead_coil_len = dead_coil_num_revolution * sqrt((dead_coil_pitch) ^ 2 ul + ( 2 ul * PI * helix_radius ) ^ 2 ul)

 

entire_coil_height is used as the height of the cylindrical surface (The first feature in the model).  active_coil_len and dead_coil_len are used in the Aligned dimensions for the three lines in the sketch called curves to project.

 

If you project the three lines to the cylinder, using the Wrap to surface functionality of the Project Curve to Surface command, the sweep path would be the same as compression_spring_glenn.ipt, except for performance/capacity.  To make the projected curves tangent-continuous, I added two sketch fillets as shown below.  I randomly chose R=100 mm for fillets.  Instead of three lines and two fillets, a spline curve could be used.

 

compression_spring_2.png

 

For the sweep feature, I used the plane normal sweep (aka pull-direction sweep).  The guide surface is the XY plane since the helical axis is the Z-axis in this model.  That makes the planes of all cross-sectional profiles in the sweep body contain the helical axis.

 

compression_spring_2_result.png

 

A drawback with using the Wrap to surface functionality of the Project Curve to Surface command is low performance and huge file size.  If you open the compression_spring_2_glenn.ipt, move the End of Part to the bottom, and save the part, then you will see the file size become ~2,300 KB.  The previously attached part, compression_spring_glenn.ipt, is only 360 KB.  The Inventor development team is aware of the performance/capacity issue with the Wrap to surface.

 

If anyone knows of any equation for the compression spring, please post it.  Performance/capacity of using the Equation Curve command is somewhere between analytic geometry from the Helical Curve/Coil command and the NURBS from Wrap to surface.

 

Glenn

Autodesk ShapeManager Development

 



Glenn Chun
Sr. Principal Engineer

glenn-chun
Autodesk
Autodesk
Accepted solution

The above screenshots using the "Right" view do not really show the difference.

 

Here's the "Top" view that shows the difference between the two models.  The red arrow below indicates G0 continuity between the dead coil ad active coil.  The second model shows G1 continuity (tangent-continuous).

 

g0_vs_g1.png

 

Glenn



Glenn Chun
Sr. Principal Engineer
0 Likes

Anonymous
Not applicable

When sweeping, can you make it such that the profiles all angle towards a single point, say in the center of the helix at its base? If so, how?? Thanks!


@glenn-chun wrote:

When you sweep a profile along a helical path, use the plane normal sweep (instead of perpendicular sweep) to orient profiles suitable for coil or spring.  In the example below, the sweep path is a constant radius, variable pitch helix.

 


 

0 Likes

glenn-chun
Autodesk
Autodesk
Accepted solution

@Anonymous wrote:

When sweeping, can you make it such that the profiles all angle towards a single point, say in the center of the helix at its base? If so, how?? Thanks!


Hi eternal.erik,

 

I'm not sure if I understand your question, but here's my first attempt.  I used the parameter called 'taper_angle' for both profile and path.  The Helical Curve and Sweep commands were used in the attached model, but you could achieve the same result by using the Coil command.

 

variable_radius_constant_pitch.png

 

If that's not what you're trying to model, please post an IPT or picture that shows your design intent.

 

Thanks,

Glenn

 



Glenn Chun
Sr. Principal Engineer
0 Likes

Anonymous
Not applicable
Glenn
Thank you very much for the examples. I did use 3 separate coil features to create the drawing I posted. I do love your idea about using an arc and the "wrap to surface" to create a smooth transition.

I also experienced the self intersecting issue with a coiled circle. Splitting the profile into arcs is a neat trick.

Thanks
0 Likes

Anonymous
Not applicable

I have been waiting for this forever!!!! Thank you! Buuuuuut I do have an issue with getting the sweep to work for my application. The purpose of this "screw" is to separate the bottles as they go down a conveyer line. If you could help we with this I would appreciate it!!

0 Likes

glenn-chun
Autodesk
Autodesk

Hi RMCDesigner,

 

Looks like you've got a solution here.  Let me know if you have any further question.

 

Glenn



Glenn Chun
Sr. Principal Engineer
0 Likes

Anonymous
Not applicable

Thanks for your reply! But now im trying to figure out how to get this to work for the machining process. My finished part needs to be 7" long and its the start and end that is giving me the problems. When they machine it the end mill will come in and leave a chunk of material at the start and end of the part so I was thinking of running the part out 1 inch on both the front and the back of the part. But that would mean that I would need to go from a constant pitch of .6875 for 1" then to a variable pitch of .6875 up to 2.5 over 7", then to a constant pitch of 2.5 for the last inch. But I have no clue how to do this! If you or anyone could help me out here this would be great! We have been fighting this variable pitch demon for years!

0 Likes

glenn-chun
Autodesk
Autodesk

Could you upload the IPT model shown in your VARIABLE test.jpg?

 

Glenn



Glenn Chun
Sr. Principal Engineer
0 Likes

Anonymous
Not applicable

There she be!. Thanks!

0 Likes

glenn-chun
Autodesk
Autodesk

Hi RMCDesigner,

 

I have a couple of questions about the 7-inch middle section.  You said that the pitch needs to gradually increase from 0.6875 to 2.5, but your IPT shows the pitch increasing from 0.28 to 2.52.  Do you need to change the helix?

 

pitches_start_end.png

 

You used a cylinder and a cone for the 7-inch middle section and created a constant-radius, variable-pitch helix.

 

extrude_revolve.png

 

Wouldn't you want a cone for the entire middle section as shown below and use a variable-radius, variable-pitch helix?

 

loft.png

 

Glenn



Glenn Chun
Sr. Principal Engineer

Anonymous
Not applicable

Yes I guess I do need to change the 2.52 to 2.5 but on the entrance side the .28 pitch should work just as long as at the entrance of the screw is fairly smooth for the bottles to sit and wait to be separated by the screw flight. And for the moment all I can do is replicate what the customer has, But yes I would agree that a more gradual approach through the 7" span would be an idea. Thanks again!

0 Likes

MarkyTomm
Enthusiast
Enthusiast

Hi,

 

I am designing a screw with 375mm length of sweep at 100mm pitch which i have used the standard coil function for

 

I then have a further 1310mm of screw which has a pitch varying from 100mm up to 220 mm

 

Is there a way to set in initial coil pitch for the equation curve to 100mm ?

 

The attached image show where i am at

 

Help anyone?

 

regards

 

0 Likes