Все объекты в слое можно помечать, выбрав нужный слой в Правка>Пометить>Слои. Результат, в общем, аналогичен манипуляции со слоями в ГИС, просто требует больше действий. Скажите, почему возникла такая необходимость, из-за неудобства управления порядком отображения слоев в Digitals или причина глубже?
Для меня в первую очередь, конечно, “из-за неудобства управления порядком отображения слоев в Digitals”. Да и хотелось бы оперативно видеть объекты каких слоев присутствуют на карте, какой у них цвет, тип, статус. Но это, наверное, практически не осуществимо. ![]()
А разве неудобства управления порядком отображения слоев не достаточно? ![]()
при желании разработчиков все возможно ))
К сожалению, не всегда наши желания совпадают с нашими возможностями. ![]()
И еще больше ваши желания не совпадают с возможностями разработчиков ![]()
Идея привязать порядок отрисовки к порядду слоев не укладывается в идеологию Digitals.
В Arcview, Mapinfo и т.д. слой равен отдельной таблице, которые отображаются в комплексе в одной карте (виде) поэтому играет роль их порядок. Digitals же более близок к модели Autocad, где файл карты (чертежа) представляет собой связаный список примитивов и место примитива в списке определяет порядок отрисовки.
Так что решение
вполне в духе идей заложеных в программу.
А вот насчет
надо видимо добавлять функцию аналогичную тому же Autocad переместить вперед/назад относительно другого указаного объекта карты.
Не совсем с вами согласна, Дмитрий.
Может конечно решение использования скриптов и в духе идеи Диджиталс… но его можно использовать, как по мне, только на малом количестве слоев. На большом количестве перемещение объекта относительно того-же конкретного слоя будет лучше, но тоже оставляет желать лучшего.
Строгая привязка порядка отображения объектов тоже имеет свои недостатки. Но можно ведь совместить приятное с полезным ![]()
Для первого “расставления” объектов слоев можно использовать строгую привязку, а если конкретные объекты нужно вынести на передний/задний план, уже возможно использование ручного перемещения.
И по сути это будет тот же скрипт, только он будет удобен в использовании, с понятным диалогом, в котором будет видно что и где находится.
Ведь подобный подход используется для вкладки Список, в которой порядок отображения объектов зависит от порядка описания слоев в менеджере. Почему бы аналогично не сделать и для всей карты?
Давайте еще раз.
Что же все таки нужно?
- отрисовывать в порядке появления слоев в Менеджере
или - отрисовывать в порядке, явно присвоеном конкретному слою, скажем в каком-то параметре (вариант предыдущего, в принципе).
В любом случае, если заставить дигитал строго следовать такому порядку отображения это выльется в неявное применение вышеописаного (но пока еще не написаного
) скрипта после каждой операции редактирования - в цикле выносить объекты очередного слоя на передний/задний план. Естественно, это не лучшим образом скажется на производительности.
Таким образом, если у вас есть какой-то свой, специфичный порядок отрисовки, лучше заскриптуйте его, с учетом своего шаблона и применяйте. Так будет логичнее.
Кроме того, обратите внимание на команду Карта - Сортировка, которая пытается наводить красоту как раз для случая порядка отображения.
Также: Правка - Пометить слои.. предъявляет для выбора доступные для правки слои, а Карта - Статистика позволяет увидеть раскладку объектов по слоям.
P.S. Для вкдадки Список порядок отображения зависит от иерархии объектов, не слоев. В случае одинаковой геометрии объектов порядок вложености определяется порядком в Менеджере.
И в Geodesy так же используются новые диалоги, при условии, что включена опция “Растягиваемые” диалоги (Ход|Параметры|Главная)
Спасибо, я как-то пропустил или это только в версии от 03.02 добавили ?
Давайте еще раз.
Что же все таки нужно?
- отрисовывать в порядке появления слоев в Менеджере
или- отрисовывать в порядке, явно присвоеном конкретному слою, скажем в каком-то параметре (вариант предыдущего, в принципе).
Думаю другий варіант більш зручний. Можна простіше змінювати порядок відображення, не перетягуючи шари в Менеджері.
надо видимо добавлять функцию аналогичную тому же Autocad переместить вперед/назад относительно другого указаного объекта карты.
Та і така функція була б не зайвою.
Опять-таки… может конечно такая возможность и есть, а я все-еще не умею ей пользоваться, но…
хотелось бы увидеть где-нибудь кнопочку/пункт меню для обновления программы (не загрузки из интернета новой версии, а действие, равносильно закрытию/открытию Ged.exe)
Объясняю для чего это нужно:
- при добавлении нового датума, например, чтобы он появился в списке датумов нужно переоткрыть программу, то же самое при его изменении, если не ошибаюсь.
- при добавлении нового документа DMT обновление списков документов так же происходит при повторном открытии программы.
а каждый раз открывать/закрывать вкладки/файлы и саму программу не очень-то удобно ![]()
а каждый раз открывать/закрывать вкладки/файлы и саму программу не очень-то удобно
Спешу огорчить, такой кнопочки нет. Каждый случай, требующий перезагрузки программы нужно рассматривать отдельно, и выносить исполняемый при этом код в отдельные процедуры с возможностью выполнения их не только при инициализации приложения, но и когда приложение запущено и имеются открытые карты.
Не такая уж и простая задача для некоторых случаев. Например, для случая добавления датума. Каждая карта содержит индекс СК, в которой она находится. Это номер секции из datums.ini, или 0 если СК не задана. Если в datums.ini добавится новая секция надо будет для всех открытых карт сдвинуть этот индекс, если секция была добавлена выше по списку.
Спешу огорчить, такой кнопочки нет. Каждый случай, требующий перезагрузки программы нужно рассматривать отдельно, и выносить исполняемый при этом код в отдельные процедуры с возможностью выполнения их не только при инициализации приложения, но и когда приложение запущено и имеются открытые карты.
Сразу вспомнилась реклама полуфабрикатов:
[size=85]
- …
- а потім сам, сам…[/size]
В общем, спасибо землячке за идею - реализовала скриптом
кто знает как объединить два скрипта в один - жду предложений ![]()
.rar (445 Bytes)
В общем, спасибо землячке за идею - реализовала скриптом
Всегда пожалуйста
Обращайся - если не мы друг другу - то кто же ![]()
@Text[N] - можно просто @Text - [N] используется для множествнных массивов - а поскольу у тебя он один - просто содержит множество строк - @Text.Line[n] так будет точнее. Но раз и так работает - значит ЗДОРОВО!!!
Думаю было бы не лишним для начинающих “программеров” реализовать возможность автоматического создания макросов - т.е. оператор выполняет определённые действия - а Диджиталс их записывает в виде последовательности команд - а уж потом править то, что Диджиталс уже записал - потому как в противном слуае ты всё равно проделываешь эти действия в Диджиталс - затем прописываешь их на бумаге, а уж потом реализовываешь эту последовательность в виде команд.
А поскольку - не всегда есть обновлённое описание всех команд и не все команды прописаны вообще - то было бы неплохо - если бы Диджиталс мог бы прописать эти команды сам. Это конечно из области фантастики - но многие ГИС такое делают - чем наше хуже?
Думаю было бы не лишним для начинающих “программеров” реализовать возможность автоматического создания макросов
Да, действительно, это бы сильно ускорило написание кода. А то бывает сидишь полдня и не можешь найти какой командой делается определенная функция.
Уважаемые разработчики, если это возможно, рассмотрите данное предложение!
При добалвении новой функции в скриптах было бы хорошо иметь номер билда начиная с котрого данная функция была введена - т.е. после описания самой функции добавить номер билда Диджиталса
.
Очень часто созданные на моей машине скрипты я передаю другим пользователям и слышу в ответ - “Не работает”. Я проверяю у себя - всё класс
. А оказывается - дело в разных версиях Диджиталса
. Так вот - есть такая функция - @Version
- таким образом внутри скрипта можно было вводить проверку на выполнение условия соответствия версий созданного скрипта и работающего Диджиталс - и тогда пользователь сможет видеть причину - почему у него не работает. Спасибо. ![]()
При добалвении новой функции в скриптах было бы хорошо иметь номер билда начиная с котрого данная функция была введена - т.е. после описания самой функции добавить номер билда Диджиталса
.
Очень часто созданные на моей машине скрипты я передаю другим пользователям и слышу в ответ - “Не работает”. Я проверяю у себя - всё класс. А оказывается - дело в разных версиях Диджиталса
. Так вот - есть такая функция - @Version
- таким образом внутри скрипта можно было вводить проверку на выполнение условия соответствия версий созданного скрипта и работающего Диджиталс - и тогда пользователь сможет видеть причину - почему у него не работает. Спасибо.
Я думаю, что хранить билд и проверять его в скрипте для каждой функции это лишние проблемы и для нас и для разработчиков скриптов. Достаточно через @Version получить версию Digitals на вашем компьютере, где скрипт гарантировано работает. И добавить в скрипт проверку, что версия не должна быть ниже этой.
Хотя и без этой проверки, старый Digitals выдаст ошибку “Неизвестная функция такая-то”.
Я думаю, что хранить билд и проверять его в скрипте для каждой функции это лишние проблемы и для нас и для разработчиков скриптов. Достаточно через @Version получить версию Digitals на вашем компьютере, где скрипт гарантировано работает. И добавить в скрипт проверку, что версия не должна быть ниже этой.
Хотя и без этой проверки, старый Digitals выдаст ошибку “Неизвестная функция такая-то”.
Вопрос в том - что не все Диджиталс обновлены до уровня моего Диджиталс
- т.е. я очу сказать, что, к примеру, у меня всегда самая свежая версия - и обновляю ключ я регулярно. А вот мои коллеги не хотят этого делать всегда (по разным причинам). И вот появляется необходимость сделать какой-то скрипт - и ты не знаешь - когда появилась данная функция - и будет ли она работать у моего коллеги - а играться каждый раз после разработки с разными версиями используя свой архив разных версий GED и искать в каком же данная функция уже не работает - слишком уж утомительное занятие
.
Так что я не вполне согласна с Ваши комментарием. ![]()