Аналитика
http://www.geosystema.net/forum/

Все про скрипти
http://www.geosystema.net/forum/viewtopic.php?f=1&t=2809
Страница 80 из 83

Автор:  Denys Sanitskyi [ 27 окт 2021 07:45 ]
Заголовок сообщения:  Re: Все про скрипти

Dmitry_Zolotar писал(а):
Приклад

Велике Вам ДЯКУЮ!!!
Дозвольте ще раз звернутись із проханням, мені потрібно щоб даний скрипт виконувався на всіх помічених лінійних об'єктах, допоможіть будь ласка із цим якщо це можливо.

Автор:  Dmitry_Zolotar [ 27 окт 2021 16:02 ]
Заголовок сообщения:  Re: Все про скрипти

Denys Sanitskyi писал(а):
мені потрібно щоб даний скрипт виконувався на всіх помічених лінійних об'єктах, допоможіть будь ласка із цим якщо це можливо.

Код:
;номерчи айді точкового шару
$PointLayer=ID3
$BreakXYZ=-2684354.56 -2684354.56 0
$AM=@ActivateMap
@if $AM=0 then @Break Відкрийте карту, помітьте об'єкт та запустіть скрипт знову
$SO=@Map.SelectedObject
$SC=@Map.SelCount
@if $SC<1 then @Break Помічено має бути один чи більше об'єктів
@Map.Selected.MarkPoints CLEAR
%LoopSelected
$Closed=@Map.Object[$SO].ClosedComplex
@if $Closed=1 then @Goto %IgnoreSelObject
$PC=@Map.Object[$SO].Count
@if $PC<3 then @Goto %IgnoreSelObject
$I=$PC
%LoopPoint
$NodeObj=@Map.Object[$SO].Node $I $PointLayer
@if $NodeObj>0 then @Goto %IgnorePoint
$XYZ=@Map.Object[$SO].Point[$I]
$XYZ=%Library.ReplaceComma $XYZ
@if $XYZ=$BreakXYZ then @Goto %IgnorePoint
@Map.Object[$SO].Delete $I $I
%IgnorePoint
$I=$I-1
@if $I>0 then @Goto %LoopPoint
@Map.RefreshObject $SO
%IgnoreSelObject
$SO=@Map.NextSelected $SO
@if $SO<>0 then @Goto %LoopSelected
@Window.Refresh


Вложения:
Комментарий к файлу: Приклад
Nodes.dmf [2.34 Кб]
Скачиваний: 249

Автор:  dkorsachev [ 08 ноя 2021 10:59 ]
Заголовок сообщения:  Re: Все про скрипти

Dmitry_Zolotar писал(а):
dkorsachev писал(а):
Здравствуйте, подскажите пожалуйста что поменялось в программе не работает скрипт в новой версии Digitals. В старой версии 2013 года всё работает. При выборе шаблона такая вот ошибка.

Ошибка возникает если нет указаной панели/кнопки, перепроверьте ее название.
Проверил на новой версии - работает.

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

Ссылка на скрин TemplShow: https://ibb.co/0Ff19Qv
Ссылка на TempSave:

Вложения:
TemplSave.pdf [55.51 Кб]
Скачиваний: 223

Автор:  voha [ 16 ноя 2021 16:25 ]
Заголовок сообщения:  Re: Все про скрипти

Прохання до розробників:
скриптову функцію @Map.InsertFromFile Filename "Выполняет команду "Вставка|Карта", добавляя в карту объекты из внешнего файла" таки треба виправити так, щоб налаштування програми щодо читання Acview Shape (міняти місцями X Y) застосовувалися.
Вказане не є критичним. @Map.InsertFromFile Filename не міняє місцями X Y лише коли карта порожня і без датума.

Питання до розробників:
чи можливо реалізувати дотримання заборони оновлення карти на екрані в результаті виконання будь-яких функцій меню зі скрипта? Це покращило б роботу засобів автоматизації Digitals загалом. Я розумію, що функції меню запускаються з меню в основному "руками", але замовляти десятки відповідних скриптових функцій, щоб позбутися оновлення карти при виконанні скриптів - якось совість не дозволяє :oops:
В кожну функцію меню, якій немає аналогу скриптової функції, хочеться додати перевірку: якщо функція запущена зі скрипта при включеній забороні оновлення - оновляти карту не треба.

Чемно дякую за постійну підтримку програми.

Автор:  voha [ 21 ноя 2021 15:03 ]
Заголовок сообщения:  Re: Все про скрипти

voha писал(а):
Прохання до розробників:
скриптову функцію @Map.InsertFromFile Filename "Выполняет команду "Вставка|Карта", добавляя в карту объекты из внешнего файла" таки треба виправити так, щоб налаштування програми щодо читання Acview Shape (міняти місцями X Y) застосовувалися.
Вказане не є критичним. @Map.InsertFromFile Filename не міняє місцями X Y лише коли карта порожня і без датума.
Тепер маю зазначити - питання термінове:
скриптова функція @Map.InsertFromFile Filename "Выполняет команду "Вставка|Карта", ДОБАВЛЯЯ ОБЪЕКТЫ ИЗ ВНЕШНЕГО ФАЙЛА SHAPE НО НЕ МЕНЯЯ МЕСТАМИ X Y".

Є два варіанти вирішення питання:
1) виправити скриптову функцію @Map.InsertFromFile Filename;
2) додати скриптову функцію @Map.SwapXY - "Міняє місцями X Y".

Інакше - треба забути про функції @FileNew Name [/Template=Templatename.dmf] і @Map.InsertFromFile Filename.

Прошу дуже, шановні розробники. Дайте, будь-ласка, відповідь.

P.S. Майка через ноги: відкрити файл Shape, позначити всі, видалити, приєднати необхідний шаблон, вставити об'єкти з того ж файла Shape.

Автор:  Dmitry_Zolotar [ 22 ноя 2021 16:44 ]
Заголовок сообщения:  Re: Все про скрипти

Змінена у новій версії функція @Map.InsertFromFile під час вставки з шеп-файлу завжди міняє Х, У місцями.
Додано також функцію @Map.SwapXY, яка міняє Х, У місцями у всій карті.

Автор:  voha [ 23 ноя 2021 09:14 ]
Заголовок сообщения:  Re: Все про скрипти

Dmitry_Zolotar писал(а):
Змінена у новій версії функція @Map.InsertFromFile під час вставки з шеп-файлу завжди міняє Х, У місцями.
Додано також функцію @Map.SwapXY, яка міняє Х, У місцями у всій карті.
Дуже дякую. Оперативна підтримка - на висоті.

Автор:  Denys Sanitskyi [ 26 ноя 2021 10:18 ]
Заголовок сообщения:  Re: Все про скрипти

Всім доброго дня!
Допоможіть із таким питанням як замінити знак табуляції в строці параметра виділених об'єктів на знак пробілу?

Автор:  Dmitry_Zolotar [ 26 ноя 2021 11:43 ]
Заголовок сообщения:  Re: Все про скрипти

Denys Sanitskyi писал(а):
Всім доброго дня!
Допоможіть із таким питанням як замінити знак табуляції в строці параметра виділених об'єктів на знак пробілу?

$S=@Map.Object[...].Parameter[...]
$Tab=@Calc Char(9)
$Tab=@DequoteText $Tab
$S=@Calc replace("$S","$Tab"," ")
$S=@DequoteText $S
@Dialog.Message $S

Автор:  Denys Sanitskyi [ 26 ноя 2021 13:10 ]
Заголовок сообщения:  Re: Все про скрипти

[quote="Dmitry_Zolotar"] Допоможіть будь ласка із циклом до Вашої пропозиції (не виходить перейти на інший об'єкт).
$AM=@ActivateMap
@if $AM=0 then @Break Відкрийте карту, помітьте об'єкт та запустіть скрипт знову
$SO=@Map.SelectedObject
$SC=@Map.SelCount
@if $SC<1 then @Break Помічено має бути один чи більше об'єктів
$SO=0
@Progress.Start $SC Виконання
;@Map.Selected.MarkPoints CLEAR
;$PC=@Map.Object[$SO].Count
%LoopSelected
$SO=@Map.NextSelected $SO
@If $SO=0 then @Goto %EndProc
@Progress.StepBy
;$I=$PC
$SGP=@Map.Selected.GetParameter 49
@Dialog.Message $SGP
@Progress.StepBy
$TB=@Calc char(9)
$SPC=@Calc char(160)
$TB=@DequoteText $TB
$SPC=@DequoteText $SPC
$SGPN=@ReplaceChar $TB$SPC$SGP
$SSP=@Map.Selected.SetParameter 49 $SGPN
@Progress.StepBy
;$I=$I-1
;@Map.RefreshObject $SO
;$SO=@Map.NextSelected $SO
;$SO=$SO+1
@Goto %LoopSelected
@Window.Refresh
%EndProc
@Progress.Stop
@Dialog.Message "Виконано!"

Автор:  voha [ 26 ноя 2021 13:40 ]
Заголовок сообщения:  Re: Все про скрипти

Denys Sanitskyi писал(а):
Допоможіть будь ласка із циклом до Вашої пропозиції (не виходить перейти на інший об'єкт).
Код:
$CntMap=@MapCount
@if $CntMap=0 then @Break Відкрийте карту, помітьте об'єкт та запустіть скрипт знову
$SC=@Map.SelCount
@if $SC=0 then @Break Помічено має бути один чи більше об'єктів
$LstSel=@Map.Selected.List
$CntText=@Text.Text $LstSel
@Map.BeginUpdate
$TB=@Calc char(9)
$SPC=@Calc char(160)
$TB=@DequoteText $TB
$SPC=@DequoteText $SPC
$NumLin=1
@Progress.Start $SC Виконання
@While $NumLin<=$CntText %LoopSelected
@Map.DeselectAll
@Progress.StepBy
$SO=@Text.Line[$NumLin]
@Map.SelectObject $SO
$SGP=@Map.Object[$SO].Parameter[49]
$SGPN=@ReplaceChar $TB$SPC$SGP
@Map.Selected.SetParameter 49 $SGPN
$NumLin=$NumLin+1
%LoopSelected
@Progress.Stop
@Map.EndUpdate RefreshAlways
@Dialog.Message "Виконано!"
Справа в тому, що команда @Map.Object[$SO].Parameter[49]=$SGPN не гарантія, що спрацює для кожного з позначених. Тому позначка з усіх позначених буде знята в результаті виконання скрипта.

Автор:  Denys Sanitskyi [ 26 ноя 2021 23:20 ]
Заголовок сообщения:  Re: Все про скрипти

Дякую! Буду знати надалі.

Автор:  Denidz [ 05 янв 2022 13:13 ]
Заголовок сообщения:  Re: Все про скрипти

Добрый день. Можете ли более подробно описать функцию @Map.AddObject. В частности интересует можно ли ей передать список координат и с помощью нее отстроить полигон?

Автор:  Denys Sanitskyi [ 06 янв 2022 13:43 ]
Заголовок сообщения:  Re: Все про скрипти

Всім доброго дня!
Підкажіть будь ласка як створити автоматичний параметр до об'єктів який би відображав дату створення даного об'єкта на карті або дату внесення до нього змін.

Автор:  Denidz [ 06 янв 2022 13:52 ]
Заголовок сообщения:  Re: Все про скрипти

Цитата:
Всім доброго дня!
Підкажіть будь ласка як створити автоматичний параметр до об'єктів який би відображав дату створення даного об'єкта на карті або дату внесення до нього змін.


Параметр =TimeStamp с маской dd.mm.yyyy hh:mm

Страница 80 из 83 Часовой пояс: UTC + 2 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/