(by lowell)
DevSrf is a Rhino plugin for making developable surfaces
Support Email

Developable Surface Construction

Summary: Developable surface prototype.
Contact: Lowell


The DevSrf command displays the developable ruling lines between pairs of rails.

The ruling display updates as you edit the rails so you can see when you have a shape that is a developable surface.

The DevSrf dialog box controls the display of developable surface ruling lines between pairs of rails.

The ruling lines are found where the tangents at the ends of the ruling lines are coplanar within a twist tolerance, which means the surface normals at the ends of a given ruling are also parallel.

Ruling lines between more than one pair of rails may be displayed at the same time.



  1. Drag the DevSrfV6.rhi file onto Rhino6 to install
  2. At the Rhino command prompt, type DevSrf.


The DevSrf dialog box controls the display mode options.


Pick rails: Prompts for a pair of rails.

  • Disable display: Clears the selected rails and turns off the display.
  • Create surfaces: Creates surfaces from the rail pairs using the current ruling lines.
    • If there are crossing ruling lines or ruling lines ending at the same point, a surface will not be made. You will have to fix these problems.
  • Show intersection: Displays an intersection curve between the ruling lines and a selected plane.
    • Prompts to select a planar surface.
    • It can be useful to construct surfaces that are larger than the needed area and to trim the surface to the desired shape. This intersection curve display helps you visualize where the edge of the surface would be.
  • Show ranges: A range of ruling lines can satisfy the test requirement, especially if you are using a large Twist tolerance. Select this checkbox to display that range as a blue V.
  • Ruling density: Controls the number of ruling lines.
    • Increasing the ruling density can result in a better intersection curve.
    • Reducing the density can make a less dense surface, but the shape may not be the same as it would with more ruling lines.
  • Extension factor: Extends the ruling lines past their ends if greater than zero.
    • Can resolve triangulation problems at the ends of ruling lines.
    • Extending the rail curves before picking the rails makes a control point to edit at the end of the extension.
    • Any ruling lines beyond the first one after the end of the initial ruling line will be discarded when a surface is made.
  • Twist tolerance: Limits the amount away from parallel the surface normals can be at the ends of each ruling line.
    • The values that correspond to physical reality are unknown at this point, so be careful using this setting.
    • Maybe this value should be scaled by the length of the ruling, but its not now.
  • Alignment modes: Control how a ruling line is selected when there is a range that would satisfy the test requirement.
    • Least twist - Minimizes the angular difference the surface normals at the ends of the ruling lines.
      • If a ruling line is found with the normals exactly parallel, it is drawn green.
      • If the best ruling line does not have the normals exactly parallel, it is drawn red, but it is still developable within the specified tolerance.
    • Shortest - Chooses the shortest ruling within the range.
      • If the ruling line is the shortest possible ruling between the rails, it is drawn green.
      • If it is not the shortest possible ruling line, it is drawn red, but it is still developable within the specified tolerance.
    • Parallel planes - Prompts for a direction normal to the planes.
      • Chooses the ruling line that is closest to lying in a plane perpendicular to this direction.
      • If the ruling line is within system angle tolerance of being in this plane, it is drawn green.
      • If it is not within tolerance, it is drawn red, but it is still developable within the specified tolerance.
  • Swap rails: Changes which rail is divided first.
    • Ruling lines are generated by dividing one of the rails into the number of divisions set by Ruling density and finding the corresponding location on the other rail that satisfies the conditions.
    • Since the pattern of the ruling lines depends on which rail is selected first, a better result may be obtained by dividing the other rail first.

Current Limitations

  • Moving ruling lines to adjust the rails is not possible.
  • Culling crossed ruling lines or ruling lines that end at the same point is not possible.
  • If the ruling line with the least twist is found far from the closest point across to the other rail, no way currently exists to limit the ruling lines to go directly across to the other rail or to prevent them crossing other ruling lines.



License Cost:
Rhino 6 for Win