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

ShapeSheet общее

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

06.08.2017  Команды DoCmd/DOCMD  Microsoft.   

05.02.2016  Displaying the Fill and Line Section Values of a shape  David Parker.   

01.01.2016  Видео на русском про ShapeSheet  Kuzin Alexander.   

16.11.2014  Справочник по таблицам свойств фигур Visio  Microsoft.   

17.09.2014  ShapeSheet through the Ages  Chris Roth.   

24.07.2014  Understanding the ShapeSheet (Microsoft Visio 2010 Business Process Diagramming and Validation)  Microsoft.   

17.04.2014  Adding Right-Click Actions to the SmartShape  Microsoft.   

17.04.2014  Understanding Visio’s Coordinate System  Microsoft.   

16.04.2014  The Hidden Master Cells – ShapeKeywords and Copyright  David Parker.   

16.03.2012  Making Timelines with Dates Earlier than 1900 in Visio  David Parker.   

21.03.2011  Which field is that cow in?  David Parker.   

10.07.2010  Stress Test: Nesting “IF” Functions in the ShapeSheet  Chris Roth.   

21.04.2010  List Separators in Visio’s ShapeSheet are Crazy!  Chris Roth.   

01.03.2010  База знаний ShapeSheet  Shishok.   

01.01.2010  ShapeSheet, список функций по категориям  Shishok.   

01.01.2010  Типичные задачи, выполняемые в таблице свойств фигуры Visio  Shishok.   

10.07.2007  Month Math  Chris Roth.   

01.01.2007  User-defined ShapeSheet Functions in Visio 2007  Chris Roth.   

14.12.2006  Constraining Angle with the BOUND ShapeSheet Function  Chris Roth.   

04.10.2006  Counting Geometry Sections  Chris Roth.   

03.10.2006  Casting Units in Visio’s ShapeSheet  Chris Roth.   

05.09.2006  The Hidden World of Visio Shapes  Chris Roth.   

01.01.1900  Формирование фигур в Visio 2000 Ru и Visio 2002 Ru  Ничков А.В..   

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

Как можно закрепить длину линии?

Как можно закрепить длину линии (а координаты можно было бы менять)?
конкретно:
Надо перенести с рисунка многоугольник, у которого точно известны только длины сторон.
А может у кого-нибудь есть такой многоугольник (вручную вводится кол-во сторон и их длина, а потом на листе можно произвольно менять форму - длина сторон не меняется)
p/s прошу сильно не пинать, первый раз начал работать с Visio 

Просто закрепить длину линии (ребра многоугольника) нельзя.
Но можно подойти с другой стороны.
Visio рисует геометрическую фигуру последовательным применением функции MoveTo(x,y). Значит если вычислить координаты x и y всех точек многоугольника так, чтобы они удовлетворяли заданным условиям (фиксированные расстояния между вершинами), то задача будет решена. Останется только вписать соответствующие формулы в ячейки секции Geometry шейп-листа и защитить их функцией Guard от изменения.
То есть задача основывается на решении математической задачи построения многоугольника по заданным длинам сторон. Надо будет только придумать, куда вставить управляемую переменную, которая будет зависеть от воздействия оператора. Например, мышкой можно будет тянуть вершину многоугольника по координате x, а координата y этой вершины и обе координаты соседней вершины (минимум одной) должны вычисляться как функции этой переменной.
Причем управляться может не одна соседняя вершина, а несколько. И тянуть можно в принципе любую вершину, что еще более запутывает вычисления.
Короче, задача в принципе разрешима, но не думаю, чтобы у кого-то был такой многоугольник. 

Как в Visio 2002 включить автопозиционирование шаблона?

Как в Visio 2002 включить автопозиционирование шаблона? Т.е. чтоб при размещении на листе он автоматически вставал на одно и то же место.
(Пример - стандартный штамп для А4,А3 и т.п.) 

Рисуешь штамп, группируешь и в ShapeSheet вносишь: 

Width "=GUARD(196 mm/ThePage!PageScale*ThePage!DrawingScale)"
Height "=GUARD(283 mm/ThePage!PageScale*ThePage!DrawingScale)"
PinX "=GUARD(ThePage!PageWidth-(3 mm/ThePage!PageScale*ThePage!DrawingScale))"
PinY "=GUARD(7 mm/ThePage!PageScale*ThePage!DrawingScale)"
LocPinX "=GUARD(200 mm/ThePage!PageScale*ThePage!DrawingScale)"
LocPinY "=GUARD(0)" 

Это все справедливо для полного штампа А4. С А3, я думаю, проблем не возникнет. На сайте в примерах что-то подобное уже было... 

Как в EventDrop (секция Events) указать предыдущий объект?

Добрый день!
Как сделать следующее:
1. в EventDrop (секция Events) указать предыдущий объект (т.е. шейп, который до этого бросили)?
2. как можно программно (скажем VB)? перед тем как бросить шейп на рисунок изменить у него какое-нить поле в ShapeSheet? 

1. В EventDrop можно и не пытаться. То есть можно придумать какое-нибудь извращение через третий шейп, в котором отслеживать последний размещенный на странице шейп. Но будет куча сложностей, когда шейп бросят, потом удалят, потом бросят новый и т.д. На все случаи не рассчитаешь, так что лучше этим и не заниматься.
А вот с VBA наверное можно попробовать смотреть последний шейп в коллекции. Они вроде всегда в конец добавляются.
2. Нет никакой разницы, когда менять поле - перед тем как бросить или после того, это не заметно. Так что смело обрабатывайте событие ShapeAdded и в этом обработчике изменяйте поле.