# 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? – Robin Betts Nov 18 '20 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. – KIAaze Nov 18 '20 at 16:42
• Added labels to screenshot. – KIAaze Nov 18 '20 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) – Robin Betts Nov 18 '20 at 16:54
• Thanks. File added. :) – KIAaze Nov 18 '20 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):