Изменение существующей команды PLD lisp
Будучи новичком в Lisp, я хотел бы узнать, могу ли я попросить вас о помощи в изменении уже существующего кода, который я нашел в Интернете из раздела « Как упростить полилинию в AutoCAD?».. Мы будем очень признательны за любые рекомендации или поддержку, которые вы можете предоставить.
CAD того, что я хочу получить:
Я хотел бы удалить все точки полилинии, которые находятся ближе друг к другу, чем любые другие несмежные точки. Кроме того, мне нужно устранить все узкие места. Крайне важно, чтобы выпрямленная линия оставалась внутри замкнутого контура, а вершины не выходили за пределы существующей полилинии или линии замкнутого контура.
Я добавил изображения чертежей САПР, чтобы показать, чего я хочу достичь. Чтобы объяснить проблему дальше: я хотел удалить вершины, как это делает этот код, но как только он удалит вершины, я не хочу, чтобы новые вершины многоугольника имели сегменты линий, выходящие за пределы оригинала. Кроме того, я хочу, чтобы часть кода определяла, есть ли несмежные вершины, которые находятся ближе, чем соседние вершины, которые превышают пороговое значение, выбранное нами (если порогового значения нет, мы могли бы в конечном итоге удалить вершины, которые представляют собой одну длинную прямую). линия). Это делается для того, чтобы удалить форму дросселя, которую вы можете увидеть на рисунке-примере, приведенном ниже.
Большое спасибо за ваше время и внимание. Я действительно ценю любую помощь, которую вы можете предложить! :)