Написание собственного сценария

Пример сценария

Несмотря на наличие готовых сценариев, по настоящему серьезных результатов можно добиться только используя свой, индивидуально “заточенный” под ваши нужды сценарий. Этот сценарий будет учитывать особенности используемого в вашей работе классификатора и отображать ваши специфические требования к составлению карты.

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

Cценарий содержит набор правил проверки карты. Каждое правило задает условие сравнения определенной пары объектов, выполнение которого является ошибкой.

Правила группируются по секциям сценария, определяющим тип проверки. Тип проверки соответствует некоторому топологическому отношению, например, проверке пересечения объектов, проверке вложенности объектов и тому подобным вариантам. Также предусмотрены секции для проверки содержимого параметров и наличия подписей.

Примечание

Поскольку сценарий контроля представляет собой текстовый файл, для его написания можно использовать обычный Блокнот. Однако удобнее редактировать текст сценария в окне Протокола ошибок, переключившись на закладку Редактировать сценарий. В этом окне реализована подсветка синтаксиса, поэтому читать такой сценарий намного легче.

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

В тексте сценария можно использовать комментарии. Таковыми считаются строки, начинающиеся с символа ; (точка с запятой). Например, в шапке универсального сценария Control.mcs в виде комментариев кратко даны сведения о принципах написания сценариев.

Общая схема составления правил следующая:

[Тип проверки] Описание проверки
Условие1 : Условие2 ; Строка описания ошибки

При этом:

Примечание

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

Рекомендуем также ознакомиться со статьей Дарьи Сагайдак “Модуль контроля топологии и параметров карты в Digitals” на сайте программы.

Таблица 7.3. Символы-заместители, применяемые в сценарии контроля карты

СимволОписание
FРамка (Frame)
PЛюбой точечный объект (Point)
LЛюбой линейный объект (Line)
AЛюбой пощадной объект (Area)
OЛюбой прочий объект: таблицы, изображения... (Other)
SЭтот же объект (Self)
NОбъект того же слоя
* (звездочка)Любой объект

Таблица 7.4. Операции, доступные в сценарии контроля карт при проверке параметров

СимволОписание
=Равно
>Больше
<Меньше
/Кратно
\Не кратно
<>Не равно
>=Больше или равно
<=Меньше или равно

Пример сценария

Рассмотрим несколько фрагментов описаний реальных правил контроля, взятых из сценариев Control.mcs и 2000.mcs.

$Квартал=10000,70004 1
$Участок=20000,70005
$Угодье=30000,70009
$Смежник=50000,70010

[Parameters] Ошибки параметров и размеров 2
A: 0<=0.01; Площадной объект %L1 имеет нулевую площадь 3
L: -8<2; Линейный объект %L1 состоит из одной точки
*: -10<0.05; Длина линии объекта меньше 5 см
44200200:119<>руїна; %L1 - ошибка в заполнении параметра %P - руїна 4

[Not Captions] Ошибки не вынесения подписей
44200000:13; %L1 - не вынесен на карту параметр %P
44200100,44200200:119; %L1 - не вынесен на карту параметр %P 5

[Not Inside] Ошибки не вложенности
$Участок:$Квартал; Объект %L1 не лежит внутри объекта %L2 6
$Угодье:$Участок; Объект %L1 не лежит внутри объекта %L2

[NEARSYMBOL 3.0]
71132400:N; %L1 - частое расположение (ближе 3.0 мм.) 7

1

Пример описания переменной для набора слоев (псевдонима).

2

Заголовок секции контроля параметров.

3

Проверка параметра 0 “Площадь” для всех площадных объектов. В случае значения площади, меньшего 0.01 кв.м. выводится ошибка с указанием имени слоя проверяемого объекта.

4

Проверка соответствия содержимого параметра с кодом 119 для объектов с кодом 44200200 тексту руїна.

5

Проверка наличия подписей для параметра с кодом 119 для объектов на слоях с кодами 44200100,44200200. Правило находится в секции контроля ошибок не вынесения подписей.

6

Проверка вложенности участков в квартал. Вместо явного указания кодов слоев проверяемых объектов, здесь, как видим, используются ранее определенные переменные.

7

Проверка близости расположения объектов с кодом 71132400 по отношению к объектам того же слоя.