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

Форум по вопросам применения и программирования в Visio
Текущее время: 25 июн 2017, 16:16

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


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


Размещение файлов в формате vsd (а не vsdx/vsdm), увеличивает вероятность ответа стремительным домкратом !!!



Начать новую тему Ответить на тему  [ Сообщений: 37 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Фигуры с массивом элементов
СообщениеДобавлено: 18 сен 2016, 12:22 
Не в сети

Зарегистрирован: 18 сен 2016, 11:54
Сообщений: 6
Использую Visio c: 2016
Уровнь квалификации: VBA
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Привет всем форумчанам!
Несколько дней назад начал осваивать Visio для рисования электрических схем. Соответственно, задался вопросом создания набора фигур, некоторые фигуры нужно нарисовать самому.
В основном, общие принципы мне уже ясны.
Хотелось бы побольше прочитать про функции и ячейки из таблицы свойств фигуры и про создание интерактивных фигур (чтобы по щелчку правой кнопкой можно было скрывать и отображать составные части и т.д). Буду балгодарен за наводку на хорошие учебники по этой теме.
И назрел ещё один конкретный вопрос - можно ли сделать в фигуре (например, в УГО многоконтактного соединителя, как на рисунке) такую опцию - по щелчку правой кнопкой открывается форма, где можно ввести количество контактов этого соединителя, и после этого необходимые контакты добавляются или удаляются. Само собой, желательно, без программирования, но если без VBA никак, то прошу подсказать, как это лучше реализовать.
Изображение


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 18 сен 2016, 14:28 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
по щелчку правой кнопкой открывается форма

Если должна открываться своя форма, то без VBA сделать не удастся. Придется делать форму и макрос, вызывающий форму. По щелчку через секцию Actions запускать этот макрос, он откроет форму и примет выбранное значение, а потом запишет это значение в нужное место. Ключевое слово для поиска сведений в справке - Actions.
Механизм отображения переменного количества строк основывается на том, что прорисовываются все строки (по максимуму) а отображаются не все, а в зависимости от заданного значения. В ячейку NoShow секции геометрии ставится формула с условием, которая включает или выключает отображение секции геометрии.
Примеры искать по словам Geometry, NoShow.
Это значение не обязательно вводится через форму. Например, штатный шейп 5 ruled column из трафарета Annotations рассчитывает это значение из высоты шейпа. При увеличении высоты шейпа появляются дополнительные строки.
Можно также брать его из Shape Data. Тогда в качестве формы можно использовать штатное окно Shape Data. Это окно можно вызывать из макроса командой Application.DoCmd (1312) или открыть без макроса вручную.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 18 сен 2016, 14:32 
Не в сети
Ветеран

Зарегистрирован: 30 июл 2014, 14:28
Сообщений: 411
Использую Visio c: 2008
Очков репутации: 87

Добавить очки репутацииУменьшить очки репутации
Цитата:
Хотелось бы побольше прочитать про функции и ячейки из таблицы свойств фигуры

Вот здесь смотри:
viewtopic.php?f=21&t=1003

А насчет остального - изучай этот форум, для начала. Тут в принципе все есть, только поискать надо. :)
Насчет многоконтактного соединителя можно по изучать некоторые фигуры в стенсиле 'Фигуры для диаграмм'. Например шейп 'Сетка'. Но для новичка сложновато будет. А может у кого похожий, готовый шейп есть.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 18 сен 2016, 16:55 
Не в сети
Administrator

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 18 сен 2016, 17:45 
Не в сети

Зарегистрирован: 18 сен 2016, 11:54
Сообщений: 6
Использую Visio c: 2016
Уровнь квалификации: VBA
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Tumanov
Спасибо за развернутый ответ! Пример с шейпом 5 ruled column - то, что нужно! С концепцией NoShow я уже немного познакомился. Но в случае моей задачи теоретически контактов может быть сколь угодно много (редко, 100 и больше). Ну и в любом случае я нарисую ограниченное их количество. То есть, получается, своеобразный "костыль" - теоретически всегда возможно потребуется больше контактов, чем я задал при рисовании. С учетом этого - метод NoShow всё равно остается самым красивым и правильным?

Shishok
Спасибо за справочник, обязательно поизучаю! Пример с сеткой тоже хорош, дамаю, я смогу его осилить:)

Surrogate
Имена цепей, как и номер контактов, может быть произольным, и должны уже вписываться по месту.
Количество контактов может быть любым (но очень редко, > 100)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 18 сен 2016, 19:04 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
Количество контактов может быть любым (но очень редко, > 100)

Наверно удобнее будет делать не один универсальный мастер-шейп, а несколько. Например, один под один тип разъема. Тогда модификаций буден не 100, а уже меньше десятка.
И в этом случае можно вместо того, чтобы управлять отдельными строками, просто включать одну из нескольких секций геометрии полностью.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 18 сен 2016, 19:43 
Не в сети
Administrator

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 19 сен 2016, 01:49 
Не в сети
Administrator

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3330
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
fgarfield писал(а):
Имена цепей, как и номер контактов, может быть произольным, и должны уже вписываться по месту.
Количество контактов может быть любым (но очень редко, > 100)
при таком количестве использовать штатное окно Shape Data или пользовательские формы VBA будет дичайшим геморроем!
за 5 минут набросал мой вариант, с одной фигурой.
Surrogate писал(а):
Можно одной фигурой
по хорошему надо бы отдельно делать слово "Цепь" и значок соединения. но это уже детали.
Surrogate писал(а):
без шейпшита.
не обошлось. он применяется для подгона размеров фигуры, к объему текста
Тут я специально применяю табы
Изображение
1. Кнопкой Tab ставим курсор в "левом столбце" фигуры, пишем текст.
2. Tab-ом переходим в правую часть пишем.
3. Для перехода на новую строку жмем Enter и повторяем шаги 1, 2

Если вариант интересен, завтра опишу как это было сделано.


Вложения:
Комментарий к файлу: набросок
p9699.vsd [20 Кб]
Скачиваний: 21
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 19 сен 2016, 08:51 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Действительно можно.
Но вот подсознательно я от patterns почему-то всегда подлянки жду. Особенно, зная любовь Microsoft ко всяким темам...
Такое чувство, что вот работает-то работает, но вдруг сломается :)
Может быть это чисто личное...


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 19 сен 2016, 09:48 
Не в сети
Administrator

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 19 сен 2016, 09:57 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
паттерны существовали до появления любви МС к темам !

А то я не знаю...
Я о другом. Управляемая геометрия - это надежно. Она будет одинаково работать всегда.
А с Patterns у меня лично такой уверенности нет. Схема ведь - не иллюстрация. Она рисуется не только на текущий день. Может понадобиться ее изменить через 5 лет, совсем на другой машине и в другой версии Visio. Вот тут-то и появляется неуверенность.
Если речь идет о картинке, которую нарисовал, распечатал и все - тут никаких вопросов. Метод хороший. Или хотя бы "для себя". Но на предприятии в схемах лично я им пользоваться не стал бы.
----------
Как думаете - почему он не широко распространен в штатных шейпах? Никто не додумался?


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3330
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
про управляемую геометрию:
было у меня такое вот решение, с которого я содрал пример выложенный выше Спецификация из Excel в Visio
оно создавалось еще в благословенном визио 2003. но при переходе нашей компании на 2010-ый, работать с ним стало невозможно.
дичайшие тормоза, я заподозрил что дело в 33 управляемых секциях геометрии. переделал с использованием паттерна и все снова
стало летать.
Tumanov писал(а):
Может понадобиться ее изменить через 5 лет
с управляемой геометрией в более современных (2013 или 2016) версиях, боюсь все может быть еще более медленно и печально.
топик-стартер писал что редко может быть и 100 строк. прописывать сотню секций ради случая раз в 100 лет ? в таком случае только,
макросом наверно генерить нужное количество строк при необходимости


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

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

Добавить очки репутацииУменьшить очки репутации
Скорость должна быть повыше - тут ничего не скажешь.
Правда, термины "жуткие тормоза" и "летает" несколько неточны... Надо будет как-нибудь провести экспериментик, замерить реальные цифры.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 19 сен 2016, 11:28 
Не в сети
Administrator

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


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

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
придется поверить мне на слово. Изображение при использовании геометрии таблица из 30 строк переносилась 1-2 минуты

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


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

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

Добавить очки репутацииУменьшить очки репутации
Наверное мы о чем-то разном говорим...
Потому что у меня результаты не похожи.
1. На изготовление шейпа, конечно, времени уходит много. Шейп из 40 строк полностью вручную делался 12 минут. То есть на 100 строк будет примерно полчаса. Ну так кто ж таких монстров вручную делать будет... Даже с учетом того, что это придется один раз в жизни делать.
2. Делал в Visio 2007.
Десяток таких шейпов дублируется мгновенно. По крайней мере, менее секунды.
Перенес в Visio 2010.
Та же операция занимает тоже менее секунды.
-------
Скорее всего у вас таблица содержала не только управляемую геометрию, а нечто более серьезное.
Или на схеме этих таблиц было несколько сотен и сказывалась "тяжесть" всего документа в целом.


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

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


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

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
Геннадий много вы знаете монстров которые сделают это в ручную?

Так можно ж научить :)
1. Нарисовать линию.
2. Сделать "массив фигур" в одну колонку 100 строк.
3. Выполнить операцию "Соединить".
4. Прогнать макрос типа такого
Код:
Sub ttt()
    Dim shp As Visio.Shape
    Set shp = ActiveWindow.Selection(1)
    For i = 1 To 40
        shp.CellsSRC(visSectionFirstComponent + i - 1, 0, 2).FormulaU = "IF(Prop.n>" & 40 - i & ",FALSE,TRUE)"
    Next
End Sub

И все.
Макрос, естественно, подстраивается под конкретный случай.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 19 сен 2016, 13:05 
Не в сети
Administrator

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Фигуры с массивом элементов
СообщениеДобавлено: 19 сен 2016, 13:17 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
это ж полметра будет высота одного шейпа

Так что сделаешь... Бывает.
Кстати, я совсем не хочу сказать, что метод с заливкой плох. А то получается, как будто я против него возражаю :)
Так что описать его поподробнее точно было бы полезно.


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

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



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

Сейчас этот форум просматривают: Yandex [bot] и гости: 2


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

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