CATEGORII DOCUMENTE |
AutoLISP-ul are doua tipuri de date numerice: numere intregi si numere reale. Functia type returneaza tipurile de date ale unui obiect.
in acest capitol veti studia:
Diferentele dintre cele doua tipuri de date numerice
Cum sa determinati tipul de date al unui obiect
Functia AutoLISP type se foloseste pentru a determina tipul de date al unui obiect. type cere un argument si returneaza un simbol care indica tipul de date al argumentului.
De exemplu, aceasta expresie returneaza tipul de date al numarului real 1.0
Command: (type 1.0)
REAL
AutoLISP-ul reprezinta numerele reale in virgula mobila, dubla precizie cu cel putin 14 zecimale. Nu exista tipuri de date care sa reprezinte numere cu simpla precizie in AutoLISP. Toate numerele reale sint cu dubla precizie si ele sint reprezentate in AutoLISP in aceeasi maniera ca in AutoCAD.
Numerele reale sint numere introduse cu punct zecimal, de exemplu 4.5 sau 123.456.
Command: (setq x 4.5)
Pentru valori cuprinse intre 1.0 si -1.0, zero trebuie sa preceada punctul zecimal, de exemplu, 0.45 sau 0.123 sau -0.876.
Command: (setq x 0.123)
Precizia implicita a afisarii unui numar real in AutoLISP este de 5
zecimale. Reprezentarea interna este intotdeauna mentinuta cu cel putin 14
zecimale semnificative de precizie.
Daca este necesara afisarea sau tiparirea valorii unui numar real cu o precizie
mai mare decit precizia de afisare a AutoLISP-ului, numarul real poate fi
transformat intr-un sir cu ajutorul functiei AutoLISP rtos si apoi afisat sau
tiparit cu precizia de afisare dorita.
rtos cere pina la 3 argumente: un numar real, un numar intreg care reprezinta unul dintre sistemele de unitati AutoCAD si numarul de zecimale pentru sirul care va fi returnat.
Introduceti expresiile care urmeaza.
Legati simbolul x de numarul real 4.5
Command: (setq x 4.5)
Verificati-i valoarea si tipul de date
Command: !x
Command: (type x)
Folositi functia rtos pentru a vizualiza valoarea lui x ca numar zecimal cu o precizie de 8 zecimale.
Command: (rtos x 2 8)
Numerele intregi sint numere introduse fara punct zecimal. Numerele intregi in AutoLISP sint numere intregi cu semn pe 32 biti cuprinse intre 2.147.483.648 si +2.147.483.647. Desi AutoLISP-ul foloseste valori de 32 biti, cele transferate intre AutoLISP si AutoCAD sint limitate la valori de 16 biti, de exemplu nu se poate transfera o valoare mai mica de -32.768 sau mai mare de +32.767 in AutoCAD. Daca folositi o valoare care depaseste aceste limite, puteti folosi functia float pentru a o transforma intr-un numar real inainte de a o transfera in AutoCAD.
Introduceti expresiile care urmeaza.
Legati simbolul x de un numar intreg cu valoarea de 65535.
Command: (setq x 64435)
Verificati-i valoarea si tipul de date.
Command: !x
Command: (float x)
Command: (fix (float x))
Command: (type x)
INT
Folositi functiile float si fix pentru a returna valoarea lui x cu tipuri de date diferite si folositi functia rtos pentru a imprima valoarea cu un format de zece zecimale.
Command: (type (float x))
REAL
Command: (type (fix (float x)))
INT
Command: (rtos (float x) 2 10)
AutoLISP-ul va converti numerele intregi in numere reale ori de cite ori va intilni ambele tipuri de date ca argumente la functie.
Daca doua numere intregi sint folosite ca argumente la functia de adunare +, valoarea returnata a expresiei este un numar intreg; totusi, daca argumentele sint un numar real si un numar intreg, valoarea returnata este exprimata printr-un numar real.
Aceasta expresie returneaza un numar intreg.
Command: (+ 1 2)
Command: (type (+ 1 2))
INT
Aceasta expresie returneaza un numar real.
Command: (+ 1.0 2)
Command: (type (+ 1.0 2)
REAL
AutoLISP-ul are doua tipuri de date numerice: numere intregi si numere reale.
Numerele intregi au valori de 32 biti in AutoLISP.
Numai numerele intregi cu valori de 16 biti pot fi transferate intre AutoLISP si AutoCAD.
Numerele reale sint numere zecimale cu dubla precizie.
Numerele reale sint retinute cu cel putin 14 zecimale de precizie.
AutoLISP-ul va converti un numar intreg intr-un numar real cind le intilneste pe amindoua in cadrul aceleiasi expresii.
Un numar real trebuie intotdeauna sa aiba o cifra care precede punctul zecimal.
Functia type returneaza tipul de date al unui obiect.
Functia fix transforma un numar real intr-un numar intreg.
Functia float transforma un numar intreg intr-un numar real.
exercitiul 5: folosirea numerelor intregi si reale
in acest exercitiu veti:
Consolida cunostintele despre tipurile de date ale numerelor intregi si reale.
Folosi functia setq pentru a lega variabile de valori cu tipuri de date numerice diferite.
Determina valoarea returnata si tipul de date numerice ale unei expresii AutoLISP
1.Legati simbolurile de valori diferite.
2.Introduceti s-expresia corespunzatoare in linia de comanda AutoCAD.
simbol |
valoare |
a | |
b | |
c | |
x |
|
y | |
z |
Tabelul 13. Legarea variabilelor de valori numerice.
1.Determinati valoarea returnata si tipul de date pentru fiecare expresie.
2.Scrieti raspunsurile in coloanele corespunzatoare
3.Trebuie mai intii sa efectuati prima parte a acestui exercitiu.
expresia-s |
returnarea valorii |
tip de data pentru valoarea returnata |
(+ a b) | ||
(+ a y) | ||
(+ y z) | ||
(fix x) | ||
(float a) | ||
(fix z) | ||
(float (fix z)) | ||
(fix (+ (float a) (float b))) | ||
(/ x y) | ||
(fix (/ x y)) | ||
(float (fix (/ x y))) | ||
(+ (fix (/ a y)) (fix (float a))) |
Tabelul 14. Valorile returnate si tipurile de date numerice ale expresiilor.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1121
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved