Как вычислить эквидистанту?

Автор Николай, 18.02.16, 13:32:35

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Николай

Как посчитать точки, образующие край канавки от фрезы, как на рисунке?
Фреза движется по траектории:

        X1 = 0
        Y1 = R
For t = 0 To 2 * Pi + 0.05 Step dt
        'Синусоида на окружности
     X = (R + (E * Sin(t * (Z)))) * Sin(t)
     Y = (R + (E * Sin(t * (Z)))) * Cos(t)
       ksDocument2D.ksLineSeg X, Y, X1, Y1, 1
        X1 = X
        Y1 = Y
   Next t

Расписываюсь в математическом бессилии... :%:


#2
Ang:=Angle(X1,Y1,X,Y);
XeN:=X+r*CosD(Ang-90);
YeN:=Y+r*SinD(Ang-90);
XeV:=X+r*CosD(Ang+90);
YeV:=Y+r*SinD(Ang+90);
+ Благодарностей: 1

Николай

#3
Вячеславу Никонову.
Наверное, немного не в ту тему написал, но сегодня, используя Компас График, не смог построить эквидистанту к линии, построенной из 10000 соединённых между собой отрезков.
А вот и предложение: Чтоб Компас График смог!  :)

Задача сугубо практическая. Пытаюсь решить её с помощью API.
Вот Борис Николаевич  подкинул формулы, попробую разобраться...

Делается легко, соединяете отрезки в контур и строите эквидистанту.

Николай

И программным способом получилось!

Немного подправил ваши формулы под VB:
'Построение канавок
       Ang = Atn((Y1 - Y) / (X1 - X)) 'Угол касательной к синусоиде
'Наружная канавка
   XeN = (X - rC * Cos(Ang - Pi / 2))
   YeN = Y - rC * Sin(Ang - Pi / 2)
   XeV = X1 - rC * Cos(Ang - Pi / 2)
   YeV = Y1 - rC * Sin(Ang - Pi / 2)
и т.д.
Отчётливо видны подрезания углов, что и требовалось выявить.

P.S.
Что-то не нашёл, как соединить отрезки в контур...

Elaeagnus

Цитата: Николай от 19.02.16, 15:49:50
...Что-то не нашёл, как соединить отрезки в контур...

Команда Собрать контур.

Вячеслав

Цитата: Николай от 19.02.16, 15:49:50
Отчётливо видны подрезания углов, что и требовалось выявить.

Конфликт радиусов кривизны базовой линии (переменная величина вдоль линии) и расстояния до эквидистантного контура. Очевидно же...