Hi All,
Just wondering if someone could help me; is there a way to extrude a profile along a 3-dimensional b-spline curve, without the profile rotating as it moves further along the path? For example, if I extrude a line that is perpendicular to a b-spline curve, and the start and end points share the same Z value, part way along the extrusion, (measuring perpendicular on the resultant b-spline surface) the start and end points differ in Z value, due to the sweeping 'rotation' of the b-spline path since the bspline is curving in both horizontal and vertical planes. Below is an example of the result:
Is there a function that would essentially lock the rotation of the profile as it is extruded along? I was thinking of using 2 'rails' for my swept section, however it is difficult to offset the original b-spline when controlled by poles instead of through points. I may need to resort to recreating the b-spline through control points and see if that yields better results but was hoping there might be a neater solution!
Thanks in advance,
Edward
Hi Edward,
I assume that you are using BSplineSurface.SweepCrossSectionAlongPath. An alternative approach to ensuring that the profiles are horizontal would be by placing CoordinateSystem nodes along the B-spline curve (for example ByParameterAlongCurve, or BySpacingAlongCurve), providing an up-vector (e.g. baseCS.ZDirection), creating profile lines based on the coordinate systems' YDirection (XDirection is tangential to the curve), and then using those to create the B-spline surface using the LoftCurves technique. An example is attached.
HTH,
Volker
ExtrusionAlongPath.dgn
Answer Verified By: Edward Ashbolt
That's perfect Volker, exactly what I was looking for... I wasn't aware that you could change the order for lofted sections! In the end it was just that one setting I needed to make the script work as intended. It's always the small things that make all the difference!
Cheers,
Ed