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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Построение циклоиды (епи и гипо)

Построение циклоиды (епи и гипо)

Ответ
Поиск в этой теме
Непрочитано 08.08.2008, 16:27 #1
Построение циклоиды (епи и гипо)
slovak
 
Регистрация: 08.08.2008
Сообщений: 4

Имееется ли средство автоматического построения циклоиды, а также епициклоиды и гипоциклоиды для AutoCad?
И вообще для сложных кривых.
Одно приложение нашел (гипербола, парабола...), но циклоиды в наличии нет.
Просмотров: 3833
 
Непрочитано 08.08.2008, 23:39
#2
Jochen


 
Регистрация: 05.12.2004
ГЕРМАНИЯ
Сообщений: 20


Попытайте мой CYCLOIDE.lsp
Работает для Hypo- и EPI-cycloides.
(К сожалению диалог по английский...)
Много успехов!
Jochen
www.black-cad.de

>>
Код:
[Выделить все]
(defun C:Cycloide ( / osmode_old elem  kr r a pkt xpkt ypkt phi
			xdiff ydiff
			anfang ende twert schritt x y)
; (c) scj.schulz@t-online.de
; www.black-cad.de
; 23.01.08
; Funktionsplot für Zykloiden 
(alert "  function plot for cycloides

1. pick a circle
2. pick an inner or outer point

the horizontal cycloide for (0, 2*pi) will be shown 

(c) scj.schulz@t-online.de
 www.black-cad.de
")
 
(setq osmode_old (getvar "osmode"))
(command "osmode" 0)
(setq elem nil)
(while (/= elem "CIRCLE")
	(progn
	(print "Pick the circle :")
	(setq kr (car (entsel)))
	(setq elem (cdr (assoc 0 (entget kr))))
	)
)
 
(setq r (cdr (assoc 40 (entget kr))))

(command "osmode" 1)
(setq pkt (getpoint "\nPick a point "))
(command "osmode" 0)

(setq a (distance (cdr (assoc 10 (entget kr))) pkt))
(setq xdiff (car (cdr (assoc 10 (entget kr)))))
(setq ydiff (- (cadr (cdr (assoc 10 (entget kr)))) r))

(setq xpkt (- (car pkt) xdiff ))
(setq ypkt (- (cadr pkt) r ydiff))

(if (= xpkt 0)(setq phi (/ pi 2))(setq phi (atan (/ ypkt xpkt))))

(setq phi (- (* 1.5 pi) phi))

;(print "xpkt,ypkt ")(print xpkt)(print ypkt)
;(if (and (>= xpkt 0)(>= ypkt 0))(setq phi phi))
(if (and (< xpkt 0)(>= ypkt 0))(setq phi (+ pi phi)))
(if (and (< xpkt 0)(< ypkt 0))(setq phi (+ pi phi)))
(if (and (>= xpkt 0)(< ypkt 0))(setq phi (+ (* 2 pi) phi)))
(if (and (= xpkt 0)(> ypkt 0))(setq phi (/ pi 2)))
(if (and (= xpkt 0)(< ypkt 0))(setq phi (* pi 1.5))) 

;(print (/ (* phi 180) pi))(getstring) 

(setq anfang  phi)
(setq ende (+ phi (* 4 pi)))
(setq twert anfang)
;(setq schritt (getreal "\nstep  "))
(setq schritt 0.01)
(setq twert (- anfang schritt))
(command "_Pline")
(while (<= twert ende)
(progn 
	(setq twert (+ twert schritt))
;; Funktion
(setq x (- (* r twert) (* a (sin twert))))
(setq x (- x (* r phi)))
(setq x (+ x xdiff))
(setq y (- r (* a (cos twert))))
(setq y (+ y ydiff))
(setq pkt (list x y))
;;(princ pkt)
	(command pkt)
)
)

(command nil)
(command "osmode" osmode_old)
)
;
(prompt "\n")
(prompt "\nType CYCLOIDE to execute\n")
>>

Последний раз редактировалось Кулик Алексей aka kpblc, 09.08.2008 в 23:18.
Jochen вне форума  
 
Автор темы   Непрочитано 11.08.2008, 12:57
#3
slovak


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


Большое спасибо!!!
Буду пробовать.
Жаль, что в такой известной программе нет стандартных модулей для решения таких вот проблем.
slovak вне форума  
 
Автор темы   Непрочитано 12.08.2008, 11:59
#4
slovak


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


Может я чегото недопонял, но стрится лишь циклоида.
Гипо и епи не нашел.
Сам на стадии изучения лиспа, хотелось бы пример посмотреть!!!
slovak вне форума  
 
Автор темы   Непрочитано 13.08.2008, 09:06
#5
slovak


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


Нашел!!!
http://www.cad.dp.ua/files/GeomCurve.zip
Большой набор аналитических кривых.
Удобный интерфейс!
slovak вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Построение циклоиды (епи и гипо)