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

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

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 97 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 23 янв 2022, 19:07 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
gtfox писал(а):
ЮрийR писал(а):
автонумерацию группы текстовых строк с возможностью включения/отключения, при этом надо чтобы после копирования группы эта функция отключалась до следующего ручного включения.
А Если список многоуровневый?
1.1. Абв
1.2. Бвг
2.1. Где
2.2. Деж
...
Я, если честно, не очень понял задачу... Можете выложить тут или прислать в личку ссылку на файл, и описать что должно в нем делаться...
Полагаю, что есть эл схема, которую вы хотите увеличить, копируя существующие куски... и нужно чтобы все новое перенумеровалось (продолжило нумерацию) в стиле старой нумерации
Сложность данной задачи напрямую зависит от структуры данных в шейпах... самый сложный вариант если это: "1.2. Бвг" - обычная текстовая строка, и шейпы элементов схемы не имеют полей, отличающих их от другой графики...

Именно так. Да, главная проблема в том, что все шейпы отличаются только собственно номером шейпа и самим содержимым текстовой строки.

В итоге на данный момент я вижу такое решение:
1. Мышкой я выделяю группу фигур, в ней может быть: a) только текстовые строки вида "ляля-01" "ляля -02" или - б) текстовые строки как в "a" но вперемешку с графическими фигурами;
2.1 Макросом создаю ячейки типа "User.Name" и переношу в неё в текстовую часть "ляля-" (полагаю "ляля" придется как-то закидывать вводом вручную)
Или 2.1. Через "Поиск-замена" убираю в буфер или в "хранилище" текстовую часть "ляля-"
3. Тут надо прибавить к "01", "02" определенное значение.
3.1. Создаю макросом для каждой строки ячейку "Prop.ShapeNumber" (но при этом надо пропустить графические фигуры (из варианта"б") - не представляю как это сделать, это надо чтобы макрос пропускал фигуры с текстовой строкой = "пусто"!?), нумерую все строки макросом, сохраняю новые номера в "Prop.ShapeNumber", удаляю содержимое текстовой строки и создаю поле в текстовой строке со ссылкой на "User.Name" и "Prop.ShapeNumber" по формату штатного нумератора.
Или 3.1. Удаляю текстовые поля макросом, нумерую через штатный нумератор Visio с добавлением текстовой части.

Вроде смотрится не слишком сложно только я ещё не знаю команд, которые это всё делают =)


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 23 янв 2022, 19:53 
Не в сети
Ветеран

Зарегистрирован: 26 авг 2019, 21:07
Сообщений: 267
Использую Visio c: 2019
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
Файла нет... но мои гадания на кофейной гуще
ЮрийR писал(а):
только текстовые строки вида "ляля-01" "ляля -02" или - б) текстовые строки как в "a" но вперемешку с графическими фигурами;
наводят меня более печальные мысли: что номера элементов схемы натыканы отдельными шейпами рядом с самими элементами... реализовать подобный макрос могут не только лишь фсе... и с применением Shape.SpatialNeighbors

_________________
САПР-АСУ
https://github.com/gtfox/
YouTube


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 23 янв 2022, 20:11 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
gtfox писал(а):
Файла нет... но мои гадания на кофейной гуще
ЮрийR писал(а):
только текстовые строки вида "ляля-01" "ляля -02" или - б) текстовые строки как в "a" но вперемешку с графическими фигурами;
наводят меня более печальные мысли: что номера элементов схемы натыканы отдельными шейпами рядом с самими элементами... реализовать подобный макрос могут не только лишь фсе... и с применением Shape.SpatialNeighbors

Да, есть и такое, но вот эти самые элементы можно просто пропустить - пусть остаются без номеров, а номера рядом должны обработаться по изначальному порядку. А вот эта Shape.SpatialNeighbors похоже очень крутая тема но если ей воспользоваться возникнет ещё проблема как их поставить в те координаты, где были отдельные номера, при том, что могут быть ещё нюансы с форматированием... Это чересчур наверное, всего не предусмотришь, мне хотя бы простой вариант осилить.
Приложил файлик для примера с клеммами.
Вот допустим мне надо перенумеровать такую группу клемм.
Да мне бы просто строки без клемм перенумеровать нормально :roll:


Вложения:
2.vsdx [17.58 Кб]
Скачиваний: 31
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 23 янв 2022, 20:30 
Не в сети
Ветеран

Зарегистрирован: 26 авг 2019, 21:07
Сообщений: 267
Использую Visio c: 2019
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
Мои полномочия тут заканчиваются... как говорится: по фотографии мы не лечим... пока писал сообщение файл появился...
А вообще, если хотите посмотреть на автонумерацию элементов схем, реализованную на VBA, то можно скачать САПР-АСУ
Код нумерации содержится в модуле AutoNumber и форме frmReNumber.
Содержимое спрятано под спойлер ↓
Спойлер:

_________________
САПР-АСУ
https://github.com/gtfox/
YouTube


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 23 янв 2022, 21:35 
Не в сети
Ветеран

Зарегистрирован: 26 авг 2019, 21:07
Сообщений: 267
Использую Visio c: 2019
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
В общем опасения подтвердились... имеется самая худшая ситуация...
Как из нее выйти зависит от Вас, от того, на сколько оно Вам надо...

Варианты:
1) Перерисовать схемы в САПР-АСУ :roll:

2) Переделывать шейпы под возможность автонумерации в Вашем документе и потом использовать макросы из модуля AutoNumber и формы frmReNumber
2.1) Переделка в автоматическом режиме (макрос находит номер, расположенный рядом с клеммой, при помощи функции Shape.SpatialNeighbors) вариант будет давать сбои, т.к. рядом могут находиться другие фигуры.
2.2) Переделка в интерактивном режиме (выделяем клемму, выделяем номер, выполняем макрос)
Номер попадает в поле в шейпе клеммы, шейп с номером удаляется, шейп клеммы получает поле "Тип" для дальнейшей идентификации, и поле принадлежности к клеммику(группе клемм), бит автонумерации, текст получает "контрол" и располагается ниже клеммы, ....
Короче все поля которые есть в клеммах в САПР-АСУ :shock:

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

Оценка:
1) Тяжкий. Это только на первый взгляд, но самый перспективный по функционалу
2) Геморройный. Это вариант переделки всех шейпов под макросы из САПР-АСУ: вариант геморройный, т.к. мы все равно получаем клемму из САПР-АСУ, только пройдя через зад... а не просто вытащив ее из набора элементов
3) Пох..истический. Ну, примерно такой же, как и люди, рисовавшие эти схемы изначально... Ничего не дает, кроме сиюминутного облегчения ручного труда.

_________________
САПР-АСУ
https://github.com/gtfox/
YouTube


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 23 янв 2022, 22:03 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

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

Периодически надо срочно (у кого-то бывает по-другому?) переделать комплект схем, в процессе почти вся нумерация "уплывает" неограниченное количество раз - мало того, что это время на саму нумерацию, так она же ещё и отвлекает, сбивает с мысли и т.п., в итоге, учитвая ещё и другие траблы, бывает проще с нуля нарисовать... Поэтому не жалко и неделю (которую я уже потратил) и месяц на это дело (ну это если часа 2 в день уделять).
Я решил переделывать шейпы без наворотов, под стандарт штатного нумератора.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 23 янв 2022, 22:05 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
gtfox писал(а):
от того, на сколько оно Вам надо...
это ключевой момент!
ЮрийR писал(а):
Visio (соответственно им пользуются на новой).
если коллеги дзен-мазохисты привыкли все делать через зад, их уже не переобучить! лет 20 назад коллеги меня вечно ругали, что я фигуры делал группами. Упаковывал в стенсилы. Они видите ли привыкли рисовать схемы чёрточкам и квадратиками - их так проще редактировать! Но всегда забывали о том, что когда двигали фигуры, часть чёрточек терялось и каждую черточку ставили отдельно на место :wall:
Предполагаю, что переход на САПР-АСУ ваши коллеги не осилят! Это чревато определенными конфликтами :(

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 23 янв 2022, 22:26 
Не в сети
Ветеран

Зарегистрирован: 26 авг 2019, 21:07
Сообщений: 267
Использую Visio c: 2019
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
ЮрийR писал(а):
Я решил переделывать шейпы без наворотов, под стандарт штатного нумератора.
Данный путь не избавит Вас от
ЮрийR писал(а):
вся нумерация "уплывает" неограниченное количество раз
Даже SPlan 7.0 для Вас более перспективен, чем этот вариант...
Если бы я увидел хоть одну Вашу реальную схему, я бы мог оценить "сложность" перехода на САПР-АСУ

_________________
САПР-АСУ
https://github.com/gtfox/
YouTube


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 23 янв 2022, 22:29 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
переход на САПР-АСУ ваши коллеги не осилят!

Осилили бы но когнитивный диссонанс не даёт - они считают, что созданную базу проще использовать, хоть и не автоматизированную, чем создавать новую. Это же если переходить - значит признать, что делали всё неправильно, а это очень не просто.
Ну посмотрим что у меня получится хотя бы с нумерацией, а там как попрёт.
gtfox писал(а):
Даже SPlan 7.0 для Вас более перспективен, чем этот вариант...

Наверняка лучше, но работаем с тем, что имеем...

Откликнувшимся большое спасибо! Буду грызть потихоньку гранит VBA...


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 23 янв 2022, 22:39 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
ЮрийR писал(а):
Буду грызть потихоньку гранит VBA...
думаю этот плейлист будет полезен.
Также в visio необходимо представлять что такое ShapeSheet
Большой объем содержимого спрятан под мега-спойлер ↓
Мега-спойлер:

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 24 янв 2022, 14:39 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Попытался тут для экспериментов вызвать штатный нумератор через DOCMD или RUNADDON/RUNADDONWARGS и что-то никак.. По DOCMD нигде нет ID на него, по RUNADDON пробовал разные имена какие попадались в сети - ничего не заработало. На Ленту тоже не вытаскивается - только целиком с остальными аддонами...
Может кто подскажет!?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 24 янв 2022, 14:50 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
ЮрийR писал(а):
вызвать штатный нумератор через DOCMD или RUNADDON/RUNADDONWARGS и что-то никак.. По DOCMD нигде нет ID на него
через DOCMD точно никак :mrgreen:
А через аддон программно я обычно делаю так
Код:
Dim ad As Addon
Set ad = Addons("SN")
ad.Run ""

через таблицу свойств по двойному клику
Код:
RUNADDON("SN")

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


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

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

Добавить очки репутацииУменьшить очки репутации
=RUNADDON("SN")
=RUNADDONWARGS("SN","/shape_num=1") Where "/shape_num=1" will continue to number shapes.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 24 янв 2022, 14:58 
Не в сети
Content manager
Content manager
Аватара пользователя

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

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 24 янв 2022, 15:03 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Сработал RUNADDON("SN")
А вот на RUNADDONWARGS("SN","/shape_num=1") не реагирует
Спасибо!


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
ЮрийR писал(а):
по RUNADDON пробовал разные имена какие попадались в сети - ничего не заработало
с именами конечно не очень очевидно.
запустите код
Код:
Sub xxx()
Dim ad As Addon
For Each ad In Addons
Debug.Print ad.NameU, ad.Name
Next
End Sub
в первой колонке будет универсальное имя аддона (то с чем работает визио), во второй локальное (то которое отображается пользователю в интерфейсе). по второй колонке найдете нужное имя для вызова аддона
Цитата:
VisRpt Отчеты...
PEVTS Сохранять события...
SaveAsWeb SaveAsWeb
SN Нумерация фигур...
Update Shapes... Обновить фигуры...
PSS Напечатать таблицу свойств фигуры...
Если в первой колонке содержатся три точки в конце, обязательно добавьте их в имя аддона при вызове через RUNADDON !
Код:
=RUNADDON("Array Shapes...")

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


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

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
А вот на RUNADDONWARGS("SN","/shape_num=1") не реагирует

Да ну?!
А у меня реагирует.
Только RUNADDON("SN") без ключа вызывает форму, а
RUNADDONWARGS("SN","/shape_num=1") с ключом без вызова формы включает нумерацию вновь появляющихся шейпов.
---------------
Извиняюсь, ошибся!
Вызов с ключом нужен только для приостановки или продолжения нумерации. Штатно он исполняется из контекстного меню страницы.
Щелкнули - нумерация последующих шейпов прекратилась. Опять щелкнули - возобновилась.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 24 янв 2022, 16:13 
Не в сети
Content manager
Content manager
Аватара пользователя

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

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


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

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

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 24 янв 2022, 16:59 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Tumanov писал(а):
и вдруг в этом нарисованном выскакивает номер. От неожиданности может и поплохеть :)

!=ДА!!!! дайте мне таких ещё, да побольше!!! :D :D


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

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



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

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


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

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