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.
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)
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.
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.
HTH,
Glenn
Solved! Go to Solution.
Solved by glenn-chun. Go to Solution.
Solved by glenn-chun. Go to Solution.
Solved by glenn-chun. Go to Solution.
Solved by glenn-chun. Go to Solution.
FINALLY!!!! Thanks for posting this.
<snark>
Maybe we'll be able to do equation surfaces by 2020.
</snark>
Glen,
Thanks for the equations. Do you know of equations for compression springs?
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.
By looking at your drawing, I see everything as a constant-pitch helix. I would use three Coil features in this case.
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
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
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.
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.
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
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).
Glenn
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.
@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.
If that's not what you're trying to model, please post an IPT or picture that shows your design intent.
Thanks,
Glenn
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!!
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!
Could you upload the IPT model shown in your VARIABLE test.jpg?
Glenn
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?
You used a cylinder and a cone for the 7-inch middle section and created a constant-radius, variable-pitch helix.
Wouldn't you want a cone for the entire middle section as shown below and use a variable-radius, variable-pitch helix?
Glenn
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!
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
Can't find what you're looking for? Ask the community or share your knowledge.