Форум пользователей Visio http://visio.getbb.ru/ |
|
Склейка шейпов не коннекторов http://visio.getbb.ru/viewtopic.php?f=6&t=1029 |
Страница 1 из 1 |
Автор: | Bill17 [ 29 сен 2016, 14:44 ] |
Заголовок сообщения: | Склейка шейпов не коннекторов |
Подскажите как склеить два шейпа, ни один из которых не является OneD? Пробовал как-то так: Код: shp1.CellsU("PinX").GlueTo shp2.Cells("PinX") Но выдаётся ошибка "Недопустимый исходный объект для данного действия." Похоже это надо делать как-то по-другому. |
Автор: | Surrogate [ 29 сен 2016, 15:01 ] |
Заголовок сообщения: | Re: Склейка шейпов не коннекторов |
Bill17 писал(а): Подскажите как склеить два шейпа, что значит склеить ?
|
Автор: | Bill17 [ 29 сен 2016, 15:17 ] |
Заголовок сообщения: | Re: Склейка шейпов не коннекторов |
Это значит приклеить один шейп к другому. Ну через GlueTo или GlueToPos. |
Автор: | Shishok [ 29 сен 2016, 15:18 ] |
Заголовок сообщения: | Re: Склейка шейпов не коннекторов |
Если надо приклеить конец коннектора/линии к 2D шейпу: Сначала выделить коннектор, потом шейп и: Код: Sub ShapeGlue()
Dim shp1 As Visio.Shape, shp2 As Visio.Shape Set shp1 = ActiveWindow.Selection(1) Set shp2 = ActiveWindow.Selection(2) shp1.CellsU("EndX").GlueTo shp2.CellsSRC(1, 1, 0) ' конец коннектора/линии к шейпу shp1.Cells("EndX").GlueTo shp2.Cells("Connections.X1") ' конец коннектора/линии к точке соединения шейпа (это лучше) End Sub |
Автор: | Bill17 [ 29 сен 2016, 15:24 ] |
Заголовок сообщения: | Re: Склейка шейпов не коннекторов |
Коннекторы - это стрелки? Мне надо не стрелки соединять, а два 2D шейпа. |
Автор: | Tumanov [ 29 сен 2016, 15:27 ] |
Заголовок сообщения: | Re: Склейка шейпов не коннекторов |
PinX-ами замучаешься 2D шейпы клеить... Лучше всего клеить Connection Points-ами. Причем нужно помнить, что они должны быть разными и клеить которые "наружу" к тем, которые "внутрь". Вот запись макроса Код: Set vsoCell3 = Application.ActiveWindow.Page.Shapes.ItemFromID(2).CellsSRC(visSectionConnectionPts, 0, 0) Set vsoCell4 = Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionConnectionPts, 0, 0) vsoCell3.GlueTo vsoCell4 И опять же надо помнить, что длинные "гирлянды" при перетаскивании разваливаются. То есть клеить можно, но увлекаться нельзя. |
Автор: | Shishok [ 29 сен 2016, 15:29 ] |
Заголовок сообщения: | Re: Склейка шейпов не коннекторов |
Цитата: Коннекторы - это стрелки? Мне надо не стрелки соединять, а два 2D шейпа. Не внимательно прочитал. |
Автор: | Tumanov [ 29 сен 2016, 15:43 ] | ||
Заголовок сообщения: | Re: Склейка шейпов не коннекторов | ||
.
|
Автор: | Гость [ 29 сен 2016, 15:48 ] |
Заголовок сообщения: | Re: Склейка шейпов не коннекторов |
Tumanov писал(а): PinX-ами замучаешься 2D шейпы клеить... Лучше всего клеить Connection Points-ами. Причем нужно помнить, что они должны быть разными и клеить которые "наружу" к тем, которые "внутрь". Вот запись макроса Код: Set vsoCell3 = Application.ActiveWindow.Page.Shapes.ItemFromID(2).CellsSRC(visSectionConnectionPts, 0, 0) Set vsoCell4 = Application.ActiveWindow.Page.Shapes.ItemFromID(1).CellsSRC(visSectionConnectionPts, 0, 0) vsoCell3.GlueTo vsoCell4 И опять же надо помнить, что длинные "гирлянды" при перетаскивании разваливаются. То есть клеить можно, но увлекаться нельзя. Это работает, но возникла другая проблема. При таком коннекте шейпы сместились и прикрепились не в нужном мне месте. Подскажите как это будет выглядеть при использовании GlueToPos? |
Автор: | Surrogate [ 29 сен 2016, 16:09 ] |
Заголовок сообщения: | Re: Склейка шейпов не коннекторов |
MSDN в статье Cell.GlueToPos Method (Visio) писал(а): Cell.GlueToPOS Method (Visio) в примере первый шейп 1D!
Glues one shape to another from a cell in the first shape to an x,y position in the second shape. |
Автор: | Tumanov [ 29 сен 2016, 16:14 ] |
Заголовок сообщения: | Re: Склейка шейпов не коннекторов |
Цитата: При таком коннекте шейпы сместились А как еще? Второй шейп всегда либо растягивается (коннектор), либо смещается (2D). |
Автор: | Tumanov [ 29 сен 2016, 16:23 ] | ||
Заголовок сообщения: | Re: Склейка шейпов не коннекторов | ||
.
|
Автор: | Bill17 [ 29 сен 2016, 16:26 ] |
Заголовок сообщения: | Re: Склейка шейпов не коннекторов |
Не понял к чему выделенное, если в той же статье пишут, что этим методом можно клеить два 2D объекта. А вот в статье GlueToPos не особо написано про склейку двух 2D объектов. Цитата: А как еще? Второй шейп всегда либо растягивается (коннектор), либо смещается (2D). Мне бы хотелось 2D объект в точке склеить с другим 2D объектом. |
Автор: | Bill17 [ 29 сен 2016, 16:39 ] |
Заголовок сообщения: | Re: Склейка шейпов не коннекторов |
Да, это то, что нужно. 1D к 2D я клеить умею, а вот 2D к 2D с помощью GlueToPos можно приклеить? |
Автор: | Tumanov [ 29 сен 2016, 17:14 ] |
Заголовок сообщения: | Re: Склейка шейпов не коннекторов |
Судя по справке, нельзя. Но что мешает сначала поставить нужные Connection points, а потом к ним приклеить? Так точно можно. |
Автор: | Bill17 [ 29 сен 2016, 17:30 ] |
Заголовок сообщения: | Re: Склейка шейпов не коннекторов |
Спасибо, я понял как всё реализовать. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |