chbergmann / CurvedShapesWorkbench

FreeCAD Workbench for creating 3D shapes from 2D curves
GNU Lesser General Public License v3.0
58 stars 10 forks source link
addons freecad workbench

Curved Shapes Workbench

Total alerts Language grade: Python
> deutsch <

A FreeCAD External Workbench for creating 3D shapes from 2D curves

Installation

Automatic Installation

FreeCAD Addon manager status
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.

Manual Installation

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.

Video Tutorial

JOKO engineering made a great tutorial

"FreeCAD Curved Shapes WB: Make Insane and Exact Surfaces Quick! |JOKO ENGINEERING|"

Tools

curvedArrayIcon Curved Array

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.

WingExample

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.

Parameters

Distribution Linear
Linear

Distribution parabolic
parabolic

Distribution x³
x³

Distribution sinusoidal
sinusoidal

Distribution asinusoidal
asinusoidal

Distribution elliptic
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

curvedPathArrayIcon Curved Path Array

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.

CurvedPathArray

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.

Parameters

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.

curvedSegmentIcon Curved Segment

Interpolates between two 2D curves. The interpolated curves can be resized in the bounds of some hullcurves.

CurvedSegment CurvedSegment2

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.

Parameters

CornerShapeIcon Interpolated Middle

Interpolates a 2D shape into the middle between two 2D curves. The base shapes can be connected to a shape with a sharp corner.

InterpolatedMiddle2 InterpolatedMiddle

Parameters

surfaceCutIcon Surface Cut

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.

SurfaceCut

Parameters

NotchConnectorIcon Notch Connector

Cuts notches into overlapping objects to make it connectable to each other.

NotchConnector

Select two objects, then select Notch Connector. Two NotchConnector objects will be created.

Parameters

Troubleshooting

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.

alt text Lasercutter Techdraw Export

This tool has been moved to the macro LasercutterSVGExport
Install it from the Macros tab in the resources manager.

Examples

Example designs in script format for testing and presenting this workbench.

Horten_HIX_Icon Horten H IX

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.

FlyingWingS800-sIcon Flying Wing S800

A python script that creates the shape of a flying wing RC model.

S800

Faster Better Corsair |JOKO ENGINEERING|

"FreeCAD Curved Surfaces Workbench in Action: Faster Better Corsair |JOKO ENGINEERING|"

Discussion

Please offer feedback or connect with the developer via the dedicated FreeCAD forum thread.

License

GNU Lesser General Public License v3.0