Сложение и вычитание координат

Доброго времени суток!
Пытаюсь написать скрипт:

; Получаем исходные данные $SourceObject=@Map.NextSelected $PointsCount=@Map.Object[$SourceObject].Count ; Стандартные значения $BorderLayerID=100001 $BorderHeigth=100,0 $BorderWidth=100,0 $CurrentPoint=1 ; Создаем слой для рамки @Map.Layers.Add $BorderLayerID 1 Секущая рамка ; Цикл по всем точкам объекта %PointCycle ; Получаем координаты исходной точки $CurrX=@Map.Object[$SourceObject].Point[$CurrentPoint].X $CurrY=@Map.Object[$SourceObject].Point[$CurrentPoint].Y ; Прибавляем нужные значения $x1=$CurrX+$BorderHeigth $y1=$CurrY $x2=$CurrX $y2=$CurrY+$BorderWidth $x3=$CurrX-$BorderHeigth $y3=$CurrY $x4=$CurrX $y4=$CurrY-$BorderWidth ; Создаем рамку вокруг точки $CutBorder=@Map.AddObject 0|0|ID$BorderLayerID|5|0 x1 y1 0|0 x2 y2 0|0 x3 y3 0|0 x4 y4 0|0 x1 y1 0 ; Выделяем и разворачиваем @Map.SelectObject $CutBorder @Map.Selected.Rotate 45 ; Превращаем в рамку карты @Map.FrameSelected ; Сохраняем в графический файл @Map.SaveToTIF 300 24 МЗ_$CurrentPoint.jpg ; Удалить рамку @Map.DeleteObject $CutBorder $CurrentPoint=$CurrentPoint+1 @If $CurrentPoint<$PointsCount then @Goto %PointCycle
Что он должен делать (пример): есть полигон, содержит 4 точки. Выделяю его, нажимаю кнопку скрипта > Вокруг каждой точки полигона, по очереди создается рамка (тоже полигон из 4 точек), разворачивается на 45 гр. > рамка превращается в рамку карты (желтую) > сохраняется в виде картинки с задаными параметрами.
Проблема в том, что выражение $x1=$CurrX+$BorderHeigth не складывает координаты (например, $x1=100,0+100,0=>$x1=200,0), а превращается в строку ($x1=100,0+100,0=>$x1=100,0+100,0). Естественно, потом при создании объекта ошибка:

Пожалуйста, помогите, кто знает! :confused:

Проблема в знаке-разделителе целой и дробной части. Варианты решения:

  1. Сменить системный разделитель с запятой на точку.
  2. Использовать замену символов, перед арифметическими операциями, см. функции %Library.ReplaceDot и %Library.ReplaceComma из дистрибутива.

Если можно, подробнее о применении этих функций? Например, при таком коде, они не дают результат (координаты выводятся с запятой):%Library.ReplaceDot $CurrObj=@Map.NextSelected $FirstPoint=@Map.Object[$CurrObj].Point[1] @Dialog.Message $FirstPointПытался писать и %Library.ReplaceDot и %Library.ReplaceComma, разницы нет. Такие функции конечно лучше, чем менять системный разделитель.
Что я делаю не так?
Кстати, на такой код: %Library.ReplaceComma $x1=100,0 $x2=100,0 $x3=$x1+$x2 @Dialog.Message $x3тоже не действует, складывает строки, а не значения. Работает только в таком виде:%Library.ReplaсеComma $x1=100.0 $x2=100.0 $x3=$x1+$x2 @Dialog.Message $x3и опять же %Library.ReplaceХ роли не сыграли.

$x1=100,0
$x2=100,0
$x1=%Library.ReplaceComma $x1
$x2=%Library.ReplaceComma $x2
$x3=$x1+$x2
@Dialog.Message $x3