All Forums
 Категория Visio
 Форум Вопросы и ответы
 Как правильно(грамотно) нарисовать фигуру?
Author Previous Topic Topic Next 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

Posted - 07/03/2007 :  23:12:13
Для начинающих есть вот это - http://visio.artberg.ru/manual/visiohelp.htm
По данному вопросу - http://visio.artberg.ru/manual/Text/T23.htm
Go to Top of Page

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 лежит на каком входе.
вот

зы: может тут можно как-то файл приложить - может понятнее будет
Go to Top of Page

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 какого-то шейпа.
Go to Top of Page

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
Go to Top of Page

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 к шейпу.
Go to Top of Page

Arnis

Russia
4 Posts

Posted - 07/11/2007 :  18:34:15
Огромное спасибо

А где и что можно почитать про события в Visio?

Edited by - Arnis on 07/11/2007 18:37:10
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 07/11/2007 :  20:40:18
Лучшие источники - SDK Visio и DVS (Developing Visio Solutions). Но это все на английском. :(
В этом форуме можно порыться...
Каких-то связанных материалов на эту тему я вроде не писал (хотя надо бы...)
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)