Печать

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

На входе имеется фотография дома. Напрашивается решение - импортировать в Visio картинку, нарисовать на ней гирлянды и подсчитать длину.

В принципе, в Visio есть метод Shape.LengthIU, который позволяет получить значение периметра (в данном случае длину гирлянды). Правда, только в дюймах, но это не проблема. Остается только сделать удобное масштабирование.

С масштабированием - два варианта: либо выбрать масштаб рисунка, а потом подгонять под него картинку, либо оптимально разместить картинку, и уже к ней подогнать масштаб документа. Для этой задачи наиболее удобным показался второй способ.

Чтобы не тратить каждый раз время на ручные расчеты, решено сделать шейп-измеритель. Идея следующая: нужно найти на картинке пару точек, расстояние между которыми известно, приложить к ним измеритель и автоматически изменить масштаб документа. В итоге получилось вот такая система, как на картинке выше.

Пришлось сделать 4 процедуры:

Код разместился в шаблоне документа из двух страниц. Первая - на которой рисуются гирлянды. Вторая - фоновая, на нее импортируется картинка и там же работает измеритель. Масштабы обеих страниц изменяются синхронно.

В целом процесс такой:

Этим завершается подготовка. Изображение практически не изменяется, но масштаб документа теперь позволяет проводить прямые измерения. Далее:

В принципе, подобные задачи встречаются в практике нередко. Да и не только оформителям нужны измерения по картинке. Так что, надеюсь, статья будет полезной.

Шаблон GaugeTest.vst

 

Категория: Блог