CATEGORII DOCUMENTE |
AutoLISP-ul dispune de functii care opresc evaluarea unei expresii si permit utilizatorului sa stocheze puncte si distante folosind metodele standard AutoCAD de specificare a acestor valori. Punctul sau distanta devine valoarea returnata a expresiei.
in acest capitol veti studia:
Cum sa cereti informatii utilizatorului in cadrul unui program AutoLISP.
Cum sa cereti coordonatele unui punct utilizatorului.
Cum sa cereti o distanta utilizatorului.
Cum sa cereti utilizatorului valoarea pe care o doriti.
Cum sa folositi puncte si distante de la utilizator in cadrul functiilor AutoLISP command si comenzilor AutoCAD.
Functia getpoint permite utilizatorului sa selecteze un punct folosind orice metode standard AutoCAD de selectare a punctelor: selectare grafica, coordonate absolute, relative sau relative polare, agatarea obiectelor, filtre de coordonate sau accesarea ultimului punct.
Functia getdist permite utilizatorului sa specifice o distanta prin introducerea valorii sau selectiond doua puncte. Este acelasi mecanism folosit de fiecare comanda AutoCAD care cere utilizatorului o distanta.
Functia getpoint foloseste serviciile AutoCAD pentru a permite utilizatorului sa introduca un punct. Punctul selectat de utilizator reprezinta valoarea returnata a expresiei. AutoLISP-ul returneaza punctul sub forma unei liste formata din trei numere reale: valorile coordonatelor X, Y si Z.
Command:(getpoint)
Functia getpoint este folosita pentru a obtine un punct de la utilizator in cadrul unei expresii AutoLISP. De exemplu ar putea fi nevoie sa cereti utilizatorului din cadrul unui program AutoLISP, puncte care vor fi folosite apoi ca puncte finale ale unei linii.
Command: (setq pt1 (getpoint))
Command: (setq pt2 (getpoint))
Command: (command "line" pt1 pt2 "")
Deoarece toate serviciile AutoCAD de specificare a punctelor sint disponibile in timpul apelarii functiei getpoint, nu sinteti constrins sa introduceti coordonatele exacte ale punctului.
Command: (setq pt1 (getpoint))
<pick a point with the mouse>
<list of three reals returned>
Command: (setq pt2 (getpoint))
<pick a point with the mouse>
<list of three reals returned>
Command: (command "line " pt1 pt2 "")
Introduceti expresiile care urmeaza. Legati variabilele pt1 si pt2 de puncte pe care le selectati cu mouse-ul in cadrul unei functii de apelare getpoint si folositi variabilele intr-o comanda LINE.
Command: ( setq pt1 (getpoint))
pick a point
Command: (setq pt2 (getpoint))
pick a point
Command: (command "line" pt1 pt2"")
Introduceti expresiile care urmeaza. Legati variabila pt1 de un punct pe care il selectati cu mouse-ul si variabila pt2 de un punct descris de coordonatele polare relative. Folositi variabilele in linia de comanda.
Command: (setq pt1 (getpoint ))
pick a point
Command: (setq pt2 (getpoint))
@2<45
Command: (command "line" pt1 pt2" ")
Introduceti expresiile care urmeaza. Legati variabila pt1 de un punct pe care il selectati cu mouse-ul in cadrul unei functii de apelare getpoint si folositi variabila intr-o comanda CIRCLE.
Command: (setq pt1 (getpoint))
pick a point
Command: (command "circle" pt1 0.5)
Functia getdist cere utilizatorului doua puncte. Valoarea returnata este un numar real: distanta 3-D intre doua puncte.
Command: (setq dst1 (getdist))
Second point: 2,2
Command: !dst1
Functia getdist primeste un argument optional, punctul de baza de la care se masoara distanta. in acest caz functia cere utilizatorului un singur punct.
Command: (setq pt1 (list 1.0 1.0 0.0))
Command: (setq dst1 (getdist pt1))
Command: !dst1
Figura 35. Functia getdist "drag" din punctul initial 1,1,0
Introduceti expresiile care urmeaza. Legati variabila pt1 de un punct folosind coordonatele absolute si variabila rad de distanta dintre doua puncte pe care o selectati cu mouse-ul. Folositi variabila in comanda CIRCLE.
Command: (setq pt1 (getpoint))
Command: (setq rad (getdist))
pick two points
Command: (command "circle" pt1 rad)
Introduceti expresiile care urmeaza. Legati variabila cen de un punct pe care il selectati cu mouse-ul. Legati variabila rad de distanta dintre cen si un punct pe care il selectati cu mouse-ul. Folositi variabilele in comanda CIRCLE.
Command: (setq cen (getpoint))
pick a point
Command: (setq rad (getdist cen))
pick a point
Command: (command "circle" cen rad)
Functiile getpoint si getdist primesc si argumente optionale: un sir de text care este afisat in zona liniei de comanda ca o cerere pentru utilizator.
Command: (getpoint "Point:")
Point: 1,1
Daca getdist cere doua puncte, se cere automat al doilea punct 'Second point:'.
Command: (getdist "From point:")
From poin: 1,1
Second point: 2,2
Deoarece getdist primeste doua cereri optionale, ordinea si tipul de date in acest caz sint importante. Daca primul argument al functiei getdist este un sir, acesta reprezinta o cerere. Daca primul argument este un punct, atunci se poate proceda la cererea celui de-al doilea argument.
Command: (getdist (quote (1.0 1.0 0.0)) "To point:")
To point: 2,2
Functia getpoint returneaza un punct de la utilizator.
Functia getdist returneaza o distanta data sub forma unui numar real de la utilizator.
Ambele functii primesc argumente optionale pentru utilizator.
Utilizatorul poate aplica oricare dintre metodele AutoCAD de specificare a punctelor si distantelor la o cerere AutoLISP pentru un punct sau o distanta.
exercitiul 12: cererea si folosirea punctelor de la utilizator
in acest exercitiu veti:
Scrie expresiile care cer utilizatorului puncte si distante.
Scrie comenzile de desenare in AutoCAD.
Scrieti un set de expresii. Testati-le in editorul AutoCAD apoi scrieti-le mai jos.
Cereti utilizatorului patru puncte.
Atribuiti-le variabilelor pt1 prin pt4.
Trasati o polilinie 2-D inchisa intre cele patru puncte.
Scrieti un set de expresii. Testati-le in editorul AutoCAD apoi scrieti-le mai jos.
Cereti utilizatorului un punct centru si atribuiti valoarea unei variabile numite cen.
Cereti utilizatorului distanta de la variabila cen si atribuiti valoarea unei variabile numite rad.
Desenati un cerc cu centrul cen si raza rad.
Scrieti un set de expresii. Testati-le in editorul AutoCAD apoi scrieti-le mai jos.
Cereti utilizatorului doua puncte.
Atribuiti-le variabilelor pt1 si pt2.
Desenati o polilinie 2-D inchisa.
Folositi pt1 si pt2 pentru colturile opuse ale poliliniei.
Calculati celelalte doua puncte din pt1 si pt2 folosind functiile car, cdr si list.
Aceasta pagina a fost lasata libera in mod intentionat.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1228
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved