(defun c:tk ()
(initget "CY EP HYP EV ARCH ")
(setq word (getkword "Zadejte druh krivky:(CYkloida
EPicykloida HYPocykloida EVolventa
ARCHimedova-spirála)"))
(cond ((= word "CY") (setq r(getreal"poloměr tvořící kružnice:"))
&nbs p; &nbs p;
(setq d(getreal"vzdálenost bodu:"))
&nbs p; &nbs p;
(setq pocet (getreal"Zadejte pocet cyklu:"))
&nbs p; &nbs p;
(setq t1 0)
&nbs p; &nbs p;
(setq t2 (* (pocet) 2. Pi))
&nbs p; &nbs p;
(setq int (/ (- t2 t1) 100.0))
&nbs p; &nbs p;
(setq bod(getpoint"Zadejte počáteční bod odvalovací úsečky:"))
&nbs p; &nbs p;
(setq a t1)
&nbs p; &nbs p;
(setq x (-(* r a)(* d (sin a))))
&nbs p; &nbs p;
(setq y (- r (* d (cos
a)))) & nbsp;
&nbs p; &nbs p;
(setq x (+ x (car bod)))
&nbs p; &nbs p;
(setq y (+ y (cadr bod)))
&nbs p; &nbs p;
(command "bod" (list x y))
&nbs p; &nbs p;
(repeat 100
&nbs p; &nbs p; &nbs p;
(setq a (+ int a))
&nbs p; &nbs p; &nbs p;
(setq x (-(* r a)(* d (sin a))))
&nbs p; &nbs p; &nbs p;
(setq y (- r(* d(cos a))))
&nbs p; &nbs p; &nbs p;
(setq x (+ x (car bod)))
&nbs p; &nbs p; &nbs p;
(setq y (+ y (cadr bod)))
&nbs p; &nbs p; &nbs p;
(command "úsečka" "@" (list x y) "")
&nbs p; &nbs p; &nbs p; &nbs p;
)
&nbs p; &nbs p;
(command "regen")
&n bsp;
(setq part 1))
((= word "EP") (setq a(getreal"Zadejte poloměr pevné kružnice:"))
&nbs p; &nbs p;
(setq b(getreal"Zadejte poloměr kutálející se kružnice:"))
&nbs p; &nbs p;
(setq pocet (getreal"Zadejte pocet cyklu:"))
&nbs p; &nbs p;
(setq bod (getpoint"Zadejte bod"))
&nbs p; &nbs p;
(setq t1 0)
&nbs p; &nbs p;
(setq t2 (* (pocet) 2. Pi))
&nbs p; &nbs p;
(setq int (/ (- t2 t1) 100.0))
&nbs p; &nbs p;
(setq c t1)
&nbs p; &nbs p;
(setq x (-(* (+ a b) (cos c))(* b( cos (* (/ (+ a b) b) c)))))
&nbs p; &nbs p;
(setq y (-(* (+ a b) (sin c))(* b( sin (* (/ (+ a b) b) c)))))
&nbs p; &nbs p;
(setq x (+ x (car bod)))
&nbs p; &nbs p;
(setq y (+ y (cadr bod)))
&nbs p; &nbs p;
(command "_POINT" (list x y))
&nbs p; &nbs p;
(repeat 100
&nbs p; &nbs p;
(setq c (+ int c))
&nbs p; &nbs p;
(setq x (-(* (+ a b) (cos c))(* b( cos (* (/ (+ a b) b) c)))))
&nbs p; &nbs p;
(setq y (-(* (+ a b) (sin c))(* b( sin (* (/ (+ a b) b) c)))))
&nbs p; &nbs p;
(setq x (+ x (car bod)))
&nbs p; &nbs p;
(s etq y (+ y (cadr bod)))
&nbs p; &nbs p;
(command "úsečka" "@" (list x y) "")
&nbs p; &nbs p; &nbs p;
)
&nbs p; &nbs p;
(command "_CIRCLE" (list (car bod) (cadr bod)) a)
&nbs p; &nbs p;
(command "regen")
&n bsp; &n bsp;
(setq part 2))
((= word "HYP") (setq a(getreal"Zadejte poloměr pevné kružnice:"))
&nbs p; &nbs p;
(setq b(getreal"Zadejte poloměr kutálející se kružnice:"))
&nbs p; &nbs p;
(setq pocet (getreal"Zadejte pocet cyklu:"))
&nbs p; &nbs p;
(setq bod (getpoint"Zadejte bod:"))
&nbs p; &nbs p;
(setq t1 0)
&nbs p; &nbs p;
(setq t2 (* (pocet) 2. PI))
&nbs p; &nbs p;
(setq int (/ (- t2 t1) 100.0))
&nbs p; &nbs p;
(setq c t1)
&nbs p; &nbs p;
(setq x (+(* (- a b) (cos c))(* b( cos (* (/ (- a b) b) c)))))
&nbs p; &nbs p;
(setq y (-(* (- a b) (sin c))(* b( sin (* (/ (- a b) b) c)))))
&nbs p; &nbs p;
(setq x (+ x (car bod)))
&nbs p; &nbs p;
(setq y (+ y (cadr bod)))
&nbs p; &nbs p;
(command "_POINT" (list x y))
&nbs p; &nbs p;
(repeat 100
&nbs p; &nbs p;
(setq c (+ int c))
&nbs p; &nbs p;
(setq x (+(* (- a b) (cos c))(* b( cos (* (/ (- a b) b) c)))))
&nbs p; &nbs p;
(setq y (-(* (- a b) (sin c))(* b( sin (* (/ (- a b) b) c)))))
&nbs p; &nbs p;
(setq x (+ x (car bod)))
&nbs p; &nbs p;
(setq y (+ y (cadr bod)))
&nbs p; &nbs p;
(command "úsečka" "@" (list x y) "")
&nbs p; &nbs p; &nbs p;
)
&nbs p; &nbs p;
(command "_CIRCLE" (list (car bod) (cadr bod)) a)
&nbs p; &nbs p;
(command "regen")
&n bsp; &n bsp;
(setq part 3))
((= word "EV") (setq r (getreal"Zadejte poloměr:"))
&nbs p; &nbs p;
(setq d (getreal"Zadejte průměr:"))
&nbs p; &nbs p;
(setq pocet (getreal"Zadejte pocet cyklu:"))
&nbs p; &nbs p;
(setq bod (getpoint"Zadejte bod:"))
&nbs p; &nbs p;
(setq t1 0)
&nbs p; &nbs p;
(setq t2 (* (pocet) 2. PI))
&nbs p; &nbs p;
(setq int (/(- t2 t1) 100.0))
&nbs p; &nbs p;
(setq c t1)
&nbs p; &nbs p;
(setq x (+(*(+ r d) (cos c)) (* (* r c) (sin c))))
&nbs p; &nbs p;
(setq y (-(*(+ r d) (sin c)) (* (* r c) (cos c))))
&nbs p; &nbs p;
(setq x (+ x (car bod)))
&nbs p; &nbs p;
(setq y (+ y (cadr bod)))
&nbs p; &nbs p;
(command "_POINT" (list x y))
&nbs p; &nbs p;
(repeat 100
&nbs p; &nbs p;
(s etq c (+ int c))
&nbs p; &nbs p;
(s etq x (+(*(+ r d) (cos c)) (* (* r c) (sin c))))
&nbs p; &nbs p;
(s etq y (-(*(+ r d) (sin c)) (* (* r c) (cos c))))
&nbs p; &nbs p;
(s etq x (+ x (car bod)))
&nbs p; &nbs p;
(s etq y (+ y (cadr bod)))
&nbs p; &nbs p;
(c ommand "úsečka" "@" (list x y) "")
&nbs p; &nbs p; &nbs p;
)
&nbs p; &nbs p;
(command "regen")
&n bsp; &n bsp;
(setq part 4))
((= word "ARCH") (setq r(getreal"Zadejte poloměr Archimedovy spirály:"))
&nbs p; &nbs p;
(setq pocet (getreal"Zadejte pocet cyklu:"))
&nbs p; &nbs p;
(setq bod (getpoint"Zadejte bod:"))
&nbs p; &nbs p;
(setq t1 0)
&nbs p; &nbs p;
(setq t2 (* (pocet) 2. PI))
&nbs p; &nbs p;
(setq int (/(- t2 t1) 100.0))
&nbs p; &nbs p;
(setq c t1)
&nbs p; &nbs p;
(setq x (* (* r c) (sin c)))
&nbs p; &nbs p;
(setq y (* (* r c) (cos c)))
&nbs p; &nbs p;
(setq x (+ x (car bod)))
&nbs p; &nbs p;
(setq y (+ y (cadr bod)))
&nbs p; &nbs p;
(command "_POINT" (list x y) )
&nbs p; &nbs p;
(repeat 100
&nbs p; &nbs p; &nbs p;
(setq c (+ int c))
&nbs p; &nbs p; &nbs p;
(setq x (* (* r c) (sin c)))
&nbs p; &nbs p; &nbs p;
(setq y (* (* r c) (cos c)))
&nbs p; &nbs p; &nbs p;
(setq x (+ x (car bod)))
&nbs p; &nbs p; &nbs p;
(setq y (+ y (cadr bod)))
&nbs p; &nbs p; &nbs p;
(command "úsečka" "@" (list x y) "")
&nbs p; &nbs p; &nbs p; &nbs p;
)
&nbs p; &nbs p;
(command "regen")
&n bsp; &n bsp;
(setq part 5))
(T (prompt "Chyba:nevybral jste žádnou křivku!!!"))
)
)
zatim mám tohle...tedak nevim jestli je to správně protože jsem to upravoval v textáku ...