|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
25.01.2009, 03:05 | #1 | |
Автоматическое назначение цветов по градиенту на комплект слоев
Екатеринбург
Регистрация: 14.03.2008
Сообщений: 678
|
||
Просмотров: 5729
|
|
||||
Проектировщик СС Регистрация: 24.06.2008
Минск
Сообщений: 134
|
Коряво наверное, но работает.
Код:
Внимание программа изменяет цвета всех слоев формата "###*", включая замороженные и заблокированные, кроме тех, для которых указан цвет отличный от белого. Последний раз редактировалось Donhuan, 26.01.2009 в 00:51. |
|||
|
||||
Сначала это все на сайте NASA было, потом несколько зеркал появилось. Качать можно здесь http://ftp.ecc.u-tokyo.ac.jp/GIS/e0s...SRTM3/Eurasia/или здесь http://ftp.ecc.u-tokyo.ac.jp/GIS/e0s...SRTM3/Eurasia/. Неполная коллекция лежит еще и здесь http://gps.uralstars.com/srtm/- по скорости значительно быстрее первых двух.
Эти файлы открываются и обрабатываются в GlobalMapper http://www.globalmapper.com/ |
||||
|
||||
Проектировщик СС Регистрация: 24.06.2008
Минск
Сообщений: 134
|
Спасибо за ссылки.
В проге изначально считается, что имена начинаются с цифр. Отбор слоев осуществляется в этом куске кода: Код:
Можешь либо почитать в хелпе про формат шаблона данной функции, либо описать все возможные имена слоев, которые надо обрабатывать и я модернизирую прогу. Вообще лучше наверное будет сделать, чтобы передавать шаблон как параметр в функцию. Последний раз редактировалось Donhuan, 26.01.2009 в 01:52. |
|||
|
||||
Проектировщик СС Регистрация: 24.06.2008
Минск
Сообщений: 134
|
Дополненный вариант.
Запуск фукции (gr_color_layers "*_m") в ком. строке. Работает непосредственно с файлом .dwg после экспорта из GM. От пользователя требуется только присвоить цвета нужным слоям. Установка цвета полилиний в bylayer и создание градиента производится функцией. Код:
|
|||
|
||||
Donhuan, Вы меня опередили я еще возможные форматы не описала, сорри. Сумашедший денёк был.
Сегодня совместила этот рельеф с гарминовской графикой и выдала археологам промежуточный вариант, им понравилась идея. Сказали, что это действительно удобно и даже сказали, что это лучшая карта из тех, что у них есть |
||||
|
||||
Проектировщик СС Регистрация: 24.06.2008
Минск
Сообщений: 134
|
Последняя функция должна сильно ускорять перевод цветов полилиний в bylayer, попробуйте.
У меня лично в больших файлах попытки измения цвета стандартным способом сразу всех полилиний скопом, приводили к вылету акада из-за нехватки памяти. По-идее если названия слоев имеют формат "уровень *_m" (а других вариантов в GM кроме футов нет, для этого достаточно задать шаблон "*_ft"), то все они будут обработаны последним вариантом функции с указанным параметром (шаблоном). P.S. Если планируется постоянное использование в работе данного лиспа, то в будущем можно присобачить к нему диалоговое окно и придумать как можно автоматом назначать ключевые цвета слоям. Последний раз редактировалось Donhuan, 26.01.2009 в 19:03. |
|||
|
||||
Вы прямо мысли читаете Весь день про диалоговое окно думала, но не решалась попросить.
Если бы было диалоговое окно, то тогда наверное стоило бы отвязаться от слоев с их форматами и задавать цвета по значению Elevation или по значению одного из полей в таблице объектных данных. Тогда этим лиспом можно было бы обрабатывать практически любые даные из разных программ. |
||||
|
||||
Проектировщик СС Регистрация: 24.06.2008
Минск
Сообщений: 134
|
По большому счету можно и отказаться от слоев, если каждое сечение заведомо расположено на своем уровне. Но здесь есть ньюанс: если понадобиться вдруг поэкспериментировать с рисунком в плане подбора окраски, то перекрашивать каждый раз линии будет гораздо медленее чем слои. Хотя есть выход - создавать нужные слои самостоятельно.
В диалоговом окне можно будет задавать шаблон слоев и настраивать цветовую шкалу. Только быстро это сделать не получится потому как работать еще надо |
|||
|
||||
Не получилось почему-то... еще раз попробую завтра.
Сделала еще пару файлов, определились такие форматы: -20_M -2_M 0_M 20_M 200_M 2000_M и вариант с десятичным делителем 20_5_M и с сортировкой слоев проблема - сортируется, как текстовый формат, а не по возрастанию числовых значений. |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Donhuan, Еще на заметку. Ты сейчас применяешь модель RGB для перехода. Как вариант попробовать перевести в HSL и управлять долями H (оттенок ), S (насыщенность) и L (яркость).
Функции перевода здесь. Хотя может это и лишнее. И так получается красиво *** Добавлено Ещ один вариант (про круги) http://autolisper.googlepages.com/ Беглый просмотр кода показывает, что тоже меняют градиент через HSL
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 25.08.2010 в 13:28. |
|||
|
||||
Donhuan, теперь все получилось (я вчера без скобок команду вводила поэтому и не шло). Классно, что программа теперь сама цвет примитивов меняет на BYLAIER. Намного быстрее, чем врукопашную.
А, с какого объема у Вас автокад начал вылетать? Может быть окно Свойств открыто было? Я вчера 15 квадратов в один файл собрала и все работало. |
||||
|
||||
Проектировщик СС Регистрация: 24.06.2008
Минск
Сообщений: 134
|
to VVA
Наверное придется перейти к модели HSL при развитии программы. Думал об этом и раньше, но поленился писать программу перехода из RGB в HSL и обратно, а если уже есть, то наверное воспользуюсь. Спасибо. to Olga_@@@ С шаблонами попозже чего нибудь придумаю, не учел что дробные и отрицательные значения могут быть. Автокад вылетал при попытке назначить цвет одновременно 15000 полилиниям вручную, свойства были закрыты. |
|||
|
||||
Вот, еще скриншот с .dwg - 19 квадратов, 123594 полилинии, 369 слоев, 279 МБ Время обработки вторым кодом примерно 5 сек. Автокад не умер, но обработались не все слои. Скорее всего, это моя ошибка, допущенная при на значении цветов (из-за неудобного порядка слоев - все числа отсортированы, как текст, несмотря на то, что текстовые символы из названий слоев убраны).
Через экспорт в DXF такой объем уже не идет, спасает только mif/mid и преподносит новые сюрпризы в названиях слоев. Поэтому пришлось сразу в процессе импорта mif/mid в dwg переназначить имена слоев по свойству Elevation. "-110" on -P 7 (white) "-115" on -P 7 (white) "-120" on -P 7 (white) "-125" on -P 7 (white) "-130" on -P 7 (white) "-135" on -P 7 (white) "-140" on -P 7 (white) "-145" on -P 7 (white) "-15" on -P 7 (white) "-150" on -P 7 (white) "-155" on -P 7 (white) "-160" on -P 7 (white) "-165" on -P 7 (white) "-170" on -P 7 (white) "-175" on -P 7 (white) "-180" on -P 7 (white) "-185" on -P 7 (white) "-190" on -P 7 (white) "-195" on -P 7 (white) "-20" on -P 7 (white) "-200" on -P 53,146,138 "-205" on -P 7 (white) "-210" on -P 7 (white) "-25" on -P 7 (white) "-30" on -P 7 (white) "-35" on -P 7 (white) "-40" on -P 7 (white) "-45" on -P 7 (white) "-5" on -P 7 (white) "-50" on -P 7 (white) "-55" on -P 7 (white) "-60" on -P 7 (white) "-65" on -P 7 (white) "-70" on -P 7 (white) "-75" on -P 7 (white) "-80" on -P 7 (white) "-85" on -P 7 (white) "-90" on -P 7 (white) "-95" on -P 240,0,240 "0" on -P 0,245,122 "10" on -P 7 (white) "100" on -P 217,255,102 "1000" on -P 7 (white) "1005" on -P 7 (white) "1010" on -P 7 (white) "1015" on -P 7 (white) "1020" on -P 7 (white) "1025" on -P 7 (white) "1030" on -P 7 (white) "1035" on -P 7 (white) "1040" on -P 7 (white) "1045" on -P 7 (white) "105" on -P 217,254,101 "1050" on -P 7 (white) Последний раз редактировалось Olga_@@@, 27.01.2009 в 20:54. |
||||
|
||||
Проектировщик СС Регистрация: 24.06.2008
Минск
Сообщений: 134
|
Разобрался с торможением при попытке ручного измения цвета большому количеству полилиний. Все дело в том, что акад (2006 по крайней мере) после применения данной операции пытается отобразить ручки узлов всех полилиний, а так как на данных чертежах узлов у большинства полилиний порядка нескольких сотен, то показ нескольких миллионов квадратов, сильно усложняет процедуру.
Выход: отключить показ ручек в опциях (переменая GRIPS). |
|||
|
||||
Вот еще подопытные (по 50 Мб примерно):
Вариант1 - получен импортом из mif/mid Вариант2 - из DXF В обоих, практически полный диапазон форматов имен слоев с буквенными обозначениями и без, с десятичными делителями (один знак после делителя, с двумя знаками в этих файлах нет, но в других вариантах возможны). Вариант1 предпочтителен по производительности, но такой импорт может быть выполнен только в Civil или Map (после после сохранения в DWG можно работать в обычном Автокаде). Вариант2 подходит для базового Автокада, но непригоден для работы с большими файлами. Последний раз редактировалось Olga_@@@, 28.01.2009 в 01:19. |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Для чего нужны фильтры слоев?Как ими пользоваться? | Aysulu | AutoCAD | 43 | 17.04.2019 10:59 |
Назначение слоев в AutoCAD 2007 | RodiXX1 | AutoCAD | 5 | 02.08.2007 23:58 |