Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

Помогу бесплатно разработать любую программу на autolisp.

Тема в разделе "Autodesk", создана пользователем Германup, 3 фев 2014.

  1. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    -
     
    #221
    Последнее редактирование: 11 мар 2015
  2. Романыч

    Форумчанин

    Регистрация:
    5 ноя 2009
    Сообщения:
    1.892
    Симпатии:
    849
    Адрес:
    Россия, г. Иваново
    Ещё раз спасибо!!!::good1::
    Лисп работает-это уже немало, хотя выбора по рамке нет, но да ладно....
    Правда есть нюанс, попытался лисп "повесить" на кнопку. Прописал команду:
    ^C^C^P(if (not c:Point2trassa01)(load "Point2trassa01" ));^PPoint2trassa01.fas; - что-то автокад "тупит": пишет "неизвестная команда fas". Хотя лисп даже загнал в автозагрузку автокада.
    И ещё заметил такую странность: после перезапуска лиспа через "11", отключаются все объектные привязки-приходится по-новой ставить галочки.
     
    #222
  3. 2fkmbyfrolru

    Форумчанин

    Регистрация:
    20 янв 2012
    Сообщения:
    267
    Симпатии:
    1
    Адрес:
    Кострома
    А зачем это вообще надо?
     
    #223
  4. Романыч

    Форумчанин

    Регистрация:
    5 ноя 2009
    Сообщения:
    1.892
    Симпатии:
    849
    Адрес:
    Россия, г. Иваново
    Если это ирония, то для работы.
    Если вопрос серьёзный: для построения профиля. Например, когда "отстреливаете" верх уложенного трубопровода, то поймать точно ось на трубе (особенно большого диаметра) сложно. Вот здесь и понадобится этот лисп: строим профиль фактического уложенного трубопровода (работой этого лиспа "отсекая" кривули по не всегда корректному нахождения оси) и сравниваем с проектом. Более детально поможет разобраться мой файл автокада, см. пост223.
     
    #224
  5. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    -
     
    #225
    Последнее редактирование: 11 мар 2015
  6. Романыч

    Форумчанин

    Регистрация:
    5 ноя 2009
    Сообщения:
    1.892
    Симпатии:
    849
    Адрес:
    Россия, г. Иваново
    --- Сообщения объединены, 11 мар 2015, Оригинальное время сообщения: 11 мар 2015 ---
    А вот эта версия неправильно сажает точки- не по нормали..(((( Некоторые точки даже "выкидывает" за пределы "исходной" линии.См. файл "К вопросу о посадке точек1"
    --- Сообщения объединены, 11 мар 2015 ---
    Плюс, с точек "слетает" значение Z. Значение osnapz=1 (проверил специально).
    Выкладываю 3 файла: один ДО работы программы (обратите внимание на 2 точки-выделены облаком, в них есть значение Z и прорисована "траектория" усадки точки по нормали, другой ПОСЛЕ, третий-с выкинутыми точками и также с исчезнувшим Z).
    При запуске лиспа всё-таки слетают привязки..((((
    Примечание. На автокаде установлен Geo_Tools от Андрея.
    --- Сообщения объединены, 11 мар 2015 ---
     

    Вложения:

    #226
  7. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    В посте #223 Вами выложен чертеж, где полилиния и ВСЕ точки имеют Z=0, то есть двумерный чертеж.
    Исходя из этого чертежа была написана программа для работы с примитивами в двумерном чертеже.
    В посте #229 выложен чертеж, где две точки имеют Z=100, то есть чертеж трехмерный.
    Математику программы нужно будет переделать для трехмерки.
     
    #227
  8. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    Романыч, пробуй версию для трехмерки. Ось трубы (трассы) должна быть двумерной полилинией.
    На кнопке можно прописать ^C^C(load "Point2trassa3D_03r")
    Повторный запуск программы - набрать на клавиатуре 11 (две единицы), нажать пробел или Enter.
    На всяк случай, перед запуском программы, отключай 3D привяки (клавиша F4).
     

    Вложения:

    #228
    Последнее редактирование: 11 мар 2015
  9. Романыч

    Форумчанин

    Регистрация:
    5 ноя 2009
    Сообщения:
    1.892
    Симпатии:
    849
    Адрес:
    Россия, г. Иваново
    Итак, пишу результаты теста лиспа ivsem Point2trassa3D.
    1. Перед началом работы лиспа, желательно отключить трехмерную привязку и проверить значение "osnapz" (если точки, которые нужно будет "усадить" на полилинию будут со значением Z).
    2. Также, желательно (для собственного спокойствия) проверить отрисовкой нормали от точки до исходной полилинии на какой именно участок линии должна "сесть" точка. Это очень важно для точек, которые находятся близко к вершинам угла, для остальных точек, которые попадают в четко определяемый прямолинейный участок, этого делать не нужно.
    3. Выбирать точки можно как указанием каждой точки, так и полигоном.
    Вывод: лисп работает, поставленные задачи успешно решены (во всяком случае, применительно к моим вопросам).
    Огромное спасибо многоуважаемому ivsem!!!::good1::::drink1.gif::
     
    #229
  10. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    Романыч.
    Программа Point2trassa3D_05automat.fas предназначена для перенесения примитивов точка на ось трассы (lwpolyline).
    Трасса-lwpolyline не должна выходить за пределы экрана!
    На запросы программы указываете с запасом отклонение точек от трассы, выбираете опцию черчения зон привязок (0 ноль) или опцию переноса точек (1) и выбираете мышкой полилинию.
    Перед переносом точек желательно отчертить зоны привязок. Это позволяет выявить "проблемные" точки находящиеся около вершин полилинии. Проблемные места можно обработать программой-полуавтоматом Point2trassa3D_03r.zip из поста #231.
    После окончания "разборок" с точками возле вершин можно удалить зоны привязок выбрав их быстрым выбором "полининия-цвет 251". Пока в программе обрабатываются прямолинейные участки трассы-полилинии, дуговые пропускаются. Обработка дуговых сегментов полилинии предполагается в следующих версиях программы.
    В конце работы программы появляется табличка "Работа окончена". Если табличка не появилась, значит произошел сбой в работе программы.
    На кнопке пишем ^C^C(load"Point2trassa3D_05automat")
    Для повторного перезапуска программы нужно набрать 11, пробел или Enter.
     

    Вложения:

    #230
    Последнее редактирование: 25 мар 2015
    barabashkasathalex нравится это.
  11. ivsem

    Форумчанин

    Регистрация:
    26 мар 2009
    Сообщения:
    2.475
    Симпатии:
    1.051
    Адрес:
    Киев
    Романыч, в предыдущем посте #233 выложена обновленная пятая версия программы.
    Для наглядного пояснения "проблемных" зон выложена картинка.
     

    Вложения:

    • 01.jpg
      01.jpg
      Размер файла:
      33,2 КБ
      Просмотров:
      52
    #231
    Последнее редактирование: 25 мар 2015
  12. ЛЕХА 123

    Форумчанин

    Регистрация:
    14 фев 2013
    Сообщения:
    43
    Симпатии:
    1
    Помогите советом . Суть вопроса вот в чем есть ли какая-нибудь программка которая может сама проставлять проектные и фактические размеры (проект /факт). При этом проектные данные брать из примитива в указанном слое , а фактические из от точки сьемки. как показано в чертеже. Просто фундаментов много и все идут по радису, а самому проставлять нет времени
     

    Вложения:

    #232
  13. vugluskr

    Форумчанин

    Регистрация:
    15 июн 2009
    Сообщения:
    54
    Симпатии:
    18
    Адрес:
    Москва
    Вам помог кто-нибудь с вашей проблемой?
     
    #233
  14. Попутчик

    Регистрация:
    26 мар 2015
    Сообщения:
    4
    Симпатии:
    1
    Здравствуйте, уважаемые мастера 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.
     

    Вложения:

    #234
    Qvinto нравится это.
  15. Попутчик

    Регистрация:
    26 мар 2015
    Сообщения:
    4
    Симпатии:
    1
    Обнаружил ошибку в файле "Макрос". Прилагаю взамен исправленный файл - "Макрос2"
     

    Вложения:

    #235
  16. texkarta

    Форумчанин

    Регистрация:
    10 ноя 2010
    Сообщения:
    94
    Симпатии:
    10
    Пока не помогли! Ждем!
     
    #236
  17. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.971
    Симпатии:
    694
    Адрес:
    Маськва
    Да, есть такая парт проблема.
    Если речь о полилиниях и блоках, то для концов элементов ее решает Drawing cleanup (Корректировка, _mapclean), операция Сводить узлы в один. Инструмент Map/Civil 3d.
    Но для вершин полилиний (т.е. не концов) это не действует.
    Привязка_блоков_линий.png
    К узлу - блоки (и/или точки) на узлы полилиний. К связи - полилинии на блоки (и/или точки).
    Можно, конечно, сначала разбивать линии, с которыми нужно согласовывать блоки, но потом можно и замучиться соответственные линии сшивать.

    Если бы нужно было посадить одни блоки на другие или на точки, то все бы сработало. Причем, можно было бы управлять, что на что двигать, если - указать слои, объекты которых участвуют в обработке, но не подлежат редактированию. Блоки из таких слоев останутся на месте, а другие на них "сядут". Если расстояния будут соответствовать допуску, конечно.
    Участвуют_но_не_меняются.png
     
    #237
  18. Kubik13

    Форумчанин

    Регистрация:
    21 ноя 2010
    Сообщения:
    223
    Симпатии:
    17
    Адрес:
    Москва
    Привет! Интересует программа расчета амплитуды в автокаде! Можно такую сделать?
    По данным нивелирования вычисляют относительные отметки точек поверхности покрытия или основания дороги.
    По относительным отметкам точек поверхности покрытия определяют отклонения (амплитуды) этих точек от прямой линии, проходящей через предыдущую 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 ---
    Думаю будет очень полезна!!!
     
    #238
  19. pashuha

    Форумчанин

    Регистрация:
    25 янв 2013
    Сообщения:
    90
    Симпатии:
    11
    Добрый день! Есть лисп код программы рисующей ЛЭП по существующей полилинии, работает отлично НО есть проблема, после завершения программы запоминает последнюю вершину в полилинии, при новом запуске и выборе другой полилинии на чертеже, начинает рисовку с запомненной ранее вершины т.е. с другой полилинии. Поправьте пожалуйста код:

    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)))
    )
     
    #239
  20. K.V.V.

    Регистрация:
    7 апр 2015
    Сообщения:
    6
    Симпатии:
    1
    Адрес:
    Вся РФ, куда только не заносило...
    Доброго времени суток! Нужна помощь, думаю не одному мне. Есть популярный lisp "geo otkl", но разработчик его больше не поддерживает и не обновил для AutoCAD 2015. Вы сможете помочь?
     

    Вложения:

    #240

Поделиться этой страницей

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление