ExtrudeCrvTapered - bad result


(David Cockey) #1

In the attached example ExtrudeCrvTapered produces a polysurface with overlap. The extruded curve is smooth with no problems. ExtrudeCrv and ExtrudeCrvTapared produce simple surfaces.

<a class=“attachment"href=”/uploads/default/original/3X/4/a/4a3cfebba6a07ff1b430031a3caf8af4b6c7fb74.3dm">TaperedExt01.3dm (238.5 KB)


Extrude srf tapered failed
ExtrudeCrvTapered Inaccurate
Closed corners on tapered extrudes
(David Cockey) #2

ExtrudeCrvTapared with a planar version of the curve produces a simple surface.


#3

i think the only way you’ll get similar results between ExtrudeCrvTapered and ExtrudeCrvToPoint is on a simple 2D curve such as a circle.

otherwise, tapering an extrusion doesn’t mean all parts of the curve with converge into a single point… (that’s what ExtrudeCrvToPoint does :wink: )


(Pascal Golay) #4

Hi David- I see that… offsetting the curve, which is what is involved here, gets uglier the farther the offset, so eventually, it is not surprising if a kink develops, but in this case simply offsetting the curve to the amount used in the taper returns a different curve- cleaner, so there is something else going on with generating the end curve for the tapered extrusion that I am not aware of, I’ll see if the developer can shed any light on it. Straight and ToPoint extrusions do not need that ending curve to be made, so they retain the input curve structure.

-Pascal


(David Cockey) #5

I know that ExtrudeCrvTapered and ExtrudeCrvtoPoint produce different results. The problem in this case is ExtrudeCrvTapered resulted in a polysurface with the two individual surfaces overlapping over the entire length of the extrusion. This is a bad result given that the starting curve is smooth…


(Pascal Golay) #6

Hi David- you may end up, eventually, depending on angle and distance, with a polysurface from even a smooth input curve. For example, extrude an ellipse, even an rebuilt one, that is degree three and G2 internally, with ExtrudeTapered. Eventually that will make a polysurface, because the offset of an ellipse, if you take it far enough, has kinks in it. However, your example looks to me like it should not be at that point yet.

-Pascal


(David Cockey) #7

@pascal The problem is dependent on the mesh settings.

I opened the file I attached in the first post and tried to replicate the result with ExtrudeCrvTapered but got a single surface, not the overlapping polysurface.

Then I remembered while creating the example I had adjusted the mesh in the EMap command. So I used EMap, clicked on Simple Controls and moved the slider to More Polygons at the right end of the range.

Then I used ExtrudeCrvTapered again and the result is the same polysurface with overlap as previously. A sufficiently short tapered extrusion results in a simple surface without overlap.

Resetting the mesh to coarse does not fix the problem. Using ExtrudeCrvTapered to create an extrusion of the same length produces another polysurface with overlap.


#8

when you offset the curve in the direction you have, the curve kinks… basically, the command is offsetting the curve, then moving it, then lofting between the two curves…

you can however dupEdge the ‘new’ curve created via the Taper (well, there’s two of them), join them, then loft between the original result and get a surface instead of a polysurface so maybe there is some sort of error happening?

[EDIT] oh wait- nvrmnd… i had _CreaseSplitting turned off on this computer… if i _Loft the curves with crease splitting on, i end up with the same surface as the extrudeCrvTapered version.


(David Cockey) #9

I agree that kinks can occur if the taper is long enough. However in this case the problem is occurring when the taper is short enough that the curve doesn’t kink.

There is some sort of error occurring. The edge at the other side of the bad polysurface from the starting curve is not the same as a curve with constant offset. The amount of offset varies.


#10

right, the amount of offset varies in accordance with the angle which is set.

i assume you’re using the X axis as your direction in the example(?) and if so, i can ExtrudeCrvTapered to around half the distance (at 5º) you’ve done and still end up with a single surface… i don’t know how to figure out the exact point in which the offset kinks but i’m pretty sure your example has gone beyond that…

that said, pascal is in the thread and i keep posting on top of him (like, there will probably be a post by him immediately above this one once i hit reply :slight_smile: )…he knows better than i.


(David Cockey) #11

The offset should be 4.64072. Offset the starting curve by that amount. The result is a smooth curve. Move the offset curve to the same position as the small end of the taper. Note that the offset curve does not match the polysurface from ExtrudeCrvTapered. Loft between the starting curve and the offset curve with straight sections. The result is a smooth single surface without overlap.


(David Cockey) #12

Yes, I’m extruding in the direction of the world X-axis. The length of the taper is shorter than results in kinks in the offset curve. See my previous two posts.


#13

are you sure? that may be true if the curve were planar but since it’s not, the offset distance will probably have to vary in order for the surface to maintain the proper angle…

(i’m not saying your calculation is wrong- i haven’t thought it through… it’s just that on first think, it seems like the distance may vary since the curve isn’t planar - and you’re not tapering perpendicular to that plane either.)


(David Cockey) #14

Yes, the offset is constant around the taper. It is normal to the direction of the tapered extrusion as well as to the curve.

Amount of offset = taper length * tangent (taper angle)

In this case the taper length is 17.319, taper angle is 15 degrees.


#15

just an example of what happens when you use the command on a planar curve but in a direction that isn’t perpendicular to the plane…

your example is doing this plus, it’s not planar either…

i really don’t think the offset curve when using ExtrudeCrvTapered can be the same result as an _Offset curve at a constant distance… (if it were, this example would be a circle inside a circle)


(David Cockey) #16

As I said above, the offset is normal to the direction of the tapered extrusion as well as to the curve. For a planar starting curve the offset curve is not in the plane of the starting curve. So a tilted circle will not result in a circle as the offset curve. Also the end of a tapered extrusion with a tilted starting curve will be a different angle than the starting curve.


#17

if you taper perpendicular to a 2D circle then yes, the offset will remain constant & on the same angle… draw a circle on the XY plane then taper it vertically… you’ll end up with a circle inside a circle…

i’m not really sure what you mean by "the offset is normal to the direction of the tapered extrusion as well as to the curve. "
i’ll re-read it in the morning though… this is getting confusing :confused:


#18

@davidcockey
Hi, David
Of course ExtrudeCurvTapered will work more smoothley if you do not stay with the Sharp (nor with the Round) Corner option but with the Smooth one instead.
And your curve is 3 degree (in your file), having 2 spans (not a perfect flow or smoothness in curvature). In your case make it 4th degree givess a liitle better result even with the 3rd degree of your curve there. Then when combining the 4th degree with Corner=Smooth… now you’ll see a perfect and expected result.
Overall it depends on how far the extrusion will be and the the parent character of the curve (if curved in 3D the result will be worse), because the radius of the top of the extrusion will be getting smaller in some areas of the curve with changing normal vectors that bring twist in the final resulting tapered surface.


(David Cockey) #19

[quote=“jeff_hammond, post:17, topic:7263”]
if you taper perpendicular to a 2D circle then yes, the offset will remain constant & on the same angle… draw a circle on the XY plane then taper it vertically… you’ll end up with a circle inside a circle…

i’m not really sure what you mean by "the offset is normal to the direction of the tapered extrusion as well as to the curve. "
i’ll re-read it in the morning though… this is getting confusing :confused:
[/quote]But if the taper is not perpendicular to a planar surface, including a circle, then the offset will not remain at the same angle to the direction of the taper… draw a circle on the XY plane then taper it in a non-vertical direction… you will not end up with a circle inside a circle…

I’ll try another explanation of an offset, non-planar curve. Corresponding points between the original curve and the offset curve will lie on:

  1. A plane passing through the point on the original curve and perpendicular to the original curve
  2. A plane parallel to the plane determining the offset direction. In the case of a tapered extrusion the this plane will be normal to the extrusion direction.

See the attached file for an example.TaperedExt03.3dm (143.5 KB)


#20

ha… right. that’s what the drawing i posted earlier shows… we’re saying the same thing :smile:

right, i understand what you’re saying here as well… using your drawing as a basis, that same triangle formed from the offset&move (or however it should be called) can be placed perpendicular at various points all along the original curve… (meaning- the extrusion distance and the angle are being maintained)…

something like this:

right?

so, i guess you’re saying that ExtrudeCrvTapered is failing to do that?