Author |
Topic |
|
brace
Russia
358 Posts |
Posted - 05/30/2005 : 16:22:27
|
нарисована трасса из N УЧАСТКОВ кабеля длина каждого участка записана в тхт блок над кабелем нужен макрос который подсчитает общую длину кабеля те просуммирует числа помещенные в тхт блоки и нарисует СУММУ тоже в тхт блоке с текстом ДЛИНА ТРАССЫ |
|
Tumanov
Russia
1198 Posts |
Posted - 05/30/2005 : 18:41:43
|
Поподробнее насчет N участков. Это отдельные прямые, у которых начала и концы приблизительно совпадают? Или это ломаная линия? Как txt блоки связаны с участками - есть какие-то формальные признаки? Сколько всего кабелей (трасс или чего-то еще на рисунке) - или как выбрать нужные txt блоки? |
|
|
brace
Russia
358 Posts |
Posted - 05/31/2005 : 09:18:29
|
между двумя соседними узлами нарисована прямая линия узел это кружок d=5 мм или квадратик 5х5 мм. Вся трасса это конечно ломанная линия. Количество участков пусть 5 хотя может быть разное до 100. Если надо чтобы концы линий касались сделаю. Если надо жестко тхт блок к каждой прямой линии привязать скажите как ? сделаю. Важен кнечный результат.
|
|
|
immortal
Russia
391 Posts |
Posted - 05/31/2005 : 10:20:41
|
дак прямая или ломанная? ломанная - это несколько прямых в одном шейпе. прямая - каждая прямая это самостоятельный шейп это я так понимаю ЛЭП?
визио 2003 форэвер
...а вобще-то я белый и пушистый. |
|
|
brace
Russia
358 Posts |
Posted - 05/31/2005 : 12:20:42
|
между первым и последним узлом трассы = ломаная линия между соседними узлами = всегда прямая как еще проще сказать не знаю. |
|
|
Digitall
Russia
389 Posts |
Posted - 05/31/2005 : 12:30:33
|
quote: Originally posted by brace
между первым и последним узлом трассы = ломаная линия между соседними узлами = всегда прямая как еще проще сказать не знаю.
Между узлами - отдельные линии. Проще некуда.
Предлагаю такой вариант: Поместить на отдельный слой надписи, потом выделить их по слою. Первым выделить текстовый блок в котором впоследствии будет красоваться надпись "ДЛИНА ТРАССЫ" и собственно сама длина. И потом просто подсчитать все суммы в выделенных фигурах(макросом) и записать получившееся значение в первый текстовый блок.
Что-то типа такого:
Sub Summ() Dim Summ, ESumm As Double Dim shpObj As Visio.Shape Dim selectObj As Visio.Selection Set selectObj = ActiveWindow.Selection i = ActiveWindow.Selection.Count For k = 2 To i Set shpObj = ActiveWindow.Selection.Item(k) Summ = shpObj.Text ESumm = ESumm + Summ Next k Set shpObj = ActiveWindow.Selection.Item(1) shpObj.Text = ESumm End Sub |
|
|
brace
Russia
358 Posts |
Posted - 05/31/2005 : 12:36:33
|
дополнение узлы расставляю по реальным координатам реальная трасса никода не бывает прямой это не ЛЭП а линия связи у них опора у нас узел пролеты у нас ср. длина = 40 км. |
|
|
brace
Russia
358 Posts |
Posted - 05/31/2005 : 14:36:37
|
спасибо Digitall ! а без слоев можно ? не люблю с ними работать ведь каждый тхт блок имеет свой id visio сам блоки нумерует и пусть макрос просуммирует числа помещенные в тхт блоки допустим от id=4 до id=10 и выведет сумму в id=13 |
|
|
Digitall
Russia
389 Posts |
Posted - 05/31/2005 : 14:49:35
|
quote: Originally posted by brace
спасибо Digitall ! а без слоев можно ? не люблю с ними работать ведь каждый тхт блок имеет свой id visio сам блоки нумерует и пусть макрос просуммирует числа помещенные в тхт блоки допустим от id=4 до id=10 и выведет сумму в id=13
Всегда есть более элегантное решение. Мое решение топорное, но работает. |
|
|
dkapotov
Russia
29 Posts |
Posted - 06/10/2005 : 21:53:09
|
А можно ли сделать так: нарисовали на плане трассу кабеля в виде линии, далее кабель от точки до точки пойдет по трассе... Пускай он будет выполнен в виде некоей функции, чтоб можно было ей показать начало отсчета, точки прохождения, линию, по которой пойдет, конец. Текстовую инфромацию с резхультатом подсчета длины надо сделать редактируемой, чтоб можно было вставлять какие-либо префиксы, менять оформление (в виде дроби, отдельной строкой и т.п.). В результате на чертеже получится трасса одна, а кабелей несколько. Принцип работы очень похож на магнитное лассо в Фотошопе. Рисовать сам кабель не надо, а только посчитать длину выделенных линий под него на чертеже
И опыт, сын ошибок трудных.... придет как и половое бессилие с годами... |
Edited by - dkapotov on 06/10/2005 21:57:31 |
|
|
brace
Russia
358 Posts |
Posted - 06/12/2005 : 21:52:44
|
сделать можно все - и уже много софта сделано и продается лет 30 назад немцы показывали программу для проектирования скоростных федеральных автомагистралей. Программе задавались начало и конец трассы, рельеф местности, мин. радиус поворота, макс. угол спуска и подьема и тд и тд и тд. Программа выбирала оптимальную трассу и чертила ее на карте.
|
|
|
immortal
Russia
391 Posts |
Posted - 06/12/2005 : 22:52:50
|
а зачем собственно отдельно делать текстовые блоки, сделать можно так как сделоны у меня провода, и считать всё что надо. |
Edited by - immortal on 06/12/2005 22:55:38 |
|
|
|
Topic |
|