Все про скрипти

Доброго дня.
Маємо серйозну проблему обробки події %Events.OnCollect (закінчення збору об’єкта) рівня карти: помилка[attachment=1]Demo.JPG[/attachment]виникає лише тоді, коли завершення збору полігонального об’єкта відбувається автоматично (наприклад - по існуючим межам внутрішнього контуру складного полігона). В такому випадку створення об’єкта супроводжується операціями AligningObject, DisAsseble…, Assemble… (див. відео).
Вочевидь, проблема у конфлікті виконання вказаних операцій і стартуванні скрипта обробки події.

Дуже прошу розробників подивитись. Інакше прийдеться обмежувати виконавців: ПОЛІГОНИ ВСЕРЕДИНІ ВНУТРІШНЬОГО КОНТУРУ СКЛАДНОГО ПОЛІГОНА ЗБИРАТИ ЛИШЕ В ШАБЛОНІ ЗБОРУ “ПОЛІЛІНІЯ” :confused:

Розробники Digitals, зніміть, будь-ласка, обмеження на кількість рядків у скрипті 2048, бо вже все, що можливо виніс в зовнішні скрипти, і все одно не влазиться основний скрипт. Видає помилку.

В новій версії може бути до 8192 строк в скрипті, спробуйте.

не очікував так швидко)
супер! дякую!

Добрий день, шановні. Якщо не важко то допоможіть. Є dmf з великою кількістю ін4 і є список кадастрових у excel. необхідно знайти всі по черзі ділянки і виконати сервіс-документи-кадастровий план-друк.

Скрипт для виділення ділянок по списку кадастрових номерів - digitals.at.ua/load/vidilennja_d … v/1-1-0-14

Подскажите функцию которая выполняет команду “Добавить узлы”, и еще как менять размер кнопок скриптов?

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

у папці Digitals по назві знайдіть потрібну панель інструментів. Це файли з розширенням tlb. Відкрийте такий файл блокнотом. Він має починатися з рядків типу цього:
ShowHeader=0
Left=1182
Top=58
Width=30
Height=30
Visible=1
Names=

де
Left - позиція на екрані від від лівого краю
Top - позиція на екрані згори
Width - ширина панелі інструментів
Height - висота панелі інструментів
Visible - чи панель активна (видима)
Names - назва.

Відредагуйте пункти Width та Height

Для того, щоб всі наступні нові панелі інструментів створювалися з розмірами, які ви хочете, зайдіть в Сервіс-Налаштування-Загальне. Знайдіть у вікні констант:
ToolbarSize=30
Задайте потрібне значення.

$Name=@Map.Filename
$Path=@GetFilePath $Name
$Kadnum=@Map.XMLCadastralNumber
@Dialog.SaveFile *.xml $Path$Kadnum

Щось не хоче зберігати, не підкажете в чому може бути причина

Який формат кадастрового номера? З двокрапкою?

@Dialog.SaveFile Filter Filename викликає стандартний діалог збереження (створення) файлу, повертаючи певній перемінній шлях до файлу.

$Name=@Map.Filename
$Path=@GetFilePath $Name
$Kadnum=@Map.XMLCadastralNumber
$FN=@Dialog.SaveFile *.xml $Path$Kadnum
@if $FN= then @Break
@Map.SaveToFile $FN

Допоможіть створити скрипт який би виділяв 3 найближчі обєкти відповідно до поміченого. :exclamation: І якщо це можливо: щоб помічались обєкти певного шару.

  1. Помітити об’єкти певного шару @Map.selectlayer
  2. Пошук мінімальної довжини між об’єктами @Map.minobjectdistance
    Сам алгоритм - цикл з пошуком довжин+запис в текстовий масив (довжина ID_об’єкту+сортування=перші три об’єкти і є найближчими до поміченого

Планую за допомогою скрипта розбити лінію на рівні відрізки. Яка функція відповідає за це?

Якщо на двi лiнiї i скриптом, тодi так$Sel=@Map.NextSelected 0 $P1=@Map.Object[$Sel].Point[1] $P1=%Library.ReplaceComma $P1 $P2=@Map.Object[$Sel].Point[2] $P2=%Library.ReplaceComma $P2 ; $X1=@StringPart 1 $P1 $Y1=@StringPart 2 $P1 ; $X2=@StringPart 1 $P2 $Y2=@StringPart 2 $P2 ; $X3=($X1+$X2)/2 $Y3=($Y1+$Y2)/2 @Map.Object[$Sel].Insert 1 $X3 $Y3 ;

Дякую

Чи є можливість вивести вікно для вводу тексту як @Dialog.Ask але з багатьма полями і поєднати з функцією @Dialog.Select. щоб все було в одному вікні?
Чи є функція яка викликає вікно для вводу параметрів, наприклад «інформація про власника або користувача земельної ділянки»?
Дякую.

Можна за допомогою ф-цiї @Dialog.EditParameter вивести щось подiбне (в параметрi задайте потрiбний формат пiдписiв)

$Obj=@Map.NextSelected 0 $Prm=@Map.Parameters.FindByID 41 @Dialog.EditParameter $Prm

Я роблю так, як написав Руслан вище. Але тут ще обов’язково треба перед тим задавати параметру маску. Виглядає воно ось так:

$V=@Calc Char(124)
$V=@DequoteText $V
@Map.DeselectAll
$N=@Map.NewObject ID10000
@Map.Object[$N].Point[1] 100 100
@Map.RefreshObject $N
@Map.SelectObject $N
@SelectTab 3
;створюємо параметр ID12345 при його відсутності
$Par=@Map.Parameters.Get ID12345
@if $Par= then @Map.Parameters.Add 12345 5 Вибір чогось
;добавляємо параметр ID12345 в список доступних шару ІН4 Квартал
$ParDil=@Map.Layers.GetValidParameters ID12345
@Map.Layers.SetValidParameters ID10000 $ParDil ID12345
@Map.Parameters.Mask ID12345 =Значення1,=Значення2,*=ще щось@ Пункт1$V Пункт2$V Ще щось
@Dialog.EditParameter ID12345
$AVse=@Map.Object[$N].Parameter[ID12345]
$Z1=@StringPart 1,$AVse
$Z2=@StringPart 2,$AVse
$Z3=@StringPart 3,$AVse
@Dialog.Message $Z1|$Z2|$Z3

Суть цього коду в тому, що створюється новий об’єкт ІН4 Квартал, в ньому створюється новий параметр, задається його маска і викликається редагування цього параметра. Маскою задається кількість і значення окремих полів.

Але цей метод має ряд мінусів. Тому я просив в розробників про схоже діалогове вікно з можливістю вибрати декілька варіантів чи щось типу цього.

Не зрозумів, що ви маєте на увазі під “поєднати з функцією @Dialog.Select”? Для якої це задачі таке потрібно?

Функція, яка викликає вікно для вводу параметрів - це якраз @Dialog.EditParameter. Але такі складні вікна параметрів, доступ до яких йде через інші загальніші вона не викличе. Для цього можна використовувати звичайну функцію @Dialog.Ask Text, а потім іншими спеціальними функціями отримане значення вписувати в теги в потрібне місце.

Дякую за відповіді.

Пробую створити свій скрипт. Було б не погано щоб була така можливість поєднати в одному вікні, щось наприклад такого
[attachment=0]exemple.jpg[/attachment]
Ще виникло декілька запитань :slight_smile:
1 . Як намалювати рамку реквізитів ОФ скриптами?
2. Є якась можливість експортувати дані заповненого xml з Digitals в Excel? Щоб певні ячейки заповнювалися даними. У нас вся документація формується в Excel