Traza Una Catenaria Entre Dos Puntos

Post on 12-Dec-2015

9 views 3 download

description

Traza Una Catenaria Entre Dos Puntos

Transcript of Traza Una Catenaria Entre Dos Puntos

;TRAZA UNA CATENARIA ENTRE DOS PUNTOS (defun c:cate( / p1 p2 p3 pe te escy a a2 x1 y1 in ym v x y) ; *** versión 2000 ;*** PIDE DATOS *** (setq p1(getpoint "punto izquierdo : ")) (setq p2(getpoint "punto derecho : ")) (setq pe(getreal "peso del conductor Kg/m <0.189> : ")) (if (null pe) (setq pe 0.189)) (setq te(getreal "tension del conductor en Kp : ")) (setq escy(getreal "Factor de escala Y respecto de X : ")) ;*** CALCULA DISTANCIA Y ANGULO *** (setq p3(list (car p2) (cadr p1))) ; p2 en horizontal (setq a(distance p1 p3)) ; distancia horizontal (setq a2(/ a 2)) ; mitad (setq ym(/ (* a2 a2 pe) (* 2 te))) ; max. flecha en a/2 (setq x1(car p1) y1(cadr p1)) (setq v(- (angle p2 p1) (angle p3 p1))) ;*** TRAZA LA CATENARIA HORIZONTAL *** (setq in 5) ; ** intervalo 5 mts. (setq x 0.0) (command "_pline" p1) (while (< x a) (setq x(+ x in)) (setq xp(abs (- a2 x))) (setq y(- (/ (* xp xp pe) (* 2 te)) ym)) ; *** FLECHA *** (setq y(* y escy)) ; *** por factor (setq y(+ y (* x (/ (sin v) (cos v))))) ; *** mas inclinación (setq p(list (+ x1 x) (+ y1 y))) (command p) ) (command "") )