Сообщество программистов Autodesk в СНГ

ADN Club => Организация проектирования => Тема начата: Алексей (IdeaSoft) от 22-03-2018, 18:01:59

Название: Замена дуг прямыми участками в полилинии
Отправлено: Алексей (IdeaSoft) от 22-03-2018, 18:01:59
К примеру есть полилиния с дуговыми сегментами.

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

Конечно я могу это сделать с помощью AutoCAD API
Но зачем писать программку, если это возможно
сделать стандартными средствами.
Название: Re: Замена дуг прямыми участками в полилинии
Отправлено: Алексей Кулик от 22-03-2018, 19:12:59
Выделить полилинию - клик на средней ручке сегмента - Преобразовать в прямую. Это если в ACAD дело происходит ;)
Название: Re: Замена дуг прямыми участками в полилинии
Отправлено: Александр Ривилис от 23-03-2018, 01:13:28
Конечно я могу это сделать с помощью AutoCAD API
Вот и сделай.
при условии что дуги превратятся
прямые участки с заданной длины.
Вот этой фразы я совсем не понял. Начало и конец дуги определяют начало и конец линейного сегмента. Поэтому длина сегмента может быть только такой.

P.S.: Команда _PEDIT с опцией _Decurve делает именно то, что тебе нужно, т.е. заменяет все дуговые сегменты полилинии на линейные:

(https://farm1.staticflickr.com/805/40067068245_d17c71537b_o.png)
Название: Re: Замена дуг прямыми участками в полилинии
Отправлено: Дима_ от 25-03-2018, 14:01:34
Я так понял нужна апроксимизация с заданной точностью - штатно такого нет, но через api что на Lisp, что на .Net, что через COM - это делается в 20 строк - вычисляются промежуточные точки дуговых сегментов и заменяются новыми вершинами.
Название: Re: Замена дуг прямыми участками в полилинии
Отправлено: Александр Ривилис от 25-03-2018, 14:05:47
Я так понял нужна апроксимизация с заданной точностью
Хм. Из постановки задачи я этого не понял, хотя перечитав её могу согласитяся. Заданную точность обычно определяют не длиной отрезка, а расстоянием от середины хорды до самой линии.
Название: Re: Замена дуг прямыми участками в полилинии
Отправлено: Алексей (IdeaSoft) от 25-03-2018, 14:19:21
Я так понял нужна апроксимизация с заданной точностью - штатно такого нет, но через api что на Lisp, что на .Net, что через COM - это делается в 20 строк
Алгоритм у меня готовый есть.
А вот стандартными средствами этого в автокаде наверное нет.