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

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

Войти

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

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

  1. paniva2010

    Форумчанин

    Регистрация:
    4 окт 2015
    Сообщения:
    73
    Симпатии:
    4
    Спасибо
     
    #1501
  2. Timkin

    Регистрация:
    4 фев 2024
    Сообщения:
    13
    Симпатии:
    0
    Здравствуйте, Уважаемые Гуру AutoLisp! Помогите, пожалуйста, написать lisp. Использовал lisp - "Geo_ALign_object_to_curve_v2_0_2.vlx" он поворачивает текст вдоль линии. Есть похожий в меню-гео - "переместить текст вдоль линии". Но каждый раз выбирать объект, потом линию или наоборот довольно утомительный процесс. Возможно ли сделать чтобы программка перебирала скажем выбранные блоки или текст, или объекты в слое, которые лежат на полилинии или в её вершинах и поворачивала вдоль этой линии. Всем не равнодушным заранее СПАСИБО!
     
    #1502
  3. alz

    alz
    Форумчанин

    Регистрация:
    26 май 2014
    Сообщения:
    371
    Симпатии:
    153
    Именно вдоль или вдоль с учетом нормальной видимости, что бы тексты вверх ногами не были? Стандартные варианты например на квадрате на нижнем ребре сделают тексты нормальные а на верхнем вверх ногами.
     
    #1503
  4. Timkin

    Регистрация:
    4 фев 2024
    Сообщения:
    13
    Симпатии:
    0
    Конечно хотелось бы чтобы красиво, нашел Лисп от Lee Mac но он разбивает линии вершинах где блоки. Может можно его подкорректировать???
     

    Вложения:

    • abbs.gif
      abbs.gif
      Размер файла:
      22,1 КБ
      Просмотров:
      18
    • AutoBlockBreakV1-9.lsp
      Размер файла:
      31,1 КБ
      Просмотров:
      7
    #1504
  5. alz

    alz
    Форумчанин

    Регистрация:
    26 май 2014
    Сообщения:
    371
    Симпатии:
    153
    Та мне проще с нуля написать, в лиспе я уже давно не пишу. Сегодня набросаю.
     
    #1505
  6. Timkin

    Регистрация:
    4 фев 2024
    Сообщения:
    13
    Симпатии:
    0
    ALZ, а на чём Вы пишете? Тот лисп что я нашёл, хорош тем что крутит только блоки на линии а остальные не трогает. Но беда лишь в том что линию разбивает на куски и причем не просто в точке а удаляет кусок линии который за блоком.
     
    #1506
  7. alz

    alz
    Форумчанин

    Регистрация:
    26 май 2014
    Сообщения:
    371
    Симпатии:
    153
    На шарпе, dll сборки.
     
    #1507
  8. Timkin

    Регистрация:
    4 фев 2024
    Сообщения:
    13
    Симпатии:
    0
    КАК??! Как С# дружит с автокадом? Я немного учу Java, но даже и малость не могу представить что там и куда можно написать чтобы автокад что-то сделал))) Добавил gif-ку работы лиспа от Lee Mac
     

    Вложения:

    #1508
  9. alz

    alz
    Форумчанин

    Регистрация:
    26 май 2014
    Сообщения:
    371
    Симпатии:
    153

    Изучай))
     
    #1509
    Timkin нравится это.
  10. Timkin

    Регистрация:
    4 фев 2024
    Сообщения:
    13
    Симпатии:
    0
    Alz, ну Вы меня и загрузили конечно! Теперь стало похоже на Java! Может подскажите где найти документацию по Классам и методам, объектам по Autocad как у Oracle для Java?
     
    #1510
  11. alz

    alz
    Форумчанин

    Регистрация:
    26 май 2014
    Сообщения:
    371
    Симпатии:
    153
    https://help.autodesk.com/view/OARX...gedRefGuide-Autodesk_AutoCAD_DatabaseServices

    вот тут смотри, в справке все есть, правда с описаниями почти везде беда

    в общем готово.

    Либо выбираешь заранее либо если не выбирал кривые (линии полилинии круги сплаины и тд) предложит выбрать.
    после выбора этих кривых спросит на каком расстоянии от кривых будем разворачивать объекты, после чего либо выбираем базовый объект(текст мтекст или блок) и программа расставит вдоль линии все объекты выбранного типа с таким же цветом и слоем, либо если не выбираете расставляет вдоль линий все тексты мтексты и блоки, находящиеся на заданном расстоянии от линий.

    После скачивания архив разблокировать, грузить через netload, на ленте появится кнопка или просто в командной строке команду AlignOnCurves
     

    Вложения:

    #1511
  12. Timkin

    Регистрация:
    4 фев 2024
    Сообщения:
    13
    Симпатии:
    0
    Alz, спасибо большое! Буду тестировать! Добрался до форума adn-cis - ужас как там всё страшно, коды такие аж в глазах рябит! А Вы - вечерок и программка готова! Большое уважение!
    --- Сообщения объединены, 22 фев 2024, Оригинальное время сообщения: 22 фев 2024 ---
    Кнопка появилась, но не работает... :( Может файл автокада приложить?
     

    Вложения:

    #1512
  13. alz

    alz
    Форумчанин

    Регистрация:
    26 май 2014
    Сообщения:
    371
    Симпатии:
    153
    приложи, посмотрю, и что пишет в строку после нажатия на кнопку.
    Как вариант у меня тут использован метод получения угла из вектора появившийся видимо в 2024 автокаде, вроде как в старом Api такой перегрузки не было, может поэтому не сработать если вы в версии ниже, надо будет чутка переделать.
     
    #1513
  14. Timkin

    Регистрация:
    4 фев 2024
    Сообщения:
    13
    Симпатии:
    0
    --- Сообщения объединены, 22 фев 2024, Оригинальное время сообщения: 22 фев 2024 ---
    Я работаю в 2019 Acad и Сivil.
     

    Вложения:

    #1514
  15. alz

    alz
    Форумчанин

    Регистрация:
    26 май 2014
    Сообщения:
    371
    Симпатии:
    153
    все проверил, все работает, только у вас блоки специфические, угол поворота текста в блоке задается параметром в блоке, а не поворотом блока, программа же разворачивает именно блок а не текст в нем, можно просто взорвать, тогда будет выглядеть вот так, но хз насколько вам важно сохранение блока. Можно сделать конечно программу под ваш вариант блока но тогда это будет не универсальная программа разворота всего а спец программа под конкретный тип блока.
    upload_2024-2-22_23-45-13.png
    --- Сообщения объединены, 22 фев 2024 ---
    вот тут не скрине кстати блок развернут программой нормально, угол поворота блока определяется круглой ручкой, направление от квадратной на круглую как раз по линии идет, так что вроде как работает корректно.
     
    #1515
  16. Timkin

    Регистрация:
    4 фев 2024
    Сообщения:
    13
    Симпатии:
    0
    Такие блоки нам выдал территориальный орган архитектуры. Лучше пусть будет универсальная. А у Вас работает потому что автокад 2024? на младших не будет работать?
    --- Сообщения объединены, 23 фев 2024, Оригинальное время сообщения: 22 фев 2024 ---
    Что-то я делаю не так??! Посмотрите gif, пожалуйста.
     

    Вложения:

    • Cm3soLOqP6.gif
      Cm3soLOqP6.gif
      Размер файла:
      19,8 МБ
      Просмотров:
      11
    #1516
  17. alz

    alz
    Форумчанин

    Регистрация:
    26 май 2014
    Сообщения:
    371
    Симпатии:
    153
    Так, в общем переделал разворот, вместо просто установки параметра разворота сделал через трансформацию и блоки начали разворачиваться корректно, видимо програмное изменение параметра не все что надо, в новой версии будет работать, ну и выравнивание сделал и на блоки тоже и сделал это опцией, будет спрашивать после выбора дистанции

    Если не заработает то переделаю метод определения угла. больше вариантов у меня нет, все остальные методы еще в 14 автокаде были и должны работать
     

    Вложения:

    #1517
    Timkin нравится это.
  18. Timkin

    Регистрация:
    4 фев 2024
    Сообщения:
    13
    Симпатии:
    0
    Теперь всё работает! Огромное Вам спасибо!!! Потестирую, если будут косяки отпишу сюда. Извините что напряг Вас. Надо наверное заканчивать с геодезией и учить программирование, такие вещи вы умеете делать, КРУТЬ!
    --- Сообщения объединены, 23 фев 2024, Оригинальное время сообщения: 23 фев 2024 ---
    Alz, скоренько потестил всё работает, спасибо ещё раз огромное! Если дадите крипто-кошелёк то с меня чашечка кофе и круасан ;) Я наверное уже спать.
     
    #1518
  19. Timkin

    Регистрация:
    4 фев 2024
    Сообщения:
    13
    Симпатии:
    0
    Alz, добрый вечер! Если будет возможность, подкорректируйте пожалуйста программку. Не все блоки поворачивает по линии. Скриншот прилагаю.
     

    Вложения:

    #1519
  20. alz

    alz
    Форумчанин

    Регистрация:
    26 май 2014
    Сообщения:
    371
    Симпатии:
    153
    Ну собственно тут все правильно развернуто, у объектов на углах полилиний вектор направления равен сумме векторов предыдущего и последующего сегментов, тут если только опционально выбирать какой вектор в спорных ситуациях использвоать.
     
    #1520

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

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