Форум пользователей ПО АСКОН

Профессиональные вопросы => Пожелания и предложения пользователей => 2D: черчение и оформление => Тема начата: Николай от 18.02.16, 13:32:35

Название: Как вычислить эквидистанту?
Отправлено: Николай от 18.02.16, 13:32:35
Как посчитать точки, образующие край канавки от фрезы, как на рисунке?
Фреза движется по траектории:

        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

Расписываюсь в математическом бессилии... :%:
Название: Re: Как вычислить эквидистанту?
Отправлено: Вячеслав Никонов от 18.02.16, 13:37:27
А где предложение?
Название: Re: Как вычислить эквидистанту?
Отправлено: Sabahs от 18.02.16, 14:05:59
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);
Название: Re: Как вычислить эквидистанту?
Отправлено: Николай от 18.02.16, 20:35:13
Вячеславу Никонову.
Наверное, немного не в ту тему написал, но сегодня, используя Компас График, не смог построить эквидистанту к линии, построенной из 10000 соединённых между собой отрезков.
А вот и предложение: Чтоб Компас График смог!  :)

Задача сугубо практическая. Пытаюсь решить её с помощью API.
Вот Борис Николаевич  подкинул формулы, попробую разобраться...
Название: Re: Как вычислить эквидистанту?
Отправлено: Sabahs от 18.02.16, 20:48:24
Делается легко, соединяете отрезки в контур и строите эквидистанту.
Название: Re: Как вычислить эквидистанту?
Отправлено: Николай от 19.02.16, 15:49:50
И программным способом получилось!

Немного подправил ваши формулы под 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.
Что-то не нашёл, как соединить отрезки в контур...
Название: Re: Как вычислить эквидистанту?
Отправлено: Elaeagnus от 19.02.16, 16:34:43
Цитата: Николай от 19.02.16, 15:49:50
...Что-то не нашёл, как соединить отрезки в контур...

Команда Собрать контур.
Название: Re: Как вычислить эквидистанту?
Отправлено: Вячеслав от 19.02.16, 16:54:10
Цитата: Николай от 19.02.16, 15:49:50
Отчётливо видны подрезания углов, что и требовалось выявить.

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