Sunteți pe pagina 1din 5

Pentru a lansa visual lisp in autocad prebuie tastata comanda vlide

(strcat a b c d e f)

= a b c d e f numai pentru texte

list este lista de numere din paranteze (x, y, z) se foloseste la car si cdr pentru a extrage anumite valori din alte puncte quote - este folosit pentru a returna o list sau un atom neevaluat, adic la valoarea ca list setq seteaza un parametru (setq pt1 10) a setat punctul 1 ca fiind 10 !pt1 = 10 apare valoarea care a fost setata anterior se pot face si setari cu operatii (setq pt2 (+ pt1 1)) pt2 = cu pt1 +1 = 11 (setq, set quote sau set = sunt identice) car ia primul element din lista (setq pt1 ( list x y)) (car pt1) =x cdr si cadr ia al doilea element din lista (setq pt1 (list x y)) (cdr pt1) =y car+car = caar (car (car ((A B) C D)) = (caar ((A B) C D)) car + cdr + car = cadar (car (cdr ( car ((A B) C D )) )) = (cadar ((A B) C D)) = B getpoint - da punct (setq pt1 (getpoint Alege primul punct: )) getcorner da colt (setq pt2 (getcorner pt1 Alege celalalt colt: )) getdist da distanta (setq dist1 (getdist pt1 "Alege al doilea punct: ")) getangle da unghi (setq ang1 (getangle pt1 "Alege al doilea punct: ")) getstring pentru inserare de cuvinte vezi ex de mai jos: (setq str1 (getstring "Enter a word: " )) getkword este un text de verificare rezulta Enter a word: = A

(setq str1 (getkword "Are you sure? <Yes/No>: ")) rezulta Are you sure? <Yes/No>: getint introducere valori intregi (getint [optional prompt string]) getreal introducere valori reale (getreral [optional prompt string]) (command line) executa comanda din pot fi puse mai multe comenzi (command line pt1 pt2 pt3 pt4 c) (defun C:ABC) este prima linie din lisp si plaseaza denumirea comenzii (in cazul de fata ABC) ce urmeaza dupa el sunt toti parametrii care vor fi introduse in lisp (distante puncte unghiuri etc) (defun c:BOX (/ pt1 dist1 angl3 pt2) defun: ce este mai jos este impartirea unui lisp in 3 parti (1. Partea de introducere date initiale; 2. Partea de procesare a datelor ; 3. Partea de desenate a datelor procesate) tot ce e inclus in o sa fie comenzile pentru fiecare etapa getinfo (defun getinfo () . ) - procinfo (defun getinfo () . ) - output (defun getinfo () . ) Daca folosim aceasta structura la sfarsitul lispului va trebui sa punem urmatoarele: (defun C:...denumire lisp (/pt1 dist1 angl3 pt2) (getinfo) (procinfo) (output) initget introduci valori dar exista posibilitatea de a impune anumite conditii (conform tabel1) in tabelul 2 sunt prezentate limitarile la fiecare comanda de mai sus. CODE 1 2 4 8 16 32 MEANING null input not allowed zero values not allowed negative values not allowed do not check limits for point values return 3D point rather than 2D point Use dashed lines for rubber-banding lines and

windows (initget 7) sau (initget (+ 1 2 4)) (setq int1 (getint "Enter an integer: "))

FUNCTION getint getreal getdist getangle getorient getpoint getcorner getkword getstring

can be used with initget bit code: 1,2,4 1,2,4 1,2,4,16,32 1,2,32 1,2,32 1,8,16,32 1,8,16,32 1 no initget codes honored

ssget selection set get comanda pentru selectia unor entitati la inceputul unei comenzi.daca las comanda simpla (fara "W") am posibilitatea sa aleg si cu selectie si cu dreptunghi (selectie clasica). (setq obj1 (ssget "W")) Metoda de selectie W window (fereastra) P o selectare antorioara L ultimul obiect adaugat in fisier C printr-o fereastra X printr-o lista de filtrare

if daca (este folosit la conditionari) cond conditie (este folosit la conditionari) princ in cazul in care vrei sa apara un mesaj de avertizare la o conditie (if (not C :BOX)(load "box")( princ "Box is already loaded"))

FUNCTION Predicates < >

RETURNS T (TRUE) IF...

a numeric value is less than another a numeric value is greater than another

<= >= = /= eq equal atom boundp listp minusp numberp zerop Logical Operators and not null or

a numeric value is less than or equal to another a numeric value is greater than or equal to another two numeric or string values are equal two numeric or string values are not equal two values are one in the same two expressions evaluate to the same value an object is an atom (as opposed to a list) a symbol has a value bound to it an object is a list a numeric value is negative an object is a number, real or integer an object evaluates to zero

all of several expressions or atoms return nonnil a symbol is nil a list is nil one of several expressions or atoms return nonnil

(if (or (equal choose "y")(equal choose "Y"))(3dbox)(box1)) Daca day y sau Y face 3dboxdaca nu face box1. rtos se foloseste la precizarea cifrelor de dupa virgula a unei valori Exemplu : Introducei expresiile care urmeaz. Legai simbolul x de numrul real 4.5 Command: (setq x 4.5) 4.5 Verificai-i valoarea i tipul de date Command: !x 4.5 Command: (type x) Folosii funcia rtos pentru a vizualiza valoarea lui x ca numr zecimal cu o precizie de 8 zecimale. Command: (rtos x 2 8) "4.50000000" type - funcia returneaz tipul de date al unui obiect. fix - funcia transform un numr real ntr-un numr ntreg

float - funcia transform un numr ntreg ntr-un numr real Command: (setq x 64435) 65535 Command: !x 65535 Command: (float x) 65535.0 Command: (fix (float x)) 65535 Command: (type x) INT Command: (type (float x)) REAL Command: (type (fix (float x))) INT Command: (rtos (float x) 2 10) "65535.0000000000" id afiseaza identitatea unei entitati (setq pt1 (1.0 1.0 1.0)) Command: id Specify point: !pt1 (1.0 1.0 1.0) X = 1.0000 Y = 1.0000 Z = 1.0000

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