Здравствуйте коллеги. Может у вас есть такой лисп для AutoCAD 2007-2013? Поиск по http://dwg.ru/ к нужному результату не привел...
ivsem, я не совсем понял, ваша программа рисует один бергштрих? Т.е. для рисования по всем горизонталям в нужном направлении операцию нужно повторять? Команда "Разметить" мне кажется не совсем подходит. "РАЗМЕТИТЬ Создание объектов точек или блоков по длине или по периметру объекта с расположением их на расстоянии измеренных интервалов." Ведь горизонтали не находятся на равном расстоянии друг от друга.
Да, каждый бергштрих рисуется индивидуально. Указываете мышкой горизонталь, потом направления бергштриха. Программа считывает автоматом некоторые свойства указанной вами полилинии ( координату Z, цвет, толщину полилинии, слой и передает эти свойства на рисуемый Вами бергштрих). Горизонтали должны быть полилиниями. Рисовка бергштрихов, по моим понятиям, дело индивидуальное. Скопом в автомате вряд ли можно отрисовать бергштрихи. Да и нужно их как правило не очень много.
Все таки рисовать бергштрихи по одному мне кажется не рациональным. Идеальным вариантом было бы так, как реализовано в Кредо3.
В каком смысле? Они наносятся там где рельеф плохо читается человеческим глазом, седловинах, небольших уклонах... ставить бергштрихи там где не нужно, это же отсутствие культуры...
Хорошо. Бергштрихи согласно УЗ наносятся на вершины, котловины и седловины, т.е. их все равно как минимум два на замкнутой горизонтали. Зачем делать одну операцию дважды?
В приведенном Вами видео в посте #8 нужно прочертить линию через характерные точки и после этого программа в каждую горизонталь вставляет бергштрих. Для чего в каждую? При плотных горизонталях бергштрих может просто перечеркнуть две ближайшие горизонтали. Вручную же можно поставить бергштрих там где он будет читаться, т.е. там где плотные горизонтали образуют между собой достаточный просвет. На отдельной горизонтали-котловине опять же надо выбрать характеные места и там поставить берштрихи.
В своем посте я приводил пример реализации функционала который хотелось увидеть в Автокаде, не более того. Тот принцип что проведя линию через нужный участок рельефа я получаю столько бергштрихов сколько мне необходимо, и не важно сколько их будет, два, четыре...
Civil3d Спойлер (Наведите указатель мыши на Спойлер, чтобы раскрыть содержимое) Раскрыть Спойлер Свернуть Спойлер
Вполне нормально программно полным автоматом расставить все основные необходимые бергштрихи, имея горизонтали и отметки на своих высотах (Z, elavation/уровень). Без всяких вручную заданных линий и пр. 1. Найти программно все последние замкнутые (с признаком замкнутости или начала и концы совпадающие), и по их высотам, высотам соседних горизонталей и отметкам внутри них или вне них расставить по два бергштриха. 2. Найти программно все крайние примыкающие к границе съемки или рамке листа горизонтали, и по их высотам, высотам соседних горизонталей - далее по тексту..., но расставить по одному бергштриху. 3. Для остальных горизонталей просто расставить бергштрихи с заданной плотностью (лучше не задавать, а задать масштаб, и определять из 2-3 на кв. дм, допустим) по их высотам, высотам соседних горизноталей, отметкам вокруг них. Было бы волшебно расставить их именно на основных поворотах горизонталей, но не уверен, что их реально программно найти. Но можно перенести куда нужно регулярно расставленные. 4. Перед расстановкой задать нужный слой, цвет и чем расставлять - отрезком, полилинией, блоком. Длину взять как положено - 1 мм в масштабе. 5. Для неопределенных случаев - когда не хватает отметок, очень плоская территория и т.п. - расставлять на замкнутых и примыкающих в обе стороны, но помечать яркими маркерами, чтобы легче замечать. Лучше расставит лишние (обязательно отметив), т.к. удалять лишнее много легче, чем расставлять. Была реально такая программа... Еще где-то подобные есть - в Талке, кажется...
Вариант для любителей штучной ручной работы: делаете динамический блок бергштриха с ручкой на конце для разворота, и ей будет в разы легче редактировать положение бергштрихов, чем другими штатными средствами Автокада, да еще и длину случайно не подпортите. Если добавить этот блок в тул-палетку со вставкой с разворотом, то будете вручную щелкать эти бергштрихи как семечки. Макрос для тул-палетки, при котором вставка будет с разворотом, и будет повторяться, пока Esc не нажмете: *^C^C_insert "название блока бергштриха";\;;_r Можно подправить макрос, чтобы блоки сразу при вставке и разбивались. Но тогда ручка для разворота дин.блока потеряется. Если сделать отрезок/полилинию внутри блока сразу в нужном слое-цвете-толщине и пр., то в конце эти блоки можно разом разбить, и получится полностью нужный результат, даже если блоки были не в том слое, цвете и пр.
Кредо3 у меня нет, попробовал написать по аналогии с увиденным. Тестируйте.. _________________________ Использовал: LWPoly, eea-vec
Alexandr-GR, программа на мой взгляд, работает корректно. Большое спасибо! Единственный вопрос: так было задумано, чтобы каждый бергштрих принимал значение высоты горизонтали, на которой строится?