Головна » Файли » Готові скрипти

Скрипт, який визначає, в якій стороні світу знаходиться межовий знак
[ Викачати з сервера (4.1 Kb) ] 08.12.2014, 02:02

 

;Перевірка наявності відкритої карти
$CountMap=@MapCount
@If $CountMap=0 then @Break Для роботи скрипту потрібен IN4
$N=@Map.Count
@If $N=0 @Break На карті немає об'єктів
@Map.DeselectAll
@Map.SelectLayer ID20000
$N=@Map.SelCount
@If $N=0 @Break На карті немає ділянок
@Map.Selected.CreateCaptions -9 0 2 1 1 2 3
@Map.Copy
$SelObj=@Map.SelectedObject
$Range=@Map.Object[$SelObj].GetMinMax
$MinX=@StringPart 1 $Range
$MinX=%Library.ReplaceComma $MinX
$MinX=$MinX-1
$MaxX=@StringPart 4 $Range
$MaxX=%Library.ReplaceComma $MaxX
$MaxX=$MaxX+1
$CntrX=@Calc ($MinX+$MaxX)/2
$MinY=@StringPart 2 $Range
$MinY=%Library.ReplaceComma $MinY
$MinY=$MinY-1
$MaxY=@StringPart 5 $Range
$MaxY=%Library.ReplaceComma $MaxY
$MaxY=$MaxY+1
$CntrY=@Calc ($MinY+$MaxY)/2
;
$Ser1X=@Calc ($MaxX-$MinX)/3+$MinX
$Ser2X=@Calc ($MaxX-$MinX)/3+$Ser1X
$Ser1Y=@Calc ($MaxY-$MinY)/3+$MinY
$Ser2Y=@Calc ($MaxY-$MinY)/3+$Ser1Y
;
@FileNew Визначення сторони світу
@Map.Layers.SetAttributes 2 0 0 16777215 30 1 16777215 0 Courier_New 80 0 -2147483640
$P1=@Map.NewObject ID10000
@Map.Object[$P1].AddPoint $CntrX $CntrY
@Map.Object[$P1].AddPoint $Ser2X $MinY
@Map.Object[$P1].AddPoint $MaxX $MinY
@Map.Object[$P1].AddPoint $MaxX $Ser1Y
@Map.Object[$P1].AddPoint $CntrX $CntrY
@Map.Object[$P1].Delete 1
;
$P2=@Map.NewObject ID10000
@Map.Object[$P2].AddPoint $CntrX $CntrY
@Map.Object[$P2].AddPoint $MaxX $Ser1Y
@Map.Object[$P2].AddPoint $MaxX $Ser2Y
@Map.Object[$P2].AddPoint $CntrX $CntrY
@Map.Object[$P2].Delete 1
;
$P3=@Map.NewObject ID10000
@Map.Object[$P3].AddPoint $CntrX $CntrY
@Map.Object[$P3].AddPoint $MaxX $Ser2Y
@Map.Object[$P3].AddPoint $MaxX $MaxY
@Map.Object[$P3].AddPoint $Ser2X $MaxY
@Map.Object[$P3].AddPoint $CntrX $CntrY
@Map.Object[$P3].Delete 1
;
$P4=@Map.NewObject ID10000
@Map.Object[$P4].AddPoint $CntrX $CntrY
@Map.Object[$P4].AddPoint $Ser2X $MaxY
@Map.Object[$P4].AddPoint $Ser1X $MaxY
@Map.Object[$P4].AddPoint $CntrX $CntrY
@Map.Object[$P4].Delete 1
;
$P5=@Map.NewObject ID10000
@Map.Object[$P5].AddPoint $CntrX $CntrY
@Map.Object[$P5].AddPoint $Ser1X $MaxY
@Map.Object[$P5].AddPoint $MinX $MaxY
@Map.Object[$P5].AddPoint $MinX $Ser2Y
@Map.Object[$P5].AddPoint $CntrX $CntrY
@Map.Object[$P5].Delete 1
;
$P6=@Map.NewObject ID10000
@Map.Object[$P6].AddPoint $CntrX $CntrY
@Map.Object[$P6].AddPoint $MinX $Ser2Y
@Map.Object[$P6].AddPoint $MinX $Ser1Y
@Map.Object[$P6].AddPoint $CntrX $CntrY
@Map.Object[$P6].Delete 1
;
$P7=@Map.NewObject ID10000
@Map.Object[$P7].AddPoint $CntrX $CntrY
@Map.Object[$P7].AddPoint $MinX $Ser1Y
@Map.Object[$P7].AddPoint $MinX $MinY
@Map.Object[$P7].AddPoint $Ser1X $MinY
@Map.Object[$P7].AddPoint $CntrX $CntrY
@Map.Object[$P7].Delete 1
;
$P8=@Map.NewObject ID10000
@Map.Object[$P8].AddPoint $CntrX $CntrY
@Map.Object[$P8].AddPoint $Ser1X $MinY
@Map.Object[$P8].AddPoint $Ser2X $MinY
@Map.Object[$P8].AddPoint $CntrX $CntrY
@Map.Object[$P8].Delete 1
@Window.Refresh
@Map.Paste
@Map.SelectLayer ID20000
@Map.AddNodes 30
@Map.DeselectAll
Перевірка | Очистить удаленные объекты
@Map.SelectAll
Вигляд | Показати позначені
$MC=@Map.Count
$N=0
@Map.DeselectAll
%Pochatok
$N=$N+1
$LID=@Map.Object[$N].LayerID
@If ($LID=10000) then @Goto %Next
$NomerT=@Map.Object[$N].Parameter[91]
@Map.SelectObject $N
@Map.Selected.Cut
@Map.Paste
$ParentObj=@Map.ParentObject $N
@if $ParentObj=$P1 then @Dialog.Message Точка $NomerT знаходиться на північному заході ділянки
@if $ParentObj=$P2 then @Dialog.Message Точка $NomerT знаходиться на півночі ділянки
@if $ParentObj=$P3 then @Dialog.Message Точка $NomerT знаходиться на північному сході ділянки
@if $ParentObj=$P4 then @Dialog.Message Точка $NomerT знаходиться на сході ділянки
@if $ParentObj=$P5 then @Dialog.Message Точка $NomerT знаходиться на південному сході ділянки
@if $ParentObj=$P6 then @Dialog.Message Точка $NomerT знаходиться на півдні ділянки
@if $ParentObj=$P7 then @Dialog.Message Точка $NomerT знаходиться на південному заході ділянки
@if $ParentObj=$P8 then @Dialog.Message Точка $NomerT знаходиться на заході ділянки
@Map.DeselectAll
%Next
@if $N<$MC then @Goto %Pochatok

Категорія: Готові скрипти | Додав: Микола
Переглядів: 1779 | Завантажень: 279 | Рейтинг: 5.0/1
Всього коментарів: 0
avatar