Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations IDS on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

transformation of curve by another curve 2

Status
Not open for further replies.

cloche

Mechanical
May 12, 2005
112
I have a curve on the XY plane that should be transformed into a cylindrical coordinate system so that the X axis would remain the axial direction, the Y-coordinate of each point of the curve would give the radial position, and the angular span "theta" should be controlled by another curve that can not be expressed analytically (only drawn as a spline). I suppose it can be done with the law curves, but I can't understand how... I'm new to UG NX2, I knew pretty well how to do that with Pro/E... Please somebody help me ! Thank you in advance ! - Claudio
 
Replies continue below

Recommended for you

Use the expression editor to write your equations in relation to t.

You must enter t=1 as your first expression, this is not a given as in Pro/E.
Then enter your three equations in cartesian co-ordinates because this is what UG prompts for in law curves.
for a helix spiral
R=4
xt=R*cos(360*t)
yt=R*sin(360*t)
zt=2*t

For your Law curve equations you will be asked for the variable "t" and for the function xt, yt &zt respectively

What's the most complex curve you've done on Pro/E?

Michael

[wavey3]
 
I didn't explain well my problem... In fact, your advice is OK, but my problem is that "R" is not constant: for controlling my curve (xt3,yt3,zt3), I need two "piloting curves": given a base curve yt1=f(xt1), I would first define "xt3" varying linearly (or with xt3=f(t)), and this is easy as you point out in your example, but then it should be yt3=yt1*cos(yt2) ; zt3=yt1*sin(yt2) , where yt2=f(xt2) is the second curve, and the main problem is that neither yt1 nor yt2 can have an analytical explicit expression (that is, I can't "link" them to "t" with, for example, an expression like yt1=t^3+2*t-4). If yt2 was constant, I'd obtain the first curve "rotated" about x axis of an angle yt2; if yt1 was constant, it would be your example: a spiral. But it seems I must "extract" yt1 and yt2 implicitly from the two "pilot curves"... In Pro/E, I couldn't control explicitly a curve with another curve in the 3D space, but I could define "graph curves" piloting parametric dimensions in a feature, so I made surfaces controled by the graph-curves and then extracted the edge that represented the final curve I needed. Perhaps there's a similar way in UG? My aim is to model turbomachinery generic profiles by directly using the design calculated parameters, which are not a series of 3D points but things like "leading edge angle", "trailing edge angle", "angular span", etc...
Thank you for your help !!
Claudio
 
There is no way to explicitly drive dimensions of a curve using graphs as I've also done on ProE but you should be able to employ a similar methodology. you can create a swept surface using a single drive curve that can have it's length and angle defined by equations one for R and one for <.

When you create the swept surface with a single guide and single section where R=1, UG prompts you for how you want to control the scale of your section and the angle of your section.

To get functionality similar to a Datum Graph on UG, you can make a sketch with the curve for controling your dimension and a single line to define the x-axis start and end. When making a Law curve or a sweep feature as I mentioned by choosing Law curve option instead of equation.
Then you choose the sketch as a curve and choose the horizontal line at the base of the sketch to define the x-axis. The one drawback to this is you'd have to scale your graph to represent actual dimensions because a scaling parameter can not be used like SCALE*evalgraph('G1',t*10) can do in Pro/E.

If this works you can extract the surface edge like on ProE to be your desired curve.

Good Luck

Michael
[thumbsup2]
 
Sorry Michael, if you are still reading this thread I'll have to bother you again... Unfortunately your idea seems not to work for my case, or I'm doing something wrong... So, just to recap with the swept surface:
1- I create a horiz line in the XY plane just to use it as the spine
2- I create in the XY plane the spline curve that represents the meridian trace (i.e., the "R - vs - X" law) and that will serve me as the guide curve
3- I create in the YZ plane an arc of circle centered on the spine and with the first extremity on the guide curve. I would like to assign the only free parameter "arclength" to something like the scale*evalgraph("graph",length*t) in Pro/E, but it seems there is no way...
4- I create in the ZX plane the spline curve that will represent the "scale" (this curve could be in any other plane, provided that it's of the correct length as you point out)
5- I start the swept surface function, I select the guide curve, I select the arc of circle as section curve, I give "imposed direction" -> X as the section orientation, I select "parametric" and "on all points along guides" for the scaling parameters, I select the scaling curve, I select the X-line as the spine, and...
6- something happens, but it's not what I want: even if the arc of circle was constrained to have one point on the guide curve and the center on the spine, the scaling affects it isotropically, with the effect that it "detaches" from the guide curve !!!
Maybe I'm still thinking "in the Pro/E way", but it is really something I don't understand...
7- I also tried that: create a sketch with one point on the XY spline and dimension him in the X direction - Same thing done on the XZ spline - edit the expression to drive the two dimensions as a function of "t" (ex: p47=350*t) - create two measuring features for the Y-direction of the first point and for the Z-direction of the second (let's call these two dimensions "p50" and "p51") - create xt=350*t yt=p50*cos(p51) zt=p51=sin(p51) -> create the law curve by equations -> nice straight line, as this hell of UG evaluates p50 and p51 only at the initial state and doesn't update them while "t" is varying !!! ARGH !!!
 
Is "angular span" the same as twist angle?
If so, is this angle less than 360 degrees?

You may want to read up on law curves in the help files. You can control X, Y, and Z in different ways - one of which is using another curve. From your original post it sounds like you would want to control the X linearly, Y by another curve, and Z by another curve. Since the curves control cartesian coordinates, I'm not sure if you can get the "angular span" control you are looking for. (I ask about the angle because if it is greater than 360 then the law curve must be constructed with helix or 'by equation').

From your last post, it looks like you are pursuing the extract-edge-from-a-swept-feature approach. However, I'm a little confused with your terminology. It sounds like you want to sweep a shape along a straight line while controlling its 'radius' with another curve. But in your post you state that you use the R vs X curve as your guide. Is the guide string a straight line or does it have to follow a curve?

I did some experimenting with a scaling curve and angular law orientation that I think may interest you. For my test I have a straight line in the X direction and on the YZ plane I have an equilateral triangle (for the cross section). In the XY plane I have a spline (to control the scale). Also in the YZ plane I have another spline for the angular law curve (though I think this can be in any plane). I pick the straight line as my guide, the triangle as the cross section, alignment method: parameter, Section location: anywhere, orientation: angular law -> by law curve (then pick the angular law spline and optionally a base curve), scaling method: another curve (pick the scaling spline), and press OK.

A few things I have learned:
1) Let's say the angular law curve is in the XY plane - then each unit in the Y direction equals 1 degree of twist. What this means is if you need 180 degrees of twist, the end point of your spline will be 180 units higher than the start point (if you need multiple revolutions this curve can be huge).
2) I tried messing with the scaling curve while keeping the orientation fixed (no twist) and the end result didn't always closely follow the scaling curve. Even for a simple example of a triangle being swept along a straight line, the resulting edge was (in some cases) significantly different than the control curve (well outside modeling tolerances).
 
Cowski,
thank you for your post!
A little foreword:
all begins with the necessity to model parametric double-curvature blades of hydraulic pumps or turbines, in a way that can preserve the math-design parameters you use to calculate an hydraulic turbomachine. If X is the runner axis, I can construct my meridian plane on the XY plane, for example. All meridian traces of flowlines will be curves (splines...) on the meridian plane. In the 3D space, these flowlines are lying on the figures of revolution generated by the meridian traces, but of course they aren't on the meridian plane. The best way to describe each flowline is in a cylindrical X-axis coord syst: WCS X is axial coord, WCS Z is R*cos(Theta) and WCS Y is R*sin(theta). The scope is to find a law for Theta, to apply to the splines defined on the meridian plane (where theta=0). In calculation, this is done by drawing a diagram having the curve coordinate "L" as abscissa and theta as ordinate; on this "fictitious plane" (it is a "u-v" mapping if you prefer...), "leading edge" angle, "trailing edge" angle, "leading edge" theta from meridian plane (that's what I call "angular span"!) and "trailing edge" theta are defined. These values are given by hydraulic theory. In UG, we could draw this diagram on the XZ plane, just not to get confused with the meridian flowline trace: the X length would be equal to the meridian-trace spline length (easy to achieve that with parameters), Z at X=0 is equal to the leading edge Theta, Z at X=<length> is trailing edge Theta, and the leading /trailing angles are imposed by tangency conditions: so, the spline is defined (you may want to control more intermediate points and tangencies, but it's not 100% necessary).
But now, what? I understood that creating lawcurve from X straight line and XY / XZ splines is possible only in cartesian csys, which is not good. It seems to me that UG can NOT handle a cylindrical csys. Or, once obtained this 3D cartesian curve, we should transform it by the way of the transformation equations from cylindrical to cartesian (i.e. the 3D curve would be a REPRESENTATION of the real one in a "straightened" cylindrical fictitious csys. This would be GREAT, but how can we transform the 3D curve points by law now?
Now, the other approach (swept surfaces): whatever the shape of a curve constructed over a figure of revolution, each point of the curve is "connected" to the meridian plane by an arc. So, imagine to "solidify" the region encompassed by the meridian plane, the curve, and the arcs having Rmax and Rmin of the revolution figure: it's a swept surface, where the "section" is the generic arc, and the guide-curve is the meridian trace (i.e. the generation curve of the surface of revolution). The center of the arc is always bond to X-axis; the radius of the arc is implicitly given by the fact that the first arc endpoint is bond to the meridian guide-curve Y=spline(X) (or, at least, it SHOULD be...); the arc length or equivalently its angular "aperture" (or "sector", or "span"...) must now be controled by a law (the auxiliary spline Z=spline(X))...
I have now a third idea, using "curve on surface", but I don't know if it's possible to dimension the positions of the spline node points. If yes, my problem is solved!

Hope to hear again from you soon...

Claudio
 
OOPS... I forgot a key sentence:
when I said "...possible to dimension the positions of the spline node points", I wanted to mean "in terms of "u-v" parameters".

Claudio
 
cloche,

To clarify my original post in which I explained several methods.

If you sketch the spine curve as the sweep path and sketch your radius graph you can create a single swept feature using your path and a single line as your section. 1 drive curve and 1 section, UG will ask you how you want to control the scale R and angle (theta) as the line is swept. If you use two drive curves then the sections angular orientation is driven by the drive curves.

I did this 2 days ago but haven't logged on to this site since then. The one thing you have to be sure of is to use the actual angular values which means you may have a sketch 360" or mm hign.

Michael
[bull]
 
Thank you Michael,

I'll give a try when I'm back home on Monday.
Sincerely at the moment I'm a bit confused: can you clarify on which planes you draw each curve and how each of these curves (spine, guide, R-scale graph, angle-graph...) are defined?

UG help doesn't really helps (!) in this case... At least, in the Italian translation (which may be a bit confused by itself)...
I'm also studying a very interesting little book on 3D parametric curves: the math explicit definition of various free-form curves (incl. Hermite, Lagrange, splines, B-splines, NURBS) is described in parametric terms of "u" (i.e. "t" in UG) and there is also explained various geo-transformation invariant properties of these curves. I'll let you know if I come to something feasible...

Claudio
 
cloche,
That sounds like an interesting book. What is it's title and who is the author?
 
Ewh,

the book is published by the Department of Mechanical Design of the University of Padova (Italy), the authors are G.Concheri and V.Milanese, the title is "Modellazione a Forma Libera - Curve", Ed. Cortina (Padova), ISBN 88-7784-145-1.
It's not really "new" (1994...) but the concepts inside are still valid since they are pure theory!!!

I haven't used it for years, but now it might be useful if I can't find out a way using UG standard tools...

Claudio
 
Thanks! It's always good to have different sources to refer to when dealing with 3D splines.
[bigears]
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor