All Forums
 Категория Visio
 Форум Вопросы и ответы
 длина кабеля из N участков ???
Author Previous Topic Topic Next 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 блоки?
Go to Top of Page

brace

Russia
358 Posts

Posted - 05/31/2005 :  09:18:29
между двумя соседними узлами нарисована прямая линия
узел это кружок d=5 мм или квадратик 5х5 мм.
Вся трасса это конечно ломанная линия.
Количество участков пусть 5 хотя может быть разное до 100.
Если надо чтобы концы линий касались сделаю.
Если надо жестко тхт блок к каждой прямой линии привязать
скажите как ? сделаю.
Важен кнечный результат.
Go to Top of Page

immortal

Russia
391 Posts

Posted - 05/31/2005 :  10:20:41  Visit immortal's Homepage
дак прямая или ломанная?
ломанная - это несколько прямых в одном шейпе.
прямая - каждая прямая это самостоятельный шейп
это я так понимаю ЛЭП?

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

...а вобще-то я белый и пушистый.
Go to Top of Page

brace

Russia
358 Posts

Posted - 05/31/2005 :  12:20:42
между первым и последним узлом трассы = ломаная линия
между соседними узлами = всегда прямая
как еще проще сказать не знаю.
Go to Top of Page

Digitall

Russia
389 Posts

Posted - 05/31/2005 :  12:30:33  Visit Digitall's Homepage
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
Go to Top of Page

brace

Russia
358 Posts

Posted - 05/31/2005 :  12:36:33
дополнение
узлы расставляю по реальным координатам
реальная трасса никода не бывает прямой
это не ЛЭП а линия связи
у них опора у нас узел
пролеты у нас ср. длина = 40 км.
Go to Top of Page

brace

Russia
358 Posts

Posted - 05/31/2005 :  14:36:37
спасибо Digitall !
а без слоев можно ? не люблю с ними работать
ведь каждый тхт блок имеет свой id visio сам блоки нумерует
и пусть макрос просуммирует числа помещенные в тхт блоки допустим
от id=4 до id=10 и выведет сумму в id=13
Go to Top of Page

Digitall

Russia
389 Posts

Posted - 05/31/2005 :  14:49:35  Visit Digitall's Homepage
quote:
Originally posted by brace

спасибо Digitall !
а без слоев можно ? не люблю с ними работать
ведь каждый тхт блок имеет свой id visio сам блоки нумерует
и пусть макрос просуммирует числа помещенные в тхт блоки допустим
от id=4 до id=10 и выведет сумму в id=13


Всегда есть более элегантное решение. Мое решение топорное, но работает.
Go to Top of Page

dkapotov

Russia
29 Posts

Posted - 06/10/2005 :  21:53:09  Visit dkapotov's Homepage
А можно ли сделать так: нарисовали на плане трассу кабеля в виде линии, далее кабель от точки до точки пойдет по трассе... Пускай он будет выполнен в виде некоей функции, чтоб можно было ей показать начало отсчета, точки прохождения, линию, по которой пойдет, конец. Текстовую инфромацию с резхультатом подсчета длины надо сделать редактируемой, чтоб можно было вставлять какие-либо префиксы, менять оформление (в виде дроби, отдельной строкой и т.п.). В результате на чертеже получится трасса одна, а кабелей несколько. Принцип работы очень похож на магнитное лассо в Фотошопе. Рисовать сам кабель не надо, а только посчитать длину выделенных линий под него на чертеже

И опыт, сын ошибок трудных.... придет как и половое бессилие с годами...

Edited by - dkapotov on 06/10/2005 21:57:31
Go to Top of Page

brace

Russia
358 Posts

Posted - 06/12/2005 :  21:52:44

сделать можно все - и уже много софта сделано и продается
лет 30 назад немцы показывали программу для проектирования скоростных федеральных автомагистралей. Программе задавались начало и конец трассы, рельеф местности, мин. радиус поворота, макс. угол спуска и подьема и тд и тд и тд.
Программа выбирала оптимальную трассу и чертила ее на карте.

Go to Top of Page

immortal

Russia
391 Posts

Posted - 06/12/2005 :  22:52:50  Visit immortal's Homepage
а зачем собственно отдельно делать текстовые блоки, сделать можно так как сделоны у меня провода, и считать всё что надо.

Edited by - immortal on 06/12/2005 22:55:38
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)