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

Форум по вопросам применения и программирования в Visio
Текущее время: 27 фев 2021, 05:21

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


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


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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: команда ВОССТАНОВИТЬ ЛИНИЮ
СообщениеДобавлено: 23 фев 2021, 15:31 
Не в сети
Постоянный участник
Аватара пользователя

Зарегистрирован: 13 авг 2020, 04:53
Сообщений: 62
Использую Visio c: 2000
Уровнь квалификации: начальный
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Здравствуйте уважаемые гуру Visio. Прошу помочь с поиском команды ВОССТАНОВИТЬ ЛИНИЮ на vba . Макрорекордер мне не помог. Команда появляется в контекстном меню(к.м) соединительной линии. Когда линия одна пойдет и из к.м, но мне надо обработать сразу множество таких линий селекцией по слою.Под спойлером в конце материала видно к.м с этой командой. Нужен код применения этой функции чтоб написать обработчик для множества. Прошу помощи.
Спойлер: показать
Изображение


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: команда ВОССТАНОВИТЬ ЛИНИЮ
СообщениеДобавлено: 23 фев 2021, 16:03 
Не в сети
Глав-тролль
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 4116
Откуда: оттуда
Использую Visio c: 1998
Уровнь квалификации: Отсутствует
Surrogate в сообщении #11292 писал(а):
Для отлова событий есть фича Монитор событий, доступна после установки надстройки из SDK
Изображение
думаю с помощью этого инструмента можно отловить команды, те которые нельзя отловить макрорекордером
Surrogate в сообщении #15403 писал(а):
команду такую видел!
но ни разу не видел ее активной - поэтому забыл о ее существовании
другой вопрос: при каких условиях эта команда может быть активна?!?

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: команда ВОССТАНОВИТЬ ЛИНИЮ
СообщениеДобавлено: 23 фев 2021, 19:52 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
Примерно то же самое делает команда Application.DoCmd 1943 при выделенном коннекторе


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: команда ВОССТАНОВИТЬ ЛИНИЮ
СообщениеДобавлено: 24 фев 2021, 00:31 
Не в сети
Глав-тролль
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 4116
Откуда: оттуда
Использую Visio c: 1998
Уровнь квалификации: Отсутствует
Surrogate писал(а):
при каких условиях эта команда может быть активна?!?
поиграл с коннекторами и пришел к выводу,
должны выполняться 2 условия:
1. Работает с коннектором у которого начало и конец прицеплены к статическим точкам соединения.
2. Изменено положения одного или добавлено одно из колен соединительной линии.
поэтому возможно не ко всем фигурам эту команду возможно применить !
9rey писал(а):
Примерно то же самое делает команда Application.DoCmd 1943
Изображение
наверно такой вариант даже лучше: макрорекордером у меня записалось так:
Код:
        Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionFirstComponent, 3, 1).FormulaU = "-4.2322834645669"
        Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionFirstComponent, 3, 0).FormulaU = "4.3307086614173"
        Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionFirstComponent, 2, 1).FormulaU = "-4.2322834645669"
        Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionFirstComponent, 2, 0).FormulaU = "0"
        Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionFirstComponent, 1, 1).FormulaU = "0"
        Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionFirstComponent, 1, 0).FormulaU = "0"
        Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionConnectionPts, 1, visCnnctY).FormulaU = "-2.7771866177975"
        Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionConnectionPts, 1, visCnnctX).FormulaU = "4.7244094488189"
        Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionConnectionPts, 0, visCnnctY).FormulaU = "0.49212598425197"
        Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionConnectionPts, 0, visCnnctX).FormulaU = "0.1649287082358"
        Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionObject, visRowShapeLayout, visSLOConFixedCode).FormulaU = "5"
        Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionObject, visRowTextXForm, visXFormPinY).FormulaU = "-4.2322834645669"
        Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionObject, visRowTextXForm, visXFormPinX).FormulaU = "0.049212598425197"
        Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionObject, visRowXFormOut, visXFormHeight).FormulaU = "GUARD(EndY-BeginY)"
        Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionObject, visRowXFormOut, visXFormWidth).FormulaU = "GUARD(EndX-BeginX)"
в коде видно что пошагово меняется конфигурация коннектора (удаляются лишние колена). код предложенный 9rey делает все одной строчкой !


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: команда ВОССТАНОВИТЬ ЛИНИЮ
СообщениеДобавлено: 24 фев 2021, 08:21 
Не в сети
Постоянный участник
Аватара пользователя

Зарегистрирован: 13 авг 2020, 04:53
Сообщений: 62
Использую Visio c: 2000
Уровнь квалификации: начальный
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
DoCmd 1943 (битва за Сталинград :wall: )..сбил с толку буквальный перевод-КоннекторЭффектПравыйУгол :D . Это мне надо для того чтоб когда с плана размещения оборудования и проводок копируется все, что относится к слою СХЕМА и вставляется на другой лист (уже без масштаба), то соединительные лини "сходят с ума" и "возвращать" их по одной весьма муторно. А так уго оборудования на этих линиях расставляю используя команды выравнивания, не беспокоясь о соединяющих коннекторах..а потом чпок и одной командой линии становятся ровными как надо. Структурная схема делается прям с плана со всеми кабелями и маркировками уго . Теперь цель автоматически выравнивать уго на основе каких то критериев (идентификатор группы, типа, и т.д. ).Чтоб структурную взятую с плана меньше руками "причесывать".. Благодарю всех уважаемые люди за помощь.

p.s.вопрос не по теме- нет ли у кого возможности поделиться базой изделий связь,слаботочка для ePLAN. Предложения по этому вопросу на sco2000@yandex.ru .


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

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



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

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


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

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