ObjectLabel використовується поки що тільки у вікні зі списком об’єктів, знайдених в місці подвійного кліку. Раніше у цьому списку відображалась назва шару. Зараз відображається в цьому списку саме ObjectLabel, його значення вираховується по формулі, яка вказана у константі(Сервіс-Налаштування-Головна-Константи) з тим самим ім’ям. Скриптова функція @Map.ObjectLabel перепризначує поточній карті на поточний сеанс роботи значення ObjectLabel. Зручно задавати особливу формулу для ObjectLabel в обробнику події %Events.OnFileOpen. У цих формулах можна використати функцію P[*], яка повертає список значень усіх непустих неслужбових доступних параметрів.
Доброго дня розробникам.
Повертаюся знову до функції параметра SlopeDir, що повертає дирекційний кут напрямку схилу.
Не вирішена проблема розрахунку значення параметра з цією функцією Не можу знайти якоїсь залежності нульового результату. Ще раз даю скріншот[attachment=0]SlopeDir.png[/attachment]Скрипт відпрацьовує і… лог-файл свідчить про наявність значення 0
Питання:
чому значення параметра з функцією SlopeDir на вкладці “Інфо” завжди 0,00 в той час, як список значень параметра не містить 0,00?
як у скрипті дочекатися розрахунку параметра з функцією SlopeDir у всіх об’єктів?
чи є скриптова функція, яка розрахує значення параметра з його функцією?
для чого скриптова функція @Map.Object[N].CalculateFormula?
І нарешті, мо простіше додати скриптову функцію Map.Object[N].SlopeDir
Виправили у новій версії глюк, який пов’язаний з функцією SlopeDir. Раніше дещо випадковим чином поверталось значення 0,00.
Скриптова функція @Map.Object[N].CalculateFormula не допоможе, вона лише строкові функції розраховує, а функція SlopeDir - функція параметрів типу “Число з комою”.
Margin, на скільки я зрозумів, це відстань між кнопками. Тільки не розумію, чому чим більше там число - тим менший відступ?
Alpha - це якийсь типу лічильник, за який час панель сама закривається? Ставлю там 0, то при наведенні панель починає блимати і автоматично закриваєтсья за секунду.
Anchor - якір, який чомусь наявний тільки в одному скрипті - в тому, який при запуску програми закритий. Це якась прив’язка положення на екрані? Чи що?
Alpha - (не)прозорість панелі, та відповідно й кнопок на ній. 255 - непрозора панель, 0 - прозора. Спробували прибирати прозорість коли курсор в межах панелі, видно не все ще працює добре.
Margin - відступ дочірньої кнопки від краю батьківської панелі. Ctrl-Shift-C в Гуглохромі покаже картинку з співвідношенням Margin, Padding, Border.
Anchor визначає сторону прив’язки дочірнього об’єкта, коли батьківській змінює розмір. Не зрозуміло звідки в tlb-файлі воно з’явилось) розмір панелі не змінюється курсором миші.
Доброго дня.
Є одне питання: як найпростіше у скрипті обробки події %Events.OnChange визначити, чи було редаговано геометрію об’єкта (переміщено окремі точки), чи було переміщено об’єкт? Це ж мабуть треба звірити вектор зміщення центру об’єкта з вектором зміщення кожної точки об’єкта?
В зв’язку з вказаним, хочу спитати розробників: чи можна окремо додати обробку події переміщення об’єкта/об’єктів EventOnMove?
Чемно дякую, Миколо.
Однак записати координати треба ж у скрипті обробки події селектування об’єкта на рівні карти. Крім того, об’єкт може виявитися позначеним в результаті роботи кожного, з десятка інших скриптів. Дописувати у кожному?
Не годиться також - просто звірити списки. Порівнювати треба всі точки об’єкта: якщо знайдеться перша ж не змінена - значить тягнули окремі точки; якщо змінилися координати всіх точок - значить перетягнули об’єкт за центр.
Можна ще звірити два вектора переміщення: центра об’єкта і - будь якої зміненої точки. В такому випадку вектори переміщення ще й будувати як об’єкти прийдеться!
Поки чекатиму на відповідь розробників: чи можна окремо додати обробку події переміщення об’єкта/об’єктів EventOnMove або як у скрипті обробки події відрізнити переміщення від зміни геометрії?
Доброго дня. Підкажіть будь-ласка. Мається змінна $N в якій записаний кадастровий номер, яким чином з неї можна витягнути останні 4 цифри (типу copy ($N,19,4)). Дякую.
Добрый вечер! Подскажите новичку, так как не знаю откуда начать. С диджиталом начал работать как неделю. Сделал схему размещения, но не знаю как в неё “втулить” этот скрипт. Делаю как кнопку, в окне мне выдает проскланённое имя фамилию, но вот как это сделать дабы оно мне в тексте это сделало? Подскажите пожалуйста!
В шаблоні в текстовий блок вставте змінну $ROPNM, яку ви отримали скриптом.
А щоб шаблон перетворив її у значення згідно обмінника xml, використайте в тій самій кнопці такий код:
П.С. @Map.ReplaceTableVariables - сканує текст таблиць і замінює змінні їх значеннями
Замість назва шаблону поставте свою назву шаблону (має знаходитися в папці Digitals)
Проблема в том что после этого скрипта открывается ещё одно окно этого же шаблона и в него не вытягивает другие значения которые вытягивало до этого. А нельзя да бы при открытии шаблона сразу происходило склонение?
Простите под вечер немного натупил. Надо в первом же окне наживать кнопку.
Написал себе скрипт в эту же кнопку
$Pravo=@XML.XPath OwnershipInfo/Code @if $Pravo=100 then $Info=власність else $Info=оренду @Dialog.Message $Info
При указании в поле форма собствености 100 тянет значение “оренду”. Что я делаю не так?
Добрый день. Можно ли все-таки реализовать к скриптам комментарии, которые будут видны в панели скриптов, аналогично комментам для базовых функций. Может это будет спец коммент который начинается не с “;”, а например с #. Voha уже просил, я тоже присоединяюсь к его просьбе.
Доброї пори доби розробникам.
Є таке прохання: подивіться, будь-ласка, на скриптову функцію @Run ExeFilename
У збиранні від 19.01.21 - працює, а вже від 19.02.21 і до тепер - не працює.
Дуже дякую, за 40 нових скриптових функцій у збиранні 01.03.21. Є що досліджувати , особливо цікаві @Thread ScriptCommand, @ThreadActive Handle та @WaitForThread Handle.
Приклад, будь ласка, що саме перестало запускатись.
Повний шлях до егзешника вказаний? Чи є додатково параметри командної строки? Чи викликається функція для файлу зареєстрованого розширення? Містить шлях/ім’я пробіли?
Наступні строки - все різні випадки @Run C:\Program Files (x86)\Google\Chrome\Application\chrome.exe vinmap.net/ @Runvinmap.net/ @Run C:\Windows\System32\notepad.exe d:\readme.txt @Run notepad.exe d:\readme.txt @Run d:\readme.txt
Скрипт запускає обробку *.txt з папки в кількох потоках(максимальна одночасна кількість потоків визначена змінною $MaxThreadCount=5) та контролює завершення кожного. Для кожного потока викликається лише одна команда, для прикладу тут %Library.ProcessTxt $FileName
$WorkFolder=@Dialog.Ask Вкажіть папку з *.txt @If $WorkFolder= then @Break @Text[1].FolderList *.txt $WorkFolder
$FileCount=@Text[1].Count
$MaxThreadCount=5 @Text[2].Clear
$I=0
;
%Loop:
$ThCount=@Text[2].Count @if $ThCount=$MaxThreadCount then @Goto %CheckThreads
$J=$ThCount
%LoopAddThread
$J=$J+1 @if $I=$FileCount then @Goto %CheckThreads
$I=$I+1
$FileName=@Text[1].Line[$I]
$Handle=@Thread %Library.ProcessTxt $Filename @Text[2].Add $Handle @if $J<$MaxThreadCount then @Goto %LoopAddThread
;
%CheckThreads:
$ThCount=@Text[2].Count @If $ThCount=0 then @Goto %Finish
$J=$ThCount
%LoopThread
$Handle=@Text[2].Line[$J]
$IsActive=@ThreadActive $Handle @if $IsActive=0 then @Text[2].Delete $J
$J=$J-1 @if $J>0 then @Goto %LoopThread
%Finish: @if ($ThCount<>0) or ($I<$FileCount) then @Goto %Loop