Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 29 мар 2024, 18:05

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)
Размещая ваши вложения на форуме не используйте имена файлов содержащих кириллицу, в противном случае файл будет иметь имя .<расширение файла> !

Для форматирования ваших сообщений используйте BBCodes, описание используемых на форуме BBCodes.



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Построить соединительную линию по массиву координат
СообщениеДобавлено: 30 авг 2015, 14:30 
Не в сети

Зарегистрирован: 30 авг 2015, 14:20
Сообщений: 8
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Добрый день!

Подскажите пожалуйста, как программно построить соединительную линию по массиву координат, и можно ли так сделать?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Построить соединительную линию по массиву координат
СообщениеДобавлено: 30 авг 2015, 14:52 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 28 апр 2013, 14:03
Сообщений: 963
Откуда: Вена, Австрия
Использую Visio c: 1998
Очков репутации: 100614

Добавить очки репутацииУменьшить очки репутации
Можно. Например так:
- Рисуешь соединительную линию,
- запрещаешь для нее авто-расположение,
- проставляешь координаты вершин.

Это если тебе именно "соединительная линия" нужна, которая проходит точно через четко заданные точки.

Если тебе просто ломаная линия нужна,
в Visio есть функция для ее построения по массиву точек.

Есть еще например функция "авто-соединения", которая строит соединительную линию автоматически,
ей достоаточно указать 2 фигуры, которые нужно соединить, координаты не нужны.

_________________
Полезные инструменты для создания диаграмм Visio:
https://unmanagedvisio.com/


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Dynamic connector
СообщениеДобавлено: 30 авг 2015, 15:13 
Не в сети

Зарегистрирован: 30 авг 2015, 14:20
Сообщений: 8
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Нужна именно соединительная линия


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Построить соединительную линию по массиву координат
СообщениеДобавлено: 30 авг 2015, 16:38 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 28 апр 2013, 14:03
Сообщений: 963
Откуда: Вена, Австрия
Использую Visio c: 1998
Очков репутации: 100614

Добавить очки репутацииУменьшить очки репутации
Тогда первая часть из 3 пунктов.
Обрати внимание, что она фиксированная будет.
Если уберешь фиксированность, то Visio ее может перестроить по своему усмотрению.

_________________
Полезные инструменты для создания диаграмм Visio:
https://unmanagedvisio.com/


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Построить соединительную линию по массиву координат
СообщениеДобавлено: 30 авг 2015, 23:18 
Не в сети

Зарегистрирован: 30 авг 2015, 14:20
Сообщений: 8
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
А как это всё запрограммировать? я новичок в программировании visio


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Построить соединительную линию по массиву координат
СообщениеДобавлено: 30 авг 2015, 23:27 
1. Включить макрорекордер
2. Сделать шаги 1,2,3 из первого совета
3. Проанализировать полученный код и адаптировать под свои нужды


Пожаловаться на это сообщение
Вернуться к началу
  
Ответить с цитатой  
 Заголовок сообщения: Re: Построить соединительную линию по массиву координат
СообщениеДобавлено: 31 авг 2015, 01:37 
Не в сети
Ветеран
Аватара пользователя

Зарегистрирован: 28 апр 2013, 14:03
Сообщений: 963
Откуда: Вена, Австрия
Использую Visio c: 1998
Очков репутации: 100614

Добавить очки репутацииУменьшить очки репутации
1. Созадем коннектор по умолчанию.
Код:
Dim conn As Shape
Set conn = ActivePage.Drop(Application.ConnectorToolDataObject, 0, 0)

2. Лочим его от авто-перестраивания
Код:
conn.Cells("ObjType").Formula = 4
conn.Cells("ConFixedCode").Formula = 1

3. Клепаем геометрию из массива (тут просто абстрактные данные взяты)
Код:
' удаляем все то что есть, кроме первой точки
While conn.RowCount(visSectionFirstComponent) > 2
  conn.DeleteRow visSectionFirstComponent, conn.RowCount(visSectionFirstComponent) - 1
Wend

' добавляем элементы ломаной
conn.AddRow visSectionFirstComponent, 2 + 0, visTagLineTo
conn.CellsSRC(visSectionFirstComponent, 2 + 0, 0).Formula = "0.1*Width"
conn.CellsSRC(visSectionFirstComponent, 2 + 0, 1).Formula = "0.2*Height"

conn.AddRow visSectionFirstComponent, 2 + 1, visTagLineTo
conn.CellsSRC(visSectionFirstComponent, 2 + 1, 0).Formula = "0.4*Width"
conn.CellsSRC(visSectionFirstComponent, 2 + 1, 1).Formula = "0.3*Height"

conn.AddRow visSectionFirstComponent, 3 + 1, visTagLineTo
conn.CellsSRC(visSectionFirstComponent, 3 + 1, 0).Formula = "1*Width"
conn.CellsSRC(visSectionFirstComponent, 3 + 1, 1).Formula = "1*Height"

3.1 Разлочиваем обратно
Код:
conn.Cells("ObjType").Formula = 2

Вообще все это выглядит довольно геморно, тебе на самом деле такое надо??
Попробуй исходную задачу озвучить, может есть более просто решение
Или может есть попроще вариант с коннектором, я просто дрогого не знаю.

_________________
Полезные инструменты для создания диаграмм Visio:
https://unmanagedvisio.com/


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Построить соединительную линию по массиву координат
СообщениеДобавлено: 01 сен 2015, 15:27 
Не в сети

Зарегистрирован: 30 авг 2015, 14:20
Сообщений: 8
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Исходная задача такова - нужно построить структурную схему, известен массив координат для соединительных линий между блоками.
Просто линиями у меня получилось, вот решил попробовать с помощью dynamic connector


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Построить соединительную линию по массиву координат
СообщениеДобавлено: 01 сен 2015, 15:34 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
ну и как получается с динамическими коннекторами (это ведь вещь в себе) ?

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Построить соединительную линию по массиву координат
СообщениеДобавлено: 05 сен 2015, 19:37 
Не в сети

Зарегистрирован: 30 авг 2015, 14:20
Сообщений: 8
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Да, получилось, часа 2 повозился и получилось))) отсчёт координат идёт от 1-й точки, а я думал, что от начала координат листа


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB