Community Tip - Need to share some code when posting a question or reply? Make sure to use the "Insert code sample" menu option. Learn more! X
Is there a way to write the spiral curve equation in a cylindrical coordinate system in such a way that the pitch is zero in the beginning and the end so that the curve starts and ends tangent to the start and endplanes that are normal to the trajectory center axis?
You can modify the parameters of an Archimedes spiral here: Archimedean Spiral -- from Wolfram MathWorld
That is not what I am looking for.
The screen dump shows a curve created in a cylindrical coordinate system with the equation:
r=75
theta=t*360
z=t*100
I am looking for an equation for z to make the curve ends parallell to planes FRONT and DTM1 respectively.
Bertil
The picture clarifies what you need. If you use the parametric equation only to create the curve, I am pretty sure the answer is no as the trajectory of this type is not parallel to the planes at any point along its path.
I have had to deal with this type of problem with spring designs and you end up with a discontinuity as seen here to get a flat end on a helix. This is using a helical sweep, but it is the same issue. You will need to add some geometry that is not defined by the curve equation to get the transition to zero pitch. In this case you can see there is a kink at the bottom to go to zero pitch. When these are made it is not a sharp bend as seen in the CAD as the material has a bend radius.
See attached file test-spiral.prt
I have tried making a helical sweep with varying pitch and when sketching the profile, I entered 2 points one with zero pitch and the other with full pitch. When looking at the resulting spiral, it appears that at the start end it is indeed parallell to the starting plane. However, the the other point does not seem to affect the result at all. I work with Wildfire 3 and believe that later editions offer a better possibility to control the pitch curve.
If I cannot finns solution to the top plane tangemcy, there is of course the possibility to assemble 2 identical parts and get the desired complete spiral with tangent ends and then change the size parameters, but that seems to be an emergency solution.
I do not see the part file attached to your message above.
Here is a link to the Creo 9 help for variable pitch helical sweeps. It is table driven and the pitch cannot be zero in any table entry. It is not going to make it easy to get what you want using this feature.
To Set the Pitch in Helical Sweeps and Volume Helical Sweeps (ptc.com)
To avoid the kink in the wire I've taken to using an equation driven curve, a graph defining the theta transition, and the evalgraph function.
The graph is defined with line segments at either end, a sloping line for the middle (this is the helical sweep part of the curve) and two circular fillets for the transition from the slopes at both ends.
Using this method produces a smooth curve without the curvature discontinuities that occured when I tried using a variable pitch helical sweep.
Graph like this using equation from curve for helical wound geometry?
Exactly. I really like the results of this, and you can adjust things like the length of the end and beginning segments, radii at transitions, etc. to get the results you want. I used this to define some twisted locking wires and it really looks good in the assemblies.
Hey Tom!
Huh, a graph/curve by equation should be able to get you a nice transition instead of that abrupt angle.
I have only used graphs in a training module years ago, but could a graph be used to control Z?
You can use a graph feature for any of the 3 variables in all of the 3 types of curves by equation.
You can easily do this with a graph/curve by equation or a wrap, as the radius is constant and it seems you don't care what the radius leading to the tangent is.
Well, one problem is that you're not telling us HOW tangent you want the ends of the curve to the datums (i.e. how many degrees of rotation dedicated to the transitions from the center section to tangent), and whether or not the interim section is a linear rate of twist or not. For this, especially with the constant radius, I would us a Wrap instead of a graph-driven curve. It's simpler to understand and do. I did this in MM for you guys since I figured with the name (Swedish perhaps?) you guys wouldn't be using the superior inch system....🤣 I used 2 construction lines to ensure tangencies at both ends, and just did a spline for a smooth "S" curve between the ends and a relation using pi to make the length one complete revolution/twist. You could use an arc (or conic) at both ends and use pi to determine how many degrees the transition took, with a straight line in the center for a consistent helical rate, or you could make the helical rate the driving feature (i.e. #degrees of rotation in a linear length of distance in "Z") and force the arcs at the ends to be a resultant of that, or any weird combination you desire. In a wrap, you MUST have a CS in the sketcher or the feature doesn't regenerate. Either way, here's a quick model I did for fun. Enjoy!
Note: The advantage of using a wrap is that, unlike using a graph, you can have any number of values/points in the Y axis for every point/value in the X, the disadvantage is you can't "easily" have a variable radius, and DEFINITELY can't do anything spherical.
Wrap may be an easier way to get what you want.
Creo 7.0 attached.
Grateful for your suggestion but cannot comment on it since ”wrap” does not exist in Wildfire 3.
Are you still on Wildfire 3??? Yikes! Holy outdated software Batman! Then the graph function is your only option and will do it just fine IF you get the graph and the equation right. Too bad, that means you can't see my model then since I'm on Creo 8.
You still have not defined HOW tangent you want the ends, or how many rotational degrees each transition takes, and what the center section is like as I mentioned before.
Kdirth is correct about the graph feature. Many years ago I used the graph function to do what I think you are wanting to do. Since I don’t have a way to provide an example, I searched some old sites for a video example for you. It goes back many years but I can’t tell you if it was available in Wildfire 3. I haven’t posted for a long time, hope the link works
Thanks, I will investigate this. In the mean time I have found a solution as shown by the attached files.
I do not see any files attached.
The graph feature was able to do that way back in 2000, the first time I used it like this, if not before. For reference I started using Pro/E (now Creo) in '96.
As Tom mentioned, you can use a graph feature to do this, I've been using graphs like this since 2000, long before I saw anyone else use them in this fashion. As KDirth said, you can also use a wrap, it just depends on what gives you the best result, in most cases, the end result is pretty much the same, although a wrap gives you the ability to more easily change the number of turns without affecting the radii at the ends that force the tangency. Fun Fact: You can also force one or both ends to be tangent to the axis. The advantage to using a graph and curve by equation, is that you can also vary the radius, unlike with the wrap because a wrap has to be done on a "ruled" surface.
Best of luck!
Hearing the later suggestions and using a graph like the one shown in the post from tbraxton would seem to give me what I am looking for, but how do I apply this graph to the r/theta/z-equation that controls the curve?
The steps I took to do this are something like:
(1) Create the graph. When I do this I usually try to make the range of X and Y on the graph span zero to 1, with a corresponding "t" range in the curve I'm going to define of zero to 1, also.
(2) Define the necessary references for an equation driven curve (coordinate system, planes, etc.)
(3) Build the curve, using cylindrical coordinates. For the twisted wire I modeled, for example, the equations looked like this
r = ( diawire + clrwires ) / 2
theta = numcoils * 360 * evalGraph ( "getTheta", t )
z = t * numcoils * pitchcoils
The graph I defined is named "getTheta". The evalgraph call, given a "t" value, returns the "y" defined by the curve.
I have used your advice and created a datum curve as per attached file.
I have two new parameters:
numcoils = number of full 360°-turns
coilpitch = total height of curve
My graph control diagram as seen in ANG, gives the desired tangency at the end but at the beginning I get a stub in the revolve axis direction.
When I modify the ANG-graph to start as it ends the curve fails.
I have added a straight tangential curve at the top (curve_top_ext).
Next problem is that I cannot (=don't know how to) create a variable sect sweep using both curves together. I have made one (which is supressed) using the spiral curve only but have not been able to make one using both.
My questions are:
1. Why can I not get curve start tangent like curve end?
2. How to make a variabel section sweep using the 2 curves (i.e. 3 curves when I have solved the previous problem and made an extension there as well)?
1. I would suggest making the vertical lines at the ends construction so they are not used in calculations. Creo is gets confused when the graph has a vertical element (many possible Y values for one X value).
2. Are you wanting to vary the cross section along the sweep or use all 3 curves for sweep?
Assuming using all 3 for sweep, during selection of curve, select one curve then hold shift to select adjacent curves. Or use copy to make them all part of one feature first.