Curves To Mesh

by Mark Kingsnorth in Scripts and Addons

Quickly create and configure mesh surfaces from bezier curves.  Ideal for creating accurate machine parts or for more organic modelling.

Choose to create meshes from 1, 2 or 4 curves with a customisable number of cuts in each direction that are evenly distributed by default.  Meshes can be created from curves with multiple bezier points.

1 Curve:

An edge-loop mesh can be created from a singular curve. Curves can be cyclic (joined up in a loop) or non-cyclic.

2 Curves:

A mesh surface can be created by joining two selected curves together. Curves can be cyclic (joined up in a loop) or non-cyclic:

4 Curves:

A surface can be created by making 4 curves that have their end points snapped to one another:

Features

  • Works on curves with multiple bezier points.
  • Useful when you need to create accurate pieces of a mesh, like an aircraft, or for more organic shapes.
  • Faces can be set to smooth or have their normals flipped during the creation process.
  • Works on a variety of bezier handle types (Vector, Aligned, Free)
  • A network of curves could be built up to create more complex objects.
  • Can be used as a complement to more traditional modelling techniques.
  • By default the edges will be distributed evenly, but this effect can be reduced (see instructions).
  • Compatible with my other add-ons such as the Plating Generator, Bevelled Extrude and Window Generator.

Any Questions?

Do not hesitate to get in touch with me if you have a question, a new feature suggestion, or an image you'd like to share.  You can contact me through this website, my blog, or by my Twitter page.

Updates

Version 1.0.2

New Feature: You now have an additional option called Curve Profiles To Mesh which will allow you to select multiple curves and create a mesh from the edge loops. See the documentation for instructions.

Fixes: When selecting a curve that has multiple splines, such as the figure 8, the add-on did not create all the shapes.  This has now been fixed when selecting one curve object.

Before Update:

After Update:


Installation

The add-on can either be installed through the Blender UI or by unzipping the file into your add-ons directory.

Blender UI

  1. Go to File -> User Preferences.
  2. Select the Add-ons tab at the top.
  3. Select the Install Add-on from File... button along the bottom.
  4. A file dialogue will pop up. Navigate to the file location where you downloaded the .zip file and double click it.
  5. Search for the add-on by typing "Curves to Mesh" in the search box if it does not already appear. Make sure the checkbox next to the Add-on (Add Mesh: Curves to Mesh) is ticked.
  6. Click the Save User Settings button to make sure the add-on is installed next time you open Blender.
  7. Close the User Preferences dialog box and enjoy!

Manual installation

  1. Close Blender.
  2. Unzip the contents of the  .zip fine into your scripts/addons directory.
  3. The curves_to_mesh folder should be created within this directory.
  4. Re-open Blender.
  5. Go to File-> User Preferences.
  6. Select the Add-ons tab at the top.
  7. Search for the add-on by typing "Curves to Mesh" in the search box if it does not already appear. Make sure the checkbox next to the Add-on (Add Mesh: Curves to Mesh) is ticked.
  8. Click the Save User Settings button to make sure the add-on is installed next time you open Blender.
  9. Close the User Preferences dialog box and enjoy!

Also Recommended...

I recommend you install Add Curve: Extra Objects, available with the standard Blender installation.  This will give you a lot more shapes to play with out of the box:

How it works

The add-on works by automatically:

  1. Creating a set of evenly distributed vertices and edges along the curve(s) you have selected to create an edge loop.
  2. If more than one curve is selected, the edge loops will be joined using either a Bridge Edge Loops or Grid Fill operation.
  3. Optionally apply a smooth operation on the faces as well as the option to flip normals.

How the vertices are distributed

The add-on distributes the vertices evenly along the curve.  This ensures that, when creating a surface, the vertices are connected across edges as smoothly as possible.

This is different from the standard Blender conversion of curves to mesh objects which does not distribute vertices evenly.  The distribution algorithm nudges the vertices along the curve until they are equally distanced from one another.

This feature does have a performance impact on more complex curves - to disable the feature, set the nudges parameter to 0.

Use

Creating Curves

The add-on works on Bezier Curves.  That is, curves that have control handles along them:

You can either create a mesh from:

  • 1 curve: for creating a single set of edges:
  • 2 curves: for creating a mesh between two curves:
  • 4 curves: for creating a mesh between four interlocking curves:

Tip: To create 4 interlocking curves:

  1. Ensure that the Snap during Transform magnet icon is selected and that the Snap Element type is set to Vertex. This will ensure you can create a curve that can snap to another curve's corners:
  2. Create 4 curves and arrange them in a 2x2 layout:
  3. Note that you can add as many control points as you like to make complex layouts:

If you make use of the shapes in the Add Curve: Extra Objects, you can split the shapes into 4 by selecting the vertices to separate and pressing 'p':

Using the Add-On

  1. Select the curve or curves.
  2. Either:
    • Press Space and type "Curves to Mesh" and select the option.
    • Select "Curves to Mesh" under Object -> Curves to Mesh.
  3. Make sure the Toolbar Menu is open by pressing t:

Parameters

The add-on has the following parameters:

Surface Divisions

This is the number of cuts to be made across or down a mesh.

  • Across: The number of cuts across a mesh surface.
  • Down: The number of cuts down a mesh surface (only available when 2 or 4 curves are selected)

Other options include:

  • Flip Normals: Flip the faces of the mesh.
  • Shade Smooth: Apply smooth shading to the faces of a mesh.
  • Show All Edges: When creating a mesh, all the edges will be shown in the wireframe view.
  • Show Wire: The full wireframe will be show even in Solid view mode.

Show All Edges and Show Wire can be turned on or off later under the Object panel:

Distribution (Advanced)

These parameters do not normally need to be changed. They control how the vertices get distributed along a curve.  It is a non-trivial maths problem to evenly distribute the vertices, as the nature of a Bezier curve is designed to put more vertices along more pronounced part of it.  The add-on distributes the vertices along the curve by nudging them along for a set number of times, attempting to make the vertices equally spaced each time.

  • Nudges: number of times each vertex is nudges along the curve.  Note: By setting the parameter to zero, vertices will be distributed in a more Bezier like fashion.
  • Samples: Number of samples between vertices to nudge them along by.
  • Definition: How well a point is calculated on a Bezier curve.

Creating meshes from curve profiles

Object -> Curve Profiles To Mesh

You can also create a mesh from a set of curves arranged in the form or cross-sections, also called profiles.  You can access this option by selecting the curves, pressing space, and searching for Curve Profiles To Mesh. It is also available under the Object menu. 

This will have similar options to creating Curves To Mesh, but instead bridge edge loops between curves to create a mesh.

An additional option is you can set a Bridge Options -> Twist parameter, to control how the edge loops are connected.  See the documentation for Bridge Edge Loops.

Any Questions?

Do not hesitate to get in touch with me if you have a question, a new feature suggestion, or an image you'd like to share.  You can contact me through this website, my blog, or by my Twitter page.

I would like to create a mesh from one curve, for an example a letter, and fill in the faces afterwards. How can I do that?

When the mesh is created from the curve, press tab to enter edit mode.  Then, select all the vertices by pressing a. Then, press space and search for Fill. Ensure that the Beauty checkbox is selected in the options tab.

How can I increase the precision of the even distribution of vertices?

Try increasing the Samples parameter, which will increase the number of steps along the curve where the points are placed.  This can have an effect on performance but the vertices will be better distributed.

Does the Add-on work with cyclic curves that are joined up in a loop?

When creating a mesh from 1 or 2 curves, cyclic curves are supported.  For 4 curves, cyclic curves are not supported.

Sometimes I try and create a mesh and it is too concave. What can I do?

It is likely that the Fill operation does not have enough intermediate curves to define the surface well.  This can often happen with shapes that bend around 90 degrees. I would recommend dividing up the shape more and creating some intermediate curves that can add more definition to the shape you are looking to achieve.

If my curves do not interlock, will the add-on still work?

Yes, mostly: the corner vertices are created by averaging the two points on a corner.  If the curves a generally arranged in a 2x2 manner, the add-on may still create a mesh surface.

How can I separate one curve into several curves?

Select the vertices you wish to separate and press the 'p' key.  This will separate that section of the curve into a new one.

Can I make the vertices on the curve distribute more like a standard Bezier?

If you reduce the Nudges parameter to 0, the vertices should be distributed in a Bezier fashion.

What types of curve does the add-on work with?

The Add-on works with Bezier curves.  Nurbs curves use different control points which do not interlock in the same way Bezier curve points do.

Could you make the tool more interactive like a modifier?

Unfortunately Blender only allows you to make Operators not Modifiers.  Operators work in a one-time way.  I may experiment with making a modal operator, which might allow you to change the curves and have the mesh automatically update.  However when you click away from the mesh, the changes will still be permanently applied.

Why can I not create a mesh from 3 curves?

The add-on creates a mesh using quad faces that would not fit well into a triangular layout.  If you wish to create a mesh this way, I would recommend you split one of the 3 curves into two. This will create a more uniform topology.

Item Rating

This item has an average rating of 5 from 10 ratings by the community.

100%
0%
0%
0%
0%
  • newart about 1 month ago

    Great tool..something Blender desperately needed

  • Simone about 2 months ago

    Such a good and useful plugin. A real timesaver!

  • firman ryan lim about 2 months ago

    super simple and best addon for modeling so fast or quick. creative addon.

  • Jason Allen 2 months ago

    One of the keys to this add on is that it spaces points out evenly. This is a lot more useful for Curves to Mesh than the default Blender option. Author is responsive and helpful. The add-on is great value for the price.

  • Vlad 5 months ago

    In the beginning, I had an issue with using Add-on caused by my Blender’s settings.
    After a few hours of unsuccessfully trying to find the problem, I contacted Mark.
    He responded right away and instructed me what to do to fix it.

    Mark, many thanks for taking the time to help me out.

    This add-on is awesome. Super useful and time-saving.
    It is exactly what I needed.

  • Tania 5 months ago

    Love it love it love it! So simple, great topology and really easy to use. Obviously would be awesome to have it as a modifier but I understand there are some limitations with that. Nonetheless I appreciate that it creates the mesh as a new object and doesn't affect your curves, so depending on your project, adjustments shouldn't be too bad. I'm using this to wrap something around a foot, so being able to setup the path I visually like with curves first is just awesome. Cheers!

  • ostoe22 7 months ago

    This is a great addon, which has tremendously improved my workflow. – For a long time I was looking for a way to loft a hull across several curves in blender. Now, due to this addon, it’s really convenient, to get back to the original curves during the modelling process, to control the form and make design changes, without having to work on the mesh itself, but by just adjusting the control points of the curves. A new hull can be generated at any time with the new 'Curve Profiles To Mesh’ function. The addon is running stable and working really neat, even on complex curves with a lot of points. It’s efficient and a real timesaver. – Great job, Mark!

  • Rikatty 8 months ago

    Hi, Mark
    You are so genius and nice guy.
    I've been looking for such kind of plugin.
    I'm really glad to get this.
    By the way, it doesn't work with Text.
    I've been trying to use the command "Curve to Mesh" with Text, but it said, "You must select either 1,2 or 4 bezier curves".
    What did I do wrong?

    Also, I have a request.
    In "Curve profile to Mesh", I'd like you to add edge shapes to define.
    For example, now when I prepared 3 cycles and center one is smaller than the others, and do "Curve Profile to Mesh", the edges are so sharp and linear.
    In some case, I don't like this kind of result.
    Thank you.

    • Mark Kingsnorth 8 months ago

      Hi Rikatty, Thank you for the good review and kind words! For Text: You need to convert the Text object into a Curve object. This is simply done by selecting the text, pressing alt-c, and then selecting the 'Curve from Mesh/Text' option. This will change the Text object into a curve object which you can then use the plugin on. Note that you won't be able to change the text once you have done this. Regarding your request: I think I understand what you mean; would you like the option to have a smoother transition across the curves? I think that would be a nice feature too so I'll add it to my jobs list :) If you'd like to chat further or have any other questions, send me a message through the 'Contact the Creator' option. All the best, Mark

  • ddunham1988 8 months ago

    Great add-on, very happy to see how quick the bug was fixed.

    • Mark Kingsnorth 8 months ago

      Thanks for bringing it to my attention, it had slipped though the net! I was happy to jump on the bug.

  • Jeff Lange 8 months ago

    Awesome plugin that has so many uses! I love it!

    • Mark Kingsnorth 8 months ago

      Thanks, and great to see it used in ways I hadn’t imagined.

Purchase this item to leave a review!