All Forums
 Категория Visio
 Форум Вопросы и ответы
 Получение значений длина и угол
Author Previous Topic Topic Next Topic  

Kuzmich

18 Posts

Posted - 04/29/2005 :  17:47:51
Шейп построен на линии с кучей вкладок Geometry...
Как из VB получить значения длины и угла, которые отображаются в строке состояния?

immortal

Russia
391 Posts

Posted - 04/29/2005 :  18:07:28  Visit immortal's Homepage
длинна линии (если одна линия) то Width, угол Angle

.cells("Width").resultstr(0)
.cells("Angle").resultstr(0)

если у вас начало и конец линии не совпадают с Begin и End тогда
длинна = =SQRT((X конца-X начала)^2+(Y конца-Y начала)^2)
угол = =ATAN2(Y конца-Y начала,X конца-X начала)

если у вас геометрия 2 то угол будет относительно угла шейпа или первой геометрии =ATAN2(Geometry2.Y2-Geometry2.Y1,Geometry2.X2-Geometry2.X1)
однако поэксперементируйте и поймёте

визио 2003 форэвер

...а вобще-то я белый и пушистый.

Edited by - immortal on 05/02/2005 12:47:46
Go to Top of Page

Kuzmich

18 Posts

Posted - 04/29/2005 :  23:05:58
У шейпа вроде нет таких методов...
А CellsSRC хочет три параметра...

Edited by - Kuzmich on 04/29/2005 23:47:02
Go to Top of Page

immortal

Russia
391 Posts

Posted - 04/30/2005 :  11:59:10  Visit immortal's Homepage
quote:
А CellsSRC хочет три параметра...

три параметра это: номер (VBимя) секции, номер(VBимя) строки в нутри секции и Номер(VBимя) ячейки в строке

но можно обращаться прямо по имени например
cells("Width")
cells("EndX")
cells("Prop.Row_1")
cells("BeginY")

далее .resultstr(0) - получаем результат вычисления в ячейке
.formulaU - получаем саму формулу которая стоит в ячейке

quote:
У шейпа вроде нет таких методов...

каких методов не понял?
смотрите шейп лист там длинна линии (если одна линия) то Width, угол Angle

если используется линии не относительно width, то рекомендую прямо в шейпе сделать вычисления добавив секцию пользователя User.
и туда написать все необходимые формулы, а потом брать от туда, в прочем можно вычисления делать и через басик, но помните что угол расчитан будет относительно угла шейпа поэтому надо будет прибавить ещё и Angle




визио 2003 форэвер

...а вобще-то я белый и пушистый.

Edited by - immortal on 05/02/2005 12:48:28
Go to Top of Page

Kuzmich

18 Posts

Posted - 04/30/2005 :  12:59:52
quote:
каких методов не понял?
смотрите шейп лист там длинна линии (если одна линия) то Width, угол Angle

Имею ввиду метод CellSRC...
Есть только CellsSRC, который переваривать это не хочет...
Пишу так:
UserForm3.Label1.Caption = myob.CellSRC("Width").ResultStr(0)
UserForm3.Label2.Caption = myob.CellSRC("Angle").ResultStr(0)
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 04/30/2005 :  15:04:48
Если три параметра, то CellSRC, а если по имени, то Cells. Немного разные методы :)
Go to Top of Page

Kuzmich

18 Posts

Posted - 04/30/2005 :  17:03:29
quote:
Если три параметра, то CellSRC, а если по имени, то Cells. Немного разные методы :)

Когда три как раз CellsSRC, по крайней мере у меня именно так получается...
Property CellsSRC(Section As Integer, Row As Integer, Column As Integer) As Cell
А вот CellSRC я вообще не вижу нигде, ни в хелпе, ни в Object Browser...
Property Cells(localeSpecificCellName As String) As Cell
Видимо имелось ввиду это, так все сработало...

Edited by - Kuzmich on 04/30/2005 17:04:37
Go to Top of Page

immortal

Russia
391 Posts

Posted - 05/02/2005 :  12:47:00  Visit immortal's Homepage
quote:
Originally posted by Tumanov

Если три параметра, то CellSRC, а если по имени, то Cells. Немного разные методы :)



точно, перепутал, всё исправил как правильно, при имени используем Cells , а не CellSRC

в вашем случае будет
UserForm3.Label1.Caption = myob.Cells("Width").ResultStr(0)
UserForm3.Label2.Caption = myob.Cells("Angle").ResultStr(0)


визио 2003 форэвер

...а вобще-то я белый и пушистый.

Edited by - immortal on 05/02/2005 12:51:29
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)