oknosoft / windowbuilder

Окнософт:Заказ дилера
http://www.oknosoft.ru/zd/
Other
10 stars 19 forks source link

расчёт радиуса дуги через усреднённое значение #550

Closed rnpoddor closed 3 years ago

rnpoddor commented 4 years ago

Расчёт радиуса дуги через среднее значение минимального и максимального радиуса даёт существенную погрешность, предлагаю рассчитывать через усреднённое значение радиусов вычисляемых по кривизне дуги с заданным шагом. Экспериментируя, я остановился на шаге, который вычисляется как длина дуги поделенная на 50, в этом случае разница между радиусами дуг створок не превышает нескольких миллиметров (хотя проводил тестирование на одном изделии). Чем делитель больше, тем больше точность вычисляемого радиуса.

unpete commented 4 years ago

Уточните, как, кто и в какой момент будет использовать это число. В нашей 2d модели нет дуг и радиусов. Есть только Безье с апроксимацией дуг. Для цеха есть безбумажка и точный расчет смещения каждой опоры формовочного стола.

unpete commented 4 years ago

Если планируете через радиус что-то вычислять, правильнее выкинуть ручные алгоритмы и забрать нужные цифры прямо из программы

rnpoddor commented 4 years ago

Сейчас на производстве используют радиус, точно не знаю как они справляются с неверным радиусом створок, пока не начнут использовать безбумажку. Претензии поступают от ПТО, в изделии из примера их напрягла разница в радиусах 2-х дуг створок.

unpete commented 4 years ago

Ну так замкнутый круг пора разомкнуть. Радиус - мелочь, но высвечивает реальные проблемы. Ростислав, подчиняйте себе ПТО и прочих бузотеров. Вы не найдете компромисса. Либо заставите их думать, либо сами деградируете.

unpete commented 4 years ago

на производстве используют радиус

Значит, кто-то из IT позволил им это делать. Надо людей поправить поскорее, чтобы снизить количество брака и переделок.

unpete commented 4 years ago

Вычислять радиус по кривизне - плохая идея. Даже есть заменить дискретное усреднение честным интегралом по всем точкам пути. Сделал расчет по трём точкам: https://github.com/oknosoft/windowbuilder/commit/b1b507af51876dfd7424d5a4d7924731412cb148 - полученное таким способом число будет меньше всего отличаться от радиуса, заданного при построении. Дополнительные изменения: