thoughts on curvature combs,splines control

Discussion in 'SolidWorks' started by neil, Jan 24, 2005.

  1. neil

    neil Guest

    ok thanks Jeff,
    my memory of differential calculus etc is somewhat diminished after 25
    yrs.... I think I need to freshen up some : ) .. maybe I will dig out some
    old textbooks.
    neil
     
    neil, Jan 27, 2005
    #21
  2. neil

    Cliff Guest

    Control points on the curve/surface, generally. IIRC the (polygon)
    hull vertices/mesh are computed from those and the constraints, if
    any, on the curve/surface.

    In general, for any curve that must exactly fit N points in one
    segment the degree of the curve needs be no greater than N-1.

    Thus a line fits two points, a circle (or other conic) three. Lines
    have degree 1, as in Y = M*X +B, conics degree 2 as in Y = A*X**2 +B
    or (a circle) (X-A)**2 +(Y-B)**2 = R**2 (in the 2D or planar case).

    Note that all (AFAIK) CAD or CAD/CAM systems are limited to
    polynomial approximations of limited maximum degree. This causes
    problems when the desired curve or surface has things like trig or
    exponential functions as it's desired basis.

    Try to model & then extrapolate a sine curve, as an example.

    This is not to say that special API programs cannot deal with such
    in many ways. Just that they cannot be well modeled, in general.

    Bear in mind that we are talking *exact* fits and analytic curves
    (to computational limits) here.
    Well, all NURBS software deals with rational polynomials.
    Probably pretty close I'd expect. Or three points and two end
    tangents. Each system may well supply their users different
    tools & terms to get to about the same places.
    (Part of what makes jb so amusing ...... new buzzword from a
    blurb for something that was old 20 years ago and he wets his
    pants & gets confused <G>. IF he had actually ever used any of it he'd
    have known it was the same thing with a new buzzword, ad or his
    total lack of comprehension.)
    Often systems have unique commands to provide the system
    Also, consider a cubic polynomial: f1(X) = A*X**3 + B* X**2 + C*X +D
    What if A=0?

    Consider a second cubic polynomial:
    f2(X) = E*X**3 + F* X**2 + G*X +H

    A rational cubic would be f1(X)/f2(X). This makes things a bit more
    interesting, right?

    For a parabola, as an example, we get something like A= E=F=H=0
    and H=1 (and to be simple C=0) resulting in B*X**2+D = f1(X)/f2(X)
    which we might call Y.
    "Smooth" is often hard to define as it means different things to
    different people and in different applications.

    "Internal knots"? Do you mean hull vertex points that cross the
    parent curve?

    BTW, Have you ever placesd a spline along the hull vertex points,
    then across that spline's hull's vertex points, etc?
    There can be a huge number of possible "blends". That poses a
    problem IMHO as few systems or people will do such in the same
    way.
    I'm a bit confused ..... any curve has a tangent at any point on it,
    including the ends.
    That would be G1/C1.
    The *rate of change* of that tangent would be G2/C2 and be the
    second derivative of the parent curve (the tangent is the first).

    If two curves have a G2/C2 relationship at their common end
    point that just means that their second derivatives are the same
    *at that point*.
    That can work too as 5>3. 3 is the minimum degree that can *have*
    a non-constant (=zero) second derivative.
    Higher degrees have their uses I expect.
    Cubics are fast to compute and work well for most applications.

    ComputerVision & UG both support up to degree 17 or 18 IIRC. I
    don't know about Pro-E.

    As you remain at low degree and add points that the curve must fit
    you have to add segments to the curve (or the system does and you
    don't see it.) Remember, the degree is 1 less than the number of
    points for an exact polynomial (single "segment") fit, in general.
    Here's a good, though a bit dated (I suppose) book:
    "Computational Geometry for Design and Manufacture"
    by I.D. Faux, M.J.Pratt

    http://www.amazon.com/exec/obidos/s...ne/qid=1106818409/sr=12-1/102-0340510-2011328

    Often some good things here too, if you search a bit:
    http://www.mel.nist.gov/
    http://www.iges5x.org/ (look for the appendix data IIRC)
    http://www.nist.gov/iges/ (look for the appendix data IIRC)
    <G>
     
    Cliff, Jan 27, 2005
    #22
  3. neil

    Jeff Howard Guest

    There are some programs that don't have Insert / Conic. Hard to believe,
    huh?
    ---

    Defining "smooth" is an easy one for me; no unintended or unwanted
    excursions. I'm easy.
    ---

    Generally, polynomial expressions don't interest me. Aside from my lack of
    comprehension I just don't see how to apply them using program interface /
    inputs. Would be interested in hearing how you apply them. Well, I
    lied.... if I could assimilate the calculus I might not have to beg
    questions like....

    http://www.mcadcentral.com/proe/forum/forum_posts.asp?TID=26084&PN=3

    If you have a solution it would be cool. Basically, I want to solve for
    "a" to define a catenary in the form; y = a*cosh(x/a)-a, for a given
    bounding rectangle, 0,0 is bottom center. From what I've read I think it
    might be unsolvable, but even my comprehension of explanations is too
    sketchy for me to be sure.
    ---

    Points / control vertices / hull points / knots .... What we have here is
    a failure to communicate (to borrow one of my favorite lines).

    http://www.rhino3d.com/nurbs.htm covers all the definitions. It also
    encapsulates about all the theory I have under my belt.
    ---

    Higher degree entities do have uses. I glimpse elements of a few
    (smoothing, manual point editing). "They take longer to compute"; I'd say
    it's virtually irrelevant for most applications (ok, what do I know of
    "most"?). Isn't a more common and oft'times worse processing bog treating
    third degree curves as though they were polylines; increasing the point
    density to increase resolution? Or, maybe you are talking about solving
    increasing degrees of continuity? Definitely true.
     
    Jeff Howard, Jan 27, 2005
    #23
  4. neil

    Cliff Guest


    Just knowing that about all you can have ARE polynomials can be a
    huge help ....

    For those with an Engineering bent I'd suggest a text by Thomas.
    This is too new and may well be a different Thomas than the one
    I recall from HS but check with a library ..... and it has far too
    many pages IIRC. Think the 60s ....

    http://www.amazon.com/exec/obidos/t...f=sr_1_1/102-0340510-2011328?v=glance&s=books

    Actually, I don't recall catenary curves to be anything like that in
    form.

    I *MAY* come back & look at it again later .... time permitting ...
    you want "a" for given X & Y, right?

    Another good book:
    http://www.amazon.com/exec/obidos/s...pes%2522&store-name=books/102-0340510-2011328

    (Be advised that I've heard that there were code errors in the C
    code version which was translated from the FORTRAN.)
    A search of the Web will find several groups with these books

    Quick !!! Hide this from jb!!
    Lines are fast to compute. Computers got faster too <G>.
    Still, adding compute time & cycles slows things down. People
    that insist on overly-complicating things (like CAD models) often
    You too. Later.
     
    Cliff, Jan 27, 2005
    #24
  5. neil

    Cliff Guest

    What happens to this entity when it's translated to another
    system that supports only cubics & lower?

    Is it approxinated in some way by one system or just not
    read by the system that got it, thus leaving a gap?

    Might explain a few problems if so.

    I wonder how jb is coming along with his latest demo fixing
    things that he may be unable to save <G>.
     
    Cliff, Jan 28, 2005
    #25
  6. neil

    Cliff Guest

    Oops .... that IS sort of a catenary function. My recall was bad.
    Ages have passed.
    It's generally y=a*cosh(x/a)+b though.
    y = a*cosh(x/a)-a = a*(cosh(x/a)-1)

    LET C=x/a
    Then y = (x/C)*(cosh(C)-1) = (x/C)*(1 + C**2/2! + C**4/4! + C**6/6!
    + .... -1)
    = (x/C)*(C**2/2! + C**4/4! + C**6/6! + ....) ..

    None of which helps <G>.
     
    Cliff, Jan 28, 2005
    #26
  7. neil

    Cliff Guest

    BTW, As only polynomial curves can be created curves
    that are not polynomial in their basis cannot.

    This includes anything with a trig function in
    it.
    Which is why some look at others a bit oddly when
    they think that they can model (many) gears or cams
    and then machine them to the CAD design.

    There's probably a way to write an applications program
    to measure the error between the desired curve & the
    CAD model or to create a fair-fitting CAD curve (probably
    with a great many control points) that's within an error
    tolerance of the desired curve.

    There's also probably an entire branch of mathematics <G>.
     
    Cliff, Jan 28, 2005
    #27
  8. neil

    Jeff Howard Guest

    explanations of splines as they would apply to SW
    All this curve discussing with Cliff <G> prompted me to spend some time
    digging into application...
    http://www.mcadforums.com/forums/viewtopic.php?t=2448
    .... not SW specific, but I believe the basic methods should be applicable.
    The shapes were all defined using conic "arcs" and two (end) point splines
    with tangent constraints for loft / blend guide curves between the
    paraboloid (is that a word?) nose cap and the cylinderical section.
    Altering the shape and trim line on the nose cap (changes the "take off"
    tangent direction) and the tangent "weight" of the curves is all that's
    done to adjust the shapes. The only three point splines (unconstrained; no
    tangent conditions) used were for the windscreen and the trim line for the
    bottom windscreen blend. Need to rework the canopy / windscreen
    intersection; there's definite mach rumble potential there. 8~) HTH a
    bit.
     
    Jeff Howard, Feb 7, 2005
    #28
  9. neil

    Cliff Guest

    "beware the "healer""

    Try telling that to jb.
    There's usually no way for these things to actually *know*
    what is *right* when things are wrong. Too many options ...
    and the original data might be wrong too <G>.
     
    Cliff, Feb 8, 2005
    #29
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.