Помощь - Поиск - Пользователи - Календарь
Перейти к полной версии этой страницы на форумах сайта Электрик: Расчет длин кабелей в визио
Форумы сайта ЭЛЕКТРИК > Проектирование > ПО по проектированию ЭУ


Костян челябинский
Начал осваивать визио 2010 портабл. Довольно удобная программа, простые планировки получаются махом. Одно не понятно. В Компасе, допустим, начертишь план в натуральную величину, расставишь розетки-выключатели, начертишь трассы и в режиме измерения длины кривой измеряешь длину трасс. В Визио я не могу найти аналог данного измерения. Вообще можно как то измерять длины трасс в ней?
Sinus
На сколько я помню в визио такого инструмента нет. Хотя давно это было.
ИМХО Визио, это старый добрый кульман, только на мониторе.
Roman D
Visio portable = Visio svorowable.
Бе- ре-гись!
Sinus
Во, а попробуй выделить линию и нажать "объединить" а потом погляди свойства.
Костян челябинский
Цитата(Roman D @ 11.5.2013, 2:19) *
Visio portable = Visio svorowable.
Бе- ре-гись!

Та я так, трохи для сЭбЭ
Диманыч
В визио нет такой функции. Только если линейкой на мониторе мерить...
Гость сочувствующий
Цитата(Диманыч @ 24.5.2013, 18:37) *
В визио нет такой функции. Только если линейкой на мониторе мерить...

За измерение длины кривых не скажу, а длины (в соответствие с мсштабом) прямых отрезков отражаются в левом нижнем углу. У меня стоит Визио 2007, до этого пользовался ещё с 98 Виндой, версию Визио не помню, но там тоже, по-моему, такая примочка была.
S-cream
Открыл 2003 визио. В нижней панели все длины и т.д. видны.

Костян челябинский
Спасибо, понял, но имел ввиду немного другое. В Компасе включаешь измерение длины кривой (так они называют любую линию, прямую, ломанную, произвольной формы), выделяешь по очереди нужные отрезки и в отдельном окне показывается длина каждого отрезка и общая сумма. Здесь, видимо, такого нет. Печально.
S-cream
ну, надо просто приспособиться.
Roman D
Бесплатным Q-CAD/LibreCADом не пробовали работать?
Гость сочувствующий
Цитата(Костян челябинский @ 25.5.2013, 19:47) *
Спасибо, понял, но имел ввиду немного другое. В Компасе включаешь измерение длины кривой (так они называют любую линию, прямую, ломанную, произвольной формы), выделяешь по очереди нужные отрезки и в отдельном окне показывается длина каждого отрезка и общая сумма. Здесь, видимо, такого нет. Печально.

В Визио эта функция реализована по другому: чертишь кривую отдельными кривыми отрезками и длина каждого видна в нижней панели. Просто к каждой программе нужен свой подход и привычки.
Костян челябинский
Roman D, Даже не слышал. Пойду посмотрю, что за зверь.

Гость сочувствующий, и записываешь каждый из них на отдельную бумажку или в файл? А если что пропустишь или наоборот, два раза посчитаешь?

Roman D, Поглядел. Простенько и без излишеств. Чисто черчение. Но у меня есть Компас LT и я к нему привык больше.
Гость сочувствующий
Цитата(Костян челябинский @ 26.5.2013, 17:37) *
Гость сочувствующий, и записываешь каждый из них на отдельную бумажку или в файл? А если что пропустишь или наоборот, два раза посчитаешь?

Зачем на бумажку? Можно в файл под названием "Спецификация", а чтобы на чертеже посмотреть длину, достаточно выделить отрезок курсором и на панели внизу видно длину. Принцип вычисления общей длины, допустим кабельной линии, тоже достаточно прост: рисуем линию из любого количества отрезков (как нам удобнее), заносим полученные длины в спецификацию (при необходимости). Чтобы получить общюю длину курсором выделяем все отрезки, далее "Фигура-группировка-группировать" и получаем суммарную длину линии. Вообще с Визио давненько работаю, программа для моих потребностей самое то, накопил достаточное количество библиотек шаблонов, в том числе ГОСТОВ-ких. Ещё одно применение - вычисление диагонали заземляющего устройства: начертил в масштабе исполнительную смонтированного ЗУ, диагональку провёл и считать ничего не надо, результат на виду!
Roman D
Цитата(Костян челябинский @ 26.5.2013, 16:37) *
Roman D, Поглядел. Простенько и без излишеств. Чисто черчение. Но у меня есть Компас LT и я к нему привык больше.

Костян челябинский, а у Вас LT с библиотеками?

Вот ещё QElectroTech - рисовалка есть для схем.
Костян челябинский
Гость сочувствующий, Попробую. А файл сама визио изготавливает?
Roman D, Пока не смотрел. Попозже.

LT - не знаю. icon_redface.gif я ими не пользуюсь. Быстрее автоматик начертить и откопипастить куда и сколько раз надо, чем вытаскивать его из библиотеки.
Roman D
QElectroTech:

sPlan:

LibreCAD:
Lione
Цитата(S-cream @ 25.5.2013, 21:26) *
ну, надо просто приспособиться.

Написал макрос для Visio. Он расчитывает длинну выделенных линий и выводит в MsgBox.

Sub Измерение_длин()
Dim lenth As Double
lenth = 0
Dim vsoShape As Visio.Shape
For Each vsoShape In Application.ActiveWindow.Selection
lenth = lenth + vsoShape.LengthIU
Next
'Корректировка масштаба
lenth = lenth / (0.393700787401575 - 0.000000000000001 / 5) ' перевод из внутренних ед измерения
MsgBox (lenth)
End Sub
Костян челябинский
Гость_Lione_* , а можно все то же самое, только как для блондина. Вот спинным мозгом чую, что вещь отличная, но не знаю, как ее применить
Dimka1
Выбираете "Вид", "Макрос"

Введите любое имя макроса и нажать кнопку создать.
Появится окно MS Visual Basic. Туда копируете

Sub Измерение_длин()
Dim lenth As Double
lenth = 0
Dim vsoShape As Visio.Shape
For Each vsoShape In Application.ActiveWindow.Selection
lenth = lenth + vsoShape.LengthIU
Next
'Корректировка масштаба
lenth = lenth / (0.393700787401575 - 0.000000000000001 / 5) ' перевод из внутренних ед измерения
MsgBox (lenth)
End Sub

закрываете окно.


Дальше выделяете любую линию на чертеже, выбираете вид/макрос и выполнить. Всплывёт окно с указанием длинны.


Все на примитивном уровне.
S-cream
У мну потребность в рисовании минимальная, поэтому я макросами не заморачивался, но Lione огромное спасибки. Забью, пусть будет.
Костян челябинский
Dimka1, Гость_Lione_*, Спасибо вам. Еще не пробовал, но, думаю, получится
Тим
Цитата(Dimka1 @ 27.8.2013, 21:23) *
Выбираете "Вид", "Макрос"

Введите любое имя макроса и нажать кнопку создать.
Появится окно MS Visual Basic. Туда копируете

Sub Измерение_длин()
Dim lenth As Double
lenth = 0
Dim vsoShape As Visio.Shape
For Each vsoShape In Application.ActiveWindow.Selection
lenth = lenth + vsoShape.LengthIU
Next
'Корректировка масштаба
lenth = lenth / (0.393700787401575 - 0.000000000000001 / 5) ' перевод из внутренних ед измерения
MsgBox (lenth)
End Sub

закрываете окно.


Дальше выделяете любую линию на чертеже, выбираете вид/макрос и выполнить. Всплывёт окно с указанием длинны.


Все на примитивном уровне.


Dimka1, спасибо, вставил и поехало!
Костян челябинский
А вот у меня не очень. Но разбираться было некогда. Еще раз попробую, отпишусь
ssv Владикавказ
Цитата(Гость сочувствующий @ 24.5.2013, 20:41) *
За измерение длины кривых не скажу, а длины (в соответствие с мсштабом) прямых отрезков отражаются в левом нижнем углу. У меня стоит Визио 2007, до этого пользовался ещё с 98 Виндой, версию Визио не помню, но там тоже, по-моему, такая примочка была.


вывод длин линий по каждому цвету



Sub dl()
Dim sel As Selection
Dim snap1 As Shape
Set sel = ActiveWindow.Selection
If sel.Count < 0 Then ' если не выделено ничего или больше одного будет сообщение
MsgBox "Нужно выделить лишь одну линию!"
Exit Sub
End If
Dim colors(100)
Dim dls(100) As Double
Dim vsoShape As Visio.Shape
Dim dl_s As Double
Application.ActiveWindow.SelectAll
For Each vsoShape In Application.ActiveWindow.Selection
If InStr(vsoShape.Name, "ssv_") <> 0 Then vsoShape.Delete
Next
i = 0
Application.ActiveWindow.SelectAll
For Each vsoShape In Application.ActiveWindow.Selection
If InStr(vsoShape.Name, "ssv_") <> 0 Then vsoShape.Delete
If InStr(vsoShape.Name, "connector") <> 0 Then
color_s = vsoShape.CellsSRC(visSectionObject, visRowLine, visLineColor).FormulaU
dl_s = Round(KabLength(vsoShape) * 10) / 10
j = 0
Do
j = j + 1
Loop While colors(j) <> color_s And j < 100
If j < 100 Then dls(j) = dls(j) + dl_s Else i = i + 1: colors(i) = color_s: dls(i) = dls(i) + dl_s
End If
Next
a = ""
For j = 1 To i
Set shp = ActivePage.DrawLine(-100, -j * 20, 0, -j * 20)
shp.Name = "ssv_" & shp.Name
shp.Text = dls(j) / 1000 & " м"
shp.CellsSRC(visSectionObject, visRowLine, visLineColor).FormulaU = colors(j)
shp.CellsSRC(visSectionCharacter, 0, visCharacterSize).FormulaU = "40 pt"
shp.Cells("LineWeight") = 0.5
Next
End Sub

Function KabLength(Shap As Shape) As Double
Dim i As Integer
Dim Summa As Double ' сумма длин
Dim dx As Double, dy As Double ' определяем разности координат между концами отрезка
Dim nRows As Integer ' счетчик количества изломов линии
nRows = Shap.RowCount(visSectionFirstComponent) - 1
Summa = 0
For i = 1 To nRows - 1 ' пошагово перебираются узлы линии и вычисляются расстояния между узлами:
dx = (Shap.CellsSRC(visSectionFirstComponent, i, 0) - Shap.CellsSRC(visSectionFirstComponent, i + 1, 0)) * 0.0254 * 1000 ' по оси X
dy = (Shap.CellsSRC(visSectionFirstComponent, i, 1) - Shap.CellsSRC(visSectionFirstComponent, i + 1, 1)) * 0.0254 * 1000 ' по оси Y
Summa = Summa + Sqr(dx ^ 2 + dy ^ 2) ' Вычисляем длину текущего отрезка и прибавляем к сумме длин предыдущих отрезков
Next
KabLength = Summa
End Function

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
   Rambler's Top100      
Электрик © 2002-2008 Oleg Kuznetsov     
  Русская версия IP.Board © 2001-2024 IPS, Inc.