Как посчитать точки, образующие край канавки от фрезы, как на рисунке?
Фреза движется по траектории:
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
Расписываюсь в математическом бессилии... :%:
А где предложение?
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);
Вячеславу Никонову.
Наверное, немного не в ту тему написал, но сегодня, используя Компас График, не смог построить эквидистанту к линии, построенной из 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.
Что-то не нашёл, как соединить отрезки в контур...
Цитата: Николай от 19.02.16, 15:49:50
...Что-то не нашёл, как соединить отрезки в контур...
Команда
Собрать контур.
Цитата: Николай от 19.02.16, 15:49:50
Отчётливо видны подрезания углов, что и требовалось выявить.
Конфликт радиусов кривизны базовой линии (переменная величина вдоль линии) и расстояния до эквидистантного контура. Очевидно же...