Author |
Topic |
|
Arnis
Russia
4 Posts |
Posted - 07/03/2007 : 19:13:38
|
Всем добрый вечер. Пособите начинающему в Visio.
Собственно Subj.
А ситуация такая - нужно нарисовать фигуру с заранее известным числом входов/выходов (кол-во вх/вых может не совпадать). Как-то пронумеровать эти вх/вых (для того что-бы в дальнейшем программно перебрать их, причём нужно определять вход это или выход). Разместить на этих вх/вых connector point (немогу понять - обязательно это или нет) для соединения нескольких фигур посредством connector tool.
результом соединения всех "правильных" фигур д.б. что-то вроде: 1) из фигуры1, из выхода1 соединяемся на вход1, фигуры2 2) из фигуры1, из выхода2 соединяемся на вход2, фигуры3 3) из фигуры2, из выхода1 соединяемся на вход1, фигуры3
о как! :)
|
|
Tumanov
Russia
1198 Posts |
|
Arnis
Russia
4 Posts |
Posted - 07/09/2007 : 23:58:37
|
несовсем то :) графичискими примитивами я немного владею наверное я немогу нормально объяснить чего хочу :( попробую ещё раз
на схеме есть 3-и фигуры 1) 2-е называемые StartElement (с 1-м выходом) 2) 1-а называемая Converter (с 2-я входами)
если со StartElement-ами ещё более-менее понятно, то с Converter -ом несовсем. вопрос вот в чём: как грамотно нарисовать Converter (т.е. как нарисовать входы - линией? или DirectLine2(например), как (если надо) расставить Connector-ы) что-бы в дальнейшем понять что: - с выхода1 фигуры StartElement идёт соединение на вход1 фигуры Converter - с выхода2 фигуры StartElement идёт соединение на вход2 фигуры Converter именно в таком порядке, а не просто что StartElement1 и StartElement2 соеденены с фигурой Converter.
или нельзя так сделать и придётся вычислять по координатам какой Connector лежит на каком входе. вот
зы: может тут можно как-то файл приложить - может понятнее будет
|
|
|
Tumanov
Russia
1198 Posts |
Posted - 07/10/2007 : 19:12:38
|
В принципе можно пользоваться и координатами... Но лучше будет добавить в нужных точках Connection Points. Тогда определить, к какой именно точке что подключено, будет легче. Для разборок с ориентацией лучше использовать коллекцию Connects коннектора. Пример: Dim Sh As Visio.Shape Set Sh = ActivePage.Shapes(3) Debug.Print Sh.Connects(1).ToPart Debug.Print Sh.Connects(2).ToPart Debug.Print Sh.Connects(1).FromPart Debug.Print Sh.Connects(2).FromPart Здесь Sh - исследуемый коннектор. Если он подключен, то коллекция Connects содержит два объекта: Connects(1) и Connects(2). Свойство Connects(1).ToPart при коннекте к Connection Points будет иметь значение 100 и более (100 + индекс строки в секции Connection Points. Значит, получив значение 100, мы знаем, что коннектор соединен с первой точкой. Значение 101 - со второй и т.д. По свойству Sh.Connects(1).FromPart ориентируем сам коннектор. Значение 9 укажет на начало коннектора, значение 12 - на конец коннектора. Пусть наш пример вывел значения 100 101 9 12 Значит коненктор Sh подключен началом (9) к первой Connection Points (100) некого шейпа, а концом (12) - ко второй (101) Connection Points какого-то шейпа. |
|
|
Arnis
Russia
4 Posts |
Posted - 07/10/2007 : 20:01:32
|
С ориентацией коннектора я уже разобрался. Почитал: topic.asp@TOPIC_ID=827.html
quote:
Пусть наш пример вывел значения 100 101 9 12 Значит коненктор Sh подключен началом (9) к первой Connection Points (100) некого шейпа, а концом (12) - ко второй (101) Connection Points какого-то шейпа.
Понятно что: если "коненктор Sh подключен началом (9) к первой Connection Points (100) некого шейпа", то "Connection Points (100)" это выход. Но тут и есть основной вопрос: как сделать так что-бы было понятно что "Connection Points (100) некого шейпа" является например входом2, или входом1, или выходом2
|
|
|
Tumanov
Russia
1198 Posts |
Posted - 07/10/2007 : 21:12:14
|
Когда Вы лепите на шейп Connection Points, то они последовательно появляются в секции Connection Points сверху вниз и получают индексы от 0 и выше. Предположим, на шейпе нет Connection Points. Лепите первую точку на "вход 1". Теперь вход 1 будет связан с Connection Points (100). Вторую точку добавляете на "вход 2". В секции появляется вторая строка и связь "вход 2" - Connection Points (101). И так далее. Нужно только знать, в каком порядке Вы добавляли Connection Points к шейпу. |
|
|
Arnis
Russia
4 Posts |
Posted - 07/11/2007 : 18:34:15
|
Огромное спасибо
А где и что можно почитать про события в Visio? |
Edited by - Arnis on 07/11/2007 18:37:10 |
|
|
Tumanov
Russia
1198 Posts |
Posted - 07/11/2007 : 20:40:18
|
Лучшие источники - SDK Visio и DVS (Developing Visio Solutions). Но это все на английском. :( В этом форуме можно порыться... Каких-то связанных материалов на эту тему я вроде не писал (хотя надо бы...) |
|
|
|
Topic |
|