# How can I fill a "spinned/screwed curve"?

I am trying to make a cross-section of an object with a rotational symmetry. I thought using a curve for the cross-section with the screw modifier would be a better way to do that than using boolean modifiers on a mesh.

But if I use a filled 2D curve and the screw modifier, the fill gets messed up as in the attached picture (Objects A and D). If I use a 3D curve, there are just no caps (Object B).

Object C is what I would like to achieve. I made it by converting the bezier curve to a mesh, creating a face and then using extrude->spin in edit mode. But then I loose the flexibility of editing the cross-section.

How can I achieve the same while keeping the cross-section a curve?

Blender example file:

• I can't read your mind.. :) which one is BezierCurve .001? Commented Nov 18, 2020 at 16:20
• Sorry, I was planning to add the .blend file, but could not figure out how. It's the one in the middle between the uncapped screwed bezier and the circular tube. Commented Nov 18, 2020 at 16:42
• Added labels to screenshot. Commented Nov 18, 2020 at 16:52
• Cheers! To add a .blend file, visit blend-exchange.giantcowfilms.com, and fill in the forms (one of the fields is the url of this question) Commented Nov 18, 2020 at 16:54
• Thanks. File added. :) Commented Nov 18, 2020 at 21:28

I found one possible solution by simply using three linked curves, one for the solid and two for the caps. This can be further improved for flexibility by adding drivers.

See attached blender file and the included README:

In it, you can change the cross-section angle by changing the X rotation angle of "BezierCurveDriver".

Changing the material or editing the bezier curve will affect the extruded solid and the two caps.

How to do it:

2. Make it 2D, cyclic and filled:

• Properties->object data properties->Shape->2D
• Properties->object data properties->Shape->Fill Mode->Both
• Properties->object data properties->Active spline->Cyclic: check box
3. Optional: Now you may want to make your curve flat along the planned rotation axis (X for instance), by setting the some or all of the handle types to "free" and aligning some of the control points on that axis:

• Go into edit mode (press tab with the curve selected with the mouse in the 3D viewport)
• Select desired nodes
• 3D Viewport->Control points->Set handle type->Free (or press V and select "free")
• Position control points along X axis as desired (snapping, scale YZ zero, enter Local/Global coordinates, etc...)
4. Make sure you are in Object mode, then duplicate the curve twice with linked data by pressing Alt-D (or 3D viewport->Object->Duplicate Linked):

• One will form the solid by using a screw modifier: "BezierCurveWithModifier"
• One will form the bottom cap: "BezierCurveBottomCap"
• One will form the top cap and drive the angle of the screw modifier: "BezierCurveDriver"
5. Add a screw modifier to one of them ("BezierCurveWithModifier" in this example):