Misleading DivideAlongCreases command prompt

DivideAlongCreases command prompt says: Select surfaces or polysurfaces to divide along creases.

This command prompt is misleading because the DivideAlongCreases command works on surfaces only.

No, it works on individual surfaces contained within a polysurface as well…

In Rhino 6 I cannot divide anything. For example, the following model has just one simple surface with sharp kink/edge, and I cannot divide it along the kink. It seems to be a bug.
DivideAlongCreases bug.3dm (94.4 KB)

It’s confusing. DivideAlongCreases only works on creases which are internal to a surface, whether that surface is separate or part of a polysurface. DivideAlongCrease doesn’t do anything if the crease in a polysurface is along the join of two surfaces which make up a polysurface.

(Disclaimer added: Comments below are based on experimentation and observation; not on any knowledge of Rhino coding.)

Two different ways to create kinks/creases in curves and surfaces:

  1. Use InsertKink which appears to alter the knot structure.

  2. By “stacking” control points so that distinct control points coincide in xyz space but the knot structure is not altered. The curvature comb my have spikes at the kink/crease.

DivideAlongCrease only works on kinks/creases such as those created using InsertKink. It does not appear to work on stacked control points.

The example in @Andrew_Nowicki post above appears to have been created by stacking control points, not using InsertKink.

Well, one could say that’s because the the polysurface is already divided at that edge… :stuck_out_tongue_winking_eye:

DivideAlongCreases doesn’t actually explode/separate anything, even a single kinked surface becomes a joined polysurface after running the command, not two separate surfaces.


Divide along creases doesn’t work because your surface doesn’t have any creases.

A crease is an internal discontinuity where the continuity is not G1. You have a degenerate surface where the continuity is undefined at the point where you think there is a crease.

You can split the surface using ConvertToBeziers or SplitSrf. Then you will have two degenerate surfaces. You won’t be able to determine the continuity between those two surfaces because the surface normal directions are undefined along the edge where they meet.

If you construct degenerate surfaces you can expect to see many Rhino commands fail or produce incorrect results. That is how the math works.

You can also merge 2 surfaces that are not tangent using the Merge option Smooth=No

The use of “Divide” in the name DivideAlongCreases is confusing. The Divide command can create multiple distinct curves from a single curve.

DivideAlongCreases at noted above does not result in multiple distinct surfaces or polysurfaces. Instead DivideAlongCreases rebuilds a surface or polysurface with creases as a single polysurface without creases ut with exactly the same shape as the input surface or polysurface.

Yes, perhaps… Always difficult to find terms that work unequivocally, especially in 12 languages. French may be worse: Split = ‘Diviser’ which quite commonly can mean either split or divide…

Can… but also just points without actually ‘dividing’ anything…

The Help description of DivideAlongCreases is:

The DivideAlongCreases command creates a polysurface by dividing a surface into separate parts at kinks or tangents.

Creased surfaces are divided into smooth pieces joined in a polysurface. Creased surfaces within a polysurface are divided and joined within that polysurface.

The first sentence can be misleading. The command does not create separate parts if separate means not joined, and the command does not work at all kinks or tangents, only ones which are internal to surfaces.

The link to the definition of “kinks” says

A kink is a point where a curve dramatically changes direction. The corners of a rectangle are kinks. Kinks can also happen at a point where a curve dramatically changes its the amount it curves. For example a rounded rectangle has kinks where the line segments turn into arcs.

which implies that a kink can be located where two curve segments join in a polycurve, or two surfaces in a polysurface.

Back to the DivideAlongCurves help. The second sentence attempts to clarify but not very well in my opinion. Overall this is an example of a help entry with a meaning that is obvious - if - you already know what the command does. It’s not so obvious if you are trying to learn what the command does.