Jump to content
Sign in to follow this  
Technoflash

Nurbs curve exactly thru 3D locus points

Recommended Posts

Hi Guys

All you 3D guru's, how do I do this. I want to create a nurbs curve that goes exactly thru a series of 3D locus points. The nurbs curve tool doesn't seem to do it. I'm trying to create a boat hull. It has a hard chine and I have the gunnel, chine and keel mapped in 3D space and want to create these curves so I can use them to loft the hull surface. Imagine a simple canoe made out of plywood, that's the sort of thing I'm trying to do (except this is a 40foot steel boat)

Share this post


Link to post

NURBS curve tool has 2 modes - the interpolation mode should give you what you are looking for.

Share this post


Link to post

HI BiplabNNA

Thanks for the reply but no, actually it doesn't. If I use that tool and click on eack of the locii in turn and double click on the last one the nurbs curve then does its own thing and misses many of the locus points . If I surface that result I end up with a faceted look instead of a nice smooth curved surface. I suppose what I want is for the locii to be anchor points thru which the nurbs curve MUST go, I don't want VW to choose another path for me. This must be possible?

Share this post


Link to post

Sorry, I can't reproduce this problem. I created 3d locii at the vertices of two rectangular extrudes. Then I used the NURBS curve tool - first mode - the interpolation mode - and clicked on the 3d locii. The curve generated does pass thru all the locii. One thing you should notice and be careful about is that as you click on the locii, the smartcursor cue "3D locus" should appear on the screen - only then you can be sure that you have actually snapped to the 3D locus points.

Share this post


Link to post

Hi BiplabNNA

Man I must be missing something. I've done just as you directed and I end up with the same result, the cuve bypasses many locii points. However what I have noticed is that if you zoom in close to one of the points the curve does miss the ponit but if you click on the curve, the 3D loci highlites. Maybe it really is passing thru the points but because the line appears to be made of many short line segments its just a resolution problem. In which case I would need to be able to increase the number of line segments that make up the curve. Or am I way off the track still? Maybe I could send you my file and you could have a go yourself and see if you get the same result

Share this post


Link to post

I'm not sure what the hull terms are, but I'm guessing you want a point at the bow and stern?

When I tried drawing the complete hull, I got your results, but can you try drawing one side and mirroring? I found when drawing an open curve, the curve stayed aligned to the loci. So anywhere you need a hard corner should be a new curve.

Share this post


Link to post

Hi David

Thanks for the reply. I actually was doing as you suggested and I still have the problem. The curve "passes" thru 18 locii points but when the hull is surfaced I end up with 5 distinct flat planes instead one a nice smooth curving surface. Obviously all curves in CAD are actually made up of small straight line segments but I would have expected a few more than 5 over a length of 13500mm. Again I wonder if there is some resolution setting I can adjust.

Share this post


Link to post

I did see what you mean when I zoom in on the curves -

Try setting the Nurbs Curve degree highter?

Also, if you are converting to a mesh - under VW preferences/3D tab - set 3D Conversion Res to very high.

Share this post


Link to post

"Obviously all curves in CAD are actually made up of small straight line segments"

No, this is not so. Nurbs are the 3D equivalet to 2d bezier curves. The surface of the hull may seem to be flat, but if the control points describe curves, they are in fact not flat.

Mike 18 control points are a lot - far, far too many if you want a harmonic surface. That is why the resulting plane is broken into 5 distinct entities.

Share this post


Link to post

Hi Kaare

Thanks for the info. If 18 points is too many though, how do I then get the curve to follow the prescribed shape?. My reason for 18 points in the first place was to try and get what I thought would be sufficient resolution. My theory being that the more positional data I supply, the more accurate the curve would be...is this an erroneous asumption?

Maybe the easiest way for me to understand this is for you to tell me how you would draw a curve that must follow a prescribed path.

Share this post


Link to post

Mike,

I can't reproduce the NURBS not passing through the loci thing, but I can offer some ideas.

BTW, when you say that you want the curve to follow your shape, what sort of error over what sort of dimensions are we talking about?

I presume you're using the loci to define the profiles of "bulkheads", then drawing NURBS curves through the loci, then lofting the curves to get the surface. (?)

Firstly. I would make only a half hull and add the 2 sides later.

Use the align tool on the curves to ensure that you get a straight centreline.

Secondly your lofting curves should preferably all have the same number of verticies and of the same type.

If you have large differences in number and type, you may well end up with a group of surfaces whose edges don't even touch one another in places.

3rd, if you have Corner verticies in the lofting curves (the chine is the sharp "edge" along an otherwise smooth curved hull, yes?), the resulting surface will be discontinuous. IE you will end up with a group of surfaces, not one single surface, with a join along the line of corner verticies.

You should not use Polylines and convert to NURBS for the same reason.

4th Getting NURBS to follow a specific profile is a major exercise in fiddling in the same way that tracing a Cubic spline Polyline with a Bezier polyline is. You can get the hang of it though. (hence me asking about acceptible tollerances)

It would be a whole lot easier with better 3D snapping (hint Biplab ;-)

In general, the fewer verticies the better.

and lastly, (I thing this might be the crux of one of your issues here)

Open GL does not display NURBS properly. You need Final, or Custom Renderworks with NURBS turned on to see the surface correctly.

I made a hull (with chine) and saw -in Open GL exactly what you described; "flat" faceted surfaces which did not pass through (or even close to) the lofting curves. When viewed in Final Renderworks, however, the surfaces were smooth, continuous, and lay on the Curves.

HTH,

BTW, thanks to Tom Kyler for helping me a while ago with some of these vital clues.

cheers,

N.

Share this post


Link to post

Mike

Get hold of the OzCAD multimedia CD (A$25). There is an excellent QT movie on there showing how to model a boat hull. It will probably answer your query, and airmail to you in NZ won't cost that much. If you order it tomorrow it will probably get to you on Monday or Tuesday

For more information go to the OzCAD website at www. ozcad.com.au Follow the links Training / CD's

Share this post


Link to post

NURBS are so powerful..they're ideal for all surfaces. Recently, I created a simple single fractal NURBS surface and then iterated it 1440 times to create an icosahedra spheric shell.

-

Link to a VRML 1.1mb movie of the structure:

Fractal NURBS surface icoshedra VRML

**

FACTOID-Using just 24 single fractals to create a Tetrapheric module can generate all the positive & negative 'hull' curvatures.

enjoy

Share this post


Link to post

Mike,

I was thinking about this again,

In your file, if you go to Preferences>Document preferences>Raster Render>Open GL Options, set the Detail to Very high, and tick the Use NURBS box.

Does the hull still look faceted with the surface not respecting the Curves?

If I do this it comes out nice and smooth almost like Final Quality, but still with a few little irregularities.

Whoops, in VW11 the Open GL options are under the View> Rendering Menu.

[ 08-29-2005, 03:24 AM: Message edited by: propstuff ]

Share this post


Link to post

Hi Nicholas

What worries me about all this is that no one seems to be able to duplicate what I'm describing. In regard to your question on acceptable tolerance, the worst "miss" I can measure is 4mm and although that would be well with construction tolerance for a hull with 3700mm beam, I'm not so sure it's is acceptable in the CAD environment.

So can you please just check something for me. Draw a series of 3D locii, say 1 every metre for 10 metres. Make sure they are in a curve with a displacment of say 1500 mm. Then draw a NURBS curve through them. Now zoom up close to one of the 3D locii points. If your curve goes straight thru the middle of the loci point when viewed in any plane I'll kill myself :-) (sob sob)

Also I tried setting the Open GL to high res as you suggest but it made no difference.

Share this post


Link to post

Mike

I get your results, don't kill yourself.

I noticed that the effect is not as bad when I set Preferences/Vectorworls Preferences/3D tab/3D conversion to Very High, but it is still there.

Also, the nurbs curve is displayed as a series of straight lines.

Share this post


Link to post

Well, Mike; put the knife down for now,

I made the 3D loci in a plane and my curve went exactly through all the loci even at 100,000,000,000% zoom. but...

Then I displaced the loci in the Z plane to raise the bow and stern and traced again in plan view. The curve went exactly through all the loci except one which was out by about 3mm. Did it again; same locus, same result. It doesn't matter what view I trace it in, the curve still misses that one locus. Hmmm

There seems to be 2 issues here; one is the curves and loci issue, and the other is the faceting of the resulting loft. Is that correct?

BTW, you said you have been lofting from the gunwale to the keel; have you tried lofting cross section (bulkhead) profiles down the length of the keel?

[ 08-29-2005, 09:55 PM: Message edited by: propstuff ]

Share this post


Link to post

I get those results every day i work with nurbs curve. I think The people of NMS, must solve this. If we want to obtain good results in wireframe renderings and hidden line renderings.

Share this post


Link to post

Thanks everyone

Katie, if you are watching this thread, could you please provide us with a definitive answer on this issue?. As you can see there does seem to be some confusion on this issue.

The question is: How do we get a NURBS curve to go exactly thru a series of 3D locii?

Share this post


Link to post

Hi Nicolas

Actually the Rendersing looks pretty good in FQRW and is not too bad in OpneGL. I guess my real issue is still the NURBS and Locii point thing. But there is also one other thing I can't resolve. That being the intersection point of the solids. For example along the chine I get gaps between the solids. Considering they both share a common set of locii along one side I don't understand why the junction of the two pieces isn't perfect. I've tried to use ADD SOLIDS I've tried INTERSECT SOLIDS but I get varying results. I might try to to fillet it next.

I'm going to go back and study your post of the 25th August again. I think clearly there is stuff here that I am missing.

Share this post


Link to post

I don't know any of the maths involved in NURBS (in fact I don't really want to know: Ive got other things to worry about, as far as I'm concerned that's the job of the computer/program ;-)

but ,....regular NURBS verticies "pull" on the curve in the same way as Bezier verticies pull on polylines.

Interpolated NURBS verticies are supposed to lie on the curve like Cubic spline verticies do for polylines.

This seems to definitely work if the NURBS curve has a degree of 1 (ie straight segments b/w verticies) but, from my experiments with this, for NURBS with degrees over 1, the curve will only lie exactly on the verticies if they are in an alignment that is in "agreement" with where the curve wants to go. EG if you have a series of loci that are in a nice, smooth continuous curve, the NURBS will pass through the loci, but if one is "out of line" such that the curve will have to reflex a little, that vertex will behave like a " regular" one, and pull on the curve but the curve will not exactly pass through it.

Without knowing the maths, this seems to be a fault in the program to me. Like you, if it says that an Interpolated Vertex lies ON the curve, I would expect that it ought to.

I'll talk later about the gaps between the surfaces later.

Biplab: can you clarify this??

N.

Share this post


Link to post

Hi Islandmon

Wow!!!! you clearly are a guru. I think sadly though, most of us haven't a clue what you are talking about . You iterated it 1440 times to create an icosahedra spheric shell. What the heck does that mean? and how do we learn how to do that cool stuff?...I'm impressed.

So Mr Guru, please tell us lesser folk how you make NURBS curves go exactly through 3D locii points, it's pretty clear from that picture that you know the secrets of doing "bendy bits" :-)

Share this post


Link to post

I have no idea how the curve does not pass thru the loci that you snapped to in interpolation mode. May be somebody can send me a file and I can take a look. I guess I still do not understand the problem after all these mails.

Share this post


Link to post

I have a simple example I can send you biplab, but I don't have your address.

The verticies have snapped to the loci, but a curve of more than 1 degree does not (appear on screen to) pass through them.

N.

[ 09-01-2005, 02:40 AM: Message edited by: propstuff ]

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

 

7150 Riverwood Drive, Columbia, Maryland 21046, USA   |   Contact Us:   410-290-5114

 

© 2018 Vectorworks, Inc. All Rights Reserved. Vectorworks, Inc. is part of the Nemetschek Group.

×
×
  • Create New...