|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Создание фаски, фиксированной ширины, между дугами.
программист
Москва
Регистрация: 20.12.2005
Сообщений: 1,439
|
||
Просмотров: 9907
|
|
||||
Цитата:
|
||||
![]() |
|
||||
Цитата:
1 нарисовал две дуги с общей точкой 2 нарисовал окружность с опцией (tan tan radius) 3 между точками косания окружности и дуг провел линию 4 отмаштабировал дуги и линию, чтоб длинна линии была 5мм, а окружность стер. Всем этот метод хорош, но так нельзя нарисовать фаску, не изменяя радиуса дуг, т.е. для картинки-пояснения - подходит, а для чертежа - нет. Подскажите, какую информацию еще можно дать? PS. Полная задача выглядит: Есть куча дуг и нужно во всех парах снять фаски заданной ширины... Как это сделать я не знаю, ![]() ![]() |
||||
![]() |
|
||||
Регистрация: 23.09.2005
СПб
Сообщений: 428
|
Тогда алгоритм:
1. Строим окружность R=ширина фаски с центром на одной из окружностей на расстоянии треб. точности от общей точки 2. находим точку пересечения со второй окружностью 3. строим касательные, сравниваем углы 4. если не удовлетворяет сдвигаемся дальше по первой дуге и сначала |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
Я так понял, что да. Лично мне формулы получить не удается.
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Цитата:
Как это можно нарисовать в автокаде? Не двигать же круг, выбирая на глаз, примерно равный угол. ![]() |
||||
![]() |
|
||||
Регистрация: 14.03.2006
Сообщений: 863
|
l - нужная длина фаски, я взял 50
white - исходные дуги, dR - дельта между ихними радиусами magenta - эквидистанты исходных дуг на расстояние dR green - дуга по точкам пересечения исходных дуг и эквидистант, R равен радиусу малой дуги + dR (или радиус большой - dR) cyan - из центра дуги green проводим две окружности, радиусы которых соответственно R+l/2 и R-l/2 red - точки пересечения этих окружностей с исходными дугами соединяем отрезком на глазок углы вроде одинаковые [ATTACH]1151661173.dwg[/ATTACH] |
|||
![]() |
|
||||
Регистрация: 20.07.2005
СПб
Сообщений: 89
|
Евгений, объясни, что такое фаска фиксированной длинной:
1.Если в точке пересечения построить окружность радиусом равным длине фаски и найти пересечение дуг и этой окружности Или 2.Равны длины "малых дуг" от точки пересечения исходных дуг до конечных точек фаски |
|||
![]() |
|
||||
Регистрация: 14.03.2006
Сообщений: 863
|
действительно не 50, а то я уж раздулся от собственной гениальности
а вот насчет без привязок это зря там у меня еще окружность R50 была из точки пересечения эквидистант с дугами к ней и привязался. Соответственно таких фасок как минимум две получается. А если между ними бисектрису построить и обрезать исходными дугами то длина полученного отрезка будет 49,9925 |
|||
![]() |
|
||||
>Zouss
В твоем файле, расстояние между пересечениями не 50 и линия проведена без привязок, т.е. не точно... >Денис Флюстиков Нужно построить линию, чтоб она была точно заданной длинны. Фаска нужна, чтоб затупить острый угол. |
||||
![]() |
|
||||
Цитата:
![]() А если серьезно... Нужно, чтоб угол между фаской и касательной к дуге в точке пересечения фаски и дуги, с обеих сторон фаски, был как можно ближе к равенству, другими словами - не сильно отличался, скажем не более чем на 15гр... Т.е. дуги могут быть в разные стороны, разных радиусов, под разными углами. Мне нужно найти способ быстрого рисования фасок, точной ширины и с примерно одинаковыми углами... |
||||
![]() |
|
||||
Цитата:
Нужна программа, которая будет автоматом снимать фаски со всех полилиний в чертеже, причем полилинии только из дуговых сегментов, количество сегментов в пределах 80 - 300 и количество полилиний, в среднем около 1500 в чертеже... Нужно найти способ, чтоб задача решалась очень быстро - не более полуминуты... Т.е. вариант с перебором не очень подходит, а жаль... Возможно, вы предложите вариант? У меня нет задачи, чтоб вы написали программу, нужно только найти алгоритм, дальше не проблема! |
||||
![]() |
|
||||
Конструирование в области нефтеразведки Регистрация: 10.02.2006
Гомель
Сообщений: 321
|
ытя
С квадратным уравнением все правильно, однако при тех же исходных данных (R1,R2,c,f) существует еще одна вписанная окружность и для ее радиуса будет уравнение x^2*((R1+R2)^2 - c^2 + f^2) - x*f^2*(R1 - R2) - R1*R2*f^2 = 0 Вот тут и не понятно, как программе определить какое уравнение решать, т.к радиусы будут разные. [ATTACH]1151935760.GIF[/ATTACH] |
|||
![]() |
|
||||
Конструирование в области нефтеразведки Регистрация: 10.02.2006
Гомель
Сообщений: 321
|
>Елпанов Евгений
Цитата:
>ытя Повторюсь При одинаковых исходных данных (R1,R2,c,f) существуют две вписанных окружности разных радиусов. Решением квадратного уравнения является радиус и для варианта 1 (см.рисунок) x^2*((R1+R2)^2 - c^2 + f^2) - x*f^2*(R1 - R2) - R1*R2*f^2 = 0 а для варианта 2 x^2*((R1+R2)^2 - c^2 + f^2) + x*f^2*(R1 - R2) - R1*R2*f^2 = 0 Честно говоря я не соображу какое еще должно быть условие чтобы была однозначность варианта нахождения радиуса. Если можешь поделись. [ATTACH]1152014602.GIF[/ATTACH] |
|||
![]() |