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

pahentos

4 Posts

Posted - 10/24/2006 :  05:45:07
Добрый день!

Очень понадобилось нарисовать лимб.
Определённым диаметром,
проградуированный хотя бы через градус.
Есть ли какой-нибудь шаблон для этого
или как проще это сделать?

Заранее благодарен.

brace

Russia
358 Posts

Posted - 10/24/2006 :  12:03:54
можно написать програмульку на VBA -- но я не спец. а ручками можно сделать так :

1. перетаскиваешь шейп "Center drag circle" на чистый лист
2. рисуешь горизонтальную прямую линию исходящую из центра круга
при совпадении конца линии с центром круга центр круга покраснеет
изменяешь угол "Angle" на точное значение = 0.
3. рисуешь еще прямую с нужным углом на глаз
изменяешь угол на точное значение
и так далее ... до посинения
для контроля за величиной угла "Angle" используй Size&Position окно.


Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 10/24/2006 :  20:03:51
Вот такой макрос практически справляется с задачей :)
Sub ttt()
' Пример вызова
Call limb(1#, 1#, 1#, 0.2)
End Sub
Sub limb(x0 As Double, y0 As Double, rmin As Double, deltar As Double)
'x0, y0 - координаты центра лимба
'rmin - радиус внутренней окружности
'deltar - длина штриха
Dim sh As Visio.Shape
da = 3.14159 / 180
For i = 0 To 359
Set sh = ActivePage.DrawLine(x0 + rmin * Cos(da * i), y0 + rmin * Sin(da * i), x0 + (rmin + deltar) * Cos(da * i), y0 + (rmin + deltar) * Sin(da * i))
Next
End Sub
Go to Top of Page

pahentos

4 Posts

Posted - 10/25/2006 :  01:57:50
Большое спасибо!!!
Макрос помог.
Мне, как полному "бивню" в Visio ,
понравился математический подход к задаче.
Спасибо.

Edited by - pahentos on 10/25/2006 03:34:27
Go to Top of Page

pahentos

4 Posts

Posted - 10/25/2006 :  02:05:35
А как все длины, которые в переменных определяются, соотнести с миллиметрами?
Хочу ещё цифры прикрепить (отметки в градусах).
Понял что макрос записать не смогу,т.к.
Visio стоит вот такой MS Visio 2002 SR-1 (10.0.2514).
Подскажите, пожалуйста, как надпись к шейпу программно к нормальному виду привести?
Если пишу так: vsoChar.Text = "360"
то буквы вертикально стоят, как можно растянуть текстовое поле?
И вообще ориентировать его в плоскости под углом?

-----------------------
--=прошло 7 часов=--
-----------------------
Вроде что-то типа того должно быть?
Set shpObj = ActiveWindow.Selection.Item(1)
shpObj.Cells("TxtPinx") = -0.1
shpObj.Cells("TxtPiny") = -0.1
shpObj.Cells("TxtWidth") = 1
--------------------------------
Ура! Получилось!

Edited by - pahentos on 10/25/2006 09:09:45
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)