Аналитика http://www.geosystema.net/forum/ |
|
Сбор параметров для линии http://www.geosystema.net/forum/viewtopic.php?f=1&t=19787 |
Страница 1 из 2 |
Автор: | Denys Sanitskyi [ 22 апр 2020 13:48 ] |
Заголовок сообщения: | Сбор параметров для линии |
Добрий день! Добрый день! Столкнулся с такой трудностью, два точечных объекта на концах линии определяют одним параметром "№ опоры" заданным вручную, два параметра для линии "Номер начальной опоры" и "Номер конечной опоры" - приходится задавать вручную. Подскажите пожалуйста, возможно ли как-то автоматизировать действия с параметрами для линии? https://drive.google.com/open?id=1cNuzR ... zghaRcndU9 |
Автор: | voha [ 22 апр 2020 13:58 ] |
Заголовок сообщения: | Re: Сбор параметров для линии |
Denys Sanitskyi писал(а): ...два точечных объекта на концах линии определяют одним параметром "№ опоры" заданным вручную, два параметра для линии "Номер начальной опоры" и "Номер конечной опоры" - приходится задавать вручную. Подскажите пожалуйста, возможно ли как-то автоматизировать действия с параметрами для линии? Скриптом - запросто. Тільки чому в першій точці лінії - кінцева опора, а в другій точці лінії - початкова опора. Залежності немає? Тоді - ніяк, тільки вручну.https://drive.google.com/open?id=1cNuzR ... zghaRcndU9 P.S. Дайте ID 18-го і 19-го параметрів шару "повітряна лінія" та ID параметра "№ опоры" точкових об'єктів. Автоматичне присвоєння значень 18-го і 19-го параметра слід виконувати при закінченні збору лінії? Чи полілінії - для кожного її сегмента? |
Автор: | Denys Sanitskyi [ 22 апр 2020 14:34 ] | ||
Заголовок сообщения: | Re: Сбор параметров для линии | ||
voha писал(а): Denys Sanitskyi писал(а): ...два точечных объекта на концах линии определяют одним параметром "№ опоры" заданным вручную, два параметра для линии "Номер начальной опоры" и "Номер конечной опоры" - приходится задавать вручную. Подскажите пожалуйста, возможно ли как-то автоматизировать действия с параметрами для линии? Скриптом - запросто. Тільки чому в першій точці лінії - кінцева опора, а в другій точці лінії - початкова опора. Залежності немає? Тоді - ніяк, тільки вручну.https://drive.google.com/open?id=1cNuzR ... zghaRcndU9 P.S. Дайте ID 18-го і 19-го параметрів шару "повітряна лінія" та ID параметра "№ опоры" точкових об'єктів. Автоматичне присвоєння значень 18-го і 19-го параметра слід виконувати при закінченні збору лінії? Чи полілінії - для кожного її сегмента? Дякую за відподь! Надсилаю файл для прикладу.
|
Автор: | Denys Sanitskyi [ 22 апр 2020 14:43 ] |
Заголовок сообщения: | Re: Сбор параметров для линии |
Denys Sanitskyi писал(а): voha писал(а): Denys Sanitskyi писал(а): ...два точечных объекта на концах линии определяют одним параметром "№ опоры" заданным вручную, два параметра для линии "Номер начальной опоры" и "Номер конечной опоры" - приходится задавать вручную. Подскажите пожалуйста, возможно ли как-то автоматизировать действия с параметрами для линии? Скриптом - запросто. Тільки чому в першій точці лінії - кінцева опора, а в другій точці лінії - початкова опора. Залежності немає? Тоді - ніяк, тільки вручну.https://drive.google.com/open?id=1cNuzR ... zghaRcndU9 P.S. Дайте ID 18-го і 19-го параметрів шару "повітряна лінія" та ID параметра "№ опоры" точкових об'єктів. Автоматичне присвоєння значень 18-го і 19-го параметра слід виконувати при закінченні збору лінії? Чи полілінії - для кожного її сегмента? Дякую за відподь! Надсилаю файл для прикладу. Спочатку це все було скріпленими полілініями, але для збільшення інформативності карти при виводі її в таблицю Excel, все було розбито на прогони між опорами і цим прогонам треба присвоїти назву - номера опор, які він з'єднує, якщо це спростить задачу то номера опор повітряної лінії можна занести в один параметр через розділовий знак. ID Номер початкової опори - 7016 ID Номер кінцевої опори - 7017 ID № Опори - 7024 P.S. З точками трапилася помилка - в першій має бути початкова, в другій кінцева. |
Автор: | Denys Sanitskyi [ 22 апр 2020 15:56 ] |
Заголовок сообщения: | Re: Сбор параметров для линии |
voha писал(а): Denys Sanitskyi писал(а): ...два точечных объекта на концах линии определяют одним параметром "№ опоры" заданным вручную, два параметра для линии "Номер начальной опоры" и "Номер конечной опоры" - приходится задавать вручную. Подскажите пожалуйста, возможно ли как-то автоматизировать действия с параметрами для линии? Скриптом - запросто. Тільки чому в першій точці лінії - кінцева опора, а в другій точці лінії - початкова опора. Залежності немає? Тоді - ніяк, тільки вручну.https://drive.google.com/open?id=1cNuzR ... zghaRcndU9 P.S. Дайте ID 18-го і 19-го параметрів шару "повітряна лінія" та ID параметра "№ опоры" точкових об'єктів. Автоматичне присвоєння значень 18-го і 19-го параметра слід виконувати при закінченні збору лінії? Чи полілінії - для кожного її сегмента? Спочатку це все було скріпленими полілініями, але для збільшення інформативності карти при виводі її в таблицю Excel, все було розбито на прогони між опорами і цим прогонам треба присвоїти назву - номера опор, які він з'єднує, якщо це спростить задачу то номера опор повітряної лінії можна занести в один параметр через розділовий знак. ID Номер початкової опори - 7016 ID Номер кінцевої опори - 7017 ID № Опори - 7024 P.S. З точками трапилася помилка - в першій має бути початкова, в другій кінцева. |
Автор: | voha [ 22 апр 2020 21:50 ] |
Заголовок сообщения: | Re: Сбор параметров для линии |
Denys Sanitskyi писал(а): ...возможно ли как-то автоматизировать действия с параметрами для линии? Перепрошую, щойно сів писати - за хв15 викладу.https://drive.google.com/open?id=1cNuzR ... zghaRcndU9 Код: ;Позначені - всі лінійні об'єкти, в кінцевих точках яких лежать точкові За умови, що в кінцевих точках кожного позначеного лінійного об'єкта немає точкових об'єктів відмінних від "опори", значення параметра ID7024 вичитується з точкового об'єкта що лежить на кінцевій точці лінійного. В прикладі є точки лінійних, в яких немає точкових. Як бути? Можна дописувати. Перегляньте список значень параметрів після роботи скрипта (кнопка "Список" на вкладці "Інфо" правої панелі Digitals при активному параметрі). У списку будуть порожні значення для лінійних, кінцева точка яких не на опорі.
; об'єкти, що опинились на самому верхньому плані $CountSel=@Map.SelCount @If $CountSel=0 then @Break Позначте всі лінійні об'єкти, номери опор яких треба присвоїти. $SelObj=0 @Progress.Start $CountSel Виконання ;Перебір всіх позначених об'єктів %StartSelObj $SelObj=@Map.NextSelected $SelObj @If $SelObj=0 then @Goto %EndProc @Progress.StepBy ;;первірка на кількість точок (лише 2-і точки) $CntP=@Map.Object[$SelObj].Count @If $CntP<>2 then @Goto %StartSelObj ;;кінцеві точки лінійного об'єкта $P1=@Map.Object[$SelObj].Point[1] $P2=@Map.Object[$SelObj].Point[2] ;;точкові об'єкти та їхні значення параметра ID7024 $ObjP1=@Map.PointObject 0 $P1 @If $ObjP1=0 then @Goto %FindObjP2 $P7016=@Map.Object[$ObjP1].Parameter[ID7024] @Map.Object[$SelObj].Parameter[ID7016]=$P7016 %FindObjP2 $ObjP2=@Map.PointObject 0 $P2 @If $ObjP2=0 then @Goto %StartSelObj $P7017=@Map.Object[$ObjP2].Parameter[ID7024] @Map.Object[$SelObj].Parameter[ID7017]=$P7017 @Goto %StartSelObj %EndProc @Progress.Stop @Dialog.Message Виконано |
Автор: | Denys Sanitskyi [ 23 апр 2020 07:29 ] |
Заголовок сообщения: | Re: Сбор параметров для линии |
voha писал(а): Denys Sanitskyi писал(а): ...возможно ли как-то автоматизировать действия с параметрами для линии? Перепрошую, щойно сів писати - за хв15 викладу.https://drive.google.com/open?id=1cNuzR ... zghaRcndU9 Код: ;Позначені - всі лінійні об'єкти, в кінцевих точках яких лежать точкові За умови, що в кінцевих точках кожного позначеного лінійного об'єкта немає точкових об'єктів відмінних від "опори", значення параметра ID7024 вичитується з точкового об'єкта що лежить на кінцевій точці лінійного. В прикладі є точки лінійних, в яких немає точкових. Як бути? Можна дописувати. Перегляньте список значень параметрів після роботи скрипта (кнопка "Список" на вкладці "Інфо" правої панелі Digitals при активному параметрі). У списку будуть порожні значення для лінійних, кінцева точка яких не на опорі.; об'єкти, що опинились на самому верхньому плані $CountSel=@Map.SelCount @If $CountSel=0 then @Break Позначте всі лінійні об'єкти, номери опор яких треба присвоїти. $SelObj=0 @Progress.Start $CountSel Виконання ;Перебір всіх позначених об'єктів %StartSelObj $SelObj=@Map.NextSelected $SelObj @If $SelObj=0 then @Goto %EndProc @Progress.StepBy ;;первірка на кількість точок (лише 2-і точки) $CntP=@Map.Object[$SelObj].Count @If $CntP<>2 then @Goto %StartSelObj ;;кінцеві точки лінійного об'єкта $P1=@Map.Object[$SelObj].Point[1] $P2=@Map.Object[$SelObj].Point[2] ;;точкові об'єкти та їхні значення параметра ID7024 $ObjP1=@Map.PointObject 0 $P1 @If $ObjP1=0 then @Goto %FindObjP2 $P7016=@Map.Object[$ObjP1].Parameter[ID7024] @Map.Object[$SelObj].Parameter[ID7016]=$P7016 %FindObjP2 $ObjP2=@Map.PointObject 0 $P2 @If $ObjP2=0 then @Goto %StartSelObj $P7017=@Map.Object[$ObjP2].Parameter[ID7024] @Map.Object[$SelObj].Parameter[ID7017]=$P7017 @Goto %StartSelObj %EndProc @Progress.Stop @Dialog.Message Виконано Велике Вам ДЯКУЮ! за скрипт. Все працює як годинник! |
Автор: | Denys Sanitskyi [ 07 май 2020 14:59 ] |
Заголовок сообщения: | Re: Сбор параметров для линии |
Доброго дня! Допоможіть будь-ласка з таким скриптом для лінії. Проблема така, потрібно передати параметр лінійного об'єкта - точковому, який лежить на другій точці лінійного, параметр лінійного - 7012, параметр точкового - 70121. |
Автор: | Руслан Пархуць [ 07 май 2020 23:20 ] |
Заголовок сообщения: | Re: Сбор параметров для линии |
Denys Sanitskyi писал(а): Доброго дня! Допоможіть будь-ласка з таким скриптом для лінії. Проблема така, потрібно передати параметр лінійного об'єкта - точковому, який лежить на другій точці лінійного, параметр лінійного - 7012, параметр точкового - 70121. Код: $C009=@Calc Char(9)
$C009=@DequoteText $C009 $LineObject=@Map.NextSelected @If $LineObject=0 Then @Break Виберiть лiнiю $X=@Map.Object[$LineObject].Point[2].x $Y=@Map.Object[$LineObject].Point[2].y $PointObject=@Map.PointObject 0 $X $Y @If $PointObject=0 Then @Break Не знайдено точкового об'єкту в точцi $X, $Y $Param=@Map.Object[$LineObject].Parameter[ID7012] @Map.Object[$PointObject].Parameter[ID70121]=$Param $Message=@Concat Лiнiйний об'єкт:,$C009,$C009,$LineObject,|,Точковий об'єкт:,$C009,$PointObject,|,Параметр,$C009,$C009,$Param @Dialog.Message $Message |
Автор: | Denys Sanitskyi [ 08 май 2020 08:33 ] |
Заголовок сообщения: | Re: Сбор параметров для линии |
Руслан Пархуць писал(а): Denys Sanitskyi писал(а): Доброго дня! Допоможіть будь-ласка з таким скриптом для лінії. Проблема така, потрібно передати параметр лінійного об'єкта - точковому, який лежить на другій точці лінійного, параметр лінійного - 7012, параметр точкового - 70121. Код: $C009=@Calc Char(9) $C009=@DequoteText $C009 $LineObject=@Map.NextSelected @If $LineObject=0 Then @Break Виберiть лiнiю $X=@Map.Object[$LineObject].Point[2].x $Y=@Map.Object[$LineObject].Point[2].y $PointObject=@Map.PointObject 0 $X $Y @If $PointObject=0 Then @Break Не знайдено точкового об'єкту в точцi $X, $Y $Param=@Map.Object[$LineObject].Parameter[ID7012] @Map.Object[$PointObject].Parameter[ID70121]=$Param $Message=@Concat Лiнiйний об'єкт:,$C009,$C009,$LineObject,|,Точковий об'єкт:,$C009,$PointObject,|,Параметр,$C009,$C009,$Param @Dialog.Message $Message Працює, але тільки з однією поміченою лінією. Можете зробити, будь ласка, щоб скрипт виконувався для багатьох одночасно помічених об'єктів. |
Автор: | Руслан Пархуць [ 08 май 2020 11:37 ] |
Заголовок сообщения: | Re: Сбор параметров для линии |
Denys Sanitskyi писал(а): Доброго дня! Допоможіть будь-ласка з таким скриптом для лінії. Проблема така, потрібно передати параметр лінійного об'єкта - точковому, який лежить на другій точці лінійного, параметр лінійного - 7012, параметр точкового - 70121. ...Denys Sanitskyi писал(а): Працює, але тільки з однією поміченою лінією. Можете зробити, будь ласка, щоб скрипт виконувався для багатьох одночасно помічених об'єктів. Код: @Dialog.WaitBox Виберiть лiнiї
$SelectedCount=@Map.SelCount $Count=0 $LineObject=0 @While $SelectedCount>0 %LoopSelected $LineObject=@Map.NextSelected $LineObject $PointsCount=@Map.Object[$LineObject].Count @If $PointsCount<2 Then @Goto %SkipSelected $X=@Map.Object[$LineObject].Point[2].x $Y=@Map.Object[$LineObject].Point[2].y $PointObject=@Map.PointObject 0 $X $Y @If $PointObject>0 Then @Goto %NextSelected $YN=@Dialog.Confirm Не знайдено точкового об'єкту в точцi $X, $Y|Пропустити i продовжити? @If $YN=1 Then @Goto %SkipSelected @Break %NextSelected $Param=@Map.Object[$LineObject].Parameter[ID7012] @Map.Object[$PointObject].Parameter[ID70121]=$Param @Map.RefreshObject $PointObject $Count=$Count+1 %SkipSelected $SelectedCount=$SelectedCount-1 %LoopSelected ; @Dialog.Message Готово. Оброблено $Count лiнiй ; |
Автор: | Denys Sanitskyi [ 08 май 2020 13:33 ] |
Заголовок сообщения: | Re: Сбор параметров для линии |
Дякую! |
Автор: | Denys Sanitskyi [ 08 май 2020 14:00 ] | ||
Заголовок сообщения: | Re: Сбор параметров для линии | ||
Доброго дня! Підкажіть будь ласка, чи можливо за допомого скрипту пронумерувати об'єкти в порядку збільшення довжини ліній на яких вони лежать.
|
Автор: | Руслан Пархуць [ 08 май 2020 17:40 ] |
Заголовок сообщения: | Re: Сбор параметров для линии |
Denys Sanitskyi писал(а): Доброго дня! Підкажіть будь ласка, чи можливо за допомого скрипту пронумерувати об'єкти в порядку збільшення довжини ліній на яких вони лежать. можна все (або майже все). Скиньте, який потрiбно отримати результат, бо з питання не зовсiм зрозумiло суть задачi.
|
Автор: | Denys Sanitskyi [ 11 май 2020 19:28 ] |
Заголовок сообщения: | Re: Сбор параметров для линии |
Руслан Пархуць писал(а): Denys Sanitskyi писал(а): Доброго дня! Підкажіть будь ласка, чи можливо за допомого скрипту пронумерувати об'єкти в порядку збільшення довжини ліній на яких вони лежать. можна все (або майже все). Скиньте, який потрiбно отримати результат, бо з питання не зовсiм зрозумiло суть задачi.https://drive.google.com/file/d/1z3CbKa ... sp=sharing Тобто я виконую такі дії: -створюю полілінію (вітку) від початку (ктп) в послідовності існуючої нумерації опор, потім за таким принципом наношу наступні; -командою Правка - Добавить узлы - додаю на полілінії Опори; -командою Инфо - Калькулятор - Последовательная нумерация - присвоюю почергово по вітках номера опорам, спочатку нумеруюючи опори на коротчих вітках. Підкажіть, чи можливо автоматизувати скриптами процес нанесення опор і присвоєння їм номерів? |
Страница 1 из 2 | Часовой пояс: UTC + 2 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |