Author |
Topic |
|
vis
47 Posts |
Posted - 08/12/2012 : 08:31:32
|
Добрый день. Подскажите, пожалуйста, как мне объединить в некую группу (класс) несколько шейпов с разных страниц документа. Каким инструментом? Ну вот пример приведу. Имеется реле К1. На принципиальной схеме на разных страницах отображены Катушка (прямоугольник) и два контакта этого реле. И вот я не знаю как их объединить в некий "класс" К1, чтобы можно было вытащить номера страниц, где присутствуют элементы этого класса. И вот таких классов в документе может быть много. |
|
Tumanov
Russia
1198 Posts |
Posted - 08/12/2012 : 10:31:50
|
Добрый день. На разных страницах шейпы не объединяются. Можно сделать это косвенным образом. Например, установить гиперссылки, связать через данные и т.д. Но чтобы выбрать способ, хорошо бы знать, как Вы эту связь собираетесь использовать. Программно или "вручную". Выбирать данные из схемы или просто перейти при необходимости от катушки к контактам. Если у Вас схема поддерживается программным проектом, то можно и вообще создать в нем свой класс, включив в него и шейп с катушкой, и шейп с контактами. Да еще и добавить методы, специфичные для этого класса. |
|
|
vis
47 Posts |
Posted - 08/12/2012 : 11:06:27
|
quote: Originally posted by Tumanov
Но чтобы выбрать способ, хорошо бы знать, как Вы эту связь собираетесь использовать. Программно или "вручную".
Программно.
Если конкретнее, то задачу можно рассмотреть следующим образом. У меня есть 3 шейпа на разных страницах (одна катушка и два контакта). Я запускаю макрос, ввожу в поле имя класса и макрос определяет номера страниц и текст всех этих элементов.
Понятно, что можно использовать данные фигуры (Visio2010) или как это раньше называлось Custom properties и по факту запуска макроса перебирать все шейпы на наличие нужного Кастом Пропети. Но это долго. Вот я и подумал, может есть способы? |
|
|
Tumanov
Russia
1198 Posts |
Posted - 08/12/2012 : 13:29:36
|
Не обязательно перебирать все шейпы. Если шейп катушки будет содержать ссылки на шейпы контактов (например, идентификаторы в Custom Properties), то после нахождения катушки Вы по этим идентификаторам сразу можете добраться до контактов. Можно написать макрос, "заряжающий" катушку в режиме рисования. Например, рисуете катушку, контакты. Потом селектируете катушку и вызываете заряжающий макрос. Он просит выбрать по очереди контекты. После каждого выбора имя страницы и идентификатор контакта заносится в Custom Properties катушки. Можно заряжать перекрестными ссылками все три шейпа. Тогда, селектировав любой из них, можно быстро найти любой другой компонент реле.
|
|
|
9rey
Russia
30 Posts |
Posted - 08/16/2012 : 15:30:06
|
я бы наверно сделал так: при открытии документа сканировал один раз все страницы, создавая коллекции из катушек и контактов (при условии, что они имеют одно имя, пример - катушку и все контакты KL1) и выводил список из этих имен(позиций) пользователю. при выборе из списка позиции - считывается информация о всех элементах + возможность быстрой навигации к элементу. |
|
|
Tumanov
Russia
1198 Posts |
Posted - 08/16/2012 : 16:57:57
|
Я подумал, подумал и выбрал тот вариант, который попроще :) Если проект большой, с коллекциями, естественно, работать удобнее. Причем, коллекцию (коллекции) можно строить из объектов, содержащих шейпы. И такой объект может объединять все нужные шейпы. Собственно, этот вариант упоминался в моем первом ответе. |
|
|
9rey
Russia
30 Posts |
Posted - 08/16/2012 : 17:46:16
|
да, все верно. просто высказывались опасения, что будет работать медленно, если сканировать все страницы. я и написал, что при такой реализации сканировать надо один раз и в самом начале, и в итоге работать будет быстро. |
|
|
|
Topic |
|
|
|