Не зовсім так, версїї з середини 2016 року до 06.08.18 не створювали зовсім цей тег.
Простіше зберігати з кодом 100, потім в блокноті прибрати 100 зі строки 100
Ще простіше - оновити програму.
![]()
P.S. Згадав, що бачив на форумi рекомендацiї про файл XML.csv. В результатi експерименту пiсля збереження пустого значення тег не пропадає. Розархiвуйте та скопiюйте прикрiплений нижче файл XML.csv в папку Digitals\Templates\
В Digitals реалізований алгоритм, який вміє створювати підписи не в геометричному центрі ділянки, а в іншому найширшому місці ділянки.
Чи можна це вивести в якусь скриптову функцію?
Бо інколи, коли ділянка буквою Г, геометричний центр ділянки виходить за межами контуру ділянки і скрипти, яким потрібний центр ділянки, припиняють роботу або некоректно її виконують. А була б функція, яка б повертала координати точки за принципом створення підписів, було б чудово.
А ще краще, якби скриптовою функцією можна було отримувати координати винесених підписів (чи хоча б одного), тоді можна було б перевіряти їх накладення на інші та реалізувати автоматичне розміщення підписів так, щоб без накладок.
@Map.Object[N].Centroid - точка в контурi (центроiд)
@Map.Object[N].Caption[-10] - позицiї пiдписiв довжин лiнiй вiдносно центру об’єкту, аналогiчно i @Map.Object[N].Caption[0] -позицiя пiдпису площi
Чи можна додати функцію @Map.TextSize.Rescale на зразок @Map.Symbols.Rescale?
Бiблiотека для замiни висоти тексту (перемноживши звичайну висоту на деякий коефiцiент).
@Dialog.WaitBox Множим на 2
%Library.TextRescale 2
@Dialog.WaitBox Дiлим на 2
%Library.TextRescale 0.5
скрипт, звичайно, хороший, і я схожий пробував писати, але вперся в один нюанс - скриптами не можливо змінити розмір текстових блоків. Розмір шрифту міняється, але текстові блоки (їх рамки) з’їжджають. І це навіть тоді, коли в текстових блоках висота і ширина колонок автоматичні.
І, до речі, якщо змінювати масштаб шаблону, то міняти розмір підписів, які були на карті винесені та змінені в розмірі вручну (не через розміри шрифту в параметрах) є зайвим, бо такі підписи якимсь чином в програмі самі міняють розміри при зміні масштабу. Правда, вони, крім того, трохи з’їжджають в сторону.
Як виявилося, для збереження усіх атрибутів карти при зміні машстабу, крім функцій @Map.Symbols.Rescale, @Map.TextSize.Rescale ще треба і @Map.LineWigth.Rescale. Причому, тут треба буде якийсь спеціальний коефіцієнт з округленням до десяти, бо товщина ліній не підтримує цифри, які не кратні 10 без дробу. А враховуючи те, що товщина ліній зазвичай є невеликою (10-30 мм), то я не розумію, як розробникам Digitals, при зміні масштабу та використанні галочок “Зберегти розміри підпису” та “Фіксувати розміри умовних знаків” вдалося реалізувати стабільність усіх цих величин (в т.ч. і товщин ліній та розмірів табличок). Адже, округлюючи ту ж товщину ліній до десятикруглого числа, при кількаразовому використанні інших масштабів це мало б приводити рано чи пізно до викривлення. Хоч викривлень не спостерігав. В чому секрет? Чи на програмному (не скриптовому рівні) це реалізовано за якимось зовсім іншим алгоритмом?
Тому, враховуючи вищеописане, забираю назад своє прохання про функцію @Map.TextSize.Rescale. Натомість прошу додати функцію, яку вже пропонував раніше
Необхідність даної функцію пов’язана з тим, що міняючи масштаб dmt-шаблону через
@SendChars n
[ panTools.Властивості карти ]
якщо забути зняти галочку “Фіксувати УЗ”, то умовні знаки деформуються.
а доступу скриптами до цієї галочки, щоб її перед тим автоматично знімати, також немає.
Доброго дня шановним розробникам.
Щодо функціональних можливостей Digitals хочу спитати наступне:
2. Перевірка наявності зазорів між полігональними (вкладеними у зовнішній полігон) об’єктами займає багато часу (меню Карта > Перевірка > Топологія полігонів - близько 7 хвилин на одній карті. В той же час, після формування списку об’єктів карти (вкладка “Список” на правій панелі Digitals) з “аналізом карти” протягом якихось 20 секунд, отримуємо можливість візуально визначити: лежить точка полігонального об’єкта у вузлі з іншою точкою сусіднього полігона, чи не лежить у вузлі з будь-якою точкою іншого сусіднього полігонального об’єкта. Тобто: визначення кількості точок сусідніх об’єктів у вузлі вже реалізовано у вкладці “Список”. Цілком логічно, з вказаного, виникає питання: чому немає функції сценарію контролю, яка б зі швидкістю аналізу карти знаходила помилки "точка об’єкта із вказаного переліку шарів не лежить у вузлі з точкою іншого об’єкта в тому ж, або іншому переліку шарів
Таким чином, можуть виконуватись одразу декілька перевірок: на внутрішні зазори; на зовнішні зазори; на вихід внутрішнього полігона за межі зовнішнього полігона; на взаємне часткове перекриття внутрішніх полігонів ![]()
- Отримати у скрипті обробки подій OnAdd, OnChange, OnDelete, OnJoin, OnMerge перелік номерів усіх вставлених в карту з буфера обміну, змінених внаслідок перетягування в режимі синхронізації вузлів, видалених, з’єднаних або об’єднаних кнопкою на правій панелі, об’єктів хотілося б, наприклад, скриптовою функцією @EventObjects, бо @EventObject повертає в скрипті обробки події: OnAdd - номер активного після вставки об’єкта серед декількох вставлених з буфера; OnChange - номер активного об’єкта серед декількох, які зазнали змін (наприклад в результаті перетягування вузла); OnDelete - номер активного об’єкта серед позначених перед видаленням; OnJoin або OnMerge - номер об’єкта, створеного в результаті з’єднання або об’єднання усіх позначених.
Найперше цікавить отримання переліку номерів об’єктів, геометрія яких була змінена шляхом перетягування точки активного об’єкта при включеному режимі “синхронізації вузлів” (затиснута “скрепка”). От, наприклад: скрипт обробки події OnLayerChange, якщо для зміни шару було позначено декілька об’єктів, запускається для кожного об’єкта з позначених, а @EventObject повертає при кожній “ітерації скрипта” номер чергового позначеного об’єкта. Можливий і такий варіант, але краще, мабуть, додати функцію @EventObjects
Не сподіваюсь на швидку реалізацію, однак хотілося би знати: прийнятні запити, чи ні?
Наперед вдячний.
У версії Digitals з 31.10.18 додано скриптові функції:
- @EventObjectsList “Повертає список номерів об’єктів, які були задіяні в операції, що викликала подію: OnAdd, OnDelete, OnParametersChange, OnChange, OnLayerChange.”;
- @IterateSelectedObjects Scriptname “Повторює скрипт Scriptname для кожного з позначених об’єктів карти (номер чергового об’єкта передається як параметр скрипта Scriptname).”
Значиться довідку для скриптової функції @EventObject можна розуміти так: “Повертає номер активного об’єкта - останнього позначеного серед тих, операція з якими викликала подію: OnSelect, OnCollect та ін.”
Доброго дня.
Підкажіть, будь-ласка, хто знає: є в Digitals можливість відображення карти на ПККУ в онлайн режимі?
Якщо таку справу можна вирішити режимним скриптом, тоді хочу підтримати запит
було б добре, якби панель кнопок з Collect.tlb, яка викликається пробілом при зборі об’єкта, автоматично закривалася після нажимання кнопки, як і при виборі шару для збору
Добрий день, розробники Digitals!
Чи можливо додати скриптову функцію @Compile HardlockNumber ScriptName?
Потрібно для масової компіляції скрипу під ключ у випадку оновлення скрипту.
В п’ятницю додали можливість задавати декілька ключів (розділених пробілом) при компіляції, скрипт працює на кожному з них. Така можливість влаштує?
Та ні, це не те, що я мав на увазі. Потрібно скомпілювати скрипт під багато різних ключів так, щоб на кожний ключ окремо. Щоб не сидіти пів години і клацати мишкою, комплілюючи кожний ключ вручну.
Тобто, цикл скрипту буде компілювати, пененосити скомпільований скрипт у іншу папку (щоб наступна компіляція не затерла попередній файл) і знову компілювати наступний. Кожен скрипт має компілюватися під окремий ключ.
а чому? Один скрипт під всі ключі на яких скрипт працює. Достатньо зручно і рівень захисту зростає. ![]()
а чому? Один скрипт під всі ключі на яких скрипт працює. Достатньо зручно і рівень захисту зростає.
а можна так одночасно під 100 чи 200 ключів? Якщо можна - то тоді згідний.
Доброго дня, можливо додати функцію захисту dmt-шаблонів таким чином як з компіляцією скриптов під ключ??? Дуже необхідна функція.
потрібна функція вибору ділянки в центрі якої знаходиться маркер http://prntscr.com/mk0ytm
- Дуже треба @Map.SaveToFTP
а чому? Один скрипт під всі ключі на яких скрипт працює. Достатньо зручно і рівень захисту зростає.
така компіляція доступна тільки не більше як на 12 ключів. І коли в тебе десятки користувачів і ти хоч щось оновити у скрипті, то потім треба сидіти і як ідіот копіювати-вставляти, копіювати-вставляти. Все вручну, бо нема можливості це автоматизувати через відсутність скриптами доступу до контекстного меню користувацьких панелей інструментів. Такий доступ дав би можливість не тільки автоматично компілювати скрипти, але й приховувати кнопками на основній панелі інші другорядні панелі (вибираючи пункт “Заголовок”).