Jump to content
Developer Wiki and Function Reference Links ×

Filleting a Nurbs Curve


Recommended Posts

How do you calculate the Vertex points for a fillet in a Nurbs Curve?

On the attached I have drawn a 1000 x 1000 @ 20° angle using the 3D Polygon Tool.

I then filleted the angle @ R140 using VW Fillet Tool.

When you double click the result you see 6 vertex points.

The tangent (Adj = 794) is easy to find but how does VW locate the two vertices at 589 ?

I am planing to calculate and AddVertex3D but unless someone can come up with a better idea then I need to find these other two points to finish the fillet.

Link to comment

Thanks Josh,

I've tried that but even though my example is top view, it could just as easily have a twist (z) factor.

If it has a z value then ConvertToPolyline vertically flattens the shape which changes the angle between the lines.

I have nearly finished this macro but I just need to add the vertices to make a proper radius fillet.

Someone wrote the fillet tool in the first place so someone should know the answer to this question.

Link to comment

After seeing this -

https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline

I think it's all too hard for me.

I think this should be on the wish list since VW has already created the Fillet Tool which works on nurbs curves, all we need them to do is create a procedure or function we can use.

Something like h1 := FilletPath (h, 140, var error); which fillets any type of line in 2D or 3D and returns an error code if it can't do it or one of the fillets is less than the required radius.

Anyone else want to comment before I wish it?

Link to comment

You don't really fillet an object, you fillet between two line segments. To fillet a NURBS curve, you have to specify a non-endpoint vertex (as a way to ensure the selection of two segments) and assume that those two segments are straight.

What are you ultimately trying to model? Does the radius need to be precise, or are you just trying to round off transitions?

-Josh

Link to comment

Here's what I am trying to do (attached).

If I draw "1" then I want the macro to fillet the corners, create a profile and extrude along path.

As you can see, if I fillet the corners with the fillet tool and I use a macro that I have already written then I get what I want.

But why should I fillet the corners when VW can do it.

If I change this 3D Polygon to a ConvertToPolyline then I can SetPolylineVertex but when VW ConvertToPolyline it flattens the polygon to 2D.

The only solution is to CreateNurbsCurve to which I have to AddVertex3D and that's why I wanted to understand the fillet mathmatics.

The only other option I have is to call the fillet tool during the macro so the operator can fillet the corners and then the macro will continue to extrude a pipe.

Can you suggest any alternatives? :-)

Edited by WhoCanDo
Link to comment

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.

×
×
  • Create New...