Материал: Digitals

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Приложение D. Введение в Digitals Script

Передача параметров (1-й способ)

В коде вызываемого скрипта (подпрограммы) доступны специальные переменные с именами $PARAMETERS и $RESULT. Первая позволяет передать строку параметров в подпрограмму, а вторая передать результат обратно в вызывающий скрипт.

Переданную в подпрограмму строку парамеров можно разобрать на части с помощью функций для работы со строками, например, с помощью @StringPart.

По умолчанию функция @StringPart делит строку на части по пробелам. Таким образом можно передать в подпрограмму в одной строке числа, разделенные пробелом. Но @StringPart можно использовать и с другим разделителем. Допустим, вам нужно передать в подпрограмму пару переменных, содержащих пробелы. Давайте используем в качестве разделителя символ ~ (тильда):

$S1=Первая строка

$S2=Вторая строка

%Library.MyScript $S1~$S2

Тогда внутри подпрограммы мы можем разделить переданную строку на отдельные части таким образом:

$S1=@StringPart 1~$PARAMETERS $S2=@StringPart 2~$PARAMETERS

Для передачи скрипту длинных списков с неизвестным наперед количеством элементов можно использовать массив текстовых строк @Text. Например:

;Вызов скрипта

@Text.Add Первый элемент списка @Text.Add Второй элемент списка

;...

@Text.Add N-ый элемент списка $S=@Text.Text %Library.MyScript $S

;Текст скрипта

@Text.Text $PARAMETERS $C=@Text.Count

@If $C=0 @Break Список параметров пуст

;обработка строк списка параметров от 1 до $С через @Text.Lines[$I]

Передача результата из подпрограммы выполняется так: $RESULT=Возвращаемая_строка

Передача параметров (2-й способ)

Второй способ передачи параметров неофициальный. Дело в том, что для каждой карты в Digitals существуют глобальные переменные с именами @Map.TempInteger и @Map.TempString. Как понятно из названия, первая переменная может хранить число, а вторая строку. В строке, при желании, можно передать список значений неограниченной длины, воспользовавшись приемом, похожим на тот, что мы видели выше (передача строк с помощью массива @Text).

Пример использования:

;Скрипт 1

$A=ул. Первомайская $B=17

$C=кв. 32

; Добавляем значения трех переменных в текстовый список

Text.Add $A

Text.Add $B

346

Отладка скриптов

Text.Add $C

; Засылаем содержимого текстового списка "на хранение" в TempString карты $S=Text.Text

@Map.TempString $S

;Скрипт 2

;Возвращаем содержимое текстового списка из TempString $S=@Map.TempString

@Text.Text $S

;Читаем значения трех переменных из списка

$A=@Text.Lines[1] $B=@Text.Lines[2] $C=@Text.Lines[3]

Отладка скриптов

Написать скрипт правильно - задача не простая. Digitals не предлагает средств отладки скрипта в классическом для сред программирования понимании. Тем не менее, у вас есть возможность вести протокол скрипта, в который записываются метки времени, выполненные команды скрипта и соответсвующие им результаты. Читая протокол, можно отследить ход выполнения, правильность работы тех или иных команд, а также оценить быстродействие.

Чтобы включить протоколирование, начните скрипт командой @OpenLog, а завершите командой @CloseLog. В этом случае протокол будет записан в файл с именем Digitals Server Log.txt в программную папку. Если протокол по умолчанию вас не устраивает, то вы можете указать путь к файлу протокола через пробел после команды @CloseLog. Например:

@CloseLog d:\MyLog.txt

Дополнительная информация

Вы можете найти дополнительную информацию в следующих источниках:

Онлайн справка3 Digitals. Мы уже говорили о ней выше, напоминаем еще раз. Описание языка также доступно в формате PDF, вы можете скачать файл по этой ссылке4 и распечатать для изучения.

Ветка форума “Библиотека полезных скриптов5”. Здесь вы найдете множество примеров готовых скриптов, которые, возможно, захотите использовать в своей работе.

Ветка форума “Все про скрипти6”. Здесь имеется масса полезной информации из реальной практики разработки скриптов, которой делятся пользователи программы.

Статья7 Стаса Полищука “Работа со скриптами в Digitals”, которая описывает историю решения задачи централизованного накопления топосъемки в векторном формате с помощью несложных скриптов.

3http://www.geosystema.net/help/tag/skripty/#p2

4http://www.vingeo.com/update/rus/Digitals-scripts.pdf

5http://www.geosystema.net/forum/viewtopic.php?f=1&t=2539

6http://www.geosystema.net/forum/viewtopic.php?f=1&t=2809

7http://www.geosystema.net/digitals/?act=dig_script

347

Предметный

указатель

Символы

3D

здание шаблон сбора, 79 моделирование, 251 просмотр карты, 66, 249

A

AutoOrient, 338

D

Default layer, 129 Digitals

компоненты, 19 активные, 21 дополнительные, 335

лицензирование, 20 отладочная версия, 35

DipEdit, 268, 325

G

Geodesy, 37, 335

GeoTrans, 336 Google Maps, 224

O

OLE-объект, 90, 179

R

Reports, 304

T

Topotracer, 337

X

XMLChecker, 288

Б

библиотека условных знаков (см. условные знаки) сохранение во внешний файл, 161

блок, 175 псевдоним имени при экспорте

в DXF/DWG, 264

шаблон сбора, 79, 176

БТИ, 177, 333

буфер обмена, 88

правила вставки объектов, 88

В

выкопировка, 295, 315 вынос в натуру, 170

Г

Геодезическая сеть Украины, 224 горизонтали

построение, 247

Д

датум, 231 встроенный, 231

описание пользовательского, 233

З

засечки при геодезической съемке, 165

И

инструмент Автоинфо, 117

панель Инфо>Калькулятор, 111 панель Инфо>Список, 114 Перемещение, 85, 220

К

камера 3-DAS-1, 211, 216

карта автосохранение, 60 без шаблона, 61 внедренная, 177 вставка в карту, 177

зарамочное оформление, 183, 320 импорт/экспорт, 259 кадастровая, 271

как документ Digitals, 59

легенда (см. таблица условных обозначений) назначение системы координат, 63

(см. также датум) ограничение доступа к, 64 проверка качества, 194

с помощью сценария контроля, 201 рабочее окно, 30

управление, 67 разбивка на листы, 187, 321 разворот

всех объектов, 181 на экране, 66

растрово-векторная, 218 свойства, 62 сетка координат, 186 уклонов, 247 устройство, 125 шаблон, 61 “плоская”, 113

квазигеоид, 235

349

Предметный указатель

классификатор из чего состоит, 125

ключ защиты электронный, 21 колонка боковая, 32, 75 константа

CalculateRealTotals, 105 ControlScript, 201 CoordinateReportHeader, 294 DefaultNeighbor, 292 DocumentsFolder, 298 Explication, 291 ExplicationCode, 292 ExplicationParameter, 291 FixDEMNodes, 245 LetterA, 292 LocalDEMDistance, 245, 246 ScrollSelected, 67 ShapeLayerField, 266 ShowVolume, 256

текстовая для шаблонов документов, 148, 317 координата

географическая, 111, 191, 239 изменение в окне свойств, 97 округление, 230, 273 сетка, 186

Л

линия маркирование, 93 свойства, 95

структурная, характеризующая рельеф, 242, 244

М

маркирование, 93 маска

параметра, 148 для организации формы ввода, 149

для проверки заполнения, 149 при экспорте, 268 форматирования, 149

Менеджер параметров, 138 Менеджер подписей, 118 Менеджер слоев, 126 Менеджер условных знаков, 152 меню

Вид, 64, 66

Вид>Контроль узлов, 66, 194 Вид>Тематический, 193 Вид>Фон, 30

Вставка, 165, 177

Вставка>Блок триангуляции, 216 Вставка>Засечки, 165 Вставка>Номенклатурная рамка, 184 Вставка>Разбивка на листы, 187 Вставка>Растровое изображение, 218 Вставка>Сетка, 186 Вставка>Таблица, 189

Вставка>Условные обозначения, 186 главное, 29 Группа, 163

Карта>Генерализация, 181 Карта>Контроль, 201 Карта>Переопределить слои, 193 Карта>Проверка, 198 Карта>Система координат, 229, 239

Карта>Создать тематический вид, 193 Карта>Сравнить, 200 Карта>Статистика, 182 контекстное

параметра, 139 подписи, 121 слоя, 127 точки (узла), 93, 97

Окно>Просмотр файлов, 141 Окно>Статус слоев, 75 Орто, 221 Помощь, 33

Помощь>О программе, 21 Правка, 102 Правка>Найти, 115

Растр>Загрузка из Интернет, 224 Растр>Ориентирование, 210 Растр>Ориентирование>Архив, 213 Сервис, команды обрезки, 180 Сервис>Генератор отчетов, 315 Сервис>Графический фрагмент, 295 Сервис>Документы, 56, 315

Сервис>Документы>Текстовые константы, 316 Сервис>Настройка>закладка Вид, 67 Сервис>Настройка>закладка Сбор, 82 Сервис>Отчет, 254, 292 Сервис>Преобразовать, 172 Сервис>Преобразовать>Объекты в блок, 175 Файл, 59 Файл>Калибровка принтера, 322

Файл>Параметры страницы, 319 Файл>Печать, 319

ЦМР, 245

ЦМР, работа с горизонталями, 248 ЦМР>Переприсвоить высоты, 249 ЦМР>Профиль, 252 ЦМР>Сечение, 253 ЦМР>Фильтровать по ЦМР, 245

Н

навигатор применение при сборе, 83

режимы отображения, 68 настройки

записи обменных кадастровых файлов, 279 импорта/экспорта в SHP, 267

округления, 273 отображения карты, 67 режима стерео, 123 сбора, 82

350

Источник: https://studfile.net/preview/16666704/