Sunteți pe pagina 1din 6

Tema de casa

Macrou de meniuri Sinteza mecanismului patrulater articulat prin aproximarea traiectoriei prin 3 puncte.

PREZENTAREA MACRO-ULUI DE REZOLVAREA PROBLEMEI DE SINTEZ

MENIURI

NTOCMIT

PENTRU

Pentru rezolvarea problemei de sintez pe baza algoritmului anterior, s-a folosit un macrou de meniuri AutoCAD ce conine patru meniuri, ca n figura 1. Curba ce trebuie aproximat de mecanismul ce urmeaz a fi determinat, poate fi trasat prin puncte, pe baza unui fiier script sau direct prin trasarea acesteia n AutoCAD. Trasarea pe baza unui fiier script deja existent (TreiP.scr) se face prin accesarea din meniul ,,Curba de biel a opiunii ,,Construcie curb dat.

Fig. 1. Macrou de meniuri. Fiierul de meniuri ataat este: ***POP1 [ANIMATIE RRT] [Alegere Punct A0]^C^C+ (Load "Aleg.lsp");+ Aleg;+ Zoom; E; [--] [Alegere punct pe curba]^C^C+ (Load "Animrrt.lsp");+ Animrrt; [--] ***POP2 [FIXARE PUNCTE PE CURBA]^C^C+ Zoom;w;\\+ (Load "Citire.lsp");+ Citire; [--] [->CONSTRUCTII GEOMETRICE] [ALEGERE PUNCT A0 DE LA TASTATURA]^C^C+ Zoom;All;Color;7;+ (Load "Constrt.lsp");+ Constrt; [--] [-<-<ALEGERE PUNCT A0 CU MOUSEUL]^C^C+ Zoom;All;Color;7;+

(Load "Constrm.lsp");+ Constrm; [--] [SCRIERE IN FISIER]^C^C+ Zoom;All;+ (Load "Scriere.lsp");+ Scriere; [--] ***POP3 [ANIMATIE MECANISM] [Animatie Pas cu Pas]^C^C+ (Load "TreiP.lsp");+ TreiP; [Gata Animatia]^c^c [--] Primul meniu ,,Animaie RRT(fig. 2) realizeaz animaia unui mecanism RRT cruia i se specific punctual fix al articulaiei motoare . Un capt al bielei se sprijin pe curba construit anterior.

Fig. 2. Meniul Animatie RRT Procedura apelat pentru aceste operaii este intitulat ,,Aleg.lsp cu coninutul urmtor: (DEFUN C:ALEG () (Setq a0(getpoint "Alegeti punctul A0:")) (Command "Circle" a0 pause) (Setq cerc1(ENTGET(Entlast))) (Setq tip(CDR(ASSOC 0 cerc1))) (Setq lmin(CDR(ASSOC 40 cerc1))) (Command "Circle" a0 pause) (Setq cerc2(ENTGET(Entlast))) (Setq tip(CDR(ASSOC 0 cerc2))) (Setq lmax(CDR(ASSOC 40 cerc2))) (Setq lmic(/(+ lmin lmax) 2)) (Setq rmic(/ (- lmax lmin) 2)) (Command "CIRCLE" a0 rmic) (setq mul (* 15 rmic)) (Command "Zoom" "C" a0 mul) )

Procedura anterioar permite alegerea punctului A0, construiete n ordine dou cercuri de tangen la curb, memoreaz valorile pentru razele celor dou cercuri, calculeaz pe baza relaiilor (1) pe r i l. Construcia geometric rezultat pn la acest pas va arta ca n figura 3.

Fig. 3. Trasarea curbei i alegerea punctului A0. Animaia, dac este apelat, se realizeaz cu ajutorul unei proceduri AutoLisp intitulat AnimRRT.lsp ce efectueaz n prim faz analiza cinematic a unui mecanism RRT i mai apoi animaia. Procedura are urmtorul coninut: ((DEFUN C:ANIMRRT () (Setq b0(getpoint "Alegeti punctul pe curba:")) (Setq a1(princ(car a0))) (Setq b1(princ(car(cdr a0)))) (Setq a2(princ(car b0))) (Setq b2(princ(car(cdr b0)))) (setq a(- (* 2 a2) (* 2 a1))) (setq b(- (* 2 b2) (* 2 b1))) (setq mm1(- (* a1 a1) (* a2 a2))) (setq mm2(- (* b1 b1) (* b2 b2))) (setq mm3(- (* lmic lmic) (* rmic rmic))) (setq c(+ mm1 mm2 mm3)) (setq m(/ (* -1 a) b)) (setq n(/ (* -1 c) b)) (setq a1a(+ 1 (* m m))) (setq b1b(+ (* 2 m n) (* -2 a1) (* -2 b1 m))) (setq c1c(+ (* a1 a1) (* n n) (* -2 b1 n) (* b1 b1) (* -1 rmic rmic))) (setq nnn1(- (* b1b b1b) (* 4 a1a c1c))) (setq nn1(sqrt nnn1)) (Setq nn2(* 2 a1a)) (setq nn3(- nn1 b1b)) (setq nnn4(+ b1b nn1)) (setq nn4(* -1 nnn4)) (Setq x1(/ nn3 nn2)) (Setq x2(/ nn4 nn2)) (setq y1(+ (* m x1) n)) (setq y2(+ (* m x2) n)) (setq PctA0 (List x1 y1)) (setq PctB0 (List x2 y2))

(Command "Color" "Blue") (Command "Line" b0 PctB0 a0 "") (Command "Color" "Red") (Command "Line" B0 PctA0 a0 "") ) Selectnd cu mouse-ul pe curba existent un punct, vor fi desenate succesiv, cu culori diferite, dou mecanisme care corespund celor dou soluii posibile de mecanism. Acest meniu este de ajutor pentru a putea identifica ordinea de alegere a punctelor Mi. Al doilea meniu ,,Fixare puncte pe curba (fig.4.) are doua submeniuri. Primul submeniu intitulat ,,Construcii geometrice apeleaz fie procedura AutoLisp Constrt.lsp. care permite alegerea punctului A0 de la tastatur, fie procedura Constrm.lsp care permite alegerea punctului A0 cu mouseul. Spre exemplu procedura Constrm.lsp are urmtorul coninut:

Fig. 4. Meniul Fixare puncte pe curba

Fig.5. Alegerea punctelor pe cercuri. Ultimul submeniu al meniului printe ,, Fixare puncte pe curba este ,,Scriere n fiier i are coninutul urmtor: (DEFUN C:SCRIERE () (setq xa0(princ (car a0))) (setq ya0(princ (car (cdr a0)))) (setq xa1(princ (car a1))) (setq ya1(princ (car (cdr a1)))) (setq xa2(princ (car a2))) (setq ya2(princ (car (cdr a2)))) (setq xa3(princ (car a3))) (setq ya3(princ (car (cdr a3)))) (Setq f(Open "date.dat" "w")) (WRITE-LINE (rtos xa0 2 8) f) (WRITE-LINE (rtos ya0 2 8) f)

(WRITE-LINE (rtos xa1 2 8) f) (WRITE-LINE (rtos ya1 2 8) f) (WRITE-LINE (rtos xa2 2 8) f) (WRITE-LINE (rtos ya2 2 8) f) (WRITE-LINE (rtos xa3 2 8) f) (WRITE-LINE (rtos ya3 2 8) f) (WRITE-LINE (rtos ung1 2 8) f) (WRITE-LINE (rtos ung2 2 8) f) (WRITE-LINE (rtos ung3 2 8) f) (WRITE-LINE (rtos lmic 2 8) f) (WRITE-LINE (rtos rmic 2 8) f) (Close f) ) Ultimul meniu Animatie mecanism realizeaz animaia unui mecanism cu cama de rotatie si tachet de rotatie.Are la baza functia AutoLisp: (Defun C:TreiP () (Command "Erase" "All" "" "Osnap" "OFF" "ORTHO" "OFF" "viewres" "Y" "20000" "Color" "7") (Setq C1 (list 100 100) C2 (List 110 110) C3 (list 140 120) A0 (List 0 0) B0 (list 130 50) r0 50 ) (command "Circle" A0 r0) (command "Circle" C1 pause) (setq cerc (Entget (Entlast))) (Setq tip (CDR (Assoc 0 cerc))) (Setq raza (CDR (Assoc 40 cerc))) (command "Circle" C2 raza) (command "Circle" C3 raza) (setq A1 (OSNAP (Getpoint "Specificati punctul A1:") "INT")) (setq FiA1C1 (Angle A1 C1)) (setq FiA1B1 (Angle A1 B0)) (setq A2 (OSNAP (Getpoint "Specificati punctul A2:") "INT")) (setq FiA2C2 (Angle A2 C2)) (Setq B2 (Polar A2 (+ fiA1B1 (- fiA2C2 fiA1C1)) (Distance A1 B0))) (setq A3 (OSNAP (Getpoint "Specificati punctul A3:") "INT")) (setq FiA3C3 (Angle A3 C3)) (Setq B3 (Polar A3 (+ fiA1B1 (- fiA3C3 fiA1C1)) (Distance A1 B0))) (command "Pline" C1 A1 B0 "C") (command "Pline" C2 A2 B2 "C") (command "Pline" C3 A3 B3 "C") (setq xB0 (princ (car B0))

yB0 (princ (car (cdr B0))) xB2 (princ (car B2)) yB2 (princ (car (cdr B2))) xM1 (/ (+ xB0 xB2) 2) yM1 (/ (+ yB0 yB2) 2)) (setq M1 (List xM1 yM1)) (setq N1 (Polar M1 (- (angle B0 B2) (/ pi 2)) 10)) (setq xB3 (princ (car B3)) yB3 (princ (car (cdr B3))) xM2 (/ (+ xB0 xB3) 2) yM2 (/ (+ yB0 yB3) 2)) (setq M2 (List xM2 yM2)) (setq N2 (Polar M2 (- (angle B0 B3) (/ pi 2)) 10)) (setq BB1 (inters M1 N1 M2 N2 Nil)) (command "Color" "Blue" "Pline" A0 A1 B0 BB1 "") (command "Color" "RED" "Pline" A1 B0 C1 "Close") )

Fig. 6. Meniul Animatie mecanism

Fig. 6. Realizarea Animatie mecanism

S-ar putea să vă placă și