Unrollsrf/Smash Perforated/Panelised Curved Polysurface for lasercutting

Hi everyone, first time here. I’ve been trying to flatten some polysurfaces created with GH in rhino. Some of the surfaces flatten nicely, while others get distorted.

The highlighted curves above are the ones with some issues. When I unroll them, some unroll fine like the ones on the right. Those two unroll into odd geometries as highlighted in this image below.

I am trying to flatten these curved surfaces to laser cut them and make it into a model (they comprise of individual panels which I used join to connect together), could anyone kindly suggest how I can get these to flatten nicely? Thank you!

edit: I can’t seem to upload the file here, it keeps giving me an error message. I’ve uploaded the rhino file to this google drive. https://drive.google.com/file/d/12B9qnCgI5cKl_-Dh63Va22HVD_bEeae8/view?usp=sharing

The file you uploaded is 125 MB which is probably the reason you could not upload it directly. Can you upload a .3dm file with one example of a surface with flattens without distortion and one example of a surface which distorts when it flattens. You can use Export to export selected items to a new file.

Surfaces need to be “developable” to unroll without distortion. A developable surface is curved in only one direction. In practice this means that a developable surface is a ruled surface with zero twist along each rulings. Note that all developabe surfaces are ruled surfaces but not all ruled surfaces are developable surfaces.

The DevLoft command in Rhino 7 can be used to create developable surfaces. The DevSrf plugin which is available for free from McNeel can also be used to create developable surfaces. (The Rhino 6 version works in Rhino 7). https://www.food4rhino.com/app/devsrf

Here is the file. Surfaces SFTE II for Modelmaking.3dm (16.0 MB).

I’ve download devsrf, but upon trying to install the plug in (double clicked it once) it repeatedly launches new copies of rhino and kept opening new files until I ended its tasks within task manager.

I found devloft within rhino however. Are they the same thing?

That is very strange. Normally a plug-in is installed by simply dragging it onto the Rhino screen.

The directions for installing and using DevSrf plug-in (click on “+ more” below the description on the website to see the instructions.):


  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.

No, they are different. Both create developable surfaces from pairs of curves but use different methods.

Try a different approach. Model the surfaces without the holes, then add the holes.

Create the edge curves and the crease curve. The overall surface will need to be split at the crease to flatten/unroll without distortion.

Create two developable surfaces.

Add the holes.

1 Like

Indeed this has worked! Even though the perforations are not 1 : 1 with the model, I’ve managed to achieve the desired effect nonetheless. Thank you so much!