Уважаемые знатоки. Не могли бы вы создать программу, чтобы размечала линию блоками через нужное расстояние, и выравнивала блок относительно линии. Желательно, чтобы программа работала сразу с несколькими линиями, показывала начало разметки, показывала, куда будет развернут блок. Есть лисп (прикладываю), но он эти условия все не выполняет
Вот если бы еще и чертежик прикладывали, с примером хотя бы на небольшом кусочке, было бы гораздо понятнее и народ бы активнее отвечал на такие запросы, ну и конечно если выкладываете с ним лисп расписать неплохо было бы типа вот это и это он делает, вот это не делает, вот это делает но не так как надо, тут таки не одна функция а целый набор.
Лучше всего подробно и доходчиво расписать, что именно нужно. Первое - общий порядок выполняемых действий. Второе - это нужно на постоянной основе или это разовая задача. Может и не нужен один лисп, а задачу можно решить стандартными средствами AutoCAD. (кстати, и версию када указать желательно). Существует много готовых решений. Если, к примеру, нужно обрезать линию под блоком, есть прекрасное решение от Lee Mac: http://www.lee-mac.com/autoblockbreak.html. Опишите подробнее, что именно Вы хотите. --- Сообщения объединены, 7 окт 2023, Оригинальное время сообщения: 7 окт 2023 --- pltools в помощь https://dwg.ru/dnl/607
Я так понимаю, что требуется разметить пикетаж по линии? Или что? Ничего другого на ум не приходит. Поэтому, как на котором указали бы - "вот линия, вот блок до выполнения программы, а вот та же линия, размеченная этим блоком" И сразу вопрос - у блока есть атрибуты? Их надо учитывать и вставлять, допустим, нумерацию или пикетаж? Вот именно поэтому я в последнее время перестал писать лиспы по просьбам страждущих. Пока добьешься нужной информации, таким придурком чувствуешь сначала "заказчика", а потом себя.
Как в чертеже это показать – не знаю. Алгоритм примерно такой: 1.Запуск программы 2.Программа просит выбрать линию для разметки 3.Выбираем линию на экране. 4.Происходит подсветка начала линии (точка отсчета). 5.Программа спрашивает – все устраивает, или произвести реверс линии. Если устраивает – следующее действие Если не устраивает – программа производит реверс линии и снова спрашивает … Если устраивает – следующее действие 6.Программа спрашивает, каким блоком произвести разметку – диалог: указать в чертеже или написать имя блока 7.Программа спрашивает: в какую сторону от линии будет ориентирован блок, или указать на экране 8.Программа спрашивает, с какой кратностью в метрах произвести разметку 9.Программа расставляет блоки --- Сообщения объединены, 7 окт 2023, Оригинальное время сообщения: 7 окт 2023 --- Атрибуты, нумерация, пикетаж не нужны. Просто блок с возможностью выбора ориентации его относительно линии. --- Сообщения объединены, 7 окт 2023 --- Примерно также работает стандартная команда "разметить" в автокаде, но вот расширенные диалоги, как я хочу, она не предлагает.
окай, напишу, ничего сложного нет, алгоритм понятен, есть мысля как это красиво сделать, времени много не займет, отвлекусь от основного проекта, а то уже мозг устал, переключусь на простенькое
А что у ЛЭП столбы тик в тик через равные промежутки стоят? Если только для проектирования, да и то вряд ли. Товарищ заинтриговал, колись автор - для чего?
Автокад-мощная штука. Много чего для него написано и пишется. Мне в своей работе приходится использовать и другие программы, в которых, например, не реализованы до конца сложные линии, например забор со столбами выше метра рисуется как линия, на которую отдельно надо ставить блоки, и т.д. В автокаде можно проделать все эти манипуляции с блоками, и затем подготовленные блоки уже использовать. --- Сообщения объединены, 8 окт 2023, Оригинальное время сообщения: 8 окт 2023 --- Можно дать разметку по линии блоком-выноской для интерполяции отметки земли, и пр. --- Сообщения объединены, 8 окт 2023 --- Можно ли добавить выбор блока с экрана, почему-то новосозданные блоки в чертеже не показывает
Вроде все круто-классно. Как всегда - Вы - умница. --- Сообщения объединены, 8 окт 2023, Оригинальное время сообщения: 8 окт 2023 --- Буду тестировать
Уважаемый ALZ. Все работает, но есть странность. Если блок легкий (состоящий из отрезков) все отлично работает. Если блок тяжелый (состоящий из полилиний и штриховки - пример прилагаю, можно взять любой блок), подсвечивание происходит очень-очень медленно. Можно ли что-либо улучшить, или это проблемы "железа"?
Тут скорее ограничение метода предварительного просмотра, пока идет редактирование блоков в чертеже нет, они показаны чисто визуально, и после нажатия Esc они уже добавляются в чертеж. В каком виде у вас проявляется замедление? У меня видимо тоже не особо такие тянет, во время движения мыши прорисовать не успевает, то есть предварительноe положениe видно когда мышка хоть на мгновение замирает, торможения самого чертежа при при зуммировании или перетаскивании не наблюдается, ну по крайней мере в вашем файле. Над оптимизацией попробую подумать, но тут все не просто, не факт что хоть что-то получится.
Замедления как такового нет. Просто при выделении линий одна линия подсвечивается, сигнализирует "начало отсчета", другие же линии подсвечиваются через какое-то время, тоже самое с визуализацией блоков. При перетягивании экрана визуализация пропадает, чтобы она появилась, надо подождать...Но работа самой программы на "отлично"
Это ограничение такого метода отображения, как вариант переделать полностью систему, вместо такого визуального добавлять блоки реально в чертеж, но тут возможны тормоза после каждого действия из менюшки, так как потребуется удалить все старые варианты с добавить все новые, чутка попозже попробую сделать такой вариант программы. --- Сообщения объединены, 9 окт 2023, Оригинальное время сообщения: 9 окт 2023 --- В общем сделал вариант где блоки сразу добавляются на чертеж, проблем в отрисовке соответственно нет, у меня отрабатывает достаточно шустро при изменениях.
Протестировал - ничего не изменилось... Может, от версии автокада зависит.? Тестирую в 2013 - тормозит, а на виртуальной машине - 2014 - все летает?
Вы правы, запускал 2 вариант командой без цифры 2, вижу, что работает по-другому. Спасибо. Буду тестировать.