Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




POSIBILITATI SPECIALE

autocad


----------AUTOCAD

POSIBILITATI SPECIALE

--Acest capitol descrie anumite posibilitati speciale folosite in secventele de comenzi si crearea de prezentari. In plus¬ acest capitol introduce elementele de baza ale AutoLISP- ului si ale constructiei in limbaę de programare a AUTOCAD-ului.



--11.1. Comenzi SCRIPTS

--AUTOCAD-ul detine o facilitate care permite citirea comenzilor dintr-un fisier detiptext. Este astfel posibila executarea unei predeterminate secvente de comenzi» se pot apela aceste comenzi cind AUTOCAD-ul se lanseaza in executie (folosind o forma speciala a comenzii "acad"© sau se poate rula o astfel de secventa suâ Editorul de desenare¬ utilizind comanda SCRIPT. Aceasta facilitate permite o modalitate mai usoara de creare a programelor demonstrative pentru anumite produse si prezentari comerciale.

--Aceste fisiere care contin secvente de comenzi sint create in afara AUTOCAD-ului¬ cu ajutorul unui editor de texte (ca EDLIM© sau a unui procesor de cuvinte (WordStar© in modul programare. Extensia fisierelortrebuie sa fie ".scr".

--11.1.1. Apelarea unui fisier prescris la incarcarea AUTOCAD-ului

--Pentru o astfel de apelare¬ comanda de incarcare a AUTOCAD-ului este :

--drive>acad desen-implicit fisier-prescris

Fisierul prescristrebuie sa fie al doilea in linia de comanda si sa aiba extensia ".scr". Aceasta metoda de apelare a secventei de comenzi incepe prin citirea din fisierul prescris¬ astfel incit prima linie a acestuiatrebuie sa contina selectarea uneia dintre optiunile Meniului principal¬ (Main Menu).

--Invocarea in aceasta maniera¬ sare peste incarcarea fisierului "acad.msg".

--De exemplu¬ sa presupunem ca de fiecare data cind se incepe un desen nou¬ se comuta grila pe on¬ se selecteaza scara tipului de 737h72h linie la 3.° si se selecteaza drept curent stratul "0˘ cu culoarea rosie.

toate acestea pot fi acoperite utilizind un desen prototip¬ dar in scopul prezentei discutii¬ se vor considera intr-o secventa prescrisa intr-un fisier denumit "setup. scr".

--1------ (creaza un desen nou)

-------- (blanks foloseste numele implicit)

--grid on---- (comuta grila pe on)

--ltscale 3.0----(selecteaza scaratipurilor de linie)

--layer set color red ° (selecteaza stratul curent si culoarea acestuia)

-- (blank pentru terminarea comenzii LAYER)

Acum¬ daca se doreste crearea unui nou desen numit "widget"¬ AUTOCA-ultrebuie lansat astfel :

--drive>acad widget setup

Astfel¬ numele implicit al noului desen va fi "widget˘ si se incepe citirea comenzilor din fisierul "setup.scr".

--Dupa terminarea citirii acestui fisier¬ cererea "Command:˘ apare si AUTOCAD-ul asteapta comenzi in mod normal. Bineinteles se presupune ca se cunosc destul de bine secventele de comenzi ale AUTOCAD-ului¬ pentru ca fisierul prescris sa contina raspunsurile exacte. De notat ca cererile AUTOCAD-ului (si chiar numele comenzilor© se pot modifica in comuniarile ulterioare » de aceea uneori este necesara revizuirea fisierului.trebuie evitata utilizarea abrevierilor» pot fi create ambiguitati. De notat ca in acest fisier¬ fiecare blank este important¬ pentru ca AUTOCAD-ul accepta fie blankul fie RETURN-ul drept comenzi sauterminator de cimp de date.

--11.1.2. Comanda SCRIPT

--Comanda SCRIPt permite invocarea fisierului prescris din Editorul de desenare.

--Command s SCRIPt Script files (name)

Extensia ".scr˘ este asumata» aceasta nu trbuie inclusa in raspuns. Secventa de comenzi continuta in fisier este executata si cererea "Command:˘ reapare. Daca si comanda SCRIPt este citita din fisier¬ fisierul prescris curent esteterminat si fisierul chemat de comanda devine cel curent.

--Anumite comenzi suplimentare sint prevazute pentru o mai mare flexibilitate a secventei prescrise. Acestea sint descrise in continuare.

--11.1.3. Comanda DELAY

--Uneori¬ anumite operatii ale AUTOCAD-ului decurg¬ destul de repede¬ facind dificila vizualizarea pe ecran. Comanda DELAY este Sprevazuta pentru a determina o pauza suficienta intre astfel de operatii :

--Command s DELAY Delaytime in millisecondss (numar)

--Numarul precizeaza durata pauzei. Un numar mai mare indica o pauza mai indelungata. In functie de viteza de procesare a calculatorului este greu de precizat precistimpul de pauza dar acesta este aproximativ de o milisecunda pe increment. Astfel¬ daca se introduce "DELAY 1000"¬ urmatoarea cerere "Command:˘ va fi intirziata cu aproximativ o secunda. Limita superioara pentru numarul care precizeaza pauza este 32767¬ aproximativ 3ł secunde.

--11.1.4. Comanda RESUME

--Introducind CTRL C sau Backspace de la tastatura se intrerupe secventa prescrisa la sfirsitul comenzii curente si se permite introducerea de comenzi prin metodele normale.

--Daca ulterior se doreste revenirea la secventa prescrisa (in locul unde a avut loc intreruperea© se introduce

--Command s RESUME

Orice eroare intilnita in timpul procesari secventei din fisierul prescris¬ determina suspendarea acesteia.

--Daca aceasta se intimpla intimp ce Editorul de desenare este activ¬ se poate utiliza comanda RESUME pentru continuare. Daca o comanda este in executie intimpul aparitiei erorii se poate apela in modtransparent comanda RESUME cu un apostrof anterior ('RESUME').

--11.1.5. Comenzile GRAPHSCR sitEXTSCR

--Anumite comenzi ale AUTOCAD-ului (de exemplu HELP sau STATUS)¬ comuta automat pe afisareatext in sistemele cu un singur display. Desi se poate utilizatasta FLIP SCREEN pentru revenirea manuala in afisarea grafica¬ nu exista nici o metoda de includere a acesteitaste intr-o comanda prescrisa si nici intr-o rubrica meniu. De aceea s-au prevazut doua comenzi speciale pentru a permite comutarea comenzilor prescrise si a rubricilor meniu intre displayuriletext si grafic. Aceste comenzi sint :

--Command s GRAPHSCR

pentru comutarea in afisarea grafica¬ si

--Command stEXTSCR

pentru comutarea in afisareatext. Aceste comenzi pot fi folosite si in modtransparent (precedate de un apostrof© intimp ce alta comanda este in executie. Ele sint ignorate in sistemele cu doua displayuri.

--11.1.6. Comanda RSCRIPt ­ Comenzi prescrise continue

--In anumite situatii (programe demonstrative cu scop comercial)¬ este util a avea o secventa de comenzi care sa ruleze continuu pentru a releva multiple aspecte ale unui produs.

--Metoda utilizata depinde de modul de apelare a fisierului prescris. Daca acesta a fost apelat in linia de comanda de lansare in executie a AUTOCAD-ului si ultima comanda prescrisa din fisier este "END˘ sau "QUIt Y"¬ se va relua la reaparitia meniului principal (Main Menu).

--In acest caz¬ fisierul prescristrebuie inceput cu una dintre optiunile meniului principal. Pe de alta parte¬ in cazul in care comanda SCRIPt a fost utilizata pentru invocarea fisierului prescris curent¬ se poate cere explicit reluarea acestuia¬ incluzind comanda RSCRIPT.

--Command s RSCRIPT

Aceasta comanda este executata de Editorul de desenare al AUTOCAD-ului » ea nu determina abandonarea acestuia. De aceea¬ fisierul prescris va fi reluat cu comenzi ale Editorului de desenare si nu cu raspunsuri la optiunile meniului principal.

--De notat ca RSCRIPt nu este inteleasa de rutina meniului principal. De aceea ¬ nutrebuie sa urmeze o comanda "END˘ sau "QUIt Y˘ in secventa prescrisa.

Exemple :

Urmatorul exemplu reprezinta o secventa prescrisa continua apelata din linia de comanda "acad".

--1--------¨desen nou)

--demo------ (nume desen)

--line 1,± 2,± 2,˛ 1,˛ c (deseneaza un patrat)

--delay 500---- (pauza 1/˛ secunde)

--move ÷ 0,° 3,ł 7,° (muta patratul la dreapta · unitati)

----------("7.0˘ reprezinta deplasarea)

--delay 1000---- (pauza ± secunda)

--quit y------(ciclare)

Daca aceasta secventa se scrie in fisierul "box.scr˘ se va apela astfel :

--drive>acad ř box

De remarcat ca secventa denumeste desenul ("demo")¬ astfel incit numele implicit al desenului "X˘ specificat in linia de comanda este ignorat. Secventa creaza desenul "demo"¬ deseneaza un patrat si il deplaseaza · unitati la dreapta inainte de terminare si reluare. La editarea secventeitrebuie asigurata introducerea spatiilor (blank-urilor© si a RETURN-urilor in locurile adecvate. In exemplu de mai sus¬ de remarcat cele ˛ blankuri intre perechile "3,3˘ si "7,0˘ din comanda MOVE.

--Primul blank indicaterminarea cimpului de date "3,3"¬ iar al doilea indica completarea selectarii obiectului. Caracterele din fisier sint interpretate intotalitate si fiecare caracter este luat in considerare. Urmatorul exemplu prezinta o secventa prescrisa continua¬ invocata cu comanda SCRIPt :

--regen------ (regenerare desen)

text 3,˛ .µ 0----(adaugaretext)

--Come in for a demonstration !

--delay 1000---- (pauza ± secunda)

--erase L------(stergetextul)

----------(blank sfirsit selectare obiect)

--rscript------(reluare si restart secventa)

Daca aceasta secventa este scrisa in fisierul "showoff.scr˘ se va apela astfels

--Commands SCRIPt Script file s showoff

Aceasta secventa regenereaza desenul si adauga o scurta pauza¬ textul este sters si secventa este reluata cu comanda "regen".

--11.2. Demonstratii "slide"

--Uneori este necesara prezentarea mai multor vederi ale unui desen compleř sau vizualizarea mai multor desene diferite. Acestea pot fi realizate utilizind metodele obisnuite ale AUTOCAD-ului (incarcind desene diferite si aplicind daca este necesar procedee zoom)¬ dar cu consum detimp marit. In aceste cazuri posibilitatile "slide˘ ale AUTOCAD-ului sint preferabile.

--Se pot crea demonstratii complexe combinind facilitatile "slide˘ cu cele oferite de secventele de comenzi prescrise descrise mai inainte.

NOTA s Versiunea standard a AUTOCAD-ului poate fi utilizata pentru vizualizarea slide-urilor¬ dar pentru crearea lor este necesar pachetul ADE-2.

--Ce este un "slide˘ ?

In AUTOCAD un slide este un fisier care contine o secventa instantanee ("snapshot"© a displayului pe monitorul grafic.

--Se pot utiliza comenzi obisnuite ale AUTOCAD-ului pentru obtinerea imaginilor dorite pe monitor si ulterior obtinerea unui slide al acestui display.

--11.2.1. Comanda MSLIDE ­ Formarea unui slide (+2)

--Comanda MSLIDE apartinind pachetului ADE-˛ este utilizata pentru a face un slide al displayului curent pe monitorul grafic. Initial¬ se creaza displayul care se doreste a fi salvat¬ apoi se introduce :

--Command s MSLIDE Slide file <currentľs (nume)

Numele desenului curent este considerat ca implicit. Pentru utilizarea acestuia¬ setasteaza RETURN. Extensia ".sld˘ este asociata numelui introdus» nu se include extensia in raspuns. La crearea slide-ului¬ are loc o operatie de redesenare¬ astfel incit aceasta poate fi vizualizata. Portiunile din desen care sint in afara ecranului sau pe straturile care sint "off"¬ nu sint incluse in slide.

--11.2.2. Comanda VSLIDE ­ Vizualizarea unui slide

--Pentru vizualizarea unui slide¬ se utilizeaza comanda :

--Commmand s VALIDE Slide file s (nume)

Nu se include extensia in raspuns» este asumata ".sld˘ de catre AUTOCAD. Daca fisierul slide este gasit este citit¬ iar continutul sau este afisat pe monitorul grafic. Pentru restaurarea desenului curent pe monitor se utilizeaza comanda REDRAW.

--Daca sint necesare mai multe slide-uri la o prezentare¬ o posibilitate suplimentara poate fi folosita. In mod normal¬ viteza cu care un slide este afisat¬ este limitata de accesarea discului pentru citirea fisierului. Este insa posibila incarcarea de pe disc in memorie a slidului care urmeaza¬ in timpul asimilarii slidului curent si apoi afisarea rapida din memorie a celui nou.

--Pentru o astfel de preincarcare a unui slide se introduce un asterics inaintea numelui in comanda VSLIDE. Urmatoarea comanda VSLIDE sesizeaza preincarcarea unui slide si-l afiseaza fara a mai cere un nume de fisier. Pentru exemplificare se considera urmatoarea secventa prescrisa :

--VSLIDE SLIDE1----(incepe prezentarea slide-ului)

--VSLIDE *SLIDE2----(preincarca slide-ul 2)

--DELAY 2000---- (timp vizualizare slide-ul 1)

--VSLIDE------ (afiseaza slide-ul 2)

--VSLIDE *SLIDE3----(preincarca slide-ul 3)

--DELAY 2000---- (timp vizualizare slide-ul 2)

--VSLIDE------ (afiseaza slide-ul 3)

--DELAY 3000---- (timp vizualizare slide-ul 3)

--RSCRIPT------(ciclare)

Timpul de acces al discului necesar pentru incarcarea slide- urilor care urmeaza¬ este marit cutimpii de vizualizare pentru slide-urile curente. Pot fi utilizati in functie de necesitati¬ timpii suplimentari.

--11.2.3. Notatii asupra slide-urilor

--Facilitatea "slide˘ este foarte diferita de alte aspecte ale AUTOCAD-ului si ia in considerare faptul ca trebuie incarcata pentru utilizare in particular :

s Slide-urile nu pot fi editate. In cazul in care comenzile de editare normale (pntru a desena un segment¬ de exemplu© sint executate in timpul vizualizarii sint executate in timpul vizualizarii unui slide¬ editarea nu afecteaza sliderul ci desenul curent (care nu este vizibil). De aceea se recomanda numai a comenzilor urmatoare intimp ce se vizualizeaza un slide:

--­ VSLIDE¬ pentru a vizualiza alt slide

--­ DELAY¬ pentru a lasatimp pentru vizualizarea slide-ului

--­ REDRAW¬ pentru readucerea desenului curent pe monitor. (De notat ca orice comanda care forteaza operatia de redesenare¬ de exemplu GRID OFF¬ reintoarce desenul curent pe monitor). Alte comenzi¬ ca MENU sau SCRIPT¬ care nu afecteza -- slide-ul sau desenul curent. Comenzile care comuta in modul text pe sistemele cu un singur ecran¬ ca FILES si HELP¬ pot fi de asemenea utilizate¬ cu exceptia celor care comutind din modultext inapoi in modul grafic forteaza operatia de redesenare.

Daca se doreste revizuirea unui slide¬ se editeaza desenul continut si apoi se formeaza un nou slide.

s Conditionarile layer/color¬ zoom-ul si alte conditii ale Editorului de desenare¬ active in momentul vizualizarii unui slide¬ nu influenteaza derularea acesteia. Un slide este pur si simplu o copie a ecranului¬ in momentul formarii lui¬ cu toate particularitatile existente.

s Daca se utilizeaza un monitor grafic cu rezolutie scazuta in momentul crearii unui fisier slide si apoi se vizualizeaza pe un monitor grafic de inalta rezolutie¬ AUTOCAD-ul ajusteaza imaginea in mod corespunzator. Cutoate acestea¬ slide-ul nu va beneficia de toate avantajele noului monitor pina la reformarea dupa desenul original.

--11.3. Variabile si expresii AutoLISP (+3)

--Daca pachetul optional ADE-ł este prezent se pot defini variabile detip intreg¬ real¬ punct si sir si li se pot asigura valori care pot fi folosite ori de cite ori AUTOCAD-ul cere date.

De asemenea se pot efectua operatii aritmetice si conditionale cu aceste valori si se pot utiliza expresii cu ele pentru a raspunde la cererile AUTOCAD-ului.

--Aceste facilitati avansate sint extrem de folositoare cind sint utilizate cu sistemul de meniuri (Anexa B). In cazul in care sinteti un utilizator nou al AUTOCAD-ului¬ se recomanda evitarea acestei sectiuni pentru aprofundarea notiunilor de baza anterioare.

--Variabilele si expresiile utilizeaza limbajul de programare AutoLISP¬ dar doar schiteaza o parte din posibilitatile acestuia. Aceasta sectiune introduce elementele de baza ale AutoLISP-ului (suficiente pentru utilizarea efectiva a variabilelor)¬ cele mai multe informatii fiind prezentate in Ghidul de programare AutoLISP.

--11.3.1. Expresii AutoLISP

Toate expresiile AutoLISP au forma :

(nume functie [argumente]...)

Fiecare expresie incepe cu o paranteza stinga si este formata ditr-un nume de functie si o lista optionala a argumentelor functiei (fiecare poate fi ea insasi o expresie).

--Expresiatrebuieterminata cu o paranteza. Fiecare expresie returneaza o valoare care poate fi utilizata de alta expresie» daca nu exista o astfel de expresie¬ AutoLISP-ul returneaza valoarea AUTOCAD-ului.

--Daca se introduce o expresie AutoLISP ca raspuns la cererea "Command:˘ a AUTOCAD-ului¬ valoarea acesteia este afisata pur si simplu. Desi cererea "Command:˘ nu mai apare¬ se poate introduce o comanda AUTOCAD in maniera uzuala. Cererea "Command:˘ va reapare cind comanda ce urmeaza esteterminata.

Daca o expresie incorecta estetiparita sau este citita dintr-un fisier¬ AutoLISP-ul poate afisa :--n>

unde n este un numar intreg care indica cite paranteze ramin neinchise. Daca apare aceasta cerere¬ trebuie introduse n paranteze pentru a iesi din aceasta conditie. O greseala frecventa este omiterea inchiderii apostrofului dublu ("© dupa un sirtext¬ in care caú parantezele ce urmeaza vor fi interpretate asemanator si modificarea lui n nu are nici un efect. Pentru corectarea acestei situatii se introduce ("© urmata de n paranteze.

--11.3.2. Variabile AutoLISP

--Variabilele AutoLISP pot fi de patrutipuris intreg¬ real¬ punct si sir.tipul variabilei este asociat in mod automat pe baza tipului valorii asignate. Variabilele retin aceste valori pina la o noua atribuire sau pina la incheierea sesiunii Editorului de desenare. Aceste variabile pot fi denumite oricum cu conditia ca primul caracter sa fie o litera. Variabilei "pi˘ ii este atribuita valoarea lui pi.

--Functia "setq˘ este utilizata pentru atribuirea de valori variabilelor. Formatul este :

--(setń nume-variabila valoare)

Functia "setq˘ atribuie valoarea specificata variabilei cu numele precizat. De asemenea reintoarce valoarea ca functie rezultata.

--Daca se utilizeaza "setq˘ cind AUTOCAD-ul a afisat o cerere "Command:˘ se va selecta variabila si se va afisa valoarea atribuita. De notat ca parantezeletrebuie sa incadreze expresia» ele sint obligatorii. Urmeaza citeva exemple :

--(setń k 3)S

--(setń ř 3.875)

--(setń layname ˘ EXTERIOR-Walls")

Aceste expresii atribuie valori unor variabile de tip intreg¬ real si respectiv sir. Variabilele punct reprezinta un bit mai complicat¬ in sensul ca ele contin amindoua coordonatele.

--Acestea sint prezentate ca o lista de doua numere incadrata de paranteze :

Primul termen din lista reprezinta coordonata Ř si al doilea¬ coordonata Y. Se poate utiliza si o alta functie de construire "list"¬ pentru formarea unei liste cu aceasta forma :

--(list 3.87µ 1.23)

De aceea¬ pentru atribuirea unor anumite coordonate unei variabile punct¬ se poate folosi una dintre expresiile urmatoare:

--(setń pt (list 3.87µ 1.23))

--(setń pt (list Ř 1.23))

Ultima utilizeaza valoarea variabilei "X˘ drept coordonata Ř a punctului. Se pot referi individual fiecare dintre coordonate¬ utilizind ˛ functii de constructie numite "car˘ si "cadr".

--(car pt© (intoarce coordonata Ř a variabilei punct "pt")

--(cadr pt© (intoarce coordonata Y a variabilei punct "pt")

De exemplu¬ sa presupunem ca variabilelor "pt1˘ si "pt2˘ le sint atribuite punctele (1,2© si (3,4)¬ ca fiind colturile opuse ale unui dreptnghi. Se pot utiliza functiile "car˘ si "cadr˘ pentru atribuirea variabilei "pt3˘ a coordonatelor unui alt colt al dreptunghiului (care are coordonata Ř a variabilei "pt1˘ si coordonata Y a variabilei "pt2"¬ dupa cum urmeaza:

--(setń ptł (list (car pt1© (cadr pt2)))

Functia "reverse˘ este de asemenea prevazuta .

Ea inverseaza ordineatermenilor in lista si este des folosita

pentru inversarea coordonatelor unei variabile de tip punct.

Continuind exemplul anterior¬ de exemplu :

--(reverse pt3)

va fi returnat punctul (4,1)

In cazul in care se doreste utilizarea valorii unei variabile ca raspuns la o cerere AUTOCAD¬ se introduce pur si simplu numele variabilei precedat de semnul axclamarii "!". Sa presupunem de exemplu¬ ca s-a atribui variabilei "abc˘ valoarea 14.887024. Se poate introduce de acum "!abc˘ ori de cite ori se doreste ca raspunsul la o cerere AUTOCAD sa fie 14.887024.

De exemplu :

S--Column distance s !abc

in mod asemanator¬ daca se dorestetrasarea unui segment din punctul (1,4©¬ atribuit variabilei "pt˘ se poate introduce :

--Command s LINE

--From point s !pt

OBSERVATII :

--1. Pentru ca expresiile si variabilele referite sa fie interpretate corect¬ paranteza "(˘ sau semnul exclamarii "!˘ trebuie sa fie primul caracter introdus in raspunsul la o cerere. Intrucit si siruriletext obisnuite pot incepe cu "!˘ sau "(˘ nu se poate folosi o variabila sau o expresie care sa furnizeze sir text pentru comenzi catEXt sau ATTDEF (a se vedea descrierea functiei "command˘ descrisa ulterior in aceasta sectiune).

--2. Nu se poate utiliza o variabila ca referire la o comanda AUTOCAD . De exemplu daca s-a atribuit sirul "line˘ variabilei "X˘ si apoi se introduce "!X˘ drept raspuns la cererea de comenzi a AUTOCAD-ului¬ "Command :"¬ se va afisa pur si simplu valoarea "line"» comanda LINE nu va fi executata.

--11.3.3. Variabilele sistem ale AUTOCAD-ului

--AUTOCAD-ul este prevazut cu numeroase variabile predefinite¬ multe dintre ele putind fi utilizate pentru modificarea diferitelor moduri si limite de desenare. Variabilele sistem pot fi accesate prin intermediul functiilor "getvar˘ si "setvar˘ unde:

--(getvar "nume-variabila")

intoarce numele variabilei sistem¬ iar :

--(setvar "nume­variabila˘ valoare)

atribuie valoarea specificata¬ variabilei sistem cu numele precizat. De notat ca numele variabilei trebuie inclus intre apostrofuri duble. Unele variabile sistem sint detip read-only si nu pot fi modificate. De exemplu¬ pentru comutarea grilei pe off¬ se poate utiliza :

--(setvar "GRIDMODE˘ 0)

Comanda "GRID OFF˘ va avea acelasi efect¬ si va modifica in mod corespunzator variabila de sistem.

In anexa A este prezentata o lista completa a variabilelor sistem.

--11.3.4. Expresii aritmetice

--Anumite functii aritmetice¬trigonometrice si geomerice sint prevazute pentru utilizarea lor in expresii.

Majoritatea functiilor aritmetice accepta argumente intregi sau reale. Dacatoate argumentele sint intregi¬ rezultatul va fi de asemenea intreg» daca unul dintre argumente este real¬ intregii vor fi convertiti in reali si rezultatul va fi real.

Functiile aritmetice includ :

--(« ř y© ­ intoarce suma x+y

--(­ ř y) ­ intoarce diferenta x-y

--(« ř y) ­ intoarce produsul x*y

--(Ż ř y) ­ intoarce raportul x/y

--(mař ř y) ­ intoarce maximul dintre ř si y

--(min ř y© ­ intoarce minimul dintre ř si y

Fiecare dintre aceste functii permit mai multe argumente . De exemplu :

--(s ł ´ 5)

vor realiza suma¬ diferenta¬ produsul si impartirea argumentelor respective¬ returnind valoril 325.000000¬ 78,6° si respectiv 25.000000. In mod asemanator ,(mař ¸ ł 14.µ 300) va conduce la rezultatul 300.000000¬ maximul argumentelor specificate.

--Pe de alta parte¬ functiile listate in continuare cer numarul de argumente precizat :

(abs x)-- ­ intoarce valoarea absoluta (modulul© lui x

(sqrt x)-- ­ intoarce radacina patrata (radicalul© din x

(expt ř p)--­ intoarce ř ridicat la puterea p

(exp p)-- ­ intoarce e ridicat la puterea p

(log x)-- ­ intoarce logaritmul natural din x

(float x)--­ intoarce x-ul intreg convertit in real

(fiř x©-- ­ intoarce partea intreaga a lui ř (conversia inversa). Aplicata valorii reale 2. va returna 2. Aplicata lui -2. va returna -2.(sin ang© intoarce sinusul lui ang¬ unde ang este un unghi in radiani (cos ang© intoarce cosinusul lui ang¬ unde ang este un unghi in radiani (atan x)-- ­ intoarce arctangenta (in radiani© lui x(1« x©-- ­ incrementeaza ř-ul cu 1. Este echivalent cu (« ř 1) (±­ x©-- ­ decrementeaza ř-ul cu 1. Este echivalent cu (­ ř 1) (angle p± p2© ­ intoarce unghiul (in radiani© intre punctele p± si p2 (distance p± p2© ­ intoarce distanta intre punctele p± si p2 (polar p± ang d© ­ intoarce punctul aflat la distanta d de punctul p1¬ suâ unghiul ang (in radiani) (type a) intoarce tipul lui a (intreg¬ real¬ lista¬sir)

De remarcat ca nici una dintre aceste functii nu schimba valoarea curenta a variabilei» ele doar opereaza si intorc un rezultat.

--Daca se doreste utilizarea unei expresii pentru a schimba valoarea unei variabile¬trebuie atribuit rezultatul expresiei prin intermediul functiei "setq". De exemplu :--(setń x(­ ř 2))

scade ˛ din variabila "x˘ atrubuind rezultatul tot variabilei "x".

--11.3.5. Functii pentru siruri

--Citeva functii pentru siruri sint prevazute pentru utilizarea in expresii. Acestea sint :

(itoa int©-- ­ intoarce valoarea intreaga int convertita in sir ASCII

(atoi s©----­ intoarce valoarea intreaga rezultata prin conversia sirului s

(ascii c)----­ intoarce codul ASCII pentru caracterul c

(chr int©-- - intoarce caracterul ASCII reprezentat de intregul int

(strcat s± s2)--­ intoarce concatenarea sirurilor s± si s2

(strlen s)-- ­ intoarce lungimea sirului s

(terpri)----­ incepe o noua linie pe displayul ecran

--11.3.6. Expresii conditionale

--Se pot construi expresii conditionale care presupun executarea unei operatii date¬ numai daca o anumita conditie este indeplinita. Aceasta se poate realiza cu ajutorul functiei "if". Trebuie precizate functiei¬ conditia de testat si operatia efectuata in cazul verificarii conditiei. Se poate indica si operatia caretrebuie efectuata in cazul in care conditia nu se verifica. In continuare sint prezentate cele ˛ forme ale functiei "if˘ :

--(if conditie executie-adevarat)

--(if conditie executie-adevarat executie-fals)

"Conditie","executie-adevarat˘ si "executie-fals˘ pot fi expresii¬ incluse in paranteze.

Conditia este evaluata si daca rezultatul este non-nil (adevarat© Sexpresia "executie-adevarat˘ este executata¬ iar daca rezultatul este nil expresia "executie fals˘ este executata. Anumite functii sint prevazute pentru utilizarea drept conditii. Acestea sint :

(minusp num© ­ intoarce t daca num este negativ,nil in sens contrar

(zerop num) ­ intoarce t num este zero,nil in sens contrar

(numberp x© ­ intoarce t daca ř este un numar (intreg sau real)¬ nil in sens contrar

(not a â...) ­ intoarce "not˘ logic intre a,b...

(or a b...) ­ intoarce "sau˘ logic intre a,b...

(and a b...) ­ intoarce "si˛ logic intre a,b...

(˝ a b)-- ­ intoarce t daca a=b¬ nil in caú contrar

(/˝ a b)-- ­ intoarce t daca a=b¬ nil in caú contrar

(ľ a b)-- ­ intoarce t daca a>b,nil in caú contrar

(>˝ a b)-- ­ intoarce t daca a>=b¬ nil in caú contrar

(Ľ a b)-- ­ intoarce t daca a<b¬ nil in caú contrar

(<˝ a b)-- ­ intoarce t daca a<=b¬ nil in sens contrar

(listp a©--­ intoarce t daca a este o lista¬ nil in sens contrar

(null a)-- ­ intoarce t daca a este nil¬nil in sens contrar

De exemplu sa presupunem ca avem o variabila intreaga i si o variabila sir s si se doreste ca sirul sa fie "Correct˘ daca i este zero si "Error˘ in caú contrar :

--(if (˝ i 0© (setń s "Correct"© (setń s "Error")

In acest exemplu¬ "(˝ i 0)˘ este conditia care setasteaza » ea inseamna "este variabila i egala cu zero?". Daca da¬ va fi executat primul "setq"» daca nu¬ va fi executat al doilea "setq". Alta modalitate pentru acest exemplu este :

--(setń s (if (=i 0© "Correct˘ "Error"))

Aici expresia "if˘ returneaza fie "Correct˘ fie "Error"¬ iar rezultatul este atribuit variabilei s. Va puteti baza pe o testare conditionala asupra valorii unei variabile sistem a AUTOCAD-ului¬ iar rezultatul este atribuit variabilei s.

--(if (ľ (getvar "FILLETRAD"© 0.2µ (setvar "GRIDMODE˘ 0))

Aici functia "getvar˘ este utilizata pentru obtinerea si verificarea variabilei sistem "FILLETRAD˘ (raza de racordare). Daca aceasta este mai mare de 0.2µ ¬ atunci functia "setvar˘ este utilizata pentru selectarea pe zero a variabilei sistem "GRIDMODE˘ (comutind grila pe OFF).

--In acest exemplu¬ nu este specificata nici o expresie "executie-fals"¬ astfel incit daca raza de racordare este mai mica sau egala cu 0.2µ ¬ nu se va executa nici o operatie.

--11.3.7. Functii pentru introducerea datelor

--Anumite functii sint prevazute pentru a permite cereri de Sintroducere si pentru utilizarea raspunsurilor in expresii. Aceste functii sint mult folosite in rubricile meniurilor (a se vedea anexa B).

--Cereri pentru introducere

--Se poate formula o cerere de introducere utilizind functia "prompt˘ :

--(prompt "sir")

Aceasta presupunere ca "sir˘ reprezinta o cerere AUTOCAD. Sirul trebuie precizat explicit sau poate fi facuta o referire la o variabila sir. De exemplu :

--(prompt "Enter your name:")

--(setń s "Enter your name:")

--(prompt s)

vor avea acelasi efect. Functia "prompt˘ intoarce intotdeauna nil.

--Obtinerea unui punct

--Pentru citirea unui punct introdus de utilizator¬ se foloseste functia "getpoint"

--(getpoint [bazaÝ [cerere])

argumentele "baza˘ si "cerere˘ sint optionale. Daca "baza˘ este prezent¬ el specifica punctul de baza al liniei ajutatoare (subiectul modului Ortho). Daca un sir "prompt˘ este prezent el este afisat ca o cerere. Functia "getpoint˘ intoarce nil daca se semnaleaza o eroare.

--Utilizatorul poate folosi orice metoda de specificare a unui punct¬ incluzind formate speciale folosite de comanda UNITS.

Exemple :

--(setń pt± (getpoint "First end of wall:"))

--(setń pt˛ (getpoint pt± "Other end of wall?"))

--Obtinerea unei distante

--Pentru citirea unei distante specificate de utilizator¬ se foloseste functia "getdist".

--(getdist [bazaÝ [cerere])

Utilizatorul poate folosi oricare dintre metodele de specificare a distantei¬ incluzind formatele speciale utilizate de comanda UNITS.

--Daca se introduce un anumit punct¬ AUTOCAD-ul ataseaza plecind din acesta un cursor de forma unei linii indicatoare ajutatoare si formuleaza o cerere pentru un al doilea punct. Dupa aceasta¬ returneaza distanta dintre aceste doua puncte. Daca este specificata valoarea unui punct drept argument optional "baza˘ pentru functia "getdist"¬ acest este considerat drept prim punct iar linia indicatoare ajutatoare este asociata acestuia. Daca se mai introduce un punct AUTOCAD-ul va returna distanta dintre punctul de baza si acesta.

--Daca este specificat argumentul optional "cerere"¬ sirul respectiv este considerat o cerere. Daca amindoua argumentele optionale sint dorite¬ ele se specifica in ordinea mentionata. Functia "getdist˘ returneaza nil daca este semnalata o anumita eroare.

--Obtinerea unui unghi

--Pentru citirea unui unghi specificat de utilizator¬ se foloseste functia "getangle".

--(getangle [bazaÝ [cerere])

Aceasta opereaza exact ca functia "getdist˘ cu deosebirea ca unghiul este returnat in radiani¬ dupa introducerea punctelor de catre utilizator. Daca este semnalata o eroare¬ este returnat nil. Utilizatorul poate folosi oricare dintre metodele de specificare a unghiului¬ incluzind formatele speciale utilizate de comanda UNITS.

--Obtinerea unui numar real

--Pentru citirea unui numar real (factor de scalare ¬ etc.© solicitat de utilizator se foloseste functia "getreal".

--(getreal© [cerere])

Numai numerele zecimale si notatia stiintifica sint acceptate de catre aceasta functie.

--Formatele speciale utilizate de comanda UNITS nu reprezinta raspunsuri valide. Se returneaza nil¬ in cazul semnalarii unei erori.

--Obtinerea unui intreg

--Pentru citirea unui numar intreg furnizat de utilizator¬ se utilizeaza functia "getint".

--(getint [cerere])

Formatele speciale de introducere utilizate de comanda UNITS¬ nu reprezinta raspunsuri valide. "Getint˘ returneaza nil daca este Ssemnalata o eroare.

--Obtinerea unui sir text

--Pentru citirea unui sirtext furnizat de utilizator¬ se utilizeaza functia "getint".

--(getint [cerere])

Daca este furnizat un argument diferit de nil¬ utilizatorul trebuie sa termine introducerea sirului tastind RETURN. Daca "getstring˘ semnaleaza o eroare¬ se returneaza nil.

--11.3.8. Functia obiect snap

--Se poate utiliza mecanismul obiectului snap in expresii cu ajutorul functiei "osnap".

--(osnap pt "s")

"pt˘ este un punct supus mecanismului obiectului snap al AUTOCAD- ului si "s˘ este un sir care contine modurile obiect snap dorite. Functia returneaza punctul care rezulta prin aplicarea sirului "s˘ lui "pt". Daca nu este gasit un punct adecvat¬ se returneaza nil. De exemplu :

--(setń pt˛ (osnap pt± "mid")

selecteaza "pt2˘ la mijlocul segmentului pe care "pt1˘ il determina. Functia "osnap˘ este aplicata doar punctului.

--11.3.9. Executarea comenzilor AUTOCAD

--Functia "command˘ executa comenzi ale AUTOCAD-ului dintr-o expresie AutiLISP si returneaza intotdeauna nil. Formatul este :

--(command [argumente]...)

Argumentele reprezinta comenzi ale AUTOCAD-ului¬ subcomenzi¬ optiuni si alte raspunsuri. Fiecare argument este evaluat de AutoLISP si este transmis AUTOCAD-ului ca raspuns cererilor succesive. Numele comenzilor si optiunilor sint furnizate ca siruri iar punctele ca liste de doua numere reale. Numele comenzilor sint recunoscute de AUTOCAD numai daca a fost formulata o cerere "Command". Exemplu :

--(setń pt± (list 1.4µ 3.23))

--(setń pt˛ (getpoint "enter a point:"))

--(command "line˘ pt± pt2)

--(command ˘")

Secventa expresiilor de mai sus selecteaza o valoare pentru Spunctul "pt1"¬ formuleaza o cerere pentru punctul "pt2˘ si executa comanda LINE aplicata celor doua puncte.

--Un sir nul (""© este echivalent cu un blank introdus de la tastatura. Utilizarea functiei "command˘ fara nici un argument este echivalenta cu tastarea unui CTRL C si va intrerupe executarea comenzilor AUTOCAD.

--Desi in general nu este posibila utilizarea unei expresii sau variabile AutoLISP la cererea de siruritext¬ se poate totusi utiliza functia "command˘ pentru furnizarea tuturor raspunsurilor unei comenzi¬ inclusiv sirurile text. Exemplu :

--(setń name "Your name")

--(command "text" (list ± 2))

--(command 0.2µ ° name)

Presupunind ca ultima cerere a AUTOCAD-ului a fost "Command:˘ aceasta secventa va executa comandatEXt si va plasa sirul text "Your name˘ in punctul (1,2) cu o inaltime de 0.2µ unitati si cu un unghi de rotire zero. Asa cum s-a aratat¬ argumentele functiei "command˘ pot fi siruri¬ intregi¬ reali¬ sau puncte. Functia "command˘ transmite pur si simplu in mod secvential argumentele AUTOCAD-ului .

--Comenzile executate prin intermediul functiei "command˘ nu sint afisate pe ecran daca variabila sistem CMDECHO este selectata pe zero.

NOTA s Daca o functie "get˘ ("getstring"¬ "getint"¬ "getpoint"¬ etc.© este utilizata in functia "command"¬ aceasta nu poate include o cerere de sir.

--11.3.10. Functii pentru controlul afisarii

--Aceste functii sint prevazute pentru a permite anumite orientari ale afisarii si pentru a putea fi folosite in expresii. Acestea sint :

--(redraw)-- ­ redesenare reconditionata

--(graphscr©--­ comuta pe afisare grafica in sistemele cu un singur ecran

--(textscr©--­ comuta pe afisare text in sistemele cu un singur ecran

Fiecare dintre aceste functii este similara comenzii respective a AUTOCAD-ului.


Document Info


Accesari: 1513
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )