All Forums
 Категория Visio
 Форум Вопросы и ответы
 Абсолютные координаты
Author Previous Topic Topic Next Topic  

mormax

Russia
18 Posts

Posted - 03/22/2005 :  11:31:37
Имеется шейп, вложеный в другой шейп, который в свою очередь тоже вложен.Можно ли узнать как нибудь координаты относительно листа вложенного шейпа, не прибегая к вычислениям?

asleep

8 Posts

Posted - 03/22/2005 :  15:33:21
если из ВБ то так
Dim pinX As Double
Dim pinY As Double

pinX = gopsShape.Cells("LocPinX").Result(visNoCast)
pinY = gopsShape.Cells("LocPinY").Result(visNoCast)
gopsShape.XYToPage pinX, pinY, pinX, pinY
тут можно остановиться, но т.к. XYToPage работает с дюймами
удобнее это в миллиметры перевести
pinX = Visio.Application.ConvertResult(pinX, visNoCast, visMillimeters)
pinY = Visio.Application.ConvertResult(pinY, visNoCast, visMillimeters)

в шейп шите так(формулы в элементе Sheet.X для координат элемента Sheet.1):
Scratch.A1 = LOCTOLOC(PNT(Sheet.1!LocPinX,Sheet.1!LocPinY),Sheet.1!Width,ThePage!PageWidth))Sheet.1!Width,ThePage!PageWidth),ThePage!PageWidth,Width))
Scratch.B1 = GUARD(PAR(LOCTOLOC(Scratch.A1,ThePage!PageWidth,Width)))
PNT(Scratch.B1) - искомая координата
Go to Top of Page

asleep

8 Posts

Posted - 03/22/2005 :  15:58:53
упс
Scratch.A1=LOCTOLOC(PNT(Sheet.1!LocPinX,Sheet.1!LocPinY),Sheet.1!Width,ThePage!PageWidth)
так будет
в Scratch.B1 GUARD можно снять он там необязателен

нечаянно получилось
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)