Создавая схемы в Visio, вы могли столкнуться с ситуацией, когда созданная схема ведет себя совсем не так, как ожидалось при масштабировании.
Сегодня мы рассмотрим способы, позволяющие добиться корректного масштабирования ваших фигур и схем в Visio.
В этой статье я рассмотрю работу с Visio 2007, в следующей повторю для Visio 2016.
В этой статье – мы рассматривали создание виртуальной организации в AD.
Давайте нарисуем простую схему её структуры в Visio.

Схема примитивная, но для демонстрации сгодится.
Теперь выделим всю схему сделаем несколько копий и уменьшим их в несколько раз:

Как видите ни шрифт, ни линии нормально не масштабируются.
Чтобы решить проблему с масштабированием шрифта нам потребуется использовать Таблицу свойств фигуры (На английском называется - ShapeSheet).
Создание масштабируемой фигуры (Shape)
Создадим новый документ, добавим в него прямоугольник.
Два раза щелкните на него и добавьте текст - 12345
Чтобы получить доступ к таблице вы должны выбрать надпись, а потом Окно – Показать таблицу свойств фигуры.
Чтобы было удобнее работать выберите пункт меню Окно -> Рядом

В поле Width – введите
50mm
В поле Height – введите
20mm
Щелкните правой кнопкой мыши по пустому пространству в окне <ФИГУРА> И выберите «Добавить раздел…»


Откроется окно:

Поставьте галочку User-defined cells и нажмите Ok
В таблицу схемы была добавлена новая строка:

Вместо User.Row_1 введите
Width_LineWeight
В поле Value
50mm
Щелкните правой кнопкой мыши по введенным данным и выберите – Вставить строку

Новую строку заполните данными:
Width_CharSize = 10 mm
Добавьте строки
Height_LineWeight = 10mm
Height_CharSize = 100 mm
AntiScale = ThePage!PageScale/ThePage!DrawingScale
Найдите раздел Line Format

В нём в поле LineWeight введите
=SETATREFEXPR(1 pt)*(Width/SETATREF(User.Width_LineWeight,SETATREFEVAL(Width))+Height/SETATREF(User.Height_LineWeight,SETATREFEVAL(Height)))/2*User.AntiScale
Найдите Character и поле Size и введите формулу:
=SETATREFEXPR(12 pt)*(Width/SETATREF(User.Width_CharSize,SETATREFEVAL(Width))+Height/SETATREF(User.Height_CharSize,SETATREFEVAL(Height)))/2*User.AntiScale
Данные формулы я взял отсюда, в этой статье можете подробнее прочитать как они работают.
Теперь если мы будем изменять масштаб, толщина линии будет изменяться соответственно.
Сделаем несколько копий схемы с разным масштабом:

Как видите, всё выглядит как должно.
Этот метод удобен тем, что вы так же можете, например, изменить размер шрифта и он будет продолжать масштабироваться!
Создаем набор элементов
Прежде чем продолжить, создадим набор элементов.
Наборы элементов служат хранилищем для фигур и могут быть перенесены между разными ПК.
Выберем меню Файл -> Фигуры -> Создать набор элементов
В разделе фигуры появится пункт Набор элементов 2
Перетащите созданную фигуру в левую панель - появится новый элемент

Щелкните правой кнопкой мыши на элементе и выберите «Переименовать образец»

Введите «Прямоуг-к» можно ввести слово и целиком, но тогда не влезет в одну строчку.
Нажмите на кнопку сохранения и выберите куда сохранить файл и его имя:

Набор элементов будет сохранен.
Аналогично создайте фигуры – текст, линия, эллипс.
Используя созданные фигуры заново создадим схему.

Как видите, масштабирование работает как нужно.
Заключение
Сегодня мы рассмотрели масштабирование фигур в Visio.
Создали тестовую диаграмму и рассмотрели, как она себя ведет при масштабировании.
Создали новый элемент и задали для него пользовательские элементы и прописали формулы для задания толщины линий и размера шрифта.
Создали масштабируемые элементы и поместили их в набор элементов.
Используя набор элементов создали новую схему и продемонстрировали, что масштабирование корректно работает.