Author |
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 окно.
|
|
|
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 |
|
|
pahentos
4 Posts |
Posted - 10/25/2006 : 01:57:50
|
Большое спасибо!!! Макрос помог. Мне, как полному "бивню" в Visio , понравился математический подход к задаче. Спасибо. |
Edited by - pahentos on 10/25/2006 03:34:27 |
|
|
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 |
|
|
|
Topic |
|
|
|