| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание фаски, фиксированной ширины, между дугами.

Создание фаски, фиксированной ширины, между дугами.

Ответ
Поиск в этой теме
Непрочитано 30.06.2006, 11:50 #1
Создание фаски, фиксированной ширины, между дугами.
Елпанов Евгений
 
программист
 
Москва
Регистрация: 20.12.2005
Сообщений: 1,439

Сразу оговорюсь - нужен алгоритм и в конечном счете лисп... Именно по этому, создаю тему в разделе программирования, хотя для начала он выглядит как обычная начертлка.
Задача: есть две дуги с общей точкой и различными радиусами, нужно нарисовать фаску, с фиксированной длинной.
Посмотрите рисунок, нужно нарисовать линию (красный цвет), все данные о дугах есть, радиусы дуг всегда разные, в широких пределах, дуги могут стыковаться любыми концами...
Т.е. на рисунке, обе дуги стыкуются конечными точками, а может быть:
конец-конец
конец-начало
начало-конец
начало-начало...
Угол между дугами может быть любой...

Сразу поясню, в любом случае, фаску построить можно - ширина фаски, всегда меньше радиусов дуг и их длинны (причем на много).

PS. Заранее спасибо за любые советы, можно без програмирования, для начала интересно, как такое можно нарисовать...
[ATTACH]1151653808.jpg[/ATTACH]
Просмотров: 9494
 
Автор темы   Непрочитано 30.06.2006, 12:03
#2
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Забыл упомянуть...
В конечном счете нужно найти координаты концов фаски, с точностью 1е-3 (0.001мм).
Елпанов Евгений вне форума  
 
Непрочитано 30.06.2006, 12:11
#3
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 424


Маловато исходных данных - таких отрезков очень много. Нужен либо угол наклона, либо отстояние от общей точки.
По сути: думаю, можно использовать формулу окружности.
ытя вне форума  
 
Автор темы   Непрочитано 30.06.2006, 12:21
#4
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от ытя
Маловато исходных данных - таких отрезков очень много. Нужен либо угол наклона, либо отстояние от общей точки.
По сути: думаю, можно использовать формулу окружности.
В идеальном случае, нужно, чтоб угол между фаской и касательной к дуге был одинаковым, с обеих сторон... Правда точность угла, не так критична, главное, чтоб после снятия фаски, оба угла хорошенько затупились и были примерно одинаковы.
Елпанов Евгений вне форума  
 
Автор темы   Непрочитано 30.06.2006, 12:29
#5
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от _Andre_
Согласен с ытя - данных мало.
Попробую объяснить, как я рисовал рисунок для пояснения (в первом посте).
1 нарисовал две дуги с общей точкой
2 нарисовал окружность с опцией (tan tan radius)
3 между точками косания окружности и дуг провел линию
4 отмаштабировал дуги и линию, чтоб длинна линии была 5мм, а окружность стер.

Всем этот метод хорош, но так нельзя нарисовать фаску, не изменяя радиуса дуг, т.е. для картинки-пояснения - подходит, а для чертежа - нет.

Подскажите, какую информацию еще можно дать?
PS. Полная задача выглядит:
Есть куча дуг и нужно во всех парах снять фаски заданной ширины...
Как это сделать я не знаю, поэтому обращаюсь к форуму.
Елпанов Евгений вне форума  
 
Непрочитано 30.06.2006, 12:31
#6
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 424


Тогда алгоритм:
1. Строим окружность R=ширина фаски с центром на одной из окружностей на расстоянии треб. точности от общей точки
2. находим точку пересечения со второй окружностью
3. строим касательные, сравниваем углы
4. если не удовлетворяет сдвигаемся дальше по первой дуге и сначала
ытя вне форума  
 
Непрочитано 30.06.2006, 12:38
#7
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 424


Цитата:
Сообщение от ытя
на расстоянии треб. точности
Это я конечно загнул, лучше наверно, на R/2 и вдальнейшем пользоваться методом половинного деления
ытя вне форума  
 
Непрочитано 30.06.2006, 12:39
#8
_Andre_

механизатор
 
Регистрация: 28.12.2004
Самара
Сообщений: 312
<phrase 1=


Свое сообщение предыдущее стер, так как для Ыти уже ответили про касательные. Надо подумать...
_Andre_ вне форума  
 
Автор темы   Непрочитано 30.06.2006, 12:40
#9
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


>ытя
Спасибо за совет!
Метод перебора я знаю...
Я надеялся найти прямой способ построения.
Елпанов Евгений вне форума  
 
Непрочитано 30.06.2006, 12:52
#10
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 424


Прямойспособ - всё тоже самое, только без построений, а с помощью формул
ытя вне форума  
 
Непрочитано 30.06.2006, 12:53
#11
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Я так понял, что да. Лично мне формулы получить не удается.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 30.06.2006, 13:20
#12
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от ытя
Прямойспособ - всё тоже самое, только без построений, а с помощью формул
Хорошо, давайте отстранимся от программирования...
Как это можно нарисовать в автокаде?
Не двигать же круг, выбирая на глаз, примерно равный угол.
Елпанов Евгений вне форума  
 
Непрочитано 30.06.2006, 13:52
#13
Zouss


 
Регистрация: 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]
Zouss вне форума  
 
Непрочитано 30.06.2006, 14:04
#14
Денис Флюстиков


 
Регистрация: 20.07.2005
СПб
Сообщений: 89


Евгений, объясни, что такое фаска фиксированной длинной:
1.Если в точке пересечения построить окружность радиусом равным длине фаски и найти пересечение дуг и этой окружности
Или
2.Равны длины "малых дуг" от точки пересечения исходных дуг до конечных точек фаски
Денис Флюстиков вне форума  
 
Непрочитано 30.06.2006, 14:14
#15
ытя


 
Регистрация: 23.09.2005
СПб
Сообщений: 424


>Zouss
Для дуг с малой разницей радиусов не сработает
ытя вне форума  
 
Непрочитано 30.06.2006, 14:29
#16
Zouss


 
Регистрация: 14.03.2006
Сообщений: 863


действительно не 50, а то я уж раздулся от собственной гениальности

а вот насчет без привязок это зря

там у меня еще окружность R50 была из точки пересечения эквидистант с дугами к ней и привязался. Соответственно таких фасок как минимум две получается. А если между ними бисектрису построить и обрезать исходными дугами то длина полученного отрезка будет 49,9925
Zouss вне форума  
 
Автор темы   Непрочитано 30.06.2006, 14:30
#17
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


>Zouss
В твоем файле, расстояние между пересечениями не 50 и линия проведена без привязок, т.е. не точно...
>Денис Флюстиков
Нужно построить линию, чтоб она была точно заданной длинны. Фаска нужна, чтоб затупить острый угол.
Елпанов Евгений вне форума  
 
Непрочитано 30.06.2006, 14:54
#18
Денис Флюстиков


 
Регистрация: 20.07.2005
СПб
Сообщений: 89


>Елпанов Евгений
А какие условия еще есть, т.к. если построить подобие дуг на растояние равное длине фаски, то в этом секторе можно построить бесконечное число фасок
Денис Флюстиков вне форума  
 
Автор темы   Непрочитано 30.06.2006, 15:14
#19
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от Денис Флюстиков
>Елпанов Евгений
А какие условия еще есть, т.к. если построить подобие дуг на растояние равное длине фаски, то в этом секторе можно построить бесконечное число фасок
На самом деле, мне нужна первая попавшаяся
А если серьезно...
Нужно, чтоб угол между фаской и касательной к дуге в точке пересечения фаски и дуги, с обеих сторон фаски, был как можно ближе к равенству, другими словами - не сильно отличался, скажем не более чем на 15гр...
Т.е. дуги могут быть в разные стороны, разных радиусов, под разными углами.
Мне нужно найти способ быстрого рисования фасок, точной ширины и с примерно одинаковыми углами...
Елпанов Евгений вне форума  
 
Автор темы   Непрочитано 30.06.2006, 15:17
#20
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Хочу добавить...
Нужен способ, которым будет рисоваться нужная фаска, при любых радиусах и углах между фасками, при условии, что радиусы и длины дуг, гараздо больше ширины фаски, т.е. такую фаску возможно нарисовать!
Елпанов Евгений вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание фаски, фиксированной ширины, между дугами.

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск