Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 08 дек 2021 23:46

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




Начать новую тему Ответить на тему  [ Сообщений: 1197 ]  На страницу Пред.  1 ... 75, 76, 77, 78, 79, 80  След.
Автор Сообщение
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 10 апр 2021 19:36 
Гуру
Гуру

Зарегистрирован:
14 окт 2010 16:40
Сообщения: 240
Поиск самого длинного ребра:
$Obj=@Map.SelectedObject
@if $Obj=0 then @Break
;кол-во ребер в полигоне
$LineCount=@Map.Object[$Obj].Count
$LineCount=$LineCount-1
$MaxLength=0
$L=0
%loop
$L=$L+1
@if $L=$LineCount then @Goto %End
$Length=@Map.Object[$Obj].LineLength[$L]
@if $MaxLength<$Length then $MaxLength=$Length
@if $L<$LineCount then @Goto %loop
@Dialog.Message $MaxLength
Что значит построить отрезок по этой стороне? Отрезок будет равен длинной стороне?


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 10 апр 2021 19:46 
Специалист
Специалист

Зарегистрирован:
20 июн 2007 21:35
Сообщения: 48
Откуда: Винница
Denidz писал(а):
Поиск самого длинного ребра:
$Obj=@Map.SelectedObject
@if $Obj=0 then @Break
;кол-во ребер в полигоне
$LineCount=@Map.Object[$Obj].Count
$LineCount=$LineCount-1
$MaxLength=0
$L=0
%loop
$L=$L+1
@if $L=$LineCount then @Goto %End
$Length=@Map.Object[$Obj].LineLength[$L]
@if $MaxLength<$Length then $MaxLength=$Length
@if $L<$LineCount then @Goto %loop
@Dialog.Message $MaxLength
Что значит построить отрезок по этой стороне? Отрезок будет равен длинной стороне?

Да. Идентичен длинной стороне.

_________________
Отдельное спасибо алфавиту за предоставленные буквы.


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

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 775
Откуда: Львівська область
S@SH писал(а):
Да. Идентичен длинной стороне.

;нижче вкажіть id шару нового об'єкта
$LIDNewOby=20000
$Obj=@Map.SelectedObject
@if $Obj=0 then @Break
$LineCount=@Map.Object[$Obj].Count
$LineCount=$LineCount-1
$MaxLength=0
$L=0
$L2=1
$XY1=0
$XY2=0
%loop
$L=$L+1
@if $L=$LineCount then @Goto %End
$Length=@Map.Object[$Obj].LineLength[$L]
@if $MaxLength<$Length then $XY1=@Map.Object[$Obj].Point[$L]
@if $MaxLength<$Length then $L2=$L+1
@if $MaxLength<$Length then $XY2=@Map.Object[$Obj].Point[$L2]
@if $MaxLength<$Length then $MaxLength=$Length
@if $L<$LineCount then @Goto %loop
$NewObject=@Map.NewObject id$LIDNewOby
@Map.Object[$NewObject].Point[1] $XY1
@Map.Object[$NewObject].AddPoint $XY2
@Map.RefreshObject $NewObject
@Map.DeselectAll
@Map.SelectObject $NewObject

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 11 апр 2021 07:45 
Специалист
Специалист

Зарегистрирован:
20 июн 2007 21:35
Сообщения: 48
Откуда: Винница
fendak писал(а):
S@SH писал(а):
Да. Идентичен длинной стороне.

;нижче вкажіть id шару нового об'єкта
$LIDNewOby=20000
$Obj=@Map.SelectedObject
@if $Obj=0 then @Break
$LineCount=@Map.Object[$Obj].Count
$LineCount=$LineCount-1
$MaxLength=0
$L=0
$L2=1
$XY1=0
$XY2=0
%loop
$L=$L+1
@if $L=$LineCount then @Goto %End
$Length=@Map.Object[$Obj].LineLength[$L]
@if $MaxLength<$Length then $XY1=@Map.Object[$Obj].Point[$L]
@if $MaxLength<$Length then $L2=$L+1
@if $MaxLength<$Length then $XY2=@Map.Object[$Obj].Point[$L2]
@if $MaxLength<$Length then $MaxLength=$Length
@if $L<$LineCount then @Goto %loop
$NewObject=@Map.NewObject id$LIDNewOby
@Map.Object[$NewObject].Point[1] $XY1
@Map.Object[$NewObject].AddPoint $XY2
@Map.RefreshObject $NewObject
@Map.DeselectAll
@Map.SelectObject $NewObject

:shock: Гениально... Спасибо....

_________________
Отдельное спасибо алфавиту за предоставленные буквы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 19 апр 2021 08:15 
Специалист
Специалист

Зарегистрирован:
02 ноя 2020 15:55
Сообщения: 22
voha писал(а):
-Ivan- писал(а):
Добрий день, допоможіть добити скрипт, потрібно щоб при виборі одного з масштабів відкривався потрібний шаблон.
Код:
$Sit=@Dialog.Select ВИБЕРІТЬ МАСШТАБ|1000|2000|5000|10000
;Якщо масштаб не вибрано - припинення виконання
@If "$Sit"="" then @Break Не вибрано масштаб
;Якщо вибрано 1000 - перехід на мітку %1000
@If $Sit=1000 then @Goto %1000
@If $Sit=2000 then @Goto %2000
@If $Sit=5000 then @Goto %5000
;Якщо вибір зроблено, але не 1000, 2000 або 5000 - значить вибрано 10000
@ExecuteDocument 1_Сит.план (10000).dmt
@Goto %EndSelect
%1000
@ExecuteDocument 1_Сит.план (1000).dmt
@Goto %EndSelect
%2000
@ExecuteDocument 1_Сит.план (2000).dmt
@Goto %EndSelect
%5000
@ExecuteDocument 1_Сит.план (5000).dmt
%EndSelect
Назви міток починаються символом %, змінних - символом $.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 19 апр 2021 16:06 
Специалист
Специалист

Зарегистрирован:
02 ноя 2020 15:55
Сообщения: 22
$Sit=@Dialog.Select ВИБЕРІТЬ МАСШТАБ|1000|2000|5000|10000
;Якщо масштаб не вибрано - припинення виконання
@If "$Sit"="" then @Break Не вибрано масштаб
;Якщо вибрано 1000 - перехід на мітку %1000
@If $Sit=1000 then @Goto %1000
@If $Sit=2000 then @Goto %2000
@If $Sit=5000 then @Goto %5000
;Якщо вибір зроблено, але не 1000, 2000 або 5000 - значить вибрано 10000
@ExecuteDocument 1_Сит.план (10000).dmt
@Goto %EndSelect
%1000
@ExecuteDocument 1_Сит.план (1000).dmt
@Goto %EndSelect
%2000
@ExecuteDocument 1_Сит.план (2000).dmt
@Goto %EndSelect
%5000
@ExecuteDocument 1_Сит.план (5000).dmt
%EndSelect

Усім привіт!
Побачив от такий скрипт!
Хочу дізнатися чи можливо щоб крім масштабу можна було обирати папку!

Тобто: Скрипт повинен виконувати таке:
Наприклад є файли dmt в різних масштабах - Абрис1000.dmt, Абрис2000.dmt Вони знаходяться в папці c:digitals/tamplates/Abrysy
Скрипт дає вибрати між тим що ви хочете зробити і в якому масштабі і виконує це


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

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2261
Откуда: Vinnytsia
$AM=@ActivateMap
@if $AM=0 then @Break
$SO=@Map.SelectedObject
@if $SO=0 then @Break Потрібно помітити об'єкт
$PPath=@ProgramPath
$DocType=@Dialog.Select Оберіть тип документу|Абрис|План
@if $DocType= then @Break Не обрано тип документу
@if $DocType=Абрис then $TemplatePath=$PPath\Templates\Abrysy\
@if $DocType=План then $TemplatePath=$PPath\Templates\Plany\
$Scale=@Dialog.Select ВИБЕРІТЬ МАСШТАБ|500|1000|2000
@if $Scale= then @Break Не обрано масштаб
$TemplateFileName=$TemplatePath$DocType$Scale.dmt
@ExecuteDocumentFromFile $TemplateFileName

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


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

Зарегистрирован:
14 окт 2010 16:40
Сообщения: 240
Доброго времени суток. А может кто-нибудь поделиться скриптом по заполнению точечными объектами (одиночными символами) полигона, чтоб с рандомным расстоянием между точеными объектами (но чтоб не было меньше определенного значения, которое например указывается в переменной) и рандомным углом поворота. Вдруг кто такое реализовывал:)
Есть вставка-точки в полигон, но там только в шахматном порядке или равномерно.


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

Зарегистрирован:
22 сен 2007 16:09
Сообщения: 376
Откуда: м.Львiв
Denidz писал(а):
Доброго времени суток. А может кто-нибудь поделиться скриптом по заполнению точечными объектами (одиночными символами) полигона, чтоб с рандомным расстоянием между точеными объектами (но чтоб не было меньше определенного значения, которое например указывается в переменной) и рандомным углом поворота. Вдруг кто такое реализовывал:)
Есть вставка-точки в полигон, но там только в шахматном порядке или равномерно.

В даному вiкнi є можливiсть i випадкового промальовування знаку, чи має бути щось iнше?


Вложения:
Random.jpg
Random.jpg [ 18.19 Кб | Просмотров: 1107 ]

_________________
Більшість хороших програмістів виконують свою роботу не тому, що очікують оплати або визнання, а тому, що отримують задоволення від програмування.
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 21 май 2021 22:03 
Гуру
Гуру

Зарегистрирован:
14 окт 2010 16:40
Сообщения: 240
Спасибо! стояла версия за июль 20 года, там еще этого не было. Обновился, теперь все ок.


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

Зарегистрирован:
19 ноя 2018 13:26
Сообщения: 34
Всім доброго дня!
Зацікавило таке питання, чи можливо за допомогою скрипта присвоїти кожному лінійному об'єкту в масиві (групі) обє'ктів, відібраних за певним параметром, присвоїти значення параметра довгота/широта об'єкта дотичного до об'єкта іншого умовного слоя та довгота/широта найпівденнішого об'єкта (має вийти щось схоже на даний код: 485612302655083148561676265517541)
(це те чим зараз користуюся, але даний скрипт опрацьовує тільки цільні об'єкти)

%Events.OnChange,%Events.OnAdd,%Events.OnCollect,%Events.OnLayerChange
$EO=@EventObject
$PC=@Map.Object[$EO].Count
$BLCode1=@Map.Object[$EO].BLCode 1
$BLCode2=@Map.Object[$EO].BLCode $PC
$WC=@Map.Object[$EO].Parameter[ID7079]
@if $WC= then $WC=1
@Map.Object[$EO].Parameter[1] $BLCode1$BLCode2$WC
@Dialog.Message $BLCode1$BLCode2$WC
@Map.Selected.Refresh


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

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 775
Откуда: Львівська область
Добрий день!
Дивлюся, що розробники Digitals додали цілий ряд нових функцій для обробки тексту.
Чи можна якийсь приклад використання нових функцій?
Цікавить, зокрема:
@Text[N].Crop Start Count, @Text[N].Histogram [Start Count] - Що означає замінює кожну строку її фрагментом? Чи не є це можливістю об'єднувати в таблиці кілька яцейок в одну, якої так не вистачає в таблицях Digitals?
@Text[N].Delimiter, @Text[N].DelimitedText - Про який символ-розділювай йде мова?
@Text[N].Leading Char - Для чого додавати нулі в список?
@Text[N].LengthFilter Condition, @Text[N].Unique [Length] - Взагалі щось екзотичне.


Вложения:
2021-06-06_124142.jpg
2021-06-06_124142.jpg [ 90.45 Кб | Просмотров: 920 ]

_________________
додатково про скрипти Digitals на www.digitals.at.ua
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 09 июн 2021 15:01 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2261
Откуда: Vinnytsia
Маємо наприклад файл https://data.land.gov.ua/downloads/1/1/46.zip

;Відкриваємо 46.json
@Text[1].Load D:\dataland\46\46.json
; вирізаємо з кожної строки кадастровий номер (з 13-ї позиції 22 символа)
@Text[1].Crop 13 22
;відфільтровуємо пусті строки
@Text[1].LengthFilter <1
;зберігаємо в файл перелік кадномерів
@Text[1].Save D:\dataland\46\46.txt
;обрізаємо строки кожної строки до 17 символів, неунікальні значення видаляємо
@Text[1].Unique 17
;зберігаємо список непустих кадастрових кварталів
@Text[1].Save D:\dataland\46\quarters46.txt
;обрізаємо строки кожної строки до 13 символів, неунікальні значення видаляємо
@Text[1].Unique 13
;зберігаємо список непустих кадастрових зон
@Text[1].Save D:\dataland\46\zones46.txt

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


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 09 июн 2021 15:57 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2261
Откуда: Vinnytsia
fendak писал(а):
@Text[N].Delimiter, @Text[N].DelimitedText - Про який символ-розділювай йде мова?
viewtopic.php?p=41608#41608
fendak писал(а):
@Text[N].Leading Char - Для чого додавати нулі в список?
ІПН,які починаються з нуля часто його втрачають, те саме стосується кадастрових номерів ділянок Крима, Вінницької та Волинської областей. Або якщо потрібно числовий ряд перетворити у код певної ширини
fendak писал(а):
@Text[N].LengthFilter Condition, @Text[N].Unique [Length] - Взагалі щось екзотичне.
Див. попередній пост

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


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 22 июн 2021 12:45 
Специалист
Специалист

Зарегистрирован:
02 ноя 2020 15:55
Сообщения: 22
@Map.SelectLayer ID20000
@SendChars <CR>
[ Операции с объектами.Добавить узлы ]
@SendChars <CR>
@Map.DeselectAll
@Map.SelectLayer ID20000
Таблица | Настраиваемая...


Чи може хтось допомогти з таким:
Потрібно ось це розписати більш детально

Тобто: Операція добавить узли щоб вибирало слой який буде вписано в скрипті
Потім кожну точку(вузол) який створено нумеровало у форматі 0001,0002,0003...
І вставляло на план настроювану таблицю у форматі NPXYZ чи з іншими параметрами

P.S. Можливо у когось є література з більш детальним описом роботи зі скриптами


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

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


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

Сейчас этот форум просматривают: Google [Bot] и гости: 4


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

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