• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Visio Guy

Smart graphics for visual people




  • Home
  • Hire Me
    • Hire Me
    • Résumé
  • Products
    • Products
    • Bubble Revision Shape
    • Layers to Pages Utility
    • Rack Unit Dimension Line
    • Radial Elements Tool with up to 100 Wedges
    • Text on a Circle Visio SmartShape
  • Index
    • Articles by Date
    • YouTube – VisioGuy
    • Download Information
    • Suggestion Box
    • Shop
    • Visio Art
    • Visio Links
    • – Visio Shapes & Stencils
    • – Visio Templates & Drawings
  • About
    • About
    • Donate
    • GitHub
    • jsFiddle
    • Reading List
    • Subscribe & Follow
      • – E-mail
      • – facebook
      • – Twitter
      • – RSS
    • Privacy Policy
  • Discussion Forum
You are here: Home / Visio Content / Shapes / Illustration / Center-sizing Smart Shapes

Center-sizing Smart Shapes

April 15, 2008 By Visio Guy 6 Comments

Read Full ArticleVisio has tons of keyboard shortcuts, including modifiers for constraining the resizing and moving of shapes. For instance, with the Shift key depressed, you can constrain a shape to move only vertically or horizontally. Neat-o!

But unless I have totally missed something (which does occur occasionally), there is one feature that Visio could really use: the ability to resize shapes on-center.

The Problem Issue

Currently, when you resize a shape, it grows in the direction in you pulled: left, right, upwards, downwards. If you wanted your shape to stay centered at it’s current location, then you have to move it back after resizing.

Below, we can see what happens in Visio in the case of flowcharts. We’d like the rectangle to stay centered with the flow of the diagram, but resizing moves it down and to the right.

Wouldn’t it be nice to be able to stretch the shape (say, to accomodate more text) without losing the in-line position?

In my own case, I frequently create Visio drawings that use a lot of concentric circles and “concentric” rectangles–along the lines of the squares shown in the thumbnail for this article. Having to align the shapes can get tedious after awhile.

The keyboard shortcut: Alt + S, A can help speed things up a bit by getting you to the Alignment dialog more quickly, but sadly, my brain only has so much space for keyboard shortcuts.

The alignment toolbar buttons aren’t much help either, because there is no “bullseye” alignment feature. You have to center-align in the X-direction, then center-align in the Y-direction. Two toolbar buttons that are accessible via a drop-down, so four clicks in all. (Well, I suppose I could build a custom toolbar…)

Curiously, even Locking X position and Y position via the Format > Protection dialog doesn’t fix this problem. The shape translates on resize, but then remains locked in position! So to stay centered, you’d have to resize half the way in all four directions. Not a good solution.

Download to the Rescue!

I’ve created some shapes that you can download that solve these problems to some extent. They are really designed with drawing in mind, more than for flowcharting, but they could be used for the latter drawing type.

You can quickly lock the position of each shape by one of three methods:

  • Set the Shape Data field: Position Guarded to True or False
  • Right-click the shape and choose Guard Position menu item
  • Click the Smart Tag drop-down icon and choose Guard Position

You can lock or unlock multiple shapes by selecting them all, and setting the Shape Data field.

Once the shapes are locked, you can resize them in-place. Their positions won’t move. When you are done, simply right-click and unlock the position!

Below, we can see the shapes with their various editing options. You can see the smart-tag icons, which change from arrows to padlock depending on the locked-state. The smart tag drop-down menu shows the Guard Position option, and also has some handy options for bringing the shape forward, or sending it backward.

click to view larger image

Under the Hood

For the ShapeSheet faithful out there, I thought I’d say a few words about how these shapes work. The first thing was to define a boolean-type Shape Data field. The significant cells look like this:

Prop.GuardPos.Type = 3
Prop.GuardPos.Value = False

When you change the value in the drop-down field of the Shape Data dialog, Prop.GuardPos.Value changes between true and false.

Next, we needed to define a right-mouse Action cell that toggled the value of the Shape Data field. The interesting cells look like this:

Actions.rmaGuardPos.Menu = “Guard Position”
Actions.rmaGuardPos.Checked = Prop.GuardPos
Actions.rmaGuardPos.Action = SETF(GetRef(Prop.GuardPos),NOT(Prop.GuardPos))

Notice how the .Action cell uses SETF to push a value into Prop.GuardPos? The NOT( ) function makes sure that we toggle false to true, or true to false.

Now, when Prop.GuardPos.Value changes, we need to GUARD or un-GUARD the PinX and PinY cells, which control the position of the shape. We do that with a user cell that depends on the value of Prop.GuardPos and writes to the PinX/Y cells when Prop.GuardPos changes:

User.watchGuardPos =
SETF(GetRef(PinX),IF(Prop.GuardPos,”GUARD(“&PinX&”)”,PinX)) + SETF(GetRef(PinY),IF(Prop.GuardPos,”GUARD(“&PinY&”)”,PinY))

To unlock the position, the SETF function simply writes the current value of the PinX/Y cell to the cell itself. This will overwrite any GUARD() formula that might be there.

To lock a Pin cell, the SETF function writes the formula GUARD( pin_value ) to the cell. This keeps the shape from being moved, and allows the center-oriented resizing feature to work!

Download “Center-sizing Visio Shapes”

s!Aj0wJuswNyXlhShZsNFEVkE2PmkR – Downloaded 2446 times – 103 B
  • Tweet
  • More
  • Pocket
  • Share on Tumblr
  • Print
  • Email

Related posts:

  1. Month Math
  2. Visio Film Strip Shapes: Hurray for Hollywood!
  3. SmartShape Tutorial: Fading Trees
  4. Visio Advent Calendar
  5. Constraining Angle with the BOUND ShapeSheet Function

Filed Under: Illustration, Power User, Shapes, ShapeSheet Tagged With: Custom Properties, Formulas, Functions, Locking, Protection, Right-Click Actions, Shape Data, ShapeSheet, SmartShapes, Tracing

Previous Post: « How Big Is My Shape?
Next Post: Importing Images as Backgrounds for Tracing »

Reader Interactions

Comments

  1. Philippe C says

    April 15, 2008 at 9:12 am

    Don’t let’s forget the infamous “Shape – Operations – Offset”.
    Do you have an idea why they chose to give us 2 sides by default ?

  2. Visio Guy says

    April 15, 2008 at 2:41 pm

    Excellent tip, Philipe!

    You can quickly make an “inner” and “outer” duplicate of a shape by choosing Shape > Operations > Offset Then, you can select one of those shapes and hit F4 F4 F4 to repeat repeat repeat the process. But watch out for duplicate shapes of the same size!

    I can’t remember ever hearing any discussions of why the center-based resizing was never implemented. For all the time we spent looking at ABC/Micrografx Flowcharter, it is truly amazing this feature was never implemented.

    – Chris

  3. Mathew P says

    April 17, 2008 at 11:20 pm

    Just to note, you can also open the Alignment dialog Alt + S, A using F8

    This dialog box is a fav of mine and have also grumbled about the lack of centre resizing.

    And thanks for the wonderful work you do! I always look forward to your articles.

    Matt

  4. skeetabomb says

    August 20, 2010 at 9:41 am

    A quick and simple way to ‘resize on the spot/Pin’ is to simply type the size you want straight into the [Size and Position] window. Since you are typing only in one field at a time (the ‘WIDTH’ or ‘HEIGHT’ field), and since these directly update the WIDTH and HEIGHT cells respectively (unless you have GUARDed formulae), then the shape changes size without changing PinX/Y or LocPinX/Y.

    More interestingly, you can type a formula straight into these fields, which goes straight into the cell. What’s ever more interesting is that you don’t have to type ‘=’ at the start of the formula. So, if you want to resize by multiplying the existing value by some fraction/percentage, you can just type ‘*0.75’ (or whatever value you want to use) following the existing value!

    A very useful little trick I just discovered…

    I currently use Visio Professional 2003 as I haven’t yet seen much in the way of improvements that are worth the upgrade, but I would love to know if I’ve missed a really useful feature enhancement that is worth having.

    I hope this helps.

  5. Visio Guy says

    August 20, 2010 at 11:11 am

    Thanks skeetabomb, great tip!

    Visio 2007/2010 upgrades? Depends on what you do with it. If you’re into data linking or process modeling, there’s a lot of new stuff. For people who do floorplans and measured layouts, it’s a harder questions.

Leave a Reply Cancel reply

Primary Sidebar

Buy Text on a Circle Shape
Article — Video — Purchase

Categories

Buy my book!

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Tag Cloud

A/V Artistic Effects BPM Code Connectors Control Handles Countries Custom Patterns Custom Properties Data Graphics Data Linking Data Visualization David Edson David Parker Fill Format Formulas Functions Geometry Gradient Images Links Maps Multi-shapes Network Programming repeating shapes Resources Right-Click Actions Scale Shape Data ShapeSheet ShapeSheet Formulas ShapeSheet Functions SharePoint shiny SmartShapes Sport Sports Text Themes Tools Transparency User-defined Cells Visio 2007 Visio SmartShapes

Top Posts & Pages

  • - Visio Shapes & Stencils
  • - Visio Templates & Drawings
  • Dynamic Updating Org Charts in Visio!
  • Bubble Revision Shapes
  • Free Visio People Shapes
  • Amazon AWS Visio Shapes
  • Automatic Chevron Process Shape
  • Link Fields to Subshape Text
  • Text to the Bottom of the Shape
  • Go 3D with Free Isometric Piping Shapes for Visio

www.visguy.com - Visio Guy - since 2006

 

Loading Comments...