A FreeCAD External Workbench for creating 3D shapes from 2D curves
Note: This is the recommended way to install this workbench.
The Curved Shapes workbench is available through the builtin FreeCAD Addon Manager.
Once installed all that is needed is to restart FreeCAD and the workbench will be available in the workbench dropdown list menu.
cd ~/FreeCAD/Mod/
git clone https://github.com/chbergmann/CurvedShapesWorkbench.git
When you restart FreeCAD, "Curved Shapes" workbench should now show up in the workbench dropdown list.
JOKO engineering made a great tutorial
Creates an array and resizes the items in the bounds of one or more hull curves.
In this example, the orange base shape is rescaled in the bounds of the red and violet hullcurves. The curves do not have to be connected.
The hullcurves should lie on or parallel to the XY- XZ- or YZ- plane.
The first curve that you select for CurvedArray creation will be the item that is swept and resized in the bounds of the other selected curves.
Distribution Linear
Distribution parabolic
Distribution x³
Distribution sinusoidal
Distribution asinusoidal
Distribution elliptic
If you create a surface with the Curved Array, a different distribution may give you better results.
If you create an elliptic wing, distribution elliptic would be the best solution. If you create the Curved Array inside a half circle, sinusoidal is best. If the hullcurves are created from simple spline curves, parabolic or x³ may give you the best results. If you are unsure, choose linear.
If you create a surface or solid and it looks weird, this may be caused by very small items at the start and end of the CurvedArray. In this case, enter values bigger than 0 for Start Offset and End Offset. This will create bigger start and end items located not at the very end.
To resolve a CurvedArray item to a compound of single objects, go to the Part workbench. In the Part workbench, select Part → Compound → Explode compound
Creates an array, sweeps the elements around a path curve, and resizes the items in the bounds of optional hullcurves.
The items created will be perpendicular to the sweep path.
There is a twist parameter to let the items rotate around the sweep path.
If you do not use hullcurves and twist, this tool is similar to the Path Array tool in the Draft workbench.
The first curve that you select for Curved Path Array creation will be the base item. The second selected curve will become the path. All curves selected after that will be the hullcurves.
The parameters ScaleX, ScaleY and ScaleZ have been added because you may want to rescale the items only in one direction, but the hullcurves normally cover 2 or three room directions.
Interpolates between two 2D curves. The interpolated curves can be resized in the bounds of some hullcurves.
Select two 2D shapes first. The curved segment will be created between them. If you want to use hullcurves, select them also. Then create the Curved Segment.
Interpolates a 2D shape into the middle between two 2D curves. The base shapes can be connected to a shape with a sharp corner.
Cuts a surface to get the outline curve or a face.
This tool is similar to Cross-Sections in the Part workbench, but it is fully parametric and has an option to reduce the complexity of the output curve.
It tries to remove overlapping edges.
Cuts notches into overlapping objects to make it connectable to each other.
Select two objects, then select Notch Connector. Two NotchConnector objects will be created.
If the notches are cut at the wrong place, edit the parameter CutDirection manually. Avoid the value 0,0,0
since this will autocompute new values.
This tool has been moved to the macro LasercutterSVGExport
Install it from the Macros tab in the resources manager.
Example designs in script format for testing and presenting this workbench.
A python script that creates the shape of the Horten Ho 229 (also called Horten H IX), a stealth fighter that has been build in Germany in 1944.
A python script that creates the shape of a flying wing RC model.
Please offer feedback or connect with the developer via the dedicated FreeCAD forum thread.
GNU Lesser General Public License v3.0