Формат координат Visio

Я разрабатываю инструмент, который работает с диаграммами процессов. Мне нужно написать функцию экспорта для инструмента, которая сохранит текущий процесс в формате Visio VDX.

Я обнаружил, что Visio сохраняет координаты фигур в не совсем понятном формате. Например: PinX 1.476377952755906; PinY 9.448818897637793

Мой инструмент работает с формами и соединителями в дискретной сети, где координаты начинаются с 0,0 и могут быть только целыми числами, равными или больше нуля.

Итак, вопрос в том, как представить координаты Visio в файле VDX в более понятном формате, например, в миллиметрах.

Дэн.


person Daniil Belonin    schedule 06.07.2011    source источник


Ответы (1)


По умолчанию эти координаты в VDX указаны в дюймах. В Visio в качестве единиц измерения используются дюймы.

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

<Width F="100mm">

Чтобы проверить это, я создал файл VDX и использовал миллиметры для формул высоты и ширины и могу подтвердить, что Visio 2007 правильно понимает, как читать и использовать эти единицы.

Вы можете заметить, что VDX, сгенерированный Visio, включает результат, но не формулу. Например, с ячейкой PinY вы увидите...

<PinY>3.309830932</PinY>

Visio не принимает единицы измерения в значениях результатов. Это означает, что вы не можете поставить «100 мм» внутри тега. Решение состоит в том, чтобы удалить значение результата и использовать для формулы атрибут F. Ниже приведен пример.

<PinY F="10mm"></PinY>
person saveenr    schedule 07.07.2011
comment
Хорошо. Но скажем, меня пока вполне устраивает ширина/высота по умолчанию. Но что делать с X,Y: ‹Shape ID=3 NameU=Process Type=Shape Master=0› ‹XForm› ‹PinX›4.52755905511811‹/PinX› ‹PinY›8.759842519685039‹/PinY› ‹/XForm› ‹/Shape › - person Daniil Belonin; 07.07.2011
comment
Я обновил ответ, добавив, как обрабатывать значения PinX и PinY: просто используйте атрибут F вместо конечного значения результата. - person saveenr; 07.07.2011
comment
Кстати, где я могу найти все возможные сокращения для значения размера. Что я должен написать, чтобы указать размер в сантиметрах, дюймах, пикселях и т. д. - person Daniil Belonin; 08.07.2011
comment
На следующей странице MSDN должны быть представлены все единицы измерения, которые вы можете использовать в формуле msdn.microsoft.com/en-us/library/aa342176(v=office.12).aspx - person saveenr; 09.07.2011