Изменение существующей команды PLD lisp

Будучи новичком в Lisp, я хотел бы узнать, могу ли я попросить вас о помощи в изменении уже существующего кода, который я нашел в Интернете из раздела « Как упростить полилинию в AutoCAD?».. Мы будем очень признательны за любые рекомендации или поддержку, которые вы можете предоставить.

CAD того, что я хочу получить:

Средняя часть увеличена:

Правая часть увеличена:

Я хотел бы удалить все точки полилинии, которые находятся ближе друг к другу, чем любые другие несмежные точки. Кроме того, мне нужно устранить все узкие места. Крайне важно, чтобы выпрямленная линия оставалась внутри замкнутого контура, а вершины не выходили за пределы существующей полилинии или линии замкнутого контура.

Я добавил изображения чертежей САПР, чтобы показать, чего я хочу достичь. Чтобы объяснить проблему дальше: я хотел удалить вершины, как это делает этот код, но как только он удалит вершины, я не хочу, чтобы новые вершины многоугольника имели сегменты линий, выходящие за пределы оригинала. Кроме того, я хочу, чтобы часть кода определяла, есть ли несмежные вершины, которые находятся ближе, чем соседние вершины, которые превышают пороговое значение, выбранное нами (если порогового значения нет, мы могли бы в конечном итоге удалить вершины, которые представляют собой одну длинную прямую). линия). Это делается для того, чтобы удалить форму дросселя, которую вы можете увидеть на рисунке-примере, приведенном ниже.

Большое спасибо за ваше время и внимание. Я действительно ценю любую помощь, которую вы можете предложить! :)

0 ответов

Другие вопросы по тегам