CATEGORII DOCUMENTE |
AutoCAD-ul foloseste coordonatele carteziene pentru a descrie punctele 2- si 3-dimensionale. AutoLISP-ul reprezinta un punct sub forma unei liste de numere reale.
in acest capitol veti studia:
Cum reprezinta AutoLISP-ul puncte
Cum sa construiti o lista care reprezinta un punct folosind atit constante cit si variabile.
Un punct 3-dimensional este format din trei numere, fiecare avind o valoare independenta care corespunde unei distante de la originea sistemului de coordonate de-a lungul axelor X, Y si Z. Imaginati-va punctul 3-D sub forma a trei cutii, fiecare continind un numar real.
Figura 12. Punct 3-d reprezentat prin trei coordonate
Luati, de exemplu, punctul 3-D 1,2,3. AutoCAD-ul are o gama larga de operatori pentru a descrie acest punct: Introducerea in coordonate absolute, relative si polare, agatarea de obiecte, filtre de coordonate etc. Dar reprezentarea interna a punctului se reduce la o asociere intre trei numere reale.
Figura 13. Valori de-a lungul axelor de coordonate.
AutoLISP-ul reprezinta un punct AutoCAD 3-D sub forma unei liste formate din trei numere reale, unde primul element este valoarea coordonatei X, al doilea valoarea Y si al treilea valoarea Z.
Punctul 1,2,3 exprimat sub forma unui obiect AutoLISP este (1.0 2.0 3.0)
Figura 14. Lsta AutoLISP sub forma unui punct AutoCAD
Rezultatul unei incercari de a crea un obiect AutoLISP, recunoscut de AutoCAD ca punct 3-D, este clar: o lista formata din trei numere reale. Cum se poate construi o astfel de lista?
Exista doua functii pentru construirea acestor obiecte: quote si list.
Asa cum ati observat mai devreme, functia quote impiedica procesul de evaluare pentru singurul ei argument si returneaza acest argument neevaluat.
Construirea unei liste formata din trei numere reale este un proces simplu cu ajutorul functiei quote. De exemplu, expresia (quote (1.0 2.0 3.0) returneaza valoarea (1.0 2.0 3.0), o reprezentare AutoLISP valida a unui punct AutoCAD.
Introduceti expresiile care urmeaza. Creati doua liste formate din cite trei numere reale si folositi listele in linia de comanda AutoCAD.
Command: (setq pt1 (quote (1.0 1.0 1.0)))
Command: !pt1
Command: (setq pt2 (quote (5.0 5.0 0.0)))
Command: !pt2
Command: line
From point: !pt1
To point: !pt2
To point: Enter
Figura 15. Linie de la pt1 la pt2
Valoarea returnata a functiei list este o lista formata din valorile argumentelor functiei. Functia poate primi oricite argumente doriti.
list evalueaza fiecare argument, unul dupa altul si le memoreaza valoarea temporar. Cind functia list isi epuizeaza argumentele isi compune valorile argumentelor din elemente in cadrul unei liste si returneaza lista.
Introduceti expresiile care urmeaza.
in timp ce lucrati, nu uitati ca numerele reale se evalueaza pe sine, de exemplu, Command: !4.5 returneaza 4.5.
Folositi functia list pentru a returna o lista formata din trei numere reale.
Command: (list 1.0 2.0 3.0)
Folositi functia setq pentru a lega simbolul pt la o lista cu trei numere reale.
Command: (setq pt (list 1.0 2.0 3.0))
Command: !pt
Folositi simbolul pt ca intrare la comanda AutoCAD ID si verificati daca AutoCAD-ul recunoaste valoarea simbolului ca punct valid 3-D.
Command: id
Point: !pt
X=1.0000 Y=2.0000 Z=3.0000
Command:
Figura 16. Valoare returnata de functia list
Deoarece functia list isi evalueaza argumentele, puteti folosi simboluri sau variabile ca argumente ale functiei list pe/sau in loc de numere reale.
Sa admitem ca aveti trei variabile x, y si z care sint legate de numerele reale 1.0, 2.0 si 3.0.
Figura 17.Legarea variabilelor de numere reale cu functia setq
Atunci expresia (list x y z) va returna aceeasi valoare ca si expresia (list 1.0 2.0 3.0)
Figura 18. Valoare
returnata de functia list
Exemplu
Introduceti expresiile care urmeaza.
Legati simbolurile x, y si z de trei numere reale
Command: (setq x 1.0)
Command !x:
Command: (setq y 2.0)
Command: !y
Command: (setq z 3.0)
Command: !z
Folositi variabilele ca argumente la functia list.
Command: (list x y z)
Memorati lista intr-o variabila numita pt si folositi-o in cadrul comenzii AutoCAD.
Command: (setq pt (list x y z))
Command: !pt
Command: id
Point: !pt
X=1.0000 Y=2.0000 Z=3.0000
Command:
AutoCAD-ul foloseste sistemul de coordonate carteziene 3-D pentru a specifica punctele.
Un punct AutoCAD este reprezentat in AutoLISP sub forma unei liste de numere reale.
AutoLISP-ul reprezinta un punct AutoCAD 2-D sub forma unei liste formata din doua numere reale.
Un punct AutoCAD 3-D este reprezentat sub forma unei liste cu trei numere reale.
Functia quote poate construi o lista de numere din constante.
Functia list poate construi o lista de numere din constante sau din variabile.
exercitiul 6: utilizarea listelor de numere ca puncte autocad
in acest exercitiu veti:
Consolida cunostintele despre relatia dintre listele AutoLISP formate din doua sau trei numere reale si punctele AutoCAD.
Lega variabile pentru a reprezenta coordonatele unui punct.
Crea liste ale variabilelor coordonatelor pentru a reprezenta puncte.
Folosi liste ca raspunsuri la cererile de comanda AutoCAD.
Introduceti expresiile in coloana din stinga.
Scrieti valoarea returnata a fiecarei expresii in coloana din mijloc.
Daca o legatura simbol apare in cadrul expresiei, scrieti-i valoarea in coloana din dreapta.
Expresia |
Valoarea expresiei |
Simbol de atribuire |
(setq x 1.0) |
x = 1.0 |
|
(setq y 2.0) |
| |
(setq z 0.0) | ||
(list 1.0 2.0 0.0) | ||
(list x y z) | ||
(setq pt1 (list x y z)) | ||
!pt1 | ||
(quote (5.0 6.0 0.0)) | ||
(setq pt2 (quote (5.0 6.0 0.0))) | ||
!pt2 | ||
(quote (x y z)) | ||
(setq notapoint (quote (x y z))) | ||
!notapoint |
Tabelul 15. Crearea punctelor din liste de numere
in acelasi desen din partea I introduceti expresiile care urmeaza.
Creati o Linie si un Cerc folosind variabilele legate de liste formate din numere reale asa cum sint punctele pentru comenzile AutoCAD.
Legaturile simbol se bazeaza pe partea I a acestui exercitiu.
Command: line
From point: !pt1
To point: !pt2
To point: Enter
Command: circle
3P/2P/TTR/<center point>: 2p
First point on diameter: !pt1
Second point on diameter: !pt2
Figura 19. Linie si cerc folosind variabilele pt1 si pt2
Aceasta pagina este lasata libera in mod intentionat.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1611
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved