RUS  ENG 

Макрос "Запуск расчета водопроводной сети"

Страницы: 1
RSS
Макрос "Запуск расчета водопроводной сети"
 
Здравствуйте!
Подскажите пожалуйста! Хотелось бы создать макрос, который открывал ZuluHidro, выбирал слой для расчета и запускал расчет.
Не нашел этого в объектной модели в справке кроме: Zulu.RunCommand ("Voda.OpenForm").
 
ZuluHydro является модулем расширения и не входит в ядро системы. Поэтому системных команд по управлению этим модулем нет.
Запускать расчеты программно можно с использованием ZuluNetTools (http://politerm.com/products/devtools/zulunettools/)
Макросом можно посчитать сеть втемную. А чтобы форма была, нужно ее самому реализовать.
Т.е. механизма программного управления именно готовым модулем ZuluHydro сейчас нет. При необходимости можно подумать о доработке в новой версии.
 
А как посчитать в темную ?
 
Посчитать втемную можно только с использованием компонентов ZuluNetTools, но это отдельный продукт для разработчиков.
 
Пытаюсь выложить код получившегося макроса, но сообщения почему то не отображаются !
 
Уточните, куда выложить и что не отображается. Если вопросы конкретные, лучше на почту шлите. [email protected]
 
В эту тему в виде сообщения пытаюсь выложить текст макроса !)
Почему то это не получается!)
 
Движок форума, бывает, что не все воспринимает.
Если по макросу вопрос, пришлите и макрос и вопрос по почте.
 

Опять же с тем же вопросом.
Написал макрос, который запускает расчет, однако работает он только для "маленькой" сети (до 100 элементов).
Запустить расчёт для "Большой" сети ( более 10000 элементов) почему то не получается.
При этом ошибок в ZCNTaskHydro не появляется. Не пойму в чем дело.
Ниже текст макроса.

Public Sub РасчетZulu (PathZulu As String)

Dim NW As ZCNNetwork

Set NW = New ZCNNetwork

Set task1 = New ZCNTaskHydro

task1.Network = NW

task1.NetworkCtrlName = NW.OpenNetwork(PathZulu, 2)

task1.Run 1, True

'обработка ошибок

Dim i As Long

Dim err_code As Boolean

err_code = False

For i = 0 To task1.Errors.Count - 1

Select Case task1.Errors.Item(i).Code

Case task1.Errors.Item(i).Code >0

err_code = True

MsgBox ("Код:" + Str(task1.Errors.Item(i).Code) + " Объект & Str(task1.Errors.Item(i).Key) +"Поле:" & task1.Errors.Item(i).Name)

End Select

Next i

If err_code = True Then MsgBox ("Ошибки!")

End Sub

 
Как минимум нужно заменить

Case task1.Errors.Item(i).Code > 0

на

Case Is > 0

либо пользоваться if then else

И task1.Errors.Item(i).Name заменить на task1.Errors.Item(i).Text

Ну и для проверки сперва просто MsgBox task1.Errors.Count, чтобы посмотреть, есть вообще ошибки или нет.

Потом дальше продолжим.
 
Запускаю макрос для расчёта "маленькой" сети (до 100 элементов) и "Большой" сети (более 10000 эл).
Обе сети содержат ошибки.
При расчете маленькой MsgBox task1.Errors.Count выдает количество ошибок.
При расчёте "большой" количество ошибок - 0, исходя из чего делаю вывод, что расчёт не проходит.
 
Если ошибок 0 обычно означает, что расчет прошел нормально. А в самой Zulu эта большая сеть считается с ошибками?
 
В том то и дело , что большая сеть при ручном расчёте показывает ошибки , типа : недостаточно давления на потребители и др.
также пробывал автоматически менять параметры шероховатости и запускать расчёт , чтобы посмотреть изменения . Итог расчёт не проходит , так как параметры давления не изменяются. Почему расчёт не проходит не понятно
 
А лицензия на ZuluNetTools есть?
 
Лицензии ZuluNetTools нет . Но все равно , тогда должен выдать ошибку под Кодом 200 , согласно справке
 
Насчет сообщения проверим. А почему расчет не проходит понятно.
 
Выложили обновление. Сообщение должно сейчас приходить.
Страницы: 1