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

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

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

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

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

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

Просмотров: 15375
 
Непрочитано 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 вне форума  
Ответ
Вернуться   Форум 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