You can try out that code if you want but I don’t think it improves the extrusion. The bisectors need to be at the bisector of the flattened path for the segments along the path to be kept parallel, for the surfaces to remain single curved and to avoid undesired triangulation.
That is what I have done manually in the sketchup file sent earlier.
As you can see, there is no undesired triangulation or other anomalities and it gives the proper profile shape in each vertex.
If the path has a symmetry (like an arc) then the extruded geometry has to have the same symmetry and the profile in each vertex must be the same as well. That is why the profile has to go through the angle bisector of the real path in a vertex and not through an angle bisector of a projection of the path.
only in some circumstances like screw threads where the profile remains upright regardless of rise…
for a banister handrail made from sized material, the profile would need to be square to the path for given rise and all changes in rise or rotation need to be distortions of the true profile, i.e. cut at intersecting angles…
in one case the plane at each junction needs to represent the ‘true’ profile, and in the other it needs to represent the deviation from the true profile…
john
I understand your point, but I am refering to a path being a flat circle (2D) and there I would not want that the profile in the vertices changes size and shape from one vertex to the other ( I am not talking about the orientation). There is a rotational symmetry and the first quarter of a circle has to look the same as the second and third quarter, etc. I would not expect a handrail that gets thinner and thinker when going along a flat arc (x
This example shows that the angle bisector of the path has to be taken and not a projection of it.
I looked at the profiles of the generated geometry and they are neither along the bisectors of the flattened nor the original path.
The generated profiles are placed along the the bisectors of the projected path as shown here:
Since the projection of the arc is an oval curve, the angle is different in different corners. This explains why the profiles have different areas. This old extension, just like native Follow Me, doesn’t cater for curves being curves but extrudes as if everything represents straight edges. The profile width (or rather projection of it) stays consistent along the segments, not at the corners.
In your case you have sized the end segment to be about 98,20 mm wide.
This causes the projections of the segments to also be about 19,20 mm wide, consistently along the whole extrusion.
I could at some point rewrite the whole plugin to distinguish curves from an array of straight segments (something native Follow Me or Offset doesn’t do but I’ve requested them to do so) and fix a number of other issues, but it would take way more time than I have available now. If I ever do it wouldn’t be a free plugin either, but probably somewhere in the price range of 20 dollars.
Agree, the projected angle bisecting line is along the profiles in the vertex. Probably I did not take the same length somewhere.
Projecting the path onto the face normal to the upright vector to calculate the bisector still does not make sense to me. Especially because this method destroys the rotational symmetry when extruding along a flat arc (or along segments arranged as a flat arc). Like this it is for me more a “defined deformation along a path” than an “Extrusion”.
USD20 is fine with me, if the Extrusion respects “symmetries”, meaning that if the path has a constant change from vertex to vertex, then the profiles must be the same.