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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Построение касательной к двум окружностям

Построение касательной к двум окружностям

Ответ
Поиск в этой теме
Непрочитано 22.08.2006, 04:39
Построение касательной к двум окружностям
Никита В.
 
CAD Operator
 
Samara-Gorodok
Регистрация: 01.11.2005
Сообщений: 389

Задача в следующем: имеется 2 окружности разного диаметра, произвольно расположенные в пространстве, надо провести линию являющуюся касательной к обеим окружностям.

Метод последовательных приближений не предлагать.

П.С. Задача должна быть решена средствами акада в т.ч. и посредством лиспа.
__________________
АвтоКАД это не только электронный кульман,
Но и великий ГЕМОР
Просмотров: 70886
 
Непрочитано 16.09.2019, 12:33
| 1 #61
valerik88


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


Цитата:
Сообщение от zenon Посмотреть сообщение
это не касательные
точно... двойка мне по геометрии

Разрешите исправиться!
Миниатюры
Нажмите на изображение для увеличения
Название: 1.gif
Просмотров: 68
Размер:	2.13 Мб
ID:	217907  

Последний раз редактировалось valerik88, 16.09.2019 в 12:44.
valerik88 вне форума  
 
Непрочитано 16.09.2019, 12:52
#62
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,326


для чего это всё?
Решение в #2 https://forum.dwg.ru/showpost.php?p=88441&postcount=2
справедливо для примитивов _line, _xline, _ray
Хмурый вне форума  
 
Непрочитано 16.09.2019, 13:00
#63
valerik88


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


Хмурый, дык, этим способом шляпа какая-то выходит... отрезки не ровные, не точные получаются.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.gif
Просмотров: 30
Размер:	1.10 Мб
ID:	217908  
valerik88 вне форума  
 
Непрочитано 16.09.2019, 13:13
#64
MaksN


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


Цитата:
Сообщение от No M.P. Посмотреть сообщение
Дотяните ручками (grips) до исходного значения. Касательная, прилипшая к окружностям будет менять угол .


Цитата:
Сообщение от koMon Посмотреть сообщение
на радиус также можно поставить параметрический ограничитель


Цитата:
Сообщение от gumel Посмотреть сообщение
Да ладно! Как так то?
Автокад, используя штатные привязки, строит эту касательную весьма точно! Откуда у вас столько итераций?
Речь идет об одной линии как касательная сразу двум окружностям.
MaksN вне форума  
 
Непрочитано 16.09.2019, 14:55
| 2 #65
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,326


valerik88, а я что-то про полилинию написал?
Это относится к отрезку, прямой и лучу, но не к полилинии.
PS 1. команда _line
2. На запрос ввести точку- Включаем привязку "касательная"
3. указываем на одну из окружностей
4. На запрос ввести вторую точку- Включаем привязку "касательная"
5. указываем на вторую окружность
ВСЁ

Об этом и написано в #2 тринадцать лет назад

Цитата:
_line
Specify first point: _tan to
Specify next point or [Undo]: _tan to
Specify next point or [Undo]:
Хмурый вне форума  
 
Непрочитано 16.09.2019, 15:08
#66
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,665


Цитата:
Сообщение от MaksN Посмотреть сообщение
Речь идет об одной линии как касательная сразу двум окружностям.
по-простому построение 4-х касательных для двух окружностей, которые могут иметь касательные
Код:
[Выделить все]
 
(setq 2_circles_sset (ssget '((0 . "CIRCLE"))))
(if (< (vla-get-radius (setq major_circle_object (vlax-ename->vla-object (ssname 2_circles_sset 0))))
	   (vla-get-radius (setq minor_circle_object (vlax-ename->vla-object (ssname 2_circles_sset 1))))
	)
	(setq major_circle_object (vlax-ename->vla-object (ssname 2_circles_sset 1))
		  minor_circle_object (vlax-ename->vla-object (ssname 2_circles_sset 0))
	)
)
(setq difference_radius (- (setq major_radius (vla-get-radius major_circle_object))
						   (setq minor_radius (vla-get-radius minor_circle_object))
						)
	  summary_radius (+ (setq major_radius (vla-get-radius major_circle_object))
						(setq minor_radius (vla-get-radius minor_circle_object))
					 )
 	  centers_distance (distance (vlax-get major_circle_object 'center) (vlax-get minor_circle_object 'center))
 	  sin_of_tangent_angle_1 (/ difference_radius centers_distance)
 	  cos_of_tangent_angle_1 (sqrt (- 1.0 (* sin_of_tangent_angle_1 sin_of_tangent_angle_1)))
 	  tangent_angle_1 (atan (/ sin_of_tangent_angle_1 cos_of_tangent_angle_1))
 	  major_circle_tangent_point_1 (polar (vlax-get major_circle_object 'center)
	  									  (setq minus_normal_tangent_angle_1 (- (angle (vlax-get minor_circle_object 'center)
	  									  	 	    					 	  		   (vlax-get major_circle_object 'center)
										  	 							        )
										  	 							        (- pi (- (* 0.5 pi) tangent_angle_1))
																	  	     )
										  )
										  major_radius
								   )
 	  minor_circle_tangent_point_1 (polar (vlax-get minor_circle_object 'center)
	  									  minus_normal_tangent_angle_1
										  minor_radius
								   )
 	  major_circle_tangent_point_2 (polar (vlax-get major_circle_object 'center)
	  									  (setq plus_normal_tangent_angle_1 (+ (angle (vlax-get minor_circle_object 'center)
	  									  	 	    					 	  		  (vlax-get major_circle_object 'center)
										  	 							       )
										  	 							       (- pi (- (* 0.5 pi) tangent_angle_1))
																	  	    )
										  )
										  major_radius
								   )
 	  minor_circle_tangent_point_2 (polar (vlax-get minor_circle_object 'center)
	  									  plus_normal_tangent_angle_1
										  minor_radius
								   )
 	  sin_of_tangent_angle_2 (/ summary_radius centers_distance)
 	  cos_of_tangent_angle_2 (sqrt (- 1.0 (* sin_of_tangent_angle_2 sin_of_tangent_angle_2)))
 	  tangent_angle_2 (atan (/ sin_of_tangent_angle_2 cos_of_tangent_angle_2))
 	  major_circle_tangent_point_3 (polar (vlax-get major_circle_object 'center)
	  									  (setq minus_normal_tangent_angle_2 (- (angle (vlax-get minor_circle_object 'center)
	  									  	 	    					 	  		   (vlax-get major_circle_object 'center)
										  	 							        )
										  	 							        (- pi (- (* 0.5 pi) tangent_angle_2))
																	  	     )
										  )
										  major_radius
								   )
 	  minor_circle_tangent_point_3 (polar (vlax-get minor_circle_object 'center)
	  									  (+ minus_normal_tangent_angle_2 pi)
										  minor_radius
								   )
 	  major_circle_tangent_point_4 (polar (vlax-get major_circle_object 'center)
	  									  (setq plus_normal_tangent_angle_2 (+ (angle (vlax-get minor_circle_object 'center)
	  									  	 	    					 	  		  (vlax-get major_circle_object 'center)
										  	 							       )
										  	 							       (- pi (- (* 0.5 pi) tangent_angle_2))
																	  	    )
										  )
										  major_radius
								   )
 	  minor_circle_tangent_point_4 (polar (vlax-get minor_circle_object 'center)
	  									  (- plus_normal_tangent_angle_2 pi)
										  minor_radius
								   )
)
(command "_line" "_non" major_circle_tangent_point_1 "_non" minor_circle_tangent_point_1 "")
(command "_line" "_non" major_circle_tangent_point_2 "_non" minor_circle_tangent_point_2 "")
(command "_line" "_non" major_circle_tangent_point_3 "_non" minor_circle_tangent_point_3 "")
(command "_line" "_non" major_circle_tangent_point_4 "_non" minor_circle_tangent_point_4 "")
koMon вне форума  
 
Непрочитано 16.09.2019, 15:16
| 1 #67
valerik88


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


Хмурый, действительно с отрезком всё получается. Не думал, что отрезок с полилинией будет по разному себя вести.
valerik88 вне форума  
 
Непрочитано 16.09.2019, 15:50
| 1 #68
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,825
<phrase 1=


Цитата:
Сообщение от valerik88 Посмотреть сообщение
Не думал, что отрезок с полилинией будет по разному себя вести.
Хм, прикольно.
Судя по всему при использовании полилинии AutoCAD строит касательную к окружности как будто продолжение от последней точки любого построенного объекта.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 16.09.2019, 16:07
#69
MaksN


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


Цитата:
Сообщение от Хмурый Посмотреть сообщение
а я что-то про полилинию написал?
Это относится к отрезку, прямой и лучу, но не к полилинии.
PS 1. команда _line
2. На запрос ввести точку- Включаем привязку "касательная"
3. указываем на одну из окружностей
4. На запрос ввести вторую точку- Включаем привязку "касательная"
5. указываем на вторую окружность
ВСЁ

Цитата:
Сообщение от valerik88 Посмотреть сообщение
Хмурый, действительно с отрезком всё получается. Не думал, что отрезок с полилинией будет по разному себя вести.
Действительно так
MaksN вне форума  
 
Непрочитано 17.09.2019, 21:14
#70
VladiT

Архитектор, 3д-виз.
 
Регистрация: 26.07.2019
Москва
Сообщений: 729


Что-то меня заклинило при анализе этой темы. Прошу прощения, но мне кажется очевидным, что касательные могут быть только к окружностям, расположенным в одной плоскости.
А если они лежат в разных плоскостях (как указано в первоначальном задании) , то касательной будет любая линия, просто имеющая общую точку с каждой окружностью. Ведь что есть касательная в геометрическом смысле? Это линия, имеющая только одну точку касания с окружностью. Если линия и окружность расположены в одной плоскости, а линия исходит из ранее определенной точки, то касание ее к окружности возможно только в одной единственной точке, и это дает известная привязка Автокада.
Но если линия и окружность в разных плоскостях, то линия может коснуться окружности в любой точке, и все они будут "касательными".

Собственно, достаточно провести в 3д-виде линию между такими окружностями с помощью привязки "NEAREST" - и это будет касательная к обоим окружностям. Причем, таких "касательных" можно создать бесконечно много.

Другое дело, если требуется чтобы касательная в результате была создана в какой-то указанной ранее проекции просмотра обоих окружностей, находящихся в разных плоскостях. Тогда задача сводится к проведению касательной к проекции этих окружностей, из которых как минимум одна неизбежно будет тогда уже эллипсом. .Но в начальном примере вроде-бы речь не об этом.
VladiT вне форума  
 
Непрочитано 18.09.2019, 14:54
#71
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,665


Цитата:
Сообщение от VladiT Посмотреть сообщение
что касательные могут быть только к окружностям, расположенным в одной плоскости
кстати да! если это окружности в пространстве, то линией, касающейся обеих окружностей (не касательной), может быть любая прямая лежащая на замкнутой криволинейной поверхности соединяющей эти окружности и имеющая с ней общую прямю линию соприкосновения.
koMon вне форума  
 
Непрочитано 18.09.2019, 15:04
#72
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,326


VladiT, koMon, об этом тоже сказано в #2
Хмурый вне форума  
 
Непрочитано 09.01.2020, 10:09
#73
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,665


Хмурый, я #2 не читал, но по ходу прежде чем, нужно всё прочитать
koMon вне форума  
 
Непрочитано 10.01.2020, 07:20
#74
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391


Offtop: сказал он через четыре месяца рассуждений
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 20.01.2020, 14:11
#75
bigden


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


Цитата:
Сообщение от nmr Посмотреть сообщение
1. Имеем две окружности: малая О1, большая О2.
2. Строим отрезок С, соединяющий центры О1,О2.
3. Точку пересечения С и О2 именуем Т1.
4. Откладываем на отрезке С от точки Т1 к центру О2 величину радиуса О1. Это точка Т2.
5. Из центра О2 строим окр. через Т2. Это окружность О3.
6. Из центра О1 проводим касательную K к О2. Точка пересечения К и О3 это Т3.
7. Прводим луч Л из центра О2 и точку Т3. Точка пересечения данного луча с О2 это Т4.
8. Копируем К в точку Т4. Последний примитив и будет касательной к двум окружностям.
но ведь по п.5 касательная к О2 не пересекает О3
bigden вне форума  
 
Непрочитано 21.01.2020, 09:22
#76
avatarez


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


рисуночки
Миниатюры
Нажмите на изображение для увеличения
Название: Касательная_02.png
Просмотров: 40
Размер:	87.8 Кб
ID:	222172  Нажмите на изображение для увеличения
Название: Касательная окружность_01.png
Просмотров: 40
Размер:	97.6 Кб
ID:	222173  

Последний раз редактировалось avatarez, 21.01.2020 в 12:11.
avatarez вне форума  
 
Непрочитано 21.01.2020, 09:52
#77
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391


Цитата:
Сообщение от avatarez Посмотреть сообщение
рисуночки
для автокада норм (хотя при наличии привязки "касательно" нафига вообще такие построения?), а графически не хватает точек пересечения с малой окружностью. Да, в теории будет одна точка у каждой проведенной линии. Но это в теории.
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 21.01.2020, 10:28
#78
avatarez


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


Цитата:
Сообщение от Bull Посмотреть сообщение
при наличии привязки "касательно"
это к предыдущему посту, привязка "касательная" конечно есть

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

заменил как еще проще

Последний раз редактировалось avatarez, 21.01.2020 в 12:12.
avatarez вне форума  
 
Непрочитано 28.04.2020, 13:59
#79
proZdwg


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


Цитата:
Сообщение от bigden Посмотреть сообщение
но ведь по п.5 касательная к О2 не пересекает О3
Описка в п.6. Его следует (с позволения автора) читать:
6. Из центра О1 проводим касательную K к О2 О3. Точка пересечения касания К и О3 это Т3.

Даже странно что обсуждение затянулось на годы.
proZdwg вне форума  
 
Непрочитано 28.04.2020, 15:01
#80
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,326


Цитата:
Сообщение от proZdwg Посмотреть сообщение
Даже странно что обсуждение затянулось на годы.
Просто не владеют грамотностью современные проектировщики.
ответ дан в сообщении №2 22.08.2006
Полный и исчерпывающий.
Никакие дополнительные построения не нужны
PS матчасть следует изучить и знать
Хмурый вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Построение касательной к двум окружностям

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

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