As you may know if you hang out around this website, Visio is not just for flowcharts. Visio can handle scale ratios, so that you can draw real-world objects, using real-world sizes, but still have them fit on a sheet of paper. This makes Visio a great tool for measured drawings such as home- and office layouts, factory floorplans, network storage facilities, and other mildly “CAD adjacent” drawings.
I decided to push the limits of Visio’s scaling ability (and perhaps the limits of double-precision floating point mathematics) and try to draw some extreme objects, to-scale!
But first, a quick introduction to setting Visio drawing scales.
Background on Visio Scales
You can see Visio’s scale features in action, just by opening the right template.
For example, if you start a drawing from the built-in Office Layout template, you’ll be presented with a blank sheet that has a drawing scale pre-configured. It won’t be immediately recognizable unless your rulers are visible, and you take a very close look at them.
A more obvious way is to right-click the page tab, and choose Page Setup…. You’ll be presented with a multi-tab dialog, which includes the Drawing Scale tab. For the “U.S. units” version of the template, you’ll see an Architectural scale of 1/2″ = 1′-0″. That’s a ratio of 1:24:
For the metric version of Office Layout, you’ll see a Metric scale of 1:25…and there’s no need to do any extra calculating to see what that scale ratio is, ha ha:
Notice also near the lower-left of this tab: the actual size that the page represents is calculated for you. This is a great time saver, because you can immediately tell if the scale you’ve chosen will be big enough to fit the thing that you are about to draw.
For our default Office Layout template, we can see that a standard sheet of Letter or A4 paper will only be big enough to draw a room or two (22ft x 17ft and 7.4m x 5.2m). If we want to draw the whole floor of our office, we’ll need to pick a larger (smaller?) scale!
With the drawing scale set, you can draw in real-world dimensions, and not have to do any math in your head. If you drop a chair into your office plan, and leave it selected, you can peer down to the lower-left corner of the drawing window and notice that the size of the object is, indeed, 2ft x 2ft (~61cm square), which is about the size of a chair, right?
If you change the drawing scale for the page, or if you zoom in or zoom out, that chair will always stay the same size. It will just be represented differently, according to the drawing scale.
This not only saves you a lot of trouble, but it means Visio can be used for light CAD work!
First Stop: Washington State
Now, off on my adventure! My first Big Thing to draw was Washington state, way up in the top-left corner of the good ol’ USA. Washington is a decent-sized state, spanning about 372 miles (~600km) from the Pacific Ocean to Idaho.
To fit Washington onto a standard Letter-sized sheet of paper, we needed to set a Custom scale of 1in = 50mi. That’s a ratio of 1: 3,168,000! Yes, every chunk of distance on the paper represents something over 3 million times bigger in the real world:
To test out how shapes behave at this scale, I imported an outline of the state that I pinched from some SVG graphics I found online, plus a really neat image of Washington’s breweries that I found on the Mitchell Geography maps.
I have no affiliation with the site, but I think the graphic is interesting and well done, and of course, they deserve credit! You can buy it as a full-sized poster (19 inch x 13 inch, ANSI Super B size) if there’s a bare spot on your man-cave’s (or woman-cave’s) wall.
This is what it looks like in Visio:
I have an add-in that I’ve built that helps me to scale images to the proper size after they have been imported. Remind me to tell you more about that sometime!
You can see that the dimension lines are working. You can find those shapes in the dimensioning stencils: Shapes > More Shapes > Visio Extras > Dimensioning – Engineering or Dimensioning – Architectural. They show that I’ve resized the state shapes to about the right size. The dimension line text reflects the actual scaled size of the dimension shape – I didn’t type those values in!
Visio handles this drawing scale without any hiccups. The page behaves properly, you can type text as you normally would, and there are no odd distortions (yes, this is foreshadowing!)
Second Stop, Space: Earth and Her Neighbors
For the next stop, I’ve left our fair planet like a Falcon rocket, and attempted to draw all of the mentionable spherical objects in our solar system.
This required a bit more drawing scale (MORE DRAWING SCALE!) than Washington state:
Yes, you read that correctly. 1in = 175,000 km. That’s a ratio of 1 : 6,889,763,780, which is 2,174 x bigger than the drawing scale for Washington state! If you lay the thinnest hair on the paper (17microns), that thickness would represent 117 km in the real world (universe)!
Now Visio, bless it’s heart, didn’t crash when I set this scale, but things started to get weird.
First, I couldn’t type in the values I needed using the Page Setup dialog shown above. I got a “Number is not valid!” error when attempting to set such a ridiculous scale. But if I went to the page’s ShapeSheet, setting the value was no problem. But then I had to also set the PageWidth and PageHeight to counteract the effects of the drawing scale. The dialog normally does that for you.
Here you can see that I’m using actual kilometers as my units-of-measure, and that even those are pretty big values:
But once setup, I was able to draw objects as large as the Sun and as “small” as the Moon to-scale. Yes, TO-SCALE:
It’s more interesting up close:
Check out that square: it represents an object that is 100,000 km x 100,000 km! Amazing.
I mentioned things getting weird up above. At this scale, text started to misbehave, and I could no longer type text onto shapes.
Here’s what happened when I tried to type text:
I tried zooming in on the text ruler:
It looks like the text ruler has millions of division, and that it is generally confused.
At any rate, I couldn’t see any text at all. I could type text, and nothing would crash or anything, but I couldn’t see the output. To investigate further, I went into the ShapeSheet and used the formula SHAPETEXT(TheText) to see if the text was actually there. It returned the expected value (“asdfg”). That means Visio thinks the text is there, and that Visio is keeping track of the text I type. I tested further by using the TEXTWIDTH(TheText) formula to see how wide the text was. This function returned #VALUE, which is a ShapeSheet error.
Bottom line, text gets broken somewhere between a drawing scale large enough to show a medium-sized state on the page, and a drawing scale large enough to show the Sun on a page!
To get around this no-text limit, I simply created text boxes on another, unscaled page. Formatted the text color and fill to my liking, then copied the shape to the clipboard. On the extreme-scaled pages, I think did a Paste Special…as Picture(Enhanced Metafile), and that worked just fine. Yes, it’s a much bigger pain to edit the text, but it’s better than nothing!
If those slick images of planets caught your attention, I’ll briefly mention that I imported actual images, then used the ClippingPath ShapeSheet cell to clip the images to a circular outline. Once I had built a shape that did this nicely, I could then use the Shape.ChangePicture automation method to load different images into copies of the original planet shape. I’ll add a reminder to write more about this when I get a chance:
[TODO: write article about ClippingPath and Shape.ChangePicture]
[TODO: link to article about ClippingPath and Shape.ChangePicture]
Next Stop: Inner Solar System
So things were starting to fail, but Visio was holding its own. I decided to press further and draw the orbits of the inner solar system, out to Mars.
At this level, it’s starting to get ridiculous. And you start to appreciate how vast the universe is. The scale to fit Mars’ orbit onto a piece of paper is 1in = 61,600,000 km. That’s a ratio of 1: 2,425,196,850,394. So one unit on the page is two-and-a-half TRILLION units in real dimensions. Crazy!
The numbers are starting to not fit in the Page Setup dialog:
So Page Setup numbers were choking, and text was not working before. Now the size of the page started to go bonkers.The actual white rectangle that was “supposed to be the page” was now way too small!
I could see in the ShapeSheet that the size of the page was as I had intended. I could draw a rectangle that referenced ThePage!PageWidth and ThePage!PageHeight for its own width and height, and the rectangle would be drawn as expected.
To demonstrate, I set up a test, which you can see in the next image. What you’re looking at below is:
- I’ve drawn a rectangle around the “page”, and left it selected, so that you can see the rectangle’s size in the status bar.
- I’ve also opened a ShapeSheet window to the page’s ShapeSheet.
You can see that the actual size of the page is WAAAY larger than what is shown on the screen (1,180,960,000 vs 2,539,999) in this case:
So that white area is definitively NOT representative of the actual page’s area.
The main side-effect for me was that when I went to zoom-to-page via the shortcut Ctrl + W, the window would zoom to this little white space in the lower-left corner of “where the page is supposed to be”.
But there was another odd effect: if I zoomed into the “not-page” area, and tried to draw perfect circles (Ellipse tool with Shift key pressed to constrain equal widths and heights), I got these interesting shapes:
The shapes actually change as I zoom and pan, so something really strange is happening. Maybe it’s the lack of gravity?
It’s even stranger, because when I zoomed out and drew the planets’ orbits, the circles look fine:
Look at the reference square, it is a mind-boggling 10,000,000 km x 10,000,000 km!
And if that’s not enough, if you zoom way in on the center of this page, you’ll see a copy of the actual to-scale Sun shape. It is still to-scale, as the status bar will attest:
All in all, I would say that Visio is doing very well at handling scaled drawings that well beyond what the original designers likely anticipated!
Last Stop: Entire Solar System
For my last stress test, I decided to map the entire Solar System. Visio breathed a sigh of relief, since Pluto got demoted from planet-status, and only had to accommodate Neptune’s orbit, which is a staggering 19.2 AU (Astronomical Units – Earth’s orbital radius).
Note the reference rectangle. Each side of it is
I give up! Visio is damaged but not broken!
One last nerd test before I return to Earth. Let’s see what kind of numbers max out the ShapeSheet, and let’s see if they are related to the units being used.
So I’ve drawn a simple rectangle, opened its ShapeSheet, and started typing in super-large numbers, using exponential notation.
If I use km as my units, the largest number I can enter is 1 e303 km. At 1 e304 km, Visio accepts the entry, but I get a weird 1.#inf km value displayed. That looks suspiciously like we are at the end.
Then I switched to inches. 1kilometer is ~39,370 inches, so we are talking ten-to-the-fifth – tent-to-the-sixth territory. So my rough guess is that we might be able to add 5 or 6 to that 303 if we enter inches.
And sure enough, I was able to enter 1 e308 in into the ShapeSheet. At 1 e309 in, I got an error message, instead of that weird #inf syntax:
This article is already quite long, and I’ve got other work to do, but I think the journey was fascinating. Than’s for accompanying me on the trip!
I really thought Visio would crap-out much earlier than it did. And it didn’t fully crap out at that! Still, for you Über Nerds out there (and perhaps Microsoft’s QA department), there are further areas to investigate:
- At what exact drawing scale does text cease to function. What are the numbers?
- What happens to text just before it stops working? Is there precursor behavior that might give us clues as to what goes wrong (and how it might be fixed)?
- What are the limits for numbers in the Page Setup dialog? Is it simply number size, or is it tied to the units used (which is more of an absolute number size, Visio uses inches internally).
- Is there a practical reason that the Page Setup / Drawing Scale dialog has a different limit on numbers than the ShapeSheet does?
I expect your report on my desk by Tuesday at 9:00AM, sharp!
Now, who wants to take this journey in the opposite direction, and start drawing integrated chip circuits, molecules, atoms, and electrons to-scale?