Cutting Corners


One of the challenges in Visio shape design is striking a balance between custom behavior and standard behavior.  The shape designer has one notion about how a shape should be used, and users often have a different notion.  Ideally the shape designer allows as much flexibility as possible without destroying the meaning of their shape.

 

Let’s look at an example.  Suppose the designer wants to create a speech balloon shape.

 

 

The essential part of this shape is the triangle underneath the shape, which implies that the balloon contents come from a speaker.  The shape designer draws the balloon outline and discovers during testing that corner rounding does not work with the shape.

 

 

One way to fix this is to prevent corner rounding on the shape (by setting the Rounding cell to =GUARD(0) ) .  However, this frustrates users who expect corner rounding to work.  Disabling corner rounding for the entire shape is too restrictive.  Users should be able to use corner rounding without changing the original meaning of the shape. 

 

 

In this case the shape designer can improve their shape’s behavior with just a few extra steps.  The trick is to understand that Visio can only draw a rounded corner at vertices where there is sufficient room to do so.  If two vertices are too close, the rounded segment between them will be smaller.  In fact, by putting two vertices on top of each other you can eliminate the rounded corner entirely.

 

 

The image above shows the Shapesheet for the original balloon shape.  The first three geometry rows define the speech triangle.  By inserting new geometry rows with the same vertices, no corner rounding will appear for the speech triangle.  You add a row by right-clicking and choosing Insert Row After.  Here is the updated geometry section:

 

 

Now corner rounding works beautifully.  There are additional things to consider in this speech balloon example such as the resize behavior, text block position and alignment box size.  This post simply illustrates the need for shape designers to be aware of the ways their design restricts shape behavior.  Then they can look for solutions that give users the behavior they expect from any Visio shape.