Home » ShapeSheet, Shapes, Visio 2010

Text Along a Connector’s Path in Microsoft Visio 2010

Submitted by Visio Guy on February 9, 2010 – 8:46 am | | 5080 views 16 Comments

A feature lacking in Visio, like for-EVER, is the ability to align text along a connector’s path.

Now, Visio 2010′s new ShapeSheet functions and capabilities finally deliver.

Today we’ll show-off the cool new connector that I’ve developed for you, and get a very light technical explanation as to how it works!

In a previous post, I was re-creating (for fun!) a flowchart that I had seen in the Süddeutsche Zeitung.

In that flowchart, I needed to place connector-text along the actual line of the connector. Every time I adjusted the drawing, the angle of the connector changed, and I had to re-orient the text using the Text Block Tool.

You can see here how I am hastening the onset of arthritis with too much mousing:

Getting connector text to do this automatically is something I’ve wanted to implement for a long, long time. But the ShapeSheet couldn’t do it. I always needed to resort to code to get it to happen.

Today, however, I fired up my Visio 2010 beta and put some new features to work. The result is a connector that places text at the very end, rotated to match the angle of the last part of the connector.

No matter how many segments the connector has, what the terminal angle is, or the line-style, the text ends up in a reasonable position, and correctly aligned with the end:

Not bad, eh?

New ShapeSheet Capabilities Make it Possible!

Visio has added two new functions that I’ve used in two custom User-defined cells of the connector’s ShapeSheet. Take a gander:

User.angPathEnd = ANGLEALONGPATH( Geometry1.Path, 1 )
User.pntPathEnd = POINTALONGPATH( Geometry1.Path, 1 )

Not only do we have new functions in Visi0 2010, but we are able to refer to new types of objects. Up until now, we had to refer to ShapeSheet cells, and only ShapeSheet cells. But you can see that “Geometry1.Path” refers to a thing–a geometry section that is a group of cells. That’s new, and it’s pretty useful.

As you use an automatic connector in Visio, extra segments get added or removed from the connector. This has made it impossible to refer to the “last point” and “next-to-last point”, because ShapeSheet cells were being created and destroyed as the connector was reconfigured.

Now I can simply ask the ShapeSheet to tell me the angle along the path of “Geometry1.Path”, at 100% along the path’s lenght (that’s the “1″ you see in both functions)

Using similar syntax, I can ask for the end point too. The illustrated POINTALONGPATH function tells returns a Visio point-structure (combination of x- and y-values) for the point which is 100% of the way along Geometry1.Path.

This information was enough for me to relocated the shape’s text at the very end of the connector, offset and rotated correctly.

Bonus Features

Getting the text to be aligned at the end of the connector was fun. But I thought; “Hmm. That control handle that you can use to move text on Visio’s default connectors is also pretty cool!”

So I added a right-click context menu action to allow you to choose.

Notice the new, context Action menus that feature the fly-out, cascading items! You can read about these on John Goldsmith’s Custom Context Menus.

Here’s another look at the variations:

Have fun with this new connector. Note that this file uses new features available only in Visio 2010. while the file will likely open in Visio 2007 or Visio 2003, the shape won’t work as advertised.

If you don’t have Visio 2010, you might investigate getting a copy of the beta: Visio 2010 Beta: Sign Up Now!

Text Along Connector 2010 (51.8 KB) - downloaded: 380

Related Posts

  1. Making Bends in Visio’s Dynamic Connector
  2. Visio 2010 Beta: Sign Up Now!
  3. Path Analysis in Visio
  4. Visio 2010 Flowchart Shapes Get Smarter
  5. Oblique Connectors For Your 3D Diagrams

16 Comments »

  • Art Braune says:

    Wow – one more reason I keep abusing Visio as a graphics program…

  • Don Sadler says:

    Doesn’t this functionality exist already in Visio 2007? I can position text on a connector by using the text block tool (click on the little down arrow on the text tool icon on the toolbar).

  • Visio Guy says:

    Don,

    The angle of the text automatically matches that of the connector.

    What you are referring to in previous versions of Visio was the ability to manually position the text somewhere along the connector. To do what I’ve created would require you to 1. move the text box and 2. rotated it to match the inclination of a portion of the connector.

    The illustrations above look obvious and unimpressive because the behavior is natural and correct. But we really haven’t seen this possibility (without code) until now.

  • DaveC says:

    How do you get this connector to do the fancy zig-zag paths?

  • [...] Visio Guy reader posted a question at the end of Text Along a Connector’s Path in Microsoft Visio 2010, asking: “How do you get this connector to do the fancy zig-zag [...]

  • Jeremy says:

    Now if i could get this for text at both ends at the same time, that would be perfect.

  • Jock says:

    Jeremy,

    a cludgy but effective solution would be to create two connectors between your objects, one in each direction.

  • Jock says:

    Of course two connectors would look pretty silly if they followed different routes between the objects, so only really useful for straight connectors.

  • muguk says:

    This looks like it could solve a few problems for me. Many thanks.

  • Pierre says:

    Great, it is exactly what I was looking for !

    But really, really why it isn’t built in Visio 2010 ??
    Really wired.

    Then Chris,
    to be complete how easily you could add the sub-menus :
    Along connector at Middle
    Along connector at Beginning

  • Visio Guy says:

    Pierre,

    I don’t understand your question. It IS built in Visio 2010, and could only be built in Visio 2010, because it uses new ShapeSheet functions.

    Of course I could add the other functions, but so could you! :) Thanks for the ideas.

    Chris

  • Pierre says:

    Well, I must have missed something.
    The fact is that I’m very disturbed by the Visio 2010 ribbon interface.

    I found how to rotate the text manually along the connector but not how to have the text of the arrow follow automatically its direction !

    Pierre

  • Visio Guy says:

    Hi Pierre,

    It isn’t an easy thing to do. The point of this article is to show that it *can* be done. It requires using Visio’s ShapeSheet, something that takes a while to learn.

    I have considered making a more advanced shape, but is probably something that I will have to create for sale because I don’t have a lot time these days for give-aways.

    Thanks for visiting the site and asking questions, by the way!

    Chris

  • Pierre says:

    I understand better now ;)

    So the question is still open :
    Why it isn’t built into Visio 2010 ?

    Pierre

  • Visio Guy says:

    I think Visio has to tread a fine line between general-purpose and special-purpose. With Visio 2010 (Premium), they’ve added a lot of process-specific stuff. This will help a lot of people, but it could get in the way of non-process diagramming folks and third party solutions. The Visio universe is tricky because it is so huge.

Leave a comment!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.

Please leave these two fields as-is:

Protected by Invisible Defender.