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

Форум по вопросам применения и программирования в Visio
Текущее время: 12 ноя 2018, 22:08

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


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


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)



Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 07:06 
Не в сети

Зарегистрирован: 22 июн 2016, 06:08
Сообщений: 12
Использую Visio c: 2013
Уровнь квалификации: Начинающий
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Ребят я только начинаю осваивать VBA поэтому мой вопрос возможно покажется глупым, но всё таки. У меня есть два шейпа которые я соединяю коннектором и посередине этого коннектора мне нужно поставить значок.
'Добавляем коннектор lineOK2
'-----------------------------------------------------------------------

Set mstObjConnector3 = stnObj.Masters("lineOK2")
Set shpObjConnector3 = ActivePage.Drop(mstObjConnector3, 0, 0)
'Прячем его
shpObjConnector3.SendToBack
'Начало к порту 1
shpObjConnector3.Cells("BeginX").GlueTo shpodf1.Cells("PinY")
'конец к порту 2
shpObjConnector3.Cells("EndX").GlueTo shpodf2.Cells("PinY")
shpObjConnector3.Cells("LineColor") = 2
shpObjConnector3.Cells("LineWeight") = 0.03
'---------------------------------------------------------------------------
'ставим значок
'---------------------------------------------------------------------------------------------------

Set mstOK2 = stnObj.Masters("OK")
x = shpObjConnector3.Cells("PinX")
y = shpObjConnector3.Cells("PinY")
Set shpOK2 = ActivePage.Drop(mstOK2, x, y)

Проблема в том что не получается определить координаты для этого значка так PinX и PinY изначально задавал 0 и 0, в таком случае это значок как раз и устанавливается на эти координаты, но это очень далеко от линии по факту получается.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 08:36 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
Что за значок и зачем его к коннектору лепить?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 10:10 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1187
Очков репутации: 100588

Добавить очки репутацииУменьшить очки репутации
Если использовать штатный динамический коннектор или что-то на его основе, то имеется управляющая точка, к которой цепляется текст коннектора. (Она видна только при наличии текста, но она есть всегда). Так вот - эта точка по умолчанию примерно посредине. Можно попробовать значок цеплять к ней.
Controls.TextPosition, Controls.TextPosition.Y
В случае чего можно и передвинуть за ту же управляющую точку.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 11:32 
Не в сети

Зарегистрирован: 22 июн 2016, 06:08
Сообщений: 12
Использую Visio c: 2013
Уровнь квалификации: Начинающий
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
Что за значок и зачем его к коннектору лепить?

В схеме надо значок оптического кабеля прикрепить


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 11:35 
Не в сети

Зарегистрирован: 22 июн 2016, 06:08
Сообщений: 12
Использую Visio c: 2013
Уровнь квалификации: Начинающий
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Tumanov писал(а):
Если использовать штатный динамический коннектор или что-то на его основе, то имеется управляющая точка, к которой цепляется текст коннектора. (Она видна только при наличии текста, но она есть всегда). Так вот - эта точка по умолчанию примерно посредине. Можно попробовать значок цеплять к ней.
Controls.TextPosition, Controls.TextPosition.Y
В случае чего можно и передвинуть за ту же управляющую точку.

Я к ней пробовал, может с синтаксисом ошибся. Проверю отпишусь.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 11:37 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
я в свое время делал коннекторы. к стандартному коннектору добавлял секцию содержащую круг, координаты этой секции были привязаны к управляющей точке.
Tumanov писал(а):
Если использовать штатный динамический коннектор или что-то на его основе, то имеется управляющая точка, к которой цепляется текст коннектора.
этот новый мастер был у меня в стенсиле. а не как в твоем случае коннектор отдельно, кружок со стрелками отдельно


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 11:57 
Не в сети

Зарегистрирован: 22 июн 2016, 06:08
Сообщений: 12
Использую Visio c: 2013
Уровнь квалификации: Начинающий
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
я в свое время делал коннекторы. к стандартному коннектору добавлял секцию содержащую круг, координаты этой секции были привязаны к управляющей точке.
Tumanov писал(а):
Если использовать штатный динамический коннектор или что-то на его основе, то имеется управляющая точка, к которой цепляется текст коннектора.
этот новый мастер был у меня в стенсиле. а не как в твоем случае коннектор отдельно, кружок со стрелками отдельно

Может и мне лучше его тогда лучше цепануть в стенсиле? Это получается уже Shapesheete надо сделать как я понимаю?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 12:06 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
Код:
x = shpObjConnector3.Cells("Controls.TextPosition") + shpObjConnector3.Cells("PinX") - shpObjConnector3.Cells("LocPinX")
y = shpObjConnector3.Cells("Controls.TextPosition.Y") + shpObjConnector3.Cells("Piny") - shpObjConnector3.Cells("LocPinY")
Set shpOK2 = ActivePage.Drop(mstOK2, x, y)
Controls.TextPosition и Controls.TextPosition.Y будут в локальных координатах листа. нужно получить координаты относительно листа


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 12:12 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
Surrogate писал(а):
этот новый мастер был у меня в стенсиле.
в моем случае это был единый шейп, но с двумя секциями Geometry. в моем случае был коннектор с номером, это было не смертельно, что оставались фрагменты линии внутри круга
Изображение
gvozd18 писал(а):
Может и мне лучше его тогда лучше цепануть в стенсиле?
когда ты сгруппируешь коннектор и кружок не уверен, что новый коннектор будет корректно работать


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 12:16 
Не в сети

Зарегистрирован: 22 июн 2016, 06:08
Сообщений: 12
Использую Visio c: 2013
Уровнь квалификации: Начинающий
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
Код:
x = shpObjConnector3.Cells("Controls.TextPosition") + shpObjConnector3.Cells("PinX") - shpObjConnector3.Cells("LocPinX")
y = shpObjConnector3.Cells("Controls.TextPosition.Y") + shpObjConnector3.Cells("Piny") - shpObjConnector3.Cells("LocPinY")
Set shpOK2 = ActivePage.Drop(mstOK2, x, y)
Controls.TextPosition и Controls.TextPosition.Y будут в локальных координатах листа. нужно получить координаты относительно листа

Значок куда то вниз ушел.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 12:25 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
Код:
x = shpObjConnector3.Cells("Controls.TextPosition")
y = shpObjConnector3.Cells("Controls.TextPosition.Y")
Set shpOK2 = ActivePage.Drop(mstOK2, x, y)
такой код лепит круг внизу экрана однозначно!
gvozd18 писал(а):
Значок куда то вниз ушел.
относительно чего вниз ?
Surrogate писал(а):
когда ты сгруппируешь коннектор и кружок не уверен, что новый коннектор будет корректно работать
попробовал сделать это внутри мастера. при попытке дропа мастера на лист вылетает ошибка
Изображение


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 12:34 
Не в сети

Зарегистрирован: 22 июн 2016, 06:08
Сообщений: 12
Использую Visio c: 2013
Уровнь квалификации: Начинающий
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
относительно чего вниз ?
Вниз страницы, примерно туда же если бы я написал это
Код:
x = shpObjConnector3.Cells("Controls.TextPosition")
y = shpObjConnector3.Cells("Controls.TextPosition.Y")
Set shpOK2 = ActivePage.Drop(mstOK2, x, y)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 12:46 
Не в сети

Зарегистрирован: 22 июн 2016, 06:08
Сообщений: 12
Использую Visio c: 2013
Уровнь квалификации: Начинающий
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
И вот еще момент
Код:
shpObjConnector3.Cells("PinX")
хранит значение 0, это как я понимаю из того что я изначально его поставил на точку 0, 0. Но у меня вопрос насколько это нормально, ведь мы берем это значение уже после того как коннектор прицепили к двум нужным точкам и следовательно его Pin'ы должны были уже поменяться?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 12:50 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
gvozd18 писал(а):
следовательно его Pin'ы должны были уже поменяться?
да. ведь код меняет
Код:
'Начало к порту 1
shpObjConnector3.Cells("BeginX").GlueTo shpodf1.Cells("PinY")
'конец к порту 2
shpObjConnector3.Cells("EndX").GlueTo shpodf2.Cells("PinY")


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 12:53 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1187
Очков репутации: 100588

Добавить очки репутацииУменьшить очки репутации
Какой я хитрый... :)


Вложения:
y2.gif
y2.gif [ 195.57 Кб | Просмотров: 574 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 12:54 
Не в сети

Зарегистрирован: 22 июн 2016, 06:08
Сообщений: 12
Использую Visio c: 2013
Уровнь квалификации: Начинающий
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
да. ведь код меняет

Тогда почему 0-ые значения? Получается что видимо как раз в этом затык.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 12:55 
Не в сети

Зарегистрирован: 22 июн 2016, 06:08
Сообщений: 12
Использую Visio c: 2013
Уровнь квалификации: Начинающий
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Tumanov писал(а):
Какой я хитрый... :)

Да да! Это мне и нужно!:)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 12:59 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1187
Очков репутации: 100588

Добавить очки репутацииУменьшить очки репутации
Есть такая штука, как "рисунки, связанные с данными". Если сделать рисунок в виде кружка и насадить его на коннектор, то Visio будет его автоматом таскать вместе с этим коннектором.
Можно даже включать и отключать отображение.
Позицию указать - в центре (по вертикали и горизонтали).
Вроде как должно получиться...
В принципе, в зависимости от значения можно использовать то или другое обозначение.
Вообще-то развить нужно эту идею :)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 13:18 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3362
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
gvozd18 писал(а):
Тогда почему 0-ые значения? Получается что видимо как раз в этом затык.
какая версия визио ?
у меня в 2010 код
Код:
x = shpObjConnector3.Cells("Controls.TextPosition") + shpObjConnector3.Cells("PinX") - shpObjConnector3.Cells("LocPinX")
y = shpObjConnector3.Cells("Controls.TextPosition.Y") + shpObjConnector3.Cells("Piny") - shpObjConnector3.Cells("LocPinY")
Set shpOK2 = ActivePage.Drop(mstOK2, x, y)
работает. а если попробовать в шейпшите попробовать пересчитать значение с абсолютными координатами листа получается ересь


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Прикрепление шейпа к конектору
СообщениеДобавлено: 22 июн 2016, 13:21 
Не в сети

Зарегистрирован: 22 июн 2016, 06:08
Сообщений: 12
Использую Visio c: 2013
Уровнь квалификации: Начинающий
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
какая версия визио ?

2013


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

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



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

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


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

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