Ещё раз спасибо!!! Лисп работает-это уже немало, хотя выбора по рамке нет, но да ладно.... Правда есть нюанс, попытался лисп "повесить" на кнопку. Прописал команду: ^C^C^P(if (not c:Point2trassa01)(load "Point2trassa01" ));^PPoint2trassa01.fas; - что-то автокад "тупит": пишет "неизвестная команда fas". Хотя лисп даже загнал в автозагрузку автокада. И ещё заметил такую странность: после перезапуска лиспа через "11", отключаются все объектные привязки-приходится по-новой ставить галочки.
Если это ирония, то для работы. Если вопрос серьёзный: для построения профиля. Например, когда "отстреливаете" верх уложенного трубопровода, то поймать точно ось на трубе (особенно большого диаметра) сложно. Вот здесь и понадобится этот лисп: строим профиль фактического уложенного трубопровода (работой этого лиспа "отсекая" кривули по не всегда корректному нахождения оси) и сравниваем с проектом. Более детально поможет разобраться мой файл автокада, см. пост223.
--- Сообщения объединены, 11 мар 2015, Оригинальное время сообщения: 11 мар 2015 --- А вот эта версия неправильно сажает точки- не по нормали..(((( Некоторые точки даже "выкидывает" за пределы "исходной" линии.См. файл "К вопросу о посадке точек1" --- Сообщения объединены, 11 мар 2015 --- Плюс, с точек "слетает" значение Z. Значение osnapz=1 (проверил специально). Выкладываю 3 файла: один ДО работы программы (обратите внимание на 2 точки-выделены облаком, в них есть значение Z и прорисована "траектория" усадки точки по нормали, другой ПОСЛЕ, третий-с выкинутыми точками и также с исчезнувшим Z). При запуске лиспа всё-таки слетают привязки..(((( Примечание. На автокаде установлен Geo_Tools от Андрея. --- Сообщения объединены, 11 мар 2015 ---
В посте #223 Вами выложен чертеж, где полилиния и ВСЕ точки имеют Z=0, то есть двумерный чертеж. Исходя из этого чертежа была написана программа для работы с примитивами в двумерном чертеже. В посте #229 выложен чертеж, где две точки имеют Z=100, то есть чертеж трехмерный. Математику программы нужно будет переделать для трехмерки.
Романыч, пробуй версию для трехмерки. Ось трубы (трассы) должна быть двумерной полилинией. На кнопке можно прописать ^C^C(load "Point2trassa3D_03r") Повторный запуск программы - набрать на клавиатуре 11 (две единицы), нажать пробел или Enter. На всяк случай, перед запуском программы, отключай 3D привяки (клавиша F4).
Итак, пишу результаты теста лиспа ivsem Point2trassa3D. 1. Перед началом работы лиспа, желательно отключить трехмерную привязку и проверить значение "osnapz" (если точки, которые нужно будет "усадить" на полилинию будут со значением Z). 2. Также, желательно (для собственного спокойствия) проверить отрисовкой нормали от точки до исходной полилинии на какой именно участок линии должна "сесть" точка. Это очень важно для точек, которые находятся близко к вершинам угла, для остальных точек, которые попадают в четко определяемый прямолинейный участок, этого делать не нужно. 3. Выбирать точки можно как указанием каждой точки, так и полигоном. Вывод: лисп работает, поставленные задачи успешно решены (во всяком случае, применительно к моим вопросам). Огромное спасибо многоуважаемому ivsem!!!
Романыч. Программа Point2trassa3D_05automat.fas предназначена для перенесения примитивов точка на ось трассы (lwpolyline). Трасса-lwpolyline не должна выходить за пределы экрана! На запросы программы указываете с запасом отклонение точек от трассы, выбираете опцию черчения зон привязок (0 ноль) или опцию переноса точек (1) и выбираете мышкой полилинию. Перед переносом точек желательно отчертить зоны привязок. Это позволяет выявить "проблемные" точки находящиеся около вершин полилинии. Проблемные места можно обработать программой-полуавтоматом Point2trassa3D_03r.zip из поста #231. После окончания "разборок" с точками возле вершин можно удалить зоны привязок выбрав их быстрым выбором "полининия-цвет 251". Пока в программе обрабатываются прямолинейные участки трассы-полилинии, дуговые пропускаются. Обработка дуговых сегментов полилинии предполагается в следующих версиях программы. В конце работы программы появляется табличка "Работа окончена". Если табличка не появилась, значит произошел сбой в работе программы. На кнопке пишем ^C^C(load"Point2trassa3D_05automat") Для повторного перезапуска программы нужно набрать 11, пробел или Enter.
Романыч, в предыдущем посте #233 выложена обновленная пятая версия программы. Для наглядного пояснения "проблемных" зон выложена картинка.
Помогите советом . Суть вопроса вот в чем есть ли какая-нибудь программка которая может сама проставлять проектные и фактические размеры (проект /факт). При этом проектные данные брать из примитива в указанном слое , а фактические из от точки сьемки. как показано в чертеже. Просто фундаментов много и все идут по радису, а самому проставлять нет времени
Здравствуйте, уважаемые мастера LISP! Прошу вашего участия в моей проблеме. Помогите, пожалуйста, с помощью макроса проставить рядом с отрезком угол его наклона и его длину. Нашел отдаленно похожие два макроса здесь - http://www.caduser.ru/forum/index.php?PAGE_NAME=read&FID=23&TID=50115 Но это далеко не то. То есть, почти совсем не то. Итак: Дано множество отрезков/одиночных полилиний/составных полилиний. Мне нужно проставить рядом с каждым примитивом угол отклонения от направления на север, на приложенном чертеже это условная красная линия, проведенная обязательно из начала примитива (обозначено буквой «Н»), а также длину элемента (в метрах, с точностью до миллиметра). Предполагаю работу макроса так: 1. Запуск макроса из ком. строки. 2. По запросу макроса «укажите формат угловых величин: град/мин/сек; десятичные градусы; радианы:». Указываю нужный формат, нажимая курсором в ком.строке. Этот формат запоминается макросом на все время. При новом запуске макроса подтвержение этого же формата – нажатием Enter. 3. По запросу макроса «укажите вариант простановки данных: горизонтально; параллельно» указываю, тыкая курсором в ком.строке. Так же запоминается макросом. 4. По запросу макроса «укажите примитив», тыкаю в нужный элемент. Сразу же появляется результат, привязанный к курсору, чтобы можно было отследить в реальном времени, куда ткнуть для вставки результата. В случае составных полилиний данные проставляются на каждом колене. 5. Цикл повторяется: «укажите примитив». И т.д. 6. Выход из цикла – клавиша Esc. Значения углов заносятся на слой «УГОЛ», а величины длин – на слой «ДЛИНА». При отсутствии таких слоев, макрос сам создает их при вставке первых данных. Шрифт желательно использовать какой-нибудь стандартный, присутствующий во всех версиях автокада, начиная с 2008-го (но только не шрифт «TXT»), и, естественно, поддерживающий значки градусов, минут и секунд. Благодарю всех, принявших участие в решении проблемы. p.s. AutoCAD-2013, 2014.
Да, есть такая парт проблема. Если речь о полилиниях и блоках, то для концов элементов ее решает Drawing cleanup (Корректировка, _mapclean), операция Сводить узлы в один. Инструмент Map/Civil 3d. Но для вершин полилиний (т.е. не концов) это не действует. К узлу - блоки (и/или точки) на узлы полилиний. К связи - полилинии на блоки (и/или точки). Можно, конечно, сначала разбивать линии, с которыми нужно согласовывать блоки, но потом можно и замучиться соответственные линии сшивать. Если бы нужно было посадить одни блоки на другие или на точки, то все бы сработало. Причем, можно было бы управлять, что на что двигать, если - указать слои, объекты которых участвуют в обработке, но не подлежат редактированию. Блоки из таких слоев останутся на месте, а другие на них "сядут". Если расстояния будут соответствовать допуску, конечно.
Привет! Интересует программа расчета амплитуды в автокаде! Можно такую сделать? По данным нивелирования вычисляют относительные отметки точек поверхности покрытия или основания дороги. По относительным отметкам точек поверхности покрытия определяют отклонения (амплитуды) этих точек от прямой линии, проходящей через предыдущую i - k и последующую i + k точки по формуле , (1) где - относительная отметка точки, для которой оценивается отклонение; , - относительные отметки предыдущей и последующей точек соответственно; i - порядковый номер точки; i - k и i + k - порядковые номера предыдущей и последующей точек соответственно. Для прямой длиной 10 м предыдущая и последующая точки отстоят от точки i на 5 м и имеют порядковые номера i - 1 и i + 1 соответственно. Для прямой длиной 20 м предыдущая и последующая точки отстоят от точки i на 10 м и имеют порядковые номера i - 2 и i + 2 соответственно. Для прямой длиной 40 м предыдущая и последующая точки отстоят от точки i на 20 м и имеют порядковые номера i - 4 и i + 4 соответственно. - значение поправки, учитывающей радиус вертикальной кривой. Данное значение вводится при обработке измерений, проведенных на участках кривых в продольном профиле дороги. Значения поправок приведены в ГОСТ 30412. Для значения радиуса кривых, не отраженных в ГОСТ 30412, значение поправки можно вычислить по формуле , (2) где l - длина прямой между смежными точками, м; R - радиус вертикальной кривой, м. Значение поправок для выпуклых кривых прибавляют к , а для вогнутых - вычитают из . Из общего числа отклонений 90% должны быть в пределах, указанных в таблице 12, а 10% не должны превышать этих значений более чем в 1,5 раза. 16.7 Требования к показателям ровности по методу амплитуд для участков длиной 300400 м и международному показателю ровности IRI для участков длиной 100 м для оснований и покрытий из асфальтобетона, цементобетона и из каменных материалов и грунтов, обработанных вяжущими, приведены в таблице 12, а методика измерений - в приложении Б. Таблица 12 Категория автомобильной дороги Допустимые значения амплитуды, мм IRI, м/км Длина прямой линии, м 10 20 40 Не более I, II, III 5 8 16 2,2 IV, V 6 10 20 2,6 --- Сообщения объединены, 7 апр 2015, Оригинальное время сообщения: 7 апр 2015 --- Думаю будет очень полезна!!!
Добрый день! Есть лисп код программы рисующей ЛЭП по существующей полилинии, работает отлично НО есть проблема, после завершения программы запоминает последнюю вершину в полилинии, при новом запуске и выборе другой полилинии на чертеже, начинает рисовку с запомненной ранее вершины т.е. с другой полилинии. Поправьте пожалуйста код: Text box: ;|============================================= Отрисовка линии электропередачи Разработчик: http://geodesistu.ru Команда: (lep "g5_108a" "g5_115_1") ===============================================|; (defun lep (op st) ;;; Получаем примитив (setq pln (entget (car (entsel)))) ;;; Получаем подсписок с DXF-кодом 10 (while (setq el (car pln)) (if (= 10 (car el)) (progn ;;; Получаем точку с координатами текущей вершины полилинии (setq pt1 (list (cadr el) (caddr el))) ;;; Вставляем блок опоры (command "_insert" op pt1 1.0 1.0 0.0) (if pt2 (progn ;;; Вставляем блок опоры в предидущую вершину (command "_insert" op pt2 1.0 1.0 0.0) ;;; Получаем углы поворота стрелок (setq ang1 (rad_grad (angle pt1 pt2))) (setq ang2 (rad_grad (angle pt2 pt1))) ;;; Вставляем стрелки (command "_insert" st pt1 1.0 1.0 ang1) (command "_insert" st pt2 1.0 1.0 ang2) ) ) ) ) ;;; Следующая вершина (setq pln (cdr pln)) ;;; Сохраняем точку текущей вершины (setq pt2 pt1) ) ) ;;; Преобразует радианы в градусы (defun rad_grad (rad / grad) (setq grad (* rad (/ 180 pi))) )
Доброго времени суток! Нужна помощь, думаю не одному мне. Есть популярный lisp "geo otkl", но разработчик его больше не поддерживает и не обновил для AutoCAD 2015. Вы сможете помочь?