I think that Rhino would benefit if there was a way to set a custom CPlane with the “Set CPlane to object” command (’_CPlane _Object) via 3 or more selected surface points or a surface edge.
That could be useful for situations where a CPlane must be set to the relative end of a pipe that does not have a perfect G1 radius or another object with variable shape. Currently, to do that, the user is forced to draw a polyline across all control points there (imagine if they are tens or hundreds!) before he or she is able to use the “Set CPlane to object” command.
When the Gumball is set to “Align to object”, and then selecting the 8 control points at the end of a pipe that’s inclined (not vertical and not horizontal), the Gumball refuses to take the common orientation of the control points as a reference for its own orientation and remains vertical.
Also, by allowing “Set CPlane to object” to work on surface edges, users will be able to set a CPlane in a more intuitive way. For example, if I apply “Set CPlane to object” to the end of a pipe, Rhino will not position the CPlane relative to its circle shape at the edge I just clicked. Instead, it will set the CPlane at the middle of the pipe far away from the edge, and perpendicular to the intended plane. That’s counter-intuitive.
It could be avoided by duplicating of the edge and then running the “Set CPlane to object” command, though.