Головна » 2016 » Січень » 1 » Скриптові функції - Операції з точками
22:39
Скриптові функції - Операції з точками

Всі скриптові функції Digitals для зручності можна поділити на категорії, в залежності від того, які операції та над якими об'єктами виконує та чи інша функція.


Створення точок

@Map.AddNodes LayerNumber Mode - додає точки у вузли виділених об'єктів. Mode відповідає вибору у вікні Добавити вузли (1-7)

@Map.InsertPointsToSelectedPolygons Layer HorizStep VertStep Chess RotationAngle HorizShift VertShift - додає точки у виділені полігони

@Map.Object[N].AddPoint X Y [Z] - додає точки в список точок об'єкта

@Map.Object[N].Add X Y [Z] - додає в об'єкт точку і повертає її номер

@Map.Object[N].Insert PointIndex X Y [Z] - додає в об'єкт точку з координатами після точки за номером PointIndex і повертає її номер

@Map.Object[N].Count - повертає кількість точок в об'єкті

@PasteAddressDatabase PasteLayerIndex - створює точкові об'єкти по їх адресах на карті

Переміщення

@Map.Object[N].Point[N].[x/y/z] - повертає/змінює координати точки об'єкта

@Map.FitToSelected ObjectNumber [Tolerance] - суміщає точки об'єкта з точками виділеного об'єкта

@Map.Object[N].Delete StartPointIndex [StopPointIndex] - видаляє першу точку об'єкта

@Map.Object[N].StartFromPoint PointIndex - робить початковою PointIndex точку об'єкта

@Map.MovePoints -  переміщує передостанній позначений точковий об'єкт на останній позначений точковий об'єкт

Маркування

@Map.Object[N].SetPointMarked PointIndex 0/1 - маркує точку PointIndex, якщо задано 1 і знімає маркування, якщо задано 0

@Map.Selected.MarkPoints PointNumber1 [PointNumber2] | ALL | CLEAR - маркує точки виділеного об'єкта (за номерами, ALL-всі, CLEAR - очищує маркування)

@Map.Object[N].GetMarkedPointsCount - перевіряє кількість замаркованих точок об'єкта

@Map.Object[N].GetPointMarked PointIndex - повертає 1, якщо точка PointIndex замаркована, інакше - 0

Пошук

@Map.NearestPoint ObjNumber Range X Y Z - знаходить найближчу до точки XYZ точку заданого об'єкта в межах відстані Range (Range = 0 - немає обмеження по відстані).

@Map.Object[N].IndexOfPoint X Y - шукає точку об'єкта N, яка має координати X Y (повертає номер точки або 0 - якщо такої не знайдено). Координата Z ігнорується, навіть якщо така вказана

@Map.Object[N].Node PointNumber [Layer] - повертає номер пікета, який співпадає з точкою об'єкта

@Map.PointObject Layer/0 X Y [Z] - повертає номер точкового об'єкта із заданими координатами

Приклади

$X=@Map.Object[1].Point[1].x
$X=@Calc replace("$X",",",".")
$X=@DequoteText $X
$X=$X+100
@Dialog.Message $X


Примітка: жирним шрифтом (напр.@ActivateMap) виділена назва функції, похилим шрифтом (напр.Number) перемінна функції, у квадратних скобках (напр.[MapNumber]) необов'язкова перемінна, яку можна не вказувати.

 

Переглядів: 3728 | Додав: Микола | Рейтинг: 0.0/0
Всього коментарів: 6
avatar
5 sergystipov • 23:24, 04.12.2019 [Матеріал]
Добрый вечер, я новый пользователь Digitals и вот изучаю возможности. Существует ли функция как @МапНамбер только за основу взят не номер, а имя файла ? и как зафиксировать таблицу в какихто рамках, можно ей присвоить как-то координату нахождения на листе, или что-то подобное
avatar
0
6 Микола • 16:21, 05.12.2019 [Матеріал]
Добрий день.
Дивіться розділ Файли, папки та карти.
Взагалі в скриптах прийнято ідентифікувати об'єкти по номеру. А номер об'єкта чи карти легко отримати.
Наприклад, для отримання номера карти - $MapNumber=@ActivateMap (поверне номер активної карти).
Для отримання номера об'єкта - $N=@Map.SelectedObject (перед тим об'єкт потрібно виділити на карті).
Щодо "зафіксувати таблицю на місці", не розумію, а чого вона у вас може плавати? Таблиця завжди на одному місці стоїть. Є скриптові функції, які переміщують об'єкти в певну точку:
@Map.Object[$N].MoveTo X Y
[Z]
avatar
4 777 • 01:25, 24.03.2017 [Матеріал]
Можна ще мені на почту
avatar
3 sergio2009 • 09:25, 15.11.2016 [Матеріал]
Чогось не шукає

Цитата
$N=@Map.SelCount
 Я все правильно записав?
avatar
1 sergio2009 • 17:07, 14.11.2016 [Матеріал]
Як зробити пошук по координатах Х та У. Іноді дають відмову із земельного, типу "Угіддя, код 007.01, площа 0.0326: Помилка геометрії. (Самоперетин межі в точці полігона, яка описана двічі в координаті: (3312079.47 5461771.43))"
Як зробити скрипт, щоб уіввши ці координати програма показала мені точку??? Дякую!
avatar
0
2 Микола • 21:49, 14.11.2016 [Матеріал]
@OpenLog
$N=@Map.SelCount 
@If $N<1 @Break Виділіть об'єкт для пошуку в ньому точки за координатами 
$Dialog=@Dialog.Ask Введіть значення координат через пробіл Default=X Y Size=250 
$Dialog=@Calc replace("$Dialog",",","." wink
$Dialog=@DequoteText $Dialog 
$Dialog1=@StringPart 1 $Dialog 
$Dialog2=@StringPart 2 $Dialog 
$Obj=@Map.SelectedObject 
$PntCount=@Map.Object[$Obj].Count 
$NP=1 
$NObj=0 
@Map.DeselectAll 
%StartPoint 
$XY=@Map.Object[$Obj].Point[$NP] 
$XY=@Calc replace("$XY",",","." wink
$XY=@DequoteText $XY 
$X=@StringPart 1 $XY 
$Y=@StringPart 2 $XY 
@if $X<>$Dialog1 then @Goto %Next 
@if $Y<>$Dialog2 then @Goto %Next 
$NObj=@Map.NewObject ID70001 
@Map.Object[$NObj].Point[1] $XY 
@Map.Object[$NObj].Parameter[id7000100] знайдена точка 
@Map.RefreshObject $NObj 
@Map.SelectObject $NObj 
@Map.Selected.CreateCaptions 19 1 2 1 1 3 3 
%Next 
$NP=$NP+1 
@if $NP<=$PntCount then @Goto %StartPoint 
@if $NObj>0 then @Dialog.Message Точку знайдено та виділено на карті 
@if $NObj=0 then @Dialog.Message В об'єкті не знайдено точок із вказаними координатами
@CloseLog D:\Log.txt
Відповідь: смайл wink - це ) (дужка)
avatar