Blender - NURBS

Navigation

NURBS Interface

Tool workflow in 2.4 and 2.5:

Blender current curve and surface tool set is optimized for animation purpose and generating
geometry usable for that purpose. Pipes, surfaces, or curves are very easy to generate.
For certain tasks like path creation, pipe design, or 3D text this is very good.
But that is basically everything the system can offer or is capable.


The 2D Function turns a closed planar curve into a planar surface.

Inside the Button Menu for Curves the current selected curve has a Taper and Bevel input.

The taper input defines how much this surface/curve tapers.

The Bevel input enables the use of a second profile curve to generate surfaces such as:

Extrude / Sweep along path: Pipe
Revolve: Cylindrical objects

The Bevel option settings can easily be used to give extruded text curves more 3 dimensional detail.





Planar Curves / 2D Surface
    Done with closing a planar Bezier or NURBS curve.

Lathe
    Done by using the BevelObject function.
    2D Parent Curve : Closed volume
    3D Parent Curve : Open surface

Extrude / Sweep 1 Rail
    Done by using the BevelObject function.
    The Parent curve has to be open

Loft Curves
    Done by joining curves into one 3D object and lofting them together.

New Workflow Proposal:

There can be different ways in how tools are implemented into Blender.
Via the command line or tool bar for non-parametric modeling or
possibly via the modifier stack or node editor with parametric modeling
capabilities.

The biggest challenge is to set up a logical and clear order in how curves
and tools are arranged to design a work tree generating the desired object.




1. Command like interface ala Rhino:

Selecting two or more curves and selecting the desired tool.

This would result in finished surfaces without any sort for construction history.
Very easy to use and fast, just has not ability to go back in the design process.


2. Modifier tool usage:

A first curve can be selected and than additional curves can be selected to
perform certain tasks:

This would add some sort of construction history but the way the modifier stack works
the more tools add the more the modifier section would get filled which would become
quickly unusable.


3. Network Compositor like Grasshopper:

A more flexible approach would be to use the node capabilities of Blender.

Curve input nodes are being added and linked to existing curves.
A NURBS tool node is added.
Links are created which results in a surface


While an initial set-up is required and planing the object design flow is useful but
at the end this is the most flexible and interactive modeling approach.

Most CAD and engineering programs use either a linear construction like
SolidWorks while SolidThinking uses a system very similar to Grasshopper.



Problems:

This workflow should work very easy for simple surface generation tools such as:
  • Loft
  • Extrude
  • Revolve
  • Sweep
  • Planar
  • Edge Curves

The main problem might occur when a tool requires surface to surface,
or curve to curve, or surface to curve intersection.
  • Project

  • Blend

  • Trim
  • Split
How are those intersection tools integrated into Blender and how are they made accessible.
Two basic modeling task illustrate what Blender would have to perform:

Boolean Union:
To boolean union two intersecting cylinders Blender would have to do the following steps:
  1. Generate Cylinder 1
  2. Generate Cylinder 2
  3. Find / calculate intersection between both surfaces
  4. Generate an intersection curve
  5. Use that intersection curve to trim away the inner surface parts of the cylinder.
  6. Join the two trimmed surfaces into one closed surface.

Fillet and Edge:
To fillet an edge between to joined cylinders Blender would have to to the following steps:
  1. Fine shared edge
  2. Define fillet radius
  3. Calculate fillet surface
  4. Find intersection curve between fillet surface and cylinders
  5. Trim cylinder surfaces below fillet surfaces

Attachments (1)

  • NURBS.blend - on May 14, 2009 12:47 PM by claas kuhnen (version 1)
    229k Download