Для русскоязычных пользователей Visio. Начинающих и профессионалов. Где взять, как сделать, что купить и т.д.

Анализ

Перечень литературы

08.04.2009  Path Analysis in Visio   Chris Roth    

Ответы на вопросы

Вычисление длин непрямых линий

Требуется вычислить длину произвольной линии (хотя бы дуги). Как это сделать?  

Есть способ узнать длину сколь угодно кривой линии и её площадь. Но хлопотный. Сохрани файл в формате AutoCAD. Открой его AutoCAD-ом отметь нужный объект и набери команду LIST (AutoCAD имеет свою командную строку). В окне AREA площадь, а LENGTH длина линии либо периметр если объект замкнут. Для снятия отметок дави ESC. Если при открытии файла на экране пусто а в заголовке окна указано имя файла, значит чертеж находится за пределами экрана. Выбери VIEW-ZOOM-ALL увидишь весь чертеж. При нажатом Control колесико мыши приближает или удаляет. ВНИМАНИЕ: при создании чертежа в VISIO укажи правильно масштаб и единици измерения.  

Как определить какая фигура данный Shape?

Мне хотелось бы знать можно ли определить какая фигура данный Shape в схеме, т.е. линия, круг, квадрат или еще что-то, и если можно то как?  

Два варианта. Если шейп образован от какого-то мастер-шейпа (перетянут из шаблона), то его можно распознать по имени. Если он нарисован, то можно попытаться разобраться через секцию Geometry шейп-листа. Прямоугольник там представлен строкой MoveTo и четырьмя строками LineTo. Эллипс - только одной строкой Ellipse и т.д. То есть можно взять все фигуры, которые Вы собираетесь различать, посмотреть особенности данной секции в их шейп-листах, а потом при работе проверять наличие определенных ячеек в шейп-листе. В принципе можно даже выбирать из них значения и оперировать ими.  

Как подсчитать длины всех видимых линий?

Есть ли в Visio 2002 встроенная функция или кто может макрос выслать. Задача такая - проект сети, убираю стены, двери и т.д., оставляю только короба определенного сечения на рабочем листе и хотелось бы подсчитать длины всех видимых линий (точнее просто сумму длин). Вручную считать долго и можно ошибиться, поэтому процесс нужно автоматизировать.  

Макроса нет, но алгоритм для его построения представляется довольно легко. Только нужные короба надо рисовать одним типом шейпа (линии), чтобы он выделялся по имени, а стирать все остальное изображение не обязательно. Перебирается вся коллекция шейпов на рисунке, выбираются для обсчета только нужные шейпы. В этих шейпах в секции Geometry описана вся конфигурация линии (даже если она ломанная, только круглые не годятся). Перебираются строки секции и складываются длины, высчитываемые по двум координатам. Обсчитанные шейпы красятся в какой-нибудь цвет, чтобы глазом было заметно, не пропустил ли чего. Пропуски могут быть, если линии были сгруппированы, тогда их надо будет разгруппировать и повторить процесс или макрос сделать похитрее, чтобы в группу залезал. Потом останется только домножить на масштабы и все. Вариант 2. Если все нужные линии нарисованы не ломанными, а просто отрезками линий, то можно воспользоваться Tools / Report / Shape Inventory. Отчет вывести в Excel, суммировать Width и домножить на отношение масштабов. Только здесь нельзя подкрасить обсчитанное, придется верить на слово :). Добавка. Может быть даже проще не по именам ориентироваться, а располагать эти и только эти линии на одном слое. Тогда просто в фильтре указывается этот слой.