Вибачте - встряю в розмову. Питання по роботі з функцією @SendChars.
Виконана перед викликом діалогового вікна, @SendChars має забезпечити вибір значення в полі зі списком що розкривається. Чи можна вказати порядковий номер потрібного елемента списку, щоб елемент списку був вибраний? Чи можна вказати порядковий номер потрібного перемикача в групі перемикачів діалогового вікна?
Використовувати значення діалогового вікна вибрані кимось при попередньому користуванні програмою - повний непорядок . Якби можна було б написати в скрипті: @SendChars 21 @ExecuteMenu spbAddNodes 'Додати вузли в шарі 2 (2 - порядковий номер шару в випадаючому списку шарів) у всіх точках активного об’єкту (1 - перший перемикач в групі перемикачів діалогового вікна)
Тільки треба перед виконанням скрипта відкрити діалогове вікно ‘додати вузли’ і подивитись, чи фокус знаходиться на кнопці ‘ОК’
Звертаюсь до програмістів Digitals. Може краще потурбуватись про повернення значень діалогових вікон Digitals-а до значень на замовчування при руйнуванні діалогових вікон? Можливо це зменшить користувачам час на пошук функції (функцій) в якій можна безпосередньо вказати потрібні значення.
Будь-ласка, благаю вас, або складіть повний опис існуючих функцій з усією необхідною для іх використання інформацією, або додайте функцію (якщо такої ще немає), або тикніть мене носом як паршивого пса в таку функцію, бо я “забембався” тратити час на пошуки.
А, ну тогда используйте полигональный слой, полученный путем расчета эквидистант - это, так называемые, точки равного удаления от исходных полигональных объектов, или гладких кривых. Хотя гладкие кривые и не поддерживаются в векторной и тем более векторно-топологической модели, но их все еще можно аппроксимировать, используя линейную интерполяцию, что ведет, однако, к увеличению числа вершин, экспоненциально повышению точности аппроксимациии. После расчета эквидистант, выполните оверлейную операцию над объектами одного класса в заданном наборе данных и получите желаемый результат. Все эти операции, могут привести к нарушению связности в производном наборе данных, но топологизация, правда в ручном режиме, так автоматическое построение топологии ведет к созданию избыточных вершин планарного графа, позволит восстановить связность в системе дуг и узлов. А это как раз и есть линейно-узловая модель данных, который мы все пользуемся. Удачи.
P.S. Хотите получить понятный ответ, задайте понятный вопрос.
Управление диалоговыми окнами из скрипта - не лучшее решение. Лучше расширять набор функций, выполняющих операции напрямую. Какой функции вам не хватает, вставки точек в контур объекта Правка>Добавить точки?
На вкладці ‘Правка’ кнопка ’ Вузли’ дає можливість вставити об’єкти певного шару (стиль якого - одиночний знак) на кутах повороту ліній, або у вузлових точках, або і т.д. Якби вказати шар і місце вставки обєктів в функції:P. Не вистачає функції вставки об’єктів шару, порядковий номер або ID якого визначено параметром цієї функії, в точки іншого об’єкта.
Есть одна просьба. А нельзя ли дать возможность редактировать атрибуты шрифта в текстовой подписи, вставленной в условный знак. Поясню для чего. Хочу создать слой “Комуникации” с одним списковым параметром (Г-газопровод, В-водопровод…), при изменении значения которого на карте менялся бы условный знак и менялась бы буква и цвет буквы. Условный знак с нарисованной буквой меня не устраивает. Уважаемые модераторы, ответьте возможно ли такое?Спасибо за понимание.
В скрипты добавлена функция @Map.AddNodes LayerNumber Mode, которая добавляет точечные объекты в узлы помеченных в карте объектов.
LayerNumber - номер слоя в который будут добавлены точечные объекты. Mode - режим вставки точечных объектов. Соответствует номеру выбора режима вставки в диалоге Добавить точки на закладке Правка на правой панели. Где 1 соответствует режиму Все точки, а 7 режиму С заданным шагом вдоль конутра
На верхней панели инструментов находится окошко с текущим масштабом карты. Оно всегда неактивно, хотя напрашивается возможность вписания вручную произвольного масштаба.
Так же неплохо было бы продумать функцию “поместить в рамку карты”, т.е. смаштабировать объект из стандартного в размер рамки, при этом сохранив размер шрифтов.
Понятное дело, с 10000 500-ку не сделать просто так, полезут точечные объекты, необходимо будет использовать другой шаблон условных знаков, но в пределах 500-2000 все реально.
При перемещении вручную непривязанного растрового объекта сам объект исчезает, и остается только рамка. Можно ли сделать так, чтобы при перемещении растр не исчезал полностью, а только наполовину, или нужна возможность изменять вручную параметр прозрачности растра.
Параметр “полупрозрачный” на видимость при перемещении не влияет.
Насправді, зручніше, як на мене, буде тоді, коли скрипти, викликані командою, справно працюватимуть, а написати додатково два слова в префіксі - не проблема і не суттєво:lol:
Я от, прошу таке. Не знайшов можливості командою по TCP відобразити/приховати користувацьку панель інструментів. Якщо я правильно розумію, пункти меню виконуються в скриптах - без питань, а по TCP - функцією @ExecuteMenu InternalName. Припустимо треба забезпечити наявність панелі на моніторі при запуску Digitals, як тоді бути, підкажіть будь-ласка.
Прошу дати можливість вказувати або LayerNumber, або ID шару. Адже вже давно:
При роботі з Digitals-ом з зовнішньої програми, деколи необхідно активувати вікно зовнішньої програми з скрипта. Чи реально додати функцію @Window.Deactivate, яка б активувала вікно нище за вікно Digitals-а в Z-порядку (а ще краще активувала інше вікно за хендлом вікна)?