miercuri, iulie 22

AutoCAD-ul si profesia

undecided_webAm hotarat sa scriu postarea aceasta dupa ce am observat,  ieri, ca pe site-urile de joburi posturile de operator CAD au peste 700 de aplicanti si posturile de inginer/arhitect de zece ori mai putini. Evident cifrele pe care le-am vazut sunt afectate de perioada anului (iulie) si de situatia economica particulara (criza economica, criza locurilor de munca, somaj in crestere etc.) dar chiar si asa discrepanta e prea mare.
Nu ma pot abtine sa ma intreb: oare cei 600 care aplica la operator si nu la inginer/arhitect stiu doar AutoCAD?
si oare e bine?
Raspunsul vine mai jos intr-o postare despre Autocad ca mijloc pentru atingerea unui scop si despre importanta urmaririi profesiei inaintea uneltelor folosite de profesia respectiva.
Ce as sfatui pe cineva care e acum la liceu si e pasionat de calculator si Autocad?
l-as sfatui sa-si aleaga domeniul in care vrea sa lucreze cu Autocad-ul si sa se pregateasca pentru el. Daca stie si Autocad e foarte bine dar nu va fi nici pe departe suficient. Mai mult decat atat, in timp, sa stii Autocad se poate transforma din avantaj in handicap daca ramane DOAR Autocad.
Sa presupunem ca esti la liceu sau l-ai terminat si iti place sa lucrezi in AutoCAD, ai vrea sa-l inveti si mai bine si te gandesti sa dai la o facultate unde sa-l folosesti. Fie ca e Politehnica, Constructii sau Arhitectura crede-ma pe cuvant e muuult mai important sa faci tot ce poti pentru a intra la facultate, a termina cat mai bine si a deveni apoi cat mai bun in meseria respectiva decat sa inveti cat mai bine Autocad.  Pentru Autocad o sa ai tot timpul si dupa ce intri, Autocad-ul de baza se poate invata in cateva luni si dupa inca 1-2 ani de lucru, in timpul facultatii, pe proiecte concrete, inveti mai mult decat suficient ca sa-ti duci la bun sfarsit desenele de zi cu zi... mai greu e SA AI PROIECTE SI DUPA CE TERMINI! si asta ar trebui sa fie grija ta principala.
Chiar si ca meserie de sine statatoare operarea Autocad sau CAD Management-ul necesita cunostinte tehnice din domeniul in care lucrezi. Cei mai apreciati operatori si CAD Manageri sunt cei care cunosc cel mai bine domeniul in sine nu doar Autocad-ul tocmai pentru ca daca beneficiezi de training-ul potrivit poti deveni foarte eficient in AutoCAD mult mai repede decat inveti sa... proiectezi autostrazi sa zicem.
Nimic nu te impiedica ca odata terminata scoala sa devii operator CAD sau Manager CAD dar in primul rand trebuie sa fi sigur ca esti cu studiile cat de departe a fost posibil.
E important sa intelegi felul in care deciziile tale de acum iti influenteaza viitorul si e mai bine sa alegi corect acum decat peste zece ani. Daca acum gresesti mai devreme sau mai tarziu va trebui sa alegi din nou  si va deveni din ce in ce mai greu.
Revenind la subiect concluzia ar fi urmatoarea:
AutoCAD-ul e ca un bisturiu... oricine il poate tine in mana si poate invata sa-l foloseseasca, cu ceva documentare ,dar asta nu il face doctor si nici nu ii va permite vreodata sa faca operatii, asa ca daca iti place sa lucrezi cu bisturiul doreste-ti in primul rand sa fii doctor, apoi opteaza pentru chirurgie si abia dupa aceea are sens sa devii un maestru al bisturiului. Pana atunci e ok sa te joci cu el dar nu il confunda cu profesia.
Spor la invatat :)
Citeste articolul...

luni, iulie 20

Design Review 2010 – DWF, DWG, PDF etc

design_review_2010_web Design Review 2010 este un soft Autodesk gratuit si reprezinta o alternativa oferita celor care au nevoie sa deshida/corecteze/printeze proiecte create in AutoCAD fara a cumpara programul. Alaturi de DWG TrueView 2010, Design Review 2010 este gandit ca un program care sa ajute colaborarea intre cei implicati intr-un proiect (beneficiar, proiectant, executant, consultanti tehnici etc) chiar daca acestia nu detin licente AutoCAD.
Sa vedem pe scurt: cui foloseste? cum arata? si ce face? 
Design Review 2010 este de fapt cea mai recenta versiune a vechiului DWF Viewer. Asa cum spune si numele initial este un soft pentru deschis DWF-uri. In afara de deshis se mai pot adauga diferite note si printa respectivele planuri.
DWF (DesignWebFormat) este un fel de concurenta a PDFului. Un format in care se pot publica desenele ACAD si care poate fi deshis si manipulat fara a avea AutoCAD instalat. DWF-urile pot fi 2D si/sau 3D si contin un minim de informatii necesar intelegerii desenului.
Teoretic lucrurile ar functiona cam asa: proiectantul care are licenta AutoCAD face o propunere de proiect pe care o salveaza ca DWF si o trimite clientului sa o vada. Clientul care nu are AutoCAD (si nici copii care sa pirateze) descarca gratuit de la AutoDesk noul DR(DesignReview) 2010  si cu el deschide DWF-ul primit de la proiectant. Folosind instrumentele de adnotare ale programului face cateva modificari si note pe plan dupa care il trimite inapoi. La fel se intampla apoi de fiecare data cand planul respectiv trebuie sa ajunga la cineva care nu are AutoCAD dar care trebuie sa intervina sau sa corecteze diferite elemente ale proiectului. Chiar si cand vine vorba de printare daca cei implicati aleg sa printeze la un centru de copiere fara licenta AutoCAD ei pot face asta folosind noul DR2010.
Buuuun, asta e teoria! Ce se intampla in realitate? Greu de spus, in Romania cred ca cu totul altceva pentru ca se pirateaza la greu si pentru ca PDF-ul e muuult mai popular decat DWF-ul asa ca daca vrei sa-i trimiti cuiva, care nu are AutoCAD, un plan pentru revizuire foarte probabil o sa trimiti un PDF si o sa trimita inapoi PDF-ul mazgalit si apoi scanat.
Dar sa revenim la subiect si anume: Design Review 2010.
dr2010home_webInterfata: Ultima versiune DR introduce o combinatie intre  interfata tip Ribbon si ToolPalettes alaturandu-se astfel celorlalte produse lansate de Autodesk in ultimii doi ani. E foarte bine venita pentru ca ofera acces usor la aproape toate instrumentele programului, de altfel nu prea multe. Dezavantaje: poate ajunge sa ocupe 2/3 din ecran si la prima vedere pare cam confuza combinatia intre ribbon, toolbars si toolpalets inghesuite toate pe ecran.
Formate: Asa cum am spus formatul pentru care a fost facut este DWF dar incepand cu aceasta versiune DR poate deshide si PDF si DWG (DWG doar cu TrueView instalat si nu deshide chiar DWG ci face o conversie a acestuia in DWF)
Printare: DR ofera cam toate facilitatile de printare uzuale si chiar una in plus avand o optiune de printare a desenului pe mai multe pagini mai mici. Practic daca vreau sa printez un A1 pe opt foi A4 DR face toata aranjarea fara a mai fi nevoie sa fac eu layout-uri separate sau alte artificii.
dr2010mm_web Adnotare: Odata deschis desenul in DR poti sa mazgalesti peste el cum vrei… sageti, norisori, texte, linii, mesaje si orice iti trece prin cap. Dezavantaje: cred ca e mult mai simplu cu markerul pe hartie. Avantaje: pe hartie nu ai UNDO si DELETE
dr2010tools_web 2D/3D: DR se descurca la fel de bine cu DWF-uri 2D si 3D. Are toate instrumentele de navigare necesare, poate interpreta “saved VIEWS”, poate face sectiuni si are diferite tipuri de vizualizare a modelului (shaded, whireframe etc).
Diverse: DR recunoaste: layere, proprietati ale obiectelor, dimensiuni (are propriile instrumente de masurare inclusiv pentru suprafete), sheet sets, layouts
DR poate deshide PDFuri si le poate combina intr-un singur document.
DR poate deschide DWG si DXF daca e instalat impreuna cu DWG True View. In realitate converteste respectivele fisiere in DWF-uri si deschide rezultatul… dar tot e ceva.
Si cu asta gata. Pentru cineva care a folosit foarte rar  formatul DWF cred ca m-am descurcat destul de bine :)
In sectiunea de Download avem un link direct catre pagina AutoDesk de unde se descarca gratuit Design Review 2010.
Citeste articolul...

marți, iulie 14

Buna practica in AutoCAD

Afara ba sunt 35 de grade si umezeala ca la tropice, ba ploua cu nemiluita cu tunete si fulgere. E aproape imposibil sa treci peste zi fara cofeina si cheful de munca lipseste cu desavarsire. Moment bun sa mai scriu ceva pe blog. Oarecum ironic subiectul este "Buna practica in AutoCAD" (asta doar pentru ca aveam pregatita postarea de mai demult si o sa termin repede ca sa ma intorc la stat degeaba).
Buna practica in lucrul cu AutoCAD e un concept destul de tulbure. In mare cam toti utilizatorii care au trecut de la incepator la mediu sunt convinsi ca sunt deja avansati si buna practica se confunda cu modul lor de lucru. De aici reticenta la standarde (cu exceptia celor auto-impuse) si convingerea ca altfel nu se poate sau nu e bine.
Daca te regasesti in categoria de mai sus postarea aceasta nu este pentru tine pentru ca stiu ca tu deja lucrezi perfect. Daca insa nu esti convins ca lucrezi perfect si in general esti curios sa vezi si cum fac altii iata mai jos cateva directii de "buna practica" pe care le-am invatat/citit/descoperit in anii de lucru:
Nimic nu e obligatoriu ci mai degraba, sub deviza:
Ar fi bine sa...
  • incepem orice desen nou in mod metric adica cu acadiso.dwt (pentru RO – aici detalii)
  • folosim cote asociative
  • modificam stilul de cotare din "Use overall scale of:" (Modifiy Dimension Style - Fit) aceasta scaleaza proportional toate elementele cotei fara a mai fi nevoie sa le modificam noi pe fiecare in parte
  • folosim un stil de text separat pentru cote cu Height=0 in Text Style pentru ca asa cota va folosi inaltimea de text din proprietatile cotei nu din stilul de text
  • folosim dim prefix, dim suffix si formulele <>, \P si \X pentru a adauga text inainte dupa sau sub textul initial al cotei (vezi aici detalii)
  • nu explodam cotele
  • nu modificam dimensiunea aratata de cote din Properties – TextOverride
  • folosim SingleLineText - TEXT (DTEXT) pentru texte pe o linie si MultiLineText - MTEXT pentru texte pe mai multe linii
  • folsim superscript si unicode pentru diferite simboluri in text, numere la putere, fractii, grade etc. (nu combinatii de linii, cercuri, text, numere mici si mari etc.)
  • folosim doar daca e absolut necesar alt tip de Justify la TEXT decat cel prestabilit (Left)
  • folosim doar daca e absolut necesar alt Width factor la TEXT decat cel prestabilit (1)
  • folosim inaltimi de text numere naturale si daca se poate cat mai aproape de standarde
  • folosim pe cat posibil fonturi native autocad *.shx (macar pana inainte de plotare)
  • nu explodam texte MTEXT
  • folosim in 99.9% din cazuri hasuri asociative
  • nu explodam hasuri mai ales daca sunt pe suprafete mari
  • cream blockuri pe Layerul 0 din obiecte cu Color-ByBlock si Linetype-ByBlock
  • folosim pe cat posibil polylinii in loc de linii
  • desenam pe cat posibil cu Color-ByLayer si Linetype-ByLayer (mai bine mai multe layere decat mai putine)
  • desenam 1:1 in milimetri sau 1:1 in metri (metri pentru planurile de mari dimensiuni - urbanism, edilitare, drumuri, cadastru etc)
  • plotam din layout - paper space (uite aici o metoda simpla si rapida)
  • desenam in layout - paper space elementele ce tin doar de plotare (ex: cartus, chenar)
Recomandari generale:
  • pastrarea unui stil consistent si unitar de reprezentare in desene (STANDARDIZARE) – arata mai bine, se verifica mai usor, se castiga timp
  • salvarea DWG-urilor ca versiune mai veche (ex:2004)
    daca nu contin elemente aparute in versiunile noi (ex:dynamic blocks) – pentru ca nu se stie unde o sa ajunga si cand ai nevoie sa-l deshizi pe alt calculator
Cam atat mi-am adus aminte acum. Cele de mai sus nu sunt inventia mea ci mi-au fost si mie sugerate/impuse/ recomandate de sefi/clienti, si/sau le-am citit la randul meu in carti/forumuri/bloguri/standarde. Despre o parte din ele am mai scris pe blog si despre o parte voi scrie de acum incolo asa ca daca cele de mai sus ti se par pertinente si nu ai inteles mai nimic din fraza pe care o citesti chiar acum urmareste in continuare agoracad.blogspot.com
Multumesc si toropeala placuta :)
Citeste articolul...

marți, iunie 16

Variabile de sistem in AutoCAD

Acest articol reprezinta o introducere in subiect si raspunde urmatoarelor intrebari:

Ce sunt variabilele de system in AutoCAD?
Ce fac variabilele de system in AutoCAD?
Cum se folosesc variabilele de system in AutoCAD?
Pentru diferite variabile de sistem explicate urmareste seria de articole "Sapte variabile pe saptamana" care apare in fiecare miercuri (incepand de saptamana viitoare).
Ce sunt variabilele de sistem in AutoCAD?
Variabilele de sistem sunt locul in care AutoCAD pune, ca sa tina minte, diferite valori. Ele se prezinta sub forma unui nume (ex: LTSCALE, DWGNAME, GRIPS) care are atribuite valori (ex: LTSCALE=50, DWGNAME="plan.dwg", GRIPS=1).
In functie de acces variabilele de system sunt de doua feluri:
read-only - adica le putem vedea dar nu le putem schimba (ex:ACADVER care ne arata ce versiune de AutoCAD folosim)
read-write - adica le putem vedea si le putem schimba valoarea (ex:ORTOMODE care controleaza daca modul ORTO e pornit sau oprit). In articol vom vorbi doar despre cele pe care le putem modifica.
Ce fac variabilele de sistem in AutoCAD?
Variabilele de sistem reprezinta, alaturi de ferestrele de dialog si meniuri, principalele moduri de interactiune cu programul. Ele controleaza:
- mediul de lucru
- modul in care actioneaza anumite comenzi
- modul de afisare
- multe multe altele
In AutoCAD, in functie de versiune, sunt cateva sute de variabile de sistem, evident imposibil de memorat/invatat. Ce conteaza este ca ele exista si se pot retine cele de uz curent. Practic ne putem gandi la ele ca la comenzi, evident nu stii toate comenzile din AutoCAD dar le stii/inveti pe cele de care ai nevoie.
De fapt, fara sa stim, umblam cu variabile de sistem de fiecare data cand lucram in AutoCAD doar ca nu le accesam direct ci prin intermediul meniurilor, ferestrelor sau raspunsurilor din linia de comanda.
Ex: - cand alegem din Dimension Style - Primary Units - Precision - 0.00 ca sa avem doua zecimale la cote nu facem altceva decat sa setam variabila de sistem DIMDEC la valoarea 2 
      - cand introducem distanta de OFFSET la 50 nu facem altceva decat sa setam variabila OFFSETDIST la valoarea 50
In multe cazuri e mai simplu sa obtinem rezultatul dorit folosind ferestrele de dialog sau comenzile in forma in care sunt dar exista situatii in care controlul anumitor parametri folosind direct variabila de sistem e mai usor sau chiar e singura varianta. Pentru aceste cazuri trebuie sa stim:
Cum se folosesc variabilele de sistem in AutoCAD?
Asa cum am aratat mai sus multe din actiunile noastre in AutoCAD au ca rezultat schimbarea valorilor unor variabile fie ca vrem fie ca nu.
Dar cum schimbam valorea unei variabile, direct, fara a folosi o fereastra de dialog sau un meniu?
Cel mai simplu este sa tastam numele variabilei in linia de comanda (command line) urmat Enter apoi noua valoare si iar Enter.
Ex: Daca tastam SAVETIME urmat de Enter, pentru a modifica variabila cu acelasi nume, rezultatul va arata asa:
Enter new value for SAVETIME <10>:
unde SAVETIME e numele variabilei pe care vrem sa o schimbam, iar intre <> avem valoarea curenta (in cazul de fata 10). Tot ce ramane e sa tastez noua valoare si apoi Enter. Variabila din exeplu – SAVETIME - controleaza intervalul de timp la care se face auto-save (salvare automata) iar numarul(valoarea) reprezita minute.
Concluzie:
numele variabilei - Enter
valoarea noua – Enter
si gata am schimbat o variabila de sistem
Bine de stiut:
  • cu variabilele nu e chiar de joaca, e recomandat sa umblam la ele doar cand stim exact ce facem
  • in functie de locul in care sunt memorate variabilele de sistem in AutoCAD se impart in: 
      - variabile stocate permanent in registrii (odata setate raman valabile pentru toate desenele pana la o noua setare) 
      - variabile stocate permanent in DWG (sunt stocate in fiecare DWG si au in fiecare desen valorile atribuite in desenul respectiv) 
      - variabile stocate temporar ( variabile pe care, indiferent daca au fost sau nu modificate in timpul sesiuni de lucru, programul le va reseta  la inceperea fiecarei sesiuni noi atribuindu-le valorile prestabilite <default>
    ex: FILEDIA cu valoarea 1)
  • in functie de parametrul pe care il controleaza fiecare variabila de sistem AutoCAD poate avea doar anumite valori sau tipuri de valori, pentru a folosi o variabila trebuie sa stim foarte bine cum se numeste, ce valori poate lua, ce inseamna fiecare valoare
  • variabilele de system AutoCAD se pot schimba si cu comanda SETVAR sau cu comanda din ExpressTools SYSVDLG.
    Avantajul la SYSVDLG este ca deschide o fereastra frumoasa de dialog cu toate variabilele si pentru fiecare variabila ne arata valoarea curenta, valoarea initiala si valoarea noua pe care o atribuim precum si explicatii despre ce face respectiva variabla de sistem , unde e salvata, ce tip de date retine si ce efect au valorile atribuite (vezi imaginea mai jos)
  • in AutoLisp variabilele se manipuleaza cu ajutorul functiilor getvar respectiv setvar
systemvariables
Citeste articolul...

vineri, mai 22

Introducere in programarea AutoLISP

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 mi-a 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 CAD-Manager.com
quotes_web

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.quotes_web

Acesta a fost articolul lui Robert Green despre primii pasi in AutoLISP. Tradus de Theodor L. pentru agoracad.blogspot
Codare placuta!
Citeste articolul...

miercuri, mai 20

DWG TrueView 2010 – bun si gratis

DWG TrueView 2010 este solutia gratuita de la AutoDesk pentru deschiderea, printarea si conversia intre versiuni a desenelor DWG salvate nativ de AutoCAD si fratii lui specializati (Architecture, Mechanical, Electrical, Map etc).
DWG TrueView 2010 are la origini doua trueview2010softuri publicate de AutoDesk prin 2005 - DWGTrueConvert si DWGTrueView. Intre timp cele doua s-au unit (cred ca anul trecut) si au format un produs nou care include ambele functiuni majore (vizualizare si conversie).
Dar sa vedem mai exact ce stie sa faca:
  • deschide orice DWG inclusiv cele create cu ACAD2010
  • printeaza DWG-uri (inclusiv Layouturi)
  • exporta PDF si DWF
  • ofera cateva posibilitati de interactiune cu desenele
  • coverteste desenele format DWG intre diferitele generatii
Interfata este tip “ribbon” si ofera acces direct la aproape toate instrumentele (care oricum nu sunt foarte multe).
DWGTrueView_ribbon01
DWGTrueView_ribbon02
Navigarea, layerele, masurarea si OSNAP-ul functioneaza ca in AutoCAD.
Scopul softului este sa usureze cooperarea intre toate partile implicate intr-un proiect fara a avea neaparat AutoCAD instalat si/sau fara a avea tot timpul ultima versiune.
Avantaje:
  • este gratuit
  • este produs de AutoDesk deci posibiliatea erorilor in citirea si conversia DWG-urilor este teoretic mai mica
  • face conversia intre orice versiuni de DWG (ex: poti sa ai instalat ACAD 2006 si sa deschizi oricand un desen salvat cu ACAD 2008)
  • vede si poate printa Layout-urile din desen cu setarile salvate (nu mai e nevoie de AutoCAD pentru a printa DWG-uri)
  • publica PDF si DWF
  • pot fi facute masutratori precise in desen cu instrumentele Measure si OSNAP activat (distanta, unghi, raza, suprafata, volum)
In sectiunea noastra de Download este un link direct catre pagina Autodesk de unde se poate descarca.
Citeste articolul...

marți, mai 12

AutoCAD 2010 – mai multe noutati, o alta concluzie

In prima postare dedicata ACAD 2010 (Ce e nou in AutoCAD 2010?) am descris pe scurt cateva noutati:AutoCAD2010_web
  • desen parametrizat
  • dialoguri noi de configurare la instalare
  • butonul Application Menu
  • modelare 3D imbunatatita
  • optiuni si comenzi noi 2D
Concluzia era destul de nefericita:
- AutoDesk continua sa complice lucrurile care functioneaza bine asa cum sunt
- AutoCAD consuma din ce in ce mai multe resurse pentru aceleasi operatiuni
- upgrade la AutoCAD 2010 peste 2-3 ani cand versiunile curente vor fi atat de incurcate incat 2010 va parea simpla.
Ei bine, o luna si mai multe ore de lucru mai tarziu, ma vad nevoit retractez, nu complet, dar in mare parte cele spuse :)
In afara de cele deja descrise AutoCAD 2010 are multe alte functii noi sau imbunatatite, si nu prea sunt inutile deloc:
  • infamul “Ribbon” - nu e chiar atat de rau in AutoCAD2010 (eu urasc interfata din principiu, lucrand ribbon_modifyaproape exclusiv cu tatstatura consider ca majoritatea toolbar-urilor aruncate pe ecran nu fac decat sa ia din spatiu de lucru) noul Ribbon insa este mai “destept”, mai interactiv si mai bine structurat decat in ACAD 2009 pentru ca acum are 3 randuri de Iconuri permitand expunerea mai multor tooluri pe acelasi spatiu de ecran, este “context-sensitive” (mare mare lucru) pentru ca in functie de ce faci sau selectezi in desen ribbon-ul se adapteaza aratand comenzile dedicate respectivului(ei) obiect/actiune, manipularea pannel-urilor este mai ergonomica si in cele din urma, una din functiile mele preferate, a fost adaugat un tab pentru Expess Tools (pe cat de neglijate pe atat de puternice, poate odata cu noul tab vor fi aduse putin mai mult in atentia userilor)
  • PDF import/export - colaborarea intre Adobe si AutoDesk in ce priveste implementarea formatului PDF in AutoCAD este acum mai potenta ca niciodata, AutoCAD PDF-Iconexporta (publish) nativ in format PDF cu layere si “line merge” si daca acest lucru se putea face si inainte cu Adobe Acrobat Pro acum AutoCAD 2010 importa fisiere PDF ca “Underlay”, adica le atasezi ca pe o poza si lucrezi peste, iar daca PDF-ul a fost exportat cu linii si layere ACAD 2010 ofera SNAP la liniile respective si control separat asupra layerelor din PDF acesta devenind astfel un fel de format hibrid cu care se poate lucra mult mai eficient decat inainte in AutoCAD
  • dynamic blocks - se bucura si ele de imbunatatiri importante (pe cine nu stie ce sunt “dynamic blocks” il dynamic_blockinvit sa-mi urmareasca blogul in continuare pentru ca in viitorul apropiat le voi dedica cateva posturi), parametrizarea blocurilor dinamice care exista inca din ACAD 2006 este acum mai bine integrata datorita functiilor parametrice introduse in desenul curent odata cu ACAD 2010, apare posibilitatea de a testa blockul in timpul lucrului in block editor – test block (super util si cine a folosit/construit dynamic blocks stie ca asa e), e introdusa posibiliatea de a transforma anumite elemente din block, folosite pentru parametrizarea blockului, in “construction lines” care nu apar in desen dar apar in block editor si pot fi folosite ca referinte pentru diferite “constains” (din nou super tare), sunt introduse asa numitele “block tables” care usureaza mult introducerea de parametri si ofera mai mult control asupra parametrului Lookup si nu in ultimul rand “contextual ribbon” se dovedeste foarte utila pentru ca evident editarea blockurilor dinamice e dependenta de toolbars, toolpalettes sau orice loc care sa cuprinda cat mai multe iconuri de actiuni si parametri asa ca in ribbon isi gasesc locul cat se poate de bine si apar exact cand ai nevoie de ele
  • modelarea 3D in AutoCAD 2010 - castiga mult in3D_Gizmo flexibiliate odata cu “free-form modeling”, noul Ribbon isi etaleaza inca odata versatilitatea in 3D Modeling Workspace (as zice ca 3D-ul in ACAD trece de la gradinita undeva direct la liceu dar evident e inca departe de masterat si in continuare gasesc strategia AutoDesk in ce priveste subiectul confuza si redundanta)
  • si sa nu uit de micile placeri ale desenului de zi cu zi cum ar fi schimbarea culorii layerelor direct din meniul “dropcolor_new down” al ribbon-ului, cerculetele care iti arata unde nu e inchis conturul la hasura, editarea din grip-uri a hasurilor neasociative, rotirea desenului odata cu viewportul in PaperSpace (stiu ca am vorbit si in postul trecut), modificarea ferestrei “Select Color” in care in sfarsit vezi clar ce culoare e selectata si multe altele
O lista si mai mare cu modificari, noutati si imbunatatiri aduse in AutoCAD 2010 poate fi gasita aici: http://autodesk.blogs.com/between_the_lines/2009/02/autocad-2010-other-enhancements-aka-the-frosting.html
Dar sa ajung in final si la concluzie:
Merita sau nu?
Ei bine… merita, sau cel putin asa zic eu acum dupa ce am folosit o versiune trial destul de mult cat sa-mi formez o parere.
Odata cu AutoCAD 2010 si toata gama de softuri specializate construite pe platforma ACAD, strategia de comunicare si promovare AutoDesk pare mai solida ca niciodata, poate e criza, poate e produsul, dar e clar ca e mai bine promovat ca oricand mai ales online.
Cumparat prima data este clar o alegere buna, un soft matur si solid.
In ce priveste upgrade-ul decizia este mai complicata datorita situatiei destul de neplacute in care se afla piata. In mod normal AutoCAD 2010 ar trebui sa mareasca productivitatea, comparat cu versiunile anterioare, indiferent de domeniul sau tipul activitatii. De asemenea ar putea fi un moment bun pentru implementarea in lucrul curent a tehnologiilor mai noi dar neexploatate inca suficient (ex: dynamic blocks, fields, tables) iar intr-o piata in scadere, in care clientii sunt din ce in ce mai greu de gasit si pastrat eficienta poate conduce la costuri de productie mai mici - oferte mai bune – clienti mai fericiti.
In concluzie revin asupra postarii anterioare despre ACAD 2010 si spun ca daca vrei sa faci un upgrade atunci acum ar putea fi momentul. Versiunea curenta e suficient de solida si interfata suficient de prietenoasa cat sa permita o exploatare superioara si implementarea de noi tehnologii pentru ca in final plusul in eficienta sa justifice din plin cheltuiala.
Atat despre AutoCAD 2010 pentru astazi.
In curand voi publica traducerea unui articol deosebit despre introducerea in programarea AutoLisp, scris de un nume consacrat in domeniul CAD Managemet-ului, pentru care am reusit in sfarsit sa obtin acordul de traducere si republicare
agoracad.blogspot Rocks! :)
Citeste articolul...

joi, aprilie 16

AutoCAD Easter Egg

Pastele se apropie asa ca Sarbatori Fercite!

O sa raman in tema si o sa vorbesc putin despre asa numitele "Easter Eggs" (Oua de Paste) din AutoCAD.
Ce sunt "Easter Eggs"?
Un fel de "oua cu surprize" ascunse in soft si pregatite de programatorii de la AutoDesk cand se plictisesc de munca.
Cum se "folosesc"?
Pai de obicei exista o combinatie de taste si actiuni care are ca rezultat aparitia unui filmulet sau a unei poze amuzante cu echipa de programatori.

Iata cateva:
ACAD R14 - Easter Egg
Help-About - apasa Ctrl+Shift si Click pe poza

ACAD 2000 - Easter Egg
Format - Dimmension Style - apasa Ctrl+Shift si Click in fereastra de Preview


ACAD 2004 - Easter Egg
Format - Color - selecteaza tabul ACI - apasa Ctrl si Click pe culoarea 152

ACAD 2005 - Easter Egg
Layer Manager - apasa Ctrl+Shift si Click pe Invert Filter

ACAD 2006 si ACAD 2007 - Easter Egg
Nu au avut.

ACAD 2008 - Easter Egg
1. din command line apeleaza SUNPROPERTIES pentru a deschide Sun Properties Palette
2. click pe icon-ul de lupa de la Sky Properties
3. in fereastra Adjust Sun&SkyBackground la Sun Angle Calculator schimba data in 3/23/2007 si ora in 00.00 (12.00AM)
4. cu Ctrl apasat apasa de doua ori pe tasta cu sageata in jos

ACAD 2009 si ACAD 2010 Easter Egg
??? (probabil nu sunt)

Nota: Toate instructiunile de la "Easter Eggs" sunt de pe diferite site-uri, bloguri, forumuri etc. asa ca toate meritele si chinuiala de a gasi surprizele programatorilor apartin celor care le-au publicat prima data

Inca odata Sarbatori de Paste Fericite!
si usor cu papa :)

Citeste articolul...

luni, aprilie 13

Introducere in AutoLISP

Nota: Acest articol discuta notiuni generale si folosirea rutinelor AutoLISP fara a avea cunostinte de programare. Pentru programare vezi postul Introducere in programarea AutoLISP.
Nu cred ca utilizatorul de AutoCAD, fie el si avansat, trebuie neaparat sa stie AutoLISP. Cred, insa, ca trebuie sa stie suficient cat sa foloseasca ceea ce au facut deja ceilalti in AutoLisp.

Acesta este subiectul de astazi:

  • putina istorie
  • ce este un program AutoLISP
  • cum folosesc programele AutoLisp in AutoCAD
  • unde gasesc programe AutoLISP

1. Putina istorie.

LISP este un limbaj de programare aparut prin anii '60. Numele vine de la List Processing pentru ca informatia este structurata in asa numite liste. Incepand cu 1986 AutoDesk preia si incepe dezvolte o parte a limbajului sub numele de AutoLisp. Respectivul subset, orientat spre functii geometrice si manipularea de entitati grafice, este introdus in AutoCAD oferind posibilitatea de customizare si programare peste softul initial.
Limbajul este imbunatatit cu fiecare versiune pana in 1995 cand AutoDesk decide sa renunte la dezvoltarea lui in favoarea noilor trenduri VBA .NET si ActiveX. Singura imbunatatire majora este adusa in '99 cand AutoDesk incorporeaza in AutoCAD o versiune avansata a AutoLisp-ului, cu tot cu mediu de lucru, numita Visual Lisp. VisualLisp, este un superset al AutoLisp-ului care include un editor, un debugger, un compilator si multe functii avansate noi.
Desi "abandonat" apoi de producator AutoLisp(mai nou VisualLisp) devine si ramane pana in zilele noastre cel mai popular limbaj de programare al AutoCAD-ului.

2. Ce este un program AutoLisp

Un program AutoLisp este de fapt un sir de comenzi si functii care rulate in AutoCAD fac diferite task-uri in locul sau in numele utilizatorului.
Practic cu AutoLisp poti face aprope orice faci in mod normal in AutoCAD, si chiar mai mult, doar ca in loc sa actionezi tu, rulezi un progranm care face asta pentru tine.
Putem spune ca automatizam siruri de operatiuni folosind programe care actioneaza in locul nostru.
Programele AutoLisp, numite si rutine, se servesc sub forma de fisiere text cu extensia .lsp. Pentru a edita un astfel de fisier poate fi folosit orice editor de text care nu formateaza (ex: Notepad) sau poate fi folosit editorul incorporat in AutoCAD numit Visual Lisp Editor care ofera pe langa simpla editare si alte avantaje care insa nu fac subiectul postului de astazi.

3. Cum folosesc programele AutoLisp in AutoCAD


Asa cum am spus, programele AutoLisp, definesc o comanda sau un set de comenzi. Pentru a le folosi avem nevoie de un fisier lisp (blabla.lsp) si AutoCAD. Incarcam fisierul in AutoCAD si il rulam tastand numele (blabla) in linia de comanda.
"Incarcarea" in AutoCAD se face din Tools-AutoLisp-Load Application sau din tastatura cu comanda APPLOAD.

load_unload_applications_we
Se va deschide fereastra Load/Unload Applications unde se va naviga pana la fisierul .lsp dorit, se va selecta si se va da click pe Load. Incarcat astfel programelul nostru va ramane activ pana la inchiderea desenului care era deschis in momentul incarcarii, daca vrem sa-l avem incarcat de fiecare data cand deschidem un desen il tragem cu drag-and-drop in "valiza" din dreapta jos. De fapt nu facem decat sa-l adaugam in asa numitul "Startup Suite", adica un grup de aplicatii(programe) pe care AutoCAD le incarca de fiecare data cand deschidem un desen.
Dupa ce am "incarcat" programul inchidem fereastra si nu mai ramane decat sa apelam programul tastand numele urmat de Enter.

Programele AutoLisp pot ajunge la noi sub forma de text (pe o pagina de net, intr-o carte, etc) sau sub forma de fisier .lsp.
Daca e text deschidem un document nou in Notepad, scriem textul respectiv, cautam la inceput ceva care arata cam asa:

DEFUN C:blabla

(unde blabla va fi evident alt text si reprezinta numele comenzii definite de repectivul program) si salvam documentul cu numele blabla si extensia .lsp pentru a-l transforma intr-un program AutoLisp gata de folosit.

Acum ca am tot vorbit sa dam si un exemplu:

(defun C:GATA ()
(command "-purge" "a" "" "n")

(command "-purge" "a" "" "n")

(command "-purge" "a" "" "n")

(command "-layer" "s" "0" "")

(command "zoom" "e")
(command "qsave")

(command "close")

(princ)
)


Cam asa arata un programel AutoLisp primitiv.
Cel de mai sus defineste o comanda care se numeste GATA , gandita pentru incheierea unui desen, care face trei "PURGE - all" consecutive, face layerul 0 curent, face zoom extents, salveaza desenul si apoi il inchide.

Ca sa-l folosesc - copy/paste intr-un document nou Notepad, salvez documentul ca gata.lsp (AutoLisp nu tine cont de litere mari sau mici) si incarc lispul in AutoCAD din Tools-AutoLisp-Load Application. Odata incarcat, daca tastez in AutoCAD "gata"(fara ghilimele) urmat de Enter. AutoCAD va face toate operatiunile si va inchide desenul. Ma va scuti de o rutina de incheiere a unui desen care consta in deschiderea a cateva ferestre si multe clickuri. Acesta este un exemplu primitiv care nu face altceva decat sa ruleze un sir simplu de comenzi si sa introduca raspunsuri in locul nostru, dar exista si programe mult mai complexe cu rezultate pe masura.
Iata cateva "lispuri" mai mult sau mai putin complicate:

KILLDOTS.lsp
- sterge toate entitatile cu lungime 0 si textele care au doar spatii goale (introdus ca optiune la PURGE in AutoCAD 2010)

fixblock.lsp
- transforma toate blockurile din desen in blockuri definite pe layerul 0 cu Linetype - ByBlock si Color - ByBlock

ZMATCH.lsp
- schimba elevatia (inaltimea) unui obiect dupa un alt obiect selectat sau dupa o cota introdusa la tastatura

xerase.lsp
- sterge toate entitatile aflate in interiorul unei polylinii inchise...
si tot asa sunt multe multe multe lispuri gratuite care fac tot ce-ti trece prin cap.

Practic pentru orice operatiune care presupune mai multi pasi si pe care o repeti suficient de des cat sa merite sa o automatizezi cineva a facut deja un lisp. Tot ce trebuie sa faci e sa-l gasesti si sa-l folosesti.

4. Unde gasesc programe AutoLISP:




P.S. Programarea si aplicatiile AutoLisp sunt un subiect fara sfarsit. Un program bine facut este destul de complex si chiar si asa intotdeauna exista o varianta si mai buna de a-l face. Scopul postului nu este sa explice cum se face un program ci cum se foloseste. Am incercat sa fac o oarecare lumina in subiect dar bineinteles nu am descoperit decat varful icebergului, mai departe nu tine decat de exercitiu si de dorinta fiecaruia de afla mai mult.
Citeste articolul...

vineri, aprilie 10

Un film despre "Command Line"



Actul 1
(si singurul)

AutoCAD este deschis. User-ul se uita la monitor. Command Line(CL) ateapta.
Command:

Brusc, User-ul se repede catre icon-ul Polyline si da Click apeland comanda POLYLINE.
CL reactioneaza imediat! Ii spune User-ului ca a apelat comanda si ii cere primul punct al Polyliniei.
Command: _pline
Specify start point:

User-ul da Click pe ecran pentru a incepe Polylinia.
In replica CL il anunta care este latimea curenta a polyliniei si ii cere urmatorul punct. Apoi ii si spune intre paranteze patrate ce optiuni mai are pentru comanda in desfasurare.
Current line-width is 0.0000
Specify next point or [Arc/Halfwidth/Length/Undo/Width]:

User-ul da al doilea click pe ecran tragand astfel primul segment de polylinie.
CL ii cere urmatorul punct si adauga la optiuni varianta Close
Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:

Aici devine putin monoton, User-ul mai da cateva clickuri... CL ii cere de fiecare data urmatorul punct si il anunta ca mai are si alte optiuni.
Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:
Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:
Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:
Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:

Deodata User-ul decide sa intre in modul Arc si tasteaza A urmat de Enter.
CL ii cere punctul de sfarsit al arcului si anunta ca un nou set de optiuni a devenit disponibil.
Specify endpoint of arc or
[Angle/CEnter/CLose/Direction/Halfwidth/Line/Radius/Second pt/Undo/Width]:

User-ul vede noile optiuni si se razgandeste. Nu mai vrea arc. Tasteaza L urmat de Enter pentru a reveni in modul Line si isi arunca scurt ochii peste CL care revine la replica de la linie
Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]:

User-ul se hotaraste sa incheie comanda inchizand polylinia, tasteaza C de la Close, urmat de Enter. Polylinia se inchide, comanda se incheie.
Specify next point or [Arc/Close/Halfwidth/Length/Undo/Width]: c
Command:

User-ul sta, CL asteapta.
User-ul stie acum ca CL e acolo pentru el ori de cate ori va avea nevoie.
The END.

Asa arata dialogul dintre User si AutoCAD in timpul lucrului. Responsabila de partea de dialog a AutoCAD-ului este asa numita Linie de Comanda (Command Line) - cele cateva randuri de text care se tot schimba in partea de jos a ecranului.

In AutoCAD "Command Line" nu este nici pe departe instrumentul super-tehnic al userului avansat. Ba din contra, daca stii putina engleza, poate fi cel mai bun prieten.
Programul ne spune in fiecare moment ce face si ce asteapta de la noi. Mai mult decat atat ne spune de fiecare data ce optiuni avem in functie de context. Aceste optiuni/variante de comanda apar intre paranteze patrate. Literele mari de la inceputul fiecarei optiuni reprezinta modul de apelare, adica tastezi literele respective urmate de Enter si ai activat respectiva optiune.

Ex: varianta Arc a comenzii POLYLINIE se va apela cu A urmat de Enter atunci cand respectiva optiune este disponibila intre paranteze patrate in "Command Line".

Tot in "Command Line":
- introducem comenzi de la tastatura
- vedem de ce nu merg diferite comenzi
- primim diferite informatii despre obiectele selectate
- primim diferite mesaje de eroare si explicatii
si in general aflam tot felul de lucruri utile in timpul lucrului.

In AutoCAD Linia de Comanda este unul din instrumentele esentiale in procesul de invatare si ofera user-ului un grad ridicat de interactivitate cu programul.

Prin "Command Line" AutoCAD comunica tot timpul cu tine.
Trebuie doar sa stii sa-l asculti!

Bine de stiut:
- numarul de linii afisate "Command Line" poate fi schimbat tragand de marginea ferestrei in sus sau in jos
- fereastra poate fi afisata oriunde pe ecran cu "drag and drop", click dreapta pe bara de titlu a ferestrei ofera acces la mai multe optiuni de afisare printre care auto-hide si transparency
- pentru o vizualizare mai buna "Command Line" poate fi mutata in partea de sus a desenului cu drag and drop
- daca "Command Line" a disparut de pe ecran redeschiderea softului sau Ctrl+9 ar trebui sa o aduca inapoi
- F2 deschide "AutoCAD Text Window unde apare tot ce a trecut prin "Command Line" in sesiunea respectiva de lucru asa ca daca ti-a scapat ceva poti deschide fereastra pentru a revedea ce feed-back a dat programul intr-un anumit moment

In final le multumesc actorilor implicati si ne vedem la Oscaruri.

Citeste articolul...

marți, aprilie 7

Ce e nou in AutoCAD 2010?


Adunate din "review-uri", bloguri, documentatie oficiala si din asa numitul "New Feature Workshop" iata cateva din noutatile cu care se lauda AutoCAD 2010.

- configurarea mediului de lucru inca de la instalare
Se ofera posibiliattea de a configura interfata in timpul instalarii programului. Optiunile sunt in functie de specialitate (arhitectura, inginerie, etc), tipul desenelor (2D/3D) si de standardul folosit (Imperia/Metric).
Desi pare util probabil nimeni nu va pastra interfata propusa de soft dar alegerea standardului Metric sau Imperial in momentul instalarii este FOARTE bine venita (se instaleaza complet doar ca la prima deschidere este gata pentru desenul in standardul ales la instalare).

- butonul Application Menu
Aflat in coltul din stanga sus al ferestrei (ca la Office 07), permite accesul rapid la functiile care se gaseseau in Meniul "File" (new, open, save, save as, export, print, publish etc) si la alte setari generale de configurare (Options). Nu am deschis prea des versiunea 2009 asa ca sper ca nu era si acolo... sau ca macar s-a schimbat ceva major in 2010 :)

- desen parametrizat
Probabil una dintre cele mai importante noutati aduse de 2010. Este practic un set intreg de comenzi care permite conditionarea elementelor din desen cu anumite "constrangeri" parametrice (aproape ca nici eu nu inteleg ce am scris).
Pe scurt cand modifici o linie aceasta poate atrage modificarea altor elemente din desen. Daca am stabilit ca linia respectiva trebuie sa fie paralela cu alte obiecte din desen acestea se vor modifica odata cu linia pentru a ramane paralele cu aceasta. "Constrangerile" pot fi geometrice (paralel, perpendicular, tangent etc) sau dimensionale (lungimi, ungiuri, raze...etc)


- modelare 3D imbunatatita
Noi optiuni si comezi de modelare 3D.
Nu o sa intru in amanunte pentru ca nu cred ca AutoCAD va deveni vreodata un soft potent de modelare si randare 3D. Toata munca investita in partea de 3D a AutoCAD-ului mi se pare mai de graba o lipsa de strategie pe termen lung a AutoDesk-ului care de ani buni tot cumpara si vinde solutii 3D in incercarea de a-si mari cota de piata fara a se decide ce dezvolta si la ce renunta.

- optiuni si comenzi noi de lucru 2D
  • hasurile au "grips" si pot fi editate chiar daca nu sunt asociative
  • problemele de contur la hasurare sunt acum marcate cu cercuri ca sa stii unde nu se inchide conturul (foarte tare)
  • "directia" (ordinea vertecsilor) intr-o polilinie poate fi acum schimbata (util de exemplu in cazul exportului catre softuri GIS unde directia polyliniilor conteaza sau in cazul tipurilor de linie cu text integrat sau pentru comenzie MEASURE si DIVIDE in modul Block)
  • o noua comada de masurare care reuneste masurarea pentru distante, unghiuri, raza, suprafata si volum (masurarea distantei nu mai e doar intre doua puncte, se pot introduce oricate puncte si programul calculeaza distanta totala, in timpul definirii unei suprafate pentru masurarea ariei respectiva suprafata este acum colorata pentru o mai buna vizualizare)
  • comanda PURGE are adaugate etitati cu lungime 0 si obiecte tip TEXT fara cotinut
  • obiectele tip spline pot fi convertite in polyline (cu un parametru de precizie care determina cat de exact va fi facuta conversia)
  • o noua variabila de sistem care controleaza viewporturile din Layout Space, pana acum daca se rotea un Viewport continutul ramanea in pozitia initiala, acum se poate seta sa se roteasca odata cu Viewport-ul
As mai adauga interfata tip "Ribbon" si un format DWG imbunatatit. Interfata, desi introdusa odata cu AutoCAD 2009, s-a impus intre timp si probabil va deveni standard asa ca daca incepi sa lucrezi in AutoCAD cu ACAD 2009 sau 2010 ar fi bine sa te obisnuiesti cu Ribbon-ul pentru ca "it's here to stay".

In concluzie upgrade-ul la 2010 ramane la fel de "recomandat" ca si cel la 2009. Daca iti plac interfetele spectaculoase, nu ai lucrat prea mult in versiunile anterioare si ai un calculator cu care sa te lauzi cunoscutilor (ACAD 2010 consuma resurse fara mila) atunci poate e bine sa upgradezi. De asemenea daca din orice motiv nu stii ca exista 3ds Max, Cinema 4D, Maya si muuulte alte solutii dedicate 3D atunci iarasi probabil iti vei dori AutoCAD 2010. In rest poate prin 2012 as recomanda trecerea la ACAD 2010 pentru ca pana atunci o sa apara inca 3 variante si mai complicate.
Singurul motiv de upgrade ar fi, poate, noile "constrangeri" parametrice, dar din pacate cine a avut nevoie de ele foloseste deja alte softuri in care desenarea a fost parametrizata de mult.

Cam atat despre AutoCAD 2010, in rest numai de bine!

Citeste articolul...

sâmbătă, aprilie 4

Plotare rapida din Layout

layout_plotLayout-ul in AutoCAD este solutia recomandata pentru plotare. Din pacate este pe cat de util pe atat de confuz. Probabil ca ii voi dedica un post lung si detaliat intr-o zi.

Astazi o sa explic cum se poate plota din Layout fara a sti mai nimic despre el. Este prima varianta de plotare cu Layout-uri pe care am folosit-o si in majoritatea cazurilor nu am mai avut nevoie de nimic altceva.

Voi discuta despre:
  • concepte (pe scurt)
  • configurarea unui Layout pentru plotare
  • aducerea desenului in Layout
  • scalare si plotare

Concepte:
Layout-ul in AutoCAD este o foaie virtuala de hartie. Exact ce vedem "pe foaie" va iesi la plotter. Pentru a folosi aceasta "foaie" trebuie sa o definim si sa punem desenul pe ea. Definirea se face din Page Setup Manager. Desenul se aduce folosind asa numitul Viewport. In AutoCAD desenam in mod curent in Model Space, Layout-urile se numesc Paper Space, Viewport-ul este o fereastra prin care vedem din Paper Space in Model Space.

Sa trecem la treaba:

Voi presupune ca desenul pe care vrem sa-l plotam este deschis si este desenat in milimetri. Daca nu este desenat in milimetri vor aparea niste calcule mai tarziu. Nu e o tragedie dar complica treaba inutil, vezi "Unitati de masura in AutoCAD - partea II" cand ai timp.

1. Trecem in modul Layout.

In partea de jos a ecranului exista tab-urile "Model" "Layout 1" si "Layout 2" (sau ceva asemanator). Click pe "Layout 1" pentru a-l face activ. Daca apare o fereastra o inchidem. Daca apare ceva pe "foaia de hartie" selectam tot si stergem (!important).

2. Deschidem Page Setup Manager.
Click dreapta pe" Layout 1" si apoi Click pe Page Setup Manager

3. Alegem setarile pentru foaia de hartie pe care vrem sa plotam.
In Page Setup Manager ne asiguram ca e selectat "Layout 1" si Click pe Modify.

Se va deschide fereastra Page Setup - Layout 1. Aceasta este o fereastra tipica de plotare in care selectam optiunile dorite ca si cum am plota din desen.

Alegem imprimanta, dimensiunea foii de hartie, stilul de plotare (daca avem vreunul) si orientarea paginii (Portrait/Landscape). In rest nu umblam la nimic. Click OK, Cick Close. Daca totul a mers bine ar trebui sa avem in fata o foaie goala de hartie care are pe margine un chenar cu linie punctata. Chenarul este suprafata maxima de plotare si depinde de marginile de ploatre ale imprimantei.

4. Avem foaia gata. Sa aducem desenul!
Tastam: MVIEW in linia de comanda urmat de Enter, apoi tastam F si din nou Enter. Daca am facut bine o sa apara un chenar cu linie continua peste chenarul cu linie punctata si in el o sa se afle desenul nostru cat incape de mare.
Ce am facut?
Am creat un Viewport cat toata suprafata de printare a foii cu optiunea Fit a comenzii MVIEW, sau cum am zis mai devreme – am creat o fereastra prin care ne uitam din Paper Space in Model Space.

5. Punem desenul la scara
Deschidem Toolbar-ul "Viewports" (Click dreapta pe un oricare alt Toolbar si bifeaza Viewports).

Selectam pe ecran Viewport-ul nostru cu Click pe conturul lui (chenarul de pe marginea foii). Alegem din bara Viewports scara la care vrem sa plotam* si planul nostru se va scala singur.

 
6. Aranjam desenul in pagina
In momentul acesta avem foaia de hartie si desenul pus la scara. Tot trebuie sa mai facem este sa-l aranjam putin in pagina. Asa cum este acum nu putem sa selectam nimic cu exceptia Viewport-ului dar rezolvam imediat:
Ne asiguram ca vedem toata pagina (Zoom Extents: dublu-Click pe rotita de la mouse). Apoi dublu-Click in interiorul Viewport-ului (undeva pe foaie). Daca a mers, marginile Viewport-ului vor deveni mai groase putin. Inseamna ca am intrat pe fereastra si acum putem lucra direct in desen.
Cu atentie, fara sa schimbam zoom-ul, miscam desenul cu Pan (apasa rotita de la mouse sau tasteaza P urmat de Enter si misca desenul) pana ajunge in pozitia dorita. Cand am asezat frumos desenul in pagina iesim din Viewport cu dublu-Click undeva in afara foii.
!Atentie: Orice modificare a zoom-ului va atrage schimbarea scarii de plotare, daca se intampla accidental iesim repede din Viewport (dublu-Click in afara lui) selectam Viewport-ul si ii setam din nou scara din bara Viewports.

7. Plotare
In momentul acesta pe ecran ar trebui sa avem foaia exact asa cum va iesi plotter. Desenul e la scara si asezat in pagina. Suntem gata de print!
Click-dreapta pe tabul "Layout 1" (jos in stanga) si Plot - OK (sau Preview daca nu ma crezi pe cuvant).

Bine de stiut:
- cand "intri" in Viewport cu dublu-Click apelezi de fapt comanda MSPACE(MS), ca sa iesi poti sa dai dublu-Click in afara viewportului sau sa tastezi PSPACE(PS)
- versiunile mai noi de AutoCAD au in partea de jos a Layout Space butonul Maximize Viewport care iti permite sa umblii in Model Space fara a iesii din Layout Space si fara a afecata scara Viewport-ului

Click pe buton - editeazi - Click iar pe buton

Pan
in modul Maximize Viewport nu va afecta pozitia desenului in Viewport asa ca pentru a-l pozitiona ramane necesar pasul 6.

Asta a fost! Am intrat in Layout, am setat imprimanta si foaia de hartie, am adus desenul intr-un Viewport cat toata foaia, l-am pus la scara, l-am aranjat frumos si l-am plotat. In realitate dureaza cam un minut si avantajul e ca toate setarile raman si pot sa printez oricand cu 2 Click-uri.

Uite si video:


Plotare placuta!

*Daca desenul e facut in milimetri alegem exact scara la care printam, daca e facut in metri sau altceva... spor la calcule. In postul "Unitati de masura in AutoCAD - partea II" am pus un tabel cu conversia pentru desenul in metri.
Citeste articolul...