Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 19 сен 2020 17:20

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Сбор параметров для линии
СообщениеДобавлено: 22 апр 2020 13:48 
Специалист
Специалист

Зарегистрирован:
19 ноя 2018 13:26
Сообщения: 16
Добрий день!
Добрый день! Столкнулся с такой трудностью, два точечных объекта на концах линии определяют одним параметром "№ опоры" заданным вручную, два параметра для линии "Номер начальной опоры" и "Номер конечной опоры" - приходится задавать вручную. Подскажите пожалуйста, возможно ли как-то автоматизировать действия с параметрами для линии?
https://drive.google.com/open?id=1cNuzR ... zghaRcndU9


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сбор параметров для линии
СообщениеДобавлено: 22 апр 2020 13:58 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 743
Откуда: Ліспроект Володимир Вовчанський
Denys Sanitskyi писал(а):
...два точечных объекта на концах линии определяют одним параметром "№ опоры" заданным вручную, два параметра для линии "Номер начальной опоры" и "Номер конечной опоры" - приходится задавать вручную. Подскажите пожалуйста, возможно ли как-то автоматизировать действия с параметрами для линии?
https://drive.google.com/open?id=1cNuzR ... zghaRcndU9
Скриптом - запросто. Тільки чому в першій точці лінії - кінцева опора, а в другій точці лінії - початкова опора. Залежності немає? Тоді - ніяк, тільки вручну.
P.S. Дайте ID 18-го і 19-го параметрів шару "повітряна лінія" та ID параметра "№ опоры" точкових об'єктів.
Автоматичне присвоєння значень 18-го і 19-го параметра слід виконувати при закінченні збору лінії? Чи полілінії - для кожного її сегмента?


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сбор параметров для линии
СообщениеДобавлено: 22 апр 2020 14:34 
Специалист
Специалист

Зарегистрирован:
19 ноя 2018 13:26
Сообщения: 16
voha писал(а):
Denys Sanitskyi писал(а):
...два точечных объекта на концах линии определяют одним параметром "№ опоры" заданным вручную, два параметра для линии "Номер начальной опоры" и "Номер конечной опоры" - приходится задавать вручную. Подскажите пожалуйста, возможно ли как-то автоматизировать действия с параметрами для линии?
https://drive.google.com/open?id=1cNuzR ... zghaRcndU9
Скриптом - запросто. Тільки чому в першій точці лінії - кінцева опора, а в другій точці лінії - початкова опора. Залежності немає? Тоді - ніяк, тільки вручну.
P.S. Дайте ID 18-го і 19-го параметрів шару "повітряна лінія" та ID параметра "№ опоры" точкових об'єктів.
Автоматичне присвоєння значень 18-го і 19-го параметра слід виконувати при закінченні збору лінії? Чи полілінії - для кожного її сегмента?


Дякую за відподь! Надсилаю файл для прикладу.


Вложения:
test_file.dmf [25.14 Кб]
Скачиваний: 96
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сбор параметров для линии
СообщениеДобавлено: 22 апр 2020 14:43 
Специалист
Специалист

Зарегистрирован:
19 ноя 2018 13:26
Сообщения: 16
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. З точками трапилася помилка - в першій має бути початкова, в другій кінцева.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сбор параметров для линии
СообщениеДобавлено: 22 апр 2020 15:56 
Специалист
Специалист

Зарегистрирован:
19 ноя 2018 13:26
Сообщения: 16
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. З точками трапилася помилка - в першій має бути початкова, в другій кінцева.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сбор параметров для линии
СообщениеДобавлено: 22 апр 2020 21:50 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 743
Откуда: Ліспроект Володимир Вовчанський
Denys Sanitskyi писал(а):
...возможно ли как-то автоматизировать действия с параметрами для линии?
https://drive.google.com/open?id=1cNuzR ... zghaRcndU9
Перепрошую, щойно сів писати - за хв15 викладу.
Код:
;Позначені - всі лінійні об'єкти, в кінцевих точках яких лежать точкові
; об'єкти, що опинились на самому верхньому плані
$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 Виконано
За умови, що в кінцевих точках кожного позначеного лінійного об'єкта немає точкових об'єктів відмінних від "опори", значення параметра ID7024 вичитується з точкового об'єкта що лежить на кінцевій точці лінійного. В прикладі є точки лінійних, в яких немає точкових. Як бути? Можна дописувати. Перегляньте список значень параметрів після роботи скрипта (кнопка "Список" на вкладці "Інфо" правої панелі Digitals при активному параметрі). У списку будуть порожні значення для лінійних, кінцева точка яких не на опорі.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сбор параметров для линии
СообщениеДобавлено: 23 апр 2020 07:29 
Специалист
Специалист

Зарегистрирован:
19 ноя 2018 13:26
Сообщения: 16
voha писал(а):
Denys Sanitskyi писал(а):
...возможно ли как-то автоматизировать действия с параметрами для линии?
https://drive.google.com/open?id=1cNuzR ... zghaRcndU9
Перепрошую, щойно сів писати - за хв15 викладу.
Код:
;Позначені - всі лінійні об'єкти, в кінцевих точках яких лежать точкові
; об'єкти, що опинились на самому верхньому плані
$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 Виконано
За умови, що в кінцевих точках кожного позначеного лінійного об'єкта немає точкових об'єктів відмінних від "опори", значення параметра ID7024 вичитується з точкового об'єкта що лежить на кінцевій точці лінійного. В прикладі є точки лінійних, в яких немає точкових. Як бути? Можна дописувати. Перегляньте список значень параметрів після роботи скрипта (кнопка "Список" на вкладці "Інфо" правої панелі Digitals при активному параметрі). У списку будуть порожні значення для лінійних, кінцева точка яких не на опорі.


Велике Вам ДЯКУЮ! за скрипт. Все працює як годинник!


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сбор параметров для линии
СообщениеДобавлено: 07 май 2020 14:59 
Специалист
Специалист

Зарегистрирован:
19 ноя 2018 13:26
Сообщения: 16
Доброго дня! Допоможіть будь-ласка з таким скриптом для лінії. Проблема така, потрібно передати параметр лінійного об'єкта - точковому, який лежить на другій точці лінійного, параметр лінійного - 7012, параметр точкового - 70121.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сбор параметров для линии
СообщениеДобавлено: 07 май 2020 23:20 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
22 сен 2007 16:09
Сообщения: 337
Откуда: м.Львiв
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

_________________
Більшість хороших програмістів виконують свою роботу не тому, що очікують оплати або визнання, а тому, що отримують задоволення від програмування.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сбор параметров для линии
СообщениеДобавлено: 08 май 2020 08:33 
Специалист
Специалист

Зарегистрирован:
19 ноя 2018 13:26
Сообщения: 16
Руслан Пархуць писал(а):
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


Працює, але тільки з однією поміченою лінією. Можете зробити, будь ласка, щоб скрипт виконувався для багатьох одночасно помічених об'єктів.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сбор параметров для линии
СообщениеДобавлено: 08 май 2020 11:37 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
22 сен 2007 16:09
Сообщения: 337
Откуда: м.Львiв
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й
;

_________________
Більшість хороших програмістів виконують свою роботу не тому, що очікують оплати або визнання, а тому, що отримують задоволення від програмування.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сбор параметров для линии
СообщениеДобавлено: 08 май 2020 13:33 
Специалист
Специалист

Зарегистрирован:
19 ноя 2018 13:26
Сообщения: 16
Дякую!


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сбор параметров для линии
СообщениеДобавлено: 08 май 2020 14:00 
Специалист
Специалист

Зарегистрирован:
19 ноя 2018 13:26
Сообщения: 16
Доброго дня! Підкажіть будь ласка, чи можливо за допомого скрипту пронумерувати об'єкти в порядку збільшення довжини ліній на яких вони лежать.


Вложения:
Noname_test.dmf [22.59 Кб]
Скачиваний: 57
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Сбор параметров для линии
СообщениеДобавлено: 08 май 2020 17:40 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
22 сен 2007 16:09
Сообщения: 337
Откуда: м.Львiв
Denys Sanitskyi писал(а):
Доброго дня! Підкажіть будь ласка, чи можливо за допомого скрипту пронумерувати об'єкти в порядку збільшення довжини ліній на яких вони лежать.
:) можна все (або майже все). Скиньте, який потрiбно отримати результат, бо з питання не зовсiм зрозумiло суть задачi.

_________________
Більшість хороших програмістів виконують свою роботу не тому, що очікують оплати або визнання, а тому, що отримують задоволення від програмування.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сбор параметров для линии
СообщениеДобавлено: 11 май 2020 19:28 
Специалист
Специалист

Зарегистрирован:
19 ноя 2018 13:26
Сообщения: 16
Руслан Пархуць писал(а):
Denys Sanitskyi писал(а):
Доброго дня! Підкажіть будь ласка, чи можливо за допомого скрипту пронумерувати об'єкти в порядку збільшення довжини ліній на яких вони лежать.
:) можна все (або майже все). Скиньте, який потрiбно отримати результат, бо з питання не зовсiм зрозумiло суть задачi.


https://drive.google.com/file/d/1z3CbKa ... sp=sharing

Тобто я виконую такі дії:
-створюю полілінію (вітку) від початку (ктп) в послідовності існуючої нумерації опор, потім за таким принципом наношу наступні;
-командою Правка - Добавить узлы - додаю на полілінії Опори;
-командою Инфо - Калькулятор - Последовательная нумерация - присвоюю почергово по вітках номера опорам, спочатку нумеруюючи опори на коротчих вітках.
Підкажіть, чи можливо автоматизувати скриптами процес нанесення опор і присвоєння їм номерів?


Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB