Делаем программу удобнее. Советы и пожелания !!!

Все объекты в слое можно помечать, выбрав нужный слой в Правка>Пометить>Слои. Результат, в общем, аналогичен манипуляции со слоями в ГИС, просто требует больше действий. Скажите, почему возникла такая необходимость, из-за неудобства управления порядком отображения слоев в Digitals или причина глубже?

Для меня в первую очередь, конечно, “из-за неудобства управления порядком отображения слоев в Digitals”. Да и хотелось бы оперативно видеть объекты каких слоев присутствуют на карте, какой у них цвет, тип, статус. Но это, наверное, практически не осуществимо. :frowning:

А разве неудобства управления порядком отображения слоев не достаточно? :slight_smile:

при желании разработчиков все возможно ))

К сожалению, не всегда наши желания совпадают с нашими возможностями. :neutral_face:

И еще больше ваши желания не совпадают с возможностями разработчиков :slight_smile:

Идея привязать порядок отрисовки к порядду слоев не укладывается в идеологию Digitals.

В Arcview, Mapinfo и т.д. слой равен отдельной таблице, которые отображаются в комплексе в одной карте (виде) поэтому играет роль их порядок. Digitals же более близок к модели Autocad, где файл карты (чертежа) представляет собой связаный список примитивов и место примитива в списке определяет порядок отрисовки.

Так что решение

вполне в духе идей заложеных в программу.

А вот насчет

надо видимо добавлять функцию аналогичную тому же Autocad переместить вперед/назад относительно другого указаного объекта карты.

Не совсем с вами согласна, Дмитрий.

Может конечно решение использования скриптов и в духе идеи Диджиталс… но его можно использовать, как по мне, только на малом количестве слоев. На большом количестве перемещение объекта относительно того-же конкретного слоя будет лучше, но тоже оставляет желать лучшего.

Строгая привязка порядка отображения объектов тоже имеет свои недостатки. Но можно ведь совместить приятное с полезным :slight_smile:
Для первого “расставления” объектов слоев можно использовать строгую привязку, а если конкретные объекты нужно вынести на передний/задний план, уже возможно использование ручного перемещения.

И по сути это будет тот же скрипт, только он будет удобен в использовании, с понятным диалогом, в котором будет видно что и где находится.
Ведь подобный подход используется для вкладки Список, в которой порядок отображения объектов зависит от порядка описания слоев в менеджере. Почему бы аналогично не сделать и для всей карты?

Давайте еще раз. :slight_smile: Что же все таки нужно?

  • отрисовывать в порядке появления слоев в Менеджере
    или
  • отрисовывать в порядке, явно присвоеном конкретному слою, скажем в каком-то параметре (вариант предыдущего, в принципе).

В любом случае, если заставить дигитал строго следовать такому порядку отображения это выльется в неявное применение вышеописаного (но пока еще не написаного :slight_smile: ) скрипта после каждой операции редактирования - в цикле выносить объекты очередного слоя на передний/задний план. Естественно, это не лучшим образом скажется на производительности.

Таким образом, если у вас есть какой-то свой, специфичный порядок отрисовки, лучше заскриптуйте его, с учетом своего шаблона и применяйте. Так будет логичнее.

Кроме того, обратите внимание на команду Карта - Сортировка, которая пытается наводить красоту как раз для случая порядка отображения.
Также: Правка - Пометить слои.. предъявляет для выбора доступные для правки слои, а Карта - Статистика позволяет увидеть раскладку объектов по слоям.

P.S. Для вкдадки Список порядок отображения зависит от иерархии объектов, не слоев. В случае одинаковой геометрии объектов порядок вложености определяется порядком в Менеджере.

И в Geodesy так же используются новые диалоги, при условии, что включена опция “Растягиваемые” диалоги (Ход|Параметры|Главная)

Спасибо, я как-то пропустил или это только в версии от 03.02 добавили ?

Думаю другий варіант більш зручний. Можна простіше змінювати порядок відображення, не перетягуючи шари в Менеджері.

Та і така функція була б не зайвою.

Опять-таки… может конечно такая возможность и есть, а я все-еще не умею ей пользоваться, но…

хотелось бы увидеть где-нибудь кнопочку/пункт меню для обновления программы (не загрузки из интернета новой версии, а действие, равносильно закрытию/открытию Ged.exe)

Объясняю для чего это нужно:

  • при добавлении нового датума, например, чтобы он появился в списке датумов нужно переоткрыть программу, то же самое при его изменении, если не ошибаюсь.
  • при добавлении нового документа DMT обновление списков документов так же происходит при повторном открытии программы.

а каждый раз открывать/закрывать вкладки/файлы и саму программу не очень-то удобно :confused:

Спешу огорчить, такой кнопочки нет. Каждый случай, требующий перезагрузки программы нужно рассматривать отдельно, и выносить исполняемый при этом код в отдельные процедуры с возможностью выполнения их не только при инициализации приложения, но и когда приложение запущено и имеются открытые карты.

Не такая уж и простая задача для некоторых случаев. Например, для случая добавления датума. Каждая карта содержит индекс СК, в которой она находится. Это номер секции из datums.ini, или 0 если СК не задана. Если в datums.ini добавится новая секция надо будет для всех открытых карт сдвинуть этот индекс, если секция была добавлена выше по списку.

Сразу вспомнилась реклама полуфабрикатов:
[size=85]

  • а потім сам, сам…[/size]

В общем, спасибо землячке за идею - реализовала скриптом

кто знает как объединить два скрипта в один - жду предложений :slight_smile:
.rar (445 Bytes)

Всегда пожалуйста :wink: Обращайся - если не мы друг другу - то кто же :wink:
@Text[N] - можно просто @Text - [N] используется для множествнных массивов - а поскольу у тебя он один - просто содержит множество строк - @Text.Line[n] так будет точнее. Но раз и так работает - значит ЗДОРОВО!!!

Думаю было бы не лишним для начинающих “программеров” реализовать возможность автоматического создания макросов - т.е. оператор выполняет определённые действия - а Диджиталс их записывает в виде последовательности команд - а уж потом править то, что Диджиталс уже записал - потому как в противном слуае ты всё равно проделываешь эти действия в Диджиталс - затем прописываешь их на бумаге, а уж потом реализовываешь эту последовательность в виде команд.

А поскольку - не всегда есть обновлённое описание всех команд и не все команды прописаны вообще - то было бы неплохо - если бы Диджиталс мог бы прописать эти команды сам. Это конечно из области фантастики - но многие ГИС такое делают - чем наше хуже?

Да, действительно, это бы сильно ускорило написание кода. А то бывает сидишь полдня и не можешь найти какой командой делается определенная функция.
Уважаемые разработчики, если это возможно, рассмотрите данное предложение!

При добалвении новой функции в скриптах было бы хорошо иметь номер билда начиная с котрого данная функция была введена - т.е. после описания самой функции добавить номер билда Диджиталса :unamused: .
Очень часто созданные на моей машине скрипты я передаю другим пользователям и слышу в ответ - “Не работает”. Я проверяю у себя - всё класс :wink: . А оказывается - дело в разных версиях Диджиталса :frowning: . Так вот - есть такая функция - @Version :bulb: - таким образом внутри скрипта можно было вводить проверку на выполнение условия соответствия версий созданного скрипта и работающего Диджиталс - и тогда пользователь сможет видеть причину - почему у него не работает. Спасибо. :laughing:

Я думаю, что хранить билд и проверять его в скрипте для каждой функции это лишние проблемы и для нас и для разработчиков скриптов. Достаточно через @Version получить версию Digitals на вашем компьютере, где скрипт гарантировано работает. И добавить в скрипт проверку, что версия не должна быть ниже этой.

Хотя и без этой проверки, старый Digitals выдаст ошибку “Неизвестная функция такая-то”.

Вопрос в том - что не все Диджиталс обновлены до уровня моего Диджиталс :blush: - т.е. я очу сказать, что, к примеру, у меня всегда самая свежая версия - и обновляю ключ я регулярно. А вот мои коллеги не хотят этого делать всегда (по разным причинам). И вот появляется необходимость сделать какой-то скрипт - и ты не знаешь - когда появилась данная функция - и будет ли она работать у моего коллеги - а играться каждый раз после разработки с разными версиями используя свой архив разных версий GED и искать в каком же данная функция уже не работает - слишком уж утомительное занятие :cry: .
Так что я не вполне согласна с Ваши комментарием. :blush: