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

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

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Как дропнуть 1D фигуру с исходными параметрами
СообщениеДобавлено: 25 мар 2021, 22:57 
Не в сети
Новичок

Зарегистрирован: 24 мар 2021, 21:04
Сообщений: 25
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Я понимаю, что уже слишком многого прошу. Но вдруг таки есть параметр, который залочит MoveTo LineTo параметры фигуры при дропе?

Прикрепил картинку на всякий случай.

Ломаются линии при дропе где-то в трети случаев. И на самом деле это не критично. Но хочется человеческие методы и функции в VSTO C# =)

И да, я могу конечно, сохранять параметры MoveTo LineTo , а потом перерисовывать их после дропа. Но это же уродство какое-то.


Вложения:
Комментарий к файлу: Пример, как ломаются линии при дропе.
7.jpg
7.jpg [ 463.58 Кб | Просмотров: 435 ]
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как дропнуть 1D фигуру с исходными параметрами
СообщениеДобавлено: 25 мар 2021, 23:19 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Dubsage писал(а):
Ломаются линии при дропе где-то в трети случаев
это не просто 1d линия, а динамический коннектор! Можно попробовать отключать изменение траектории перед дропом. при этом поменяется несколько параметров, попробуйте включите макрорекордер и выключите изменение траектории
Параметры поведения для коннекторов [параметр фигуры]
Вы также можете изменить параметры коннекторов, а не фигур, которые вызывают изменение маршрута.

Выберите коннектор. На вкладке Разработчик (Developer) [как найти эту вкладку, см. ниже в соответствующем разделе] в группе Конструктор фигур (Shape Design) щелкните элемент Поведение (Behavior).
В появившемся окне параметров поведения откройте вкладку Соединительная линия (Connector). В разделе Маршрутизация линий (Line routing) для параметра Изменение маршрута (Reroute) выберите значение Никогда (Never) из выпадающего списка вариантов.
Код:
shp.CellsSRC(visSectionObject, visRowShapeLayout, visSLOConFixedCode).FormulaU = "2"

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как дропнуть 1D фигуру с исходными параметрами
СообщениеДобавлено: 25 мар 2021, 23:43 
Не в сети
Новичок

Зарегистрирован: 24 мар 2021, 21:04
Сообщений: 25
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
Dubsage писал(а):
Ломаются линии при дропе где-то в трети случаев
это не просто 1d линия, а динамический коннектор! Можно попробовать отключать изменение траектории перед дропом.
Изменение маршрута (VisCellIndices.visSLOConFixedCode)? Попробовал поставить в никогда. Не помогло (


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как дропнуть 1D фигуру с исходными параметрами
СообщениеДобавлено: 25 мар 2021, 23:44 
Не в сети
Новичок

Зарегистрирован: 24 мар 2021, 21:04
Сообщений: 25
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Хотя стоп, для каких-то помогло, для каких-то нет. Надо разобраться...


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как дропнуть 1D фигуру с исходными параметрами
СообщениеДобавлено: 26 мар 2021, 00:01 
Не в сети
Новичок

Зарегистрирован: 24 мар 2021, 21:04
Сообщений: 25
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Нет не могу экстраполировать. Рандом. Каким-то линиям это действительно помогло. Каким-то нет.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как дропнуть 1D фигуру с исходными параметрами
СообщениеДобавлено: 26 мар 2021, 00:03 
Не в сети
Content manager
Content manager
Аватара пользователя

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

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как дропнуть 1D фигуру с исходными параметрами
СообщениеДобавлено: 26 мар 2021, 00:05 
Не в сети
Ветеран
Аватара пользователя

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

Добавить очки репутацииУменьшить очки репутации
Просто выключи автоматический роутинг, тогда Visio ничего трогать "на дропе" не будет.
Встроенное видео спрятано под спойлер ↓ Прямая ссылка на видео
Спойлер:
phpBB [media]

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как дропнуть 1D фигуру с исходными параметрами
СообщениеДобавлено: 26 мар 2021, 02:41 
Не в сети
Новичок

Зарегистрирован: 24 мар 2021, 21:04
Сообщений: 25
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
я правильно понимаю: вы последовательно бросаете на лист эти красные коннекторы по одному и приклеиваете их квадратам.
или сразу бросаете всё кучей ?

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

Цитата:
Просто выключи автоматический роутинг, тогда Visio ничего трогать "на дропе" не будет.
Я наверно понял идею. Сделать все 2Д фигуры не влияющими на автороутинг. Это к сожалению тоже не помогает.

Вроде разобрался: "Изменение маршрута - Никогда". Помогает против MoveTo LineTo проблем.
Но есть ещё смещение по pinX и pinY для некоторых линий. И это видимо от других причин.

Прикрепил визио документ. Разместил на нём 2 проблемные линии. И одну не пролемную. Можно любую нарисовать.

И возьмём этот приславутый код, чтобы дропнуть линии в теже позиции.
Код:
        private void button1_Click(object sender, RibbonControlEventArgs e)
        {
            GC.Collect();           
            GC.WaitForPendingFinalizers();

            Shapes shapes = Globals.ThisAddIn.Application.ActivePage.Shapes;
            findUserShape(shapes);
        }

        void findUserShape(Shapes shapes)
        {
            foreach(Shape shape in shapes)
            {
                if (shape.Text == "User Shape")
                {
                    const double to_inch = 0.0393700787;
                    string str;

                    str = shape.get_CellsSRC(
                            (short)VisSectionIndices.visSectionObject,
                            (short)VisRowIndices.visRowXFormOut,
                            (short)VisCellIndices.visXFormPinX
                        ).get_ResultStr(VisUnitCodes.visMillimeters);
                    double pin_x = double.Parse(str.Remove(str.Length - 3));

                    str = shape.get_CellsSRC(
                            (short)VisSectionIndices.visSectionObject,
                            (short)VisRowIndices.visRowXFormOut,
                            (short)VisCellIndices.visXFormPinY
                        ).get_ResultStr(VisUnitCodes.visMillimeters);
                    double pin_y = double.Parse(str.Remove(str.Length - 3));


                    Shape new_shape = Globals.ThisAddIn.Application.ActivePage.Drop(
                        shape,
                        pin_x * to_inch,
                        pin_y * to_inch);

                    new_shape.Text = "New shape";
                }
                if (shape.Shapes != null && shape.Shapes.Count > 0)
                    findUserShape(shape.Shapes);
            }
        }

Осталось понять откуда проблема со смещением по pinX pinY?


Вложения:
User Shape Test.vsdx [23.85 Кб]
Скачиваний: 56
Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как дропнуть 1D фигуру с исходными параметрами
СообщениеДобавлено: 26 мар 2021, 13:50 
Не в сети
Ветеран
Аватара пользователя

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

Добавить очки репутацииУменьшить очки репутации
Dubsage писал(а):
Осталось понять откуда проблема со смещением по pinX pinY?

Это наверное автоматическое размещение. Выключается тем же способом (в том же диалоге "поведение")

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как дропнуть 1D фигуру с исходными параметрами
СообщениеДобавлено: 26 мар 2021, 16:59 
Не в сети
Новичок

Зарегистрирован: 24 мар 2021, 21:04
Сообщений: 25
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Цитата:
Это наверное автоматическое размещение. Выключается тем же способом (в том же диалоге "поведение")

Увы не помогает.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как дропнуть 1D фигуру с исходными параметрами
СообщениеДобавлено: 26 мар 2021, 18:42 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
VisioPort. Особенности метода Drop Shape

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как дропнуть 1D фигуру с исходными параметрами
СообщениеДобавлено: 26 мар 2021, 21:57 
Не в сети
Новичок

Зарегистрирован: 24 мар 2021, 21:04
Сообщений: 25
Использую Visio c: 2013
Очков репутации: 0

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

Это уже становится больно смотреть =) Похоже все ходят примерно по одним и тем же граблям.

Я победил различные косяки 2Д фигур. А вот эксклюзивные беды с 1Д фигурами остались. Думаю уже плюнуть. Рисуются чуть криво некоторые линии и ладно. Это всё равно с точки зрения моих задач допустимо.

Можно конечно полностью перерисовать все параметры линий. Но это опять сделает отрисовку медленной.

"Изменение маршрута" - в "никогда" помогает. После этого MoveTo LineTo не ломаются.
Но некоторые линии ещё и pinX pinY смещают и это ни чем не правится.

Спасибо всем за помощь ) Благодаря вам многое смог понять.


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

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



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

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


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

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