Sei sulla pagina 1di 41

MIERCURI, MARTIE 11

Cotarea pe doua linii in AutoCAD


PUBLICAT DE: THEODOR L.

Acum cateva saptamani mi-am adus aminte cum se cota pe doua... si mai multe... linii. Pentru ca am pierdut 15 min. cautand si pana la urma solutia a gasit-o tot Alex, care ma intrebase initial, am hotarat sa scriu pe blog ca sa nu mai uit.

Cotarea pe mai multe linii se face din Properties/Text/Text override, dupa ce a fost selectata cota respectiva. In casuta de Text override din Properties la cote: <> - inseamna textul cotei (se updateaza dinamic daca cota se schimba) \P - schimba randul fara a trece sub/peste linia de cota \X - trece sub linia de cota

<> si \X se pot folosi doar odata in proprietatile cotei editate simbolurile nu functioneaza in cazul in care se folosesc "Alternate Units"

JOI, MARTIE 26

Inserarea de imagini (raster) in AutoCAD


PUBLICAT DE: THEODOR L.

Acesta va fi un post mai lung in care voi discuta despre: - inserarea de imagini - inserarea de imagini in vederea vectorizarii (scanare, inserare, scalare) - controlul imaginii tip raster in AutoCAD

1. Inserarea de imagini
AutoCAD accepta urmatoarele tipuri de raster: BMP, RLE, DIB, RST, GP4, MIL, CAL, CG4, FLC, FLI, BIL, GIF, JPG, JPEG, PCX, PCT, PNG, RLC, TGA, TIF, TIFF... si mai sunt. Imaginile se insereaza in AutoCAD din: Insert - Raster Image sau Insert - Image Manager - Attach Indiferent de varianta aleasa urmatorul pas va fi alegerea imaginii din fereastra "Select Image File". Dupa ce a fost aleasa imaginea se va deschide fereastra "Image" in care se vor specifica parametri de inserare:

Insertion point este locul in care va fi coltul din stanga jos al imaginii, se pot introduce coordonate sau se poate bifa "Specify on-screen" petru a specifica cu click in desen Scale este scara la care se va insera imaginea, se va introduce o scara sau se va bifa si aici "Specify on-screen" pentru a scala imaginea direct in desen Rotation este ungiul de rotatie al imaginii, se poate lasa 0 sau alege/introduce un unghi de roatie. Click OK... si daca ai bifat undeva "Specify on-screen" atunci asta vei face in continuare. In Command Line programul iti va spune de ce are nevoie: Specify insertion point <0,0>: Specify scale factor or [Unit] <1>: Specify rotation angle <0>: si cu asta gata... imaginea ar trebui sa fie in desen. Cel mai simplu e sa inserezi imaginea cu parametri "default", adica Insertion Point 0,0,0 / Scale 1 / Rotation 0 si apoi sa o misti, scalezi, rotesti in desen, ca pe orice alt element, pana ajunge in pozitia si la dimensiunea dorita.

2. Inserarea de imagini in vederea vectorizarii


Scanare rezolutia: 200DPI pentru color, 300-400 DPI pentru alb/negru formatul: JPEG/TIFF pentru color, TIFF (1bit) pentru alb/negru scara: daca originalul e desenat la scara se scaneaza 1:1 (fara micsorare sau marire la scanner) Inserare E preferabil ca imaginiile sa fie inserate pe un layer dedicat. Daca imaginea a fost desenata la scara si scanata corect se poate specifica la scara de inserare (Scale) exact scara la care a fost desenata imaginea. Rezultatul va fi inserarea imaginii 1/1 in milimetri. Daca este necesar imaginea se poate misca/roti/scala in desen pentru a ajunge in pozitia si dimensiunea dorita. Pentru vectorizare sunt recomandate TIFF-urile scanate alb/negru (color depth 1bit) la 300DPI. Acestea pot fi inserate pe un layer colorat si liniile din imagine vor lua culoarea layer-ului. De asemenea se pot edita si in modul transparent (pixelii albi vor fi transparenti si pixeli negrii vor lua culoarea layer-ului).

3. Controlul imaginii tip raster in AutoCAD


Imaginile inserate ajung in Image Manager. Imaginile sterse din desen (ERASE) raman ca referinte. Aceste referinte se pot sterge din Image Manager prin selectie si Detach. Imaginile pot fi temporar descarcate din memoria de lucru si apoi reincarcate cand e necesar cu comezile Unload/Reload, utile daca se lucreaza cu un numar mare de imagini care nu sunt necesare simultan in desen. Pentru o mai buna intelegere iata cele patru status-uri posibile ale unei imagini (coloana Status in Image Manager):

Loaded - imaginea este incarcata in memoria de lucru si prezenta in desen Reload - imaginea tocmai a fost reincarcata in memoria de lucru (util daca imaginea a fost editata in afara AutoCAD-ului si dorim sa o reincarcam in versiunea curenta) Unloaded - imaginea este prezenta in desen dar descarcata din memoria de lucru Unreferenced - imaginea a fost stearsa (ERASE) din desen si a ramas doar ca referinta in Image Manager

Contrastul si luminozitatea imaginilor color se pot ajusta din Modify - Object - Image - Adjust (sau dubluclick pe "marginea" imaginii). Imaginile odata inserate se pot "decupa" dupa orice contur (poligonal) cu Modify - Clip - Image, imaginea nu sufera nici o modificare, se modifica doar cat din ea apare afisat pe ecran IMAGEQUALITY - cu setarile High si Draft - controleaza calitatea de afisare TRANSPARENCY - controleaza transparenta (nu are efect decat la TIFF-urile alb/negru) IMAGEFRAME - controleaza "conturul", marginea imaginii cu valorile: 0 - marginile nu sunt afisate si nici plotate (imaginile nu vor putea

fi selectate) 1 - marginile sunt afisate si plotate 2 - marginile sunt afisate dar nu plotate Bine de stiut: - desenele AutoCAD nu salveaza imaginea propriuzisa ci doar "calea" catre ea, imaginea trebuie sa fie pe HDD-ul calculatorului pentru a aparea in DWG - daca fisierul imagine e in acelasi folder cu DWG-ul imaginea va fi deschisa indiferent de "calea" salvata in DWG (valabil si pentru Xref uri)

LUNI, MARTIE 23

Cotare personalizata in AutoCAD


PUBLICAT DE: THEODOR L.

In aceast post voi scrie despre "capete de sageata"(arrow head) pentru cote in AutoCAD. Se presupune ca stii deja sa cotezi si ca vrei sa faci alte tipuri de sageti. Sa vedem cu ce vine vine programul:

Daca nu sunt de ajuns iata cum se creaza si folosesc cele "custom": 1. Se alege Layerul "0" curent

2. Se construieste un patrat de 1 unitate/1unitate (acesta va fi conturul in care se va incadra noul capat de sageata)

3. Se deseneaza in interiorul patratului noul capat de sageata (cu rosu in imaginea de mai jos) 4. Se selecteaza elementele varfului de sageata (fara patrat) si se alege din bara Properties: Color "ByBlock" si Linetype "ByBlock" 5. Cu sageata selectata se tasteaza B urmat de ENTER (pentru a deschide fereastra: Block Definition) 6. Se da un nume block-ului, se alege Base Point in varful sagetii si se apasa OK

7. Pentru a folosi noul capat de sageata intr-un stil de cotare se va selecta din: Dimension Style Manager - Modify Dimension Style Symbols and Arrows - Arrowheads - User Arrow si apoi in noua fereastra deschisa (Select Custom Arrow Block) se va alege block-ul nou creat

Cand se concepe un nou capat de sageata se va tine cont de urmatoarele: - trebuie incadrat in patratul de 1/1 unitati (are rol de cadru virtual, nu va fi selectat sau folosit) - base point pentru block se va alege varful sagetii (vezi schita de mai sus) - se contruieste capatul din partea dreapta a cotei (programul roteste singur pentru stanga) - linia de cotare va incepe de la mijlocul laturii din stanga a patratului de incadrare (vezi schita de mai sus) - blockul se creeaza pe layerul 0 cu Color: ByBlock si Linetype: ByBlock Daca totul a mers bine o cota din exemplu va arata asa:

Concluzie: - sagetile de cota "custom" sunt de fapt block-uri create dupa anumite reguli - acestea se folosesc selectandu-le din stilul de cotare

MIERCURI, MARTIE 18

TRIM, EXTEND si cateva surprize


PUBLICAT DE: THEODOR L.

TRIM = taiere EXTEND = extindere, lungire... sau ceva de genul TRIM si EXTEND sunt printre cele mai vechi comenzi AutoCAD si sunt printre primele comenzi de editare care se invata. Cele doua sunt complementare si devin atat de frecvente in utilizare incat lucrul fara ele pare aproape imposibil. In afara de varianta "clasica" exista cateva variante si optiuni mai mult sau mai putin cunoscute. Sa vedem cateva... Comanda clasica arata asa:

1.

TRIM - apelarea comenzii (din bara Modify sau de la tastatura) 1' daca comanda e apelata de la tastatura apare aici un ENTER

2.

SELECT - selectarea liniilor(obiectelor) pana la care vrem sa

taiem/extindem

3. 4. 5.

ENTER - pentru a anunta programul ca am terminat de selectat SELECT - selectarea liniilor(obiectelor) pe care vrem sa le taiem/extindem ENTER (ESC) - pentru a iesi din comanda

dar...

selectia de la punctul 4 se poate face si cu fereastra nu numai cu click pe fiecare obiect (incepand cu ACAD 2006) cu varianta clasica a comenzii se pot TRIM-ui si hasuri (incepand cu ACAD 2006) ENTER fara a mai face punctul 2 - transforma toate liniile din desen in posibile obiecte pana la care putem sa taiem/extindem si in acelasi timp in posibile obiecte pe care putem sa le taiem/extindem (comanda devinde mult mai rapida si simpla) SHIFT apasat in timpul selectiei la punctului 4 - transforma TRIM in EXTEND si invers fara a mai iesi din comanda, comanda ramane "inversata" cat timp se selecteaza cu SHIFT apasat la punctul 2 si 4 se poate selecta in modul FENCE cu F urmat e ENTER (aici e mult mai usor de aratat decat de explicat... practic selectezi obiectele trecand cu o linie prin ele, era foarte utila inainte sa apara in 2006 selectia cu fereastra pentru TRIM si EXTEND dar si acum poti selecta mai usor in anumite situatii in care selectia cu fereastra e incomoda)

se poate face UNDO in orice moment al selectiilor de la punctele 2 si 4 cu U urmat de ENTER oricand in timpul selectiei, avantajul e ca in loc sa iei toata comanda de la inceput pentru un click dat prost poti anula doar ultima taiere/extindere si reface selectia fara a iesi din comanda

Si ca si cum nu ar fi de ajuns mai exista alte cateva optiuni ca Edge, Project si chiar Erase tot la comenzile TRIM si EXTEND dar despre ele alta data... BONUS: comanda EXTRIM din Express Tools care taie toate liniile(obiectele) care se afla de o parte sau alta a unei linii alese de noi 1. EXTRIM - apelare comanda tastatura 2. ENTER 3. SELECT - se selecteaza linia/obiectul pana la care se va taia (se poate selecta si o polilinie inchisa sau un cerc) 4. CLICK in partea in care doriti sa se taie

DUMINIC, MARTIE 8

Unitati de masura in AutoCAD - Partea I


PUBLICAT DE: THEODOR L.

Am observat ca, alaturi de Layouturi, unitatile de masura si mai ales scara de desenare, sunt printre cele mai confuze si incomplet cunoscute concepte de baza ale AutoCAD-uli. Poate pentru ca sunt totdeauna explicate la inceputul cartilor in paginile peste care toata lumea sare ca sa ajunga mai repede la comanda LINE sau poate pentru ca, desi in realitate sunt cat se poate de evidente, pe calculator par mult mai incurcate. Voi incerca pe parcursul a doua postari sa clarific putin felul in care AutoCAD-ul interpreteaza si foloseste unitatile de masura. Imaginile sunt din versiunea 2006 dar ideea e usor de urmarit si

in alte versiuni.

Despre unitati de masura, standarde si AutoCAD


Pe lume unitatile de masura sunt multe si variate... pe noi ne intereseaza deocamdata unitatile de masura pentru lungime, suprafata, volum si unghiuri. Exista, doua standarde de larga circulatie: Metric si Imperial, reglementate de ISO respectiv ANSI*. Metric masoara in milimetru, metru, metru patrat, metru cub etc. Imperial masoara in inch, foot, square foot etc. Pentru standardul Metric o lungime de trei metri a unei linii va arata asa: L=3m =300cm =3000mm =0.003km Aceeasi lungime de linie va arata in standardul Imperial asa: L= 118.11" = 9' 10 1/8" =9'-10.11" de remarcat nu numai ca sunt alte valori dar si ca arata altfel cu fractii liniute ghilimele apostrofuri si altele :) AutoCAD-ul este pregatit pentru ambele standarde. Romania foloseste standardul Metric (ISO) deci retinem ca: ISO=Metric si ANSI=Imperial ISO e bun ANSI nu e bun Pentru a lucra bine in modul Metric ar fi bine sa:

1. Il anuntam pe AutoCAD de cate ori incepem un desen ca


urmeaza sa desenam in standard Metric pentru a ne pregati hasurile si tipurile de linie scalate pentru Metric (acadiso.pat si acadiso.lin)

Putem face asta in mai multe feluri iata cateva: cu fereastra de dialog: Create New Drawing Start from Scrach Metric Aceasta este practic o fereastra de dialog (o sa-i spunem pe viitor Startup dialog box) care poate aparea la inceputul fiecarui desen si ne va intreba daca vrem sa desenam in Metric sau Imperial. Activarea ei la incepera desenelor noi este controlata de Tools-Options-SystemStartup.

Selectand template-ul (sablonul daca ai avut ghinionul sa inveti AutoCAD in limba romana) acadiso.dwt** din: New Select template acadiso.dwt daca Startup dialog box este dezactivata (vezi mai sus cum se activeaza/dezactiveaza daca deja ai uitat)

Folosind variabila de sistem MEASUREINIT*** MEASUREINIT (masura initiala ca sa o tinem minte) poate avea doua valori 0 pentru Imperial (ANSI) 1 pentru Metric (ISO) Aceasta variabila controleaza standardul in care AutoCAD va deschide un desen nou (ISO sau ANSI) astfel odata setata la valoarea 1 toate desenele noi vor fi create pentru ISO adica va fi preselectat acadiso.dwt adica va incarca hasuri si tipuri de linii pentru Metric. E bine de stiut ca pe langa MEASUREINIT care controleaza practic standardul in care AutoCAD va incepe toate desenele noi mai exista si MEASUREMENT care controleaza standardul desenului curent. MEASUREMENT are aceleasi valori 0 si 1 care inseamna aceleasi lucruri ANSI si ISO doar de data asta pentru desenul care este deschis si activ in momentul apelarii variabilei. De cate ori deschid un desen venit de cine stie unde pentru cine stie ce operatie verific valoarea lui MEASUREMENT daca desenul provine dintr-o tara cu sistem metric dar MEASUREMENT are valoarea 0 stiu din start ca cel care a desenat nu e chiar expert si foarte probabil o sa am si alte probleme cu desenul respectiv.

2. Ne asiguram ca AutoCAD va afisa unitatile de masura asa cum


trebuie Si asta putem face in mai multe feluri dar o sa ma limitez la unul ca altfel nu mai termin postarea asta niciodata

Folosim comanda: Format - Units si ne asiguram ca fereastra care se deschide arata ca in imaginea de mai jos

De fapt nu facem altceva decat sa alegem Decimal pentru distante/lungimi pentru ca dimensiunile noastre sunt in sistem zecimal, apoi alegem precizia de afisare la doua zecimale (aici putem alege cate vrem AutoCADul oricum calculeaza tot timpul cu 16 zecimale) apoi alegem ca ungiurile sa fie masurate in Decimal Degrees ca asa le masuram noi (nu Grads care e si el in lista), alegem si pentru ungiuri precizia de afisare iar in final alegem unitatea in care sa fie scalat eventualul cotinut pe care il aducem din alte desene (o sa revin la setarea aceasta in Unitati de masura in AutoCAD Partea II). Mai sunt acolo doua setari legate de unghiuri in ce directie sunt zero grade si in ce sens se masoara unghiurile AutoCAD-ul vine setat cu 0 grade spre EST (dreapta) si masurarea ungiurilor in sens contrar acelor de ceasornic e bine de tinut minte si de lasat asa. Daca vreodata e nevoie si acestea se pot schimba. Odata facute aceste setari AutoCAD-ul le va tine minte pana intram din nou sa le modificam. Deci este suficient sa facem

aceste setari odata pentru toate viitoarele utilizari ale programului. Putem oricand schimba precizia de afisare sau modul de afisare al unitatilor dar in cele mai multe cazuri setarile din imaginea de mai sus sunt suficiente pentru userul din Romania sau oricare alta tara care foloseste sistemul Metric.

Concluzie:
Pentru a lucra in modul Metric trebuie sa ne asiguram ca si AutoCAD-ul stie ca vrem asta. 1. Incepem orice desen nou in modul Metric (cu acadiso.dwt) 2. Setam afisarea unitatilor in sistem zecimal (conamda UNITS)

Daca aceste doua conditii sunt indeplinite atunci putem trece linistiti la Unitati de masura in AutoCAD Partea II unde vom discuta despre scara de desenare si scara de plotare relatia dintre AutoCAD si subunitatile de masura si vom vedea ce trebuie facut ca sa eliminam toate confuziile legate de masurarea distantelor, cotare, plotarea desenelor la diferite scari, scalarea desenelor cu diferiti factori , inserarea desenelor cu alta scara si altele

Note: * - problema standardizarii si reglementarii e de fapt mai stufoasa dar e bine de retinut ca ISO (International Organization for Standardization) se ocupa de standardul Metric si ANSI (American National Standards Institute) se ocupa de o versiune a standardului Imperial. Pentru detalii pe subiect si o prezentare

mai exacta incerca: http://en.wikipedia.org/wiki/Metric_units respectiv http://en.wikipedia.org/wiki/Imperial_units dar nu acum ** - fratele cel rau al lui acadiso.dwt este acad.dwt template-ul pentru ANSI care are ca rezultat folosirea hasurilor si tipurilor de linie scalate ANSI (acad.pat si acad.lin) ***- daca nu stii nimic despre variabilele de sistem poti sa citesti postarea despre ele daca postarea respectiva nu exista sigur va aparea pe viitor.

SMBT, MARTIE 14

Unitati de masura in AutoCAD-Partea II


PUBLICAT DE: THEODOR L.

A venit timpul sa scriu din nou despre unitati de masura. Sa fiu sincer as mai fi amanat putin dar ieri au venit 3 desene care m-au convins sa scriu cat mai repede. Erau trei DWG-uri cu planuri ale aceleiasi cladiri care trebuiau "unite" intr-un singur plan si pregatite Layouturi pentru plotarea la diferite scari. In cele trei DWG-uri problema scarii si a unitatilor de masura era atat de diferit si de... prost inteleasa incat am stat o ora numai sa le aduc pe toate la un numitor comunam pierdut 3 ore si m-am enervat teribil. Sa trecem la subiect... In Partea I am aratat ca AutoCAD-ul este pregatit pentru multe feluri de a masura si desena si ca in primul rand trebuie sa in anuntam ca desenam in standard Metric. Cu alte cuvinte ne asiguram ca nu ne arata ghilimele si apostrofuri cand masuram o distanta si sa ne mai asiguram ca foloseste hasurile si tipurile de linie pentru standardul Metric(ISO). In Partea II voi discuta despre scara de desenare si plotare si depre cum se folosesc in AutoCAD unitatile de masura metrice.

Scara desenului - definitii generale


Scara unui desen reprezinta raportul intre o dimensiune in desen (pe hartie) si aceeasi dimensiune in realitate. Scara desenului este strict un raport... o proportie, intre doua dimensiuni masurate cu aceeasi unitate de masura. Scara se reprezinta numeric printr-un numar, urmat de doua puncte urmat de alt numar: 1 : 100 | 1 : 50 | 20 : 1 primul numar reprezinta distanta masurata pe hartie al doilea numar reprezinta de cate ori este mai mare sau mai mica aceeasi distanta in realitate. Pot folosi orice unitate de masura, cu conditia sa fie aceeasi si in desen si in realitate, asa ca voi folosi ... "lungimi de pix" pentru a exemplifica: Scara 1 : 100 inseamna ca 1 lungime de pix pe hartie va fi egala cu 100 lungimi de pix in realitate. Scara 20 : 1 inseamna ca 20 lungimi de pix pe hartie vor fi egale cu 1 lungime de pix in realitate. (scara 20 : 1 poate fi scrisa si ca 1 : 0,05... adica o lungime de pix pe hartie este egala cu 20/1=0.05 lungimi de pix in realitate... dar ca sa nu se complice treaba cu numere subunitare se prefera 20 : 1 in loc de ... 1 : 0,05) Scara de desenare a aparut evident din nevoia de a reprezenta chestii foarte mari pe suporturi mai mici fara a pierde proportiile intre elementele desenului. Scara de desenare a aparut muuuult inaintea calculatorului. Iata si un tabel de conversie a scarii exprimat in ceva mai normal... centimetri:
Scara Pe hartie In realitate

1:1 1:20 1:50 1:100 1:200 1:500 1:1000 1:10000

1cm 1cm 1cm 1cm 1cm 1cm 1cm 1cm

1cm 20cm 50cm 1m 2m 5m 10m 100m

Unitatile... si mai ales subunitatile de masura metrice in AutoCAD


Aici vine partea mai greu de inghitit: AutoCAD NU ARE UNITATI DE MASURA PREDEFINITE. Nu lucreaza in metri, centimetri, milimetri etc. AutoCAD lucreaza in unitati universale pe care le putem numi simplu UNITS. Ce reprezinta o unitate (1 UNIT) in desenul meu? Doar eu hotarasc la inceputul desenului. Poate fi 1 Metru... 1 Milimetru... sau 1 Kilometru. Tot ce trebuie sa fac e sa iau o decizie la prima linie pe care o desenez. ex.: vreau sa fac o linie care in realitate are 3 metri... daca decid sa desenez in metri scriu la lungime 3... si gata linia mea are 3 metri. Daca vrau sa desenez in centimetri scriu la lungime 300 si gata linia mea va avea 300cm... adica 3 metri, daca decid sa desenez in milimetri... scriu la lungime 3000 si am desenat aceeasi linie in milimetri. AutoCAD-ul nu stie si nici nu ma va intreba vreodata ce am decis sa fie 1 UNIT. Daca desenul ramane pe calculator tot e trebuie sa fac este, eventual, sa scriu undeva... 1 UNIT=1 Metru... sau 1 UNIT = 1 Milimetru pentru ca oricine deschide desenul meu sa stie atunci cand masoara o distanta in desen ca daca scrie acolo "3" asta inseamna 3 metri sau inseamna 3 milimetri.

Scara in AutoCAD

Presupunand ca pana aici e clar apare inrebarea: De unde toate problemele, calculele si confuziile legate de scara? Pai de fapt majoritatea apar atunci cand vrei sa printezi desenul! Acolo este cel mai intalnit loc in care AutoCAD-ul va aduce in discutie conceptul de "scara" - "Plot scale" respectiv "Viewport scale" (ar mai fi si fereastra UNITS, unde apare"Insertion scale", despre care am promis in prima parte ca voi vorbi si o sa vorbesc dar un pic mai tarziu). Revenind la "Plot Scale" si "Viewport Scale" rezolvarea este foarte simpla: IN AUTOCAD SCARA DE PLOTARE ESTE CONCEPUTA PENTRU DESNUL 1:1 IN MILIMETRI!!! Asta e tot! Daca desenezi in milimetri toate scarile din ferestrele de plotare si viewporturi se vor potrivi ca prin minune pe hartie. Sa "desenezi 1:1 in milimetri" inseamna ca la prima linie ai decis ca 1UNIT = 1mm asa ca daca linia avea in realitate 1 metru tu desenezi o linie lunga de 1000 de unitati... pentru ca ai hotarat ca "desenezi 1:1 in milimetri". Astfel printarea la scara va deveni joaca de copii indiferent la ce scara te hotarasti sa printezi... ceea ce vei selecta la scara aia vei plota... 1:100 va insemna chiar 1:100... si 1:20 va insemna chiar 1:20. Evident nimic nu te impiedica sa desenezi in Metri sau Centimetri sau chiar Kilometri... dar atunci cu siguranta vei sta sa faci tot felul de calcule si incercari ca sa printezi la scara la care vrei. Daca ai mai si inceput desenul in modul "Imperial" (cu acad.dwt in loc de acadiso.dwt) atunci chiar ca ai incurcat-o rau de tot cu scara. Iata un tabel de conversie a scarii de plotare in AutoCAD pentru desenatul in metri, unul pentru centimetri si apoi acelasi tabel pentru desenul in milimetri... decideti voi care e mai logic! Daca desenez in metri...

Vreau sa plotez la scara: 1:1 1:20 1:50 1:100 1:200 1:500 1:1000 1:10000

Trebuie sa aleg scara: 1000:1 50:1 20:1 10:1 5:1 2:1 1:1 1:10

Daca desenez in centimetri...


Vreau sa plotez la scara: 1:1 1:20 1:50 1:100 1:200 1:500 1:1000 1:10000 Trebuie sa aleg scara: 10:1 1:2 1:5 1:10 1:20 1:50 1:100 1:1000

si acum daca desenez in milimetri...


Vreau sa plotez la scara: 1:1 1:20 1:50 1:100 1:200 1:500 1:1000 1:10000 Trebuie sa aleg scara: 1:1 1:20 1:50 1:100 1:200 1:500 1:1000 1:10000

Buna practica in desenul AutoCAD

Buna practica in desenul AutoCAD este sa desenezi in milimetri (1UNIT=1mm)*! De ce?... pai pentru ca scara de ploare este gandita in milimetri, pentru ca toate blocurile cu care AutoCAD-ul vine in DesignCenter-Metric sunt facute pentru desen in milimetri, pentru ca default la "Insertion Scale" in fereastra UNITS si la "Block Unit" in fereastra "Block Definition" este Milimeters, pentru ca daca inserezi rastere la scara la care au fost desenate rasterul se va insera in milimetri**... si tot asa. Practic AutoCAD-ul desi nu pare foarte interesat de unitatile de masura pe care le alegi... e totusi "pregatit" pentru milimetri... si daca alegi altceva fara sa-i spui si lui in toate ferestrele in care trebuie te va pedepsii cum poate. Sa vezi cum e daca la tine care ai ales sa desenezi in metri, ajung desenele altor useri AutoCAD, care nici ei nu deseneaza conform cu "buna practica" in milimetri, dar au ales sa deseneze in centimetri. Sa vezi atunci cum o sa fie cand o sa vrei sa pui in acelasi desen ce ai facut tu... cu ce a facut celalalt... si sa plotezi la o anumita scara. Atunci o sa intelegi cat de simplu era daca toata lumea incepea desenul in modul metric (cu acadiso.dwt) si desena in milimetri.

De ce nu deseneaza toata lumea in milimetri?


Unul din motive este hartia... mai exact obisnuinta de a desena pe hartie. Daca vreau sa fac pe hartie un desen scara 1:100 voi desena pe hartie direct 1:100... daca vreau sa fac scara 1:50 voi desena 1:50... ca atat incape pe hartia mea. Pe calculator insa nu e asa. Pe calculator incape oricat. Pot sa desenez scara 1:1 si apoi sa scot pe hartie ce scara vreau eu, de cate ori vreau eu, cum vreau eu. Asa ca daca nu ai in spate douazaci de ani de desenat la planseta ar fi bine sa te obisnuiesti de la inceput sa desenezi 1:1. Daca ai... ar trebui sa te bucuri ca nu mai esti la planseta si sa profiti de noile posibilitati.

Un alt motiv important este cotarea. By default, programul coteaza ce vede. Daca desenez o linie de 1 metru desenand in milimetri o fac lunga de 1000 de unitati... adica 1000 de milimetri. Daca vreau sa o cotez va aparea o cota cu dimensiunea de 1000. De cele mai mute ori cotarea nu se face in milimetri asa ca pe cota nu vreau sa scrie 1000. Si atunci ce fac? Pai desenez direct in unitatile in care o sa cotez ca sa se potriveasca cand incep sa trag cotele. GRESIT! GRESIT! GRESIT! sau ma rog, nerecomndat.... E ca si cum ai avea un cal cu o sa mica si in loc sa schimbi saua ai cumpara un ponei (nu e chiar cea mai reusita analogie dar ideea conteaza). Revenind la cotele noastre, AutoCAD-ul iti ofera posibilitatea de a cota in ce vrei tu... din nou trebuie doar sa-i spui. In stilul de cotare(Dimension Style Manager) la Primary Units exista Scale Factor (da... inca un loc unde apare scara!) doar ca aici default e 1 ceea ce inseamna ca 1000 de unitati vor fi cotate cu 1000... dar daca modificam in 0,001 o sa coteze 1000 de unitati cu 1... si uite asa desi desenam in milimetri cotam in metri, daca pun acolo 0,1 o sa coteze 1000 de unitati cu 100... si uite asa am desenat in milimetri si am cotat in centimetri... si tot asa. Deci nu e nevoie sa desenez in metri ca sa cotez in metri... ba din contra... desenez in milimetri si pot oricand sa cotez in ce vreau intr-o maniera logica. Un al treilea motiv este comoditatea. In mod normal in functie de dimensiune si de obisnuinta fiecare evaluam un element real in metri sau centimetri. Pare mai comod sa si desenam asa pe calculator... pentru ca putem. De multe ori chiar este mai comod. Dar comodiatea la inceput poate costa mai tarziu... si de cele mai multe ori chiar costa! si pe tine si din pacate si pe cei care vor lucra cu desenul tau. Pfuuuh! Gata am terminat! deja ma simt mai bine... mai am concluziile

Concuzii:

AutoCAD nu are unitati de masura predefinite, noi ne alegem in ce desenam In AutoCAD "buna practica" e sa desenezi in milimetri*, din multe motive Daca totusi alegi sa desenezi in metri sau centimetri pregatestete sa faci calcule si sa sughiti mult daca dai desenul mai departe

* exceptia de la regula sunt desenele de farte mari dimensiuni (urbanism, edilitare, cadastru... etc) unde se deseneaza in metri din cauza distantelor foarte mari ** conditia este ca planul sa nu fie micsorat sau marit in procesul de scanare (scanat 1:1) P.S. - Insertion Scale in fereastra UNITS te ajuta sa inserezi desene si blockuri facute in alte unitati decat cele in care ai decis tu sa lucrezi...te rog lasa acolo milimetri indiferent in ce desenezi, e mai bine pentru toata lumea :)

VINERI, MARTIE 20

Hasuri noi in AutoCAD


PUBLICAT DE: THEODOR L.

Articolul prezinta fisierele *.pat (fisierele ce contin definitia hasurilor) si explica conceptul si cum se utilizeaza. Pentru librarii cu hasuri noi vezi sectiunea: Hasuri (sus in meniu)

Exemplele sunt pentru AutoCAD 2006 dar se pot adapta la oricare versiune. Pe scurt: Hasurile in AutoCAD sunt fisiere text editabile in Notepad cu extensia *.pat roof.pat, gravel.pat, cercuri.pat, etc.

Pentru a adauga o hasura in AutoCAD se copiaza fisierul .pat in directorul "Support": C:\Program Files\AutoCAD xxxx\Support unde AutoCAD xxxx = versiunea ta de AutoCAD Dupa ce ai copiat fisierul ".pat" in dirrectorul support hasura noua va aparea in "Hatch Pattern Palette" tab-ul "Custom"

Daca la selectarea hasurii apare mesajul: "Error in Pattern File" verifica daca:

- numele fisierului .pat e acelasi cu numele hasurii (vezi definitia hasurii mai jos pentru detalii) - ai o singura hasura in fisier - nu ai caractere nepermise in definitia hasurii - nu ai numere scrise gresit (virgula in loc de punct, o virgula in plus...etc) - nu ai linii mai lungi de 80de caractere - numele hasurii nu este mai lung de 31 de caractere - nu ai linii fara text la sfarsitul definitiei hasurii Explicatii: Hasurile AutoCAD sunt definite ca fisiere text, editabile in Notepad, si salvate cu extnsia .pat. Un astfel de fisier arata cam asa: *ANGLE,Angle steel 0, 0, 0, 0, 6.985, 5.08, -1.905 90, 0, 0, 0, 6.985, 5.08, -1.905 unde: * - este caracter obligatoriu la inceputul definitiei unei hasuri ANGLE - este numele hasurii (obligatoriu acelasi cu numele fisierului) , - separa numele hasurii de explicatiile despre hasura (optional) Angle steel - este un text explicativ despre hasura (optional) 0, 0, 0, 0, 6.985, 5.08, -1.905 90, 0, 0, 0, 6.985, 5.08, -1.905 - este definitia hasurii (evident obligatoriu) Pentru mai multe explicatii despre semnificatia numerelor din definitia hasurii si cum poti sa faci tu o hasura vezi AutoCAD Help. Versiunile mai noi au un director "Support" si in "C:\Documents and Settings\user\Application Data\Autodesk... etc" in care se afla

acadiso.pat respectiv acad.pat - fisierele cu hasurile cu care vine softul (au acelasi continut doar ca unul e pentru Metric-ISO si unul pentru Imperial-ANSI). Hasurile noi in AutoCAD se pot adauga si la sfarsitul fisierului acadiso.pat cu copy/paste la definitia hasurii. Hasurile noi adaugate vor aparea in "Hatch Pattern Palette" tab-ul "Other Predefined" dar nu incurajez modul acesta de a adauga hasuri. E mai sanatos sa adaugi hasurile una cate una ca fisiere separate in C:\Program Files\AutoCAD xxxx\Support. Acesta e si unul din motivele pentru care fisierele suport instalate odata cu programul sunt din ce in ce mai pitite :) Bonus: agoracad - hasuri librarii de hasuri cu cataloage PDF pentru previzualizare http://cben.net/ hasuri si alte utilitati SuperHatch - comanda din ExpressTools care transforma blockuri si imagini in hasuri, folosita abuziv incarca desenul si consuma resurse, dar e distractiva...

MARI, MARTIE 10

6+1 ponturi de Abecedar


PUBLICAT DE: THEODOR L.

1. Space actioneaza ca tasta Enter 2. Shift + Select deselecteaza

3. Backgroundul (fundalul) se schimba din: Options - Display - Colors - Color (! la "Window element" e selectat "Model

tab background") 4. F8 activeaza/dezactiveaza ORTO, F3 activeaza/dezactiveaza OSNAP 5. dublu click pe scroll (rotita de la mouse) este Zoom Extents (adica "zoom pe toate elementele desenului")... si asta este chiar foarte tare 6. Ctrl + Select (Shift+Space+Select in versiunile noi) selecteaza obiecte suprapuse

+
F1... este HELP

VINERI, MAI 22

Introducere in programarea AutoLISP


PUBLICAT DE: THEODOR L.

In prima postare despre AutoLISP (Introducere in AutoLISP) am vorbit despre cum putem folosi programe AutoLISP in AutoCAD fara a sti mai nimic despre programare. Articolul de astazi vorbeste despre programarea si notiunile de

baza AutoLISP. De aceasta data am apelat la cineva mai in masura sa scrie un astfel de articol si anume Robert Green care mia permis sa traduc si public pe blog o postare excelenta a sa despre introducerea in programarea AutoLISP. Articolul original in limba engleza poate fi gasit aici. Pentru a afla mai multe despre Robert Green puteti vizita site-ul sau http://www.cad-manager.com/ sau ii puteti citi articolele publicate in fiecare saptamana la Cadalyst. To Robert Green: If you somehow read this, thank you again. Note: Following article is Property of Robert Green and CADManager.com

Notiuni de baza in AutoLisp

AutoLisp este cel mai vechi limbaj de programare in AutoCAD si vei fi uimit de cate instrumente de programare gasesti pe Internet. Cu ceva cunostinte de Autolisp poti integra rutinele deja existente in propriile programe castigand astfel un control superior asupra AutoCAD-ului. Primul lucru care trebuie stiut este ca AutoLisp are doua fisiere cheie si o functie importanta care excuta diferite actiuni la pornirea AutoCAD-ului. Cele doua fisiere se numesc: ACAD.LSP si ACADDOC.LSP iar functia este S::STARTUP, acestea sunt descrise mai jos: ACAD.LSP - Acest fisier se incarca la pornirea AutoCAD-ului. Toate programele/rutinele pe care le puneti in acest fisier se vor incarca automat de fiecare data cand se lanseaza programul AutoCAD. Fisierul ACAD.LSP se afla in mod normal in directorul SUPPORT al instalarii AutoCAD. ACADDOC.LSP - acest fisier se incarca de fiecare data cand se creeaza un desen nou in AutoCAD 2000, 2000i, 2002. Orice programe sau rutine adaugate in acest fisier se vor incarca automat la inceperea fiecarui desen. A se retine ca ACAD.LSP se incarca doar la crearea primului desen si ACADDOC.LSP se va incarca la crearea urmatoarelor desene in sesiunea respectiva de lucru. In AutoCAD R14 nu este nevoie de fisierul ACADDOC.LSP

deoarece ACAD R14 nu permitea deschiderea mai multor desene in aceeasi sesiune de lucru. Fisierul ACADDOC.LSP se afla si el, in mod normal, in directorul SUPPORT al instalarii AutoCAD. functia S::STARTUP - aceasta functie se foloseste de obicei in fisierul ACADDOC.LSP (sau ACAD.LSP pentru R14) si nu face altceva decat sa ruleze comenzi pe care vrei sa le folosesti la inceperea oricarui desen nou. Aceasta functie este ideala pentru setarea variabilelor de sistem cum ar fi DIMSCALE, parametri VIEWRES, layerul curent la inceperea desenului etc. Puterea functiei S::STARTUP sta in faptul ca ruleaza automat si iti da posibilitatea sa controlezi mediul de lucru in care incepi desenele noi.

Exemple

Ce crezi ca se va intampla daca creezi un fisier ACADDOC.LSP, in directoul SUPPORT, si pui in el urmatorul text? (defun s::startup () (alert Salut!) (princ) ) Ei bine cu DEFUN nu facem altceva decat sa DEfinim o FUNctie (de aici si numele) care se numeste S:STARTUP si despre care stim deja ca va rula de fiecare data cand incepem/deschidem un desen in AUTOCAD. Continutul functiei e reprezentat de o fereastra de notificare (ALERT box) in care va scrie "Salut!" urmata de PRINC care e recomandat sa fie ultima linie a oricarui program AutoLisp. Salveaza noul fisier ACADDOC.LSP, verifica sintaxa ca sa fii sigur ca nu s-au strecurat greseli si porneste AutoCAD. Intelegi rezultatul si cum a aparut? Sa avansam putin cu exemplul incercand: (defun s::startup () (setvar textsize 0.125) (setvar dimtxt 0.125)

(princ) ) In acest exemplu setam marimea textului (textsize) si marimea textului de la cote (dimtext) la o valoare prestabilita de 0.125 (sau 1/8" daca preferati) de fiecare data cand deschidem sau incepem un desen. Motivul pentru care am folosit valori zecimale este ca nu intotdeauna desenele vor fi in sistem de coordonate arhitectural sau fractional asa ca valoarea zecimala este cel mai comun mod de a introduce date. <n.t.: articolul se adreseaza preponderent cititorilor din tari cu sistem Imperial (USA, UK, Australia) si de aceea autorul explica introducerea datelor ca numere zecimale. Pe noi nu ne deranjeaza deloc pentru ca oricum folosim sistemul zecimal> Sa continuam exemplul si sa spunem ca, de fapt, am vrea ca TEXTSIZE (marimea textului) sa fie 0.125 din valoarea DIMSCALE care exista deja in desen. Pentru a face asta ne va trebui o comanda noua numita GETVAR care ne permite sa obtinem valorile deja existente ale variabilelor (in loc sa le dam o noua valoare) si o functie de inmultire (semnul obisnuit *) ambele folosite in aceeasi secventa cod. Cu putina imaginatie va iesi urmatorul program: (defun s::startup () (setvar textsize (* 0.125 (getvar dimscale))) (setvar dimtxt 0.125) (princ) ) De retinut ca secventa de cod care atribuie o noua valoare pentru marimea textului interogheaza valoare curenta a DIMSCALE pe care o inmulteste cu 0.125 si apoi atribuie rezultatul variabilei TEXTSIZE. Ordinea in care executa operatiile aflate intre paranteze este de la interior spre interior. De asemenea de tinut minte ca fiecare paranteza deschisa trebuie apoi inchisa.

Fisiere si functii LSP

Pe masura ce incepi sa-ti scrii propriile programe devine logic sa salvezi codul in fisiere separate care pot fi editate individual. Aceste fisiere au intotdeauna extensia .LSP si se editeaza in Notepad/WordPad sau in editorul VisualLisp. Fisierel LSP pot fi salvate oriunde dar cel mai simplu si sigur e sa le salvezi tot in directorul SUPPORT. Astfel poti fi sigur ca AutoCAD va stii sa le gaseasca cand vei dori sa le folosesti. In fisierele LSP create poti pastra rutine simple de programare pe care le poti folosi de cate ori ai nevoie. O anumita functie, functia C: , iti permite sa adaugi comenzi celor deja existente in AutoCAD. Adaugand comenzi noi sau functii C:, setului de comenzi deja existent, utilizatorii le vor considera pur si simplu ca o comanda noua pe care o pot folosii. Doar tu vei stii ca de fapt ei folosesc un program facut de tine. Pe masura ce creezi propriile functii si le salvezi ca fisiere LSP va trebui sa le incarci in AutoCAD pentru a te asigra ca pot fi folosite. Odata verificata integritatea codului functiile pot fi adaugate in ACAD.LSP depre care am vorbit.

Un exemplu concret.

Imi plac scurtaturile comenzilor din taste precum L pentru line sau E pentru erase. Acum ceva timp am vrut sa creez o comanda numita FZ care imi va face de fiecare data fillet cu raza zero (pentru colturi nerotunjite) dar fara sa lase zero ca valoare setata pentru raza de fillet la urmatoarele utilizari ale comenzii. <n.t.: in versiunile mai noi Fillet cu Shift apasat are acum acest efect> Prin urmare programul scris de mine ar trebui sa faca urmatoarele: sa tina minte ultima raza de fillet (stocata in variabila de sistem FILLETRAD) sa seteze noua raza de fillet la zero

sa ruleze comanda FILLET si sa ma lase sa selectez obiectele sa seteze raza de fillet inapoi la cat era inainte

Am codat aceasta functie in felul urmator: (defun c:fz () ; line 1 (setq old_radius (getvar filletrad)) ; line 2 (setvar filletrad 0) ; line 3 (command .fillet pause pause) ; line 4 (setvar filletrad old_radius) ; line 5 ) ; line 6 Explicatia exemplului In exemplul de mai sus am adaugat comentarii la sfarsitul liniilor de cod pentru a-i da fiecarei linii cate un numar. Veti observa ca fiecare comentariu e precedat de semnul punct si virgula al caurui efect este ca interpretorul AutoLISP ignora tot ce se afla dupa el. Aceasta posibilitate de a comenta iti da posibiltatea sa pastrezi diferite note despre program salvate chiar in cod. Acum sa vedem ce face fiecare linie din program: 1. Defineste o functie(comanda) numita FZ folosind instructiunea DEFUN 2. Stocheaza valoarea curenta a razei de fillet atribuind-o unei variabile numita OLD_RADIUS folosind instructiunile SETQ si GETVAR <n.t.: GETVAR pentru a afla valoarea si SETQ pentru a o atribui> 3. Seteaza raza de fillet la 0 folosind instructiunea SETVAR 4. Apeleaza comanda FILLET si apoi are doua PAUSE (pauza) pentru a astepta input de la utilizator sub forma selectiei a doua linii. De retinut ca comezile AutoCAD se scriu intre ghilimele iar instructiunea PAUSE nu. 5. Seteaza raza de fillet inapoi la valoarea initiala folosind valoarea variabilei OLD_RADIUS si instructiunea SETVAR. 6. Ultima paranteza inchide instructiunea DEFUN inceputa in linia 1

Sa testam

Acum puteti crea un fisier numit FZ.LSP care contine codul programului de mai sus si sa il salvati in directorul SUPPORT al AutoCAD-ului. Asigurati-va ca nu sunt greseli inainte de a salva fisierul. Acum deschideti AutoCAD-ul si tastati urmatoarele in CommandLine: (load fz.lsp) Odata ce programul s-a incarcat veti primi confirmarea in CommandLine sub forma textului C:FZ care este numele functiei. Puteti testa functia tastand FZ in command line. Inainte de a incerca noua comanda FZ folositi comanda fillet de cateva ori, setand alta raza decat 0, pentru a va asigura ca ultima valoare retinuta de AutoCAD este diferita de zero. Acum ar trebui sa puteti folosi comanda FILLET pentru a face operatiunea cu raza de fillet normala si comanda FZ pentru fillet cu raza zero. N-a fost asa greu nu? Daca vrei poti acum adauga instructiunea de incarcare (load "fz.lsp") in functia S::STARTUP (despre care am vorbit mai devreme) si noua comanda FZ se va incarca automat de cate ori e deschis programul AutoCAD. Incarcand comanda din S:STARTUP utilizatorii vor avea o noua comanda fara sa stie de unde vine de fapt.

Comenzile cu "-"

Anumite comenzi AutoCAD vor avea nevoie de "-" (cratima) in fata lor pentru a fi apelate in AutoLisp pentru ca in mod normal respectivele comenzi functioneaza cu ferestre de dialog. Comanda Layer este un prim exemplu pe care il puteti verifica foarte simplu tastand -LAYER in command line. Acum tastati LAYER simplu si rezultatul va fi cu totul altul, nu? Deoarece comenzile AutoCAD trec prin interpretorul AutoLISP ca input tastat comanda pentru layere va fi totdeauna apelata cu -LAYER dupa cum urmeaza: (command -layer) in loc de (command layer)

Daca nu ma credeti, puteti incerca in command line si vedeti care merge. Alte comenzi des folosite care folosesc "-" ca prefix sunt -STYLE pentru stilurile de text si -PLOT pentru a apela comanda de plotare prin AutoLISP. Aceste comenzi pot fi examinate mai departe prin simpla tastare in command line si apoi notarea succesiunii de input-uri pe care le solicita si optiunile disponibile. Aproape in toate cazurile in care comenzi AutoCAD sunt folosite in AutoLisp, va trebui sa stiti foarte bine secventa de parametri si optiuni pe care comanda respectiva le solicita respectiv ofera in command line. Daca ai mai folosit comezile respective in versiunea linie de comanda atunci stii ce ai de facut, daca nu atunci vei avea de explorat de acum incolo. Un mod simplu de a documenta comezile este copierea textelor aparute in command line folosind fereastra de text care se apeleaza cu F2 si copy/paste in Notepad.

Erori

Cand uiti sa inchizi paranteze, uiti ghlimelele sau alte parti cheie ale codului din fisierul tau LSP, vei avea probleme. Incearca sa incarci urmatoarele exemple de programe si vezi ce se intampla. (defun c:fz () (setq old_radius (getvar filletrad)) (setvar filletrad 0) (command .fillet pause pause) (setvar filletrad old_radius) ) Eroarea este aici lipsa unor ghilimele " dupa FILLETRAD in linia a doua. Ar trebui sa vedeti interpretorul AutoLisp intreband de ele. (defun c:fz () (setq old_radius (getvar filletrad)) (setvar filletrad 0) (command .fillet pause pause) (setvar filletrad old_radius)

Eroarea este aici o paranteza ) lipsa la sfarsitul programului pentru a inchide instructiunea DEFUN. Ar trebui ca interpretorul AutoLisp sa intrebe de ea. (defun c:fz () (setq old_radius (getvar filletrad)) (setvar filletrad 0) (command .filllet pause pause) (setvar filletrad old_radius) ) Eroarea aici este un L in plus in cuvantul FILLLET. Veti observa ca functia va rula dar se va opri cand va ajunge la comanda fillet.

Introducerea de date si seturi de selectie

In primele doua parti ale introducerii in programarea AutoLisp am discutat despre cum stocam valori folosind variabile, despre cum manipulam variabilele de sistem si despre cum folosim instructiunea COMMAND pentru a trimite comenzi catre AutoCAD. Acestea sunt elementele de baza pentru a scrie programe simple dar pentru programe mai flexibile va trebui sa puteti sa: cereti utilizatorilor sa introduca date (numere, texte, puncte) cereti utilizatorilor sa introduca seturi de date (folosind seturi de selectie)

filtrati baza de date a AutoCAD-ului pentru a obtine doar anumite tipuri de obiecte lucrati cu anumite puncte din obiecte (capete de linie, centru cercurilor, etc)

Comezile pe care le vom folosi pentru a obtine aceste rezultate sunt: GETREAL (pentru a obtine(GET) de la utilizator un numar REAL) GETINT (pentru a obtine de la utilizator un numar INTreg)

GETSTRING (pentru a obtine de la utilizator un anumit text)

GETPOINT (pentru a obtine de la utilizator un punct) SSGET (pentru a obtinede la utilizator un set de selectie) SSGET cu optiunea X (pentru a filtra baza de date de anumite obiecte) CAR, CADR and CADDR (pentru a desparti punctele in valori X, Y and Z)

Ca si pana acum voi folosi programe mici pentru a ilustra conceptele si apoi voi creste gradual nivelul de complexitate pentru a intelege si exemple mai avansate.

Obtinerea de valori de la utilizator

Obtinerea de valori de la utilizator este destul de directa in AutoLISP dupa cum se poate vedea in exemplele ce urmeaza: (setq var1 (getreal \nIntroduceti un numar REAL: )) (setq var2 (getint \nIntroduceti un numar INTREG: )) (setq var3 (getstring \nIntroduceti un text )) Incercati copy/paste cu aceste exemple in AutoCAD command line pentru a rula interactiv instructiunile si veti vedea imediat ce se intampla. De remarcat ca folosind instructiunea GETINIT nu puteti intoduce un numar real sau text. De asemenea se poate observa ca in command line apare un text care il informeaza pe utilizator ce informatie este asteptata de la el. Nota: Caracterul \n este in cod doar pentru ca textul pentru utilizator sa apaa pe o noua linie in command prompt si nu in continuarea liniei anterioare! Rezultatul acestor instructiuni este atribuirea valorilor introduse de utilizator variabilelor VAR1 VAR2 sau VAR3, valori care pot fi apoi folosite in alte programe. Iata un exemplu de programe pe care il puteti rula interactiv si care solicita de la utilizator o valoare, o stocheaza intr-o variabila si apoi o foloseste. (setq dimtxt_height (getreal \nInaltimea textului de cotare: )) (setvar dimtxt dimtxt_height)

Desi este un exemplu foarte simplu acesta ilustreaza perfect conceptul. Se ia o valoare de la user si se foloseste apoi in program in loc de valori fixe introduse direct in cod (vezi exemplul al doilea de sus daca nu stii ce face intructiunea SETVAR). Solicitarea si lucrul cu punctele In timp ce obtinerea de puncte de la utilizator este foarte simpla folosing urmatoarea secventa: (setq point1 (getreal \nSelectati locatia punctului: )) Lucrul cu punctele nu e asa usor deoarece punctul e definit de fapt de trei valori care trebuie separate. Punctele sunt in realitate o lista de coordonate X Y si Z puse la un loc care pot fi descompuse folosind instructiunile CAR, CADR si CADDR dupa cum urmeaza: (setq point1_x (car point1)) (setq point1_y (cadr point1)) (setq point1_z (caddr point1)) Observati ca o variabila intermediara numita POINT1 a retinut punctul in timp ce variabilele POINT1_X, POINT1_Y si POINT1_Z retin valorile coordonatelo x, y si z. Aceasta abordare a punctelor cu CAR, CADR, CADDR necesita in egala masura memorarea corecta a secventelor cat si obisnuirea cu sistemul, dar veti vedea ca va veti acomoda cu acest gen de folosire a punctelor mai repede decat credeti.

Lucrul cu seturi

Un alt aspect al programarii in AutoCAD este faptul ca AutoCAD lucreaza cu seturi de obiecte (asa numitele seturi de selectie). Utilizatorii folosesc seturi de selectie cu comenzi ca MOVE, COPY, ROTATE, ERASE, etc. Regula e ca de cate ori o comanda iti cere sa selectezi obiecte(Select objects:) inseamna ca respectiva comanda foloseste un set de selectie. Pentru a solicita seturi de selectie cu ajutorul programelor va trebui sa folositi comanda SSGET. In forma ei cea mai simpla functioneaza asa:

(setq set1 (ssget)) sau: (setq set2 (ssget \nSelectati obiectele: )) singura diferenta fiind textul adresat utilizatorului in varianta a doua. Setul de selectie rezultat va fi pastrat in variabile (SET1 sau SET2 in exemplele de mai sus) care pot fi apoi folosite impreuna cu o functie tip COMMAND. Iata un program simplu ca exemplu: (setq erase_set (ssget \nSelectati obiectele de sters: )) (command .erase erase_set ) Acest exemplu ilustreaza cum se obtine de la utilizator un set de selectie care e apoi stocat si procesat cu doar doua linii de cod. Nota: Ultima pereche de ghilimele "" este echivalentul unui ENTER care trebuie apasat in mod normal pentru a incheia comanda ERASE in AutoCAD. Mai mult despre seturi Sa zicem ca ai vrea sa faci un program care sa stearga automat toate textele dintr-un desen. Va trebui sa folosesti comanda SSGET dar nu pentru a obtine obiectele de la utilizator ci pentru a le obtine prin filtrarea obiectelor tip TEXT din desen. Exemplul de cod de mai jos arata destul de incurcat dar va trebui sa ma credeti pe cuvant ca in Autolisp standard nu exista o metoda mai buna: (setq text_set (ssget x (list (cons 0 TEXT)))) Parametrul "x" marcheaza folosirea unui filtru Parametrul "0" este indicatorul tipului de obiect (entity type flag)

Parametrul "TEXT" este tipul de obiecte pe care il selectezi

Un alt exemplu in care vei selecta doar textul aflat pe layerul ADNOTARI va arata asa: (setq text_set (ssget x (list (cons 0 TEXT) (cons 8 ADNOTARI)))) Recunosc ca sintaxa nu e chiar cea mai prietenoasa dar va veti obisnui cu ea. Acum combinam una din secventele de mai sus cu

comanda ERASE si vom avea un program care sterge automat un anumit tip de entitati din desen: (setq text_set (ssget x (list (cons 0 TEXT)))) (command .erase text_set ) Putem merge mai departe si adaugam si obiectele MTEXT pe langa cele TEXT prin simpla folosie a inca unei functii SSGET si modificarea comenzii ERASE dupa cum urmeaza: (setq text_set (ssget x (list (cons 0 TEXT)))) (setq mtext_set (ssget x (list (cons 0 MTEXT)))) (command .erase text_set mtext_set ) Dupa cum se poate vedea, in acest exemplu, am castigat control serios asupra AutoCAD-ului folosind doar cateva linii de cod. Pentru mai multe informatii despre cum sa filtrati seturi complexe de selectie puteti cauta functia SSGET in sectiunea "Developer's Help" a Help-ului din AutoCAD - veti gasi acolo destule exemple de sintaxa.