|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как выбрать полилинии по определенным значениям высот (Elevation)?
геодезист
Москва
Регистрация: 25.10.2011
Сообщений: 45
|
||
Просмотров: 5941
|
|
||||
Регистрация: 25.03.2008
Зелик
Сообщений: 1,600
|
Цитата:
Хм, выделяем все, масштабируем х2 относительно крайней (0 или 0,5) --> шаг становится 0,5; потом половину лишних, вылетевших за габарит, - удаляем.
__________________
* Буква "ё" не используется в тексте исключительно в связи с требованиями ЕСКД. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Лисп не подойдет потому что сложным решение будет или потому что ACAD LT?
На лиспе можно, например, так: Код:
|
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Чаще всего на топосъемках горизонтали уже лежат на своем слое или на нескольких своих слоях (допустим, толстые - целые четные, и тонкие - все остальные). Если нет, то да, лучше "кинуть".
И тогда действовать так: 1. Изолировать слой (слои) с горизонталями; 2. Из кода двумя постами выше в строке Код:
3. Запустить код и на запрос "Выберите объекты:" указать все горизонтали рамкой. 4. Нажать Enter. Останутся ручки только на нужных горизонталях (либо они будут подсвечены, если их много). |
|||
![]() |
|
||||
геодезист Регистрация: 25.10.2011
Москва
Сообщений: 45
|
Цитата:
Спасибо огромное все работает). Отключить все посторонние объекты уже дело техники |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Так можно и с клавиатуры ввести .25 либо .50. Или так не пойдет? Тогда необходимо знать, в каком формате вводить (с точкой/без точки, два знака после точки/один; если введено 5, то это 50 или 25/75 и т.д.)
|
|||
![]() |
|
||||
геология, геодезия Регистрация: 29.05.2009
Хабаровск
Сообщений: 185
|
Допустим, нужно выбрать полилинии кратные 5, или 2. Вводя с клавиатуры такие значения ничего не выходит...
Например: 25.5 - выбираются все линии с высотой кратные 25.5, 5.0; 2.75; 0.25 и т.п. соответственно Последний раз редактировалось Krovlaf, 11.06.2013 в 12:32. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Все равно не понял: если пользователь введет 5, то это должно расцениваться как ХХХ.05, ХХХ.50 или выбраться должны все из списка ХХХ.05, ХХХ.10, ХХХ.15, ХХХ.20.......? Или пользователь должен ввести непременно две цифры, а, если он ввел одну, то это воспринимается за ошибку и предлагается ввести снова?
Насколько я помню школьную математику и понимаю понятие кратности, число кратно ПЯТИ, если оно делится на 5 без остатка. Т.е. в нашем случае это понятие не совсем корректно. Или совсем некорректно. Но не соображу, как правильно это обозвать. |
|||
![]() |
|
||||
геология, геодезия Регистрация: 29.05.2009
Хабаровск
Сообщений: 185
|
Тогда оставлю понятие кратности (оно здесь не пойдет) и попытаюсь объяснить так:
Если пользователь ввел число 5, то это должно расцениваться как ХХ5.0 если число 0 то ХХ0.0 если число 2 то ХХ(четные).0 если число 0.25 то ХХХ.25 и ХХХ.75 |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Я так в общем-то и предполагал, поскольку много работал с топосъемками и видел, что "четные" горизонтали в основном всегда жирнее остальных.
Хорошо, а что будет, если пользователь введет 3 или 4 или 545? Может, все-таки пользователю не имеет смысла давать право полнейшей свободы действий, а предложить выбрать из списка, например, такого: ХХХ.00(целые) ХХ2.00(чётные) ХХ5.00(кратные 5, кроме целых) ХХХ.50(кратные 0.5, кроме целых, четных и ХХ5.00) ХХХ.Х5(кратные 0.25 кроме ХХХ.50 и ХХХ.00). Либо, предложить ему вводить цифры с клавиатуры, но допустимыми оставить только значения 0, 2, 5, 0.25? Тут опять-таки будет неудобным ввод 0.25 (если стоит русская раскладка и в Windows не настроена точка на циферном блоке при русской раскладке) - запятую ACAD не поймёт, за точкой придется тянуться к буквенному блоку |
|||
![]() |
|
||||
геология, геодезия Регистрация: 29.05.2009
Хабаровск
Сообщений: 185
|
Думаю это правильно:
Цитата:
При этом не обойти вниманием ни "мышечников" (с выбором из списка) ни "кнопочников" (живущих на клавиатуре) |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Krovlaf, просьба продумать хорошенечко алгоритм и написать подробнее (вводим 2 -> выбирается то-то и то-то). Дабы переделывать несколько раз не приходилось.
Тут похоже нужен будет определенный порядок работы, вроде такого: К примеру, у нас все горизонтали имеют вес 0.25 1. Выбираем четные, присваиваем вес, к примеру 0.30 2. Выбираем кратные 5-ти - вес 0.40 3. Выбираем "десятки" - вес 0.50 4. Выбираем 0.5 - вес 0.20 5. Выбираем 0.25/0.75 - вес 0.18 Остальные (целые, судя по всему, оканчивающиеся на 1.00, 3.00, 7.00 и 9.00) остаются 0.25 Так или нет? |
|||
![]() |
|
||||
геология, геодезия Регистрация: 29.05.2009
Хабаровск
Сообщений: 185
|
Я считаю, что в посте 19, Вами сформулирован предельно точный алгоритм выбора горизонталей (если у следящих за веткой есть дополнения/уточнения/поправки - поправьте):
Цитата:
|
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Я ошибся там чуть:
Цитата:
ХХ0.00(целые десятки). Но я так полагаю, что нужна возможность отдельно выбирать и целые, и целые десятки, т е. в итоге список вариантов должен быть таким: ХХХ.00 (целые) 'или вводим цифру 1 ХХ2.00 (чётные, в том числе десятки ХХ0.00) 'или вводим цифру 2 ХХ5.00 (кратные 5, кроме десятков) - или включая десятки - уточнить 'или вводим цифру 5 ХХ0.00 (десятки) 'или вводим 10 ХХХ.50 (кратные 0.5, кроме целых, четных и ХХ5.00) 'или вводим .5 ХХХ.Х5 (кратные 0.25 кроме ХХХ.50 и ХХХ.00) 'или вводим .25 Постараюсь по мере возможности набросать код. __________________________________________ Добавлено 1: Вот, собственно, набросал: Код:
Сделал командой (C:TEST) - вызывать без скобок. При вызове команды (при включенном динамическом вводе) появится выпадающий список с вариантами фильтрации. Можно выбрать из списка, а можно ввести с клавиатуры значения, выделенные в описании алгоритма зеленым (они также обозначены подсказками в скобках в выпадающем списке). Пустой ввод, а также ввод иных значений кроме разрешенных - недопустим. Выход по Escape. Тестировал на прилагаемом файле. __________________________________________ Добавлено 2: Подправил код так, чтоб при выборе пятерок выбирались и десятки (замеч. в #26) Последний раз редактировалось skkkk, 13.06.2013 в 21:37. Причина: Добавил код и инструкции к нему, подправил код. |
|||
![]() |
|
||||
геология, геодезия Регистрация: 29.05.2009
Хабаровск
Сообщений: 185
|
Протестировал на своем примере (у меня до сих пор 2008 (точнее 2008++)). Наверное все возможные варианты учтены (от М 1:1000 до М 1:100000). Касаемо включения "10" в "5" - это надо сделать. Я не помню случаев когда выделялись "5" без "10". А так все работает прекрасно! Спасибо за понимание, труды и потраченное драгоценное. Надеюсь многим будет полезен. Лично для меня данный лисп очень кстати - предстоит большая работа по оцифровке топопланов.
![]() Последний раз редактировалось Krovlaf, 13.06.2013 в 16:07. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Поправил в #25.
А "10" без "5" оставить? Вот в этой теме, начиная с поста #15, обсуждали, как называются горизонтали. Нашлись условные обозначения, так в них горизонтали подразделяют на:
Последний раз редактировалось skkkk, 13.06.2013 в 16:55. |
|||
![]() |
|
||||
геология, геодезия Регистрация: 29.05.2009
Хабаровск
Сообщений: 185
|
"10" без "5" оставить!
Представленный лисп может выделить все типы горизонталей за исключением вспомогательных (на произвольной высоте). Обработать последние не составит труда тем же исключением. Еще раз спасибо за программку! |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Какой язык перспективен для инженера-конструктора с условием | The_Mercy_Seat | Программирование | 705 | 17.03.2021 14:19 |
Как грамотно выбрать направление дуги у полилинии? | ira228 | AutoCAD | 19 | 22.09.2012 14:47 |
Распределение точек по полилинии с определенным расстоянием между ними ПО ПРЯМОЙ | Prestan | AutoCAD | 10 | 14.10.2010 22:54 |