Indrumar PAC

Embed Size (px)

Text of Indrumar PAC

  • 7/28/2019 Indrumar PAC

    1/136

    1 - 1

    UNIVERSITATEA DIN CRAIOVAFACULTATEA DE AUTOMATIC, CALCULATOARE I

    ELECTRONIC

    DORIAN COJOCARU CRISTIAN VLADU

    ProiectareAsistat deCalculator

    TIPOGRAFIA UNIVERSITII DIN CRAIOVA2006

  • 7/28/2019 Indrumar PAC

    2/136

    Cuprins

    1. Iniiere n AutoCAD 2006. Generaliti. ______________________________________ 3

    2. Iniiere n AutoLISP. Generaliti. __________________Error! Bookmark not defined.

    3. Iniiere n AutoLISP. Introducere de date. Selecie de obiecte.____________________ 23

    4. Iniiere n AutoLISPManipulare obiecte. Lucrul cu baza de date AutoCAD _______ 32

    5. Iniiere n AutoLISP Lucrul cu baza de date AutoCAD. Funcii condiionale i de

    ciclare ________________________________________________________________ 39

    6. Iniiere n AutoLISP Lucrul cu baza de date AutoCAD. Funcii de creare a obiectelor 45

    7. Iniiere n DCL Lucrul cu ferestre de dialog. ________________________________ 528. Iniiere n VisualBASIC Generaliti ______________________________________ 60

    9. Iniiere n VisualBASIC Casete de dialog __________________________________ 69

    10. Iniiere n VBA Crearea obiectelor AutoCAD _______________________________ 80

    Bibliografie _______________________________________________________________ 95

  • 7/28/2019 Indrumar PAC

    3/136

    PROIECTARE 3DPARAMETRIZAT N AUTOCAD

    1 - 3

    1. PROIECTARE 3DPARAMETRIZAT N AUTOCAD

    1.1.Scopul lucrrii

    Lucrarea are ca scop iniierea studenilor n lucrul cu editorul de desenare al pachetuluide programe AutoCAD 2006 i recapitularea noiunilor de AutoCAD nvate n anii

    precedeni.De asemenea va fi desenat un obiect tridimensional utiliznd comenzi AutoCAD, obiect

    care va fi folosit pentru exemplificarea funciilor AutoLISPcare vor fi studiate n cadrullucrrilor de laborator.

    1.2.Noiuni teoretice

    CADeste un acronim pentru Computer-Ai ded Designsau Computer-Aided Dr aftingAutoCAD este un program utilizat pentru proiectare/desenare de precizie asistat decalculator. Desenarea asistat de calculator folosind programul AutoCAD prezinturmtoarele avantaje:

    - precizie mare de desenare precizia de desenare este de 32 zecimale, putnd fiexecutat orice desen la scara real cu precizie de 100%;

    - productivitate foarte mare pentru operaiile repetitive elemente sau poriuni de desencare se repet pot fi copiate sau multiplicate cu uurin;

    - modificarea facil a unui desen;-

    conlucrarea cu alte programe desenele AutoCAD pot fi importate n alte programe(editoare de texte, programe de simulare, animaie, etc.);- automatizarea unor operaii utiliznd limbajele de programare acceptate de AutoCAD.

    1.2.1. Lansarea programului AutoCAD

    Programul AutoCAD 2006 se lanseaz din meniul startStart/Programs/Autodesk/AutoCAD 2006/AutoCAD 2006[Fig.1.1] din TaskBar (bara detask-uri)sau cu ajutorul pictogramei (icon-ului) de pe ecran (desktop) [Fig.1.2]

    Fig.1.1. Lansare AutoCAD 2006 din TaskBar

  • 7/28/2019 Indrumar PAC

    4/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    1 - 4

    Dup lansarea AutoCAD-ului apare fereastra de lucru [Fig.1.3]

    1.2.2. Explicarea interfeei de lucru AutoCAD 2000

    Ca orice aplicaie Windows i programul AutoCAD ruleaz ntr-o fereastrWindows, dispunnd de toate proprietile unei asemenea ferestre. Fereastra principalAutoCAD este mprit n mai multe ferestre1 (zone).:

    - Fereastra de desenare zon dreptunghiular, cu fundal alb2 dispus n mijloculferestrei AutoCAD. n aceast fereastr se execut practic desenul, n interiorul ei

    1

    este meninut termenul de fereastr (sau subfereastr) deoarece toate elementele ferestrei principale suntferestre Windows avnd proprietile unei ferestre (redimensionare, mutare, nchidere) 2pentru setrile implicite la AutoCAD 2006 fundalul este negru

    Fig.1.2. Pictogram AutoCAD 2006

    Fig.1.3. Fereastra AutoCAD 2006 la prima lansare

    Meniu tip fereastrpoziionabil pentrulucru cu fiiere

    Fereastr principal de lucru

    Meniu tip fereastrpoziionabil pentrulucru cu bibl ioteca de

    blocuri predefi nite

    Bare cu instrumente

    Bara de meniur i

    Bara cu instrumente DRAW

    Bara cu instrumente MODIFY

    Bara cu instrumente

    Bara cu instrumente

    PROPERTIES

  • 7/28/2019 Indrumar PAC

    5/136

    PROIECTARE 3DPARAMETRIZAT N AUTOCAD

    1 - 5

    fiind afiat sistemul de axe OXYZ i cursorul AutoCAD. Aceast zon corespundeunui desen1, fiind deschis ntr-o fereastr intern AutoCAD. Fiecare desen estedeschis sau creat ntr-o asemenea fereastr.

    - Fereastra de comenzi se afl n partea de jos a ferestrei principale, avnd afiatprompterul Command: sau opiunile unei comenzi n curs de execuie. Toate

    comenzile introduse de la tastatur apar n aceast fereastr2

    . Coninutul ferestreipoate vizualizat cu ajutorul barei de derulare, sau fereastra poate fi maximizat prinapsarea tastei F2.

    - Barele de instrumenteconin butoane, care la apsare execut comenzi AutoCAD.n mod implicit, dac interfaa AutoCAD nu a fost particularizat3, sunt active 5 barecu instrumente din cele 30 existente. Barele de instrumente conin butoane grupate petipuri de operaii: de exemplu bara de instrumente Dimensionare butoane care auasociate comenzi de cotare. Toate barele de instrumente pot fi particularizate(customize) adugndu-se comenzile care sunt necesare i eliminate cele neutilizate.Barele de instrumente implicite sunt:o Standard Toolbarconine cele mai utilizate comenzi cu caracter general

    creare, salvare i deschidere de fiiere desen, listare, vizualizare,mrire/micorare (zoom), proprieti obiecte, etc.;

    o Object Propertieseste dedicat proprietii obiectelor grosime, culoare, tipde linie, etc.;

    o Styleseste folosit pentru apelarea stilului de scriere, de cotare i tabelar;o Draw este dedicat comenzilor de desenare 2D (bidimensional) linii,

    cercuri, arcuri de cerc, elipse, dreptunghiuri, hauri, etc.;o Modify este dedicat comenzilor de modificare a desenului copiere,

    mutare, scalare, multiplicare, tergere, etc., dedicat n general desenelor 2D.- Bara de meniu este o bar de meniuri tipic unui program care ruleaz n

    Windows4, coninnd i meniurile specifice ale AutoCAD-ului. Toate comenzile dinAutoCAD sunt disponibile n meniuri. Majoritatea comenzilor se regsesc i n

    barele de instrumente, fiind activate cele mai utilizate comenzi. Este parte integranta ferestrei principale.

    - Bara de stare furnizeaz informaii despre poziia cursorului i desprecomutatoarele Snap, Grig, Ortho, etc. Este parte integrant a ferestrei principale.

    1.2.3. Nouti n versiunea 2006

    Ca i pentru versiunile precedente de AutoCAD AutoDESK a mbuntitconsiderabil aceast versiune n toate domeniile: comenzi noi sau mbuntite, noimeniuri tip fereastr poziionabil, utilitare noi, comenzi pentru gestionarea facil aelementelor desenului, interfaa mult mai prietenoas5, etc6.

    1n funciede modul de vizualizare i de factorul de zoom, la un moment dat, poate fi vizualizat tot desenul saunumai o zon din acesta n fereastra de desenare2orice se tasteaz apare n fereastra Command indiferent dac aceasta este activ sau nu3 n barele cu instrumente pot fi introduse butoane predefinite sau butoane create de utilizator (nu toatecomenzile AutoCAD au butoane asociate), sau pot fi create integral bare cu instrumente complet noi4 meniul Fi le conine comenzi pentru lucrul cu fiiere, meniul Windows conine comenzi pentru lucrul cuferestre, etc.5 de exemplu fereastra de selecie a obiectelor este semitransparent (opac) i are culoare diferit funcie de

    tipul de selecie, sau meniul suplimentar din bara de stare, pentru configurarea acesteia, aflat n bar n dreapta6pentru detalii privind elementele de noutate putei apela la meniul New Features Workshopdin meniul Help,sau din fereastra dedicat care apare la pornirea AttoCAD-ului

  • 7/28/2019 Indrumar PAC

    6/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    1 - 6

    1.2.4. Concepte de lucru n AutoCAD 2D

    - Orice desen 2D(bidimensional 2 dimensiuni) este constituit din primitive 2D(puncte, linii, arce de cerc, cercuri, elipse, poligoane, etc.). Pentru crearea acestor

    primitive AutoCAD pune la dispoziia utilizatorului un set de comenzi de desenare

    care creeaz aceste primitive 2D n funcie de parametrii furnizai. Pentru a puteafolosi aceste comenzi este necesar cunoaterea urmtoarelor convenii:- spaiul de lucrureprezint zona de desenare i poate conine spaiul de desenare

    sau numai o zon a acestuia;- sistem de coordonate este un sistem triortogonal de coordonate OXYZ ataat

    zonei de lucru. Pentru desenare 2D axa OZ se neglijeaz. Prin convenie, pentrudesenare 2D, planul ecran (deci zona de desenare) este coninut n planul XOY, axaOX avnd sens pozitiv de la stnga la dreapta i axa OY avnd sens pozitiv de jos nsus. Aceste setri sunt implicite la deschiderea unui desen nou;

    - coordonatele unu i punctun punct este unic reprezentat prin dou coordonate x iy, care reprezint deplasarea pe axele respective fa de originea sistemului de

    coordonate [Fig.1.4]. Aproape n toate situaiile AutoCAD solicit specificarea(introducerea coordonatelor) unui punct: un punct, unul din capetele unei linii,centrul unui cerc, un punct de selecie, etc. Un punct poate fi specificat prinurmtoarele metode:o prin introducerea coordonatelor de la tastatur, coordonata x fiind separat

    prin virgul de coordonata y (punctul este folosit ca virgul zecimal), aa cums-a explicat mai sus: x,y;

    o prin introducerea coordonatelor relative fa de punctul curent(punctul curenteste ultimul punct introdus (specificat)): @x,y deci se introduce practicdeplasarea pe x i pe y fa de punctul curent, specificndu-se aceasta prinsimbolul @ pus naintea setului de coordonate;

    o prin specificarea unui punct cu mouse-ul(click buton stnga).o prin folosirea modului OSNAPo prin folosirea modului SNAP

    x

    P(x,y) = P(15,20)

    y

    sens pozitiv axa x

    sens pozitiv axa y

    P(0,y)=(0,20)

    P(x,0)=P(15,0)O(0,0)

    dy=20

    dx=15

    proiecia punctului P pe axa x

    proiecia punctului P pe axa y

    punctul P de coordonate

    x=15 i y=20

    deplasarea punctului P pe axa x fa de origineasistemulu i de coordonate

    deplasarea punctului P

    pe axa x fa de originea

    sistemulu i de coordonate

    originea sistemului de

    coordonate: x=0, y=0

    Fig.1.4. Reprezentarea unui punct n sistemul de coordonate OXY

  • 7/28/2019 Indrumar PAC

    7/136

    PROIECTARE 3DPARAMETRIZAT N AUTOCAD

    1 - 7

    1.2.5. Concepte de lucru n AutoCAD 3D

    Spre deosebire de desenele bidimensionale, n desenarea tridimensional orice puncteste specificat prin 3 coordonate: x, y i z, deci la lime i lungime se adaug nlimea.

    Implicit sistemul de coordonate indic axa OZ ca fiind perpendicular pe ecran,

    sensul pozitiv al axei fiind dinspre ecran spre utilizator.Realizarea unui desen tridimensional se poate realiza prin urmtoarele metode:1. Adugarea dimensiunii pe axa z (adugarea nlimii (grosimii)) unui desen plan

    (bidimensional). Este o metod utilizat pentru desene simple fiind un caz particularpentru metoda 2.

    2. Utiliznd comenzi de desenare plane (bidimensionale) avnd setat implicit nlimeade desenare pe axa z i dimensiunea obiectului pe aceast ax. Aceast metod sefolosete combinat cu schimbarea planului de desenare (mutarea i/sau rotirea UCS-ului sistemului de coordonate). Reamintim c desenarea bidimensional se facentotdeauna n planul XOY.

    3. Prin utilizarea comenzilor generatoare de suprafee 3D.4. Prin utilizarea comenzilor care genereaz primitive 3D (sfera, con, cilindru, tor,paralelipiped, prism, etc.). Prin intersecia i editarea acestor solide se pot obine

    desene orict de complexe.5. Prin utilizarea unor solide obinute prin extrudarea i revoluia unor desene

    bidimensionale.n funcie de desen se folosete bineneles o combinaie a metodelor prezentate. De faptcomenzile destinate implicit desenrii i editrii 3D sunt foarte puine comparativ cu cele

    pentru desenarea i editarea 2D, desenele 3D fiind obinute, cel mai des, prin extrudarea unordesene plane realizate n planuri de desenare diferite prin schimbarea sistemului decoordonate.

    1.2.6. Comenzi AutoCAD folosite n lucrare

    Introducerea comenzilor AutoCAD se poate face n urmtoarele moduri:

    1. tastarea numelui comenzii n linia de comand (la prompterulCommand):(de fapttot ce se tasteaz apare n linia de comand). Aceast metod prezint avantajele:comenzile care au asociate combinaii de taste se apeleaz mai rapid, sintaxacomenzilor se pstreaz n general la versiunile urmtoare de AutoCAD1. Printredezavantaje enumerm: necesitatea cunoaterii sintaxei comenzilor.

    2. apelarea din meniur il e AutoCAD. Aceast metod prezint avantajul localizarii nmeniuri pe grupe de comenzi. Prezint dezavantajul apelrii lente, necesitnd uneori

    deschiderea mai multor submeniuri.3. folosirea barelor de instrumente. Aceast metod este cea mai folosit din

    urmtoarele motive: butoanele au asociate pictograme care reflect aciunea comenzii,barele de instrumente pot fi deplasate pe ecran pentru aducerea ntr-o zon apropiatzonei de desenare, au comenzile grupate pe grupe de operaii, pot fi particularizate.Prezint dezavantajele: nu toate comenzile sunt implicit pe bare (dac ar conine toatecomenzile, dimensiunea acestora ar crete foarte mult), trebuie nvat oarecumordinea comenzilor de pe o anumit bar de instrumente.

    n general se folosete o combinaie a celor trei metode, depinznd de utilizator. nFig.1.5 este un exemplu de apelare a comenzii AutoCAD Lineprin cele 3 metode.

    1prin tastarea numelui comenzile pot fi memorate mai uor

  • 7/28/2019 Indrumar PAC

    8/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    1 - 8

    n oricare din cazurile de apelare a unei comenzi din linia de comand apare sintaxacomenzii. Dup apelarea unei comenzi AutoCAD sunt cerui parametrii necesari executriicomenzii. De exemplu n cazul comenzii L INEse cer coordonatele punctelor care definesc

    linia, pentru comanda CIRCLE se cer coordonatele centruluicercului i mrimea razei, etc.Majoritatea comenzilor AutoCAD au asociate opiuni de

    lucru. Opiunile unei comenzi seteaz implicit anumii parametrisau particularizeaz comanda. Se pot apela din linia de comand,dialogul fiind n general de forma:Opiune implicit sau [ opiune1 / opiune 2 / . ]

    Deasemenea pot fi apelate din meniul rapid1. n figur esteexemplificat comanda CIRCLEcare are opiunile 3P/2P/Ttr (tantan radius). Celelalte comenzi care apar sunt implicite, rapide2.

    Orice comand AutoCAD poate fi ntrerupt prin apsarea

    tastei Esc i poate fi reapelat prin apsarea tastei EntersauSpaiu(aceste taste reapeleaz ultima comand folosit).

    Comenzi AutoCAD folosite n lucrare3

    - POLYGONdeseneaz un poligon regulat cu numr specificat de laturi;- EXTRUDEgenereaz un corp 3D adaugnd grosime unui contur nchis 2D;- CYLINDERdeseneaz un cilindru;- CHAMFERcomanda clasic 2D poate fi aplicat i obiectelor 3D cu acelai efect;- INTERSECTse obine poriunea comun a mai multe corpuri intersectate;- UNIONse obine un corp 3D din uniunea mai multor corpuri 3D;- 3DORBITvizualizeaz din diverse unghiuri un desen 3D4.

    LINE deseneaz o linie ntre dou puncte specificate. Se poate continua desenarea unei altelinii pornind implicit din ultimul punct, nefiind necesar dect introducerea celui de-al doilea

    1 click dreapta mouse2 sunt cele mai utilizate comenzi ntr-o anumit situaie sau etap de lucru3pentru a afla opiunile unei comenzi AutoCAD se apeleaz comanda i se consult Help-ul asociat comenzii

    prin apsarea tastei F14 este o comand complex cu opiuni de vizualizare tip cadru de sm, suprafee pline, etc., vizualizare tip

    orbit continu, interacioneaz ci ZOOMi PAN5 comanda LINEnu este folosit explicit n desen dar fiind cea mai cunoscut comand AutoCAD este descrisca exemplu

    a) b) c)

    Fig.1.5. Apelarea comenzii LINEa) din bare de instrumente; b) din meniul DRAW; c) de la prompterul Command

  • 7/28/2019 Indrumar PAC

    9/136

    PROIECTARE 3DPARAMETRIZAT N AUTOCAD

    1 - 9

    punct. Fiecare segment din linia desenat este considerat o entitate separat (acelai efect cuapelarea n mod repetat a comenzii )

    Apelare Linie de comand l ineBar cu butoane

    Draw

    Meniu Draw: L ineOpiuni From

    Point

    Se deseneaz o linie care trece prin 2puncte specificateOpiune implicitSe solicit specificarea a dou puncte

    Continue Se poate continua desenarea linie cu un altsegment care ncepe din ultimul punct alsegmentului anterior

    Undo Se anuleaz ultimul segment de

    linie desenat. Devine activnumai dup introducerea primuluipunctSe apeleaz prin tastare undosau u

    Close Se deseneaz o linie care uneteultimul punct al ultimuluisegment desenat cu primul punctal primului segment. Devineactiv dup desenarea a dousegmente ale liniei.

    Se apeleaz prin tastare closesau c

    1.2.7. Salvarea unui desen AutoCAD

    Un desen AutoCAD este salvat ntr-un fiier cu extensie .dwg, respectnd conveniaWindows de nume (maxim 256 caractere, fr caractere speciale). Un asemenea fiier areasociat n mod automat pictograma AutoCAD. Salvarea n AutoCAD este asemntoare cuoperaia corespondent din orice program care ruleaz n Windows i are posibilitatea de asalva sesiunea de lucru ntr-un fiier.

    Salvarea unui desen AutoCAD se poate face folosind una din variantele:1. se selecteaz din meniul Fi le(Fiier) opiunea Save(Salvare);2. se apas al treilea buton din bara de instrumente Standard Toolbars(cel care are ca

    pictogram un flopy-disk)3. se folosete combinaia de taste Ctrl-s;4. se salveaz automat desenul periodic (setarea timpului dintre salvri se face din meniul

    Tools/Options/Save);5. se salveaz desenul la terminarea sesinii de lucru dup confirmarea acestei operaii.

    Extensia dwg este pus automat, fiind necesar numai specificarea numeluifiierului. Dac desenul este salvat pentru prima dat este solicitat locaia unde va fi salvat(implicit dosarul My Documents1). Dac desenul a fost deja salvat, acesta va fi salvat implicit

    1locaia pentru salvare a documentelor este setabil din opiuni

  • 7/28/2019 Indrumar PAC

    10/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    1 - 10

    n locaia unde a fost salvat ultima dat sau de unde a fost deschis pentru editare. Dac estenecesar salvarea desenului cu alt nume sau n alt locaie se va folosi opiunea Save As(Salveaz ca).

    1.3.Chestiuni de studiat

    1. Se studiaz toate opiunile ferestrei de iniializare.2. Se creeaz un desen nou.3. Se salveaz desenul folosind un nume sugestiv.4. Se deseneaz urubul din Fig.1.6, notndu-se succesiunea comenzilor, opiunile

    utilizate i datele de intrare introduse. Aceste date vor fi necesare n lucrrileurmtoare

    5. Se nchide sesiunea de lucru cu salvare.6. Pentru remprosptarea cunotinelor se recomand parcurgerea lucrrilor de

    AutoCAD din Anexa A.

    1.4.Modul de lucru

    1. Se lanseaz programul AutoCAD din meniul Start/All Programs/Autodesk/AutoCAD2006[Fig.1.1] sau cu ajutorul pictogramei (icon-ului) de pe ecran (desktop) [Fig.1.2].

    2. Se creaz un desen nou.

    3. Se salveaz desenul folosind un nume sugestiv (de exemplu: lucrare1) n directorulspecificat.

    4. Se deseneaz capul urubului

    Se deseneaz un poligon regulat cu 6 laturi (un hexagon), cu centrul n punctul0,0 nscris ntr-un cerc cu raza de 150.

    Command: _polygon Enter number of sides : 6

    Specify center of polygon or [Edge]: 0,0Enter an option [Inscribed in circle/Circumscribed about circle] :Enter

    Specify radius of circle: 150

    Se schimb coloarea de desenare din Bylayer n Cyan (albastru deschis)INFO:Se utilizeaz comanda COLOR

    Se extrudeaz poligonul cu lungimea de 50Command: extrude

    Fig.1.6. Corpul unui urub

  • 7/28/2019 Indrumar PAC

    11/136

    PROIECTARE 3DPARAMETRIZAT N AUTOCAD

    1 - 11

    Current wire frame density: ISOLINES=4

    Select objects: (se selecteaz poligonul)1 foundSelect objects:Enter (terminarea seleciei)Specify height of extrusion or [Path]: 50

    Specify angle of taper for extrusion : Enter

    Se utilizeaz comanda 3DOrbit pentru a vizualiza desenul dintr-un alt unghi.De asemenea se utilizeaz comenzile Zoomi Pan pentru a aduce desenul n mijloculspaiului de desenare. Se utilizeaz comanda ShadeMode, opiuneagOuraung+Edges pentru vizualizare solid. Desenul rezultat este prezentat nfig.1.7.a.

    INFO:Se observ c din extrudarea unui poligon se rezult un solid. Acelai efect se obine i laextrudarea unui cerc, rezultnd un cilindru. n cazul extrudrii unei polilinii, chiar dac ea descrie uncerc se va obine un perete circular. Dup parcurgerea pailor de mai sus am desenat capulurubului care trebuie teit. Aplicnd comanda CHAMFERpentru fiecare muchie a capului de urubse obine solidul din fig.1.7.b, care o teire incorect. Pentru a realiza teirea necesar fig.1.7.c. (caren realitate se obine prin strunjirea capului urubului) se va desena un cilindru circumscrishexagonului avnd acelai centru i raz. Aplicndu-i acestuia comanda CHAMFER pe ambelemuchii ale feelor. Cilindrul astfel obinut se va intersecta cu capul urubului i pstrnd prile

    comune, vom obine efectul doritSe creeaz un strat de desenare nou numit cap i se selecteaz acesta ca fiind

    stratul de desenare curent. Stratul de desenare va pstra setrile implicite cuexcepiaculorii de desenare care va fi galben (yelow).INFO:Stratul de desenare se creeaz cu comanda LAYER opiunea NEW. Pentru o desenare maiuoar se poate ascunde capul urubului prin nchiderea stratului de desenare 0.

    Se deseneaz un cilindru cu centru n punctul 0,0,0, de raz 150 i nlime 50.Se utilizeaz comanda Cylinder.

    Cu comanda Chamferse teesc ambele muchii circulare ale cilindrului. Pentrurazele de teire se specific r1=20 i r2=10 pentru cea de sus, respectiv r1=20 i r2=10

    pentru cea de jos.INFO:Pentru selecia corpului se selecteaz frontierele acestuia (muchiile). Pentru o desenare maifacil se poate reveni n modul de vizualizare cadrul de srm folosind comanda ShadeMode,opiunea 2D wireframe.

    Se activeaz stratul de desenare 0 i se intersecteaz cilindrul astfel obinut cucapul urubului. Se obine solidul din fig.1.24.c. Se utilizeaz comanda Intersect,furniznd ca mulimi de selecie cilindrul i capul urubului. Se observ c dinintersecia corpurilor selectate s-a obinut un singur solid.Se deseneaz corpul urubului respectnd paii urmtori.

    Se schimb culoarea de desenare n blue.

    Se deseneaz un cilindru cu raza de 50 i nlimea 300. Cilindrul va avea acelai centrucu capul urubului 0,0,0.

    a) b) c)Fig.1.7. Detaliu desenare urub

  • 7/28/2019 Indrumar PAC

    12/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    1 - 12

    Se unesc cele dou solide folosind comanda Union. Din uniunea corpurilor selectate s-aobinut un singur solid.

    Se schimb culoarea de desenare n yelow.

    Se teete muchia de sus a cilindrului cu comanda Chamfer. Pentru razele de teire se

    specific r1=10 i r2=10. Se obine solidul din fig.1.8.

    5. Se salveaz desenul.

    1.5.Coninutul referatului

    1. Titlul lucrrii.

    2. Tema lucrrii.3. Chestiunile de studiat.4. Comenzile AutoCAD utilizate i opiunile acestora.5. Istoricul comenzilor necesare pentru realizarea desenului (succesiunea comenzilor,

    opiunile utilizate precum i datele introduse de la tastatur).6. Desenul realizat n format electronic1 i tiprit.7. Comentarii i observaii asupra aspectelor practice ntlnite2.

    1n format AutoCAD: DXG, DXF, n format grafic vectorizat: PLT i exportat ca fiier grafic: BMP i JPG 2 IMPORTANT. Detaliat.

    Fig.1.8. Solidul rezultat dup parcurgerea etapelor descrise mai sus

  • 7/28/2019 Indrumar PAC

    13/136

    PROGRAMARE N AUTOLISPPENTRU APLICAII 2DAUTOCAD

    2 - 13

    2. PROGRAMARE N AUTOLISPPENTRU APLICAII 2DAUTOCAD

    2.1.Scopul lucrrii

    Lucrarea are ca scop iniierea studenilor n lucrul cu pachetul de programe AutoLISPinclus n AutoCAD 2006.

    2.2.Noiuni teoretice

    Desenarea asistat de calculator folosind programul AutoCAD 2006poate fi realizat nmod semiautomat folosind limbajele de programare incluse/acceptate de acesta. Folosind

    limbajele de programare acceptate pot fi create module program care s genereze automatblocuri 2D sau 3D. Acestea pot fi utilizate n orice desen i pot fi incluse la rndul lor n altemodule program. Limbajele de programare acceptate de AutoCAD 2006 sunt:

    - AutoLISPeste un limbaj de programare derivat din LISP (LIStProcessing).o Este principalul i primul limbaj de programare adoptat de AutoCAD fiind special

    conceput pentru lucrul cu liste de dimensiuni variabile, care sunt exact tipul deinformaii vehiculate de AutoCAD.

    o Este un INTERPRETOR(orice linie program introdus la prompterul Commandare efect imediat), deci are avantajul posibilitii verificrii liniilor de cod frcompilarea (generarea) ntregului program;

    oncepnd cu versiunea AutoCAD 2000 este inclus n program un editor AutoLISPdenumit Visual LISP;

    o Principalul dezavantaj l constituie viteza mic de execuie (fiind interpretorasamblarea programului se face n timpul execuiei). Odat cu introducerea VisualLISP-ului acest neajuns este nlturat, acest limbaj permind i lucrul cu obiecte(lucru imposibil n versiunile anterioare);

    o Acest limbaj de programare va fi tratat n cadrul laboratorului.- ARX (AutoCAD Runtime Extension) - este un limbaj de programare derivat din

    limbajul de programare C++, bazat pe programe compilate;o Este o versiune mbuntit a limbajului ADS (AutoCAD Development System)

    care este derivat din limbajul de programare C. Dezavantajul acestuia estedependena de platforma hardware cu care se lucra i faptul ca modulele trebuiaurulate tot sub AutoLISP. Mediul de dezvoltare ARXsuport i biblioteca ADS;

    o Avantajul acestuia const n viteza mare de execuie, deoarece programul estecompilat i ncrcat sub form executabil;

    o Dezavantajul const n faptul c limbajul de programare C++ este unCOMPILATOR, deci nainte de a putea fi rulat (testat) trebuie compilat tot

    programul. O aplicaie ARXnu poate fi citit deoarece nu este disponibil n formde program surs;

    o ncrcarea unei aplicaii ARXse face cu funcia arxload.- DCL (Dialog Control Language) un limbaj independent de platforma hardware

    creat pentru definirea i controlul casetelor de dialog;

  • 7/28/2019 Indrumar PAC

    14/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    2 - 14

    o Un fiier care descrie casete de dialog are extensia .DCL i este ncrcat dinAutoLISPprin funcia load_dialog

    - Visual BASIC i ActiveXpun la dispoziia programatorului tehnologia obiectelorActiveX;o Visual Basic este un limbaj de programare puternic dezvoltat de Microsoft integrat

    n pachetul de programe MsOffice, deci va fi simplu de integrat deseneleAutoCADn aceste aplicaii;

    o Visual Basiclucreaz foarte bine cu obiectele Windows (ferestre, butoane, casetede dialog, etc), putndu-se construi relativ uor o interfa windows (comun dealtfel tuturor programelor care lucreaz sub windows);

    o Tehnologia ActiveX poate integra desenele AutoCAD n toate programele careutilizeaz aceast tehnologie (i viceversa), conform fig.2.1;

    o mpreuncu limbajul de programare AutoLISP sunt singurele care ruleaz direct desub interfaa AutoCAD.

    n continuare va explica progresiv limbajul de programare AutoLISP, realiznd unprogram care s genereze semiautomat n funcie de parametrii introdui desenul din lucrarea1un urub tridimensional.

    Avantajul utilizrii unui limbaj de programare rezid n posibilitatea crerii uneibiblioteci de comenzi proprii care s genereze blocuri 2D sau 3D. Spre deosebire de obibliotec de blocuri create cu comanda WBlock blocurile generate prin rularea unui programpot fi dimensionate n funcie de parametrii introdui (de exemplu la urub lungimea filetului).

    De asemenea comenzile din AutoCAD care pot fi modificate sau completate sau pot ficreate altele noi. Pot fi fcute selecii sau generate modele de haurare, etc. Deci poate fiautomatizat orice proces repetitiv i pot fi modificate/create comenzi AutoCAD.

    2.3.Chestiuni de studiat

    1. Se studiaz Editorul VisualLISP.

    Fig.2.1. Lansare AutoCAD 2002 din meniu

  • 7/28/2019 Indrumar PAC

    15/136

    PROGRAMARE N AUTOLISPPENTRU APLICAII 2DAUTOCAD

    2 - 15

    2. Se creeaz un program AutoLISP care s deseneze o gril din linii.3. Se creeaz un program AutoLISP care s deseneze proiecia capului urubului n

    plan.

    2.4.Modul de lucru

    1. Se lanseaz programul AutoCAD din meniul Start/A ll Programs/Autodesk/AutoCAD2006[Fig.1.1] sau cu ajutorul pictogramei (icon-ului) de pe ecran (desktop) [Fig.1.2].

    2. Se creeaz un desen nou utiliznd opiunile implicite.

    3. Se salveaz desenul.

    4. Se deschide editorul Visual LISP din meniul Tools / AutoLISP / VisualLISPEditor(fig.2.2).

    5. Se deschide Editorul VisualLISP fig.2.3.

    INFO:Limbajul de programare AutoLISP (VisualLISP) va fi explicat gradual, pornind de la simplu(sau foarte simplu) la complex, fiind tratate numai noiunile i funciile necesare parcurgerii lucrrilorde laborator. Pentru aprofundarea acestui limbaj de programare va fi consultat cursul de specialitate i

    bibliografia.

    Fig.2.2. Lansare Editor VisualLISP

    Fereastr editare fiier

    Fereastr principal Editor VisualL I SP

    Creare fiier nou

    ncrcare fiier (funciidin fiier) n AutoCAD

    Fereastr afiare mesaje sistem

    Comutar e n fereastra AutoCAD

    Fig.2.3. Fereastr Editor VisualLISP

  • 7/28/2019 Indrumar PAC

    16/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    2 - 16

    La deschiderea editorului VisualLisp se deschid automat 2 ferestre: VisualLISP Console i Trace.Deocamdat este util numai fereastra VisualLISP Console, care vafi redimensionat astfel nct s

    poat afia 3-4 rnduri i va fi poziionat n partea de jos a ferestrei principale. n aceast fereastrasunt afiate mesaje referitoare la programul introdus i la corectitudinea transferului acestuia ctreAutoCAD. Fereastra Traceva fi minimizat sau nchis. De asemenea fereastra principal este util sfie maximizat pentru obinerea unui spaiu mai mare pentru editare. Se deschide un fiier nou

    folosind butonul New, dau comanda New din meniul File. Se redimensioneaz aceast fereastr astfelnct s poat conine ct mai multe rnduri.

    6. Dac nu a fost deja deschis un fiier nou (vezi INFO) se deschide i se salveazutiliznd un nume sugestiv, de exemplu lab2.

    INFO:Numele fiierului descrie numai coninutul funciilor sau comenzilor definite n el, dar nu arelegtur direct cu execuia sau ncrcarea acestora n AutoCAD

    7. n aceast fereastr se scrie un program minimal n LISP:

    (defun L2( )

    )

    Explicarea programului:Orice program AutoLISP conine cel puino funcie care are formatul programului de

    mai sus. ncepe cu deschiderea unei paranteze rotunde, urmat de cuvntul cheie DEFUNdup care urmeaz numele funciei i parametrii acesteia, urmate de corpul funciei(instruciunile executate n cazul apelrii funciei) dup care se termin prin nchiderea

    parantezei rotunde. n AutoLISP simbolul spaiu este folosit ca separator.

    INFO:ATENIE!n AutoLISP orice instruciune este scris ntre paranteze rotunde. Nu introducei2 sau mai multe spaii ntre simboluri deoarece aceasta este considerat eroare. De asemenea n lipsaspaiilor 2 sau mai muli parametri sunt considerai unul singur, ceea ce genereaz erori. Se observ c

    parantezele sunt scrise cu culoarea roie, cuvintele cheie AutoLISP sunt scrise cu culoarea albastr,

    etc. Acest efect uureaz depanarea programului, deoarece o funcie AutoLISP tastat greit nu se maicoloreaz automat n albastru. AutoLISP nu este sensibil la majuscule, deci nu conteaz dac numelefunciilor este scris cu majuscule sau nu.

    n cazul exemplului de mai sus este definit funcia L2 (s-a folosit la nume un numescurt pentru uurina apelrii n AutoCAD; n cazul existenei mai multor funcii, numeleacestora vor trebui s reflecte aciunea funciei (LINE traseaz o linie)).

    Funcia nu are parametri ( ), deci nu cere nimic utilizatorului (aa cum funcia LINEsolicit introducerea unor puncte ntre care se traseaz linia)

    Programul ar fi echivalent n Pascal cu:begin

    end.

    i n C cumain ( )

    {

    }programe absolut corecte n ambele limbaje, putnd fi compilate i executate. n anumitelimite se poate face o paralel ntre limbaje, dar s nu uitm totui c limbajele Pascal i Csunt COMPILATOARE, n timp ce limbajul LISP este INTERPRETOR(deci orice funcie(comand) din AutoLISP poate fi executat direct la promterul Command (n AutoCAD

    bineneles)).Se ncarc programul editat n AutoCAD prin apsarea butonului Load Active Edit Window(vezi fig.2.3).

    INFO:Se observ c n fereastra VisualLISP Console apare mesajul:; error: bad DEFUN syntax: (L2 nil)

  • 7/28/2019 Indrumar PAC

    17/136

    PROGRAMARE N AUTOLISPPENTRU APLICAII 2DAUTOCAD

    2 - 17

    Programul este corect ca sintax, mesajul de eroare semnalnd c funcia L2 nu conine nici oinstruciune. n timp ce n Pascal sau C corpul unei funcii poate fi vid, n AutoLISP acest lucrugenereaz eroare.

    8. Introducem o linie care s afieze un mesaj. Programul completat cu noua linie va fiurmtorul:

    (defun L2 ( )

    (princ" gfghf" )

    )

    INFO:Toate noile linii din program se introduc ntre linia de definire a funciei (defun i parantezarotund care termin funcia. n platform programul va apare n form integral numai unde acestafaciliteaz nelegerea lui. Cnd va trebui creat o nou funcie sau un nou fiier acest lucru va fispecificat explicit, n rest noile linii vor fi adugate la programul existent.

    9. l salvm i ncrcm din nou n AutoCAD.

    INFO:Se observ c n fereastra VisualLISP Console apare mesajul:; 1 form loaded from #Mesajul semnaleaz c nu exist nici o eroare n programul ncrcat i c a fost ncrcat o singurfuncie din fisierul lab2.lsp.

    10. Se comut n fereastra AutoCAD prin apsarea butonului Activate AutoCAD sauprin utilizarea barei de stare a windows-ului. La prompterul Command se tasteaznumele funciei ntre paranteze rotunde. n fereastra de comenzi va aprea:

    Command: (l2)gfghf " gfghf "

    INFO:Se observ c la fiecare modificare fiierul trebuie rencrcat permanent n AutoCAD.n AutoCAD unele comenzi au asociate combinaii de taste (de fapt apelul comenzilor mai desutilizate se poate face prin apsarea unei singure taste). De exemplu comanda zoompoate fi apelat

    prin apsarea tastei z. Se dau nume funciilor create diferite de numele comenzilor AutoCAD, sau alfunciilor AutoLISP predefinite. Nu este necesar s copiai programul prezentat, deci s respectaiinclusiv conveniile de notare(nume funcii sau texte afiate).

    11. Pn acum avem un program care afieaz un mesaj (ir de caractere) cu ajutorulfunciei AutoLISP PRINC. n continuare o s complicm programul, adugndu-ilinii pentru obinerea unui program util. n final programul obinut va trasa o linie ntredou puncte introduse de la tastatur.

    Pentru execuia oricrei comenzi AutoCAD Se folosete funcia AutoLISP COMMAND,

    argumentele acesteia fiind comenzi i subcomenzi AutoCAD. Deci programul va fi completatcu linia:

    (Command " LI NE" " 10,10" " 100,100" )

    programul intergal fiind urmtorul:

    (defun L2( )

    (princ" Test" )

    (Command " LI NE" " 10,10" " 100,100" )

    )

    Programul traseaz o linie ntre punctele de coordonate 10,10 i 100,100.

  • 7/28/2019 Indrumar PAC

    18/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    2 - 18

    l rencrcm n AutoCAD:

    Command: (l2)TestLINE From point: 10,10To point: 100,100

    To point: nil

    Observm c AutoCAD-ul nu a prsit comanda LINE i ateapt introducerea unui noupunct. Bineneles, deoarece tim c orice comand se termin cu ENTER. Deci modificmprogramul:

    (Command " LI NE" " 10,10" " 100,100" " " )

    Rulnd din nou obinem trasarea liniei. Se observ c dup funcia AutoLISP COMMAND,ntre ghilimele, urmeaz parametrii funciei, n cazul nostru comanda AutoCAD LINE,

    primul punct al liniei 10,10 , ultimul punct al liniei 100,100 i echivalentul tastei Enter

    pentru terminarea comenzii LINE. Analog se poate folosi orice comand AutoCAD.Bineneles c aceast modalitate de a desena nu ne satisface (mai simplu ar fi fost de la

    promter-ul AutoCAD). S trasm linia ntre puncte date de valoarea unorvariabile.

    (defun L2( )

    (princ" Test" )

    (setq pct1 (l ist 10 10))

    (Command " LI NE" pct1 " 100,100" " " )

    )

    Se observ c funcia setq creeaz variabila pct1 i i asociaz acesteia un punct decoordonate 10,10. ntre parametrii comenzilor AutoLISP ca separator se folosete spaiul.Punctul asociat variabilei pct1a fost creat cu funcia AutoLISP LISTcare alctuiete o listdin parametrii dai, n cazul nostru 10 i 10.

    AutoLISPeste un limbaj de programare care lucreaz cu LISTE. orice punct 2D sau 3Deste e fapt o list (un vector) cu 2 sau 3 elemente. Pentru crearea unei polilinii, de exemplu,trebuie furnizat o list de puncte ntre care se traseaz polilinia, fiecare punct fiind, n

    particular, o lista de 2 elemente care conine coordonatele punctului. Deci avem o lista cuelemente de tip list.

    12. Analog se definete i cel de-al doilea punct, pct2.

    (setq pct1 (l ist 10 10))(setq pct2 (l ist 100 100))

    (Command " LI NE" pct1 pct2 " " )

    Obinem acum acelai efect ca i programul precedent, deosebirea fiind c n comandaLINE coordonatele punctelor sunt date de variabilele pct1 i pct2. ncrcm i rulm

    programul.

    INFO:Deoarece de la rularea anterioar este trasat o linie, acum linia trasat se suprapune pesteaceasta i nu apare nici o schimbare vizibil. Pentru a nltura acest neajuns sunt dou metode: seterge tot desenul sau se folosete comanda Undo cu parametru. Varianta a doua este cea mai

  • 7/28/2019 Indrumar PAC

    19/136

    PROGRAMARE N AUTOLISPPENTRU APLICAII 2DAUTOCAD

    2 - 19

    comodi indicat1, deci nainte de fiecare rulare se lanseaz comanda Undoi ca numr de comenzianulate se poate furniza un numr ntre 1 i 65357, care indic numrul de operaii care vor fi anulate.Cred c 200 este acoperitor.

    13.Continum i variabilele pct1 i pct2 le obinem din liste de variabile: x1, y1, x2, y2:

    (defun L2( )(princ" Test" )

    (setq x1 10)

    (setq y1 10)

    (setq x2 100)

    (setq y2 100)

    (setq pct1 (l ist x1 y1))

    (setq pct2 (l ist x2 y2))

    (Command " LI NE" pct1 pct2 " " )

    )

    Dac tot avem coordonatele punctelor prin variabilele x1, y1, x2, y2, s le folosim. Vom trasao gril ntre punctele 0,0 i 200,200, avnd celulele ptrate, cu latura de 10. Traducnd, vomtrasa 20 de linii orizontale cu lungimea de 200, ncepnd din punctul 0,0 i avnd distanavertical ntre ele de 10.Analog vom trasa 20 de linii verticale cu distana dintre ele de 10.S trasm prima dat liniile orizontale. Vom trasa linii avnd coordonatele x1 i x2 fixe, ianume x1=0 i x2=200. Coordonatele y1 i y2 vor fi egale ca valoare2avnd iniial valoarea 0i incrementnd aceast valoare cu 10 pentru fiecare linie nou trasat. Pentru aceasta nAutoLISP dispunem de funcia while. Formatul funciei este urmtorul:

    (while

    (pr ima expresie)

    (a doua expresie)

    ...

    (ul tima expresie)

    )

    Aceast funcie evalueaz i, dac nu e nil, evalueaz celelalte expresii dupcare evalueaz din nou . Aceasta continu pn cnd devinenil (deci trebuie ca evalurile s modifice aceast expresie, valoarea ei ajungnd n final lavaloarea nil3). Dup modificri programul devine:

    (defun L2( )

    (setq x1 0 y1 -10 x2 200 y2 -10)

    (whi le (< y1 200)

    (setq y1 (+ y1 10))

    (setq y2 (+ y2 10))

    (setq pct1 (l ist x1 y1))

    1dac programul AutoLISP genereaz un desen tergerea acestuia este suficient, dar dac n program se fac isetri (de exemplu stilul de scriere sau de cotare) atunci se recomand folosirea comenzii AutoCAD UNDOcareanuleaz TOATEaciunile precedente2

    bineneles c n sistemul de axe AutoCAD orice punct de pe o linie orizontal i pstreaz coordonata yconstant, tocmai pentru a fi pe linie3 altfel bucla devine infinit

  • 7/28/2019 Indrumar PAC

    20/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    2 - 20

    (setq pct2 (l ist x2 y2))

    (Command " LI NE" pct1 pct2 " " )

    )

    )

    14. Se observ c setqpermite mai multe atribuiri n timpul unei execuii. Iniial y1 i y2sunt iniializate cu 10, pentru c nainte de trasarea primei linii valoarea lor seincrementeaz cu 10.

    15. Analog se face pentru trasarea liniilor verticale. Deci:

    (defun L2( )

    (setq x1 -10 y1 0 x2 -10 y2 200)

    (whi le (< x1 200)

    (setq x1 (+ x1 10))

    (setq x2 (+ x2 10))

    (setq pct1 (l ist x1 y1))(setq pct2 (l ist x2 y2))

    (Command " LI NE" pct1 pct2 " " )

    )

    )

    16. Acum crem un program nou n VisualLISP care va trasa o parte din urub1.

    17. Se salveaz programul folosind un nume sugestiv, de exemplu surub.

    INFO:Se observ c se pot deschide mai multe fiiere de lucru n VisualLISP i se poate lucrasimultan cu mai multe programe. De asemenea o funcie ncrcat dintr-un asemenea fiier, sau chiar

    o variabil AutoLISP creat la prompterul Command, este activ toat sesiunea de lucru AutoCAD,exact ca orice comand, de exemplu LINE. Un fiier AutoLISP poate conine o singur funcie

    principal sau mai multe. Orice funcie dintr-un fiier ncrcat n AutoCAD poate fi apelat n corpulunei funcii sau n mod independent la promterul AutoCAD.

    18. Crem funcia principal, care pentru nceput va afia un mesaj.

    (defun sd( )

    (princ " Program pri ncipal desenare surub" )

    )

    INFO:Sepoate alege numele funciei respectnd convenia de notare AutoLISP amintit mai sus. Un

    nume sugestiv ar fi de exemplu surub, dar cum programul va fi rulat de foarte multe ori pn n fazafinal ar fi mai comod s putem lansa programul prin tastarea unei singure litere. Verificm nAutoCAD litera s. i bineneles este atribuit comenzii Stretch, deci nu o putem folosi. ncercm su,dar i aceast combinaie este asociat comenzii Subtract. Din aceast cauz am ales sd pentrunumele funciei, care nu are nici o asociere.

    19. ncrcm programul n AutoCAD i l rulm. Ca rezultat n fereastra de comenziapare textul Program principal desenare urub.

    20.Consultm referatul de la lucrarea 11i observm c pentru desenarea urubului primaetap const n desenarea unui hexagon folosind comanda Polygon. Introducem apelulacestei comenzi n program.

    1fereastra care conine programul la care am lucrat pn acum poate fi nchis sau minimizat, deoarece nu vommai folosi programul. Pentru crearea programului nou se procedeaz analog cu crearea primului program

  • 7/28/2019 Indrumar PAC

    21/136

    PROGRAMARE N AUTOLISPPENTRU APLICAII 2DAUTOCAD

    2 - 21

    (command polygon 6 0,0 I 150)

    INFO:Pentru orice comand AutoCAD folosit, la care nu se cunosc bine parametrii, este indicat sfie apelat n AutoCAD, i s fie notai parametrii i ordine solicitrii acestora. n cazul nostru sunt

    solicitai 4 parametri n urmtoarea ordine: numr de laturi, centru cercului, nscris/circumscris, razacercului. De asemenea este necesar s se cunoasc dac este necesar s fie terminat comanda cuEnter sau nu (cazul comenzii Line, Polyline, etc.). Dac unele opiuni implicite sunt convenabile pot finlocuite cu Enter - , dar este indicat pstrarea opiunii pentru claritatea programului.

    21.Am desenat hexagonul folosind datele din lucrarea 1, dar noi suntem interesai sputem genera un urub n funcie de dimensiunile introduse de la tastatur. Pentruhexagon avem nevoie de o variabil n care s fie memorat centrul cercului generatori de o variabila n care s fie memorat raza cercului. Introducem n program liniilenecesare i programul modificat va fi urmtorul:.

    (defun sd( )

    (princ " program pri ncipal desenare surub" )(setq centru " 0,0" razacap " 150" )

    (command " polygon" " 6" centru " i" razacap)

    )

    INFO:Toate datele introduse ntre ghilimele nu sunt evaluate fiind tratate ca iruri de caractere. napelul unei comenzi AutoCAD parametrii care sunt dai prin variabile nu sunt pui ntre ghilimele. Defapt variabilele sunt apelate prin nume oriunde n program.

    22.Introducem n fiier i liniile care automatizeaz tergerea desenului.

    (defun sd( )

    (princ " program pri ncipal desenare surub" )(setq centru " 0,0" razacap " 150" )

    (command " polygon" " 6" centru " i" razacap)

    (getstr ing " apasa enter sau spatiu pentru stergere" )

    (command " undo" " 400" )

    )

    INFO:Getstring este o funcie AutoLISP care solicit introducerea unui ir de caractere terminat cuEnter. Aceast linie program este necesar deoarece oprete execuia programului nainte de tergereadesenului.

    2.5.Coninutul referatului

    1. Titlul lucrrii.2. Tema lucrrii.3. Chestiunile de studiat.4. Comenzile AutoCAD i opiunile acestora.5. Funciile AutoLISP utilizate i parametrii acestora.6. Listingul programelor.7. Desenul realizat n format electronic2i tiprit.

    1 - statistic nu ar trebui s avei referatul 2n format AutoCAD: DXG, DXF, n format grafic vectorizat: PLT i exportat ca fiier grafic: BMP i JPG

  • 7/28/2019 Indrumar PAC

    22/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    2 - 22

    8. Comentarii i observaii asupra aspectelor practice ntlnite1.

    1 IMPORTANT. Detaliat.

  • 7/28/2019 Indrumar PAC

    23/136

    INIIERE N AUTOLISP.INTRODUCERE DE DATE.SELECIE DE OBIECTE

    3 - 23

    3. INIIERE N AUTOLISP.INTRODUCERE DE DATE.SELECIE DE OBIECTE.

    3.1.Scopul lucrrii

    Aceast lucrare de laborator urmrete familiarizarea studenilor cu principalele funciiAutoLISP pentru introducere de date i selecie de obiecte.

    3.2.Noiuni teoretice

    Pentru generarea unor obiecte cu dimensiunile dorite este necesar introducerea de

    ctre utilizator a unor date de tip ntreg, real, etc. n limbajul de programare AutoLISP existun set de funcii specializate n introducerea de date. Cu ajutorul acestor funcii pot fisolicitate numere, iruride caractere, puncte, distane, etc.

    De asemenea multe din comenzile AutoCAD solicit selectarea unuia sau mai multorobiecte. Limbajul de programare AutoLISP dispune de un set de funcii specializate n creareai prelucrarea mulimilor de selecie. Se pot crea mulimi de selecie, se pot aduga sau tergeobiecte dintr-o mulime de selecie existent, etc.

    Funciile AutoLISP folosite n lucrare sunt explicate n cadrul punctului 3.4. Pentru oaprofundare a noiunilor folosite poate fi consultat cursul de specialitate sau materialul

    bibliografic.

    3.3.Chestiuni de studiat

    1. Se studiaz funciile pentru introducerea de date.2. Se studiaz funciile pentru crearea i prelucrarea mulimilor de selecie.3. Se continu programul nceput n lucrarea 2, astfel nct acesta s genereze desenul

    din fig.3.1.

    Fig.3.1. urub nefiletat

  • 7/28/2019 Indrumar PAC

    24/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    3 - 24

    3.4.Modul de lucru

    1. Se lanseaz programul AutoCAD, se creaz un desen nou i se deschide editorulVisualLISP.

    2. Se ncarc programul sdcreat n cadrul lucrrii de laborator 2.

    INFO:n mod implicit programele care au fost deschise la nchiderea sesiunii de lucru sunt deschiseautomat la deschiderea editorului VisualLISP.

    3. Programul ncrcat este urmtorul:

    (defun sd( )

    (princ " program pri ncipal desenare surub" )

    (setq centru " 0,0" razacap " 150" )

    (command " Polygon" " 6" centru " i" razacap)

    (getstr ing " apasa enter sau spatiu pentru stergere" )

    (command " Undo" " 400" )

    )

    4. ncrcnd i rulnd desenul n AutoCAD se obine desenul din fig.3.2.

    5. Completm1 programul existent cu liniile program necesare introducerii datelor caredefinesc capul urubului.

    (setq xc (getint " in troduceti coordonata x a centrului " ))

    (setq yc (getin t " in troduceti coordonata y a centrului" ))

    (setq razacap (getin t " intr oduceti raza centrului" ))

    INFO:Sunt necesare ca date de intrare coordonatele centrului: xc i yc i raza cercului care genereazhexagonul. Pentru funciile de introducere irul de caractere-mesaj nu este obligatoriu, dar este

    indicat, ca la rularea programului, fiecare cerere ctre utilizator s fie explicit

    2

    .6. ncrcm i rulm programul. Acum avem 3 variabile de tip ntreg pe care le folosim

    ca parametri pentru comanda Polygon. Deoarece nu am modificat linia din programcare deseneaz hexagonul variabilele introduse nu sunt folosite n program. Pentru averifica efectul variabilelor apelm comanda Polygon la prompterul AutoCAD i ca

    parametri furnizm variabilele create n program. Pentru apelareaacestora se tasteaznumele precedat de !, deci !nume_variabil3. Modificm programul i rezultatul va fiurmtorul:

    1nu creai noi funcii dect dac este specificat explicit. Se ncarc inutil fiierul cu funcii una mai complex

    dect alta 2pentru orice comand AutoCAD cererea de parametri este nsoit de un mesaj explicit3verificarea valorii variabilelor pe parcursul execuiei programului este foarte util pentru depanare

    Fig.3.2. Hexagonul generat de programul introdus

  • 7/28/2019 Indrumar PAC

    25/136

    INIIERE N AUTOLISP.INTRODUCERE DE DATE.SELECIE DE OBIECTE

    3 - 25

    (defun sd( )

    (princ " program pri ncipal desenare surub" )

    (setq xc (getin t " in troduceti coordonata x a centrului" ))

    (setq yc (getint " in troduceti coordonata y a centrului" ))

    (setq razacap (getin t " in troduceti raza centrului" ))(setq centr u (l ist xc yc))

    (command " Polygon" " 6" centru " i" razacap)

    (getstr ing " apasa enter sau spatiu pentru stergere" )

    (command " Undo" " 400" )

    )

    INFO:Din cele dou variabile xc i yc am construit o list, cu ajutorul funciei List, care estefurnizat ca parametru comenzii Polygon la cererea de introducere a centrului, deci a unui punct.Dac dorim s verificm valoarea unei variabile create cu Setq n AutoCAD o putem apela cu!nume_variabil. De asemenea o variabil creat ntr-un program AutoLISP poate fi folosit ca

    parametru pentru orice comand AutoCAD direct de la prompterul AutoCAD. Aceast opiune este

    util la verificarea comportrii unor comenzi AutoCAD nainte de a introduce liniile respective nprogram

    7. Deoarece avem nevoie ca desenul s rmn pe ecran1crem o funcie de tergere st.De asemenea ambele funcii create le transformm n comenzi AutoCAD. Programulrezultat este urmtorul:

    (defun c:sd( )

    (princ " program pri ncipal desenare surub" )

    (setq xc (getin t " in troduceti coordonata x a centrului" ))

    (setq yc (getint " in troduceti coordonata y a centrului" ))

    (setq razacap (getin t " in troduceti raza centrului" ))

    (setq centr u (l ist xc yc))(command " Polygon" " 6" centru " i" razacap)

    )

    (defun c:st( )

    (getstr ing " apasa enter sau spatiu pentru stergere" )

    (command " Undo" " 400" )

    )

    INFO:Acum avem n fiier dou funcii care definesc dou comenzi AutoCAD2. O funcie AutoLISPse apeleaz n AutoCAD ntotdeauna prin nume ntre paranteze rotunde, n timp ce o comandAutoCAD se apeleaz prin nume.

    8.

    Pasul urmtor const n extrudarea hexagonului. Spre deosebire de comenzile apelatepn acum comanda EXTRUDEnecesit selecia obiectelor3. n AutoLISP suntdefinite funcii pentru crearea i modificarea mulimilor de selecie. Introducem n

    program liniile necesare extrudrii hexagonului:

    (defun c:sd( )

    (princ " program pri ncipal desenare surub" )

    (setq xc (getin t " in troduceti coordonata x a centrului" ))

    (setq yc (getint " in troduceti coordonata y a centrului" ))

    1s nu se tearg automat2

    numele funciei trebuie precedat de c:3 ca la toate comenzile de modificare unul din parametri este obiectul care trebuie modificat, care trebuie indicatprogramului printr-o variabil, nu prin intervenia utilizatorului

  • 7/28/2019 Indrumar PAC

    26/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    3 - 26

    (setq razacap (getin t " in troduceti raza centrului" ))

    (setq centr u (l ist xc yc))

    (setq ic (getin t " in troduceti inaltimea capului " ))

    (command " Polygon" " 6" centru " i" razacap)

    (setq cap (entlast))

    (command " Color" " blue" )(command " ShadeMode" " o" )

    (command " VPoint" " 1,1,1" )

    (command " Extrude" cap " " ic " 0" )

    (setq cap (entlast))

    (command " Zoom" " a" )

    )

    INFO:Am introdus o linie solicit nlimea capului urubului i o memoreaz n variabila ic. Deasemenea funcia AutoLISP Entlast memoreaz ultima entitate desenat (n cazul nostru chiarhexagonul). Deci variabila cappoate fi folosit ori de cte ori dorim s selectm hexagonul. ComandaColor seteaz culoarea de desenare curent n blue. Linia din program care apeleaz comanda

    ShadeMode schimb modul de vizualizare al corpurilor din vizualizare tip cadru de srm nvizualizare corp plin + muchii. Comanda Vpointseteaz punctul de vedere din care este vizualizatdesenul. Pentru comanda Extrudeeste furnizat ca mulime de selecie variabila cap. echivaleazcu apsarea tastei Enter, deci terminarea seleciei1. De asemenea mai sunt furnizai ca parametriinlimea de extrudare ic i unghiul de extrudare - 0. Ultima linie de program apeleaz comandaZoom cu parametrul allpentru ca tot desenul s fie inclus n fereastra de desenare

    9. ncrcnd i rulnd desenul n AutoCAD se obine desenul din fig.3.3.

    10.Mai crem o funcie care va conine toate liniile de introducere a datelor2, sd rmnefuncia principal care va desena urubul i st funcia de tergere. De asemenea liniile

    care solicit parametrii de la utilizator vor fi transformate n comentarii i n locul lorvor fi introduse linii de atribuire. Se face aceast substituire pentru evitareaintroducerii datelor iniiale (4 numere, deocamdat) la fiecare rulare a programului3.

    (defun intdate( )

    (princ " program pri ncipal desenare surub" )

    (setq xc 0)

    ; (setq xc (getin t " intr oduceti coordonata x a centrului" ))

    1exact ca i n AutoCAD este necesar s specificm terminarea seleciei de obiecte2crem aceast funcie att pentru structurarea programului, ct i pentru exemplificarea definirii/folosirii mai

    multor funcii n cadrul aceluiai fiier3pn la finalizarea unui program se fac foarte multe rulri de prob pe un set de date predefinit. Este maicomod ca datele s fie transmise automat n aceast faz

    Fig.3.3. Desenul generat dup introducerea nprogram a liniilor necesare extrudrii

  • 7/28/2019 Indrumar PAC

    27/136

    INIIERE N AUTOLISP.INTRODUCERE DE DATE.SELECIE DE OBIECTE

    3 - 27

    (setq yc 0)

    ; (setq yc (getint " in troduceti coordonata y a centrului" ))

    (setq razacap 150)

    ; (setq razacap (getin t " in troduceti r aza centrulu i" ))

    (setq centr u (l ist xc yc))

    ; (setq ic (getin t " intr oduceti inal timea capului " ))(setq ic 50)

    )

    (defun c:sd( )

    (intdate)

    (command " Polygon" " 6" centru " i" razacap)

    (setq cap (entlast))

    (command " Color" " blue" )

    (command " ShadeMode" " o" )

    (command " VPoint" " 1,1,1" )

    (command " Extrude" cap " " ic " 0" )(setq cap (entlast))

    (command " Zoom" " a" )

    )

    (defun c:st( )

    (getstr ing " apasa enter sau spatiu pentru stergere" )

    (command " Undo" " 400" )

    )

    INFO:Se observ c funcia nou creat intdateeste apelat n corpul funciei sd1.

    11.Desenm cilindrul necesar pentru teirea capului urubului (vezi lucrarea1). Pentruaceasta cu comanda Cylinder se deseneaz un cilindru cu centrul n xc,yc, de razrazacap i nlime ic. Culoarea de desenare trebuie setat galben. Pentru aceasta seintroduc n program liniile urmtoare:

    (command " Color" " yellow" )

    (command " Cylinder" centru razacap ic)

    12.Pentru teirea muchiilor cilindrului se vor introduce n funcia sdurmtoarele linii.

    (setq cil (entlast))(command " Chamfer" (li st (+ xc razacap) yc 0) " " " 20" " 10" (li st (+ xc razacap) yc 0)

    " " )

    (command " Chamfer" (li st (+ xc razacap) yc ic) " " " 20" " 10" (li st (+ xc razacap) yc ic)

    " " )

    INFO:Pentru a tei muchiile cilindrului se folosete comanda Chamfer cu parametrii: un punct de pesuprafaa care conine muchia care va fi teit, confirmarea teirii unei muchii de pe suprafa, primadistan de teire, a doua distan de teire, un punct de pe muchia care trebuie teit i terminareaseleciei (pot fi selectate pentru teire una sau mai multe muchii de pe suprafaa selectat iniial).Punctul de selecie pentru suprafa i pentru muchie sunt identice fiind construite cu funcia List: (list

    1la editarea programului este indicat s se pstreze un alinierea liniilor, folosirea caracterelor minuscule, etc. Unprogram bine structurat se citete mult mai uor n cazul depanrii

  • 7/28/2019 Indrumar PAC

    28/136

  • 7/28/2019 Indrumar PAC

    29/136

    INIIERE N AUTOLISP.INTRODUCERE DE DATE.SELECIE DE OBIECTE

    3 - 29

    18.Se construiete corpul cilindrului folosind comanda Cylinder. Se completeaz funciade introducere date intdate:

    ; (setq icil (getint " introduceti inaltimea cilindrul ui" ))

    (setq icil 400)

    i funcia de desenare sd cu liniile program:

    (command " Color" " cyan" )

    (setq rc (/ razacap 2))

    (command " cyli nder" centru rc icil )

    19.Procednd ca la punctul 10 se teete partea de sus a cilindrului

    (command " Zoom" " a" )

    (command " Color" " yellow" )

    (setq pct (l ist (+ xc rc) yc ici l))

    (command " Chamfer" pct " " " 8" " 8" pct " " )

    INFO:Comanda Zoom se apeleaz naintea teirii deoarece datorit setrilor implicite nu pot fiselectate puncte nafara spaiului de desenare.

    20.Desenul generat de program este prezentat n fig.3.6.

    21.Se adaug i cilindrul desenat la mulimea de selecie surub:

    (ssadd corp surub)

    22.Cu comanda AutoCAD Union se creaz un singur corp obinut din unirea celor doucorpuri create pn acum

    (command " union" surub " " )

    Fig.3.6. Desenul generat dup intersectarea celor dou corpuri

  • 7/28/2019 Indrumar PAC

    30/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    3 - 30

    23.Programul complet este urmtorul:

    (defun in tdate( )

    (princ " program pri ncipal desenare surub" )

    (setq xc 0)

    ; (setq xc (getin t " intr oduceti coordonata x a centrului" ))(setq yc 0)

    ; (setq yc (getint " in troduceti coordonata y a centrului" ))

    (setq razacap 150)

    ; (setq razacap (getin t " in troduceti r aza centrulu i" ))

    (setq centr u (l ist xc yc))

    ; (setq ic (getin t " intr oduceti inal timea capului " ))

    (setq ic 50)

    ; (setq icil (getint " introduceti inaltimea cilindrul ui" ))

    (setq icil 400)

    )

    (defun c:sd( )

    (intdate)

    (command " Polygon" " 6" centru " i" razacap)

    (setq cap (entlast))

    (command " Color" " blue" )

    (command " ShadeMode" " o" )

    (command " VPoint" " 1,1,1" )

    (command " Extrude" cap " " ic " 0" )

    (command " Color" " yellow" )

    (setq cap (entlast))

    (command " Cylinder" centru r azacap ic)

    (setq cil (entlast))

    (command " Chamfer" (li st (+ xc razacap) yc 0) " " " 20" " 10" (li st (+ xc razacap) yc 0)

    " " )

    (command " Chamfer" (li st (+ xc razacap) yc ic) " " " 20" " 10" (li st (+ xc razacap) yc ic)

    " " )

    (setq cil (entlast))

    (command " intersect" cap cil " " )

    (setq cap (entlast))

    (setq surub (ssadd))

    (ssadd cap sur ub)(command " Color" " cyan" )

    (setq rc (/ razacap 2))

    (command " cyli nder" centru rc icil )

    (command " Zoom" " a" )

    (command " Color" " yellow" )

    (setq pct (l ist (+ xc rc) yc ici l))

    (command " Chamfer" pct " " " 8" " 8" pct " " )

    (setq corp (entlast))

    (ssadd corp surub)

    (command " union" surub " " )

    (command " Zoom" " a" ))

  • 7/28/2019 Indrumar PAC

    31/136

    INIIERE N AUTOLISP.INTRODUCERE DE DATE.SELECIE DE OBIECTE

    3 - 31

    (defun c:st( )

    (getstr ing " apasa enter sau spatiu pentru stergere" )

    (command " Undo" " 400" )

    )

    24.Dup rularea n AutoCAD a programului se genereaz automat desenul din fig.3.7.

    3.5.Coninutul referatului

    1. Titlul lucrrii.2. Tema lucrrii.3. Chestiunile de studiat.4. Comenzile AutoCAD i opiunile acestora.5. Funciile AutoLISP utilizate i parametrii acestora.6. Listingul programelor.7. Desenul realizat n format electronic1i tiprit.8. Comentarii i observaii asupra aspectelor practice ntlnite2.

    1 n format AutoCAD: DXG, DXF, n format grafic vectorizat: PLT i exportat ca fiier grafic: BMP i JPG2 IMPORTANT. Detaliat.

    Fig.3.7. Desenul generat dup unirea celor dou corpuri

  • 7/28/2019 Indrumar PAC

    32/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    4 - 32

    4. INIIERE N AUTOLISPMANIPULARE OBIECTE,LUCRUL CU BAZA DE DATE AUTOCAD

    4.1.Scopul lucrrii

    Aceast lucrare de laborator urmrete familiarizarea studenilor cu principalele funciiAutoLISP pentru manipulare a obiectelor i extrageri de date din baza de date AutoCAD.

    4.2.Noiuni teoretice

    Orice desen AutoCAD este construit pe baza unei baze de date care conine descriereatuturor entitilor din desen. Deci orice fiier AutoCAD conine descrierea entitilor din

    desen, la ncrcarea acestuia desenul este regenerat pe baza acestor descrieri. Atributele uneientiti din desen1sunt coninute n baza de date a acestui desen2.n AutoLISP se regsesc funcii care extrag sau introduc date n baza de date, deci

    prelucreaz aceast baz de date. Cu ajutorul acestor funcii se pot modifica sau crea obiecten desen fr desenarea efectiv a acestora.

    Trebuie reinut c orice obiect din desen este coninut n baza de date ca o list de liste.Fiecare sublist conine doi termeni codul proprietii3, respectiv valoarea acesteia. nfuncie de complexitatea obiectului, numrul de subliste crete. Trebuie remarcat ccomplexitatea acestor descrieri crete pentru versiunile AutoCAD recente. n lucrare vor fiexplicate noiunile principale, minimul necesar pentru lucrul cu baza de date a unui desenAutoCAD.

    Lucrul direct cu baza de date crete spectaculos viteza de execuie a programului.

    4.3.Chestiuni de studiat

    1. Se studiaz comenzile AutoCAD pentru generare de solide 3D prin extrudare.2. Se studiaz funciile pentru crearea i prelucrarea mulimilor de selecie3. Se studiaz funciile pentru extragerea atributelor din baza de date a unui desen

    1

    linie, polilinie, cerc, sfer, etc.2numele stratului de desenare, culoarea de desenare, coordonatele punctelor de definiie, nume, etc.3 coduri de grup DXF

    Fig.4.1. Simularea trasrii unei spire

  • 7/28/2019 Indrumar PAC

    33/136

    INIIERE N AUTOLISP.MANIPULARE OBIECTE.LUCRUL CU BAZA DE DATE AUTOCAD

    4 - 33

    AutoCAD4. Se continu programul nceput n lucrarea 3, astfel nct acesta s genereze desenul

    din fig.4.1.

    4.4.Modul de lucru

    1. Se lanseazprogramul AutoCAD, se creeaz un desen nou i se deschide editorulVisualLISP.

    2. Se ncarc programul sdcreat n cadrul lucrrii de laborator 2 i 3.

    INFO:n mod implicit programele care au fost deschise la nchiderea sesiunii de lucru sunt deschiseautomat la deschiderea editorului VisualLISP.

    3. Se ncarc i ruleaz programul n AutoCAD. Dup rulare se creeaz un strat dedesenare cu numele urub. Se selecteaz urubul desenat i se trece n stratul nou creat

    prin selectarea acestuia. Dup aceast operaie se nchide stratul de desenareoff (seapas pe bec, care devine negru).

    INFO:Dup rularea programului toate funciile i variabilele din program rmn active, putnd fiapelate n cadrul unui alt program, sau direct din AutoCAD, n cadrul sesiunii de lucru curente.

    4. Se minimizeaz fiierul curent. Se creeaz un fiier nou n editorul VisualLISP i sesalveaz cu numele spira.

    INFO: A fost creat un fiier nou pentru simplificarea urmririi programului principal. Este maisimpl scrierea funciilor unui program relativ complex n mai multe fiiere, dect scrierea acestorantr-un singur fiier care s conin sute sau mii de linii program.

    5. Se creeaz o funcie nou numit filet fr parametri. Aceasta va fi funcia principal aprogramului.

    (defun f il et( )(princ " Program principal generare filet" )

    )

    6. n lucrrile precedente am creat corpul brut al unui urub, care mai trebuie fileta t.Pentru aceasta trebuie s generm filetul cu ajutorul unei funcii AutoLISP.

    S trecem n revist posibilitile de creare a filetului pentru a nelege mai bine structuraprogramului pe care trebuie s l scriem. tim c putem extruda un profil de-a lungul uneitraiectorii. Este necesar bineneles ca traiectoria s fie continu, generat de exemplu cu

    comanda polyline. Realizm o verificare a comenzii.

    a. b.

    Fig.4.2. Extrudarea unui cerc de-a lungul unei traiectorii (ci)aprofilul de extrudat i traiectoria, bcorpul rezultat

    Traiectoria de extrudar e care este o polil in ie

    Profilul de extrudat cerc sevede ca o linie datorit rotirii UCSdu axa OX

  • 7/28/2019 Indrumar PAC

    34/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    4 - 34

    n AutoCAD desenm o polilinie n modul arc, care s conin mai multe segmente. Aceastpolilinie va fi traiectoria de extrudare (fig.4.2.a). Rotim UCS-ul cu 90 de grade dup axa OX(de exemplu) i desenm un cerc, care va constitui profilul de extrudat (fig.4.2a). Extrudmcercul de-a lungul traiectorieiPATHCale(fig.4.2.b).Dei aceast metod poate fi folosit pentru crearea filetului (pentru filet triunghiular se

    extrudeaz un triunghi, pentru filet rotund un cerc, etc.) traiectoria de extrudare trebuie s fieo spiral 3D. tim c polylinecreaz prin definiie entiti 2D, deci nu poate fi folosit pentrugenerarea traiectoriei. Pentru trasarea unei polilinii 3D dispunem de comanda 3DPoly.Aceast comand creeaz o polilinie ale crei segmente sunt orientate n spaiultridimensional. Dar nici aceast comand AutoCAD nu satisface, deoarece nu poate desenadect segmente de dreapt, spre deosebire de polylinecare trasa i arce de cerc.Datorit acestor motive trebuie s generm traiectoria de extrudare cu ajutorul unui programAutoLISP. Pentru crearea acestui program (funcii) se parcurg punctele urmtoarele dinmodul de lucru.

    7. Se completeaz programul cu funcia de tergere.

    (defun f il et( )

    (princ " Program principal generare filet" )

    (setq test (getstr ing " apasa enter sau spatiu" ))

    (sterge)

    )

    (defun sterge( )

    (command " UNDO" " END" )

    (command " UNDO" " 200" )

    )

    8. Se observ c s-au repetat operaiile de la lucrarea 3, obinndu-se 2 funcii, unaconstituind funcia principal de desenare i cealalt fiind funcia de tergere.

    9. Se ncarc i se ruleaz acest program n AutoCADAcum avem ncrcate funcia de tergere (apelat automat n programul principal) i

    bineneles funcia principal filet. Se observ c dup apelarea funciei de tergere suntanulate toate setrile fcute de programul surub. Totui funciile i variabilele create n acest

    program rmn active i pot fi apelate. Avem nevoie de punctul de centru al urubului careeste acelai cu cel al spiralei, la care adugm coordonata z egal cu grosimea capului.

    10.Verificm dac putem apela aceste variabile. n AutoCAD ncercm acest lucruCommand: !centru(0 0)Command: !ic50

    11.Se adaug instruciuni n corpul funciei filet:- Se modific centrul spirei adugnd i coordonata z(setq centr usp (l ist (car centr u) (cadr centru) ic))verificmCommand: !centrusp(0 0 50)- Folosind funcia command se creaz un cerc cu centrul n origine i raz dat de

    utilizator.- Analog se creeaz o linie orizontal care are un capt n origine i un capt pe cerc

  • 7/28/2019 Indrumar PAC

    35/136

    INIIERE N AUTOLISP.MANIPULARE OBIECTE.LUCRUL CU BAZA DE DATE AUTOCAD

    4 - 35

    Funcia filet va fi:(defun c:f il et( )

    (princ " Program principal generare filet" )

    (setq centrusp (list (car centru) (cadr centr u) ic))

    (command " vpoint" " 1,1,1" )(command " osnap" " off" )

    (command " color" " red" )

    (command " cir cle" centrusp razacap)

    (command " color" " green" )

    (command " li ne" centrusp (list razacap 0 ic) " " )

    (command " vpoint" " 1,1,1" )

    (setq test (getstr ing " apasa enter sau spatiu" ))

    (sterge)

    )

    INFO:Se observ c a fost dezactivat modul OSNAP pentru evitarea seleciei punctelor particulareale entitilor, selectabile implicit n modul OSNAP.

    Rencrcm fiierul i rulnd-ul n AutoCAD apare vizibil deplasarea ucs-ului n centrulecranului de desenare, fiind desenat cercul i linia.

    12.Se memoreaz ntr-o variabil linia (ultima entitate desenat) i se rotete cu un unghispecificat. Se repet aceast operaie pn cnd linia ajunge n poziia iniial. Pentruaceasta se va folosi funcia repeat. Aceast funcie repet instruciunile din corpul eide n ori.

    (repeat )

    Programul va fi completat cu instruciunile necesare:

    (defun c:f il et( )(princ " Program principal generare filet" )

    (setq centrusp (list (car centru) (cadr centr u) ic))

    (command " vpoint" " 1,1,1" )

    (command " osnap" " off" )

    (command " color" " red" )

    (command " cir cle" centrusp razacap)

    (command " color" " green" )

    (command " li ne" centrusp (list razacap 0 ic) " " )

    (setq linie (entl ast))

    (r epeat 72

    (command " rotate" linie " " centrusp " 5" )(setq li nie (entlast))

    )

    (setq test (getstri ng " apasa enter sau spatiu" ))

    (sterge)

    )

    13.Am desenat i rotit aceast linie, deoarece captul de pe cerc al acesteia descrieproiecia n plan a unei spirale. Deci vom extrage dup fiecare rotaie coordonatelepunctului de intersecie dintre linie i cerc. ntre dou puncte consecutive vom desena

    cu comanda 3dpoly un segment de linie. Polilinia obinut va aproxima un arc de cerc.

  • 7/28/2019 Indrumar PAC

    36/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    4 - 36

    Deoarece avem linia memorat ca mulime de selecie n variabila linie putem s ofolosim pentru a determina coordonatele celui de-al doilea punct al ei.

    Vom redesena linia n AutoCAD (fr s mai tergem, deci ntrerupem funcia filet apsndtasta Esc) i vom rula de la prompterul command funcii AutoLISP pentru observareaefectului acestor funcii. Dup clarificarea efectului acestora vor fi folosite n programul

    principal. Pentru a observa mai bine linia se deplaseaz ecranul de desenare folosind barele dederulare ale acestuia.ATENIE! Linia trebuie desenat din origine, deoarece funciile AutoLISP extraginformaiile raportate la UCS-ul WORLD, deci nu la un ucs definit ulterior.Command: (setq lin (entlast))Se observ c funcia setq a asociat variabilei lin entitatea care este ultima entitate desenat,deci linia.

    INFO:n funcie de desenul creat i de versiunea AutoCAD numele entitii difer, n acest caz fiind7ef4ff60

    14.

    Folosim funcia entgetpentru a obine informaii despre o entitate din desen, n cazulnostru despre cea memorat n variabila lin.Command: (entget lin)((-1 . ) (0 . "LINE") (330 . ) (5. "9C") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (62 . 3) (100 ."AcDbLine") (10 0.0 0.0 50.0) (11 150.0 -8.52651e-014 50.0) (210 0.0 0.0 1.0))Am obinut o list de liste care conin fiecare codul unei proprieti a entitii i valoareaasociat lui. Se observ c -1 corespunde numelui entitii. Analog codul 8 are asociat numelelayer-ului n care e desenat entitatea, codul 0 corespunde tipului entitiii bineneles, ceeace ne intereseaz deocamdat, capetele liniei sunt asociate cu 10 i 11. Ne intereseaz numaicoordonatele celui de-al doilea punct, deci 11. Se observ c avem 40 pentru x (valoarea

    introdus de noi), 0 pentru y i z.INFO:Bineneles c coordonata y este aproape zero, deoarece am rotit linia i aceasta nu a maiajuns n poziia orizontal. Pentru simplificarea explicaiilor considerm c aceasta se afl n poziia ncare a fost desenat, adic orizontal.

    15.Putem extrage aceste coordonate cu funcia assoc.(assoc ).

    Funcia caut un articol n lista asociat i returneaz intrarea din list. Dac articol nu estegsit ca o cheie n lista, assoc returneaz nil.Practic:Command: (assoc 11 (entget lin))(11 150.0 0.0 50.0)unde lista este dat de entget. Memorm ntr-o variabil.Command: (setq co (assoc 11 (entget lin)))(11 150.0 0.0 50.0)

    16.Deoarece nu avem nevoie de 11 l eliminm cu funcia cdrcare taie (elimin) primulelement dintr-o list.

    Command: (setq co (cdr co))(150.0 0.0 50.0)

    17.Folosim funcia car pentru a extrage primul element din list, n acest caz coordonatax a punctului.

    Command: (setq pctx (car co))150.0

  • 7/28/2019 Indrumar PAC

    37/136

    INIIERE N AUTOLISP.MANIPULARE OBIECTE.LUCRUL CU BAZA DE DATE AUTOCAD

    4 - 37

    Command: (setq pcty (cadr co))0.0Command: (setq pct (list pctx pcty))(150.0 0.0)Am extras din lista co cel de-al doilea element (coordonata y) i am introdus-o mpreun cu

    coordonata pe x n lista pct creeat cu funcia list.Avem acum coordonatele punctului i deci repetnd aceste comenzi dup fiecare rotaie aliniei vom obine coordonatele punctelor care definesc arcul de cerc (proiecia spiralei n

    plan). Verificm aceasta simulnd trasarea spiralei cu comanda polyline

    18.Crem o nou funcie care s realizeze acest lucru.

    Programul n varianta final:(defun c:f il et( )

    (princ " Program principal generare filet" )

    (setq centrusp (list (car centru) (cadr centr u) ic))

    (command " vpoint" " 1,1,1" )

    (command " osnap" " off" )

    (command " color" " red" )

    (command " cir cle" centrusp razacap)

    (command " color" " green" )

    (command " li ne" centrusp (list razacap 0 ic) " " )

    (setq linie (entl ast))

    (command " color" " bylayer" )

    (setq pct2 (l ist razacap 0 ic))

    (r epeat 72

    (command " rotate" linie " " centrusp " 5" )

    (setq li n l in ie)(setq pct1 pct2)

    (coord)

    (setq pct2 pct)

    (command " pline" pct1 pct2 " " )

    )

    (setq test (getstri ng " apasa enter sau spatiu" ))

    (sterge)

    )

    (defun coord( )

    (setq co (assoc 11 (entget l in)))

    (setq co (cdr co))

    (setq pctx (car co))

    (setq pcty (cadr co))

    (setq pct (l ist pctx pcty))

    )

    (defun sterge( )

    (command " undo" " END" )

    (command " undo" " 200" ))

  • 7/28/2019 Indrumar PAC

    38/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    4 - 38

    19.Duprularea n AutoCAD a programului se obine desenul din Fig.4.3.

    4.5.Coninutul referatului

    1. Titlul lucrrii.2. Tema lucrrii.3. Chestiunile de studiat.4. Comenzile AutoCAD i opiunile acestora.5. Funciile AutoLISP utilizate i parametrii acestora.6. Listingul programelor.7. Desenul realizat n format electronic1i tiprit.8. Comentarii i observaii asupra aspectelor practice ntlnite2.

    1 n format AutoCAD: DXG, DXF, n format grafic vectorizat: PLT i exportat ca fiier grafic: BMP i JPG 2 IMPORTANT. Detaliat.

    Fig.4.3. Simularea trasrii unei spire

  • 7/28/2019 Indrumar PAC

    39/136

    INIIERE N AUTOLISP.LUCRUL CU BAZA DE DATE AUTOCAD.FUNCII DE CONDIIONARE I DE CICLARE

    5 - 39

    5. INIIERE N AUTOLISPLUCRUL CU BAZA DE DATEAUTOCAD,FUNCII CONDIIONALE I DE CICLARE

    5.1.Scopul lucrrii

    Aceast lucrare de laborator urmrete familiarizarea studenilor cu principalele funciiAutoLISP ciclare i extrageri de date din baza de date AutoCAD.

    5.2.Noiuni teoretice

    n lucrare sunt folosite funciile AutoLISPde condiionare i ciclareprezentate n curs.

    5.3.Chestiuni de studiat

    1. Se studiaz comenzile AutoCADExtrude, Ucs, 3Dpoly.2. Se studiaz funciile pentru crearea i prelucrarea mulimilor de selecie3. Se studiaz funciile pentru extragerea atributelor din baza de date a unui desen

    AutoCAD4. Se continu programul nceput n lucrarea 4, astfel nct acesta s genereze urubul

    filetat

    5.4.Modul de lucru

    1. Se lanseaz programul AutoCAD, se creeaz un desen nou i se deschide editorulVisualLISP.

    2. Se ncarc n AutoLISP programul sdcreat n cadrul lucrrii de laborator 3, respectivprogramul filet creat n cadrul lucrrii de laborator4.

    3. Se ncarc i ruleaz programele n AutoCAD. Se observ c spirala este generat de-alungul cercului mare (de generare a hexagonului), deoarece pentru generare s-a folositrazacap n loc de rc, care este raza cilindrului. Se nlocuiete razacap cu rc n

    programul filet (apare de dou ori) i se ruleaz din nou ambele programe. Pentru ovizualizare mai bun se folosete comanda 3DOrbit cu opiunea WireFrame.

    4. Modificm programul filet pentru a transforma cercul generat ntr-o spir. Pentruaceasta la coordonatele captului liniei adugm coordonata z.

    Am setat pasul de generare a spirei de 5 grade. ntradevr 360/72=5. Introducem o variabil nlocul numrului 72 care ne d rezoluia spirei.

    Fisierul surub

    (defun in tdate( )

    (princ " program pri ncipal desenare surub" )

    ; (setq rezs (getint " in troduceti rezolutia spirei" ))(setq rezs 75)

  • 7/28/2019 Indrumar PAC

    40/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    5 - 40

    ; (setq pf (getin t " intr oduceti pasul fi letului " ))

    (setq pf 75)

    )

    F isierul spira

    (defun c:f il et( )(princ " Program principal generare filet" )

    (r epeat r ezs

    5. Folosim aceast variabil pentru generarea coordonatei z a spirei. La fiecareparcurgere a instruciunilor din ciclul repeat adugm variabila z incrementat cu ovaloare care s ne dea pasul spirei, respectiv pasul filetului. Deoarece n AutoLISPrezultatul mpririi a dou numere ntregi este tot un numr ntreg, trebuie siniializm pasul filetului ca numr real. Modificrile aprute n cele dou programe

    sunt urmtoarele:(defun in tdate( )

    (princ " program pri ncipal desenare surub" )

    ; (setq rezs (getint " in troduceti rezolutia spirei" ))

    (setq rezs 72)

    ; (setq pf (getin t " intr oduceti pasul fi letului " ))

    (setq pf 100.0)

    )

    (defun c:sd( ))

    (defun c:f il et( )

    (princ " Program principal generare filet" )

    (setq pct2 (l ist razacap 0 ic))

    (setq pctz 0)

    (r epeat rezs

    (command " rotate" linie " " centrusp (/ 360 rezs))

    (setq pcty (cadr co))

    (setq pctz (+ pctz (/ pf rezs)))

    (setq pct (l ist pctx pcty pctz))

    )

    (defun sterge( )

    Dup rulare se observ o spir

    6.

    Modificm programul astfel nct s fie generate toate spirele filetului. Presupunem cpasul filetului este 20 (raportat la dimensiunile urubului). Deci trebuie s generm un

  • 7/28/2019 Indrumar PAC

    41/136

    INIIERE N AUTOLISP.LUCRUL CU BAZA DE DATE AUTOCAD.FUNCII DE CONDIIONARE I DE CICLARE

    5 - 41

    numr de spire egal cu raportul dintre nlimea cilindrului i pasul filetului.Modificnd linia repeatdin program obinem:

    (repeat (* rezs (/ ic pf))

    Dar argumentul funciei repeateste n majoritatea cazurilor un numr real i funcia repeataccept ca argument numai numere ntregi. Modificm programul astfel nct s nlocuim

    funcia de ciclare repeat cu funcia de ciclare while. Pentru a studia modul de apelare iparametrii acestor funcii se tasteaz numele funciei n program i se apas Ctrl-F1 (moduluzul de apelare a Help-ului contextual). Se va deschide fereastra de Help poziionat la funciarespectiv.Modificm programul pentru funcia while. Obinem modulul:

    (defun in tdate( )

    (princ " program pri ncipal desenare surub" )

    ; (setq icil (getint " introduceti inaltimea cilindrul ui" ))

    (setq icil 400)

    ; (setq rezs (getint " in troduceti rezolutia spirei" ))(setq rezs 72)

    ; (setq pf (getin t " intr oduceti pasul fi letului " ))

    (setq pf 10.0)

    )

    (defun c:f il et( )

    (setq pctz 0)

    (setq temp (* rezs (/ i cil pf)))

    (whi le (>= temp 0)

    (command " rotate" linie " " centrusp (/ 360 rezs))

    (setq li n l in ie)

    (setq pct1 pct2)

    (coord)

    (setq pct2 pct)

    (command " pline" pct1 pct2 " " )

    (setq temp (- temp 1))

    Dup rularea programului se obine spira din figur..

  • 7/28/2019 Indrumar PAC

    42/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    5 - 42

    7. Apelm funcia de tergere ST i observm c nu se anuleaz tot desenul (funciileexecutate). Aceasta din cauz c anulm un numr mic de comenzi. Se d comandaUndo cu parametru 65536 de cte ori este nevoie. Eventual se modific i n funciilede tergere din cele dou programe.

    8. Pentru a obine filetul utilizm aceast spir pentru a extruda un profil de filet de -alungul ei. Cel mai simplu este s obinem un profil rotund, deci s extrudm un cerc. Pentru toate tipurile de filet se procedeaz la fel. Trebuie desenat un cerc (profilulfiletului) ntr-un plan perpendicular pe nceputul cii de extrudare. Pentru aceastamutm i rotim ucs-ul la captul liniei generatoare de filet. tim coordonatele celui de-al doilea punct al liniei i orientarea acesteia. Pentru aceasta folosim comanda Ucs cuopiunea New. Corectm i erorile din program, mai precis: raza de generare a spireitrebuie s fie rc nu razacap; spira trebuie s nceap de la baza cilindrului nu de la bazacapului. De asemenea pstrm doar generarea unei spire pentru simplitate (amverificat generarea filetului).Dup aceste modificri programul este urmtorul:

    (defun in tdate( )

    (princ " program pri ncipal desenare surub" )

    (setq xc 0)

    ; (setq xc (getin t " intr oduceti coordonata x a centrului" ))

    (setq yc 0)

    ; (setq yc (getint " in troduceti coordonata y a centrului" ))

    (setq razacap 150)

    ; (setq razacap (getin t " in troduceti r aza centrulu i" ))

    (setq centr u (l ist xc yc))

    ; (setq ic (getin t " intr oduceti inaltimea capului " ))

    (setq ic 50); (setq icil (getint " introduceti inaltimea cilindrul ui" ))

    (setq icil 400)

    ; (setq rezs (getint " in troduceti rezolutia spirei" ))

    (setq rezs 72)

    ; (setq pf (getin t " intr oduceti pasul fi letului " ))

    (setq pf 10.0)

    )

    (defun c:sd( )

    (intdate)

    (command " Polygon" " 6" centru " i" razacap)

    (setq cap (entlast))

    (command " Color" " blue" )

    (command " ShadeMode" " o" )

    (command " VPoint" " 1,1,1" )

    (command " Extrude" cap " " ic " 0" )

    (command " Color" " yellow" )

    (setq cap (entlast))

    (command " Cylinder" centru r azacap ic)

    (setq cil (entlast))

    (command " Chamfer" (li st (+ xc razacap) yc 0) " " " 20" " 10" (li st (+ xc razacap) yc 0)" " )

  • 7/28/2019 Indrumar PAC

    43/136

    INIIERE N AUTOLISP.LUCRUL CU BAZA DE DATE AUTOCAD.FUNCII DE CONDIIONARE I DE CICLARE

    5 - 43

    (command " Chamfer" (li st (+ xc razacap) yc ic) " " " 20" " 10" (li st (+ xc razacap) yc ic)

    " " )

    (setq cil (entlast))

    (command " intersect" cap cil " " )

    (setq cap (entlast))

    (setq surub (ssadd))(ssadd cap sur ub)

    (command " Color" " cyan" )

    (setq rc (/ razacap 2))

    (command " cyli nder" centru rc icil )

    (command " Zoom" " a" )

    (command " Color" " yellow" )

    (setq pct (l ist (+ xc rc) yc ici l))

    (command " Chamfer" pct " " " 8" " 8" pct " " )

    (setq corp (entlast))

    (ssadd corp surub)

    (command " union" surub " " )(command " Zoom" " a" )

    )

    (defun c:st( )

    (getstr ing " apasa enter sau spatiu pentru stergere" )

    (command " Undo" " 400" )

    )

    (defun c:f il et( )

    (princ " Program principal generare filet" )

    (setq centrusp (list (car centru) (cadr centr u) ic))

    (command " vpoint" " 1,1,1" )

    (command " osnap" " off" )

    (command " color" " red" )

    (command " circle" centrusp rc)

    (command " color" " green" )

    (command " li ne" centrusp (list rc 0 ic) " " )

    (setq linie (entl ast))

    (setq coorducs (cdr (assoc 11 (entget l inie))))

    (command " color" " bylayer" )

    (setq pct2 (l ist razacap 0 ic))

    (setq pctz ic)(setq temp (* rezs (/ (- i cil ic) pf)))

    (setq pct1 pct2)

    (setq l is (l ist pct1 pct2))

    (whi le (>= temp 0)

    (command " rotate" linie " " centrusp (/ 360 rezs))

    (setq li n l in ie)

    (setq pct1 pct2)

    (coord)

    (setq pct2 pct)

    (setq l is (cons pct li s))

    (setq temp (- temp 1)))

  • 7/28/2019 Indrumar PAC

    44/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    5 - 44

    (setq temp (* rezs (/ (- i cil ic) pf)))

    (command " 3dpoly" )

    (whi le (>= temp 0)

    (setq pct1 (car l is))

    (setq pct2 (cadr l is))

    (command pct1 pct2)(setq l is (cdr li s))

    (setq temp (- temp 1))

    )

    (command " " )

    (setq f il (entl ast))

    (command " ucs" " m" coorducs)

    (command " ucs" " n" " x" " " )

    (command " color" " cyan" )

    (command " circle" " 0,0" (/ pf 2.5))

    (setq prof il (entl ast))

    (command " extrude" profil " " " p" fil)

    (setq test (getstri ng " apasa enter sau spatiu" ))

    (sterge)

    )

    (defun coord( )

    (setq co (assoc 11 (entget l in)))

    (setq co (cdr co))

    (setq pctx (car co))

    (setq pcty (cadr co))

    (setq pctz (+ pctz (/ pf rezs)))

    (setq pct (l ist pctx pcty pctz))

    )

    (defun sterge( )

    (command " UNDO" " END" )

    (command " UNDO" " 200" )

    )

    9. Se studiaz posibilitile de optimizare a generrii filetului.

    5.5.Coninutul referatului

    1. Titlul lucrrii.2. Tema lucrrii.3. Chestiunile de studiat.4. Comenzile AutoCAD i opiunile acestora.5. Funciile AutoLISP utilizate i parametrii acestora.6. Listingul programelor.7. Desenul realizat n format electronic1i tiprit.8. Comentarii i observaii asupra aspectelor practice ntlnite2.

    1n format AutoCAD: DXG, DXF, n format grafic vectorizat: PLT i exportat ca fiier grafic: BMP i JPG 2 IMPORTANT. Detaliat.

  • 7/28/2019 Indrumar PAC

    45/136

    INIIERE N AUTOLISP.LUCRUL CU BAZA DE DATE AUTOCAD.FUNCII DE CREARE A OBIECTELOR

    6 - 45

    6. INIIERE N AUTOLISPLUCRUL CU BAZA DE DATEAUTOCAD,FUNCII DE CREARE A OBIECTELOR

    6.1.Scopul lucrrii

    Aceast lucrare de laborator urmrete familiarizarea studenilor cu crearea imodificarea entitilor n date din baza de date AutoCAD a desenului.

    6.2.Noiuni teoretice

    Crearea i modificarea entitilor1 direct n baza de date a desenului n AutoCAD ofer

    avantajele unei generri sau modificri rapide a desenului. Funcia ENTMAKEpermitecrearea unei noi entiti n desenul curent. Dac entitatea a putut fi creat, funcia returneazparametrii definitorii ai entitii. n cazul n care entitatea nu a putut fi creat, funciareturneaz Nil. Pentru crearea unei entiti se apeleaz funcia ENTMAKEavnd ca

    parametru o list ce conine parametrii definitorii ai entitii. Forma acestei liste trebuie s fieidentic cu forma listelor returnate de funcia ENTGET.

    O metod simplificat de obinere a unor noi entiti este urmtoarea:- se aplic funcia ENTGET unei entiti asemntoare ce exist sau este creat n

    desenul curent. Se obin astfel caracteristicile primare ale noii entiti;- caracteristicile obinute se modific, i cu funcia ENTMAKE se creaz noua

    entitate.

    nainte de a crea o nou entitate funcia ENTMAKEverific validitatea urmtoarelorcaracteristici:

    - numele stratului de desenare;- numele tipului de linie;- tipul de culoare;- numele blocurilor;- numele tipurilor de cotri;- numele tipurilor de text.n cazul unui nume de strat de desenare nou ENTMAKEl va crea automat. Primul

    sau al doilea element al listei trebuie s fie de tipul entitate (line, circle, arc, etc.). Dac tipuldeentitate este al doilea element al listei, el poate fi precedat doar de numele entitii care

    atunci cnd entitatea este creat este automat ignorat.Definirea unei entiti complexe presupune apelarea repetat a funciei ENTMAKE,

    deoarece trebuie create mai multe subentiti. Succesiunea de subentiti trebuie terminatprin crearea entitii SEQUEND2sau ENDBLK3. Dac una din subentiti este greit definitENTMAKEabandoneaz automat crearea entitii complexe.

    Funcia este ENTMODfolosit pentru actualizaea parametrilor entitii al crui numeeste furnizat n lista parametrilor sub codul de grup -1. Prin actualizarea parametrilornelegem nlocuirea vechilor parametri cu alii noi. Argumentul funciei ENTMODeste olist ai crui parametri trebuie s fie similar cu cea returnat de funcia ENTGET.

    1

    Obiectelor2 Pentru polilinii3 Pentru blocuri

  • 7/28/2019 Indrumar PAC

    46/136

    PROIECTARE ASISTAT DE CALCULATORNDRUMAR DE LABORATOR

    6 - 46

    Modificarea unei entiti