This is a Python script that I've been working on for Blender, to generate 3D geometry based on bezier curves. My goal is to produce a variety of attractive and accurate Celtic knots and braids to use as artistic elements in my projects.
I developed a customizable picture frame as a testbench for my work. You can use it as a stand-alone project to generate a picture frame with text (or without).
Adding Celtic knot elements to that, my Celtic Picture Frame is an early result of these experiments.
I have more ideas and enhancements that I hope to share later. The script is is in a usable state now, so give it a try!
UPDATE: 2012 Mar 6 -- version 1.1. uploaded to fix bugs in the utility function ReadCurveControls()
You will use the script file "blender bezier rev1.py" in Blender. It is freely available at:
Blender is highly sophisticated, professional-grade, 3D modeling and animation software. It is absolutely amazing -- one of the best software packages I have ever used. But please expect to spend some time learning to use it. There are many excellent tutorials and manuals on the Blender web site, and on YouTube.
Open the Python ".py" file in a Blender text editor window and press "Run Script". This will produce bezier curve objects and mesh objects based on the curves. Modify the script to create new curve geometries, or use Blender object modifiers to adjust the results.
Edit "controlPoints" to change the shape of the curves. Add, remove or relocate points, and control handles.
Edit taperControl and BezierCircle lists to change the curve shaping.
The script hides the source objects and creates meshes based on them.
Use File->export to save selected objects as an STL file.
After editing curve nodes in Blender, use the ReadCurveControls function to dump the control values -- you can use them to update your script.
Please send bug fixes and enhancements.