$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
Скрипт дає вибрати між тим що ви хочете зробити і в якому масштабі і виконує це
$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
Доброго времени суток. А может кто-нибудь поделиться скриптом по заполнению точечными объектами (одиночными символами) полигона, чтоб с рандомным расстоянием между точеными объектами (но чтоб не было меньше определенного значения, которое например указывается в переменной) и рандомным углом поворота. Вдруг кто такое реализовывал:)
Есть вставка-точки в полигон, но там только в шахматном порядке или равномерно.
Всім доброго дня!
Зацікавило таке питання, чи можливо за допомогою скрипта присвоїти кожному лінійному об’єкту в масиві (групі) обє’ктів, відібраних за певним параметром, присвоїти значення параметра довгота/широта об’єкта дотичного до об’єкта іншого умовного слоя та довгота/широта найпівденнішого об’єкта (має вийти щось схоже на даний код: 485612302655083148561676265517541)
(це те чим зараз користуюся, але даний скрипт опрацьовує тільки цільні об’єкти)
Добрий день!
Дивлюся, що розробники 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] - Взагалі щось екзотичне.
;Відкриваємо 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
ІПН,які починаються з нуля часто його втрачають, те саме стосується кадастрових номерів ділянок Крима, Вінницької та Волинської областей. Або якщо потрібно числовий ряд перетворити у код певної ширини
@Map.SelectLayer ID20000 @SendChars
[ Операции с объектами.Добавить узлы ] @SendChars @Map.DeselectAll @Map.SelectLayer ID20000
Таблица | Настраиваемая…
Чи може хтось допомогти з таким:
Потрібно ось це розписати більш детально
Тобто: Операція добавить узли щоб вибирало слой який буде вписано в скрипті
Потім кожну точку(вузол) який створено нумеровало у форматі 0001,0002,0003…
І вставляло на план настроювану таблицю у форматі NPXYZ чи з іншими параметрами
P.S. Можливо у когось є література з більш детальним описом роботи зі скриптами
Як через скрипти замінити параметри?
Наприклад:
на карті є три ділянки
Кожна з них має різне значення у параметрі НД(4)
такі як 1,2,3 їх мотрібно замінити на двозначні 01,02,03
Допоможіть зробити скрипт щоб при виборі “так” зберігало один файл. А коли “ні” зберігало декілька, а першу карту залишало. Не можу добитися щоб при виборі “ні” відкривало вікно для збереження активної карти.
$MapCount=@MapCount
;@if $MapCount=0 @break
$Print=@Dialog.Select ЗБЕРЕГТИ ОДИН ФАЙЛ?|так|ні @if $Print=ні then @Goto %Newcopy @if $Print=так then @Goto %SAVE @if $Print=0 then @break @if $Print= then @break
%SAVE
$OriginalMap=@ActivateMap
Файл | Сохранить как…
$Zakrut=@Dialog.Select ЗАКРИТИ ФАЙЛ?|так|ні @if $Zakrut=так then @Goto %CLOSE @if $Zakrut=ні then @Goto %Finisf @Goto %Finisf
%Newcopy
;$MapCount=@MapCount @if $MapCount=0 @break
%Start
$OriginalMap=@ActivateMap
Файл | Сохранить как…
%CLOSE @CloseMap $OriginalMap
%Finisf @if $OriginalMap<=$MapCount @break @Goto %Start
Ваше прохання, з огляду на те, як написаний скрипт, викликає купу запитань у відповідь:
хіба $OriginalMap може колись бути більшим за $MapCount?
Але то - байка, вам треба:
щоб при виборі “так” зберігалася лише активна (на момент запуску скрипта) карта із запитом назви файла і закривалися без збереження змін всі інші карти?
щоб при виборі “ні” зберігалися із запитом назви файла всі відкриті карти (в тому числі активна) і закривалися всі карти, крім активної?
Задачу, будь-ласка, конкретизуйте. Тоді скрипт раз-два складеться.
Шановні розробники!
Маю просити вас навести пояснення до застосування скриптової функції @EventPoint - “Возвращает координаты точки события в скрипте контроля”.
Вкрай як треба мати номер точки/точок, координати яких були змінені, у скрипті обробки події зміни об’єкта%Events.OnChange. Не уявляю собі як це зробити.
Я собі розрізняю скрипт Digitals і сценарій контролю. Але скрипт контролю - це що? І якщо все-таки йдеться за сценарій контролю, то яким чином до нього застосувати скриптову функцію?
Моє припущення, що мовляв “@EventPoint у скрипті обробки події: повертає координати точки об’єкта, зміна координат якої викликала подію OnChange; координати точки в карті, в якій клацнули мишею для позначення об’єкта, що викликало подію OnSelect… і т.д.” не правильне
Функція @EventPoint повертає координати точки на якій спрацювала одна з умов сценарію контроля.
Сценарій контролю карти може викликати скрипти, для цього в сценарій потрібно додати розділ [SCRIPT]
Приклад:
[code][SCRIPT]
%BeginControl:
;ця частина скрипта виконується спочатку
$Ver=@Version @if $Ver<43851 @Goto %Exit
$Result=1 @Break
%Exit @Dialog.Message Сценарій контроля не буде виконуватись!!! Потрібно оновити програму до версії від 21.01.2020
$Result=0 @Break
%BeginControl виконується під час старту сценарію, а %Mess виконується коли спрацьовує помилка Touch
/W в “L:L; Помилка примикання /SCRIPT %Mess /W” означає що повідомлення буде зеленого кольору
усі варіанти:
/W - попередження (зелений)
/S - помилка (червоний)
/A - автоматичне виправлення (синій)
У вкладенні файл на якому сценарій видає дві помилки
Доброго дня! Допоможіть будь ласка автоматизувати вирішення наступної задачі. Є лінія у точках якої розміщенні точкові об’єкти та ще є не задіяні точки цієї лінії які потрібно видалити.(Додаю картинку для прикладу.)