Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 28 мар 2024 14:06

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




Начать новую тему Ответить на тему  [ Сообщений: 1235 ]  На страницу Пред.  1 ... 55, 56, 57, 58, 59, 60, 61 ... 83  След.
Автор Сообщение
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 05 фев 2018 22:45 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
22 сен 2007 16:09
Сообщения: 382
Откуда: м.Львiв
aisa-soft писал(а):
Как, с помощью скрипта разбить линию?

Подібне вже було в попередніх повідомленнях. Користуйтеся пошуком

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 27 мар 2018 21:50 
Эксперт
Эксперт

Зарегистрирован:
30 июн 2017 20:52
Сообщения: 63
Откуда: Херсон
Доброго дня. Можливо хтось вже зробив подібний скрипт, то поділіться будь-ласка) якщо ні то допоможіть його створити.
Завдання в наступному: є база(точка), необхідно скриптом сформувати таблицю з її координатами у трьох системах (СК-63,УСК-2000 та МСК-...)


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 28 мар 2018 10:11 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
VictorR писал(а):
Доброго дня. Можливо хтось вже зробив подібний скрипт, то поділіться будь-ласка) якщо ні то допоможіть його створити.
Завдання в наступному: є база(точка), необхідно скриптом сформувати таблицю з її координатами у трьох системах (СК-63,УСК-2000 та МСК-...)

Доброго дня
;id точки
$IDPoint=10
;id таблиці
$IDTable=51
@Map.DeselectAll
@Map.SelectLayer id$IDPoint
$PointObj=@Map.SelectedObject
$Coordinates=@Map.Object[$PointObj].Point[1]
@Text[1].Add $Coordinates
@ExecuteMenu RegistryToUSK
$Coordinates=@Map.Object[$PointObj].Point[1]
@Text[1].Add $Coordinates
@ExecuteMenu RegistryToMSK
$Coordinates=@Map.Object[$PointObj].Point[1]
@Text[1].Add $Coordinates
$Text=@Text[1].Text
@Map.DeselectAll
@Map.SelectLayer id$IDTable
$TableObj=@Map.SelectedObject
@Map.Object[$TableObj].TableText $Text
@Window.Refresh


Також прикріпив файл-зразок, щоб було краще зрозуміло, як має виглядати карта з точкою і таблицею, яку оброблятиме скрипт.


Вложения:
Noname1.dmf [29.15 Кб]
Скачиваний: 491

_________________
додатково про скрипти Digitals на www.digitals.at.ua
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 28 мар 2018 20:18 
Эксперт
Эксперт

Зарегистрирован:
30 июн 2017 20:52
Сообщения: 63
Откуда: Херсон
fendak Дуже дякую! Далі буду розбиратися як присвоїти назву колонкам таблиці)


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

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
Прошу
Просто на початку коду додайте рядок
@Text[1].Add Х У Z
регулюючи відступи та центрування пробілами

можна було, звичайно, і через знак табуляції, але тоді на початку додайте:
$Tab=@Calc char(9)
$Tab=@DequoteText $Tab


а в коді замість
$Coordinates=@Map.Object[$PointObj].Point[1]
@Text[1].Add $Coordinates

напишіть:
$Coordinates=@Map.Object[$PointObj].Point[1]
$X=@StringPart 1 $Coordinates
$Y=@StringPart 2 $Coordinates
$Z=@StringPart 3 $Coordinates
@Text[1].Add $X$Tab $Y$Tab $Z

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 28 мар 2018 21:31 
Эксперт
Эксперт

Зарегистрирован:
30 июн 2017 20:52
Сообщения: 63
Откуда: Херсон
Ще раз Дякую Микола!) З Вашою допомогою взагалі скоро забуду як скрипти складати))


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 11 апр 2018 06:53 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
Шановні! Підкажіть, будь ласка. Як можна досягнути оновлення інформації у списку шарів :?:
Вложение:
Qestion.JPG
Qestion.JPG [ 46.52 Кб | Просмотров: 7767 ]
Наприклад: коли скриптом створюється шар в карті, не хочеться визначати перший доступний його ID, тому створюється шар з ID=0 а Digitals сам присвоює ID доданому шару. От тільки значення присвоєного ID шару стає відомим тільки після запуску менеджера шарів.

Як би так обійтися без @ExecuteMenu MapLayers з функцією оновлення списку шарів :?:


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 11 апр 2018 21:09 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
22 сен 2007 16:09
Сообщения: 382
Откуда: м.Львiв
voha писал(а):
Шановні! Підкажіть, будь ласка. Як можна досягнути оновлення інформації у списку шарів :?:
Вложение:
Qestion.JPG
Наприклад: коли скриптом створюється шар в карті, не хочеться визначати перший доступний його ID, тому створюється шар з ID=0 а Digitals сам присвоює ID доданому шару. От тільки значення присвоєного ID шару стає відомим тільки після запуску менеджера шарів.

Як би так обійтися без @ExecuteMenu MapLayers з функцією оновлення списку шарів :?:

Визначити новий доступний ID
Код:
$Lay=@Map.Layers.List
@Text.Text=$Lay
$Count=@Text.Count
$Max=@Text.Line[1]
$Max=@StringPart 1 $Max
%Cycle
$Val=@Text.Line[$Count]
$Val=@StringPart 1 $Val
@If "$Val">"$Max" Then $Max=$Val
$Count=$Count-1
@If $Count>0 Then @Goto %Cycle
@Dialog.Message Max=$Max

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 11 апр 2018 22:53 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
Руслан Пархуць писал(а):
Визначити новий доступний ID...
Дякую за код.
Воно то так можна, однак далі з доданим шаром працювати у скрипті - ще цікавіше :shock: :
- позначені об'єкти карти переводяться у доданий шар функцією @Map.Selected.ChangeLayer
- функція @Map.Layers.ObjectCount, застосована до вказаного шару повертає 0 :!:

Блін! Після @Map.Layers.ObjectCount запускаю вікно статус шарів - у шарі є об'єкти, а @Map.Layers.ObjectCount повертає НУЛЬ.
Тільки після вікна "статус шарів" @Map.Layers.ObjectCount поверне вам кількість об'єктів у шарі, а без нього - НУЛЬ.

Знаєте що мусив додати в скрипт, щоб був порядок?
Код:
;Вікно | Статус шарів
@ExecuteMenu WindowLayerStatus
;Вікно | Статус шарів
@ExecuteMenu WindowLayerStatus
І сміх, і гріх. Порядком надоїло "надягати майку через ноги".
Я не бачу інших варіантів, як тільки аби розробники таки додали функцію оновлення списку шарів.

Коротенький скрипт, який демонструє проблему
Код:
;Створити нову карту на Normal
@FileNew Нова карта /Template=Normal.dmf
;Визначити новий доступний ID
$Lay=@Map.Layers.List
@Text.Text=$Lay
$Count=@Text.Count
$Max=@Text.Line[1]
$Max=@StringPart 1 $Max
%Cycle
$Val=@Text.Line[$Count]
$Val=@StringPart 1 $Val
@If "$Val">"$Max" Then $Max=$Val
$Count=$Count-1
@If $Count>0 Then @Goto %Cycle
$Max=$Max+1
;Додати новий шар стилю Полігон/Полілінія
$NumLay=@Map.Layers.Add $Max 1 Доданий шар
;Зібрати кілька лінійних об'єктів у шарі на замовчування
@Map.SetCollectionLayer ID0
@CollectionTemplate 5
@SelectTab 1
@Dialog.WaitBox Зберіть об'єкти в шарі "DefaultLayer" і тисніть "Прордовжити"
@Map.SelectAll
;Змінити шар зібраних об'єктів на "Доданий шар"
@Map.Selected.ChangeLayer ID$Max
;УСІ МОЖЛИВІ ОНОВЛЕННЯ ЕКРАНУ ТА ПЕРЕРАХУНОК РОЗМАХУ КАРТИ
@Window.Refresh
@Map.CalculateRange
;Визначення кількості об'єктів у доданому шарі
$CountObj=@Map.Layers.ObjectCount $NumLay
@Dialog.Message Кількість об'єктів, повернута функцією Map.Layers.ObjectCount, якогось дідька рівна $CountObj
;ВИКЛИК ВІКНА "СТАТУС ШАРІВ"
@ExecuteMenu WindowLayerStatus
;ВИЗНАЧЕННЯ КІЛЬКОСТІ ОБ'ЄКТІВ У ДОДАНОМУ ШАРІ
$CountObj=@Map.Layers.ObjectCount $NumLay
@Dialog.Message Кількість об'єктів, повернута функцією Map.Layers.ObjectCount після відображення вікна "Статус шарів" - "$CountObj"
;ЗАКРИВАННЯ ВІКНА "СТАТУС ШАРІВ"
@ExecuteMenu WindowLayerStatus
запустіть, будь-ласка, за виключеного вікна "статус шарів".


Последний раз редактировалось voha 11 апр 2018 23:46, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 11 апр 2018 23:30 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
22 сен 2007 16:09
Сообщения: 382
Откуда: м.Львiв
voha писал(а):
Руслан Пархуць писал(а):
Визначити новий доступний ID...
Дякую за код.
Воно то так можна, однак далі з доданим шаром працювати у скрипті - ще цікавіше :shock: :
- позначені об'єкти карти переводяться у доданий шар функцією @Map.Selected.ChangeLayer
- функція @Map.Layers.ObjectCount, застосована до вказаного шару повертає 0 :!:

... а так вродi все ок (з командою @Map.RedefineLayers -7). Щось розробники не доробили, може з часом... ;)
Код:
$Lay=@Map.Layers.List
@Text.Text=$Lay
$Count=@Text.Count
$Max=@Text.Line[1]
$Max=@StringPart 1 $Max
%Cycle
$Val=@Text.Line[$Count]
$Val=@StringPart 1 $Val
@If "$Val">"$Max" Then $Max=$Val
$Count=$Count-1
@If $Count>0 Then @Goto %Cycle
$Max=$Max+1
@Dialog.Message $Max
;
$NewLayer=@Map.Layers.Add $Max 1 TestLayer
$Cnt=@Map.Layers.ObjectCount $NewLayer
@Dialog.WaitBox Виберiть елементи|К-сть на шарi [$NewLayer]: $Cnt
@Map.Selected.ChangeLayer $Max
;
@Map.RedefineLayers -7
;
$Cnt=@Map.Layers.ObjectCount $NewLayer
@Dialog.Message Нова к-сть на шарi [$NewLayer]: $Cnt

А для пошуку максимального i мiнiмального значення мали б вiдповiдати ф-цiї @Map.MaxParameterValue -7 та @Map.MinParameterValue -7, якi чомусь працюють некоректно.

Щодо Вашого коду, то в мене все працює без WindowLayerStatus, правда, коли забрати @Map.CalculateRange, повертається нульове значення параметра.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 12 апр 2018 01:19 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
Руслан Пархуць писал(а):
... а так вродi все ок (з командою @Map.RedefineLayers -7). Щось розробники не доробили, може з часом... ;)

Щодо Вашого коду, то в мене все працює без WindowLayerStatus, правда, коли забрати @Map.CalculateRange, повертається нульове значення параметра.
На диво, коли я в приведений мною код вставив @Map.RedefineLayers -7, і в мене @Map.Layers.ObjectCount стала повертати кількість об'єктів.
Навіть якщо знову видалити @Map.RedefineLayers -7 з наведеного коду і перезапустити Digitals - працює все ОК.

Не годиться лише @Map.RedefineLayers -7 в "справжньому" скрипті на "справжній" карті, оскільки "После переопределения слоев по значению какого-либо параметра, те объекты, значения данного параметра у которых одинаковы, будут сгруппированы в один слой. Имя слоя берется из значения параметра." Як далі давати раду з усіма об'єктами у перепризначених, створених командою @Map.RedefineLayers і доданих в шаблон карти, шарах?
Руслан Пархуць писал(а):
А для пошуку максимального i мiнiмального значення мали б вiдповiдати ф-цiї @Map.MaxParameterValue -7 та @Map.MinParameterValue -7, якi чомусь працюють некоректно.
Не знаю як у стандартному Normal-і, але в лісових картах службовий параметр -7 має тип "текстовий рядок". Ймовірно через це min/max не можна застосовувати до P[-7].

P.S. Ну все! Вилікував скрипт. Принаймні у себе на компі:
- додав @Map.RedefineLayers -7;
- прогнав скрипт один раз;
- закоментував @Map.RedefineLayers -7.
Чемно дякую Руслану Пархуцю!


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 15 апр 2018 11:04 
Эксперт
Эксперт

Зарегистрирован:
06 дек 2012 18:14
Сообщения: 55
Добрый день. Как можно реализовать возможность добавления в шаблон кадастровый план каталога координат с двумя системами одновременно (СК63 и УСК2000).


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 16 апр 2018 17:04 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2298
Откуда: Vinnytsia
voha писал(а):
- позначені об'єкти карти переводяться у доданий шар функцією @Map.Selected.ChangeLayer
- функція @Map.Layers.ObjectCount, застосована до вказаного шару повертає 0 :!:

Спробуйте в оновленій версії.

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 17 апр 2018 11:14 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
22 сен 2007 16:09
Сообщения: 382
Откуда: м.Львiв
faram писал(а):
Добрый день. Как можно реализовать возможность добавления в шаблон кадастровый план каталога координат с двумя системами одновременно (СК63 и УСК2000).

Цитата:
VictorR писал(а):
Доброго дня. Можливо хтось вже зробив подібний скрипт, то поділіться будь-ласка) якщо ні то допоможіть його створити.
Завдання в наступному: є база(точка), необхідно скриптом сформувати таблицю з її координатами у трьох системах (СК-63,УСК-2000 та МСК-...)

Якщо володiєте мовою скриптiв, тодi не важко буде переробити пiд свої потреби
http://www.geosystema.net/forum/viewtopic.php?f=1&t=2809&start=855#39649

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


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

Зарегистрирован:
18 июл 2011 09:16
Сообщения: 43
Доброго дня! Підкажіть будь-ласка, як зі скрипту запустити Reports.exe певний шаблон. В мене чомусь так не працює, пише що буде завантажений тестовий режим.
Код:
@Run $PrPath\Reports.exe -t$PrPath\Templates\TehDoc_Khodienkov.fr3

P.S. Само собою змінна $PrPath в коді визначена як системна папка


Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 1235 ]  На страницу Пред.  1 ... 55, 56, 57, 58, 59, 60, 61 ... 83  След.

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


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

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


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

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