RUS  ENG 

Алексей Аширов (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 136 След.
Создать объект на конечной/начальной точке участка по условию пересечения с другим слоем, VBS, координаты
 
[QUOTE] написал:
IntersectByRadius действительно оказался очень полезным. Часто бывает, что в площадном объекте лежит много маленьких участков, но этот метод как раз помогает, если добавить условие "если число объектов полностью попавших в радиус 2х метров <1 = истина". 2 метра радиус хорошо подходит. Ну это конечно, если в исходном слое есть узлы. В слое, где 8600 домов без метода IntersectByRadius, получалось 1800 домов, где были созданы лишние потребители, с этим методом их было меньше 20. Оставлю макрос на всякий случай.

[/QUOTE]
Можно сделать так:
[CODE]Sub create_obj_in_line

Set Out = Zulu.OpenOutputChannel("Сообщения")

Set L = zulu.ActiveMapDoc.Layers.Active

Set Line_ob = CreateObject("ZuluLib.PolyLine")  
Set objz = CreateObject("ZuluLib.ZPoint")  
Out.Clear

Set Keys_uch = L.ElementKeys.SelectByType(6,0)

For i = 1 To Keys_uch.Count
   
set Line_ob = L.Elements.getElement(Keys_uch.Item(i)).PolyLine      
Point_X = Line_ob.GetX(Line_ob.NumTops)
Point_y = Line_ob.GetY(Line_ob.NumTops)

Criterium = 1024 'eIntersects

'Получаем коллекцию тех, кого зацепила окрестность 2
Set Keys = L.IntersectByRadius(Point_X,Point_y, 2, Criterium, 0)

 'Перебираем всех, кого зацепила окрестность
 For j = 1 to Keys.Count

  Set El = L.Elements.GetElement(Keys(j))

  'Если находим полигон, то на конце участка ставим символ
   If El.GraphType = 5 Then  'eGraphTypePrimSquare

       L.AddSimpleSymbol Point_X, Point_y, 0, 25, 300, 0

Out.PutLine CStr(El.Key)

exit for

    End if

 Next

Next

Out.Put "Готово"
End Sub[/CODE]
Изменено: Алексей Аширов - 26.10.2024 09:57:47
Создать объект на конечной/начальной точке участка по условию пересечения с другим слоем, VBS, координаты
 
[QUOTE] написал:
Изначально пробовал в разных слоях - результат был тот же. Сейчас попробовал прибавлять к координатам небольшие значения, чтобы сместить точки - не помогло, результат не изменился. Посмотрел какие сисы он пишет в sys_polygon - действительно, пишет все подряд, не только полигоны, а что попала под 5 пикселей вокруг точки с учетом масштаба.[/QUOTE]
Можно попробовать IntersectByRadius с малым радиусом
[URL=https://politerm.com/zuludoc/zuluax/index.html#Layer_IntersectByRadius.html]https://politerm.com/zuludoc/zuluax/index.html#Layer_IntersectByRadius.html[/URL]

Вернет коллекцию всех, кто в окрестность попал, в коллекции ищем объект типа полигон.
Создать объект на конечной/начальной точке участка по условию пересечения с другим слоем, VBS, координаты
 
[QUOTE] написал:
А можете подсказать? Вот есть метод IsPointInContour method (ZGeometry), который проверяет попадание точки в полигон. А как его применить, чтобы не перебирать каждый полигон в цикле по сисам в отдельности. А то получается, что идет прохождение в цикле по всем участкам, берется 1 точка, а потом еще и проверяет в цикле по всем полигонам, боюсь такое будет очень долго работать. Может быть можно как-то получить 1 единый полигон, со все площадных объектов? Или еще как то?[/QUOTE]
Если нужно проверять попал конец участка в контур или нет, может идти по концам участков и для слоя контура вызывать ElemIDByXY
Если -1, значит не попал, инчаче ID контура, в кого конец попал
Защита слоя от изменения.
 
Цитата
написал:
Здравствуйте! Не выполнить запрос, выводит Предупреждение (в прикреплении).
Что это означает?
Добрый день.
https://politerm.com/zuludoc/index.html#ghangeto_custom.html
Создать объект на конечной/начальной точке участка по условию пересечения с другим слоем, VBS, координаты
 
[QUOTE] написал:
[QUOTE] написал:
 [QUOTE] написал:
Добрый день. Столкнулся со следующей ситуацией. Есть слой с площадными объектами (домами), а так же есть слой с участками. Требуется на конце участка, который попал в площадной объект создать потребителя. Как создавать символьные объекты по координатам в VBS мне понятно, но не понятно как взять координаты начала или конца участка и можно ли вообще их как то получить?[/QUOTE]
 Добрый день. Element.Polyline    [URL=https://politerm.com/zuludoc/zuluax/index.html#Element_PolyLine.html]https://politerm.com/zuludoc/zuluax/index.html#Element_PolyLine.html[/URL]

А у Polyline GetX, GetY, первой и послдней точки[/QUOTE]
Спасибо. Если я все верно понял Function  GetX (TopNum As Long) As Double  TopNum - номер вершины ломаной (нумерация с             единицы).  Для получения первой точки TopNum указываем 1. Для последней используем свойство NumTops.
  [/QUOTE]
Да.
Создать объект на конечной/начальной точке участка по условию пересечения с другим слоем, VBS, координаты
 
[QUOTE] написал:
Добрый день. Столкнулся со следующей ситуацией. Есть слой с площадными объектами (домами), а так же есть слой с участками. Требуется на конце участка, который попал в площадной объект создать потребителя. Как создавать символьные объекты по координатам в VBS мне понятно, но не понятно как взять координаты начала или конца участка и можно ли вообще их как то получить?[/QUOTE]
Добрый день. Element.Polyline  [URL=https://politerm.com/zuludoc/zuluax/index.html#Element_PolyLine.html]https://politerm.com/zuludoc/zuluax/index.html#Element_PolyLine.html[/URL]

А у Polyline GetX, GetY, первой и послдней точки
Расчет надежности сети, Моделирование аварий
 
[QUOTE] написал:
То есть авария в данном случае это ручное отключение участка, и никак иначе.[/QUOTE]
Почему только ручное? Можно программно отключать, если прогрaмму пишите. Расчет надежености так и делает. Программно отключает по очереди каждый элемент, выполняет расчет, анализирует результат, затем восстанавливает работу элемента и переходит к отключению следующего.
Если есть вопросы по реализации, пришлите, пожалуйста, телефон для связи на [URL=mailto:[email protected]][email protected][/URL]
Изменено: Алексей Аширов - 03.10.2024 15:20:49
Расчет надежности сети, Моделирование аварий
 
[QUOTE] написал:
Спасибо, данный пункт понятен. А возможно указывать аварии по периодам для автоматического расчета коэффициента интенсивности отказов, или данный параметр только считать вручную и указывать в характеристиках сети? В модуле ZuluHydro есть имитация порыва сети, нет ли чего подобного в ZuluTermo.[/QUOTE]
В ZuluHydro имитация конкретной аварии - отверстия в трубе. В ZuluThermo аварией является отключение элемента. Причем сразу и подающего и обратного. Расчет надежности не требует определять, характер авариии, сколько воды выльется и т.д.
Работа с symbol, Чтение и интерпретация SymbolElement
 
[QUOTE] написал:
[QUOTE] написал:
Что конкретно пояснить?[/QUOTE]
Как интерпретировать eGraphTypeHotSpot и eGraphTypeUnknow?
Мне надо из описания элементов символа создать описание SVG.На [/QUOTE]
На Unknown не обращать внимание. Это внутреннее использование.
eGraphTypeHotSpot  - это точка на символе, которой символ будет привязываться к местности.
Расчет надежности сети, Моделирование аварий
 
[QUOTE] написал:
Доброго времени суток. В панели настроек расчета надежности есть пункты о выводе информации об авариях и выводе ID объектов на которых авария привела к отказу. [IMG]file:///C:/Users/PTO5/Desktop/Screenshot_1.jpg[/IMG]. Нигде не могу найти как же эту аварию создать то..... Знаки аварий и ремонта никак не отражаются на состоянии сети.[/QUOTE]
Добрый день. В расчете надежности аварии создаются автоматически последовательно для каждого участка или задвижки. В протокол выводится ID объекта, для которого имитируется авария, и если есть отказы, выводится список ID объектов с отказами.
Знаки аварий тут ни при чем
Работа с symbol, Чтение и интерпретация SymbolElement
 
[QUOTE] написал:
Вопрос про типы элементов в символе остался открытым. Если можно, проясните его.[/QUOTE]
eGraphTypeHotSpot - точка привязки изображения символа к местности
eGraphTypeSegment - это сегмент (дуга с заливкой)
eGraphTypeUnknown - это Unknown
eGraphTypePrimSquare - полигон

Что конкретно пояснить?
Символы в стилях линий, Вопросы по отображению стилей линий
 
[QUOTE] написал:
Разбираю программно LineStyleElement.

1. Если смотреть стили в приложении, то попадаются стили, где элемент выключен.

Можно ли как-то программно получить эту информацию, что элемент выключен?
2. ШАГ и ДЛИНА ШТРИХА у линии в приложении ZuluGis и через COM-объект отличаются примерно в 3 раза.
В приложении показывается 28(ШАГ), а если получать программно, то видим 7.4.
Это какая-то особенность или ошибка?
3. Как можно получить размер символа?[/QUOTE]
1. Layer.LineStyles.Item(0).StyleElements.GetElemVisible(0)

2. В программе размеры в миллиметрах. В Программе переключатель (рикселы\миллиметры)

3. Что имеется в виду? Размер в байтах - Symbol.GetBLOBSize()  Габариты - Symbol.GetBoundsRectangle
 
Задвоение элементов слоя
 
Цитата
написал:
Добрый день!
Не знаю как вышло, но произошло задвоение элементов слоя, т.е. появились участки как будто скопированные они лежат по верх существующих линий и их тяжело обнаружить, если удалить участок на месте его расположен ещё один. При том, при проверке информации через базу пишет,что нет данных (именно на скопированных участках которые лежат на существующих), возможно ли их как то удалить?
Добрый день. Можно дублированные объекты сперва выделить в группу, потом удалить.
https://politerm.com/zuludoc/index.html#oper_select_dup.html
Ошибка в вычислениях тепловых потерь.
 
[QUOTE] написал:
При расчете тепловых потерь калькулятором расчета нормативных тепловых потерь из меню Задачи – Калькулятор и посредством модуля Zulu Thermo получены разные величины тепловых потерь при внесении идентичных исходных данных. При этом, выявлена закономерность, чем меньше участков в системе теплоснабжения от локальной котельной, тем погрешность результата меньше. К примеру, при трех участках тепловых сетей от котельной до дома погрешность 3,6%. В случае четырех участков величина тепловых потерь, рассчитанная Zulu Thermo отличается на 13,8% от верной величины, рассчитанной вручную по методике и калькулятором расчета нормативных тепловых потерь. Подскажите пожалуйста, в чем может быть ошибка.  Версия программы 10.0.0.8692u. [/QUOTE]
Добрый день. Нужны еще среднегодовые параметры по источнику, расчетная температура наружного воздуха, и ряд других.
Пришлите, пожалуйста, тестируемый слой, скриншот калькулятора с параметрами на [URL=mailto:[email protected]][email protected][/URL] И телефон для связи
Работа с symbol, Чтение и интерпретация SymbolElement
 
[QUOTE] написал:
Решил написать конвертер symbol в svg. Но есть вопросы.
1. У некоторых символов, например:


В списке SymbolElements есть такие типы
eGraphTypeHotSpot
 eGraphTypeSegment
 eGraphTypeUnknown
eGraphTypePrimSquare

Если с  eGraphTypePrimSquare  всё понятно, то как трактовать другие типы? Опытным путём выяснилось, что  eGraphTypeSegment  это Arc.
2. Вывел цвета для этих элементов. В итоге, только BorderColor у типов  eGraphTypeSegment  и  eGraphTypePrimSquare  были не равны 0.  BorderColor  у обоих элементов был одинаковый.
В итоге получилось создать svg для простых символов, типа крест или  VII.  С символами где есть сложные формы и заливки, пока непонятно.

Может есть какие-то тонкости по работе с элементами символов?[/QUOTE]
Добрый день.
Еесли BorderColor равен 0xff000001 (4278190081) - это значит, что его цвет будет более темным оттенком цвета заливки (PatColor)
В редакторе символа это соответствует цвету (авто)
Изменено: Алексей Аширов - 15.08.2024 14:45:09
Проблемы с наладкой
 
[QUOTE] написал:
Добрый день.  ZuluGIS 2021.  При расчете сопел выяснилось, что в формуле расчета сопла используется  минимально необходимый напор перед элеватором ( дельта Hэл.мин). Который  считается по формуле из Вашей инструкции:   дельта Hэл.мин = 1,4 х дельтаНсо х (1+u)^2
При графике 150/70 ,95-в систему,     дельта Hэл.мин получается либо 14,3 м.в.ст (при Нсо=1 м) ,  либо 28,672 м.в.ст. (при Нсо=2 м) .
Вопрос :  Как задать НЕ минимально необходимый напор перед системой отопления (дельта Hэл.мин)  ,  а чтобы использовался в формуле Расчетный располагаемый напор, по базе потребителей , обозначаемый  как напор на регуляторе напора СО (Hset_nal  - реальное название поля).  Потому что при наладке перед элеваторным узлом возникают располагаемые напоры отличные от 14,3  и  28,672 м.в.ст.[/QUOTE]
Добрый день. Пришлите, пожалуйста, телефон для связи на [URL=mailto:[email protected]][email protected][/URL]. Нужны уточнения
Загрузка tab файлов
 
Пришлите, пожалуйста, телефон для связи на [email protected] Нужны подробности
Загрузка tab файлов
 
Цитата
написал:
Добрый день. Установили ZuluGIS на новый компьютер, версия 10.0.0.8959. Взяты tab файлы с SAS.Планета и при добавлении карты в Zulu выпадает ошибка не удалось загрузить слой. Прикрепляю во вложение скрин ошибки. Помогите решить данный вопрос
Добрый день. К tab файлу должен прилагаться файл самого изображения. Если открыть tab блокнотом, в строке FILE указано имя растрового файла. Он тоже есть? Если да, то какой у него формат и размеры?
Поиск маршрута., Выделение маршрута обхода на карте в мобильной версии приложения.
 
[QUOTE] написал:
Добрый день!Хочу реализовать  на карте в мобильном приложении для обходчиков трасс подсветку маршрутов обхода.

Сначала думал, что в мобильном приложении при помощи поиска найду необходимые участки. Далее, выделю в группу найденные участки, тем самым подсвечу необходимый маршрут. Не получилось, как я понял, в мобильной версии не реализовано выделение в группу. (и еще вопрос. В результатах поиска получаю не больше 20 участков - это связано с тем, что у меня демо?)

Второй вариант - создание тем на каждый маршрут. Этот вариант отпадает потому, что маршрутов для района у нас может быть больше 20, а самих районов 22. 440 тем в слое это уже слишком...

Какие варианты вы можете предложить?

Версия ПО: ZuluGIS Mobile 10.0.0.8950(1008950000) в демонстрационном режиме.[/QUOTE]
Добрый день! Мобильная версия не обладает полным функционалом десктопа, и развивается по мере поступления пожеланий от пользователей. Чтобы подробней обсудить, что бы хотелось в мобильную версию добавить, пришлите, пожалуйста, телефон для связи на [URL=mailto:[email protected]][email protected][/URL]

Ограничение на 20 уберем. Исторически оставалось
Изменено: Алексей Аширов - 15.07.2024 10:54:28
Вопрос выстывания ТС при отключении
 
[QUOTE] написал:
Добрый день, уважаемые коллеги! Подскажите, пожалуйста, кто-нибудь занимался вопросом прогнозирования отключений тепловых сетей и расчетом времени выстывания здания. Можно ли с помощью ZULU это смоделировать?
Пример: Отключение ТС на 10 зданий разного года постройки и типа (кирпич, панели и т.д.).
Просьба поделиться опытом.
Если в зулу нет возможности выполнить расчет, как можно посчитать вручную?[/QUOTE]
Добрый день! Расчет выстывания производится в расчете надежности. Там коэффициент аккумуляции как раз зависит от материала здания. Напрямую эти расчеты из надежности использовать сейчас просто при отключении потребителей не получится, т.к. задача не стояла. Но в принципе расчет остывания из методики расчета надежности задействовать можно.
Пришлите, пожалуйста, почту или телефон для связи на [URL=mailto:[email protected]][email protected][/URL] уточним задачу
Получение системного кода участка сети, от которого подключен потребитель
 
[QUOTE] написал:
Добрый день. Версия 10.0.0.8928u.x64. Необходимо сопоставить каждого потребителя в слое тепловой сети с участком тепловой сети от которого этот потребитель подключен. Хотелось бы на выходе получать выгрузку в формате excel с двумя столбцами: системный код потребителя и системный код участка тепловой сети. Помогите, пожалуйста, с написанием макроса или подскажите с помощью каких инструментов возможно автоматизированное решение по данному вопросу? Заранее спасибо.[/QUOTE]
Добрый день. Есть ролик по анализу топологии в макросах. И текст макроса по ссылке в описании.
[URL=https://youtu.be/qerFkGQTIyM?si=ghbj_REd76FXCYdg]https://youtu.be/qerFkGQTIyM?si=ghbj_REd76FXCYdg[/URL]
Какой узел с каким участком связан получается методом GetIncidentElements
Хранилище данных на 2 жестких дисках
 
[QUOTE] написал:
Ситуация такая на сервер где установлен ZuluServer установили новый жесткий диск, есть ли возможность его привязать, чтоб его было видно в проводнике.[/QUOTE]
У ZuluServer в качестве корня области данный используется только одна папка, указанная в файле zuluserv.cfg в параметре
RootDir d:\ZSData\Data  

Если все данные должны лежать на этом новом диске, то создайте там папку и укажите ее в RootDir

Если планируется использовать этот диск как добавочный к уже имеющейся области данных сервера, попробуйте подключить его в область данных как виртуальную папку

[URL=https://msreview.net/windows-10/3412-kak-montirovat-zhestkij-disk-v-vide-papki-na-windows-10.html]Как монтировать жёсткий диск в виде папки на Windows 10 » MSReview[/URL]
Изменено: Алексей Аширов - 19.06.2024 15:41:02
SQL запрос для того, чтобы можно было нумеровать по порядку колодцы в слое водоснабжение. ВК- и дальше номер, Помогите написать SQL запрос для того, чтобы можно было нумеровать по порядку колодцы в слое водоснабжение. ВК- и дальше номер
 
Цитата
написал:
Нумерует только водопроводные колодцы. Посмотрите что не так

Set Keys = L.ElementKeys.SelectByType(type_uz,1)

Теперь единицу вернуть на 0 нужно
SQL запрос для того, чтобы можно было нумеровать по порядку колодцы в слое водоснабжение. ВК- и дальше номер, Помогите написать SQL запрос для того, чтобы можно было нумеровать по порядку колодцы в слое водоснабжение. ВК- и дальше номер
 
Цитата
написал:
For i = 1 To Keys.Count text = preff & n Db.UpdateBaseRecord Keys.Item(i), "Name" , text, 0 n = n + 1 Next
Код
For i = 1 To Keys.Count

Set el = L.Elements.Item(Keys.Item(i))   'Получаем объект по ключу
            
 If el.ModeId = 1 Or el.ModeId = 5 Then  'Применяем только к нужным режимам       

     text = preff & n

     Db.UpdateBaseRecord Keys.Item(i), "Name" , text, 0

      n = n + 1

 end if  

Next
SQL запрос для того, чтобы можно было нумеровать по порядку колодцы в слое водоснабжение. ВК- и дальше номер, Помогите написать SQL запрос для того, чтобы можно было нумеровать по порядку колодцы в слое водоснабжение. ВК- и дальше номер
 
Цитата
написал:
А если оставить в нумерации несколько режимов?
Тогда в цикле по ключу получать элемент и выбирать только нужные режимы
Код
Set el = L.Elements.Item(Keys.Item(i))
            
 If el.ModeId = 1 Or el.ModeId = 5 Then                
                '...............                
 end if    
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 136 След.