Add "Sweep" features to the Shaper

Please extend the 3D modelling capabilities of the Salome Shaper with “Sweep” features:

The “Sweep” features should include:

  • Sweeps of multiple profiles (start-intermediate-end-profiles) along multiple guide curves that define the interpolated profile dimensions
  • Simple definition and linking of the profiles and giude curves which are at least at the start of the operation in different planes (suitable linking constraints e.g. to be able to link profile to guide curves)
  • The possibility to create closed shapes (some CAD sweep implementations suffer from the problem, that the end of a shape has still (the small) cross section shape i.e. a hole that needs to be closed hence sweep to point e.g. where two guide curves are joint needs to be there.

What`s currently lacking is the possibility of control the intermediate (cross section / profile) dimensions of the final shape along the shape using guide curves. Dimension control of free form shapes is very relevant for areodynamic and fluid dynamic bodies. Think of wings, wing bodies, boat hulls, drones, windpower systems, trains etc…

In case of a wing, two guide curves would define the planform (Top view) while multiple profiles would define the wing profiles along the span (cross sections) and implicitly the degree of freedom of intermediate interpolation between the profiles if different along the wing span to ensure the aerodynamic performance.

An example of a part designed with such a feature i.e. leveraging multiple guide curves:

The design process is shown here:

have you already tested whether the Salome function “pipe” can solve your tasks?
with kind regards

Hello Luve,

yes, I tested the “pipe” function but it lacks the scaling capabilities of two (or more) path/scaling rails/curves/guides as they are called in other 3D modelling applications. If the “pipe” command had a fourth option offering multiple i.e. two or more “scaling” paths + would allow to close the shape it should work.

An example would be the wing of the WWII Spitfire plane with its iconic planform. Such wings have 3+ different profiles along the wing span (to meet local aerodynamic properties) and the planform (top view of teh wing) is defined by a leading edge (nose) path and the trailing edge path. Together they scale the “length” of the wing “cross section” profile(s) which also transition from one profile to the next along the wing span.

At the moment, the “pipe” command also lacks a “closing” option, the end is always an “open” profile. You could also imaging a ship hull - how to draw/design the “closed” bow with a bulb and a tip.

I need it for aerodynamic wing and body design.

Kind regards,


Hello Klaus,
maybe you found an appropriate way by yourself.
My hint would be to use the “Build” menu with its entries intensively.
Especially the “Wire”, “Face” and the “Filling” options should give you what you need.
As an example I attached a picture of a model I created in short time.
Feel free to contact me directly.

Best regards

Thank you Wolfgang but such “improvisation” won’t work.

It’s really about exact sweeping of curved profiles (e.g. multiple wing profiles which differ for aerodynamic reasons = optimal lift distribution) along two or more curves which define the wing planform (top view of the wing). The sweep scales and blends the profiles.

A critical point of an implementation is always the wing tip or ship bow which are “closed”. A ship hull would be created by sweeping multiple cross section profiles along the two curves/paths defining the top/deck shape and the curve/path defining the side view. Even more challenging would be the sweeping functionality needed to be able to design a wooden shoe making core which would certainly require sweeps along multiple paths or think of the nose/cockpit section of an Airbus fuselage which is a closed 3D shape, too. How to draw such 3D bodies?

I think the “pipe” functionality needs to be extended to meet the requirements. Do you know about Salome programming? I have not been able to isolate the “pipe” function code.