Здравствуйте, Уважаемые Гуру AutoLisp! Помогите, пожалуйста, написать lisp. Использовал lisp - "Geo_ALign_object_to_curve_v2_0_2.vlx" он поворачивает текст вдоль линии. Есть похожий в меню-гео - "переместить текст вдоль линии". Но каждый раз выбирать объект, потом линию или наоборот довольно утомительный процесс. Возможно ли сделать чтобы программка перебирала скажем выбранные блоки или текст, или объекты в слое, которые лежат на полилинии или в её вершинах и поворачивала вдоль этой линии. Всем не равнодушным заранее СПАСИБО!
Именно вдоль или вдоль с учетом нормальной видимости, что бы тексты вверх ногами не были? Стандартные варианты например на квадрате на нижнем ребре сделают тексты нормальные а на верхнем вверх ногами.
Конечно хотелось бы чтобы красиво, нашел Лисп от Lee Mac но он разбивает линии вершинах где блоки. Может можно его подкорректировать???
ALZ, а на чём Вы пишете? Тот лисп что я нашёл, хорош тем что крутит только блоки на линии а остальные не трогает. Но беда лишь в том что линию разбивает на куски и причем не просто в точке а удаляет кусок линии который за блоком.
КАК??! Как С# дружит с автокадом? Я немного учу Java, но даже и малость не могу представить что там и куда можно написать чтобы автокад что-то сделал))) Добавил gif-ку работы лиспа от Lee Mac
Alz, ну Вы меня и загрузили конечно! Теперь стало похоже на Java! Может подскажите где найти документацию по Классам и методам, объектам по Autocad как у Oracle для Java?
https://help.autodesk.com/view/OARX...gedRefGuide-Autodesk_AutoCAD_DatabaseServices вот тут смотри, в справке все есть, правда с описаниями почти везде беда в общем готово. Либо выбираешь заранее либо если не выбирал кривые (линии полилинии круги сплаины и тд) предложит выбрать. после выбора этих кривых спросит на каком расстоянии от кривых будем разворачивать объекты, после чего либо выбираем базовый объект(текст мтекст или блок) и программа расставит вдоль линии все объекты выбранного типа с таким же цветом и слоем, либо если не выбираете расставляет вдоль линий все тексты мтексты и блоки, находящиеся на заданном расстоянии от линий. После скачивания архив разблокировать, грузить через netload, на ленте появится кнопка или просто в командной строке команду AlignOnCurves
Alz, спасибо большое! Буду тестировать! Добрался до форума adn-cis - ужас как там всё страшно, коды такие аж в глазах рябит! А Вы - вечерок и программка готова! Большое уважение! --- Сообщения объединены, 22 фев 2024, Оригинальное время сообщения: 22 фев 2024 --- Кнопка появилась, но не работает... :( Может файл автокада приложить?
приложи, посмотрю, и что пишет в строку после нажатия на кнопку. Как вариант у меня тут использован метод получения угла из вектора появившийся видимо в 2024 автокаде, вроде как в старом Api такой перегрузки не было, может поэтому не сработать если вы в версии ниже, надо будет чутка переделать.
--- Сообщения объединены, 22 фев 2024, Оригинальное время сообщения: 22 фев 2024 --- Я работаю в 2019 Acad и Сivil.
все проверил, все работает, только у вас блоки специфические, угол поворота текста в блоке задается параметром в блоке, а не поворотом блока, программа же разворачивает именно блок а не текст в нем, можно просто взорвать, тогда будет выглядеть вот так, но хз насколько вам важно сохранение блока. Можно сделать конечно программу под ваш вариант блока но тогда это будет не универсальная программа разворота всего а спец программа под конкретный тип блока. --- Сообщения объединены, 22 фев 2024 --- вот тут не скрине кстати блок развернут программой нормально, угол поворота блока определяется круглой ручкой, направление от квадратной на круглую как раз по линии идет, так что вроде как работает корректно.
Такие блоки нам выдал территориальный орган архитектуры. Лучше пусть будет универсальная. А у Вас работает потому что автокад 2024? на младших не будет работать? --- Сообщения объединены, 23 фев 2024, Оригинальное время сообщения: 22 фев 2024 --- Что-то я делаю не так??! Посмотрите gif, пожалуйста.
Так, в общем переделал разворот, вместо просто установки параметра разворота сделал через трансформацию и блоки начали разворачиваться корректно, видимо програмное изменение параметра не все что надо, в новой версии будет работать, ну и выравнивание сделал и на блоки тоже и сделал это опцией, будет спрашивать после выбора дистанции Если не заработает то переделаю метод определения угла. больше вариантов у меня нет, все остальные методы еще в 14 автокаде были и должны работать
Теперь всё работает! Огромное Вам спасибо!!! Потестирую, если будут косяки отпишу сюда. Извините что напряг Вас. Надо наверное заканчивать с геодезией и учить программирование, такие вещи вы умеете делать, КРУТЬ! --- Сообщения объединены, 23 фев 2024, Оригинальное время сообщения: 23 фев 2024 --- Alz, скоренько потестил всё работает, спасибо ещё раз огромное! Если дадите крипто-кошелёк то с меня чашечка кофе и круасан ;) Я наверное уже спать.
Alz, добрый вечер! Если будет возможность, подкорректируйте пожалуйста программку. Не все блоки поворачивает по линии. Скриншот прилагаю.
Ну собственно тут все правильно развернуто, у объектов на углах полилиний вектор направления равен сумме векторов предыдущего и последующего сегментов, тут если только опционально выбирать какой вектор в спорных ситуациях использвоать.