Как програмно построить внешнее сопряжение двух дуг?
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как програмно построить внешнее сопряжение двух дуг?

Как програмно построить внешнее сопряжение двух дуг?

Ответ
Поиск в этой теме
Непрочитано 22.03.2010, 11:43 #1
Как програмно построить внешнее сопряжение двух дуг?
Jonas
 
конструктор машиностроитель
 
Новосибирск
Регистрация: 14.05.2007
Сообщений: 893

Как програмно построить "внешнее" сопряжение двух дуг?

Вложения
Тип файла: pdf Сопряжение.pdf (9.7 Кб, 367 просмотров)

Просмотров: 15420
 
Непрочитано 22.03.2010, 16:30
#2
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Дело в том, что комьютеру не обясништь - сделай чтоб было красиво, вариантов дуг может быть бесчисленное множесто, и все диапазоны надо учесть, объясни как ты их вручную сорпягаешь - что можно подрезать и в каких допусках, там глядишь и программа нарисуется.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 22.03.2010, 16:42
#3
ытя


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


Цитата:
Сообщение от Дима_ Посмотреть сообщение
вариантов дуг может быть бесчисленное множесто
При заданных радиусах сопрягающих дуг и сопрягаемых окружностей, вариантов всего 4 (по 2 "внешних" и "внутренних"дуги, симметричных относительно прямой соединяющей центры)
ытя вне форума  
 
Непрочитано 22.03.2010, 16:53
#4
asd

всё понемногу
 
Регистрация: 05.03.2008
Украина, Одесса
Сообщений: 215


Центры дуг А и В будут находиться на пересечении прямых от центров окружностей и любой точкой черной окружности. Эти точки и будут концами дуги.

Обманул. Извиняюсь.

Последний раз редактировалось asd, 22.03.2010 в 17:01.
asd вне форума  
 
Непрочитано 22.03.2010, 16:56
#5
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Да не спорте вы, если подождёте, через часок выложу код...
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 22.03.2010, 17:39
#6
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


to disney - осталось менее 20 минут
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 22.03.2010, 18:39
1 | #7
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Вот, правда иногда не корректно работает, завтра подправлю...
[IMG]http://s47.***********/i115/1003/23/da12828c5b00.gif[/IMG]
Вложения
Тип файла: zip test_sopr.zip (1.9 Кб, 131 просмотров)
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 22.03.2010, 20:04
#8
asd

всё понемногу
 
Регистрация: 05.03.2008
Украина, Одесса
Сообщений: 215


Disney, как у Вас определяется радиус дуги сопряжения?
Я вижу приложенный файлик, в котором, очевидно, прога под акад, но акада у меня нет, интересует с точки зрения начертательной геометрии.
asd вне форума  
 
Непрочитано 22.03.2010, 20:57
#9
VVapan4ik


 
Сообщений: n/a


Цитата:
Сообщение от asd Посмотреть сообщение
как у Вас определяется радиус дуги сопряжения?
А у Disney не определяется радиус сопряжения - он везде у него один в этом примере. Вы начертательную геометрию проходили? Мне кажется, что нет.
 
 
Непрочитано 23.03.2010, 00:18
#10
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Я почему-то думал, что у автора обратная задача - то есть две дуги - и их надо "сопрячь".
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 23.03.2010, 04:36
#11
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Цитата:
Сообщение от Дима_ Посмотреть сообщение
Я почему-то думал, что у автора обратная задача - то есть две дуги - и их надо "сопрячь".
Совершенно верно.
В рисунке я показал внутреннее сопряжение которое выполняет команда _fillet, а вот внешнее сопряжение очень нужно. Методом начерталки проблем нет, но многодельно.
Jonas вне форума  
 
Непрочитано 23.03.2010, 08:42
1 | #12
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Цитата:
Сообщение от asd Посмотреть сообщение
Disney, как у тебя определяется радиус дуги сопряжения?
[IMG]http://s51.***********/i134/1003/1f/ee9ebece5959.jpg[/IMG]


Цитата:
Сообщение от VVapan4ik Посмотреть сообщение
Вы начертательную геометрию проходили? Мне кажется, что нет.
Конечно, нет. От куда в Сибирской Государственной Геодезической Академии, на факультете прикладной геодезии ей взяться?

Цитата:
Сообщение от Дима_ Посмотреть сообщение
Я почему-то думал, что у автора обратная задача - то есть две дуги - и их надо "сопрячь".
[IMG]http://s54.***********/i143/1003/23/9861b45a6648.gif[/IMG]

Может не совсем и по Lisp-овски, но методом "научного тыка" и графическими построениями сочинил вот такое
Код:
[Выделить все]
(defun C:test (/      first  second O_1	   O_2	  R_1	 R_2	N_O_1
	       N_O_2  K_O_1  K_O_2  temp   T_1	  T_2	 1_T	2_T
	       C_1    C_2    R_C_1  R_C_2
	      )
  (While
    (and
      (setq
	first
	 (entget (geo_vibor "\nПервая дуга <Выход>: " "ARC" t)
	 )
      )
      (setq
	second (entget
		 (geo_vibor "\nВторая дуга <Выход>: " "ARC" t)
	       )
      )
    )

     (setq O_1	 (cdr (assoc 10 first))
	   R_1	 (cdr (assoc 40 first))
	   N_O_1 (polar O_1 (cdr (assoc 50 first)) R_1)
	   K_O_1 (polar O_1 (cdr (assoc 51 first)) R_1)
	   O_2	 (cdr (assoc 10 second))
	   R_2	 (cdr (assoc 40 second))
	   N_O_2 (polar O_2 (cdr (assoc 50 second)) R_2)
	   K_O_2 (polar O_2 (cdr (assoc 51 second)) R_2)
     )
     (if (> (+ (distance N_O_2 N_O_1) (distance K_O_2 K_O_1))
	    (+ (distance N_O_1 K_O_2) (distance N_O_2 K_O_1))
	 )
       (setq temp  N_O_2
	     N_O_2 K_O_2
	     K_O_2 temp
       )
       T
     )
     (setq
       t_1   (seredina N_O_1 N_O_2)
       1_t   (polar t_1 (+ (angle N_O_1 N_O_2) (/ pi 2)) 1)
       t_2   (seredina K_O_1 K_O_2)
       2_t   (polar t_2 (+ (angle k_O_1 k_O_2) (/ pi 2)) 1)
       C_1   (seredina (inters t_1 1_t O_1 N_O_1 nil)
		       (inters t_1 1_t O_2 N_O_2 nil)
	     )
       C_2   (seredina (inters t_2 2_t O_1 k_O_1 nil)
		       (inters t_2 2_t O_2 k_O_2 nil)
	     )
       R_C_1 (distance C_1 N_O_1)
       R_C_2 (distance C_2 k_O_1)
     )

     (entmake
       (list
	 '(0 . "CIRCLE")
	 (cons 10 C_1)
	 (cons 40 R_C_1)
       )
     )
     (entmake
       (list
	 '(0 . "CIRCLE")
	 (cons 10 C_2)
	 (cons 40 R_C_2)
       )


     )

  )
)
  (defun geo_vibor (zap ;_Запрос 
		    tip ;_Тип запрашиваемых примитивов 
		    enter ;_Выход при пустом вводе 
		    / flag name)
    (setq Flag2 t)
    (setvar "ERRNO" 0)
    (while Flag2
      (cond
	((and
	   (setq name
		  (car (entsel zap))
	   )
	   (wcmatch (cdr (assoc 0 (entget name))) tip)
	 )
	 (setq Flag2 nil
	       name name
	 )
	)
	((and (= (getvar "ERRNO") 52) enter)
	 (setq Flag2 nil)
	)
	(name (princ (strcat "\nВыбранный объект не " tip)))
	(t (princ "\nМимо"))
      )
    )
  )
  (defun seredina (t1 t2)
    (polar t1 (angle t1 t2) (/ (distance t1 t2) 2))
  )
__________________
Почему все вдруг становятся умными, когда уже не надо?

Последний раз редактировалось Disney, 24.03.2010 в 09:35. Причина: скобка в коде не там стояла
Disney вне форума  
 
Непрочитано 23.03.2010, 09:35
#13
asd

всё понемногу
 
Регистрация: 05.03.2008
Украина, Одесса
Сообщений: 215


Цитата:
Сообщение от Disney Посмотреть сообщение
Конечно, нет.
Не заморачивайтесь, это он обо мне высказался.
asd вне форума  
 
Непрочитано 23.03.2010, 09:58
#14
VVapan4ik


 
Сообщений: n/a


Цитата:
Сообщение от Disney Посмотреть сообщение
Вот так...
Не так. Это частный случай. Радиус сопряженной окружности может быть и теоретически и практически разный, но не меньше и не больше определенной величины, а не единственно возможный, как вы это показали построением. Поэтому я и предположил, что вами был принят для простоты случая один подходящий для обеих случаев радиус дуг.
 
 
Непрочитано 23.03.2010, 10:47
#15
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


вот про это я и писал - вначале надо определить допуски - чем жертвововать когда "гладко" не сопрячь?
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 23.03.2010, 11:01
#16
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


VVapan4ik, Дима_ вот вы мне не учу, на пальцах(на картинках) объясните какие там ещё могут быть варианты?
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 23.03.2010, 11:06
#17
VVapan4ik


 
Сообщений: n/a


Цитата:
Сообщение от Дима_ Посмотреть сообщение
вот про это я и писал - вначале надо определить допуски - чем жертвововать когда "гладко" не сопрячь?
Не знаю, почему в Автокаде такое не реализовано на командном уровне, а вот в T-flex такая команда давно (лет 8 точно) реализована. Выбираешь две окружности и потом задаешь значение радиуса дуги. Дело двух секунд.

P.S. avi файл не могу вставить... Заархивировал.
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 175
Размер:	16.8 Кб
ID:	35869  
Вложения
Тип файла: rar video.rar (522.8 Кб, 96 просмотров)

Последний раз редактировалось VVapan4ik, 23.03.2010 в 11:37.
 
 
Автор темы   Непрочитано 23.03.2010, 11:39
#18
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Цитата:
Сообщение от VVapan4ik Посмотреть сообщение
Не знаю, почему в Автокаде такое не реализовано на командном уровне, а вот в T-flex такая команда давно (лет 8 точно) реализована. Выбираешь две окружности и потом задаешь значение радиуса дуги. Дело двух секунд.

P.S. avi файл не могу вставить... Заархивировал.
Мы говорим о внешнем сопряжении - внутреннее акад делает.
Jonas вне форума  
 
Непрочитано 23.03.2010, 11:46
#19
VVapan4ik


 
Сообщений: n/a


Цитата:
Сообщение от Jonas Посмотреть сообщение
Мы говорим о внешнем сопряжении - внутреннее акад делает.
T-flex и внешнее сопряжения без проблем делает. Вот блин хваленый автокад... Могу такой же ролик скинуть.
 
 
Непрочитано 23.03.2010, 11:51
#20
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Цитата:
Сообщение от VVapan4ik Посмотреть сообщение
P.S. avi файл не могу вставить...
[IMG]http://i036.***********/1003/17/4494b6eac8b1.gif[/IMG]

Всё понятно, я думал с максимальным радиусом - это оптимальный вариант, кстати так же и в примере Jonas максимальный радиус...

Цитата:
Сообщение от Jonas Посмотреть сообщение
Мы говорим о внешнем сопряжении - внутреннее акад делает.
Ну не было у меня начертательной... что такое внутреннее? что такое внешнее? вторая моя программа тоже не то?
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 23.03.2010, 12:07
#21
VVapan4ik


 
Сообщений: n/a


Цитата:
Сообщение от Disney Посмотреть сообщение
что такое внешнее?
См. архив.

P.S. Не знаю как ты в раскрывающееся окно видео вставил.
Вложения
Тип файла: rar video1.rar (523.2 Кб, 87 просмотров)
 
 
Непрочитано 23.03.2010, 12:43
#22
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Цитата:
Сообщение от VVapan4ik Посмотреть сообщение
P.S. Не знаю как ты в раскрывающееся окно видео вставил.
ладно, буду без раскрывающегося
[IMG]http://i080.***********/1003/79/aa2894014267.gif[/IMG]
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 24.03.2010, 00:10
#23
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


То Disney - я в свое время понял, что быстро написанный код, как правило, не то что нужно (редкие исключения если код просит написать человек понимающий в программировании, но не под АКАД) - вначале-б неплохо понять зачем это человеку - чаще разница между запрашиваем и нужным больше чем код программы.
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Автор темы   Непрочитано 24.03.2010, 04:53
#24
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Цитата:
Сообщение от Дима_ Посмотреть сообщение
То Disney - я в свое время понял, что быстро написанный код, как правило, не то что нужно (редкие исключения если код просит написать человек понимающий в программировании, но не под АКАД) - вначале-б неплохо понять зачем это человеку - чаще разница между запрашиваем и нужным больше чем код программы.
Вот пример, илюстрация необходимости построения "внешних сопряжений.
Вложения
Тип файла: pdf Тоннель.pdf (69.6 Кб, 113 просмотров)
Jonas вне форума  
 
Непрочитано 24.03.2010, 08:33
#25
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Цитата:
Сообщение от Дима_ Посмотреть сообщение
То Disney - я в свое время понял, что быстро написанный код, как правило, не то что нужно
Не, но вроде картинка была, я её повторил и от кружочков к дугам и от дуг к кружочкам. Я понимаю словами трудно объяснить, но не ту картинку нарисовать?

Цитата:
Сообщение от Jonas Посмотреть сообщение
Вот пример, иллюстрация необходимости построения "внешних сопряжений".
[IMG]http://s005.***********/i212/1003/25/483701730996.jpg[/IMG]
Прикольный "руль", а можно цветом, скажем синим, что из этого строится в ручную, а красным, что хотелось бы программно
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Автор темы   Непрочитано 24.03.2010, 09:32
#26
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Цитата:
Сообщение от Disney Посмотреть сообщение
Прикольный "руль", а можно цветом, скажем синим, что из этого строится в ручную, а красным, что хотелось бы программно
Можно конечно.
Кстапти, при сопряжении линии и дуги (окружности) та же картина. А сопрягать линию с дугой наверно даже чаще приходиться
Вложения
Тип файла: pdf Model.pdf (71.7 Кб, 100 просмотров)
Jonas вне форума  
 
Непрочитано 24.03.2010, 11:35
#27
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Ну мой второй код это и делал только кружочками, как у тебя на самой первой картинке,
[IMG]http://i011.***********/1003/2a/bd51e0e9ebf7.gif[/IMG]


Код:
[Выделить все]
(defun C:test (/      first  second O_1	   O_2	  N_O_1	 N_O_2	R_1
	       R_2    K_O_1  K_O_2  temp   N_1	  N_2	 t_1	1_t
	       C_1    R_C    ugl_1  ugl_2
	      )
  (vl-load-com)
  (while
    (and
      (setq
	first
	 (entget (geo_vibor "\nПервая дуга <Выход>: " "ARC" t)
	 )
      )
      (setq
	second (entget
		 (geo_vibor "\nВторая дуга <Выход>: " "ARC" t)
	       )
      )
    )
     (setq O_1	 (cdr (assoc 10 first))
	   R_1	 (cdr (assoc 40 first))
	   N_O_1 (polar O_1 (cdr (assoc 50 first)) R_1)
	   K_O_1 (polar O_1 (cdr (assoc 51 first)) R_1)
	   O_2	 (cdr (assoc 10 second))
	   R_2	 (cdr (assoc 40 second))
	   N_O_2 (polar O_2 (cdr (assoc 50 second)) R_2)
	   K_O_2 (polar O_2 (cdr (assoc 51 second)) R_2)
	   temp	 (car (vl-sort
			(list (list N_O_1 N_O_2)
			      (list N_O_1 K_O_2)
			      (list K_O_1 N_O_2)
			      (list K_O_1 K_O_2)
			)
			'(lambda (x y)
			   (< (distance (car x) (cadr x))
			      (distance (car y) (cadr y))
			   )
			 )
		      )
		 )
	   N_1	 (car temp)
	   N_2	 (cadr temp)
	   t_1	 (seredina N_1 N_2)
	   1_t	 (polar t_1 (+ (angle N_1 N_2) (/ pi 2)) 1)
	   C_1	 (seredina (inters t_1 1_t O_1 N_1 nil)
			   (inters t_1 1_t O_2 N_2 nil)
		 )
	   R_C	 (distance C_1 N_1)
	   ugl_1 (angle C_1 N_1)
	   ugl_2 (angle C_1 N_2)
     )
     (if (or (< 0 (- ugl_1 ugl_2) pi)
	     (< (* pi -2) (- ugl_1 ugl_2) (- 0 pi))
	 )
       (setq temp  ugl_1
	     ugl_1 ugl_2
	     ugl_2 temp
       )
     )

     (entmake
       (list
	 '(0 . "ARC")
	 '(62 . 1)
	 (cons 10 C_1)
	 (cons 40 R_C)
	 (cons 50 ugl_1)
	 (cons 51 ugl_2)
       )
     )
  )
)


(defun geo_vibor (zap ;_Запрос 
		  tip ;_Тип запрашиваемых примитивов 
		  enter ;_Выход при пустом вводе 
		  / flag name)
  (setq Flag2 t)
  (setvar "ERRNO" 0)
  (while Flag2
    (cond
      ((and
	 (setq name
		(car (entsel zap))
	 )
	 (wcmatch (cdr (assoc 0 (entget name))) tip)
       )
       (setq Flag2 nil
	     name name
       )
      )
      ((and (= (getvar "ERRNO") 52) enter)
       (setq Flag2 nil)
      )
      (name (princ (strcat "\nВыбранный объект не " tip)))
      (t (princ "\nМимо"))
    )
  )
)
(defun seredina	(t1 t2)
  (polar t1 (angle t1 t2) (/ (distance t1 t2) 2))
)
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Автор темы   Непрочитано 24.03.2010, 12:11
#28
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Похоже я не въезжаю.
Вот результат.
Плучается то же что и ранее и даже хуже. Нет нормального сопряжения.
Или это просто демонстрвция?
Вложения
Тип файла: pdf test.pdf (8.1 Кб, 80 просмотров)
Jonas вне форума  
 
Непрочитано 24.03.2010, 12:30
#29
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Цитата:
Сообщение от Jonas Посмотреть сообщение
Вот результат:
[IMG]http://i058.***********/1003/89/43a2d2a277ee.jpg[/IMG]
Получается то же что и ранее и даже хуже. Нет нормального сопряжения.
А тупо одной дугой, в данном случаи это оптимальное сопряжение. Ты сам вручную их красиво сопряжешь одной дугой? Чтоб красиво надо с переходными кривыми, но это уже не ко мне, и как бы сказал Евгений Елпанов "Выходит за рамки безвозмездного"
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Автор темы   Непрочитано 24.03.2010, 13:29
#30
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Цитата:
Сообщение от Disney Посмотреть сообщение
Почему все вдруг становятся умными, когда уже не надо?
Понял, поумнел, уже не надо, буду тупо таскать ляминь.
Jonas вне форума  
 
Непрочитано 24.03.2010, 13:35
#31
Елпанов Евгений

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


Вот и меня упомянули...

Я не раз просматривал тему, но так и не смог понять, чем не устраивает стандартная функция скругления...
Миниатюры
Нажмите на изображение для увеличения
Название: 1.gif
Просмотров: 92
Размер:	84.2 Кб
ID:	35981  
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 24.03.2010, 14:07
#32
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Цитата:
Сообщение от Jonas Посмотреть сообщение
Цитата:
Сообщение от Disney
Почему все вдруг становятся умными, когда уже не надо?
Понял, поумнел, уже не надо, буду тупо таскать ляминь.
Я имел введу, не почему все вокруг такие тупые, и когда же они поумнеют, а то что есть люди, которые могут помочь, но сделают они это тогда, когда тебе уже будет не надо.


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
Я не раз просматривал тему, но так и не смог понять, чем не устраивает стандартная функция скругления...
А с "рулём" такой мультик сделайте?
Мне почему-то показалось, что нельзя подрезать исходные дуги, или пускай с подрезкой, но самой минимально возможной, а для этого нужно радиус сопряжения не на глазок указывать, а высчитать самый оптимальный.
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 24.03.2010, 14:36
#33
Елпанов Евгений

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


Цитата:
Сообщение от Disney Посмотреть сообщение
Мне почему-то показалось, что нельзя подрезать исходные дуги, или пускай с подрезкой, но самой минимально возможной, а для этого нужно радиус сопряжения не на глазок указывать, а высчитать самый оптимальный.
так на руле, все скругления делаются стандартным радиусом 10800, если я правильно понимаю задачу...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 24.03.2010, 15:37
#34
VVapan4ik


 
Сообщений: n/a


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
Я не раз просматривал тему, но так и не смог понять, чем не устраивает стандартная функция скругления...
Надо внешнее сопряжение, а не внутреннее...

Автокад не стоит, что проверить... возможно ли...
 
 
Непрочитано 24.03.2010, 15:50
#35
Елпанов Евгений

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


Цитата:
Сообщение от VVapan4ik Посмотреть сообщение
Надо внешнее сопряжение, а не внутреннее...
Кажется, я понял в чем дело.
На видео, я построил круг...
Миниатюры
Нажмите на изображение для увеличения
Название: 2.gif
Просмотров: 91
Размер:	184.7 Кб
ID:	35999  
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 24.03.2010, 15:56
#36
VVapan4ik


 
Сообщений: n/a


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
Кажется, я понял в чем дело.
Ну да, в принципе работает, но я все равно за параметризацию...
 
 
Автор темы   Непрочитано 25.03.2010, 07:53
#37
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
На видео, я построил круг...
Это не руль, это сечение автодорожного тоннеля (повернутое, тоесть "портретное"). Радиусы нужно всегда задавать.

Или я и впрям бестолково ставлю вопрос или вы жудьничаете?
Вложения
Тип файла: pdf 02.pdf (29.6 Кб, 73 просмотров)
Jonas вне форума  
 
Непрочитано 25.03.2010, 08:29
#38
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Цитата:
Сообщение от Jonas Посмотреть сообщение
Выполнено методом начерталки
Как говорил раньше к сожалению с ней не знаком, но наверняка эти методы поддаются какой-то логике, а раз так то их можно выполнить программно, тем боле как выяснилось в T-flex см картинку в #22 такая функция есть, значит и алгоритм существует.
Распиши(разрисуй) пошагово как ты добиваешься требуемого начертательными методами.
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 25.03.2010, 08:43
#39
Елпанов Евгений

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


Цитата:
Сообщение от Jonas Посмотреть сообщение
Или я и впрям бестолково ставлю вопрос или вы жудьничаете?
Конечно я жульничаю, точнее знаю одну хитрость - команда скругления, очень чувствительна к указанной стороне дуги или отрезка, который будет скругляться. Грубо говоря, указанная сторона, после скругления, должна остаться. Поэкспериментируй со своими дугами, попробуй выделять другую сторону, при указании объектов...

Проверил с подобными наборами дуг, действительно, автокад не всегда может построить скругление, только если круг с опцией две касательных и радиус. Но круг, он может построить во всех случаях.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/

Последний раз редактировалось Елпанов Евгений, 25.03.2010 в 09:00.
Елпанов Евгений вне форума  
 
Автор темы   Непрочитано 25.03.2010, 09:44
#40
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Цитата:
Сообщение от Disney Посмотреть сообщение
Как говорил раньше к сожалению с ней не знаком

Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
Проверил с подобными наборами дуг, действительно, автокад не всегда может построить скругление, только если круг с опцией две касательных и радиус. Но круг, он может построить во всех случаях.
Вообще думал, что просто чего то не знаю. Да и лень лишний раз кликать клавишей. Кстаои, по двум касательным получается тот же результат что и с fillet.
Jonas вне форума  
 
Непрочитано 25.03.2010, 11:01
#41
Елпанов Евгений

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


Цитата:
Сообщение от Jonas Посмотреть сообщение
Кстаои, по двум касательным получается тот же результат что и с fillet.
выложи dwg файл с дугами и подсказкми, что надо сделать, можно будет думать конкретно.
Не забудь дать все заранее известные данные, например радиусы
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Автор темы   Непрочитано 25.03.2010, 11:51
#42
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
выложи dwg файл с дугами и подсказкми, что надо сделать, можно будет думать конкретно.
Не забудь дать все заранее известные данные, например радиусы
Так уже выкладываю неоднократно, правда PDF но какая разница. Вопрос в том что, можно ли програмно делать внешние соряжения.
Радиусы любые, конечно те что строятся (как и при fillet - если линия меньше радиуса то и не строиться).

Сейчас пользуюсь макросом, правда тетеньки ругаються, не всегда получается.

Цитата:
^C^C_circle;ККР;\\\_trim;;\

Последний раз редактировалось Jonas, 25.03.2010 в 12:30.
Jonas вне форума  
 
Непрочитано 25.03.2010, 12:33
#43
VVapan4ik


 
Сообщений: n/a


Цитата:
Сообщение от Disney Посмотреть сообщение
тем боле как выяснилось в T-flex см картинку в #22 такая функция есть, значит и алгоритм существует.
В T-flex это одна команда, что для внешних дуг, что для внутренних, что еще для каких промежуточных... Там это наглядно за счет параметризации. Достаточно мышкой по экрану поводить и видишь сразу результат любой дуги, остается только нужный радиус для нужной дуги поставить. В автокаде такой наглядности (параметризации) нет, вот видимо и поэтому результат непредсказуем...
 
 
Непрочитано 25.03.2010, 13:02
#44
Елпанов Евгений

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


т.е. весь вопрос в визуализации такого скругления?
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 25.03.2010, 13:16
#45
VVapan4ik


 
Сообщений: n/a


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
т.е. весь вопрос в визуализации такого скругления?
Видимо да... иного не вижу, т.к. может быть четыре типа дуги, не считая их радиусов. И какой из этих дуг автокад будет в слепую ставить, тоже не понятно... Это же не просто "фаска", где конфигурация точно определена сопрягаемыми прямыми линиями...

Миниатюры
Нажмите на изображение для увеличения
Название: Дуги.png
Просмотров: 326
Размер:	6.9 Кб
ID:	36059  

Последний раз редактировалось VVapan4ik, 25.03.2010 в 15:31.
 
 
Непрочитано 01.04.2010, 09:33
#46
Елпанов Евгений

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


Цитата:
Сообщение от VVapan4ik Посмотреть сообщение
Видимо да... иного не вижу, т.к. может быть четыре типа дуги, не считая их радиусов.
не четыре, а восемь, все нарисованные тобой дуги, можно отзеркалить, относительно отрезка, стягивающего центры окружностей...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 01.04.2010, 14:06
#47
VVapan4ik


 
Сообщений: n/a


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Здравствуйте. Как сделать сопряжение плоской грани и цилиндрической SW 2008? Shpiral SolidWorks 3 25.02.2010 17:55
Мониторы LCD CRT Разное 94 17.06.2008 10:51
Как построить окружность 2PR? Cage AutoCAD 14 12.09.2005 19:05
Как из блока програмно вычленить текст Flint Программирование 5 17.02.2004 11:03
Подскажите как построить кривую с помощью команды SPLiNE, к boban Программирование 1 02.11.2003 19:58