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

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

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Мониторинг изменений данных объетов
СообщениеДобавлено: 16 окт 2016, 15:16 
Не в сети
Постоянный участник

Зарегистрирован: 16 окт 2016, 12:41
Сообщений: 99
Использую Visio c: 2016
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Начну издалека. Я черчу проекты по автоматизации (КИПиА, АСУТП….). Работаю в обычном AutoCAD. Мягко сказать, не подходит он для этого. Есть AutoCAD Electrical, но он слишком “не гибкий” и сложный для освоения.
Я не программист, хотя с программирование знаком. Для AutoCAD писал код на LISP. Точнее я могу прочитать код, разобраться в нём, видоизменить, а вот написать что-то своё с нуля - пока сложновато. С VBA не знаком. Хотя уже неделю изучал этот форум. Посмотрел все темы. Разбирался в примерах кода - более менее понятно. Хотя конечно всю объектную модель visio пока не представляю. Visio понравился своей гибкостью и интуитивной простотой.
Теперь ближе к делу. Хоть я и начинающий, но планы у меня большие. У меня есть наброски идеологии как должна работать САПР. Прошу уважаемых гуру данного форума оценить реализуема ли эта идеология. Ниже по пунктам распишу что хочу реализовать.

1.Допустим, есть набор объектов - условно-графическое отображение УГО.
У каждого моего объекта обязательно будет пользовательское данное - "ПОЗИЦИЯ"
Позиция может быть незаполненной, или иметь буквенный префикс, например, SF.

2.При добавлении УГО на страницу, при его копировании (CTRL+C, CTRL+V), или с зажатым CTRL. Необходимо чтобы увеличивался номер позиции. Например, SF1, SF2... Это правило должно соблюдаться во всём документе, то есть нумерация сквозная. (Примерно как это реализовано в этой теме - viewtopic.php?f=6&t=913)

3.При дублировании УГО (CTRL+D) должно быть полное дублирование объекта, включая номер позиции и все его свойства (Shape Data). Это означает, что в документе могут быть Объекты с одинаковой позицией.

4.Ключевой момент. Допустим на листе (или во всём документе) есть два объекта. Их позиции SF1 и SF2. Если мы переименуем позицию SF2 в SF1, то должно появиться предупреждение, что объект с такой позицией уже есть. Предоставить варианты действия:
- увеличить/оставить номер;
- Заменить свойства из SF1 в SF2;
- Заменить свойства из SF2 в SF1;
- Объединить свойства, с заменой из SF1 в SF2;
- Объединить свойства, с заменой из SF2 в SF1;

Это должно также работать если в документе больше чем 2 объекта с одинаковой позицией, то есть есть изменяемый объект и вставленные
Если мы создаем новый объект, например нарисовали круг, и добавили ему позицию, и приравняли её к какой-нибудь существующей, то этому объекту добавляются пользовательские данные сущ. объекта. (то есть объект не обязательно должен быть из набора). Знаю что есть Addon по копированию свойств объекта из этой темы - http://www.visio.getbb.ru/viewtopic.php?f=15&t=1042. Но больше понравился вариант из - viewtopic.php?f=15&t=217, так как я смог его прочитать и понять.

5.Объекты с одинаковой позицией должны быть связаны между собой во всём документе. То есть, если одному из объектов добавляется новая строка данных, или изменяются значения сущ. данных, то эти изменения должны коснуться всех объектов с этой позицией. Даже если мы меняем номер позиции, то все объекты с этим номером также меняют номер позиции.
Данные будут добавляться и как из источника внешних данных, так и вручную.
Что-то подобное было в этой теме - http://www.visio.getbb.ru/viewtopic.php?f=5&t=231, но не совсем работает так как надо, и не отслеживает изменения во всём документе.

6.Удаление одно из объектов с одинаковой позицией не должно влиять на свойства других объектов с этой позицией

7.Необязательный, но крайне желательная функция. Все объекты с одинаковой позицией должны иметь гиперссылки друг на друга. Получается, что одному объекту будет добавлено несколько гиперссылок. Гиперссылка должна увеличивать страницу по ширине объекта. Лучше чтобы гиперссылки добавлялись по мере добавления объектов. Хотя можно уже и в готовом проекте просканировать объекты и добавить гиперссылки.
При удалении объектов гиперссылки должны удаляться

Вот такое я хочу попытаться реализовать. Прошу помочь советом - можно ли такое реализовать и если да, то с чего начинать. Планируется работать в Visio 2016


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

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

Добавить очки репутацииУменьшить очки репутации
Реализовать вроде бы можно. По ходу реализации выяснится, что некоторые вещи реализуются тяжело, поэтому придется их немного видоизменить. Ну, это как обычно.
Начинать скорее всего нужно с создания некого базового объекта. И постепенно наращивать его свойства и методы работы с ним.
Могу предположить, где встретятся трудности...
1. Трудно будет реализовать одинаковое поведение и свойства для разнообразных объектов. Или их нужно будет все делать самому и с нуля, чтобы по возможности были одинаковыми.
Поэтому я бы рассмотрел возможность оставить шейпы более свободными, а позиции (позиционные обозначения) показывать не дополнительных связанных объектах, типа выносок, полок.
2.
Цитата:
Данные будут добавляться и как из источника внешних данных, так и вручную.
это из той же оперы. Связь с источником данных (штатная) осложняет контроль за структурой шейпа. В шейп могут внедриться элементы, которых там не ждали.
3. Разное поведение по Ctrl+V и Ctrl+D слегка противоречит сути Visio. Проще отслеживать события шейпа или документа, чем нажатия на клавиши. А события-то в этом случае одинаковые.
4. Связь через гиперссылки тоже представляется технологически неудобной. Лучше бы использовать поиск. Кстати, у Вас ведь помимо схем будет что-то типа перечня элементов или ведомости. И данные явно будут в отдельном окне. Вот оттуда и нужно искать способ перехода.
5. Надо бы разделить "разные объекты с одинаковой позицией" и "один и тот же объект, показанный в разных местах документа". Если такое есть, конечно. И по-разному реализовать логику работы с ними.
Вроде бы пока больше ничего страшного не видно.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Мониторинг изменений данных объетов
СообщениеДобавлено: 16 окт 2016, 17:18 
Не в сети
Ветеран
Аватара пользователя

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

Добавить очки репутацииУменьшить очки репутации
IMHO, вполне реализуемо, но это дохрена работы. Некоторые хотелки в-общем, нетривиальные, хотя (насколько я вижу) все реализуемые.
Я бы оценил в месяц возни, при условии что программист, который это будет делать, знает Visio, и что руки у него из нужного места растут.

Цитата:
1. Трудно будет реализовать одинаковое поведение и свойства для разнообразных объектов. Или их нужно будет все делать самому и с нуля, чтобы по возможности были одинаковыми. Поэтому я бы рассмотрел возможность оставить шейпы более свободными, а позиции (позиционные обозначения) показывать не дополнительных связанных объектах, типа выносок, полок.
2. Данные будут добавляться и как из источника внешних данных, так и вручную.
это из той же оперы. Связь с источником данных (штатная) осложняет контроль за структурой шейпа. В шейп могут внедриться элементы, которых там не ждали.
Ну это имеет смысл если он думает о трудозатратах (т.е. если у него бюджет или время ограничены) ;)
Цитата:
3. Разное поведение по Ctrl+V и Ctrl+D слегка противоречит сути Visio. Проще отслеживать события шейпа или документа, чем нажатия на клавиши. А события-то в этом случае одинаковые.
Не совсем одинаковые. При желании можно отследить через Application.IsInScope(visDuplicate) ;)
Visio сначала открывает "высокоуровневый" scope типа "Paste" или "Duplicate", а потом уже идет событие ShapeAdded например.

Machestro, в общем если у тебя нет бюджета на разработку на месяцок-другой, я бы не выпендривался, и ел что дают (в данном случае - использовал бы связь с данными в Excel) :D

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Мониторинг изменений данных объетов
СообщениеДобавлено: 16 окт 2016, 17:32 
Не в сети
Постоянный участник

Зарегистрирован: 16 окт 2016, 12:41
Сообщений: 99
Использую Visio c: 2016
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Tumanov писал(а):
1. Трудно будет реализовать одинаковое поведение и свойства...


Надо лишь копировать Добавленные данные (секция Shape Data), то есть текстовую информацию. Речь не идёт о копировании каких-то динамических свойств. Например у автоматического выключателя есть такие данные Позиция (SF1), Производитель, ток и т.д. Если на другой странице я создам любой объект - пускай квадрат, и добавлю ему данные - Позиция = SF1, то все остальные данные подхватятся и создаться из автомата, который на стр. 1.

2. Хотелось реализовать базу данных в Excel. Есть одна книга, где на листах описываются различные изделия. Допустим лист1-автоматические выключатели, лис2 - Блоки питания и т.д. Эта книга подключена к шаблону Visio. Потом обычным Drag and Drop Данные перетаскиваются на любой объект. Насколько я понял в этом случае объекту добавляются дынные (то есть в Shape Data добавляются новые строки ), наименование которых соответствует наименованию столбцов в книге Excel.

3. На счёт этого согласен. Это просто "хотелка". Хотелось как-то различить команды. Хотя по факту на одном листе не должно присутствовать одного объекта с одной и той же позицией. Вообще по поводу нумерации на хорошенько подумать, так как возможны всякие префиксы, суффиксы к номеру.

4.Гиперссылки нужны для PDF. Проекты будут передаваться в PDF.
Насчёт спецификаций и перечней. Планировалось делать штатный отчёт "Отчёт о фигурах" - сливать это всё в Excel и там с помощью макросов сортировать и приводить к нужному виду (хотя та ещё задачка).


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

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

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


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

Зарегистрирован: 21 окт 2011, 12:01
Сообщений: 939
Откуда: г. Екатеринбург
Использую Visio c: 2011
Очков репутации: 127

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

Machestro писал(а):
Надо лишь копировать Добавленные данные (секция Shape Data), то есть текстовую информацию. Речь не идёт о копировании каких-то динамических свойств. Например у автоматического выключателя есть такие данные Позиция (SF1), Производитель, ток и т.д. Если на другой странице я создам любой объект - пускай квадрат, и добавлю ему данные - Позиция = SF1, то все остальные данные подхватятся и создаться из автомата, который на стр. 1.


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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Мониторинг изменений данных объетов
СообщениеДобавлено: 19 окт 2016, 13:30 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Machestro писал(а):
Работаю в обычном AutoCAD. Мягко сказать, не подходит он для этого.
если говорить за «голый AutoCAD из коробки», то да.
Surrogate в сообщении #9084 писал(а):
большинство людей делает такие вещи в CAD-подобных программах, там для этого больше возможностей. и можно нагуглить решение готовое (или почти готовое) в LISP.
Если не не изменяет память, видел что-то подобное в книге
Зуев С. А., Полещук Н. Н. САПР на базе AutoCAD — как это делается. — СПб.: «БХВ-Петербург», 2004. — 1168 с. — ISBN 5-94157-344-8. 
Machestro писал(а):
Хотя конечно всю объектную модель visio пока не представляю
для информации
Surrogate в сообщении #8353 писал(а):
Объектная модель MS Visio ( ↓ картинка кликабельна)
Содержимое спрятано под спойлер ↓
Спойлер:
9rey писал(а):
надо начинать постепенно и задавать конкретные вопросы
Machestro, если ты таки решил изобретать велосипед для выполнения вышеупомянутых задач в Visio, ждем вопросов !
Оффтоп:
На тебя вся надежда - что догоним количество сообщений на форуме до 10к к Новому Году Изображение

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


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

Зарегистрирован: 16 окт 2016, 12:41
Сообщений: 99
Использую Visio c: 2016
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Книга хорошая, она мне помогла разобраться в LISP, так же как и другие книги автора. Но ЛИСПОМ всё не решить. Я уже достиг максимума в AutoCAD.

Велосипед собираюсь построить. Как раз в данный момент пишу некоторые наброски (даже что-то получается). Вопросы обязательно будут. Они уже есть, но чуть позже задам их


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
раз уж вы к нам сегодня заглянули позволю себе задать еще несколько дополнительных вопросов :D
Machestro писал(а):
Велосипед собираюсь построить
как кстати успехи в этом направлении ?
Machestro в сообщении #14453 писал(а):
Но сейчас сценарий такой - электротехнические приборы (автомат, блок питания, контроллер и т.д.) Все эти приборы имеют свое УГО, то есть это определённые мастера. У каждого прибора (мастера) есть контакты - контакт это тоже мастер, который содержит определенные данные. Я не могу предусмотреть сейчас все данные которые будут у контакта (набор данных будет один и тот же для всех приборов)
у нас в соседнем районе соседнем подразделе форума затевается очередное велосипедо-строение
immortal в сообщении #16570 писал(а):
Велосипед это итоговый комплект проектной или рабочей документации по электроснабжению (в будущем отоплению, вентиляции, канализации и т.п.)
может чего-то посоветуете ?

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Мониторинг изменений данных объетов
СообщениеДобавлено: 13 янв 2022, 11:57 
Не в сети
Постоянный участник

Зарегистрирован: 16 окт 2016, 12:41
Сообщений: 99
Использую Visio c: 2016
Очков репутации: 4

Добавить очки репутацииУменьшить очки репутации
Я уже не проектирую электрические схемы и прочую документацию по АСУТП (сменил место работы). Теперь я полноценный разработчик BI, поэтому забросил данный проект. Но то что получалось мне определенно нравилось, visio со своим формульным движком просто сказка + vba (вместо LISP тоже огромный +) + Ещё и Powe Query для формирования нужных Спецификаций
Специфика моей работы была следующая - один и тот же электротехнический объект мог находиться на различных листах проекта, но с различным отображением (под одним и тем же я имею ввиду полное его позиционное обозначение + место установки). И написал формулу (очень длинную), которая использует SetAtRef и прочее которая связывала бы все эти "одинаковые" объекты в одно целое. Если я менял что-то у одного объекта (имею ввиду текстовую информацию, или номер провода в проводнике), то это так же менялось и у всех его экземпляров.
Потом планировал извлекать информацию через Power Query. Это если кратко описать. А так вспоминать нужно, но наработки сохранились


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Machestro писал(а):
сменил место работы). Теперь я полноценный разработчик BI
поздравляю :!:
я тоже 4 года уже не работаю с Visio, но у меня прозаическая писанина и причесывание документации в MS Word :wall:
Machestro писал(а):
но наработки сохранились
если не жалко поделитесь :mrgreen:
Surrogate в сообщении #16677 писал(а):
Все что осталось после потери флешки свалено в моей папке на GitHub.
правда я свои макросы выложил, но они без комментариев - все равно мало кто разберется :?

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Мониторинг изменений данных объетов
СообщениеДобавлено: 13 янв 2022, 12:17 
Не в сети
Постоянный участник

Зарегистрирован: 16 окт 2016, 12:41
Сообщений: 99
Использую Visio c: 2016
Очков репутации: 4

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


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

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



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

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


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

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