Запрос на функцию

Потрібна функція для повного переривання роботи скрипту, або доповнення функції @break.
Якщо із скрипту викликати свою бібліотеку *.dsf і у ній є @break, то завершується робота лише бібліотеки, а скрипт продовує виконуватися далі. Було б добре мати функцію, наприклад @interrapt, як б повністю завершувала роботу скрипту і усіх вложених скриптів.

P.S. Я можу реалізувати цю логіку обхідними шляхами, наприклад у бібліотеці повертати $result=break,
а потім робити перевірку @if $result=break then @break, проте хотілося б щось простіше :slight_smile:

Можно ли к функции @Map.SaveToTIF прикрутить pdf? pdf принетер установлен, но хочется автоматизировать некоторые процессы.

Сохранение в PDF - это, фактически, печать на первый принтер, из списка установленных, в имени которого содержится подстрока “PDF”. Сохранение результата печати - функция PDF-принтера, зависящая от конкретной реализии. В PDF24, например, можно сохранять так:
[attachment=0]PDF24Settings.png[/attachment]

Коли Digitals формує букви суміжників, то він, якщо мова Windows російська, бере чомусь російський алфавіт для експлікації замість українського. І якщо експлікацію формувати не програмою, а скриптами, то не вистачає функції, яка б визначала мову Windows, або повертала той самий алфавіт, який використовується системою, щоб співпадали букви на плані і в експлікації. Чи можна додати таку функцію?

Або ж зробіть алфавіт експлікації українським, чого він прив’язаний до мови Windows?

функция @DeleteFile вроде как некорректно работает. Она должна возвращать 0 если файл успешно удален. Но если файл, который я пытаюсь удалить (допустим pdf) открыт в какой-либо программе, то он не удаляется, а функция все равно возвращает 0.

Є шаблон кадастрового плану у форматі .дмт
Хочу зробити щоб угіддя підписувались автоматично, бо в мене виходить таке як на скріні.
Як це можливо зробити? Спробував додати у таблицю P[ID7000901], але певно, щось у команді не так.
Площі вірні, але підпис доводиться виправляти вручну

download/file.php?id=3392

Міцного здоров’ячка Розробникам!

На скільки я розумію не має такої функції в скриптах, яка перевіряє статус (натиснута чи не натиснута) кнопка. Це стосується усіх кнопок на закладці “Збір” - “Шаблон збору” і “Режим конструювання”.
Наприклад щоб в скрипті можна було використовувати:
;…
;перевірити статус кнопки включення режиму переміщення
$Status=@ExecuteMenu spbMove (або $Status=spbMove) повертає значення “0” чи “1” тобто “викл.” чи “вкл.”
@If $Status=0 then @ExecuteMenu spbMove (включає режим переміщення)
@If $Status=1 then @ExecuteMenu spbMove (виключає режим переміщення)
;…
Чи можливо таке реалізувати?

І ще одне побажання-запитання (можливо існує така функція, але я не можу знайти):
“+” або “-” на клавіатурі змінює масштаб об’єктів, що відображається на екрані. Питання чи є скриптова команда для цього? Не встановити певний масштаб (наприклад: popScale | 1:2000), а щось типу “popScale | +” чи “popScale | -” збільшити чи зменшити на один крок масштаб.

Такі функції є:
[ panTools.Збільшити ]
[ panTools.Зменшити ]

Функції, яка б повертала статус (натиснута/ненатиснута) кнопки справді не вистачає, підтримую.
Cтатус тої чи іншої кнопки можна отримати без спеціальної скриптової функції. Але тільки на момент відкриття програми.
Наприклад, потрібно знати, чи натиснути кнопка Шаблон збору - Прямокутник:

$Papka=@ProgramFolder
@Text.Load $Papka\Ged.ini
$I=@Text.IndexOf [FormGed.TemplateRectangle]
$I=$I+1
$Status=@Text.Line[$I]
$Status=@StringPart 2=$Status
@Dialog.Message $Status

От якби розробники Digitals могли винести інформацію про статус кнопок в реальному часі у якийсь файл типу Ged.ini, тоді можна було б отримати статус, який в процесі роботи.

Дякую!

Будемо чекати на реалізацію пропозицій!

Додано функцію @MenuState InternalName
Повертає 1 якщо пункт меню помічений або кнопка натиснута, інакше - 0. InternalName - внутрішнє ім’я компонента (пункту меню або кнопки)

Приклад використання:

;перевірка поточного вигляду $V=@MenuState ViewDraft @if $V=1 then @Text[1].Add Черновой вид $V=@MenuState ViewNormal @if $V=1 then @Text[1].Add Обычный вид $V=@MenuState ViewPageLayout @if $V=1 then @Text[1].Add Полный вид $V=@MenuState ViewPrintPreview @if $V=1 then @Text[1].Add Распечатка $V=@MenuState View3D @if $V=1 then @Text[1].Add Трехмерный вид $V=@MenuState ViewRotated @if $V=1 then @Text[1].Add Развернутый вид $V=@MenuState ViewThematic @if $V=1 then @Text[1].Add Тематический вид $V=@MenuState spbSynchronize @if $V=1 then @Text[1].Add Синхронизация точек - вкл. @if $V=0 then @Text[1].Add Синхронизация точек - выкл. $V=@MenuState spbShowCenters @if $V=1 then @Text[1].Add Показ центров - вкл. @if $V=0 then @Text[1].Add Показ центров - выкл. $Mess=@Text[1].Text @Dialog.Message $Mess ;

Ще приклад:

;гарантовано увімкнутий стан синхронізації точок після виконання скрипта $V=@MenuState spbSynchronize @if $V=0 then @ExecuteMenu spbSynchronize

Уже обновився - працює! Шикарно!!! Дуже вдячний за роботу і оперативність!

Возможно в Диджитал сделать функционал как в ворде офис ???

Доброго дня шановні розробники!
Чи існує функція яка б дала можливість повернути масштаб зображення? Якщо такої функції не існує то дуже велике прохання до Вас додати щось типу @Window.GetScale . Запит на функцію пов’язаний із бажанням контролювати рендеринг карти. При великій кількості обєктів карти із підписами, потрібно вимикати або вмикати різні види відображення - так як це можливо у всіх інших ГІС продуктах типу QGIS
Дякую за відповідь!

$WindowPosition=@Window.Position $ScreenScale=@StringPart 3 $WindowPosition @Dialog.Message Поточний масштаб відображення карти: $ScreenScale

Дякую!

Доброго вечора розробникам Digitals!
У скриптовому вікні наявна функція Вікно | Назва панелі інструментів. Вона не виконує жодних дій. Чи можливо додати до неї дію, яка б знімала та ставила галочку у меню Вікно навпроти даної панелі інструментів, тим самим, щоб появилась можливість скриптом приховувати відповідну панель інструментів.

Доброго!
В новій версії у відповідних пунктів меню Вікно з’явилось внутрішнє ім’я, яке генерується з назви tlb-файлу. По цьому імені можна перевіряти стан відповідної “галочки” у меню Вікно. Внутрішнє ім’я можна побачити у інформ. рядку вікна редагування скриптів.

;Відкриття панелі “Кроки”
$MS=@MenuState Toolbar7045293
@if $MS=0 then @ExecuteMenu Toolbar7045293

;Закриття панелі “Кроки”
$MS=@MenuState Toolbar7045293
@if $MS=1 then @ExecuteMenu Toolbar7045293

Використання команди Вікно | Назва_Панелі аналогічно @ExecuteMenu … , але залежить від мови інтерфейсу.

Дуже дякую за оновлення! Адже давненько загадували :slight_smile:

Дякую, Дмитре! Давно хотів реалізувати скрипт із використанням даної функції. Дивіться ВІДЕО
Скачати скрипт можна ТУТ.
Подивитися опис можна ТУТ.